solidworks二次开发-04-修改数据
上次已经可以访问特征的各参数了,今天我们来修改它:
要修改前面的步骤不能少,当我们已经可以读取一些特征时,我们就可以给他设定一些值。当然有时需要调用特定的参数。solidworks是ole和com的,所以要习惯这样。
在修改完特征后需要调用函数modifydefinition()来实现变化。
我们给一个例子,这个例子比前面的都要全面,它有很好的容错引导机制,可以直接拿来成为一个稳定的宏程序。
This example doubles the length of the base extrude.这个例子将拉伸凸台的长度增加一倍
Dim swApp As SldWorks.SldWorks
Dim Model As ModelDoc2
Dim Component As Component2
Dim CurFeature As feature
Dim isGood As Boolean
' Will become an ExtrudeFeatureData Object
Dim FeatData As Object
Dim Depth As Double
Dim SelMgr As SelectionMgr
Sub doubleBE()
}}--> }}-->Set swApp = CreateObject("sldWorks.application")
}}--> }}-->Set Model = swApp.ActiveDoc
}}--> }}-->' Make sure that the active document is a part
}}--> }}-->If Model.GetType <> swDocPART And Model.GetType <> swDocASSEMBLY Then
‘这里的swDocPART 、swDocASSEMBLY 我的环境没有通过。我使用msgbox Model.GetType 的笨办法得到整数为1和2
}}--> }}-->Msg = "Only Allowed on Parts or Assemblies" ' Define message
}}--> }}-->Style = vbOKOnly ' OK Button only
}}--> }}-->Title = "Error" ' Define title
}}--> }}-->Call MsgBox(Msg, Style, Title) ' Display error message
}}--> }}-->Exit Sub ' Exit this program
}}--> }}-->End If
}}-->
}}-->
}}--> }}-->' Get the Selection Manager
}}--> }}-->Set SelMgr = Model.SelectionManager
}}-->
}}-->
}}--> }}-->' Get the selected object (first in the group if there are more than one)
}}--> }}-->' Note that at this point CurFeature is just a Feature Object
}}--> }}-->Set CurFeature = SelMgr.GetSelectedObject3(1)
}}--> }}-->If CurFeature Is Nothing Then
}}--> }}-->' Tell the user that nothing is selected
}}--> }}-->swApp.SendMsgToUser2 "Please select the Base-Extrude", swMbWarning, swMbOk
}}--> }}-->Exit Sub
}}--> }}-->End If
}}--> }}-->' Check the feature's type name
}}--> }}-->' Make sure it is an extrusion
}}--> }}-->If Not CurFeature.GetTypeName = swTnExtrusion Then
’在这里使用swTnExtrusion我的环境没有通过,我改成了Extrusion才ok
}}--> }}-->swApp.SendMsgToUser2 "Please select the Base-Extrude", swMbWarning, swMbOk
}}--> }}-->Exit Sub
}}--> }}-->End If
}}--> }}-->' Get the Extrusion's Feature Data