| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: Annotation Rename-Tool Textteil suchen und ersetzen (1404 / mal gelesen)
|
Seele Mitglied Konstrukteur
Beiträge: 364 Registriert: 11.06.2003
|
erstellt am: 15. Dez. 2017 08:51 <-- editieren / zitieren --> Unities abgeben:
Hallo hat jemand zufällig schon mal ein Tool Programmiert oder zumindest Ansätze davon, um in Annotation Texte suchen zu lassen und diesen dann automatisch ersetzen zu lassen? Genaue Beschreibung: Ich gebe unsere COM-0815 ein und diese soll in allen vorhandenen Texten auf dem Blatt bzw. sogar allen Blättern mit COM-4711 automatisch ersetzt werden. Gruß Wolfgang ------------------ alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. Werden wir es schaffen? Ja wir schaffen das !!! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MiBr Mitglied Konstrukteur
Beiträge: 508 Registriert: 30.06.2015 HP Z440 Workstation 64GB Modeling 20.1.2.0 (x64) Drafting 20.1.2.0 (64x) klas. UI Modell Manager 20.1.2.0 Ansys Workbeanch 19R3 Mechanical Pro
|
erstellt am: 15. Dez. 2017 09:51 <-- editieren / zitieren --> Unities abgeben: Nur für Seele
|
Greskamp Mitglied Ingenieur
Beiträge: 523 Registriert: 12.03.2003
|
erstellt am: 15. Dez. 2017 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für Seele
Hallo Wolfgang , würde dir das auch fürs ME10 helfen, Annotation kann ja auch mit ME10-Befehlen geändert werden, da habe ich zumindest mal was geschrieben.
Code: DEFINE Txt_tauschen LOCAL tauschtxt LOCAL getauschttxt LOCAL Lesetxt LOCAL Zaeler LET Zaeler 0 (*LET tauschtxt '0300'*) READ STRING 'Text eingeben (mit Anfuehrungszeichen) der getauscht werden soll' tauschtxt READ STRING 'Text eingeben (mit Anfuehrungszeichen) in den getauscht werden soll' getauschttxt (* INQ_SELECTED_ELEM SELECT GLOBAL BLUE AND GLOBAL TEXTS ALL CONFIRM *) INQ_SELECTED_ELEM SELECT GLOBAL TEXTS ALL CONFIRM IF (INQ 14>0) LOOP EXIT_IF (INQ 14=0) LET Lesetxt (INQ 902) IF (LeseTxt = tauschtxt) LET Zaeler (Zaeler +1) CHANGE_TEXT getauschttxt GLOBAL POINTER (INQ 332) END END_IF INQ_NEXT_ELEM END_LOOP DISPLAY ('Text: "'+tauschtxt+'" in Zeichnung '+(STR Zaeler)+' mal getauscht') ELSE DISPLAY 'Kein Text in der Zeichnung getauscht' END_IF EDIT_PART TOP END_DEFINE DEFINE Txt_vorne_entfernen LOCAL ENTNOMMTEXT LOCAL TEXTLAENGE LOCAL TEXTLAENGE1 LOCAL LESETXT LOCAL LESETEXTVORNE LOCAL SCHREIBTEXT LOCAL Zaeler LET Zaeler 0 READ STRING 'Text eingeben (mit Anfuehrungszeichen) der von vorne entnommen werden soll' ENTNOMMTEXT LET TEXTLAENGE (LEN ENTNOMMTEXT) (* READ STRING 'Text eingeben (mit Anfuehrungszeichen) in den getauscht werden soll' getauschttxt *) (* INQ_SELECTED_ELEM SELECT GLOBAL BLUE AND GLOBAL TEXTS ALL CONFIRM *) INQ_SELECTED_ELEM SELECT GLOBAL TEXTS ALL CONFIRM IF (INQ 14>0) LOOP EXIT_IF (INQ 14=0) LET LESETXT (INQ 902) LET TEXTLAENGE1 (LEN LESETXT) LET LESETEXTVORNE (SUBSTR LESETXT 1 TEXTLAENGE) LET SCHREIBTEXT (SUBSTR LESETXT (TEXTLAENGE +1) TEXTLAENGE1) IF ((TEXTLAENGE1 = TEXTLAENGE) AND (LESETEXTVORNE = ENTNOMMTEXT)) delete GLOBAL POINTER (INQ 332) END END_IF INQ_NEXT_ELEM END_LOOP END_IF INQ_SELECTED_ELEM SELECT GLOBAL TEXTS ALL CONFIRM IF (INQ 14>0) LOOP EXIT_IF (INQ 14=0) LET LESETXT (INQ 902) LET TEXTLAENGE1 (LEN LESETXT) LET LESETEXTVORNE (SUBSTR LESETXT 1 TEXTLAENGE) LET SCHREIBTEXT (SUBSTR LESETXT (TEXTLAENGE +1) TEXTLAENGE1) IF (LESETEXTVORNE = ENTNOMMTEXT) LET Zaeler (Zaeler +1) CHANGE_TEXT SCHREIBTEXT GLOBAL POINTER (INQ 332) END END_IF INQ_NEXT_ELEM END_LOOP DISPLAY ('Text: "'+ENTNOMMTEXT+'" in Zeichnung '+(STR Zaeler)+' mal getauscht') ELSE DISPLAY 'Kein Text in der Zeichnung getauscht' END_IF EDIT_PART TOP END_DEFINE
Wenn es dir was hilft.. ------------------ Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Ehrenmitglied V.I.P. h.c. Tastenhauer
Beiträge: 2017 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build19044.2364 ● Drafting V17~V20.5.1 ● Modeling V17~V20.5.1
|
erstellt am: 15. Dez. 2017 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für Seele
Hallo Wolfgang, da hat Dir der Peter, ja eine Prima Vorlage zu geschanzt. Was man wissen sollte: Annotation Makros sollten still und leise verhalten. Jeglicher Interaktion mit dem Benutzer oder Ausgaben im (ME10 Userinterface) sind ein NO GO / ein "Tue das nicht!" siehe ikit://integration_kit/reference/annotation/anno_cmds.html#valid_fnc oder Suche nach "Definition: Valid ME10 function" Wenn Du also den zu suchenden und den zu ersetzenden Text als Parameter an en Macro uebergibst (die Eingabe erfolgt dann ueber einen sd-defdialog) fallen die "READ STRING '.." Befehle raus. Dann schmeisst du noch die DISPLAY befehle raus (kommentieren) und zum Schluss gibst du noch den "Zaeler" an Lisp zurueck. Dann sieht es auf LISP so aus: Code: (display (oli:sd-execute-annotator-fnc :fnc "Txt_tauschen 'xmas' 'Weihnachten'"))
------------------ ● Firefox ESR ● Java Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● BuFDi ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
taino Mitglied CAD Konstrukteur
Beiträge: 93 Registriert: 11.06.2013 PTC Creo Elements/Direct Modeling 20
|
erstellt am: 18. Dez. 2017 11:09 <-- editieren / zitieren --> Unities abgeben: Nur für Seele
|
Seele Mitglied Konstrukteur
Beiträge: 364 Registriert: 11.06.2003
|
erstellt am: 18. Dez. 2017 15:01 <-- editieren / zitieren --> Unities abgeben:
Erst mal vielen Dank für eure Antworten, ... habe momentan mal wieder zu viel Arbeit um gleich zu testen, ... Versuche aber aus euren Vorschlägen etwas zusammenzubasteln, .... Gebe Bescheid, wenn ich erfolgreich war, ... Gruß Wolfgang ------------------ alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. Werden wir es schaffen? Ja wir schaffen das !!! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |