| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
 | MAIT & Drexler - Starke Kooperation für HP Drucklösungen, eine Pressemitteilung
|
Autor
|
Thema: sd-add-menu-button (1303 mal gelesen)
|
chris-as Mitglied

 Beiträge: 82 Registriert: 10.07.2007 Creo Elements/Direct, Version 18 HP Elitebook 8740w Windows 7
|
erstellt am: 22. Apr. 2010 15:41 <-- editieren / zitieren --> Unities abgeben:         
Hallo Lisp'ler, In beiliegendem Script möchte ich - eine Funktion, erstellt mit sd-defdialog ... und - eine Funktion, erstellt mit defun ... in ein zusätzliches Modeling-Hauptmenü aufnehmen. (in-package :test99) (use-package li) (sd-defdialog 'ui_test_3 :dialog-control :sequential :variables '((v1 :value-type art :title "Teil")) k-action '(display v1) ) (defun ui_test_5 () (display "HALLO WORLD") ) (sd-add-menu-button "M-neu" arent '("TASK" "SolidDesigner") :label "Testmenu" :mapMenu "M1" ) (sd-create-menu "M1" :title "Testmenu" :contents '( (:buttonBox "B1" :title "geht" :buttons ((ui_test_3 :label "test3"))) (:buttonBox "B2" :title "geht_nicht" :buttons ((ui_test_5 :label "test5"))) ) ) Der Menüaufruf klappt aber nur bei der sd-defdialog-Funktion. Bei der defun-Funktion kommt die Fehlermeldung "Die Variable UI_TEST_5 ist nicht gebunden" Hat jemand einen Tipp für mich? Danke im voraus. chris-as
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: 22. Apr. 2010 16:12 <-- editieren / zitieren --> Unities abgeben:          Nur für chris-as
|
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 22. Apr. 2010 22:03 <-- editieren / zitieren --> Unities abgeben:          Nur für chris-as
In der ikit docu wird an der Stelle unter 3 unterschiedlichen Fällen unterschieden: hinter ":buttons {LIST}" a) a button which calls either a CoCreate Modeling command or a user action: b) a button which maps another menu: c) a button which has any LISP form as push/release action: ein dialog ist ein commando (grob: Du kannst den namen des selben ohne klammern in der Command line eintippen und das commando öffnet sich) Also 'ui_test_3' fällt unter a) b) fällt fuer deinen Anwendungsfall unter den Tisch, c) trifft für Dein 'ui_test_5' test zu, denn es ist ja eine FUNCTION! Also mal bei c) nachlesen und den menu Eintrag entsprechend anpassen. ------------------ ● Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chris-as Mitglied

 Beiträge: 82 Registriert: 10.07.2007 Creo Elements/Direct, Version 18 HP Elitebook 8740w Windows 7
|
erstellt am: 23. Apr. 2010 13:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo Claus, hallo Wolfgang, zunächst vielen Dank für die schnelle Antwort. Ich war Meinung das es kein "Package"-Problem sein könnte, da ich mich ja in einem "namespace" (:test99) befinde. Den Hinweis von Wolfgang werde etwas intensiver verfolgen, obwohl ich in der Hilfe schon tüchtig "geforscht" habe. Ich komme aber erst am Wochenende dazu und würde mich am Montag mit Erfolg oder Mißerfolg wieder melden. Nochmal vielen Dank! chris-as Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chris-as Mitglied

 Beiträge: 82 Registriert: 10.07.2007 Creo Elements/Direct, Version 18 HP Elitebook 8740w Windows 7
|
erstellt am: 26. Apr. 2010 09:16 <-- editieren / zitieren --> Unities abgeben:         
Hallo Wolfgang, Dein Tipp hat mich auf die richtige Spur gebracht. Mit :buttons (("B2" :label "test5" ushAction (ui_test_5)))) klappt es jetzt. Ein kleiner "Schönheitsfehler" bringt mich aber zum verzweifeln. Obwohl in der Hilfe steht ushAction {LISP form} This form will be executed if the user clicks this button. wird die Funktion nicht sofort ausgeführt sondern erst nach einem "Klick" in das Darstellungsfenster. Hast Du da noch einen Tipp? Danke chris-as
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
  
 Beiträge: 659 Registriert: 20.11.2006
|
erstellt am: 26. Apr. 2010 18:21 <-- editieren / zitieren --> Unities abgeben:          Nur für chris-as
Und dass der Button nicht zurückgesetzt wird (kein automatischer release), stört dich nicht? Also ich pack alles, was mit der UI interagiert/darauf zurückgreift, in einen sd-defdialog, weil ich die gleichen Erfahrungen wie du gemacht habe. Wenn da also jemand eine unkompliziertere Lösung hat, dann immer her damit. Ich bin ganz Ohr. ------------------ Grüße aus Sachsen pw Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chris-as Mitglied

 Beiträge: 82 Registriert: 10.07.2007 Creo Elements/Direct, Version 18 HP Elitebook 8740w Windows 7
|
erstellt am: 27. Apr. 2010 08:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo Patrick, danke für Deine Antwort. Ich bin mit dem Programm erst ganz am Anfang und wollte erst einmal einen fehlerfreien Start erreichen. Bisher habe ich auch immer mit sd-defdialog gearbeitet und bin gut zurecht gekommen. Nun wollte ich aber einen Direktaufruf einer LISP-Funktion testen. Das Problem tritt übrigens schon auf wenn ich gar keine Funktion aufrufe sondern zum Test nur ein DISPLAY in die pushAction einbaue. :buttons (("B2" :label "test5" ushAction (display "HALLO")))) Auch hier erscheint das Ausgabefenster erst nach einem Klick in das Arbeitsfenster. Trotzdem Danke chris-as Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chris-as Mitglied

 Beiträge: 82 Registriert: 10.07.2007 Creo Elements/Direct, Version 18 HP Elitebook 8740w Windows 7
|
erstellt am: 27. Apr. 2010 08:28 <-- editieren / zitieren --> Unities abgeben:         
Nach nochmaligen genauen "Studium" der Hilfe habe ich die Lösung gefunden. :buttons (("B2_name" :label "test5" :pushAction "(test99::ui_test_5)"))) Danke nochmal an alle die mir auf die Sprünge geholfen haben. chris-as Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |