Make All Assembly Components Visible Example (VB)
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