| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: dcl is_enabled (882 mal gelesen)
|
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 01. Mrz. 2005 12:18 <-- editieren / zitieren --> Unities abgeben:
hi! ich möchte in einer dcl-datei in abhängigkeit eines toggle ("Plotten ja/nein") die plottereinstellungen bei "nein" grau und damit nicht wählbar darstellen (is_enabled). brauche ich dafür verschiedene dialoge oder kann ich es mit einer begingung (if etc.) lösen? ciao georg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3849 Registriert: 15.10.2003
|
erstellt am: 01. Mrz. 2005 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für gmk
Ich steuere die Aktivierbarkeit von Elementen im DCL nur dann über "is_enabled", wenn ich das Ding gezielt (noch) nicht verwende, ich aber im Bild sehen möchte, wie es aussieht. Das laufende Aktivieren und Deaktivieren mache ich nicht im DCL, sondern im LSP mit der Zeile Code: (mode_tile "mein_element" 0)
-> Details siehe Online-Hilfe Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 02. Mrz. 2005 09:02 <-- editieren / zitieren --> Unities abgeben:
hallo peter, danke für den tipp. wo muss ich die zeile unterbringen? (mit der if-konstruktion funkts offensichtlich nicht) bei plotten mit haken sollen plotter und ctb wählbar sein , ohne haken alles grau. menu1 : dialog { label = "Ploteinstellungen" ; : toggle { key="tog1"; label="Plotten"; value="1"; } : boxed_radio_column { label="Plotter"; : radio_button { key="rb1"; label="Plotter 1" ; value="1"; } : radio_button { key="rb2"; label="Plotter 2" ; } : radio_button { key="rb3"; label="Plotter 3" ; } } //column : boxed_radio_column { label="CTB"; : radio_button { key="rb4"; label="CTB-1" ; } : radio_button { key="rb5"; label="CTB-2" ; value="1"; } } //column ok_cancel ; } -------------- (DEFUN c:menu ( / plotter ctb-datei dcl_id userclick ) (SETQ plotter "Plotter1") (SETQ ctb-datei "CTB-1") (SETQ plotten 1) (SETQ dcl_id (LOAD_DIALOG "menu.dcl")) (IF (NOT (NEW_DIALOG "menu1" dcl_id)) (EXIT)) (ACTION_TILE "tog1" "(SETQ plotten $value)") (IF (= plotten 0) (PROGN (mode_tile "rb1" 0) (mode_tile "rb2" 0) (mode_tile "rb3" 0) (mode_tile "rb4" 0) (mode_tile "rb5" 0) ) ) (ACTION_TILE "rb1" "(SETQ plotter \"Plotter1\")") (ACTION_TILE "rb2" "(SETQ plotter \"Plotter2\")") (ACTION_TILE "rb3" "(SETQ plotter \"Plotter3\")") (ACTION_TILE "rb4" "(SETQ ctb-datei \"CTB-1\")") (ACTION_TILE "rb5" "(SETQ ctb-datei \"CTB-2\")") (ACTION_TILE "accept" "(DONE_DIALOG) (SETQ userclick T)") (ACTION_TILE "cancel" "(DONE_DIALOG) (SETQ userclick nil)") (START_DIALOG) (UNLOAD_DIALOG dcl_id) (IF userclick (LIST plotter ctb-datei) NIL ) ) ciao georg
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3849 Registriert: 15.10.2003
|
erstellt am: 02. Mrz. 2005 09:54 <-- editieren / zitieren --> Unities abgeben: Nur für gmk
Du hast deinen Fensteraufruf "linear" in die Lisp eingebaut, und genauso linear wird es abgearbeitet. Die Änderung von "plotten" wird in die Darstellung eines schon stillstehenden Fensters nicht übernommen (der Wert plotten wird schon gesetzt). Ich baue meine Fenster immer so, daß ich das Fenster in einer while-Schleife abarbeite und dann wiederholt aufrufe - und damit die Änderungen auch sichbar machen kann. also - setze X auf 2 - lade das Fenster mit (while X >= 2..) - verwende alle action_tiles etc.: (action_tile "Knopf1" (machwas_1) (done_dialog 2)) ; bleibt in der Schleife (action_tile "Knopf2" (machwas_2) (done_dialog 3)) (action_tile "Ende" (done_dialog 1)) ; geht aus Schleife - Abschluss mit (setq X (start_dialog)) - wertet deine Knöpfe aus - baue das Fenster entweder neu auf und beende alles Ist vielleicht etwas derb erklärt und vielleicht gibt es auch besseres, aber bei mir läuft es. Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 02. Mrz. 2005 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für gmk
hallo georg, ich würde es folgendermaßen machen: in der ACTION_TILE-Anweisung wird die Fünktion "rb_mode_tile" aufgerufen, entsprechend der übergebenen Variable $value werden dann die mode_tile's für die Radio-Buttons geändert. (DEFUN c:menu ( / plotter ctb-datei dcl_id userclick ) (SETQ plotter "Plotter1") (SETQ ctb-datei "CTB-1") (SETQ plotten 1) (SETQ dcl_id (LOAD_DIALOG "menu.dcl")) (IF (NOT (NEW_DIALOG "menu1" dcl_id)) (EXIT)) ;;;(ACTION_TILE "tog1" "(SETQ plotten $value)") ;;;(IF (= plotten 0) ;;; (PROGN ;;; (mode_tile "rb1" 0) ;;; (mode_tile "rb2" 0) ;;; (mode_tile "rb3" 0) ;;; (mode_tile "rb4" 0) ;;; (mode_tile "rb5" 0) ;;; ) ;; (ACTION_TILE "tog1""(rb_mode_tile $value)") (ACTION_TILE "rb1" "(SETQ plotter \"Plotter1\")") (ACTION_TILE "rb2" "(SETQ plotter \"Plotter2\")") (ACTION_TILE "rb3" "(SETQ plotter \"Plotter3\")") (ACTION_TILE "rb4" "(SETQ ctb-datei \"CTB-1\")") (ACTION_TILE "rb5" "(SETQ ctb-datei \"CTB-2\")") (ACTION_TILE "accept" "(DONE_DIALOG) (SETQ userclick T)") (ACTION_TILE "cancel" "(DONE_DIALOG) (SETQ userclick nil)") (START_DIALOG) (UNLOAD_DIALOG dcl_id) (IF userclick (LIST plotter ctb-datei) NIL ) ) (defun rb_mode_tile (value / ) (mode_tile "rb1" (- 1(atoi value))) (mode_tile "rb2" (- 1(atoi value))) (mode_tile "rb3" (- 1(atoi value))) (mode_tile "rb4" (- 1(atoi value))) (mode_tile "rb5" (- 1(atoi value))) ) Vielleicht hilft es ja. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 02. Mrz. 2005 13:21 <-- editieren / zitieren --> Unities abgeben:
hi jörn! funkt 1a. gefühlsmäßig hätte ich wie peter auch an eine schleife gedacht. dass es anders auch geht zeigt mir dein code, jetzt geht's nur noch ans verstehen ... werd' mich mal durchdebuggen. danke euch beiden noch mal für die hilfe! ciao georg [Diese Nachricht wurde von gmk am 02. Mrz. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |