パブリックサブメイン()
' アクティブなドキュメントへの参照を設定します。
「これは、アクティブな文書がアセンブリであると仮定します
dim odoc として inventor.assemblydocument
odoc = このアプリケーション.activedocument
'アセンブリコンポーネントの定義を取得します
dim ocompdef として inventor.componentdefinition
ocompdef = odoc.componentdefinition
dim smsg を文字列として
dim の ileafnodes 長く
dim は限りアセンブリ
'アセンブリ文書のためのコンポーネントの定義からすべての出現を得て下さい
dim ocompocc として componentoccurrence
ocompdef.occurrencesの各ocompoccのために
' 子が発生したかどうかをチェック (leaf ノード)
ocompocc.suboccurrences.count = 0 の場合
'debug.print ocompocc.name
'ileafnodes = ileafnodes + 1
その他
'debug.print ocompocc.name
'isubassemblies = アセンブリ + 1
'messagebox.show("subassy"とocompocc.name)
コール プロセスallsubocc(ocompocc), _
ログイン
ileafnodes、_
isubassemblies ' サブアセンブリ
端 もし
ocompocc.visible でなければ
ocompocc.deleteの
端 もし
次へ
'debug.print" リーフノードなし : " + cstr(ileafnode)
'debug.print" サブアセンブリなし: " + cstr(isubassemblies)
エンドサブ
' この機能はサブアセンブリを処理するために呼び出されます。 それは再帰的に呼び出されます
アセンブリツリー全体を通して反復する。
プライベートサブ processallsubocc(byval ocompocc を componentoccurrence として、_
byref smsg を文字列として, _
byref の ileafnode を長く、 _
byref isubassembliesを限り長くする)
dim osubcompocc として componentoccurrence
ocompocc.suboccurrencesの各osubcompoccのため
' 子が発生したかどうかをチェック (leaf ノード)
osubcompocc.suboccurrences.count = 0 の場合
'debug.print osubcompocc.name
'ileafnodes = ileafnodes + 1
その他
'smsg = smsg + osubcompocc.name + vbcr
'isubassemblies = アセンブリ + 1
コール プロセスallsubocc(osubcompocc) _
ログイン
ileafnodes、_
アセンブリ)
端 もし
osubcompocc.visible でないなら、
osubcompocc.deleteの
端 もし
次へ
エンドサブ