| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation: Schutz sensibler 3D CAD Daten, egal von wo Sie arbeiten, eine Pressemitteilung
|
Autor
|
Thema: AssemblyFeature AffectedComponent auslesen (650 / mal gelesen)
|
C.Samer Mitglied CAD Administrator

 Beiträge: 72 Registriert: 03.05.2017
|
erstellt am: 24. Mai. 2022 23:18 <-- editieren / zitieren --> Unities abgeben:         
Hello, ich bin am verzweifeln.. Wieso funktioniert denn das nicht, die betroffenen Parts bei einem Assembly Feature herauszufinden (VBA)? (oRootProduct wird weiter oben ausgelesen und funktioniert so; AssemblyFeatures auslesen funktioniert auch) Code:
Dim oAssemblyFeatures As AssemblyFeatures Dim oAssemblyFeature As AssemblyFeature Set oAssemblyFeatures = oRootProduct.GetTechnologicalObject("AssemblyFeatures") Dim oAffectedList() For i = 1 To oAssemblyFeatures.Count Set oAssemblyFeature = oAssemblyFeatures.Item(i) ReDim oAffectedList(oAssemblyFeature.AffectedComponentsCount - 1) oAssemblyFeature.ListAffectedComponents oAffectedList Next
Bitte um Hilfe Danke und Gruß, Samer C. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
  
 Beiträge: 757 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 25. Mai. 2022 08:37 <-- editieren / zitieren --> Unities abgeben:          Nur für C.Samer
Hallo, also ich habe mir basierend auf deinem Code folgendes zusammengebastelt und es läuft. Code:
Sub CATMain() Dim oRootProduct As Product Set oRootProduct = CATIA.ActiveDocument.Product Dim oAssemblyFeatures As AssemblyFeatures Dim oAssemblyFeature 'As AssemblyFeature Set oAssemblyFeatures = oRootProduct.GetTechnologicalObject("AssemblyFeatures")Dim oAffectedList() For i = 1 To oAssemblyFeatures.Count Set oAssemblyFeature = oAssemblyFeatures.Item(i) ReDim oAffectedList(oAssemblyFeature.AffectedComponentsCount - 1) oAssemblyFeature.ListAffectedComponents oAffectedList MsgBox UBound(oAffectedList) + 1 For j = 0 To UBound(oAffectedList) MsgBox oAffectedList(j).Name Next Next End Sub
Da du in deinem Beitrag keinen Fehler / keine Fehlermeldung beschreibst, nehme ich mal an das du einen Kompilierungsfehler bekommst. Darum habe ich oAssemblyFeature mal einfach als Object deklariert. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
C.Samer Mitglied CAD Administrator

 Beiträge: 72 Registriert: 03.05.2017
|
erstellt am: 01. Jun. 2022 09:44 <-- editieren / zitieren --> Unities abgeben:         
'Update 2022-06-01_10-53: Ich habs herausgefunden!! Das Problem ist die Deklaration als AssemblyFeature!! Einfach As AssemblyFeature auskommentieren und es funktioniert!! Danke nochmals!! Code: Dim oAssemblyFeature 'As AssemblyFeature
'Update 2022-06-01_10-34: Hab gerade versucht den Code bei meinem Makro einzubauen und bekomme bei der Funktion "ListAffectedComponents" wieder den Fehler Siehe Bild.. -----------------------------
Hallo, die Zeile Code: oAssemblyFeature.ListAffectedComponents oAffectedList
hat bei mir immer einen Fehler ausgespuckt, ich weiß leider grade nicht mehr welchen, glaube irgendwas mit Zugriff restricted oder so... Dabei habe ich doch eigentlich das gleiche geschrieben?? Aber mit deinem Code funktioniert es.. Ich werde noch versuchen herauszufinden warum.. Danke soweit!! Gruß, Samer C. [Diese Nachricht wurde von C.Samer am 01. Jun. 2022 editiert.] [Diese Nachricht wurde von C.Samer am 01. Jun. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
  
 Beiträge: 757 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 20. Mai. 2025 13:32 <-- editieren / zitieren --> Unities abgeben:          Nur für C.Samer
Hallo, nun brauchte ich diese Funktion selber mal und bekomme nun die Meldung "Klasse nicht registriert" bei der Stelle: Code: Set oAssemblyFeature = oAssemblyFeatures.Item(i)
Ich habe nun schon alles mögliche probiert: - auf 2 anderen Rechner getestet. - das verwendete Release neu registriert. - VBA neu installiert. - verschiedene CATIA Umgebungen (Kunde/Standard) probiert. - Microsoft Visual C++ Redistributables repariert, neu installiert. - usw. Hat jemand eine Idee? Eigentlich sollte "oAssemblyFeatures" ja eine Collection sein, mir wird aber im Überwachungsfenster nur Name, Count und Parent angezeigt. Wäre für einen Tip (oder mehrere) dankbar. Gruß Randle Flag ------------------ Planung ersetzt Fehler durch Irrtum! [Diese Nachricht wurde von Randle am 20. Mai. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12072 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 20. Mai. 2025 15:47 <-- editieren / zitieren --> Unities abgeben:          Nur für C.Samer
|
Randle Mitglied CAD/PLM Consultant
  
 Beiträge: 757 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 20. Mai. 2025 16:58 <-- editieren / zitieren --> Unities abgeben:          Nur für C.Samer
Ja. Getestet mit R32 und R33. Brauchen tue ich es in R27. Nachtrag: Ich habe noch ein paar Screenshots hinzugefügt. ------------------ Planung ersetzt Fehler durch Irrtum! [Diese Nachricht wurde von Randle am 20. Mai. 2025 editiert.] [Diese Nachricht wurde von Randle am 20. Mai. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |