Zitat:
Original erstellt von StephanJP:
warum denn subst?
warum nicht (setq temp (cons "ANZA" "4"))?
ergibt=>("ANZA" . "4")
(setq temp (cons "ANZA" 4))
ergibt=>("ANZA" . 4)aber wie die anderen schon sagen:
mehr Infos zur Art der Liste
hi stephan
jepp....das klappt !!
allerdings steckt hier bei mir noch ein gedankenfehler drin. das bereitgestellte lsting von marc bringt mich dann aber weiter.... ( hier nachzulesen)
das habe ich (und so funzt es) folg. genutzt
.
.
.
(setq ATT-LST (ALL-BL-TXT OBJ)); <defun ALL-BL-TXT>!! Erstellt Liste von den Attributswerten vom Block AIRUL ...sehr gut für spätere Entwicklungen
(setq stk (atoi (cdr (nth 1 att-lst)))) ; auslesen der Eisenanzahl und umwandeln in eine Zahl
(setq eingabewert -12); wird später vom Benutzer aus Dialog übergeben...wenn abziehen dann negativer Wert !!
(setq stk (rtos (+ stk eingabewert) 2 0)); stk wird mit eingabewert addiert, bei negativ abgezogen !! ..rtos=in String umwandeln zahl="zahl"
;; temporäre Var
;;(setq temp (cadr ATT-LST)); klappt !
;;(setq temp (cons "ANZA" "33")); Klappt!
;;(setq ATT-LST (subst (cdr(cons "ANZA" temp)) (assoc "ANZA" ATT-LST) ATT-LST)); klappt !
;; problem : o.g. Variablen dem gepickten OBJ hinzugeben...
;; also schleife ausführen, bis Attributs-Bezeichnung ANZA "erscheint"
(while (/= (cdr (assoc 0 OBJ-DATA)) "MARKER"); Schleife bis MARKER da ist
(setq OBJ-DATA (entget (entnext (cdr (assoc -1 OBJ-DATA)))))
(if (= (cdr (assoc 2 OBJ-DATA)) "ANZA"); ...Attributsbezeichnung ANZA gefunden ... bin fast am ziel
(progn
(setq OBJ-DATA (subst (cons 1 stk) (assoc 1 OBJ-DATA) OBJ-DATA)); Eisenanzahl wird ersetzt
(entmod OBJ-DATA); update der Daten
(entupd OBJ); update des Blockes -->screen (neuer Wert wird in Block geschrieben !!; OBJ = Grunddaten
(setq OBJ-DATA (list (cons 0 "MARKER"))); nachdem der gewünschte Wert ersetzt ist, setze in Liste MARKER, welches Ende der Schleife bedeutet
) ;_ end progn
) ;_ end if
);end while
so.. jetzt habe ich einen dicken kopf und bin zufrieden...
------------------
Grüße aus dem Rheingau.
Rolf aka Benwisch
[Diese Nachricht wurde von benwisch am 06. November 2002 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP