| |
| KISTERS 3DViewStation - Der Schlüssel zur Einsparung von CAD-Lizenzen, eine Pressemitteilung
|
Autor
|
Thema: 3D componenten wechseln (743 / mal gelesen)
|
Sylas Mitglied
Beiträge: 349 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 29. Jan. 2020 10:14 <-- editieren / zitieren --> Unities abgeben:
Ich habe eine Frage: Ich möchte ein Makro schreiben, das die 3D-Komponenten verändert. Aber nicht wie die Standardfunktionen von CATIA (Komponente ersetzen / Komponente in Sitzung ersetzen), sondern mit eine Ersatzteil vom 3D-Modell ausgewählt. Ist das überhaupt möglich? Gruß Lukas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Jan. 2020 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Lucas Du könntest aus dem selektierten Objekt das Product oder den Filepath ermitteln und dann per ReplaceProduct bzw ReplaceComponent das Ersetzen durchführen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 349 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 29. Jan. 2020 11:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich habe volgendes geschreiben: Code: Sub CATMain() Dim oPartToBeReplaced As Product Dim oPartToReplaceWith As ProductDim dSel As Selection Dim oSel Dim oSelType(0) Dim oProd As Product Set oProd = CATIA.ActiveDocument.Product Set dSel = CATIA.ActiveDocument.Selection Set oSel = dSel oSelType(0) = "Product" sStatus = oSel.SelectElement2(oSelType, "Wskaż komponent do zmiany", True) Set oPartToBeReplaced = oSel.Item(1).Value oSel.Clear sStatus = oSel.SelectElement2(oSelType, "Wskaż komponent którym chcesz zastąpić", True) Set oPartToReplaceWith = oSel.Item(1).Value oProd.Products.ReplaceProduct(oPartToBeReplaced, oPartToReplaceWith, True) End Sub
aber die Fette Linie gibts mir Fehler. Was habe ich falsch gemacht Gruss Lucas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Jan. 2020 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Wie lautet die Fehlermeldung? ggf mal folgenden Änderungen probieren: Code: Set oPartToBeReplaced = oSel.Item(1).LeafProduct oSel.Clear sStatus = oSel.SelectElement2(oSelType, "Wskaż komponent którym chcesz zastąpić", false)Set oPartToReplaceWith = oSel.Item(1).Value.ReferenceProduct
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 349 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 29. Jan. 2020 12:07 <-- editieren / zitieren --> Unities abgeben:
Hallo Die Fehlermeldung ist: Method "ReplaceProduct" of object "Products" failed Die fette Linie ist im Editor rot Vielleicht muss ich das mit Object verbunden, wie:
Code:
Set oNewProduct=oProd.Products.ReplaceProduct(oPartToBeReplaced, oPartToReplaceWith, True)
? [Diese Nachricht wurde von Sylas am 29. Jan. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Jan. 2020 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Bei mir läuft es. Was hast du als erstes selektiert? (wenn zuvor das Rootproduct selektiert ist sollte es fehl schlagen, ggf bei der ersten Selektion false verwenden) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 349 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 29. Jan. 2020 12:23 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: ServusBei mir läuft es. Was hast du als erstes selektiert? (wenn zuvor das Rootproduct selektiert ist sollte es fehl schlagen, ggf bei der ersten Selektion [i]false verwenden) Gruß Bernd [/i]
Grund is das ich habe Hauptproduct mit mehrere Produkte darein. Ich habe schon "false" bei selectelement2 geschreiben - hilft nicht EDIT: Das wahr das! Ich habe noch eine Selektion gemacht, mit welches definiere ich Unterprodukt, wo ich replace durfen will Gruss Lucas [Diese Nachricht wurde von Sylas am 29. Jan. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Jan. 2020 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
|