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

本文档提供了一个SolidWorks API示例,该示例通过递归方法显示装配体中的所有组件。程序首先获取装配体的根组件,然后遍历其所有子组件,将隐藏的组件设置为可见状态。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值