|
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
|