Morgen zusammen,
ich würde gern die Attributwerte von Block 1 zu Block 2 übertragen.
Leider komme ich mit meinem Code hier nicht weiter.
Ich hänge mal die ganze Lisp als zipp dran um eventuelle Fragen zu klären ;-)
(defun R:Attribute()
(setq ATTRIBNAME nil)
(princ "\nBlock wählen")
(if (and(setq INSERTNAME (ssget "_:S" '((0 . "INSERT")))) (setq INSERTNAME (ssname INSERTNAME 0)))
(progn
(if (assoc 66 (setq OBJEKTDATEN (entget INSERTNAME))); GC 66 fehlt, wenn Block keine Attrib's hat
(while (/= (cdr (assoc 0 OBJEKTDATEN)) "SEQEND") ;.. alle Attribute durchlaufen ....
(setq OBJEKTDATEN (entget (entnext (cdr (assoc -1 OBJEKTDATEN)))))
(if (=(cdr (assoc 0 OBJEKTDATEN))) "ATTRIB") ;.. ist es eins ?, dann ...........
(progn
(princ "\n")(prin1 (assoc 2 OBJEKTDATEN))(princ "\n")(prin1 (assoc 1 OBJEKTDATEN))
)
)
)
)
)
(princ "\nZiel-Block wählen")
(R:wertübergabe)
);ende defun
(defun R:wertübergabe()
(if (and(setq ZINSERTNAME (ssget "_:S" '((0 . "INSERT")))) (setq ZINSERTNAME (ssname ZINSERTNAME 0)))
(progn
(if(assoc 66 (setq ZOBJEKTDATEN (entget ZINSERTNAME))); GC 66 fehlt, wenn Block keine Attrib's hat
(while (/= (cdr (assoc 0 ZOBJEKTDATEN)) "SEQEND") ;.. alle Attribute durchlaufen ....
(setq ZOBJEKTDATEN (entget (entnext (cdr (assoc -1 ZOBJEKTDATEN)))))
(if (=(cdr (assoc 0 ZOBJEKTDATEN))) "ATTRIB") ;.. ist es eins ?, dann ...........
(progn
(princ "\n")(prin1 (assoc 2 ZOBJEKTDATEN))(princ "\n")(prin1 (assoc 1 ZOBJEKTDATEN))
(setq ZOBJEKTDATEN (subst (cons 1 ATTRIBWERT)
(assoc 1 ZOBJEKTDATEN)
OBJEKTDATEN
)
)
(entmod ZOBJEKTDATEN)
)
)
)
)
)
(command "_.regen")
(princ "\n ")(prin1 "Ende")
(princ)
); end defun
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP