| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
| Glänzende Ergebnisse mit PTC Creo in einer virtualisierten Umgebung, ein Anwenderbericht
|
Autor
|
Thema: Abfrage: Makro definiert (1351 mal gelesen)
|
Thömu Mitglied Konstrukteur
Beiträge: 283 Registriert: 09.04.2003 SolidWorks 09 SP3 Catia V5 R16 Pro/E WF3 Hardeware, je nach PC... Zuhause das gute alte OSM PE und OSD 15.5D als Demo
|
erstellt am: 25. Aug. 2008 20:01 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen Aus einem Makro heraus starte ich ein anderes Makro. Wenn jetzt aber das zu startende Makro nicht definiert ist, bricht es das erste Makro zwangsläufig ab. Mit TRAP_ERROR bekommt man zwar die Fehlermeldung weg, aber das Makro wird trotzdem direkt abgebrochen. Hintergrund: Ich habe ein Makro geschrieben, welches mir (bzw. uns) komplette Zeichnungen erstellt , dazu gehört auch das Laden des Zeichnungsrahmens aus der Datenbank, sprich dem Drawing-Manager (ach ja, wie ihr hier hört, handelt es sich um ein ME10 Makro). Da wir diesen manuell starten, ist es nicht sicher, ob er läuft und somit das Zeichnungsrahmen-Makro definiert ist. Momentan habe ich das Problem so gelöst, dass das Laden des Zeichnungsrahmens die allerletzte Aktion im Makro ist, so dass die Zeichnung bis auf den Rahmen trotzdem erstellt wird. Nur würde es schon besser (profesioneller aussehen, wenn ich noch eine Meldung ausgeben könnte, z.B. der Drawingmanager ist nicht gestartet. Oder noch besser, dass bevor die Zeichnung erstellt wird eine Meldung kommt, man solle doch den Drawingmanager zuerst starten. Jetzt meine Frage: wie kann ich abfragen, ob ein Makro definiert ist??? Oder jetzt in diesen speziellen Fall ginge auch, wie kann ich abfragen, ob der Drawingmanager gestartet ist???? ------------------ mfg Thömu Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2219 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.4780 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 25. Aug. 2008 21:20 <-- editieren / zitieren --> Unities abgeben: Nur für Thömu
Code: LET Check_macro "" DEFINE Load_dm_frame { Der_wackel_macro } PARAMETER Frame_name LET Check_macro "falsche Macro version" END_DEFINE
Also: erstelle Dir einen entsprechenden dummy macro mit dem Originalname und Originalparameter(ANZAHL), der bei korrektem Start des DManagers dann halt überschrieben wird. Im aufrufenden Macro, musst dann halt auf (Check_macro ="" ) checken. ------------------ oder eleganter im aufrufenden Macro den Typ abfragen "Hey was bistn Du fuer einer?" :Code: ..... LET Macro_loaded (GET_TYPE (Load_dm_frame)) { --> in deinem fall: ILLEGAL or MACRO } .....
GET_TYPE Angabe (token) ===> Zusatzangabe (qualifier): Gibt die Art der spezifizierten Angabe zurück. Beachte unbedingt das zusätzliche Klammernpaar bei der syntax von get_type!! HTH EDIT: TYPE durch GET_TYPE ersetzt /EDIT ------------------ ● Seamonkey Firefox Thunderbird Seamonkey auf deutsch ● OSD Hilfeseite (de) / help page (en) ● [Diese Nachricht wurde von der_Wolfgang am 25. Aug. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
H.annes Mitglied CAD-Pfriemler
Beiträge: 482 Registriert: 02.07.2001 OSDD 8.7 - 13.20 ; OSDM 13.00
|
erstellt am: 26. Aug. 2008 07:46 <-- editieren / zitieren --> Unities abgeben: Nur für Thömu
Morgen! Ab der 14er (womöglich auch schon früher) geht das recht elegant mit Code: IF (NOT (MACRO_EXISTS "Mein_macro"))
Zu finden im Manual unter "U" wie "Undocumented Keywords (nicht dokumentierte Stichwörter)! Hannes ------------------ Nur sauber gekämmt sind wir wirklich frei. [HaP] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thömu Mitglied Konstrukteur
Beiträge: 283 Registriert: 09.04.2003 SolidWorks 09 SP3 Catia V5 R16 Pro/E WF3 Hardeware, je nach PC... Zuhause das gute alte OSM PE und OSD 15.5D als Demo
|
erstellt am: 26. Aug. 2008 07:57 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen super, habe die ellegante Lösung von Wolfgang und die Lösung von Hannes ausprobiert, beide funktionieren tadellos. Ich glaube, es wird langsam Zeit, dass ich mir mal eine neuere Dokumentation beschaffe. Ich hab nur die Doku von der ME10-Hilfeseite von Dieter Fischer von anno 1997 ------------------ mfg Thömu Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 26. Aug. 2008 09:32 <-- editieren / zitieren --> Unities abgeben: Nur für Thömu
|
Thömu Mitglied Konstrukteur
Beiträge: 283 Registriert: 09.04.2003 SolidWorks 09 SP3 Catia V5 R16 Pro/E WF3 Hardeware, je nach PC... Zuhause das gute alte OSM PE und OSD 15.5D als Demo
|
erstellt am: 26. Aug. 2008 14:59 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von clausb: Die hast Du schon - ist in der Onlinehilfe.
Jetzt muss aber leider doch noch blöde nachfrage, welche Onlinehilfe??? Im Programmreferenzhandbuch finde ich den "Type" Befehl, aber den "macro_exists" nicht. In den Handbüchern gibt es zum Thema Makro auch nicht wirklich etwas interessantes. Und auf der PTC-Homepage finde ich auch nichts interessantes zu diesem Thema. ------------------ mfg Thömu Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 26. Aug. 2008 15:10 <-- editieren / zitieren --> Unities abgeben: Nur für Thömu
Zitat: Original erstellt von Thömu: Jetzt muss aber leider doch noch blöde nachfrage, welche Onlinehilfe??? Im Programmreferenzhandbuch finde ich den "Type" Befehl, aber den "macro_exists" nicht.
"Programmer's Reference Guide" im Help-Menü öffnen, unter dem Buchstaben U nach "Undocumented keywords" suchen, und schon hast Du's. Genau das hat H.annes drei Kommentare weiter oben bereits beschrieben. Claus ------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/
[Diese Nachricht wurde von clausb am 26. Aug. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thömu Mitglied Konstrukteur
Beiträge: 283 Registriert: 09.04.2003 SolidWorks 09 SP3 Catia V5 R16 Pro/E WF3 Hardeware, je nach PC... Zuhause das gute alte OSM PE und OSD 15.5D als Demo
|
erstellt am: 26. Aug. 2008 15:23 <-- editieren / zitieren --> Unities abgeben:
Da habe ich (fast) nichts Auf Englisch finde habe ich eh nichts, also unter U wie Undocumented Keywords. Und auf Deutsch, also Nicht dokumentierte Schlüsselwörter ist der Befehl nicht dabei (s.Anhang) Ausserdem, wie soll man den einen Befehl finden, wenn man nicht weiss, wie er heisst und man ihn als Anwender auch gar nicht gebrauchen soll??? (steht so in der Hilfe drin) (Antwort: die Kollegen hier im Forum fragen ) ------------------ mfg Thömu Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 26. Aug. 2008 15:29 <-- editieren / zitieren --> Unities abgeben: Nur für Thömu
"Undokumentiertes" in der Onlinehilfe ist einigermassen merkwürdig, darum ist es auch gut, dass der Eintrag offenbar inzwischen verschwunden ist. Aber es ging mir eh nicht um den konkreten Fall MACRO_EXISTS, sondern um den Hinweis, dass Du Dir nicht mühsam irgendwo Doku besorgen musst, sondern jederzeit aktuelle Programmierdokumentation zur Verfügung hast, wenn Drafting bereits installiert ist. Ansonsten: Da von MACRO_EXISTS explizit abgeraten wird, kann es sein, dass der darauf basierende Hack beim nächsten Upgrade auf die Nase fällt. Ich würde daher Wolfgangs Methoden vorziehen. ------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/
[Diese Nachricht wurde von clausb am 26. Aug. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thömu Mitglied Konstrukteur
Beiträge: 283 Registriert: 09.04.2003 SolidWorks 09 SP3 Catia V5 R16 Pro/E WF3 Hardeware, je nach PC... Zuhause das gute alte OSM PE und OSD 15.5D als Demo
|
erstellt am: 27. Aug. 2008 08:44 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von clausb: … sondern um den Hinweis, dass Du Dir nicht mühsam irgendwo Doku besorgen musst, sondern jederzeit aktuelle Programmierdokumentation zur Verfügung hast, wenn Drafting bereits installiert ist.
Guten Morgen Klar, im Handbuch sind alle Befehle (oder bei mir halt fast alle) wunderschön alphabetisch aufgelistet und dokumentiert, was ich ich wirklich super finde. Ich brauche das auch immer wieder, um mir die Parameter zu den Befehlen anzuschauen. Nur funktioniert das Handbuch nur, wenn man weiss, nach was für einen Befehl man sucht. Nehmen wir mal ein "blödes" Beispiel. Ich will einen String in Grossbuchstaben umwandel, kenne aber den Befehl dafür nicht (UPC). Wie finde ich dies jetzt? Eine Suchfunktion habe ich nicht gefunden. Es würde mir nichts anders überig bleiben, als Buchstabe für Buchstabe aufzurufen und die Befehle durchzuschauen, bis ich in der Dokumentation zum Befehl das Richtige finde, wenn es überhaupt einen Befehl dazu gibt. Was ich damit sagen will, für eine Dokumentation, wie ich mir das vorstelle, fehlt mir eine Gliederung der Befehl, z.B. alle String-Funktionen, alle Rechnungs-Funktionen ect. Oder alternativ dazu eine Suchfunktion, welche die Befehle und die Beschreibung abdeckt. ------------------ mfg Thömu Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 27. Aug. 2008 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für Thömu
|
der_Wolfgang Moderator Tastenhauer
Beiträge: 2219 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.4780 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 27. Aug. 2008 21:50 <-- editieren / zitieren --> Unities abgeben: Nur für Thömu
Zitat: Original erstellt von clausb: Ich vermisse das manchmal auch.
me too, den upc habe ich auch schon mal verzweifelt gessucht. Nur ein grep in vorhandenen Macros hat mich dann weiter gebracht. Im Drafting ist es schwieriger im Index zu suchen, weil manche Namen zu kurz sind. Im Modeling könnte man nach "convert", "strings", "case", "upper", "up" .. suchen und findet dann die OLI funktion. Aber in der Drafting docu nach "u" zu suchen ist wenig zielführend dito im Modeling, aber da kann man, nach der aller ersten nur halbwegs passenden funktion, im gezeigten Dokument nach oben springen und findet die zum Thema x (hier: "strings") passenden funktionen. Zumindest die, die Modeling zusätzlich zu common LISP bereithält. ------------------ ● Seamonkey Firefox Thunderbird Seamonkey auf deutsch ● OSD Hilfeseite (de) / help page (en) ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thömu Mitglied Konstrukteur
Beiträge: 283 Registriert: 09.04.2003 SolidWorks 09 SP3 Catia V5 R16 Pro/E WF3 Hardeware, je nach PC... Zuhause das gute alte OSM PE und OSD 15.5D als Demo
|
erstellt am: 28. Aug. 2008 08:24 <-- editieren / zitieren --> Unities abgeben:
Jetzt habe ich etwas entdeckt, was doch wieder ein paar Pluspunkte für die Doku gibt. Ich habe eine Liste gefunden, wo die Befehle doch auch nach Kategorien geordnet sind. Und zwar ist der Eintrag zwischen den Beiden Befehlen "CATCH" und "CENTERLINE" versteckt und heisst: "Categories of commands, functions and arithmetic functions (Kategorien von Befehlen, Funktionen und arithmetischen Funktionen)" EDIT: dafür habe ich gleich noch einen Schreibfehler in der Doku gefunden: der UPC wird dort zum UWC ------------------ mfg Thömu
[Diese Nachricht wurde von Thömu am 28. Aug. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
Beiträge: 2219 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.4780 ● Drafting V17~V20.7 ● Modeling V17~V20.7 ● Windchill 12.1.2.6 ● UWGM Client 13.0.0.1
|
erstellt am: 28. Aug. 2008 17:55 <-- editieren / zitieren --> Unities abgeben: Nur für Thömu
|