Autor
|
Thema: Product, Part im EDIT (2831 mal gelesen)
|
schotti Mitglied Student
Beiträge: 15 Registriert: 02.05.2005
|
erstellt am: 13. Jun. 2005 17:26 <-- editieren / zitieren --> Unities abgeben:
|
Steffen Hohmann Mitglied
Beiträge: 446 Registriert: 06.03.2002
|
erstellt am: 14. Jun. 2005 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für schotti
|
schotti Mitglied Student
Beiträge: 15 Registriert: 02.05.2005
|
erstellt am: 14. Jun. 2005 11:20 <-- editieren / zitieren --> Unities abgeben:
Hallo, Danke für das Interesse. Ich will mein gesamtes Product (Struktur mit mehreren Products und Parts) nach Parts durchsuchen. Die Köper der Parts will ich lagerichtig in ein neues separates Part kopieren. Mein Problem: In einem Product sind beispielsweise 10 Komponeten vorhanden. Diese enthalten alle das gleiche Part (Teil1.CATPart), sind jedoch an unterschiedlichen Positionen im Product. Wenn ich jetzt die Körper kopieren will, kopiere ich immer nur denselben Köper und zwar an der Position wo der erste Köper (Komponete) positioniert war. Wenn ich das per Hand mache, markiere ich die Komponete (blau hintelgt) wo sich das Part befindet und koperen den Köper dann. So funktionirt es. Ich hoffe Du kannst etwas mit der Beschreibung anfangen.
------------------ MfG schotti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
yvi5555 Mitglied
Beiträge: 19 Registriert: 22.02.2006
|
erstellt am: 08. Mrz. 2006 14:21 <-- editieren / zitieren --> Unities abgeben: Nur für schotti
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 08. Mrz. 2006 15:13 <-- editieren / zitieren --> Unities abgeben: Nur für schotti
Hallo, für das Problem gibts eine Lösung, die allerdings nichts mit dem "blau hinterlegt sein" zu tun hat. Das "blau hinterlegen" (also edit des Parts) geht auch, ändert aber an der falschen lage deiner Parts nichts. Die Ursache deines Problems ist folgende: Wenn du druch die Childrens (Products.Item(n)) deines Roots countest und zur zugehörigen Geometrie willst, gehst du über das .ReferenceProduct.Parent (also das Part-Document) und damit aus der Instance raus. Alle Kopien haben dann die Lage der ersten Instance. So gehts: -einmal rekursiv durch das Root "scannen" und alle Nodes deaktivieren -nochmal rekursiv durchgehen und immer nur den Node der Instance aktivieren, deren Geometrie du kopieren willst -Geometrie kopieren, Node wieder aus und weiter Alles wird lagerichtig kopiert. Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
yvi5555 Mitglied
Beiträge: 19 Registriert: 22.02.2006
|
erstellt am: 09. Mrz. 2006 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für schotti
Hallo Tomtom! Vielen Dank für die Antwort. Hört sich logisch an. Da ich jedoch noch ziemlicher Anfänger in der Makroprogrammierung bin hab ich keine Ahnung, wie dazu der Code aussehen muss. Könntest du mir dabei helfen? Das würde mich rießig freuen (und nochmal 10 Unities geben ) Ich benutze die Sprache CATScript. Viele Grüße, Yvonne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
yvi5555 Mitglied
Beiträge: 19 Registriert: 22.02.2006
|
erstellt am: 10. Mrz. 2006 09:06 <-- editieren / zitieren --> Unities abgeben: Nur für schotti
Hi! Ich hab jetzt mal versucht dies zu programmieren, aber es funktioniert nicht. Kann mir da b i t t e jemand weiterhelfen? Es kommt die Fehlermeldung "Beim Aufrufen einer Unterroutine dürfen keine Klammern verwendet werden." Ich denke aber, ich habe es nach Anweisung der Catia-Hilfe aufgebaut. Was mache ich falsch? Viele Grüße, Yvonne Folgender Code soll alle Nodes deaktivieren (wie von TomTom oben vorgeschlagen) '------------------------------------------------------ Dim n As Integer
For n = 1 To Products1.count Step 1 Dim ProdName As CATBSTR ProdName = Products1.Item(n).Name Product1.RemoveShapeRepresentation (ProdName,catRep3D,TRUE) Next
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
yvi5555 Mitglied
Beiträge: 19 Registriert: 22.02.2006
|
erstellt am: 10. Mrz. 2006 09:32 <-- editieren / zitieren --> Unities abgeben: Nur für schotti
Hi! Hab die Antwort! Code: '---------------------------------------------- Dim n As Integer For n = 1 To Products1.count Step 1 Dim Prod1 As Product Set Prod1 = Products1.Item(n) prod1.DesactivateDefaultShape Next
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 10. Mrz. 2006 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für schotti
Hallo, das geht ein bischen anders. 1.) die Methode zum deaktivieren des Knotenpunktes ist .DesactivateDefaultShape 2.) Du musst das ganze rekursiv ausführen, falls du mehr als eine Ebene in deiner Productstruktur hast. 3.) Knotenpunkte von Produkten lassen sich so nicht deaktivieren, deshalb nur auf Parts anwenden. So gehts: Sub CATMain() Set oRoot = CATIA.ActiveDocument Set oProduct = oRoot.Product Set oProducts = oProduct.Products SUB_DeaktivateNodes oProducts End Sub Sub SUB_DeaktivateNodes(oProducts) For n = 1 To oProducts.Count If TypeName(oProducts.Item(n).ReferenceProduct.Parent) = "PartDocument" Then oProducts.Item(n).DesactivateDefaultShape ElseIf TypeName(oProducts.Item(n).ReferenceProduct.Parent) = "ProductDocument" Then If oProducts.Item(n).Products.Count > 0 Then SUB_DeaktivateNodes oProducts.Item(n).Products End if End if Next End Sub Falls du auch Components und/oder V4Modelle, CGRs etc. in deiner Struktur hast, wirds ein bischen länger. Zu lange und zu viel Arbeit um es hier zu posten
Hoffe es hilft dir soweit weiter. Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 10. Mrz. 2006 09:35 <-- editieren / zitieren --> Unities abgeben: Nur für schotti
|
yvi5555 Mitglied
Beiträge: 19 Registriert: 22.02.2006
|
erstellt am: 10. Mrz. 2006 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für schotti
|