Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Was mache ich bei sd-create-menu falsch?

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
  
MAIT erhält den Abas Partner Performance Award 2025, eine Pressemitteilung
Autor Thema:  Was mache ich bei sd-create-menu falsch? (1338 mal gelesen)
MC
Mitglied
Dipl.Ing. Maschinenbau, Konstrukteur


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

Beiträge: 644
Registriert: 20.10.2000

erstellt am: 10. Feb. 2010 08:00    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

Guten Morgen Lispler,
ich baue gerade unsere Lisps soweit um, dass sie nach dem Umstieg von V13.01 auf V16.5 wieder funktionieren.
Ich hatte seinerzeit ein neues Menü erzeugt, in dem die einzelnen Makros aufgerufen werden können.
Das funktioniert jetzt auch noch weitestgehend, aber die Icons, die ich statt der Zahnräder angezeigt haben möchte erscheinen nicht.
Im Ikit steht, dass ich den relativen Pfad angeben muss, aber nicht, ob mit ohne Datei-Endung, bzw. welches Bildformat in welcher Größe etc. benötigt wird.

Wenn ich im ersten Schritt alle Makros und auch die Bilder im selben Verzeichnis (vorab mal lokal) liegen habe, dann sollte doch eigentlich auch das Bild erscheinen, oder was mache ich hier falsch?
Zum Beispiel ist das Bild "Schleiffreistich-1-1" ein bmp mit 70x20 Pixeln.

Anbei mal der Code, bzw. ein Teil davon:

Code:
(in-package :custom)
(use-package :Oli)

