mycad 发表于 2013-10-19 09:34:51

请教高手怎样计算与 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))))
    )
)



自贡黄明儒 发表于 2013-10-19 09:55:59

(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 10:07:21

本帖最后由 自贡黄明儒 于 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
         )
)
)

mycad 发表于 2013-10-19 10:57:54

错误: 参数类型错误: consp 0.0

mycad 发表于 2013-10-19 10:59:37

测试数据,主要是判断pline线有无弧段
谢谢自贡黄明儒 !

mycad 发表于 2013-10-19 11:13:14


;;错误: 参数类型错误: 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))
    )

)

阿然 发表于 2013-11-1 16:06:06

老黄的(cadr i) 应该改为(cdr i)
页: [1]
查看完整版本: 请教高手怎样计算与 42 关联的值,其值累加,帮忙调试一下程序,谢谢