| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: DCL Button - Label (1268 mal gelesen)
|
gerhard123 Mitglied techn.Angestellter
Beiträge: 151 Registriert: 29.11.2007
|
erstellt am: 04. Sep. 2013 13:10 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich muss einige LISP/DCL-Programme mehrsprachig umsetzten. Nun habe ich aber das Problem, dass ich bei den DCL-Boxen den Label eines Buttons nicht von der deutschen Beschreibung ins englische oder italienische übersetzen kann. Hab auch im Internet gesucht, aber nicht wirklich was gefunden. Gibt es da ein Lösung?? Vorab schon mal Danke für eure Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
heidi Mitglied CAD-Dienstleister
Beiträge: 1132 Registriert: 01.11.2001 Dell Precicion M6700 Nvidia Quadro K3000M AutoCAD 2012 Sp2 nXtRender Tetra4D eigene Tools Adobe CreativeSuite 6 ——————————— MacBook Pro i9 2,3/16/5 Big Sur 11.5.1 BricsCAD V21 Pro
|
erstellt am: 04. Sep. 2013 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für gerhard123
Hallo gerhard123, in den DCL's sind doch die Label einfach mit einem "Text" beschriftet: } :radio_button { label = "Linie wählen"; --> in z.B. label = "pick line"; key = "but_5"; } Der sollte sich problemlos in eine andere Sprache ändern lassen. Die Übersetzung bleibt dann natürlich dir überlassen ------------------ Gruß Heidi http://www.cad-point.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 04. Sep. 2013 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für gerhard123
|
gerhard123 Mitglied techn.Angestellter
Beiträge: 151 Registriert: 29.11.2007
|
erstellt am: 04. Sep. 2013 13:36 <-- editieren / zitieren --> Unities abgeben:
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 04. Sep. 2013 15:08 <-- editieren / zitieren --> Unities abgeben: Nur für gerhard123
Du kannst aber auch deine DCL Boxen 'on the fly' erstellen lassen, also direkt aus deinem Lisp programm heraus, das hat dann den Vorteil, das du den Key mit einer Variablen versiehst, die eben je nach Sprache dann belegt wird. Das ist auf alle Fälle ein grundsätzlich einfacheres Vorgehen, vor allem, wenn noch weitere Sprachen hinzukommen. Wenn du Beispiele für so ein Vorgehen brauchst, sag Bescheid. ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gerhard123 Mitglied techn.Angestellter
Beiträge: 151 Registriert: 29.11.2007
|
erstellt am: 05. Sep. 2013 07:29 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 05. Sep. 2013 07:50 <-- editieren / zitieren --> Unities abgeben: Nur für gerhard123
In Hinblick auf zur Laufzeit zu erzeugenden DCL-Dateien hilft vielleicht folgendes Tool weiter....Im Vorfeld wird dann die DCL-Datei dabei ganz normal mit dem VLisp-Editor erstellt und, nachdem Design und Funktion erfolgreich getestet worden sind, auch als DCL abgespeichert. Anschließend wird das Tool DCL2LSP geladen und mit dem in dem Falle gleichlautenden Befehlsaufruf DCL2LSP gestartet. Im Programm wird dann der Anwender aufgefordert die DCL-Datei zu wählen. Die Zeilen der DCL-Datei werden nun als Textliste eingelesen und zu einem Lispfunktionstext (defun WRITE-DCL….) erweitert, der später dann die DCL-Datei zur Laufzeit erzeugt und deren mittels vl-filename-mktemp erzeugten Dateinamen zurückliefert, damit die später den Dialog aufrufende Funktion darauf zurückgreifen kann. Weiterhin schreibt das Tool einen rudimentären Programmrumpf um das Handling der dynamischen DCL-Erzeugung zu dokumentieren.... Viel Spaß beim Testen ------------------ Also ich finde Unities gut ... und andere sicher auch --------------------------------------- - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 05. Sep. 2013 08:22 <-- editieren / zitieren --> Unities abgeben: Nur für gerhard123
das Tool von CADmium ist erstmal ziemlich Hilfreich, um schon bestehende Dialogboxen in ein Lisp Format zu bringen. An den Stellen wo der Label sitzen soll, muss dann nur noch manuell editiert werden und eine Variable eingesetzt werden, die dann zur Laufzeit mit einem Wert befüllt wird. Siehe dazu mein Beispiel mit der wortliste. Hier mal ein Beispiel Code: (defun c:test (/ strDCLFile wortliste dcl_id country list_box1) (defun MakeDcl:setup (strFile wortliste / f) (setq f (open strFile "w")) (write-line (strcat "e_setup : dialog {label=" (nth 0 wortliste) "; key = \"e_setup\";" ) ;_ end of strcat f ) ;_ end of write-line (write-line (strcat ":column {: popup_list { key = \"list_box1\" ; label = " (nth 1 wortliste) ";height = 2; width = 15; }" ) ;_ end of strcat f ) ;_ end of write-line (write-line (strcat ": popup_list { key = \"list_box2\" ; label = " (nth 2 wortliste) "; height = 2; width = 15; } } ok_cancel;}" ) ;_ end of strcat f ) ;_ end of write-line (close f) ) ;_ end of defun (setq strDCLFile (strcat (getvar "TEMPPREFIX") "testus.dcl" ) ;_ end of strcat ) ;_ end of setq (setq wortliste '("Label1Text" "Labeltext2" "Labeltext3")) (MakeDcl:setup strDCLFile wortliste) (setq dcl_id (load_dialog strDCLFile)) (if (not (new_dialog "e_setup" dcl_id)) (exit) ) ;_ end of if (setq country (list "Europe" "USA") list_box1 (nth 0 country) ) ;_ end of setq (start_list "list_box1" 3) (mapcar 'add_list Country) (end_list) (action_tile "list_box1" "(setq list_box2(atoi $value))" ) ;_ end of action_tile (action_tile "list_box2" "(setq list_box2_erg (atoi $value))" ) ;_ end of action_tile (action_tile "cancel" "(done_dialog)") (action_tile "ok" "(auswert list_box1 list_box2)(done_dialog)" ) ;_ end of action_tile (start_dialog) (unload_dialog dcl_id) (vl-file-delete strDCLFile) ) ;_ end of defun
------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |