| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
 | HPE ProLiant Summer Academy 2025 in Wien, eine Veranstaltung am 17.09.2025
|
Autor
|
Thema: Menüs/Untermenüs (960 mal gelesen)
|
chris-as Mitglied

 Beiträge: 82 Registriert: 10.07.2007 Creo Elements/Direct, Version 18 HP Elitebook 8740w Windows 7
|
erstellt am: 16. Feb. 2009 14:50 <-- editieren / zitieren --> Unities abgeben:         
Hallo LISP-Spezialisten, es wäre schön wenn ich einen prinzipiellen Tipp zu folgender Problematik bekommen könnte: Mit "sd-create-menu" und den Variablen ":buttonBox" und ":buttons" kann ich mir neue Menüs mit Untermenüs anlegen. Dies habe ich schon mehrfach getan - klappt gut. Bisher habe ich aber mit der Variablen ":buttons" Funktionen eingebunden, die mit "sd-defdialog" erstellt wurden. Jetzt meine Frage: Wie kann ich eine einfache Funktion, die ich mit "defun" erstellt habe unter ":buttons" einbinden? Beispiel: Ich möchte z.B. einen Verzeichniswechsel und ein "load-package" auf einen "Button" legen. Die Befehle zum Verzeichniswechsel und zum laden "stecken" in einer eigenen Funktion (test1). Ein Klick auf den Button, erstellt mit "sd-create-menu" soll die Funktion test1 ausführen. Geht das prinzipiell oder bin ich auf dem "Holzweg"? Danke für jeden Tipp chris 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: 16. Feb. 2009 17:47 <-- editieren / zitieren --> Unities abgeben:          Nur für chris-as
Gib doch mal ein kleines Codebeispiel, daran kann man besser rumdoktern. Ich denke schon, dass das geht - ob es eine gute Idee ist, das ist aber eine andere Frage. Knöpfe in Menüs starten im allgemeinen Dialoge, die mit sd-defdialog definiert wurden. Das stellt zum Beispiel sicher, dass die Aktion hinter dem Knopf im Rekorder aufgezeichnet wird, dass UNDO richtig funktioniert, und dass man dem Anwender im UI Feedback geben kann. Claus
------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 16. Feb. 2009 18:22 <-- editieren / zitieren --> Unities abgeben:          Nur für chris-as
Wenn du vermeiden willst, dass die User noch irgendwas zusätzliches drücken müssen, definiere einfach einen "leeren" Dialog: Code:
(sd-defdialog 'mein-unsichtbarer-lade-dialog :Dialog-title "Nix" :Dialog-control :sequential :toolbox-button nil :variables '( ) :local-functions '( (test 1 () .. .. ) ) :ok-action '(test 1) )
Die "test 1" braucht auch nicht lokal im Dialog zu stehen, ist aber irgendwie leichter servicierbar so ------------------ meine LISP-Makros sind auf osd.cad.de Disclaimer Grüße aus Wien Walter DC4 Technisches Büro GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Markus Kuehl Mitglied
 
 Beiträge: 165 Registriert: 22.06.2001
|
erstellt am: 16. Feb. 2009 18:32 <-- editieren / zitieren --> Unities abgeben:          Nur für chris-as
Hallo Chris, schau mal die Beschreibung von sd-create-menu genau an. Da gibt es einen Absatz, der wie folgt anfängt: * a button which has any LISP form as push/release action: Da steht, wie man eine beliebige LISP Form als pushAction definieren kann. Ein Problem das Du bekommen wirst ist, dass der Menu Button danach gedrueckt bleibt. Um das zu beheben, musst Du in Deine pushAction noch ein sd-reset-togglebutton mit dem richtigen Control Namen einbauen. Viele Grüße, Markus 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: 16. Feb. 2009 21:24 <-- editieren / zitieren --> Unities abgeben:         
|
chris-as Mitglied

 Beiträge: 82 Registriert: 10.07.2007 Creo Elements/Direct, Version 18 HP Elitebook 8740w Windows 7
|
erstellt am: 17. Feb. 2009 09:38 <-- editieren / zitieren --> Unities abgeben:         
Hallo ihr fleißigen Helfer! Alle Hinweise haben sofort zum gewünschten Ergebnis geführt! Ich will mir mit diesen Menüs einen Workaround für einen bekannten Bug im Modul "Machining" schaffen. Z.B. kann man bei Zapfensenkungen in die angepassten Wertetabellen nicht alle Genauigkeiten ("grob", "mittel", "fein") aufnehmen. Z.B. führt der Eintrag ("M3-Af" (3.2 :mm) (6.0 :mm) (1.7 :mm)) ("M3-Bf" (3.2 :mm) (6.3 :mm) (1.7 :mm)) dazu, dass immer nur " M3-Af " verwendet wird (der erste Eintrag). Deshalb möchte ich die Wertetabellen aufteilen in drei eigene LISP-Files und vor dem Aufruf des Kommandos "CREATE_CUSTOM_FEATURE" über die Untermenüs die entsprechende Tabelle "unterschieben". D.h. die Fertigungselemente werden nicht mehr über das Menü "Machining" sondern über ein eigenes Menü aufgerufen. So hatte ich es mir gedacht (hier reduziert auf das Wesentlichste) und so klappt es auch: (sd-add-menu-button "testmenue" arent '("TASK" "SolidDesigner") :mapMenu "untermenue" ) (sd-create-menu "untermenue" :title "Beispiel" :contents '( (:buttonBox "Senkungen" :title "Senkungen" :buttons ( ("mittel" :label "mittel" ushAction (progn (load "teiltabelle_1.lsp") (CREATE_CUSTOM_FEATURE "mach_adv_library_counterbored_throughhole") ) ) ("grob" :label "grob" ushAction (progn (load "teiltabelle_2.lsp") (CREATE_CUSTOM_FEATURE "mach_adv_library_counterbored_throughhole") ) ) ) ) ) ) Das Problem das Markus erwähnte kann ich nicht erkennen. Der Button "grob" (oder "mittel") bleibt nicht "gedrückt". Ich denke "sd-reset-togglebutton" brauche ich nicht mit in die pushAction aufzunehmen. Der Vorschlag von Walter klappt auch, erfordert aber eine zusätzliche Funktion. Nochmals vielen Dank und maximale chris
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BenjaminRuss Mitglied Konstrukteur

 Beiträge: 49 Registriert: 16.02.2009
|
erstellt am: 03. Apr. 2009 11:06 <-- editieren / zitieren --> Unities abgeben:          Nur für chris-as
Hallo, hatte auch schon mit dem Bug im Machining zu kämpfen... Musste auch die Tabellen aufteilen. Habe dann auch meinen neuen Munu-Button mit weiteren Buttons für die restlichen Formelemente vervollständigt. Ich nutzte nun das standart Machiningmenü überhaupt nicht mehr. Ist um einiges komfortabler. Lisp meiner Formelemente-Button-Box anbei. Gruß Benjamin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |