| | |
 | 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 PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
|
Autor
|
Thema: LISP -DCL (1619 mal gelesen)
|
monib Mitglied student
 Beiträge: 6 Registriert: 15.05.2007
|
erstellt am: 20. Mai. 2007 17:06 <-- editieren / zitieren --> Unities abgeben:         
Hi Ich versuche gerade aus einem Dialog fenster ein anderes heraus aufzurufen, im ersten dialog fenster wird eine anzahl eingegeben, die lese ich über Code: (setq floor_qty (up_etage floor_lst))
aus (funktioniert auch) - sagen wir mal es wäre 4, nun soll mein neues dialog fenster 4 mal aufgerufen werden und jeweils eine Option wählbar sein, die dann in einer liste gespeichert werden soll liste: (1 caf)(2 bib) (3 test) (4 test) - ich versuche also immer den gleichen dialog rekursiv aufzurufen (wenn "buttonnext_qty" gedrückt wird)und jeweils die neue Zahl zu übergeben und jeweils die werte an die Liste anzuhängen bis die Zahl 4 erreicht ist.Der Dialog wurde mir mal angezeigt, aber mittlerweile bekomme ich nur noch die Fehlermeldung "; Fehler: Fehlerhafte Funktion: 1" mit der eh wenig anfangen kann - da ich erst seit 2 wochen versuche mich mit LISP anzufreunden. Liegt der Fehler bei einer "1" oder ist es die erste Funktion die ich aufrufe? Hat jemand einen Tipp für mich? Moni
Code:
;;; ---------------------- Module --------------------- ;aufruf aus Hauptdialog (defun call_modul(floor_lst) (setq floor_qty (up_etage floor_lst)) (select_modul 1 floor_qty) ) (defun select_modul (i floor_qty)
;laden der dcl-datei + pfadangabe (setq dcl_mod_id(load_dialog(findfile "dclmodul.DCL"))) ;--- Dialogfeld initialisieren ;--- im Fehlerfall ... exit (if(not(new_dialog "dclmodul" dcl_mod_id)) (progn (alert "Dialogfeld kann nicht initialisiert werden") (exit) ;true, ) ) ; end if ;init (set_tile "lbl_qty" (itoa i)) ;action (action_tile "button_next_qty" "(write_modul i mod_var floor_qty)") (action_tile "button_last_qty" "(write_modul i mod_var floor_qty)") (action_tile "buero" "(read_radio_mod $key)") (action_tile "caf" "(read_radio_mod $key)") (action_tile "cip" "(read_radio_mod $key)") (action_tile "bib" "(read_radio_mod $key)") ;starten (start_dialog) ) (defun write_modul (qty_i mod_var_insert floor_qty_max) (While (<= qty_i floor_qty_max) (if (= qty_i 1) (progn ; wahr ;liste init (setq lst_qty_mod '(1 mod_var_insert)) ) (progn ;falsch (setq lst_qty_mod (append ('(lst_qty_mod) '(qty_i mod_var_insert)))) (setq qty_i(+ qty_i 1)) ;modul neu laden (select_modul qty_i floor_qty_max) ) );if );while ;wenn i>floor_qty (unload_dialog dcl_mod_id) ) (defun read_radio_mod (art) (COND ((= art "buero") (setq mod_var "Buero") ) ((= art "caf") (setq mod_var "Cafeteria") ) ((= art "cip") (setq mod_var "Cip Pool") ) ((= art "bib") (setq mod_var "Biblothek") ) );cond ) ;;; ------------------------------------------------------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung und AutoLISPler
    
 Beiträge: 1781 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: 21. Mai. 2007 08:41 <-- editieren / zitieren --> Unities abgeben:          Nur für monib
Hallo monib, ganz blicke ich da noch nicht durch, aber probiere mal folgende Zeilen: Code:
(While (<= qty_i floor_qty_max) (if (= qty_i 1) (progn ; wahr ;liste init (setq lst_qty_mod (list(cons 1 mod_var_insert))) ) (progn ;falsch (setq lst_qty_mod (append lst_qty_mod (list(cons qty_i mod_var_insert))))) (setq qty_i(+ qty_i 1)) ;modul neu laden (select_modul qty_i floor_qty_max) ) )
Du erhälst dann als lst_qty_mod ein "Dotted Pair"-Liste, z.B. ((1 . "test1") (2 . "test2")) Auf die kannst Du dann mit (cdr(assoc 2 lst_qty_mod)) =>"test2" zugreifen. Vielleicht noch ein hilfreicher Beitrag bezüglich Listen und Quote: http://ww3.cad.de/foren/ubb/Forum145/HTML/000681.shtml#000001 ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
monib Mitglied student
 Beiträge: 6 Registriert: 15.05.2007
|
erstellt am: 23. Mai. 2007 18:00 <-- editieren / zitieren --> Unities abgeben:         
|