我爱你王子呀 发表于 2015-9-19 19:24:47

输入的点对中含有多余的cdrs

这个是我编写的一个动态画直线的测试程序。为什么运行的时候总是提示输入的点对中含有多余的 cdrs。找了很久没找出来毛病,还请大神们看看错在哪里呀

(defun C:ceshi(/ en gr %k grm grzb )
(command "line" '(10 10) '(20 20) "")
(setq en (entlast))
(setq en (entget en))
(setq gr (grread T 4 0))
(setq %k T)

(while %k
    (setq grzb (cadr gr) grm (car gr))
    (if (= grm 5)
      (
          (setq en (subst (cons 11 grzb) (assoc 11 en) en))
          (entmod en)
       )
    )
    (if (or (= grm 3) (= grm 2) (= grm 25)) (setq %k nil))
)
)

edata 发表于 2015-9-19 21:08:40

(defun C:ceshi(/ en gr %k grm grzb )
(command "line" '(10 10) '(20 20) "")
(setq en (entlast))
(setq en (entget en))

(setq %k T)

(while %k
    (setq gr (grread T 4 0))
    (setq grzb (cadr gr) grm (car gr))
    (if (= grm 5)
      (progn
          (setq en (subst (cons 11 grzb) (assoc 11 en) en))
          (entmod en)
         )
    )
    (if (or (= grm 3) (= grm 2) (= grm 25)) (setq %k nil))
)
)

我爱你王子呀 发表于 2015-9-20 17:19:02

edata 发表于 2015-9-19 21:08 static/image/common/back.gif


谢谢 edata大神

我爱你王子呀 发表于 2015-9-20 17:30:24

edata 发表于 2015-9-19 21:08 static/image/common/back.gif


真的好谢谢你,大神 我这个程序运行了好久,要么死机,要么说什么cdrs多余,木想到你稍微一修改,就可行了,真是高手。爱死你了

我爱你王子呀 发表于 2015-9-20 18:11:15

edata 发表于 2015-9-19 21:08 static/image/common/back.gif


你修改过的函数(progn
          (setq en (subst (cons 11 grzb) (assoc 11 en) en))
          (entmod en)
         ) 可以不要progn 函数吗?

edata 发表于 2015-9-20 18:21:46

括号的第一个 字符 必须是函数,这是lisp的基本规则。

我爱你王子呀 发表于 2015-9-20 20:03:21

3q 大神 不吝赐教

我爱你王子呀 发表于 2015-9-20 20:28:25

edata 发表于 2015-9-20 18:21 static/image/common/back.gif
括号的第一个 字符 必须是函数,这是lisp的基本规则。

小弟刚刚试了下,如果不加 prong,确实不行呢。谢谢大神亲自改写程序,还一直孜孜不倦解答我疑惑
页: [1]
查看完整版本: 输入的点对中含有多余的cdrs