Bir setin parçaları vsa seçin

  • Konuyu başlatan Konuyu başlatan Adahm
  • Başlangıç tarihi Başlangıç tarihi

Adahm

Guest
Eğer bir çok seviyeli setin bir kısmını vsa seçebilirseniz herkes biliyor mu?
ilogic ile . Aşağıdaki sözcülerle komut seçin:

Odocdef.selectset.select (oocc)

Odocdef, axieme ve oocc, seçilmiş olmak için bir eksenin bileşenidir.
Ama iki sorun var.
  1. vsa’daki aynı komutu bulamazım
  2. Komut sadece ilk seviyedeki bileşenleri seçer.
Görünüşe göre odocdef, ikinci ve bu yüzden içeren ilk gruptan tam bir yol hizmet ediyor, ama bunu nasıl yapacağımı bilmiyorum.

Kullandığım kod aşağıdaki gibidir:
Kod:
syntaxeditor code snippetsub main()
dim assydoc as assemblydocument
dim compdef as componentdefinition
dim compoccurrence as componentoccurrence

Assydoc = buapplication.activedocument

‘ aktif bir axieme’den keşif
Kefiller (assydoc.componentdefinition)
end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end

“Geçmiş fonksiyon bileşenlerinin hiyerarşisini araştırmak için
Alt sorgulamak (kompdef as componentdefinition)
dim i as Full
i = 1 to compdef.occurrences.count
Eşdeğerlik = kodef.occurrences.item(s)
Eğer bilakir.definitiondocumenttype = 12291 o zaman 'komponentdefinition sonra
“Eğer tanımlı bir bileşen varsa (başka bileşenler içeriyor)
Sorgulayıcılar (kompoccurrence.definition)
 
" messagebox.show("part seçildi: " & compoccurrence.name)
Bölümler (compdef, compoccurrence)
Sonunda, eğer sona erirse
Bir sonraki i
end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end end

sub partselection (odef, oocc)
dim odocdef belge olarak
Odocdef = odef.document
dim odococc belge olarak
Odococc = oocc.definition.document

dim opropset as propertyset
Opropset = odococc.propertysets.item ("inventor kullanıcı tanımlanmış özellikleri")

dim oprop as [Property]Hatada bir sonraki sefere devam ediyor
Oprop = opropset.item ("foratura")

Eğer oprop.value = "sovo" o zaman
Odocdef.selectset.select (oocc)
Sonunda, eğer sona erirse
Sonunda alt alt
Benim durumumda sadece belirli özelliklere sahip parçalar var, ama bu bir detay.
İki test yapmak için birine sahip olmayanlar için küçük bir örnek ekleyin.
Birlikte dosyada001 zaten yukarıda gösterilen kod var.
Dosya versiyonu: mucit 2023.

Teşekkür ederim.
 

Ekli dosyalar

vsa kodu;
Seçicinin tanımını ilk seviyeye taşıdım ve tekrarlanan altlara referansı geçtim, her seferinde başka yerel değişkenler gibi alt "yarada" bir seçici olarak yeniden tanımladınız.
Her neyse, işe yaradığını sanıyordum, bilmeme izin ver.

(Note: bu, vsa için sözcülerin düzeltilmesi)

Kod:
public sub testlerielectadham()
"Asla riferimento al documento attivo.
‘Posto preeone cheanca documento attivo sia un assieme
dim odoc mucit olarak.assemblydocument
set odoc = buapplication.activedocument

" ottiene la def youone del componente d'assieme
dim ocompdef mucit.componentdefinition
set ocompdef = odoc.componentdefinition

dim oselectset as selectset
Set oselectset = odoc.selectset

dim smsg as string
dim toafnodes as long
dim isubassemblies as long

" definisci il nome della iproperty e il valore da cercare
dim ipropertyname as string
ipropertyname = "foratura"
dim ipropertyvalue as string
ipropertyvalue = "sovo" "colorare"

" ottiene, la occorrenze dalla def youone del componente peranca documento di tipo assembly
dim ocompocc as componentoccurrence
Ocompdef.occurrences
" controlla se è un'occorrenza figlia (nodo foglia)
Eğer ocompocc.suboccurrences.count = 0 O zaman
msgbox ("padre:" & ocompocc.name)
Açıklama(ocompdef, ocompocc, ipropertyname, ipropertyvalue, oselectset)
Badnodes = toafnodes + 1
Başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka
msgbox (ocompocc.name)
Isubassemblies = isubassemblies + 1
Call processallsubocc_adahm (ocompocc, _
smsg, _
Badnodes, _
Theubassemblies, _
ipropertyname, _
ipropertyvalue, _
Oselectset)

Sonunda, eğer sona erirse
Bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki

msgbox ("n. di nodi foglia: " + cstr(ilafnodes)
msgbox ("numero di sottogruppi: " + cstr(isubassemblies))
Sonunda alt alt

" searcha funzione viene chiamata in modo ricorsivo per l'elaborazione dei sottoassiemi
" per iterare l'intero albero degli assiemi.
Özel alt süreçallsubocc_adahm (byval ocompocc as componentoccurrence, _
Byref smsg as string, _
Byref ileafnodes as long, _
Byref isubassemblies as long, _
Byref ipropname as string, _
Byref ipropval as string, _
Byref oselectset as selectset)

dim osubcompocc as componentoccurrence
Her bir osubcompocc için.suboccurrences
" controlla se è un'occorrenza figlia (nodo foglia)
Eğer osubcompocc.suboccurrences.count = 0 O zaman
msgbox ("figlio: " & osubcompocc.name)
Açıklama(ocompocc.definition, osubcompocc, ipropname, ipropvalval, oselectset)
Badnodes = toafnodes + 1
Başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka başka
smsg = smsg + osubcompocc.name + vscr
Isubassemblies = isubassemblies + 1

Call processallsubocc_adahm (osubcompocc, _
smsg, _
Badnodes, _
Theubassemblies, _
ipropname, _
ipropval, _
Oselectset)
Sonunda, eğer sona erirse
Bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki bir sonraki
Sonunda alt alt

alt bölümler (odef, oocc, ipropname, ipropvalval, oselectset as selectset)
dim odocdef belge olarak
set odocdef = odef.document
dim odococc belge olarak
Set odococc = oocc.definition.document

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

'Ovuzan'ı seçin
'dim oselectset as selectset
'set oselectset = odocdef.selectset
msgbox ("select set: " & oselectset.count)

dim opropset as propertyset
Set opropset = odococc.propertysets.item ("inventor kullanıcı tanımlanmış özellikleri")

dim oprop as property
'on hatası bir sonraki sefere devam ediyor
Set oprop = opropset.item(ipropname)
"Katılım kutusu.show(">" & oprop.name & ": " & oprop.value & "<")

Eğer oprop.value = ipropval o zaman
msgbox (İngilizce) ve oprop.name & ": " & oprop.value & "<" & vcrlf & "dovrebbe selezionare:" & odococc.displayname)
"sagebox.show("sono passato di qui, quindi significa che oprop.vaule = ipropval e adesso devo selezionare la parte")
Oselectset.select (oocc)
Sonunda, eğer sona erirse
Sonunda alt alt
 
@catcherMükemmel! Bu bir merak olduğunu çalışıyor!
Gelmelisiniz ve bir gün veya başka bir içki satın almalısınız.
Teşekkür ederim!
 

Forum İstatistikleri

Konular
58,521
Mesajlar
499,056
Kullanıcılar
104,110
Son Üye
ChristianR

Çevrimiçi Üyeler

Şu anda çevrimiçi üye yok.
Geri
Üst