solidworks的api帮助还是很全面的,里面有好多见简单而有效的程序,成天在api帮助里泡着,现在做程序的速度是越来越快。好像当年成天在excel中录制宏看代码的感觉。下面的程序是api帮助里的,它用来显示装配体的所有零部件。我给我的同事们用,他们觉得不错 :)。程序使用了一个简单的递归方法遍历了装配体。
Make All Assembly Components Visible Example (VB)This example shows how to make all assembly components visible.
'---------------------------------------
'
' Preconditions: An assembly document is open.
'
' Postconditions: Any hidden assembly components are made visible.
'
'---------------------------------------
Option Explicit
Public Enum swComponentVisibilityState_e
}}-- }}--swComponentHidden = 0
}}-- }}--swComponentVisible = 1
End Enum
Sub TraverseComponent _
( _
}}-- }}--swComp As SldWorks.Component2, _
}}-- }}--nLevel As Long _
)
}}-- }}--Dim vChildCompArr }}-- }}--As Variant
}}-- }}--Dim vChildComp }}-- }}--As Variant
}}-- }}--Dim swChildComp }}-- }}--As SldWorks.Component2
}}-- }}--Dim swCompConfig }}-- }}--As SldWorks.Configuration
}}-- }}--Dim sPadStr }}-- }}--As String
}}-- }}--Dim i }}-- }}--As Long
}}-- }}--
}}-- }}--For i = 0 To nLevel - 1
}}-- }}--sPadStr = sPadStr + " }}-- }}--"
}}-- }}--Next i
}}-- }}--
}}-- }}--vChildCompArr = swComp.GetChildren
}}-- }}--For Each vChildComp In vChildCompArr
}}-- }}--Set swChildComp = vChildComp
}}-- }}--
}}-- }}--Debug.Print sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">"
}}-- }}--
}}-- }}--If swComponentHidden = swChildComp.Visible Then
}}-- }}--swChildComp.Visible = swComponentVisible
}}-- }}--End If
}}-- }}--
}}-- }}--TraverseComponent swChildComp, nLevel + 1
}}-- }}--Next
End Sub
Sub main()
}}-- }}--Dim swApp }}-- }}--As SldWorks.SldWorks
}}-- }}--Dim swModel }}-- }}--As SldWorks.ModelDoc2
}}-- }}--Dim swAssy }}-- }}--As SldWorks.AssemblyDoc
}}-- }}--Dim swConf }}-- }}--As SldWorks.Configuration
}}-- }}--Dim swRootComp }}-- }}--As SldWorks.Component2
}}-- }}--Dim bRet }}-- }}--As Boolean
}}-- Set swApp = Application.SldWorks
}}-- }}--Set swModel = swApp.ActiveDoc
}}-- }}--Set swConf = swModel.GetActiveConfiguration
}}-- }}--Set swRootComp = swConf.GetRootComponent}}--}}--
}}-- }}--Debug.Print "File = " & swModel.GetPathName
}}-- TraverseComponent swRootComp, 1
End Sub