Autolisp 高手进 帮解决下难题 谢谢~! 10

(defunc:yzluow(/)(setqb1(getpoint"指定基点:"))(setqr1(getreal"\n指定初始半径:"))(setqdisp(getre... (defun c:yzluow(/)
(setq b1(getpoint"指定基点:"))
(setq r1(getreal"\n指定初始半径:"))
(setq disp(getreal"\n指定节距:"))
(setq angtg(getreal"\n输入圆形角:"))
(setq m(getreal"\n输入圈数:"))
(setq n(getreal"\n输入每圈细化段数<36>:"))
(cond ((null n) (setq n 36)))
(setq delta(/(* 2 pi) n))
(setq j(/ disp n))
(setq bb(caddr b1))
(setq tg(*(/ angta 180) pi))
(setq ang 0)
(setq k 0)
(command "ucs" "o" b1)
(command "3dpoly" (list r1 0 0))
(repeat (* m n))
(setq k(+ k 1))
(setq ang(+ delta ang))
(setq r(- r1 (* (+ 0 (* j k) (/ ( sin tg) (cos tg)))))
(setq pt2(list (* r (cos ang)) (* r (sin ang)) (+ 0 (* j k))))
(command pt2)
)
(command "")
)

运行后 提示
错误: SETQ 中变量名称错误: (SETQ PT1 (LIST (* R (COS ANG)) (* R (SIN
ANG)) (+ 0 (* J K)))) 怎么回事 能帮改改么
展开
dnbc1
2011-12-19 · TA获得超过978个赞
知道小有建树答主
回答量:1235
采纳率:92%
帮助的人:408万
展开全部
程序中变量名前后不一致,有多")"和少")"现象,应如下:
(defun c:yzluow(/)
(setq r1(getreal"\n指定初始半径:"))
(setq disp(getreal"\n指定节距:"))
(setq angtg(getreal"\n输入圆形角:"))
;(setq m(getreal"\n输入圈数:"))
;(setq n(getreal"\n输入每圈细化段数<36>:"))
;因为repeat后面要求跟整数,所以这两行应改为如下:
(setq m(getint "\n输入圈数:"))
(setq n(getint "\n输入每圈细化段数<36>:"))
(cond ((null n) (setq n 36)))
(setq delta(/(* 2 pi) n))
(setq j(/ disp n))
(setq bb(caddr b1))
;(setq tg(*(/ angta 180) pi));变量错,应为
(setq tg(*(/ angtg 180) pi))
(setq ang 0)
(setq k 0)
(command "ucs" "o" b1)
(command "3dpoly" (list r1 0 0))
;(repeat (* m n));最后面多一个")"
(repeat (* m n)
(setq k (+ k 1))
(setq ang (+ delta ang))
;(setq r(- r1 (* (+ 0 (* j k) (/ ( sin tg) (cos tg)))));最后面少一个")"
(setq r (- r1 (* (+ 0 (* j k) (/ ( sin tg) (cos tg))))))
(setq pt2 (list (* r (cos ang)) (* r (sin ang)) (+ 0.0 (* j k))))
(command pt2)
)
(command "")
(princ)
)
13950332712
2011-12-21
知道答主
回答量:18
采纳率:0%
帮助的人:3万
展开全部
1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式