solidworks二次开发--10--从example中寻找

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

Published At
Categories with Web编程
Tagged with
comments powered by Disqus