| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: DCL mit Popup_list mit LSP verknüpfen (3044 mal gelesen)
|
copymaster Mitglied TZ
Beiträge: 33 Registriert: 15.02.2004
|
erstellt am: 29. Sep. 2006 18:18 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich bin dabei mir zum ersten mal einen Dialog (DCL) zu basteln und mit einer LSP-Datei zu verknüpfen. In dem Dialog befindet sich lediglich eine Popup_list zur Auswahl von Maßstäben, OK und Cancel-Button. Der Dialog an sich funktioniert, mein Problem ist den keywert in der LSP-Datei einzubauen um den im Dialog gewählten maßstab weiterzugeben. Hier meine bisherige LSP-Datei: ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ (DEFUN C:SCL(/ SCALE_LIST DLG) (SETQ SCALE_LIST (LIST ;Maßstabsauswahl Liste "2:1" "1:1" "1:2" ; ... ) ) (IF (> (SETQ DLG(LOAD_DIALOG "C:\\XY\\test.DCL"))0) ;DCL-File Pfad (IF (NEW_DIALOG "TITLE_SETUP" DLG) ; (progn (start_list "scale_choose") ;'scale_choose' ist key von DCL Popup_list (mapcar 'add_list SCALE_LIST) ;liste für DCL laden (end_list) (action_tile "accept" "(done_dialog 1)") (setq flag (start_dialog)) ;Dialog aufrufen ) );endif );endif );end defun ___________________________________ wäre super, wenn mir da jemand weiterhelfen könnte. Danke im vorraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 29. Sep. 2006 19:55 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
(ungetestet) ... (action_tile "scale_choose" "(setq SCALE (nth (atoi $VALUE)SCALE_LIST))") (action_tile "accept" (done_dialog 1)") .. die Wahl ist dann in Scale gespeichert ------------------ - 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 |
copymaster Mitglied TZ
Beiträge: 33 Registriert: 15.02.2004
|
erstellt am: 30. Sep. 2006 19:26 <-- editieren / zitieren --> Unities abgeben:
Danke erst einmal für die schnelle Antwort. Hab die sache getestet, aber es läuft leider nicht. Als Rückmeldung in ACAD und im LISP-Editor bekomme ich...Fehler: Falsch formatierte Liste in Eingabe Schaut allerdings alles sehr plausibel aus. ich kenn mich leider nur nicht bei der umlegung der Werte aus, wie mit $VALUE, ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 30. Sep. 2006 21:16 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
Sorry, hat ne Klammer gefehlt (darauf weißt auch die Fehlermeldung hin) Ich habs oben korrigiert ------------------ - 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 |
copymaster Mitglied TZ
Beiträge: 33 Registriert: 15.02.2004
|
erstellt am: 01. Okt. 2006 17:45 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal ja danke, hab das mit der fehlenden Klammer auch gesehen. Hab auch noch weiter gebastelt das es "fast" funktioniert, aber mein Problem ist, dass dem Parameter "scale" der Listenwert, also z.B. "2:1" und nicht ein numerischer Skalierfaktor zugewiesen wird. Gibt es da ne funktion, mit der sich das umwandeln läßt? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 01. Okt. 2006 19:23 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
Zitat: Original erstellt von copymaster:
Gibt es da ne funktion, mit der sich das umwandeln läßt?
na die mußt du dir selber schreiben z.B: mit dem Codeschnipsel (if(and(setq POS (vl-string-search ":" SCALE)) (setq FAK1(distof(substr SCALE 1 POS))) (setq FAK2(distof(substr SCALE(+ POS 2)))) ) (setq SCALE (/ FAK1 FAK2)) ) eine andere Möglichkeit ist das ganze Proggie anders aufzubauen, nämlich so: ich hoffe die Codeschnipsel sprechen für sich und du bist mit car cadr und co vertraut ..
(SETQ SCALE_LIST (LIST '("2:1" 2.0) '("1:1" 1.0) '("1:2" 0.5) ; ... ) .... (start_list "scale_choose") (mapcar 'add_list (mapcar 'car SCALE_LIST)) (end_list) ... (action_tile "scale_choose" "(setq SCALE (cadr(nth (atoi $VALUE)SCALE_LIST)))") ...
------------------ - 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 |
copymaster Mitglied TZ
Beiträge: 33 Registriert: 15.02.2004
|
erstellt am: 02. Okt. 2006 15:46 <-- editieren / zitieren --> Unities abgeben:
|
copymaster Mitglied TZ
Beiträge: 33 Registriert: 15.02.2004 PROE WF3
|
erstellt am: 02. Okt. 2006 16:15 <-- editieren / zitieren --> Unities abgeben:
da bin ich schon wieder...das eine klappt, aber jetzt häng ich wieder woanders. Ich wollte gerne noch eine Popuplist hinzufügen für die Formatauswahl. In der Liste steht dann z.B. "A1" "A2" ...Leider funktioniert der Vergleich unten nicht, sondern es werden beide Blöcke eingefügt. Vielleicht liegt aber auch der Fehler in der action_tile funktion... ----------- ;... (action_tile "Format_choose" "(setq Format (atof (get_tile \"format_choose\")))") ;... ;wenn OK... (if (= (getvar "format") A1) (command "._insert" ;irgendnen Block...A1 );end if (if (= (getvar "format") A2) (command "._insert" ;irgendnen Block...A2 );end if --------------- wäre super wenn mir da auch jemand weiterhelfen könnte. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 03. Okt. 2006 07:59 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
Zitat: (action_tile "Format_choose" "(setq Format (atof (get_tile \"format_choose\")))")
Ich weiß zwar nicht, was Dir das DCL "liefert", aber das "atof" ist möglicherweise hier fehl am Platz. Zitat: if (= (getvar "format") A1)
"format" ist keine Systemvariable - also nix mit getvar ------------------ Schöne Grüße Ernst Meine Homepage Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
copymaster Mitglied TZ
Beiträge: 33 Registriert: 15.02.2004
|
erstellt am: 03. Okt. 2006 14:47 <-- editieren / zitieren --> Unities abgeben:
Ja, das mit dem Vergleich des Formates könnte stimmen, allerdings funktioniert es auch nicht mit: if (= "FORMAT" A1) (comand...) ) Das mit der Funktion action_tile...ist wahrscheinlich auch doppelt gemoppelt mit der zweifachen action_tile zuweisung.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
copymaster Mitglied TZ
Beiträge: 33 Registriert: 15.02.2004 PROE WF3
|
erstellt am: 03. Okt. 2006 20:38 <-- editieren / zitieren --> Unities abgeben:
Da bin ich nochmal..der Anfänger... Hab nochmal einen Teil des LISP-Codes eingefügt, mein Problem ist, dass beide Formate (Blöcke) eingefügt werden. Vielleicht kann nochmal jemand nen Blick drauf werfen, wäre super, denn ich komme da leider nicht weiter. Wie schon oben beschrieben werden die Formate über ne Popup_list ausgewählt...in der liste steht lediglich.."A0" "A1" (key: format_choose). Nach dem OK-Klick soll der jeweilige Block eingefügt werden..allerdings werden bei mir beide Blöcke eingefügt. (if ok_click (progn (if (= (get_tile "format_choose") A0) (progn (command "._insert" Blockxy_A0 ) );end if A0 (if (= (get_tile "format_choose") A1) (progn (command "._insert" Blockxy_A1 ) );end if A1 );end progn );end if ok_click
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
andi2050 Mitglied
Beiträge: 107 Registriert: 11.03.2003
|
erstellt am: 03. Okt. 2006 23:50 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
Hallo ! Bitte nicht böse sein, aber Dein Code ist ziemlicher Käse ! Du vergleicht nämlich bei den IF's immer das gleiche, nämlich NICHTS ( nil ) ! Der Ausdruck '(= (getvar "format") A1)' wird wahrscheinlich immer zu TRUE evaluieren... '(getvar "format")' sucht nach der SYSTEMVARIABLE "FORMAT", die gibts aber nicht, d.h. Rückgabe = nil mit A1 wird die Variable A1 (Symbol !) ausgewertet, wahrscheilich ist die nicht belegt ---> auch nil d.h es wird (= nil nil) ausgewertet, und das ergibt nun mal 'T. Damit es funktioniert, kannst Du folgendermaßen vorgehen: Die Einträge der Listbox in einer Liste speichern: (setq popup-textlist '("A0" "A1" "Weiß der Geier"...usw.)) diese wird dann ins Popup geladen (ist Dir schon bekannt, nur der Vollständigkeit halber): (start_list "Format_choose") ; VORSICHT: bei DCL-Key's Groß/Kleinschreibung beachten! (mapcar 'add_list popup-textlist ) (endlist) Mit action_tile die Callbackfunktion definieren (hat ja Cadmium schon gepostet): (action_tile "Format_choose" "(setq format (nth (atoi $VALUE) popup-textlist ))")
zur Erklärung: $VALUE enthält beim Aufruf der Callbackfunktion automatisch den aktuellen Wert des Tiles, von dem der Aufruf stammt -> (get_tile ist nicht notwendig). Bei einem Popup ist dies immer der aktuelle Listindex, als Zahl (jedoch als String). $VALUE muß erst in eine Zahl (Integer) umgewandelt werden, damit man was damit anfangen kann ! Beispiel: §VALUE ---> "1" (atoi $VALUE) ---> 1 (nth (atoi $VALUE) popup-textlist) ---> "A1" ... gibt das n-te Element der Liste 'popup-textlist' zurück (wird dann mit setq in der Variable 'format' gespeichert) Dann die Auswertung der Variable 'format', sinnvol wäre dafür z.B. (cond ((= format "A0") (command ....<Block für A1 eifügen> )) ((= format "A1") (command ....<Block für A2 eifügen> )) ((= format "Weiß der Geier") (COMMAND "Geier fragen") ) ... ... ('t (alert "Unbekanntes Format")) ) Guck Dir mal die einzelnen Funktionen in der Hilfe an, wirkt oft Wunder... Grüße Andi
[Diese Nachricht wurde von andi2050 am 03. Okt. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
copymaster Mitglied TZ
Beiträge: 33 Registriert: 15.02.2004 PROE WF3
|
erstellt am: 05. Okt. 2006 22:21 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal... danke erst einmal für die Erklärungen das mit dem If vergleich hab ich mir schon gedacht..deshalb hatte ich dies später wieder umgestellt, aber mir war das mit dem $VALUE nicht klar...aber jetzt Trotzdem funktioniert der Vergleich bei mir nicht..hab den Vergleich mit cond aufgebaut wie oben beschrieben..bekomme als meldung "unbekanntes Format" wie in alert eingegeben...aber warum? mit dem Value müsste doch wirklich die Bezeichnung ausgelesen werden z.B. "A0"..und wenn ich dass dann mit dem jeweiligen Format vergleiche wie oben beschrieben... Vielleicht hat ja noch jemand einen hinweis...tut mir echt sorry...falls ich nerve sagt bescheid Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 06. Okt. 2006 07:28 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 06. Okt. 2006 07:42 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
Du hast dein Programm nie wirklich mal debuggt, und dir mal die Rückgaben der popuplist angesehen- richtig? die Rückgabe der Popuplist ist immer der nth wert der popuplist. Wenn deine liste bsplw. so aussieht: A0 A1 A2 A3 A4 (alles untereinander) und du wählst A2 aus, ist die Rückgabe "2" der nth 2. Eintrag der liste ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
andi2050 Mitglied
Beiträge: 107 Registriert: 11.03.2003
|
erstellt am: 06. Okt. 2006 15:23 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
Hi ! Probier mal folgendes: Das letzte Cond-Statement abändern in ('t (alert "Unbekanntes Format")(princ "\nInhalt von 'format':\n")(print format)) ) Dann wir im Textfenster der Inhalt der Variable 'format' ausgegeben. Damit kannst Du vielleicht erkennen, warum die anderen Bedingungen nicht ansprechen. Oder einfach mal den Code posten, dann werden Sie geholfen... Grüße Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
copymaster Mitglied TZ
Beiträge: 33 Registriert: 15.02.2004 PROE WF3
|
erstellt am: 06. Okt. 2006 18:00 <-- editieren / zitieren --> Unities abgeben:
Danke erst mal für die vielen Tipps. Ja, ich hab die neue Alert-Funktion eingebaut (DANKE ), als rückgabewert bekomme ich gar nichts. meine vermutung ist, dass der aufbau der liste in der lsp oder sogar doch etwas in der dcl nicht stimmt. Ich werd den code mal posten...vielleicht kann mal jemand nen blick reinwerfen. vielen dank schon mal im vorraus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
andi2050 Mitglied
Beiträge: 107 Registriert: 11.03.2003
|
erstellt am: 06. Okt. 2006 20:25 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
Ich hab mir Deinen Code mal angesehen. Dabei sind mir 2 Fehler aufgefallen: - der keyname im DCL ist mit title_choose bezeichnet, im LISP aber mit format_choose - die Zuweisung mit action_tile ist zwar schön und gut, aber wenn der Benutzer direkt auf OK klickt, ohne die beiden Popups zu wählen, dann wird action_tile nicht aufgerufen -> format bzw. scale wird kein Wert zugewiesen In diesem Fall ist es m.E. besser, wenn man die Werte beim Verlassen des Dialogfeldes ausliest (vor done_dialog !) Hier noch ein paar Tips: - done_dialog kann man ein Argument (Integer) mitgeben, dieser Wert wird dann von start_dialog zurückgegeben (nach beenden des Dialogs). Dadurch lasst sich ermitteln, welcher Button zum Verlassen des Dialogs geführt hat. (-> siehe CODE) - die Zuweisung der action_tile Callback-Ausdrücke kann es bei mehreren LISP-Ausdrücken schnell mal unübersichtlich werden, da der Ausdruck im String 'gefangen' ist (z.B wenn Strings im String vorkommen dann muß immer ein \" geschrieben werden...) Dies lässt sich einfach mit (vl-prin1-to-string (quote(progn ....Callback-Ausdrücke))) umgehen -> Die Ausdrücke können 'normal' geschrieben werden + VLIDE erkennt die Ausdrücke als LISP - hier ist der Blockname gleich dem Popup-Eintag, d.h man braucht keine COND-Abfrage, sondern kann daraus direkt den Wblock-namen ermitteln. - bei Command's gibt es gerne Probleme wenn der Objektfang aktiv ist. Dabei wendet der aufgerufene ACAD-Befehl nämlich an einem übergebenen Punkt erstmal den O-Fang an und verwendet dann den evtl. gefundenen Punkt -> es ist nicht vorhersehbar wo z.B Dein Block landet, wenn in der nähe von 0,0 schon was gezeichnet ist ! Wenn Du den Block sicher bei 0,0 absetzen möchtest, musst Du vorher den Ofang ausschalten. Entweder mit (setvar "OSMODE" 0) oder bei einzelnen Punkten einfach vor der Punktangabe ein "_non" hinzufügen. Ich hab den Code etwas angepasst, nur mal als Anregung...
Code: (defun c:title (/ scale_list format_list scale format dcl_id ok path) (vl-load-com) (setq scale_list (list '("5:1" 5.0) '("2:1" 2.0) '("1:1" 1.0) '("1:2" 0.5) '("1:2.5" 0.4) '("1:5" 0.2)) format_list (list "A0" "A1" "A2") path "C:\\Programme\\" ) ;; Dialog initialisieren (setq dcl_id (load_dialog (strcat path "XY.dcl"))) (if (not (new_dialog "title_setup" dcl_id)) (progn (alert "Dialogfenster kann nicht initialisiert werden !") (exit)) ) ;; Popups füllen (start_list "scale_choose") (mapcar 'add_list (mapcar 'car scale_list)) (end_list) (start_list "title_choose") (mapcar 'add_list format_list) (end_list) ;; Buttons definieren (action_tile "accept" (vl-prin1-to-string '(progn (setq format (nth (atoi (get_tile "title_choose")) format_list) scale (cadr (nth (atoi (get_tile "scale_choose")) scale_list)) ) (done_dialog 1) ) ) ) (action_tile "cancel" "(done_dialog 0)") ;; Dialog darstellen (setq ok (start_dialog)) (unload_dialog dcl_id) ;; Auswerten (if (not (zerop ok)) (title:insert format scale path) ) (princ) ) ;;;-------------------------------- ;;; Block einfügen ;;;-------------------------------- (defun title:insert (blkname scale path /) ;; 'and' wird so lange evaluiert, bis ein Argumet 'nil (and (or (numberp scale) (alert "Kein Maßstab")) ;; 'or' wird nur so lange evaluiert, bis ein Argument <> 'nil (or (findfile (strcat path blkname ".dwg")) (alert (strcat "Block '" blkname "' ist nicht verfügber")) ) (command "._insert" (strcat path blkname ".dwg") "_non" "0,0" scale "" "0") ) )
Grüße Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
copymaster Mitglied TZ
Beiträge: 33 Registriert: 15.02.2004 PROE WF3
|
erstellt am: 07. Okt. 2006 11:18 <-- editieren / zitieren --> Unities abgeben:
Herzlichen Dank erstmal ja, einige von den Punkten hab ich auch schon erarbeitet, wie z.B. mit dem Blockeinfügen am Nullpunkt und Drehwinkel 0, allerdings hab ich da den Objektfang nicht berücksichtigt. Hab gedacht, dass bei Koordinatenangabe auch exakt dieser Punkt genommmen und nicht der Objektfang bevorzugt wird. Mit den Pfadangaben ist auch klar... Ja, nur das mit dem OK war blöd, für den fall das einfach OK geklickt wird tut sich net so viel... Aber das wichtigste...es funzt...tja, hab's leider nicht alleine hingekriegt..aber vielleicht das nächste mal **************************************************************************** Vielen Dank nochmal an alle, die mich hier unterstützt haben und mir vor allem mit den vielen Erklärungen für die Funktionen und Vorgehensweisen geholfen haben. 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: 14. Jul. 2020 12:43 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist! Servus!
Ich häng mich hier mal dran, denke das folgende passt dazu ... DCL-Code : popup_list {key = ls;} LISP-Code (SET_TILE "ls" "60") (START_LIST "ls") (MAPCAR 'ADD_LIST '("1" "2" "3" ... "300")) (END_LIST) Bis zum Wert 60 bei SET_TILE springt die Auswahl in der POPUP-Liste zum jeweiligen Listeneintrag (hier Wert 60 -> Listeneintrag"61"). Ab 61 sehe ich in der POPUP-Liste ein leeres Feld. Erst nach klicken auf den rechten Pfeil geht die Liste auf und ich kann zum entsprechenden Eintrag scrollen. Ist das ein Fehler in LISP/DCL oder mache ich was falsch ? Ciao Georg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archtools Mitglied
Beiträge: 965 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 16. Jul. 2020 17:21 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
Zitat: Original erstellt von gmk: ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist! Servus!
Ich häng mich hier mal dran, denke das folgende passt dazu ... DCL-Code : popup_list {key = ls;} LISP-Code (SET_TILE "ls" "60") (START_LIST "ls") (MAPCAR 'ADD_LIST '("1" "2" "3" ... "300")) (END_LIST) Bis zum Wert 60 bei SET_TILE springt die Auswahl in der POPUP-Liste zum jeweiligen Listeneintrag (hier Wert 60 -> Listeneintrag"61"). Ab 61 sehe ich in der POPUP-Liste ein leeres Feld. Erst nach klicken auf den rechten Pfeil geht die Liste auf und ich kann zum entsprechenden Eintrag scrollen. Ist das ein Fehler in LISP/DCL oder mache ich was falsch ? Ciao Georg
1. Fehler: : popup_list {key = ls;} richtig: : popup_list {key = "ls";}
2. Fehler: (SET_TILE "ls" "60") wird gesetzt, bevor die PopUp_List gefüllt wird 3. mutmaßlicher Fehler: weil die PopUp_List mit "1" beginnt, ist das 0te (nullte) ELement der liste die "1" und das 60ste Element die "61". Die Indizes von Listenelementen, Arrays usw in der Informatik beginnen in der Regel mit 0. 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: 17. Jul. 2020 17:29 <-- editieren / zitieren --> Unities abgeben: Nur für copymaster
|