(sd-create-menu "Tools-Modeling"
  :title "OSDM Makros"
  :contents
  `(
    (:buttonBox "TeileInfozeigen"
    :title "Teile Info/zeigen"
    :buttons (
(NEUE_DICHTE_Farbe :label "Dichte&Farb" #|:image "muster-1.bmp" |# )
(dichte-suchen-dialog :label "Dichte suchen")
(dc4-normteil-dichte-dialog :label "Gewichtzuw")
(os_teileinfo :label "Teile-Daten" :image "Teileinfo" )
(Ansichtsliste-speichern :label "Ans.speichern" :image "liste_merken" )
(Ansichtsliste_laden :label "Ans. laden" :image "liste_laden" )
;(schnittebene :label "Schnitt zeig.")

(zeige_nachbarteile :label "Nachbarteile")
      ) ;end buttons
    ) ;end buttonbox
   
    (:buttonBox "Teile_bearbeiten"
    :title "Teile bearbeiten"
    :buttons (
(os-gew-a-freistich :label "Gew.-Freistich" :image "Gewindefreistich" )
        (dc4-freist-schleif-dialog :label "Schleif-Freistich" :image "Schleiffreistich-1-1" )
        (zylindersenkung :label "Zyl.-Senk" :image "Zylindersenkung.bmp" )
(kegelsenkung :label "Keg.-Senk" :image "Kegelsenkung.bmp" )
; (os-aussengewinde :label "Aussengewinde")
; (dc4-positionieren-dialog :label "Kegelpos")
; (dc4-teile-bilanz-dialog :label "Teilezaehl") 
) ;end buttons
    ) ;end buttonbox

.
.
.
.


Vorab schonmal vielen Dank für eure Hilfe!

Grüße, Michael

------------------
Das maximale Volumen subterraner Agrarprodukte steht in reziproker Relation zur mentalen Kapazität des Produzenten.

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

der_Wolfgang
Moderator
Tastenhauer


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

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: 10. Feb. 2010 20:11    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 MC 10 Unities + Antwort hilfreich

Also,

es geht auch ohne '.bmp'

der relative Pfad bezieht sich nicht auf 'relative' zu deinem LISP sondern relative zu einer user/site/corp directory.

C:\DuE\W\Anwendungsdaten\CoCreate\CoCreateModeling\16.50

dahinter befindet sich eine \bitmaps\bmp struktur.

Da sollten die bunten Bildchen dann hinein.  Sd-create-menu verwendet hier die selbe Methode zum finden der Dateien / zum vervollständigen des Dateinamens wie z.b. sd-create-image. GGF. mal dort nachlesen.  --- Aber bitte mit etwas Vorsicht geniessen, hab's nur aus dem Kopf beantwortet! ---

Wenn Du bilder und lisp im selben Verzeichnis haben willst, kannst Du dir mit *load-truename* (standard LISP) das Verzeichnis DEINES lisps ermittlen und mit diesem dann dem sd-create-menu absolute pfadnamen geben. Das macht es aus meiner Sicht ab und an einfacher als sich mit automagischen Suchstragegien zu beschäftigen.

------------------
Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en)NotePad++

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

MC
Mitglied
Dipl.Ing. Maschinenbau, Konstrukteur


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

Beiträge: 644
Registriert: 20.10.2000

erstellt am: 15. Feb. 2010 12:23    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 Wolfgang,
danke für Deine Antwort.
Meine rudimentären Lisp-Kenntnisse reichen aber wahrscheinlich nicht aus, um es nach Deiner Anleitung umzusetzen.

Ich habe nun alle Makros mit *load-truename* statt load geladen.

Sieht jetzt also so aus:

Code:
(*load-truename* "Schleif-Freistich.lsp" )

Soweit funktioniert das Laden auch.
Den Pfad für das Icon habe ich dann so:

Code:
:buttons (
(os-gew-a-freistich :label "Gew.-Freistich" :image "Gewindefreistich" )
        (dc4-freist-schleif-dialog :label "Schleif-Freistich" :image "D:\Lisp\autoload\Modeling\Schleiffreistich-1-1.bmp" )

gesetzt.

Sowohl die Lisp-Makros, als auch das Icon liegen im Verzeichnis D:\Lisp\autoload\Modeling
Leider erscheint immer noch kein Bildchen.
Ich bin nicht sicher, ob ich Deine Beschreibung richtig verstanden habe, oder wo nun noch das Problem ist.

Kannst Du mir nochmal auf die Sprünge helfen?

Nochmals danke im Voraus,

Michael

------------------
Das maximale Volumen subterraner Agrarprodukte steht in reziproker Relation zur mentalen Kapazität des Produzenten.

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: 15. Feb. 2010 12: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 Nur für MC 10 Unities + Antwort hilfreich

Bitte Doku zu load-truename lesen: http://www.lispworks.com/documentation/HyperSpec/Body/v_ld_pns.htm

Anwendungsbeispiel: http://www.clausbrod.de/Blog/DefinePrivatePublic20080330FunctionalFish

[Diese Nachricht wurde von clausb am 15. Feb. 2010 editiert.]

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

der_Wolfgang
Moderator
Tastenhauer


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

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: 15. Feb. 2010 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 MC 10 Unities + Antwort hilfreich


load_truename_example.lsp.txt

 
Zitat:
Original erstellt von MC:
Ich habe nun alle Makros mit *load-truename* statt load geladen.
Code:
(*load-truename* "Schleif-Freistich.lsp" )
Soweit funktioniert das Laden auch.

nie im Leben. Das ist eine nicht funktionierende Syntax!
Zitat:
Den Pfad für das Icon habe ich dann so:
Code:
:buttons (
(os-gew-a-freistich :label "Gew.-Freistich" :image "Gewindefreistich" )
        (dc4-freist-schleif-dialog :label "Schleif-Freistich" :image "D:\Lisp\autoload\Modeling\Schleiffreistich-1-1.bmp" )

Naja.  genau das, will man doch vermeiden!  Absolute HARD-codierte Dateinamen.

Zusätzlich begehst du nun hier einen weitere Fehler:  "\"  kannst du nich einfach so in einem LISP string reinschreiben. "\" hat eine SonderBedeutung!  Mach Dich bitte schlau warum!

Empfehlung : schreibe "/" das ist einfacher zu merken, zu tippen.

Und noch ein Tipp:
  * Dein LISP heisst  "Schleif-Freistich"  Also 2 Woerter mit Bindestrich
  * Dein Image heisst aber "Schleiffreistich" : ein Wort,
Sowas erhöht nicht gerade die Übersicht im Dateissystem! :-(

SchleifFreistich.lsp + SchleifFreistich-1.bmp + SchleifFreistich-2.bmp .....
__________________________________________________

Lad' Dir mal die angehänget LSP Datei. Guck was in der Console steht! Verschiebe die Datei mal nach c:\irgendow und lad die Datei in den Modeling, mal nach d:\..  und lad die Datei in den Modeling, bennene die Datei auch mal um(!!), schubs sie mal irgendow ins Netzwerk und lad die Datei in den Modeling, auf'n USB stick  und lad die Datei in den Modeling oder wohin  auch immer. Beobachte immer die Ausgabe.

Das ist nix weiter als eine praktische Anwendung von dem was im 1. Link vom Claus steht.

Zitat:
Kannst Du mir nochmal auf die Sprünge helfen?
Ala HOPP!

------------------
Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en)NotePad++

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

MC
Mitglied
Dipl.Ing. Maschinenbau, Konstrukteur


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

Beiträge: 644
Registriert: 20.10.2000

erstellt am: 22. Feb. 2010 06:35    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 Wolfgang,
danke für die Hilfe!
Zitat:
nie im Leben. Das ist eine nicht funktionierende Syntax!

Ich hatte natürlich ein älteres Lisp mit den normalen load-Befehlen geladen, daher funktionierte es bei mir noch (Asche auf mein Haupt)...

Als Ausgabe bei den 4 Zeilen:

Code:
(pprint "Der aktuelle Dateiname ist:")
(file-namestring *load-truename*)

(pprint "Das Verzeichnis aus dem diese Datei geladen wurde:")
(directory-namestring *load-truename*)


erscheint allerdings nichts.

Ich konnte es nun nach Rücksprache mit unserem CAD-Dienstleister etwas eleganter mit einer neuen Umgebungsvariable lösen. Trotzdem nochmal vielen Dank für den Exkurs, ich kann das bestimmt mal für etwas anderes gebrauchen.
Meine letzte Lisp-Schulung ist 7 Jahre her. Wenn man nur ab und an mal mit Lisp zu tun hat, gerät vieles in Vergessenheit.

Grüße, Michael

------------------
Das maximale Volumen subterraner Agrarprodukte steht in reziproker Relation zur mentalen Kapazität des Produzenten.

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 720
Registriert: 07.08.2003

Lenovo ThinkStation P360
Core i7-12700@2.10 GHz, 32GB
NVIDIA RTX A2000 12 GB
Creo Elements/Direct Modeling 20.5
Creo Elements/Direct Drafting 20.5
Creo Elements/Direct ModelManager 20.5

erstellt am: 22. Feb. 2010 10:27    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 MC 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von MC:
erscheint allerdings nichts.

Konsole einschalten! (Menü Ansicht - Konsole)
Dort stehen die Ausgaben von pprint und sonstige Meldungen etwa beim Laden von Lisps.

------------------
Gruß aus dem Salzkammergut

Thomas

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

der_Wolfgang
Moderator
Tastenhauer


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

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: 23. Feb. 2010 19:37    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 MC 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von MC:
Als Ausgabe bei den 4 Zeilen:
Code:
(pprint "Der aktuelle Dateiname ist:")
(file-namestring *load-truename*).....
erscheint allerdings nichts.

Also in dem LISP, was ich als demo beispiel zusammen gehämmert habe, steht explizit drin:
Code:
(sd-show-console-window)
Die Konsole wird also ZWANGS aufgemacht!  Wenn Du dieses Fenster natuerich irgendwo hinschiebst, wo es verdeckt ist, ausserhalb des Bildschirm steht (oder was auch immer) dann läuft was falsch.
Zitat:
Ich konnte es nun ... etwas eleganter mit einer neuen Umgebungsvariable lösen.
Ob eine *neue* Umgebungsvariable, die man auf jedem System in der Regel erst setzen muss, "eleganter" ist...    wage ich mal anzuzweifeln (MEINE meinung!)

Mit dem *load-truename* Ansatz kannst Du lsp und Zusatzdateien in ein beliebiges Laufwerk (zum Beispiel auf dem Firmen Netz) ablegen und einen andere CAD'ler sagen : lade LSP file //x/y/z.lsp    Und die Zusatzdateien werden automatisch mit geladen. Kein gefummel am lokalen environment.  -- Aber gut Dein Problem scheint gelöst.

------------------
Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en)NotePad++

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

MC
Mitglied
Dipl.Ing. Maschinenbau, Konstrukteur


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

Beiträge: 644
Registriert: 20.10.2000

erstellt am: 24. Feb. 2010 06:33    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

Guten Morgen Wolfgang,
ich hatte mich wohl etwas zu knapp ausgedrückt.
Das Konsolenfenster erscheint natürlich, aber ich denke, es müßte außer "Diese Datei wurde geladen wie folgt:  auch noch "Der aktuelle Dateiname ist: xxxx.lsp" und
"Das Verzeichnis aus dem diese Datei geladen wurde: x:/dfgrt/xxx" erscheinen.

So sieht es aus:

Die Umgebungsvariable hatte ich schon in unserer 13.01, daher konnte ich wenigstens sonst fast alles so belassen wie es war.
Sie wird auch nicht auf jedem Rechner einzeln gesetzt, sondern in einer auf dem Server liegenden *.bat-Datei, in der unser CAD-Dienstleister (Inneo) schon diverse andere Umgebungsvariablen deklariert hat.

Wie schon gesagt, load-truename ist für mich mangels Erfahrung in Sachen Lisp absolutes Neuland. Ich bin zu 98% Konstrukteur, mache den Rest der Zeit etwas Lisp, wenn mal einer der Kollegen etwas braucht.
Da reicht es leider nur zum Kratzen an der Oberfläche.

Grüße, Michael

------------------
Das maximale Volumen subterraner Agrarprodukte steht in reziproker Relation zur mentalen Kapazität des Produzenten.

[Diese Nachricht wurde von MC am 24. Feb. 2010 editiert.]

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

der_Wolfgang
Moderator
Tastenhauer


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

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: 24. Feb. 2010 21:15    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 MC 10 Unities + Antwort hilfreich


load_truename_example.lsp.txt

 
Zitat:
Original erstellt von MC:
ich hatte mich wohl etwas zu knapp ausgedrückt.
Das Konsolenfenster erscheint natürlich, aber ich denke, es müßte ... erscheinen.


Hallo Michael,
wie recht Du hast. Und kaum sehe ich ne gescheite Fehlermeldung / den aktuellen Output,  sehe ich auch was ich falsch gemacht habe. Sorry. Da fehlen einfach 2 pprints.
Zitat:
Die Umgebungsvariable ....Server... *.bat-Datei
Ok, dann siehts anders aus.

Ich habe die Version von load_truename_example.lsp auf cad.de  korrigiert.

------------------
Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en)NotePad++

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