| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
Autor
|
Thema: Eigenes Menu (1856 mal gelesen)
|
Gatzer Mitglied
Beiträge: 189 Registriert: 25.11.2003 OSDD 15.50 OSDM 15.50 MM 15.50
|
erstellt am: 27. Apr. 2004 11:07 <-- editieren / zitieren --> Unities abgeben:
Hallo. Ich versuche gearde in einem eigenen Menue ein Macro aufzurufen. Aber mit dem Befehl :commandInput (load "D:/welle07.lsp") funktioniert es nicht. Weiterhin soll das Macro auch nicht in der Toolbox landen, sondern neben dem Schalter Machine. Hat jemand eine Idee? Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorothea Mitglied
Beiträge: 242 Registriert: 22.11.2001
|
erstellt am: 27. Apr. 2004 13:00 <-- editieren / zitieren --> Unities abgeben: Nur für Gatzer
Hallo Michael, Eine Funktion aufrufen, die man hinter :commandInput schreibt, das funktioniert so nicht. In ein Menue haengt man Kommandos. Die werden dann durch druecken des Knopfes aktiviert. Und fuer diese laufende Kommando noetige/wichtige/gewollte Zusatzparameter schreibt man hinter :commandInput. Du muesstest dir also ein Kommando schreiben (mit sd-defdialog). Das kann z.B. einen Parameter :filename haben. Und das Kommando kann dann deinen Filenamen als :commandInput bekommen. Ich hab's jetzt nicht ausprobiert, doch so in etwa muesste es tun. Erscheint bei dir das Menue in der Toolbox? Bei mir funktioniert dein Code prima. Ich bekomme keinen Eintrag in der Toolbox. Gruss Dorothea
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gatzer Mitglied
Beiträge: 189 Registriert: 25.11.2003 OSDD 15.50 OSDM 15.50 MM 15.50
|
erstellt am: 28. Apr. 2004 08:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Dorothea, danke für deinen Tip. Wenn man (sd-call-cmds (load "Welle07.lsp") in eine Variabe setzt, und die dann hinter :commandInput schreibt funktioniert es. Mit dem erscheinen in der Toolbox habe ich mich wohl etwas umständlich ausgedrückt. Bei mir funktioniert das genau wie bei dir, ich meinte das Macro Welle07.lsp was in der Tollbox landet. (jetzt wo es funktioniert) Mit :Toolbox-button nil erreicht man das auch, aber es taucht dann nirgendwo auf. Hast du da noch so einen Tip? Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stonly Mitglied
Beiträge: 43 Registriert: 05.09.2003
|
erstellt am: 28. Apr. 2004 08:26 <-- editieren / zitieren --> Unities abgeben: Nur für Gatzer
hallo michael, wenn du in deinem lisp programm im sd-defdialog bereich :toolbox-button nil setzt, kannst du deinen eintrag aus der toolbox herausnehmen. ... (sd-defdialog 'MeinTool :dialog-title "MeinTool" :toolbox-button nil .... grüße steffen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MC Moderator Dipl.Ing. Maschinenbau, Konstrukteur
Beiträge: 644 Registriert: 20.10.2000 System: HP Z400, 32GB RAM nVidia Quadro 4000 Win10 Enterprise 64bit SOLIDWORKS 2020 Premium SP5.0 Creo Elements/Direct Modeling (x64) 19.0 M030 Modelmanager 19
|
erstellt am: 28. Apr. 2004 08:34 <-- editieren / zitieren --> Unities abgeben: Nur für Gatzer
Hallo Michael, Zitat: Wenn man (sd-call-cmds (load "Welle07.lsp") in eine Variabe setzt, und die dann hinter :commandInput schreibt funktioniert es.
Kannst Du mal das Lisp-file anhängen, mit dem Du das hinbekommen hast? Ich könnte sowas der Übersichtlichkeit halber auch gut gebrauchen... Danke im Voraus,
Michael
------------------ Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (A. Einstein) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gatzer Mitglied
Beiträge: 189 Registriert: 25.11.2003 OSDD 15.50 OSDM 15.50 MM 15.50
|
erstellt am: 28. Apr. 2004 09:54 <-- editieren / zitieren --> Unities abgeben:
Hallo MC, ich habe mich wohl zu früh gefreut. Ich habe in meinem Macro so viel ausprobiert, bis es fumktionierte. Aber nach dem Neustart von OSD geht es nicht mehr. Ich bleibe aber an dem Problem dran. Als kleinen Trost hänge ich eine andere Lösung dran. Es erstellt auch ein eigenes Menu, und ruft dann auch eigene Macros auf. (Und es fuktioniert auch nach einem Neustart) Mir selber gefällt nur eins daran nicht, und zwar das man dann alles in einer Datei hat. (Die Basislösung kommt übrigens von Walter Geppert.) Gruß Michael
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gatzer Mitglied
Beiträge: 189 Registriert: 25.11.2003 OSDD 15.50 OSDM 15.50 MM 15.50
|
erstellt am: 28. Apr. 2004 10:22 <-- editieren / zitieren --> Unities abgeben:
|
MC Moderator Dipl.Ing. Maschinenbau, Konstrukteur
Beiträge: 644 Registriert: 20.10.2000
|
erstellt am: 28. Apr. 2004 10:59 <-- editieren / zitieren --> Unities abgeben: Nur für Gatzer
Hallo Michael, danke schön erstmal! UI's hast Du. Nur jetzt funktioniert zwar das Laden des Makros (lisp-Programms), aber wie bringt man OSD dazu auch gleich den entsprechenden Dialog bzw. das Programm zu starten? Es müßte doch machbar sein mit einem Klick auf den kreierten Button das gleiche zu tun, als ob man auf den Button in der Werkzeugkiste klickt, oder? Meine Lisp-Kenntnisse sind in der Hinsicht irgendwie etwas eingerostet.... Gruß, Michael ------------------ Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (A. Einstein) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gatzer Mitglied
Beiträge: 189 Registriert: 25.11.2003 OSDD 15.50 OSDM 15.50 MM 15.50
|
erstellt am: 28. Apr. 2004 11:53 <-- editieren / zitieren --> Unities abgeben:
Hallo MC, genau so eine Lösung suche ich auch. Steffens Lösung :toolbox-button nil funktioniert zwar, aber wie man es dann an einer geünschten Stelle erscheinen läßt fehlt in der Anleitung. Ich habe auch schon mit :menuPositon und osition experimentiert, aber ohne Erfog. Melde mich wenn ich eine Lösung gefunden habe. Gruß Michael
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorothea Mitglied
Beiträge: 242 Registriert: 22.11.2001
|
erstellt am: 28. Apr. 2004 13:07 <-- editieren / zitieren --> Unities abgeben: Nur für Gatzer
Hallo, Ich glaub, ich habe mich nicht gut genug ausgedrueckt, was ich mit dem :commandInput und dem Dialog meine. Anbei mal ein Beispiel. Hier haenge ich den Dialog LOAD_WELLE in das Menue rein. Wenn man auf den Knopf drueckt, dann wird ein Lisp-File geladen. Was ich noch nicht verstehe, was ihr hiermit Zitat:
aber wie bringt man OSD dazu auch gleich den entsprechenden Dialog bzw. das Programm zu starten?
meint. Soll ein Dialog, der in dem geladenen Lisp-File definiert ist, geladen werden? Oder was fuer ein Programm soll ausgefuehrt werden? Gruss Dorothea
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gatzer Mitglied
Beiträge: 189 Registriert: 25.11.2003 OSDD 15.50 OSDM 15.50 MM 15.50
|
erstellt am: 28. Apr. 2004 14:18 <-- editieren / zitieren --> Unities abgeben:
Hallo Dorothea, danke für dein Beispie. Es funktioniert gut. Was ich aber mit (wie bringt man OSD dazu auch gleich den entsprechenden Dialog bzw. das Programm zu starten?) meine ist, wie erreiche ich, das man nicht in die Toolbox gehen muß um das Macro Welle07 anzustarten, sondern das es gestartet wird wenn man im Meun auf den Knopf Load_Welle drückt. Also; sozusagen "gehe nicht über Toolbox" Grüße Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorothea Mitglied
Beiträge: 242 Registriert: 22.11.2001
|
erstellt am: 28. Apr. 2004 14:47 <-- editieren / zitieren --> Unities abgeben: Nur für Gatzer
Hallo Michael, Wenn man in deinem Menue auf den Knopf drueckt, dann wird jedes mal das File "welle07.lsp" geladen (der Dialog LOAD_WELLE mit dem entsprechenden filenamen aufgerufen). Das ist glaube ich nicht das, was du haben willst, stimmt's? Ich habe das so verstanden, dass im File welle07.lsp Lisp-Code steht. Und der definiert einen Dialog Welle07. Ist das richtig so? Dann sollte es doch eher so sein: Lade irgendwann mal dein File welle07.lsp z.B. dort, wo du das Menue definierst. Und dann trage in das Menue den Knopf WELLE07 ein statt LOAD_WELLE. Das ist doch eingedlich das, was du aufrufen willst - WELLE07. Mag sein, dass ich dich immer noch nicht verstanden habe. Dann musst du nochmal genauer schreiben, was du willst. Gruss Dorothea
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gatzer Mitglied
Beiträge: 189 Registriert: 25.11.2003 OSDD 15.50 OSDM 15.50 MM 15.50
|
erstellt am: 29. Apr. 2004 09:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Dorothea, wenn du das Macro im Anhang startest, dann siehst du wie es funktionieren soll. Ich habe einfach "Eigenes_Menu.lsp" und "Welle07.lsp" zusammengefügt. Bei dieser Lösung würde die Datei aber schnell unübersichtlich, da ich ja alle Macros die ich in "Eigenes_Menu.lsp" aufrufen möchte zusammenfügen müßte. Das möchte ich aber nicht, sondern so wie in deinem Beispiel, die Macros aufrufen. Aber sie sollen nicht in der Toolbox landen, sondern so erscheinen wie bei dem Macro im Anhang. Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorothea Mitglied
Beiträge: 242 Registriert: 22.11.2001
|
erstellt am: 29. Apr. 2004 10:20 <-- editieren / zitieren --> Unities abgeben: Nur für Gatzer
Hallo Michael, Zitat:
Ich habe einfach "Eigenes_Menu.lsp" und "Welle07.lsp" zusammengefügt. Bei dieser Lösung würde die Datei aber schnell unübersichtlich, da ich ja alle Macros die ich in "Eigenes_Menu.lsp" aufrufen möchte zusammenfügen müßte.
Warum? Du kannst jeden Dialog in sein eigenes File schreiben oder zwei in eins oder alle. Da bist du an nichts gebunden. Wenn du alle Dialoge geladen haben willst, dann schreib dir doch ein 'Lade'-File (lade_meine_kommandos.lsp). Da steht dann nichts weiter drin ausser: (load "Eigenes_Menu.lsp") (load "Welle07.lsp") (load ....) Dieses Lade-File wird dann irgendwann mal geladen, beim Hochfahren oder wann auch immer. In dein Menue fuegst du so viele Knoepfe ein, wie du auch Dialoge schreibst. Genau so wie mit 'gr_wellen'. Wenn das Menue vor den Dialogen geladen wird (also in dem Lade-File erst das Lisp File fuer das Menue), dann finden die Dialoge ihren Platz in deinem Menue und erscheinen nicht in der Toolbox. Noch was ganz anderes. Wenn ich mir deinen Dialog angucke, speziell die ok-action, dann faellt mir auf, dass du das Makro sd-call-cmds vergessen hast! Nie darf man einen Dialog aus einem anderen Dialog aufrufen, ohne ihn durch sd-call-cmds zu kapseln!!! Siehe hierzu auch die Doku: documentation/integration_kit/reference/sd-call-cmds.html#sd-call-cmds Gruss Dorothea
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gatzer Mitglied
Beiträge: 189 Registriert: 25.11.2003 OSDD 15.50 OSDM 15.50 MM 15.50
|
erstellt am: 30. Apr. 2004 08:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Dorothea, ich hoffe ich habe deine Geduld nicht all zu sehr strapaziert. Denn es hat ja eine Weile gedauert, bis bei mir das Licht anging. Aber nun verhält sich mein Menue genau so wie ich es will.
vielen Dank für deine Ausdauer Gruß, und schönes Wochenende Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Martin W. Steinbach Mitglied Key Account Manager
Beiträge: 66 Registriert: 17.11.2003 Immer up to Date
|
erstellt am: 03. Mai. 2004 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für Gatzer
Hallo Leute, so ganz verstehe ich die Aufregung nicht. Ich lade am Start (über pesd_customize oder sd_customize) die enstprechenden Lisp files. Wohlgemerkt zum erstellen meiner Befehle mit dem Befehl "Aufzeichnen" und mit Toolbox: t. Danach zeichne ich den befehl auf, in dem ich ihn direkt über die Werkzeugkiste aufrufe und schon im offenen Dialog bin. Dann schliesse ich den befehl ab, entferne den Toolbox: nil und lege den Befehl auf ein Icon, in ein neues Menu usw usf. Siehe Screenshot!! Hilft Euch das?? Geht natürlich nur unter Windo(of)ws. Martin ------------------ Martin W. Steinbach CoCreate Holding GmbH Consultant martin_steinbach@cocreate.com www.cocreate.de +49 7031 951 2298 --------------------------------------------- vorher als <Scorpillon> unterwegs im Forum Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |