日期:2014-01-05  浏览次数:20515 次

solidworks二次开发-03-访问特征数据
'coder arden
'filename : getchoosed.swp
'date  :2005-03-22
'used to get the simple hole infomation dep & dia
'finished lucky !!
'------------------------------------------------------------

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim Model As ModelDoc2
Dim curfeature As feature
Dim boolstatus As Boolean
Dim featdata As SimpleHoleFeatureData2   '声明一个简单直孔对象
Dim component As Component2                
Dim dep As Double
Dim dia As Double
Dim SelMgr As SelectionMgr
Dim ncount As Integer

 

Sub getselected()

Set swApp = Application.SldWorks

Set Model = swApp.ActiveDoc

Set SelMgr = Model.SelectionManager

Set curfeature = SelMgr.GetSelectedObject5(1)  '得到当前选中的第一个特征

    MsgBox curfeature.Name
   
Set featdata = curfeature.GetDefinition '得到特征的定义

boolstatus = featdata.AccessSelections(Model, component) ' 可以对数据进行访问了

ncount = featdata.GetFeatureScopeBodiesCount        

MsgBox ncount


dep = featdata.Depth    
dia = featdata.Diameter

MsgBox dia & "*" & dep

'MsgBox "error arden"    '在solidworks中可以使用swAPP.sendmsgtouser2
'featdata.ReleaseSelectionAccess
Model.Save
Model.EditRebuild
End Sub

**********************************************

上面程序运行前,假设你选择了一个简单直孔特征。然后得到这个孔德一些参数。

孔深、直径等。

solidworks的API虽然是e文的。介绍的还算详细,并且有很多的example。大家可以多看看代码。

要访问一个特征,需要经历这样的步骤:

定义一个特征对象: dim....as ...

得到这个特征 :比如使用GetSelectedObject5 还有SelectebyID等...

得到定义:GetDefinition

进行访问:AccessSelections

上面的程序没有if选择的容错机制,需要添加上。