修改Solidworks全局变量值-C#
我试图在我的C#代码中修改全局变量 基于这两个例子: 我已经提出了以下代码,但它不会改变全局变量。另外,当我在代码运行后进入等式管理器时,它在等式旁边有红色的Xs,并说“这个等式的语法不正确” 注:深度变量的计算结果正确为(“深度”=8),法兰宽度的计算结果正确为(“法兰宽度”=3.5)修改Solidworks全局变量值-C#,c#,solidworks,C#,Solidworks,我试图在我的C#代码中修改全局变量 基于这两个例子: 我已经提出了以下代码,但它不会改变全局变量。另外,当我在代码运行后进入等式管理器时,它在等式旁边有红色的Xs,并说“这个等式的语法不正确” 注:深度变量的计算结果正确为(“深度”=8),法兰宽度的计算结果正确为(“法兰宽度”=3.5) 有人能帮我解决我做错了什么吗?setequalationandconfigurationoption()只能用于使用该方法添加的方程式。方程是用那种方法加上去的吗 我用过: string depth = "
有人能帮我解决我做错了什么吗?setequalationandconfigurationoption()只能用于使用该方法添加的方程式。方程是用那种方法加上去的吗 我用过:
string depth = "\"Depth\" = 4";
string flangeWidth = "\"FlangeWidth\" = 7";
并且只能在使用Add3方法(需要多个配置)添加后才能更改全局变量。只有一个配置的Add2对我不起作用
另外,setequalationandconfigurationoption的第一个参数是索引,这两个参数都是0,需要修改以匹配它们在全局变量中的位置(从0开始)。例如:
swEquationMgr.SetEquationAndConfigurationOption(0, depth, (int)swInConfigurationOpts_e.swAllConfiguration, null);
swEquationMgr.SetEquationAndConfigurationOption(1, flangeWidth, (int)swInConfigurationOpts_e.swAllConfiguration, null);
您可以使用此选项根据其名称修改任何变量这是唯一的,因为大多数其他代码示例向您展示了如何通过其索引设置变量
Sub SetVar(NAME As String, VALUE As Variant)
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swEqnMgr = swModel.GetEquationMgr
For i = 0 To swEqnMgr.GetCount - 1
vSplit = Split(swEqnMgr.Equation(i), " = ")
vSplit(0) = Replace(vSplit(0), Chr(34), Empty)
If vSplit(0) = NAME Then _
swEqnMgr.Equation(i) = Replace(swEqnMgr.Equation(i), vSplit(1), VALUE)
Next i
End Sub
你救了我一天。谢谢分享!
Sub SetVar(NAME As String, VALUE As Variant)
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swEqnMgr = swModel.GetEquationMgr
For i = 0 To swEqnMgr.GetCount - 1
vSplit = Split(swEqnMgr.Equation(i), " = ")
vSplit(0) = Replace(vSplit(0), Chr(34), Empty)
If vSplit(0) = NAME Then _
swEqnMgr.Equation(i) = Replace(swEqnMgr.Equation(i), vSplit(1), VALUE)
Next i
End Sub