• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

vba でセットの部分を選択します。

  • Thread starter Thread starter Adahm
  • Start date Start date

Adahm

Guest
複数のレベルのセットの一部をvbaで選択できるかどうかは誰が知っていますか?
ilogicではあります。 次の構文でコマンドを選択します。

odocdef.selectset.(選択)

odocdef は axieme と oocc が選択される axieme のコンポーネントです。
しかし、2つの問題があります。
  1. vba で同じコマンドが見つかりません
  2. コマンドは最初のレベルのコンポーネントのみを選択します。
odocdefでは2番目のグループからの完全なパスを提供しているようですが、それをする方法はわかりません。

使用するコードは以下の通りです。
Code:
snippetsub main() のコード
アセンブリドキュメントとして assydoc
compdef を componentdefinition として定義する
dim は componentoccurrence として compoccurrence を模倣します

assydoc = このアプリケーション.activedocument

'アクティブな軸線から探査を開始
探索コンポーネント(assydoc.componentdefinition)
メニュー

「コンポーネントの階層を探索するための再帰関数
サブエクスプローラーコンポーネント(compdef as componentdefinition)
dim i は整数者として
i = 1 で compdef.occurrences.count
compoccurrence = compdef.occurrences.item
compoccurrence.definitiondocumenttype = 12291 なら ' iscomponentdefinition
' 定義されたコンポーネントである場合 (他のコンポーネントを含むことができます)
探索コンポーネント(compoccurrence.definition)
スタッフ
'メッセージボックス.show("part select:"&comoccurrence.name")
コールのpartselection (compdef、comoccurrence)
端 もし
次へ i
メニュー

サブパーツ(odef、oocc)
odocdef をドキュメントとして
odocdef = odef.document
dim odococc ドキュメント
odococc = oocc.definition.document

dim プロパティセットとして opropset
opropset = odococc.propertysets.item("発明者ユーザ定義プロパティ")

dim 不適切な [Property]エラーで次の再開
oprop = opropset.item("foratura")

oprop.value = "sì" の場合、
odocdef.selectset.(選択)
端 もし
エンドサブ
私の場合、特定の特性を持つ部品だけ、それは詳細です。
2つのテストを行わなかった人のための小さな例を添付します。
まとめ001では、上記のコードが既にあります。
ファイルバージョン: 発明者 2023.

お問い合わせ
 

Attachments

vbaコード;
選択セットの定義を最初のレベルに移動し、再発サブへの参照を渡しました。鼻は、他のローカル変数のようなサブ "died There" で選択セットを交換するたびに、鼻に渡しますが、それらは実行され、私はよく見ませんでした。
とにかく、働いたと思ったんです。

(注:vbaの構文の修正)

Code:
パブリックサブtestselectadham()
' インポスタ il riferimento al docomo attivo.
' questo presuppone che il documento attivo sia un assieme
dim odoc として inventor.assemblydocument
odoc = thisapplication.activedocument を設定する

' ottiene la defineizione del コンポーネント d'assieme
dim ocompdef として inventor.componentdefinition
ocompdef = odoc.componentdefinition を設定する

selectset として dim oselectset を
oselectset = odoc.selectset を設定する

dim smsg を文字列として
dim の ileafnodes 長く
dim は限りアセンブリ

'決定書 il nome della iproperty e il valore da cercare
dim ipropertyname 文字列
ipropertyname = "foratura" '"trattamento"
ipropertyvalueを文字列として定義する
ipropertyvalue = "sì" '"カラー"

' ottiene タテ le occorrenze dalla defineizione del componente per il documento di tipo アセンブリ
dim ocompocc として componentoccurrence
ocompdef.occurrencesの各ocompoccのために
' controlla se è un'occorrenza figlia (nodo foglia), クロアチア
ocompocc.suboccurrences.count = 0 の場合
msgbox(「padre:」と「ocompocc.name」)
コールpartselection(ocompdef、ocompocc、ipropertyname、ipropertyvalue、oselectset)
ileafnodes = ileafnodes + 1
その他
msgbox (ocompocc.name)
isubassemblies = アセンブリ + 1
コール プロセスallsubocc_adahm(ocompocc), _
ログイン
ileafnodes、_
アセンブリ, _
ipropertyname、_
ipropertyvalue、_
oselectset(オセレクトセット)

端 もし
次へ

msgbox(n. di nodi foglia : " + cstr(ileafnodes)))
msgbox(nero di sottogruppi: " + cstr(isubassemblies)))
エンドサブ

' Questa funzione viene chiamata に modo ricorsivo per l'elaborazione dei sottoassiemi
' per iterare l'intero albero degli assiemi.
プライベートサブ processallsubocc_adahm(byval ocompocc as componentoccurrence), _
byref smsg を文字列として, _
byref の ileafnode を長く、 _
byref isubassemblies 長い, _
byref ipropname 文字列, _
byref ipropval 文字列として, _
byref oselectset を selectset として選択します。

dim osubcompocc として componentoccurrence
ocompocc.suboccurrencesの各osubcompoccのため
' controlla se è un'occorrenza figlia (nodo foglia), クロアチア
osubcompocc.suboccurrences.count = 0 の場合
msgbox(Figlio: "&osubcompocc.name)
コールpartselection(ocompocc.definition、osubcompocc、ipropname、ipropval、oselectset)
ileafnodes = ileafnodes + 1
その他
smsg = smsg + osubcompocc.name + vbcr
isubassemblies = アセンブリ + 1

コール プロセスallsubocc_adahm(osubcompocc), _
ログイン
ileafnodes、_
アセンブリ, _
ipropname、_
ipropval、_
oselectset(オセレクトセット)
端 もし
次へ
エンドサブ

サブパーツ(odef, oocc, ipropname, ipropval, oselectset as selectset)
odocdef をドキュメントとして
odocdef = odef.document を設定する
dim odococc ドキュメント
odococc = oocc.definition.document を設定する

msgbox (odocdef.displayname & " - "& odococc.displayname & " - (partselection)")

' ottieni il セレクトセット attivo
'dim oset を selectset として指定
'set oselectset = odocdef.selectset
msgbox(「&oselectset.count」)

dim プロパティセットとして opropset
opropset = odococc.propertysets.item("発明者ユーザー定義プロパティ")

dim プロパティとして不適切
'on エラーは次を再開します
oprop = opropset.item(ipropname) を設定
'messagebox.show(">) & oprop.name & ": " & oprop.value & "<")

oprop.value = ipropval の場合、
msgbox (">) と oprop.name と ": " & oprop.value & "<" & vbcrlf & "dovrebbe selezionare :" & odococc.displayname)
'messagebox.show("sono passato diqui、quindi signatureifica che oprop.vaule = ipropval e adesso devo selezionare la parte")
oselectset.select(oocc) を呼び出します。
端 もし
エンドサブ
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top