ImaJayhawk
2nd Mar 2004, 11:29 pm
I'm trying to write an autolisp program that will sum all the numbers within a block attribute that has a attribute tag called 100. Here's what I tried.
(defun C:atty (/ en enlist en2 enlist2 sum)
(setq summy 0)
(setq ent (ssget ":N" '((0 . "INSERT"))))
(setq numobj (sslength object))
(foreach ent
(progn
(setq en (car ent))
(setq enlist (entget en))
(if (= (cdr (assoc 66 enlist)) 1)
(progn
(setq en2 (entnext en))
(setq enlist2 (entget en2))
(while (/= (cdr (assoc 0 enlist2)) "SEQEND")
(if (= (cdr (assoc 2 enlist2)) "100")
(setq sum (cdr (assoc 1 enlist2)))
) ;if assoc 2
(setq en2 (entnext en2))
(setq enlist2 (entget en2))
) ; while
) ; progn
) ; if assoc 66
(setq summy (+ summy sum))
) ; progn
) ; foreach
(princ)
)
Any help would be appreciated. Thanks.
ImaJayhawk
(defun C:atty (/ en enlist en2 enlist2 sum)
(setq summy 0)
(setq ent (ssget ":N" '((0 . "INSERT"))))
(setq numobj (sslength object))
(foreach ent
(progn
(setq en (car ent))
(setq enlist (entget en))
(if (= (cdr (assoc 66 enlist)) 1)
(progn
(setq en2 (entnext en))
(setq enlist2 (entget en2))
(while (/= (cdr (assoc 0 enlist2)) "SEQEND")
(if (= (cdr (assoc 2 enlist2)) "100")
(setq sum (cdr (assoc 1 enlist2)))
) ;if assoc 2
(setq en2 (entnext en2))
(setq enlist2 (entget en2))
) ; while
) ; progn
) ; if assoc 66
(setq summy (+ summy sum))
) ; progn
) ; foreach
(princ)
)
Any help would be appreciated. Thanks.
ImaJayhawk