我正在尝试修改C#代码中的全局变量。
基于以下两个例子:
Re: Macro change global variable
2015 SOLIDWORKS API Help - Add and Modify Equations Example (C#)
我提出了以下代码,但它并没有改变全局变量。此外,当我在代码运行后进入方程管理器时,它通过方程式得到红色Xs并说“这个方程的语法不正确”。
string depth = "\"Depth\" = " + param["Part"].Substring(0, param["Part"].IndexOf("x"));
string flangeWidth = "\"FlangeWidth\" = " + param["Width"];
swEquationMgr = swModel.GetEquationMgr();
swEquationMgr.SetEquationAndConfigurationOption(0, depth, (int)swInConfigurationOpts_e.swAllConfiguration, null);
swEquationMgr.SetEquationAndConfigurationOption(0, flangeWidth, (int)swInConfigurationOpts_e.swAllConfiguration, null);
注意:深度变量正确评估为(“深度”= 8)& flangeWidth计算结果为(“FlangeWidth”= 3.5)。
任何人都可以帮我解决我做错的事吗?
答案 0 :(得分:1)
SetEquationAndConfigurationOption()只能用于使用IEquationMgr::IAdd3.方法添加的方程式。是否使用该方法添加了方程式?
我用过:
string depth = "\"Depth\" = 4";
string flangeWidth = "\"FlangeWidth\" = 7";
并且只有在使用Add3方法(需要多个配置)添加后才能更改全局变量。单个配置的Add2对我不起作用。
此外,SetEquationAndConfigurationOption的第一个参数是索引,两者都是0,它们需要被修改以匹配它们在全局变量中的位置(从0开始)。如:
swEquationMgr.SetEquationAndConfigurationOption(0, depth, (int)swInConfigurationOpts_e.swAllConfiguration, null);
swEquationMgr.SetEquationAndConfigurationOption(1, flangeWidth, (int)swInConfigurationOpts_e.swAllConfiguration, null);
答案 1 :(得分:1)
您可以使用它来根据名称修改任何变量!这是唯一的,因为大多数其他代码示例都会向您展示如何通过索引设置变量!
{{1}}