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

80酷酷网    80kuku.com

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

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: