| |
| KISTERS 3DViewStation: Mit Modellbasiertem Design zum Modellbasierten Unternehmen , eine Pressemitteilung
|
Autor
|
Thema: Copy Paste Part zu Part (1054 / mal gelesen)
|
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 04. Mrz. 2019 17:00 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, unten stehend mein Code in vb.NET, mit dem ich ein Body aus einem Part in ein anderes Part kopieren möchte, aber es tut sich nichts. Copy und paste innerhalb des ersten Parts funktioniert aber: myProductDoc.Selection.Search("Name='NeueLage*',sel") myCopyBodyNeu = myCatiaDoc.Part.Bodies.Item(b) myPart.InWorkObject = myCopyBodyNeu mySelection = myProductDoc.Selection mySelection.Clear() mySelection.Add(myCopyBodyNeu) mySelection.Copy() ' mySelection.PasteSpecial("CATPrtResultWithOutLink") myCount = myProductDoc.Product.Products.Count() 'Greift den Namen des letzten Elements des Products ab myName = myProductDoc.Product.Products.Item(myCount).Name mySelection2 = myProductDoc.Selection myProductDoc.Selection.Search("Name='myName*',sel") myProduct2 = myProduct.Products.Item(myName) mySelection2.Add(myProduct2) myCatiaDoc = myProduct2.ReferenceProduct.Parent myPart2 = myCatiaDoc.Part mySelection2.Add(myPart2) myPart2 = mySelection2.Item(1).Value.ReferenceProduct.Parent.part myProduct2.ApplyWorkMode(DesignMode) myPart2.InWorkObject = myPart2.MainBody mySelection.PasteSpecial("CATPrtResultWithOutLink") Was fehlt mir denn noch? 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: 04. Mrz. 2019 19:11 <-- editieren / zitieren --> Unities abgeben: Nur für Tweety79
Servus Was hast du den kopiert? Wo willst du das einfügen? Direkt ins Part, in einen Körper? Dann musst du auch das entsprechende selektieren (siehe auch hier) Warum hast du beim einfügen zwei Elemente selektiert? Was soll den sie Suche in dem Code? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 05. Mrz. 2019 12:31 <-- editieren / zitieren --> Unities abgeben:
Servus, ich habe im Product ein Part mit dem Namen myPart. Darin ist ein Body mit dem Namen myCopyBodyNeu; dieses kopiere ich. Dann gibt es das Part im Product - myPart2. Dort soll das Body aus Part 1 rein. Gruß 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: 05. Mrz. 2019 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für Tweety79
Servus Das Kopieren klappt ja vermutlich (Watchfenster). Hast du auch das (ausschließlich) Zielpart gewählt? (bitte mit Watchfenster prüfen) Du hast 2x myPart2, welches ist nun das gewünschte? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 05. Mrz. 2019 15:02 <-- editieren / zitieren --> Unities abgeben:
Hi, also es wird das Zielpart angesprochen, in das der Body eingefügt werden soll. Ich habe statt PasteSpecial die boolsche Operation Add eingebaut und das Body an Mainpart gefügt. myShapeFac = myPart2.ShapeFactory myShapeFac.AddNewAdd(myCopyBodyNeu) Warum aber PasteSpecial nicht funktioniert, kann ich mir nicht erklären. Mit der Boolschen Operation Add habe ich aber das Problem, dass eine Fehlermeldung kommt, wenn ich aktualisieren will, auch wenn der Body, der geadded wurde bereits tote Geometrie ist. Gruß 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: 05. Mrz. 2019 17:31 <-- editieren / zitieren --> Unities abgeben: Nur für Tweety79
Servus Hast du dir den von mir verlinkten Code mal angesehen? Ich hab diese mal auf den Maibody angepasst: Code: Sub CATMain() Dim oActiveDoc As ProductDocument Set oActiveDoc = CATIA.ActiveDocument Dim oPart1Doc As PartDocument Dim oPart2Doc As PartDocument Set oPart1Doc = oActiveDoc.Product.Products.Item(1).ReferenceProduct.Parent Set oPart2Doc = oActiveDoc.Product.Products.Item(2).ReferenceProduct.Parent Dim oCopyObject As Body Dim oPasteObject As Body Set oCopyObject = oPart1Doc.Part.Mainbody Set oPasteObject = oPart2Doc.Part oActiveDoc.Selection.Clear oActiveDoc.Selection.Add oCopyObject oActiveDoc.Selection.Copy oActiveDoc.Selection.Clear oActiveDoc.Selection.Add oPasteObject oActiveDoc.Selection.PasteSpecial "CATPrtResultWithOutLink" oPart2Doc.Part.Update End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 15. Mrz. 2019 14:32 <-- editieren / zitieren --> Unities abgeben:
|