Autor
|
Thema: Entfernen, PasteSpezial (832 mal gelesen)
|
florian.schüler Mitglied Fachinformatiker Systemintegration
Beiträge: 5 Registriert: 15.06.2009
|
erstellt am: 15. Jun. 2009 09:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, Strukturbaum .... -Elektrodenmodell (Körper) -e01 (GEO Set) -e01 (Körper) -Elektrodenmodell (Körper,Verknüpft) .... und zwar habe ich das Problem das ich mit Entfernen das letzte Elektrodenmodell auswählen möchte, aber das Makro wählt das erste aus. Hier ist der Code ausschnitt: Dim body3 As Body Set body3 = bodies3.Item("Elektrodenmodell")
selection1.Add (body3) selection1.Copy selection1.Selection.PasteSpecial "CATPrtResult" 'Hier erstelle ich das zweite Elektrodenmodell Dim remove1 As Remove Set remove1 = shapeFactory1.AddNewRemove(body3)
Wie kann ich das am besten umsetzen? Gibt es vielleicht eine möglichkeit das PasteSpezial zu ändern und Eine "Copy of Elektrodenmodell" zu erstellen und diese dann zu verwenden?
Vielen Dank im Vorraus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
theshadog Mitglied
Beiträge: 61 Registriert: 18.03.2009
|
erstellt am: 15. Jun. 2009 10:12 <-- editieren / zitieren --> Unities abgeben: Nur für florian.schüler
Problem ist, dass beide gleich heißen. Also entweder, du benennst eines von beiden um oder du machst es über eine Anklickanwahl - der anwender muss durch Anklicken das zu löschende Objekt auswählen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 15. Jun. 2009 10:13 <-- editieren / zitieren --> Unities abgeben: Nur für florian.schüler
Hallo Florian, leider verstehe ich nicht wirklich was du machen möchtest. Du hast einen Body, diesen kopierst du und fügst ihn als Result wieder ein. Dann willst du wahrscheinlich im Anschluss das Original (von der Kopie) löschen um somit einen Know-How schutz zu realisieren? Ich würde die Selektion nochmal mit Clear leeren und den Body nochmal reinstecken und dann die Selection mit Remove löschen. Ansonsten wird der letze eingefügte Body selektiert (das ist auch so wenn man es händisch macht). Mit einem Remove löschst du immer die Selektion. Das kann also wie in deinem Fall zu ungewollten Ergebissen führen. D.h. wenn man mit Selection arbeitet dann immer auch sicherstellen das das richtige in der Selektionn ist. (ggf. halt nochmals leeren und neu hinzufügen ) ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
florian.schüler Mitglied Fachinformatiker Systemintegration
Beiträge: 5 Registriert: 15.06.2009
|
erstellt am: 15. Jun. 2009 10:32 <-- editieren / zitieren --> Unities abgeben:
Also löschen möchte ich es nicht. Die Funktion entfernen soll das letzte Elektrodenmodell von dem Körper e01 entfernen und dadurch wird automatisch das letzte Elektrodenmodell in den den Körper e01 verschoben. theshadog hat es erkannt das problem ist das die beiden gleich benannt sind und Catia wählt automatisch das erste Elektrodenmodell im Baum zum bearbeiten aus. Ich suche nach einer möglichkeit das letzte Elektrodenmodell für die Funktion entfernen zu benutzen sodass mir das original erhalten bleibt. Oder bei dem Vorgang PasteSpecial das Result "das Verknüpfte Elektrodenmodell" umzubennen sodass ich nicht den gleichen namen dafür habe. Nur wie vergeben ich bei Pastespecial einen anderen namen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 15. Jun. 2009 10:39 <-- editieren / zitieren --> Unities abgeben: Nur für florian.schüler
Hallo, ok . Naja das Teil das du "boolst" hast du doch noch in der Selektion. D.h. du kannst doch mit Selection.Item(1).Value.Name den Namen ändern nach dem einfügen. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
theshadog Mitglied
Beiträge: 61 Registriert: 18.03.2009
|
erstellt am: 15. Jun. 2009 10:45 <-- editieren / zitieren --> Unities abgeben: Nur für florian.schüler
Grad eine Idee gehabt. Vielleicht etwas umständlich, aber vielleicht klappts ja: Code: Dim body3 As Body Set body3 = bodies3.Item("Elektrodenmodell") body3.name = "Tempname" 'temporäres Umbenennen des Originals'Deine Funktion Set body3 = bodies3.Item("Elektrodenmodell") selection1.Add (body3) selection1.Copy selection1.Selection.PasteSpecial "CATPrtResult" 'Hier erstelle ich das zweite Elektrodenmodell Dim remove1 As Remove Set remove1 = shapeFactory1.AddNewRemove(body3)
' Name wieder auf Elektrodenmodell setzen: Set body3 = bodies3.Item("Tempname") body3.name = "Elektrodenmodell"
Probiers mal aus, hoffe das geht so Edit: Ah oder so. Dachte mir fast, dass es da eine elegantere Lösung gibt. [Diese Nachricht wurde von theshadog am 15. Jun. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
florian.schüler Mitglied Fachinformatiker Systemintegration
Beiträge: 5 Registriert: 15.06.2009
|
erstellt am: 15. Jun. 2009 11:08 <-- editieren / zitieren --> Unities abgeben:
|
florian.schüler Mitglied Fachinformatiker Systemintegration
Beiträge: 5 Registriert: 15.06.2009
|
erstellt am: 15. Jun. 2009 11:15 <-- editieren / zitieren --> Unities abgeben:
|