Autor
|
Thema: VB-Script oder CATScript für rename, past special und replace. (5628 mal gelesen)
|
mrgod Mitglied
Beiträge: 28 Registriert: 22.01.2010
|
erstellt am: 22. Jan. 2010 19:32 <-- editieren / zitieren --> Unities abgeben:
Also, Freunde, nicht böse sein wenn ich das frage, was schon beantwortet wurde. Leider habe ich im Forum nicht die Antwort auf meine Frage gefunden. Ich bin totaler Anfänger in Macroserstellung und kenne mich mit VB-Scripten nur wenig aus. Ich hoffe, dass Sie mir zu mindest mal den Weg zeigen, wie ich mein Problem lösen kann: Ich habe ein Part: "XXX-1", in diesem Part ist in einem Geometrischem Set - "AAA" ein Element enthalten: Fläche_1 - Fläche als Ergebnis von Extrapolate In einem anderen Fenster gibt es ein anderes Part "YYY-2" mit einem geometrischen Set "BBB" in dem ein Element "Fläche_B" als Result liegt. Ich versuche folgendes als Script zu implementieren: Fläche_1 soll innerhalb des Sets "AAA" in "Fläche_A" umbenannt werden (also rename). Fläche_A soll als Result in Part "YYY-2" in den Set "BBB" kopiert werden (also als "past special as result") Fläche_B soll durch die Fläche_A ersetzt werden (also replace) Ich habe mein Problem natürlich abstrahiert. Im Grunde muss ich ein element aus einem Part in ein anderes Part kopieren als Result, dann umbenennen und dann ein Element ersetzen. Aber wenn ich alle Zwischenschritte als getrennte Scripts nachvollziehe, dann kann ich ein Gesamtscript schreiben. Ich weiß nicht, ob ich zu viel oder zu wenig Info für mein Problem gegeben habe. Aber ich hoffe Sie lassen mich nicht im Stich. Danke für alle im Voraus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 22. Jan. 2010 19:53 <-- editieren / zitieren --> Unities abgeben: Nur für mrgod
Hallo und Willkommen im Forum, es geht bei deiner Problemstellung nicht um catscript oder VB-script, da das Ergebnis das selbe ist. Du solltest dich zuerst einmal allgemein mit der Makroprogrammierung auseinander setzten. Hierzu hilft dir z.B. die Foren-Suche, die CATIA-Hilfe und einige Bücher. Dann wirst du z.B. auch den Makrorekorder kennen lernen, mit dem das ganz einfach zu lösen ist. Grüsse Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mrgod Mitglied
Beiträge: 28 Registriert: 22.01.2010
|
erstellt am: 22. Jan. 2010 20:05 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von V5Playaz: Hallo und Willkommen im Forum,es geht bei deiner Problemstellung nicht um catscript oder VB-script, da das Ergebnis das selbe ist. Du solltest dich zuerst einmal allgemein mit der Makroprogrammierung auseinander setzten. Hierzu hilft dir z.B. die Foren-Suche, die CATIA-Hilfe und einige Bücher. Dann wirst du z.B. auch den Makrorekorder kennen lernen, mit dem das ganz einfach zu lösen ist. Grüsse Dominik
Ich grüße dich auch Den Macro-Recorder habe ich versucht, der erfasst aber keine Rename-Befehle, außerdem kann er "past special as result" auch nicht erfassen. Wenn du "einige Bühcher" erwähnst, könntest du etwas präzise sein ? Was für Bücher ? In Forum habe ich nach meinen Befehlen gesucht aber nichts gefunden, was ich einigermassen übernehmen könnte. Ich sag' ja, dass ich in Sachen Scripting ein noob bin. Welche tutorials und wo könnte ich zur Hilfe ziehen. Die jenige, die ich im Netz gefunden habe, waren als Kurse gedacht...also keine Bücher... 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: 23. Jan. 2010 07:16 <-- editieren / zitieren --> Unities abgeben: Nur für mrgod
|
mrgod Mitglied
Beiträge: 28 Registriert: 22.01.2010
|
erstellt am: 02. Feb. 2010 10:10 <-- editieren / zitieren --> Unities abgeben:
Also, hab doch alleine die Lösung gefunden: '---RENAME:--- '-- Aufpassen, dass keine Doppelnamen auftretten ! --- Dim NEW_NAME As Parameter Set NEW_NAME = parameters1.Item("Alter Name") NEW_NAME.Name = "Neuer Name" '------------- Für Paste Special muss man mit MacroRecorder ein Script für COPY-PAST aufnehmen wie üblich und dann mit EDIT in neuem Script die Zeile finden mit selection2.Paste und die ändern in selection2.PasteSpecial "CATPrtResultWithOutLink" *** Für Elemente ersetzen kann man einen Trick machen. Statt Element macht man einen Join und dann ersetzt man die Referenz im Join auf ein neues Element: '--- REPLACE --- Dim a As AnyObject Set a = GEO_SET.HybridShapes.Item ("Name des neuen Elements") Dim Ref1 As Reference Set Ref1 = PART_X.CreateReferenceFromObject (a) Dim JOIN As HybridShapeAssemble Set JOIN = GEO_SET.HybridShapes.Item ("Name des Joins") JOIN.AddElement Ref1 JOIN.RemoveElement 1 '--------------- [Diese Nachricht wurde von mrgod am 02. Feb. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kiki K. Mitglied Student
Beiträge: 11 Registriert: 27.05.2014 CATIA V5 R19, mit zusätzlichen speziell Angepassten Varianten für BMW, Audi & VW sowie Mercedes
|
erstellt am: 27. Mai. 2014 11:46 <-- editieren / zitieren --> Unities abgeben: Nur für mrgod
Hallo, ich hänge ebenfalls an dem Problem per Makro ein "Replace" durchzuführen. Ich habe auch bereis hier im Forum die bestehenden Beiträge gelesen. Das Buch von Dieter Ziethen kenne ich auch bereits. Jedoch sehe ich bei den veröffentlichten Codeabschnitten nicht ganz durch. Kann mir jemand helfen? am besten mit etwas Code und Kommentaren dazu die sich besser erklären. Vielen Dank schonmal. 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: 27. Mai. 2014 11:52 <-- editieren / zitieren --> Unities abgeben: Nur für mrgod
Servus Willkommen im Forum. Bitte Sytseminfo ausfüllen. Kannst du bitte näher beschreiben was du mit "replace" meinst? (Nur Teil der PartNumber, in der Baugruppe ein Part, einen Geometrie im PartDesign, ...) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kiki K. Mitglied Student
Beiträge: 11 Registriert: 27.05.2014 CATIA V5 R19, mit zusätzlichen speziell Angepassten Varianten für BMW, Audi & VW sowie Mercedes
|
erstellt am: 27. Mai. 2014 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für mrgod
Ich habe ein übergeordnetes Product in dem mehrere weitere Products sind. Im ersten untergeordneten Product befindet sich ein Part mit einigen Punkten in einem Geo Set. Diese Punkte sind veröffentlicht(publiziert). Danach kommen in meiner Struktur einige weitere Products, in jedem Product ist dann ein Part in dem die Geometrie zu finden ist. Diese Products enthalten bereits einen Punkt in einem Geo Set. Diesen Punkt möchte ich per Makro durch einen von den veröffentlichten Punkten ersetzen(replacen). Per Mausklicks kann ich das. Nur das bekannte Problem ist das der Makrorecorder in diesem Fall keine Hilfe ist. Ich hoffe das war jetzt verständlich. Ich kann aber auch nochmal gern einen Screenshot meiner CATIA Struktur veröffentlichen. 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: 27. Mai. 2014 17:37 <-- editieren / zitieren --> Unities abgeben: Nur für mrgod
Servus Leider kann man diese Funktion "Replace" nicht mit einem Makro verwrklichen. Deshalb gibt es den Workarond de Geometrie nicht direkt auf ein Element zu beziehen, sondern zB auf einen Join oder ein Extract (oder ach auf eine Veröffentlichung?). Bei diesen Geometrien kann man die Referenzen austauschen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kiki K. Mitglied Student
Beiträge: 11 Registriert: 27.05.2014 CATIA V5 R19, mit zusätzlichen speziell Angepassten Varianten für BMW, Audi & VW sowie Mercedes
|
erstellt am: 02. Jun. 2014 10:13 <-- editieren / zitieren --> Unities abgeben: Nur für mrgod
Hallo ich habe meine Ausgangssituation etwas angepasst. Innerhalb meines Parts "1234567__0103__DRUCKSTUECK" möchte ich den vorhandenen Punkt "MusterSPP001" durch den Punkt "SPP_0010" ersetzen / ein replace durchführen (siehe kleine Übersicht). Kann mir jemand sagen wie ich das programmieren kann? Oder kann mir jemand vielleicht auch etwas Code zur Verfügung stellen? Vielen Dank schonmal. 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: 02. Jun. 2014 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für mrgod
|
Kiki K. Mitglied Student
Beiträge: 11 Registriert: 27.05.2014 CATIA V5 R19, mit zusätzlichen speziell Angepassten Varianten für BMW, Audi & VW sowie Mercedes
|
erstellt am: 02. Jun. 2014 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für mrgod
|
Kiki K. Mitglied Student
Beiträge: 11 Registriert: 27.05.2014 CATIA V5 R19, mit zusätzlichen speziell Angepassten Varianten für BMW, Audi & VW sowie Mercedes
|
erstellt am: 02. Jun. 2014 15:39 <-- editieren / zitieren --> Unities abgeben: Nur für mrgod
Hab jetzt selbst eine Lösung gefunden. Für alle die vielleicht einmal vor der selben Aufgabe stehen: Mein Achsensystem.3 ist auf den Punkt "MusterSPP001" referenziert. "per Hand" kann man den durch den "SPP_0010" ersetzen. Jedoch nicht per Makro. Hier muss man die Referenz des "Achsensystem.3" ändern. -> einfach Doppelklick auf das Symbol des Achsensystem.3 und dann die Referenz ändern. (siehe Übersicht) Der Vorteil für alle: der Makrorecorder liefert hier ein recht verständlichen Code, den man mit etwasErfahrung und Übung recht leicht verallgemeinern kann. mfg Kiki Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |