Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Menüs/Untermenüs

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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



Sehen Sie sich das Profil von chris-as an!   Senden Sie eine Private Message an chris-as  Schreiben Sie einen Gästebucheintrag für chris-as

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.



Sehen Sie sich das Profil von clausb an!   Senden Sie eine Private Message an clausb  Schreiben Sie einen Gästebucheintrag für clausb

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für chris-as 10 Unities + Antwort hilfreich

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




Sehen Sie sich das Profil von Walter Geppert an!   Senden Sie eine Private Message an Walter Geppert  Schreiben Sie einen Gästebucheintrag für Walter Geppert

Beiträge: 2166
Registriert: 12.12.2000

erstellt am: 16. Feb. 2009 18:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für chris-as 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Markus Kuehl an!   Senden Sie eine Private Message an Markus Kuehl  Schreiben Sie einen Gästebucheintrag für Markus Kuehl

Beiträge: 165
Registriert: 22.06.2001

erstellt am: 16. Feb. 2009 18:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für chris-as 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von chris-as an!   Senden Sie eine Private Message an chris-as  Schreiben Sie einen Gästebucheintrag für chris-as

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke an alle für eure Hilfe. Heute ist es schon etwas spät zum "lispeln". Ich werde eure Tipps morgen testen und gebe hier dann Bescheid.

.... und natürlich viele viele 

chris

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

chris-as
Mitglied



Sehen Sie sich das Profil von chris-as an!   Senden Sie eine Private Message an chris-as  Schreiben Sie einen Gästebucheintrag für chris-as

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von BenjaminRuss an!   Senden Sie eine Private Message an BenjaminRuss  Schreiben Sie einen Gästebucheintrag für BenjaminRuss

Beiträge: 49
Registriert: 16.02.2009

erstellt am: 03. Apr. 2009 11:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für chris-as 10 Unities + Antwort hilfreich


Formelemente_button_lsp.txt

 
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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz