try this:(defun c:x1 (/ loop mod p1 pn pt vpoint)
(setvar "cmdecho" 0)
(setq loop t)
(if (setq p1 (getpoint "\n开始点<退出>:"))
(progn
(command "pline" p1)
(princ "\n指定下一步<退出>:")
(while loop
(setq vpoint (grread t 4 0))
(setq mod (car vpoint))
(setq pt (cadr vpoint))
(cond ((= mod 3)
(command pt)
(setq pn pt)
)
((= mod 5)
(redraw)
(grvecs (list 7 pt p1 pn))
(and pn (grvecs (list 7 pn pt)))
)
(t (setq loop nil))
)
)
(command "c")
(redraw)
)
)
(princ)
)
<p><strong><font face="Verdana" color="#61b713">大侠7686599好,你的程序我调试没有通过,问题出现在语句</font></strong><font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/grvecs.htm" target="_black"><font color="#0000ff">grvecs</font></a>
<font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/list.htm" target="_black"><font color="#0000ff">list</font></a>
<font color="#008000">7</font> pt p1 pn<font color="#ff0000">)</font><font color="#ff0000">)</font></p><p><font color="#ff0000">其中(<a href="http://www.mjtd.com/object/autolisp/list.htm" target="_black"><font color="#0000ff">list</font></a><font color="#000000">
</font><font color="#008000">7</font><font color="#000000"> pt p1 pn</font><font color="#ff0000">)的返回值为:</font></font> </p><p>(7 (660.146 566.225 0.0) (660.146 566.225 0.0) nil) </p><p>错误提示为:错误: 参数类型错误: 二维/三维点: nil。</p><p>我的变量值为:</p><p>PT = (660.146 566.225 0.0)<br/>VPOINT = (5 (660.146 566.225 0.0))<br/>P1 = (660.146 566.225 0.0)<br/>请大侠帮忙分析,多谢!</p> 本帖最后由 作者 于 2007-9-3 16:06:39 编辑
那句话打错了,不需要pn。(list 7 pt p1)即可 <p>非常感谢<strong><font face="Verdana" color="#61b713">7686599大侠,程序调试通过,比较好用!</font></strong></p> 不错,有想法, zml84 发表于 2007-8-30 10:39 static/image/common/back.gif
楼主要的应该是这个东东:动画演示见:http://www.acad.net.cn/viewthread.php?tid=432&extra=page%3D1
希望作者再补充一下,回车就能自动闭合 7686599大侠的程序比较好用!
页:
1
[2]