| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: Textgrößen variabel ändern (1890 mal gelesen)
|
Greskamp Mitglied Ingenieur
Beiträge: 523 Registriert: 12.03.2003
|
erstellt am: 22. Apr. 2013 10:21 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich würde gerne über ein Makro unterschiedliche Textgrößen in andere Textgrößen ändern. z.B. die Schriftart "x" mit der Textgröße "a" in die Schriftart "y" und Textgröße "b". Mit dem unteren Befehl bekomme ich es zwar hin das ich eine bestimmte Schriftart in eine Größe wandel, aber wie sage ich dem Progromm das er nur eine bestimmt Textgröße dieser Schriftart nehmen soll. CHANGE_TEXT_SIZE 3.9 select global texts font 'hp_i3098_v' confirm end Für eure Hilfe wäre ich echt dankbar. ------------------ Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
r.hoffmann Mitglied Techniker
Beiträge: 127 Registriert: 07.12.2006 OSD 13.2 20.4
|
erstellt am: 22. Apr. 2013 11:16 <-- editieren / zitieren --> Unities abgeben: Nur für Greskamp
Hallo Peter, untenstehend ein Ausschnitt eines Makros von mir: Es selektiert alle Texte in der Zeichnung und schrieb die Texte und deren Koordinaten in eine Tabelle. Mit Parameterübergabe Deiner Schriftarten und -grössen müsstest Du dann die Texte finden, die dann mit change_text_size bzw -font geändert werden. Ich hoffe, dass dies Anstoss zu einem funkt. Makro ist. MfG Robert INQ_SELECTED_ELEM TEXTS SELECT ALL CONFIRM END {### ANFANG alle Texte in TempTabelle einlesen ###} LET Zeilennummer 0 LET StlZeile 1 WHILE (INQ 14) IF (INQ 403 = TEXT) LET TextAusZeichnung (INQ 902) LET X1 (INT (X_OF INQ 101)+0.5) LET Y1 (INT (Y_OF INQ 101)+0.5) LET Zeilennummer (Zeilennummer+1) WRITE_LTAB TabellennameTemp Zeilennummer 1 TextAusZeichnung WRITE_LTAB TabellennameTemp Zeilennummer 2 X1 WRITE_LTAB TabellennameTemp Zeilennummer 3 Y1 END_IF INQ_NEXT_ELEM END_WHILE
------------------ Homepage: www.me10-makros.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Greskamp Mitglied Ingenieur
Beiträge: 523 Registriert: 12.03.2003
|
erstellt am: 22. Apr. 2013 11:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Robert, erst mal danke für dein posting. Wenn ich das als Makro ausführe, bekomme ich die Meldung: *** Makro Tabellennametemp ist nicht definiert. Bin jetzt leider nicht der Programmier-Gott... Kannst du mir da noch mal auf die Sprünge helfen?? ------------------ Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
friedhelm at work Mitglied Techniker Aluminium Profile
Beiträge: 882 Registriert: 01.04.2003 Creo Elements Direct /Drafting 17+20.x ui classic-Tablett + Ribbon, Modeling 17-20.0,.2,.4,.5 Lizenz auf USB-Netzwerkadapter PE-Express 8 Win 10 Enterprise 64 @work Win 10 Pro 64 @home Notepad++,IrfanView,eDrawings, ....
|
erstellt am: 22. Apr. 2013 12:53 <-- editieren / zitieren --> Unities abgeben: Nur für Greskamp
Hallo zusammen, habe auch einen Vorschlag, der auf Basis der undokumentierten und unsuporteten Funktion POINTER (INQ 2) funktioniert.
Code: DEFINE Aendere_schriftart_groesse LOCAL Q_schriftart LOCAL Q_groesse LOCAL Z_schriftart LOCAL Z_groesse LOCAL Schriftart LOCAL Groesse READ STRING 'Quell Schriftart als Text eingeben bitte.' Q_schriftart READ NUMBER 'Quell Schriftgroesse als Zahl eingeben bitte' Q_groesse READ STRING 'Ziel Schriftart als Text eingeben bitte.' Z_schriftart READ NUMBER 'Ziel Schriftgroesse als Zahl eingeben bitte' Z_groesse INQ_SELECTED_ELEM SELECT GLOBAL TEXTS ALL CONFIRM WHILE (INQ 14) LET Schriftart (INQ 302) LET Groesse (INQ 6) IF ((Schriftart = Q_schriftart) AND (Groesse = Q_groesse)) CHANGE_TEXT_FONTNAME Z_schriftart GLOBAL POINTER (INQ 2) END CHANGE_TEXT_SIZE Z_groesse GLOBAL POINTER (INQ 2) END END_IF INQ_NEXT_ELEM END_WHILE END_DEFINE
------------------ Gruss Friedhelm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Greskamp Mitglied Ingenieur
Beiträge: 523 Registriert: 12.03.2003
|
erstellt am: 22. Apr. 2013 13:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Friedhelm, das ist ja mal ein richtig cooles Makro und genau das was ich suche. Habe das noch die Ratio und den Linespace erweitert, aber damit kann man alles abdecken. Danke dir vielmals. ------------------ Gruß Peter [Diese Nachricht wurde von Greskamp am 22. Apr. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
friedhelm at work Mitglied Techniker Aluminium Profile
Beiträge: 882 Registriert: 01.04.2003 Creo Elements Direct /Drafting 17+20.x ui classic-Tablett + Ribbon, Modeling 17-20.0,.2,.4,.5 Lizenz auf USB-Netzwerkadapter PE-Express 8 Win 10 Enterprise 64 @work Win 10 Pro 64 @home Notepad++,IrfanView,eDrawings, ....
|
erstellt am: 22. Apr. 2013 14:07 <-- editieren / zitieren --> Unities abgeben: Nur für Greskamp
Gern geschehen, passte genau in die Mittagspause Noch ein kleiner Nachschlag. Ab der v16 sollte man anstelle von POINTER (INQ 2) POINTER (INQ 332) verwenden. Vor allem wenn man mit einem 64bit System unterwegs ist. Hab das vorliegende Macro für deine 15.5 geschrieben. In der v17 (v16 kann ich nicht testen, da nicht installiert) kommt dann bei einem Trace WARNING - following number token is a valid elem2d pointer. This is unsafe on Win64.zum Vorschein. Ist keine Fehlermeldung mit Abbruch sondern nur eine Warnung. ------------------ Gruss Friedhelm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Greskamp Mitglied Ingenieur
Beiträge: 523 Registriert: 12.03.2003
|
erstellt am: 22. Apr. 2013 14:14 <-- editieren / zitieren --> Unities abgeben:
Oh dann werde ich den Pointer mal auf 332 ändern, dbei habe ich dann auch gleich mal Systemeinstellungen im Forum geändert. Mit der V18 sind wir ja auch unterwegs. Hoffe hast jetzt keinen knurrenden Magen weil du die Mittagspause andersweitig benutzt hast... ------------------ Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |