修改Solidworks全局变量值-C#

修改Solidworks全局变量值-C#,c#,solidworks,C#,Solidworks,我试图在我的C#代码中修改全局变量 基于这两个例子: 我已经提出了以下代码,但它不会改变全局变量。另外,当我在代码运行后进入等式管理器时,它在等式旁边有红色的Xs,并说“这个等式的语法不正确” 注:深度变量的计算结果正确为(“深度”=8),法兰宽度的计算结果正确为(“法兰宽度”=3.5) 有人能帮我解决我做错了什么吗?setequalationandconfigurationoption()只能用于使用该方法添加的方程式。方程是用那种方法加上去的吗 我用过: string depth = "

我试图在我的C#代码中修改全局变量

基于这两个例子:

我已经提出了以下代码,但它不会改变全局变量。另外,当我在代码运行后进入等式管理器时,它在等式旁边有红色的Xs,并说“这个等式的语法不正确”

注:深度变量的计算结果正确为(“深度”=8),法兰宽度的计算结果正确为(“法兰宽度”=3.5)


有人能帮我解决我做错了什么吗?

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