修改Solidworks全局变量值 - C#

时间:2016-02-08 02:10:18

标签: c# solidworks

我正在尝试修改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)。

任何人都可以帮我解决我做错的事吗?

2 个答案:

答案 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}}