输入的点对中含有多余的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))
)
)
(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))
)
) edata 发表于 2015-9-19 21:08 static/image/common/back.gif
谢谢 edata大神 edata 发表于 2015-9-19 21:08 static/image/common/back.gif
真的好谢谢你,大神 我这个程序运行了好久,要么死机,要么说什么cdrs多余,木想到你稍微一修改,就可行了,真是高手。爱死你了 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 函数吗? 括号的第一个 字符 必须是函数,这是lisp的基本规则。
3q 大神 不吝赐教 edata 发表于 2015-9-20 18:21 static/image/common/back.gif
括号的第一个 字符 必须是函数,这是lisp的基本规则。
小弟刚刚试了下,如果不加 prong,确实不行呢。谢谢大神亲自改写程序,还一直孜孜不倦解答我疑惑
页:
[1]