| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: Oberflächensymbole nach Bemaßungsstil (2050 mal gelesen)
|
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: 01. Feb. 2017 09:57 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe in meiner Oberfläche zwei Button eingepflegt, um den Bemaßungsstil schnell und einfach umzustellen. Befehle:
Code: modify_default_setting_current_style "Annotation" :3.5_Stil modify_default_setting_current_style "Annotation" :5.0_Stil
Zudem habe ich Button mit Oberlächensymbole erstellt. Diese habe ich jeweils als Menü im Stil 3.5 und 5.0 in die Oberfläche eingebracht, siehe Anhang. Beispiel für Button: Code: am_create_symbol_surface :symbol_parameter_list '(:FORM 1 :A1 "x" :A2 "" :B "" :C "" :F "" :E "" :D "" :STANDARD :ISO1992) :symbol_attributes_list '(:ADJUST NIL :ABS_ANGLE 0 :TEXT_READABLE T :SIZE_ABS 2.1000000000000001 :SIZE_REL NIL :TEXT_SLANT 0 :TEXT_RATIO 0.80000000000000004 :TEXT_COLOR 255 :GEO_COLOR 16776960 :HATCH_COLOR NIL :ALL_COLOR NIL)
Nun zu meiner Frage: Kann man den Stil im Befehl abfragen und das Oberflächensymbol entsprechend laden? Etwa so If (modify_default_setting_current_style "Annotation" :3.5_Stil) (am_create_symbol…3.5.) If (modify_default_setting_current_style "Annotation" :5.0_Stil) (am_create_symbol…5.0.) Jetzt habe ich mich mal wieder als super Lisp´er geoutet. Grund: Zum unterscheiden der Button müssen die Symbole groß sein. Ich hätte in der engen Ribbon-Bar aber lieber die kleinen Symbole und wenn Anno das Symbol automatisch wählt, wäre es Perfekt in meiner Oberfläche eingebettet! Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 01. Feb. 2017 11:20 <-- editieren / zitieren --> Unities abgeben: Nur für MiBr
Den aktuellen Style kannst du mit (display (oli::sd-get-current-settings-style "Annotation")) abfragen. Nachzulesen im Ikit im Pfad %Installorder%\help\project\WEB-INF\volume\base.zip\documentation\integration_kit\reference\def_setting.html (zip-Dateien einfach alle Entpacken und dann z.B. mit FreeCommander und Suchfunktion Dateien durchsuchen. ------------------ Patrick 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: 01. Feb. 2017 13:18 <-- editieren / zitieren --> Unities abgeben:
Hallo Patrik, erstmal Danke wegen der Info mit dem IKit!!! Dank meiner schlechten English Kenntnissen komme ich mit dem IKit nur bedingt zurecht. Werde es in Zukunpf aber wie Vorgeschlagen versuchen! Jetzt habe ich die Abfrage über die Eingabezeile probiert und es funzt Code:
(IF (string= (oli::sd-get-current-settings-style "Annotation") "3.5_Stil") (progn (display (format nil "3.5")))) (IF (string= (oli::sd-get-current-settings-style "Annotation") "5.0_Stil") (progn (display (format nil "5.0"))))
Wenn ich allerdings den Aufruf des Symbols einfüge, kommt folgende Meldung: Sie haben eine ungültige Option oder Daten-Zeichenkette eingegeben. (Fehler 139) Code:
(IF (string= (oli::sd-get-current-settings-style "Annotation") "3.5_Stil") (progn am_create_symbol_surface :symbol_parameter_list '(:FORM 1 :A1 "h" :A2 "" :B "" :C "" :F "" :E "" :D "" :STANDARD :ISO1992) :symbol_attributes_list '(:ADJUST NIL :ABS_ANGLE 0 :TEXT_READABLE T :SIZE_ABS 2.1 :SIZE_REL NIL :TEXT_SLANT 0 :TEXT_RATIO 0.8 :TEXT_COLOR 255 :GEO_COLOR 16776960 :HATCH_COLOR NIL :ALL_COLOR NIL))) (IF (string= (oli::sd-get-current-settings-style "Annotation") "5.0_Stil") (progn am_create_symbol_surface :symbol_parameter_list '(:FORM 1 :A1 "h" :A2 "" :B "" :C "" :F "" :E "" :D "" :STANDARD :ISO1992) :symbol_attributes_list '(:ADJUST NIL :ABS_ANGLE 0 :TEXT_READABLE T :SIZE_ABS 3 :SIZE_REL NIL :TEXT_SLANT 0 :TEXT_RATIO 0.8 :TEXT_COLOR 16776960 :GEO_COLOR 65280 :HATCH_COLOR NIL :ALL_COLOR NIL)))
Was ist da Falsch??? Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 01. Feb. 2017 13:51 <-- editieren / zitieren --> Unities abgeben: Nur für MiBr
Das Makro wird also über das Anpassen-Menü definiert. Code:
(if (equalp (oli::sd-get-current-settings-style "Annotation") "3.5_Stil") (am_create_symbol_surface :symbol_parameter_list '(:FORM 1 :A1 "h" :A2 "" :B "" :C "" :F "" :E "" :D "" :STANDARD :ISO1992) :symbol_attributes_list '(:ADJUST NIL :ABS_ANGLE 0 :TEXT_READABLE T :SIZE_ABS 2.1 :SIZE_REL NIL :TEXT_SLANT 0 :TEXT_RATIO 0.8 :TEXT_COLOR 255 :GEO_COLOR 16776960 :HATCH_COLOR NIL :ALL_COLOR NIL)) (am_create_symbol_surface :symbol_parameter_list '(:FORM 1 :A1 "h" :A2 "" :B "" :C "" :F "" :E "" :D "" :STANDARD :ISO1992) :symbol_attributes_list '(:ADJUST NIL :ABS_ANGLE 0 :TEXT_READABLE T :SIZE_ABS 3 :SIZE_REL NIL :TEXT_SLANT 0 :TEXT_RATIO 0.8 :TEXT_COLOR 16776960 :GEO_COLOR 65280 :HATCH_COLOR NIL :ALL_COLOR NIL)) )
Ungetestet. Klassische IF-THEN-ELSE-Bedingung mit jeweils einem Ausdruck, daher wird kein progn benötigt. (IF (Bedingung) (THEN-Zweig) (ELSE-Zweig)) Das zweite IF solltest du dir sparen und auf den ELSE-Zweig der ersten IF-Bedingung zurückgreifen. Falls später noch andere Stile angelegt werden, wird es ansonsten vorkommen, dass der Button nicht mehr funktioniert. equalp für Textvergleich ohne Groß-/Kleinschreibungsbeachtung.
------------------ Patrick 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: 01. Feb. 2017 14:18 <-- editieren / zitieren --> Unities abgeben:
Hallo, funktioniert leider nicht. Wenn ich den Befehl mit Klammern in die Eingabezeile eingebe funzt dieser nicht! (am_create_symbol_surface .... :ALL_COLOR NIL)) Ohne Klammern funktioniert der Befehl. am_create_symbol_surface .... :ALL_COLOR NIL) Kann das damit zusammenhängen? Danke Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 01. Feb. 2017 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für MiBr
Wenn es ohne Klammern geht, auch gut. Aufgezeichnete Macros funktionieren etwas anders als normale LISP-Skripte. Wenn der Aufruf eingeklammert wird, erwartet das Programm wohl einen geschlossenen Dialog. Den willst du aber offen haben, um das Symbol zu platzieren. ------------------ Patrick 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: 01. Feb. 2017 15:01 <-- editieren / zitieren --> Unities abgeben:
|
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 01. Feb. 2017 15:08 <-- editieren / zitieren --> Unities abgeben: Nur für MiBr
Okay, nochmal kurz nachgelesen. Dialoge, die auf Nutzereingabe warten sollen, müssen mit sd-put-buffer gestartet werden. Code:
(if (equalp (oli::sd-get-current-settings-style "Annotation") "3.5_Stil") (oli::sd-put-buffer "am_create_symbol_surface :symbol_parameter_list '(:FORM 1 :A1 \"h\" :A2 \"\" :B \"\" :C \"\" :F \"\" :E \"\" :D \"\" :STANDARD :ISO1992) :symbol_attributes_list '(:ADJUST NIL :ABS_ANGLE 0 :TEXT_READABLE T :SIZE_ABS 2.1 :SIZE_REL NIL :TEXT_SLANT 0 :TEXT_RATIO 0.8 :TEXT_COLOR 255 :GEO_COLOR 16776960 :HATCH_COLOR NIL :ALL_COLOR NIL)") (oli::sd-put-buffer "am_create_symbol_surface :symbol_parameter_list '(:FORM 1 :A1 \"h\" :A2 \"\" :B \"\" :C \"\" :F \"\" :E \"\" :D \"\" :STANDARD :ISO1992) :symbol_attributes_list '(:ADJUST NIL :ABS_ANGLE 0 :TEXT_READABLE T :SIZE_ABS 3 :SIZE_REL NIL :TEXT_SLANT 0 :TEXT_RATIO 0.8 :TEXT_COLOR 16776960 :GEO_COLOR 65280 :HATCH_COLOR NIL :ALL_COLOR NIL)") )
------------------ Patrick 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: 01. Feb. 2017 15:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Patrick, aus irgend einem Grund funzt die IF-Bedingung mit equalp nicht. Habe es dann mit String= versucht und es funktioniert. Danke das Du dir die Zeit für mich genommen hast!!! Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 01. Feb. 2017 15:59 <-- editieren / zitieren --> Unities abgeben: Nur für MiBr
Vielleicht wird die Angabe des Packages des CLisp-Befehls benötigt. lisp::equalp =================== Kann deinen Fehler nicht nachvollziehen. Bei mir funktioniert es tadellos über das Button-Macro. ------------------ Patrick
[Diese Nachricht wurde von Patrick Weber am 01. Feb. 2017 editiert.] 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: 01. Feb. 2017 16:39 <-- editieren / zitieren --> Unities abgeben:
|
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: 28. Mrz. 2017 09:23 <-- editieren / zitieren --> Unities abgeben:
Hallo, das mit den Oberflächenzeichen funzt super, Danke nochmal!!! Ich habe aber leider noch ein Problem mit dem Laden von Texten entsprechend dem eingestellten Stil. Code: (if (string= (oli::sd-get-current-settings-style "Annotation") "3.5_Stil") (oli:sd-put-buffer "am_load_sketch_multiple :filename "//server02/cadconfig/Texte/WelleVordDurchSenk.mi" :adjust 3") (oli:sd-put-buffer "am_load_sketch_multiple :filename "//server02/cadconfig/Texte/50WelleVordDurchSenk.mi" :adjust 3") )
Hierbei funktioniert meiner Meinung nach der Befehl -> oli:sd-put-buffer <- nicht weil ich im Filename ja "" benutze. Gibt es dafür eine Lösung? Gruß Michael [Diese Nachricht wurde von MiBr am 28. Mrz. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lix b Mitglied Konstrukteur, CAD-Admin
Beiträge: 279 Registriert: 03.10.2014 Creo Elements / Direct Modeling 20.2 Creo Elements / Direct Model Manager 20.2 Creo 5.0 Simulate <P>Notepad++ Win 7
|
erstellt am: 28. Mrz. 2017 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für MiBr
Hi! Wenn du ein "\" vor den Anführungszeichen innerhalb eines Strings setzt, werden diese als reines Textzeichen gewertet. Probier mal. Code: (if (string= (oli::sd-get-current-settings-style "Annotation") "3.5_Stil") (oli:sd-put-buffer "am_load_sketch_multiple :filename \"//server02/cadconfig/Texte/WelleVordDurchSenk.mi\" :adjust 3") (oli:sd-put-buffer "am_load_sketch_multiple :filename \"//server02/cadconfig/Texte/50WelleVordDurchSenk.mi\" :adjust 3") )
------------------ Viele Grüße Felix 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: 28. Mrz. 2017 15:42 <-- editieren / zitieren --> Unities abgeben:
|