Autor
|
Thema: Copy / Paste special ohne Link - wieder ;) (1152 / mal gelesen)
|
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 16. Feb. 2018 06:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen Ich möchte durch Product.Products )Der CATIA Baum) durchgehen, und jedes Body ohne Link zum anderes Part einfugen. Ich habe wieder Probleme mit Copy / PasteSpecialWithoutLink... kann mir jemand was ich wieder Falsch gemacht habe zeigen? Code: Sub xStart() Dim asp_adapter As PartDocument Dim asp_product As ProductDocument Dim sourcesel As Selection Dim targetsel As Selection Dim oProd As Product Dim oPart As Part Dim oFilter(0) As VariantoFilter(0) = "Product" Dim odSel As Selection Set odSel = CATIA.ActiveDocument.Selection Set oSel = odSel oStatus = oSel.SelectElement2(oFilter, "Wskaż ASP z którego chcesz skorzystać", False) Set asp_product = oSel.Item(1).Value.Parent odSel.Clear oSel.Clear oFilter(0) = "Part" oStatus = oSel.SelectElement2(oFilter, "Wskaż Hauptadapter", False) Set asp_adapter = oSel.Item(1).Value.Parent Set sourcesel = CATIA.ActiveDocument.Selection
For Each oProd In asp_product.Product.Products If TypeName(oProd.ReferenceProduct.Parent) = "PartDocument" Then sourcesel.Clear Set oPart = oProd.ReferenceProduct.Parent.Part For Each oBody In oPart.Bodies oBody.Name = oProd.PartNumber sourcesel.Add oBody Next sourcesel.Copy sourcesel.Clear Set targetsel = asp_adapter.Selection targetsel.Clear targetsel.Add asp_adapter.Part targetsel.PasteSpecial "CATPrtResultWithOutLink" asp_adapter.Part.Update targetsel.Clear sourcesel.Clear End If Next End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KADv5 Mitglied Ingenieur
Beiträge: 13 Registriert: 22.01.2018 Intel Xeon E5-2643 3,4Ghz 12,0 GB Ram Win 7 Enterprise 64-bit Catia V5R26 SP3 HF21
|
erstellt am: 16. Feb. 2018 07:36 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Wenn ich dich richtig verstehe soll bei folgender Struktur: -Product1 --Part1 ---Body1 --Part2 ---Body2 wenn bei der ersten Selektion das Product1 und bei der zweiten Selektion das Part1 gewählt wird Body1 und Body2 tot in Part1 kopiert werden? Wenn Ja: lösche die Zeile:
Code: Set targetsel = asp_adapter.Selection
dann funktioniert es Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 21. Apr. 2022 14:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen Ich denke über erweiteres copy/paste special ohne Link funktion bzw. Makro... Ich möchte Bodies auswahlen und ohne Link hinzufugen,aber auch Zielbody nach das Quelle-PartName automatisch umbennenen. Wie kann ich frühertes Makro änderm zu geht es? Gruß Lukas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Apr. 2022 14:15 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
|
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 21. Apr. 2022 17:04 <-- editieren / zitieren --> Unities abgeben:
Ist das wirklisch so kompliziert? Alles was ich möchte ist: -mit Selectelement3 Bodies nutzen -PartName von Bodies lesen und in Array speichern -Bodies in ZielPart ohne Link einfugen -Eingefugte Bodies mit Namen von Array umbenennen Die Bodies kann das gleiche Namen haben egal Lukas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Apr. 2022 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Lukas Und wie weit bist du mit deinem Programmierversuch gekommen? Wo hast du Probleme? Gruß Bernd PS: Hast du dir die verlinkte Diskussion komplett angeschaut? Beim groben überfliegen sahen es für mich so aus, dass diese deinem Ziel schon recht nahe kommt.
------------------ Warum einfach, wenn es auch kompliziert geht. 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: 22. Apr. 2022 07:37 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Moin Sylas, in dem Beitrag, den Bernd verlinkt hat, habe ich das fertige Scripte gepostet, was du suchst. Wo ist also das Problem? Funktioniert es bei dir nicht? Gruß tomtom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 01. Mai. 2022 17:00 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von tomtom1972: Moin Sylas, in dem Beitrag, den Bernd verlinkt hat, habe ich das fertige Scripte gepostet, was du suchst. Wo ist also das Problem? Funktioniert es bei dir nicht? Gruß tomtom
Moin TomTom Deinen Skript läuft super! Noch ein Kleinigkeit: Ich möchte nur PartName als Targetbody Name statt gantzen Pfag bis zum Root haben. Wie kann ich dass anpassen? Gruß Lucas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Mai. 2022 17:16 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Lucas Schau dir mal die Zeile oLastBody.Name = ... an. Lass mal testweise einen der beiden Strings die da kombiniert werden weg. 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: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 01. Mai. 2022 17:36 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: Servus LucasSchau dir mal die Zeile [i]oLastBody.Name = ... an. Lass mal testweise einen der beiden Strings die da kombiniert werden weg. Gruß Bernd [/i]
Hallo Bernd Zitat:
Set oLastBody = oZPBodies.Item(oZPBodies.Count) aLastBodyName = Split(aSelectedElements(j).Displayname, "!") oLastBody.Name = aLastBodyName(0) & aLastBodyName(1) oZP.ReferenceProduct.Parent.Part.Update
Ich glaube, was do meinst sind die Linien Ich vermute aLastBodyName(0) wurde der Pfad und verscheinlish aLastBodyName(1) wurde PartName. Aber ich muß das uberprufen. Danke für deinen Tipp Gruß Lucas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 12. Jun. 2022 21:47 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von tomtom1972: Moin Sylas, in dem Beitrag, den Bernd verlinkt hat, habe ich das fertige Scripte gepostet, was du suchst. Wo ist also das Problem? Funktioniert es bei dir nicht? Gruß tomtom
Hallo tomtom! Noch wieder zurück zu dem Thema Wurde das möglich der Code so andern, dass die Body ist auch mit die Farbe kopiert werden? Jetzt Catia fügst die Bodies mit standard Farben Ich weiß ich soll das mit Selektion und visproperties schaffen, aber ich weiß nicht wo soll ich das in deinem Code hinzufügen Gruß Lucas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 13. Jun. 2022 11:45 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Lucas Um "welche" Farben handelt es sich? Ist der ganze Körper eingefärbt oder nur bestimmte Features/Flächen? Grob würde es so gehen: an der Stelle an der der Körper kopiert wird die Farbe auslesen (und Werte zwischenspeichern) (GetRealColor oder GetVisibleColor?) und nach dem einfügen den letzten Körper im Zielpart selektieren und die Farbe zuweisen Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 13. Jun. 2022 12:15 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
|