请教高手怎样计算与 42 关联的值,其值累加,帮忙调试一下程序,谢谢
本帖最后由 mycad 于 2013-10-19 09:36 编辑((-1 . <图元名: 7ee59540>) (0 . "LWPOLYLINE") (330 . <图元名: 7ee2ccc0>) (5 .
"3AE8") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (6 .
"Continuous") (100 . "AcDbPolyline") (90 . 5) (70 . 128) (43 . 0.0) (38 . 0.0)
(39 . 0.0) (10 -31.9401 27.6725) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10
33.6743 72.9142) (40 . 0.0) (41 . 0.0) (42 . -0.266791) (91 . 0) (10 123.316
80.3006) (40 . 0.0) (41 . 0.0) (42 . 0.515244) (91 . 0) (10 193.089 119.541)
(40 . 0.0) (41 . 0.0) (42 . -0.819695) (91 . 0) (10 274.414 126.927) (40 . 0.0)
(41 . 0.0) (42 . 0.746639) (91 . 0) (210 0.0 0.0 1.0))
(defun c:x()
(setq a (entget (car(entsel)) '("*")))
(setq i(length a))
(repeat i
(setq cc (+ cc (cadr(assoc '42 a))))
)
)
(defun c:x (/ A CC)
(setq a (entget (car (entsel)) '("*")))
(setq cc 0)
(foreach i a
(if (= (car i) 42)
(setq cc (+ cc (cadr i)))
)
)
) 本帖最后由 自贡黄明儒 于 2013-10-19 11:12 编辑
;;;试一试
(defun c:x1 (/ A)
(setq a (entget (car (entsel)) '("*")))
(apply '+
(mapcar '(lambda (i)
(if (= (car i) 42)
(cadr i)0
)
)
a
)
)
) 错误: 参数类型错误: consp 0.0 测试数据,主要是判断pline线有无弧段
谢谢自贡黄明儒 !
;;错误: 参数类型错误: consp 0.0
(defun c:x()
(setq a (entget (car(entsel)) '("*")))
(setq n(length a))
(setq i 18)
(while ( <= i n)
;(last(setq m(assoc 42 a)))
;(setq b (cdr (assoc 42 a)))
;(setq cc (+ cc (cdr(assoc '42 a))))
(setq cc(nth i a))
(if (= (car cc) 42)
(progn
;(setq count(+ count (cadr c)))
(setq b (cdr (assoc 42 a)))
(setq count(+ count b))
)
)
(setq i(+ i 1))
)
) 老黄的(cadr i) 应该改为(cdr i)
页:
[1]