用autolisp画一个太极图样 编出来的程序总是加载不出来 求大神指点

(defunzwc()(setqa1(getpoint":指定大圆圆心")(setqcp1(getlist":指定大圆半径")(setqcp2(getlist"小圆半径:... (defun zwc()
(setq a1 (getpoint ":指定大圆圆心")
(setq cp1 (getlist ":指定大圆半径")
(setq cp2 (getlist "小圆半径:")
(setq p1 (polar a1 (/pi 2) cp1))
(setq p3 (polar a1 (/pi 2) (/cp1 2))
(setq p2 (polar p2 pi (/cp1 4))
(setq p6 (polar a1 (/p1 -2) (/cp1 2))
(setq p5 (polar a1 (/p1 -2) cp1))
(setq p4 (polar p6 0 (/cp1 4))
(command "circle" a1 cp1)
(command "circle" p3 cp2)
(command "circle" p6 cp2)
(command "arc" p1 p2 a1)
(command "arc" a1 p4 p5)
)
展开
 我来答
朱06CAD
推荐于2016-06-07 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18068
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
(defun C:tes ( / #os1 a1 cp1 cp2 p1 p2 p3 p4 p5 p6)
 (setvar "cmdecho" 0)
 (setvar "blipmode" 0)
 (setq #os1 (getvar "osmode"))
 (setq a1 (getpoint "\n指定大圆圆心"))
 (setq cp1 (getdist a1 "\n指定大圆半径"))
 (setq cp2 (getdist a1 "\n小圆半径"))
 (setq p1 (polar a1 (/ pi 2) cp1))
 (setq p2 (polar a1 (/ pi 2) (/ cp1 2)))
 (setq p3 (polar p2 pi (/ cp1 4)))
 (setq p6 (polar a1 (/ pi -2) (/ cp1 2)))
 (setq p5 (polar a1 (/ pi -2) cp1))
 (setq p4 (polar p6 0 (/ cp1 4)))
 (setvar "osmode" 0)
 (command "circle" a1 cp1)
 (command "circle" p2 cp2)
 (command "circle" p6 cp2)
 (command "arc" p1 p3 a1)
 (command "arc" a1 p4 p5)
 (setvar "osmode" #os1)
 (prin1)
);复制到记事本,以【.lsp】为后缀命名。autoLISP加载后,命令为:TES
  1. 首先getlist不对,应当getdist

  2. (/pi格式不对,中间少了一个空,应当:(/ pi

  3. (setq p2 (polar p2 pi (/cp1 4));里面的p2没有给定,所以错误

  4. (setq p6 (polar a1 (/p1 -2) (/cp1 2)) ;里面的(/p1 2)不对,角度弧应当(/ pi 2);90°

  5. 刮弧数量不对应如(setq cp2 (getlist "小圆半径:");少了一个")"这样的情况很多

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式