早教吧作业答案频道 -->其他-->
Autolisp帮解决下难题(defunc:yzluow(/)(setqb1(getpoint"指定基点:"))(setqr1(getreal"\n指定初始半径:"))(setqdisp(getreal"\n指定节距:"))(setqangtg(getreal"\n输入圆形角:"))(setqm(getreal"\n输入圈数:"))(setqn(getreal"\
题目详情
Autolisp 帮解决下难题
(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输入每圈细化段数:"))
(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)))) 怎么回事 能帮改改么
(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输入每圈细化段数:"))
(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)))) 怎么回事 能帮改改么
▼优质解答
答案和解析
程序中变量名前后不一致,有多")"和少")"现象,应如下:
(defun c:yzluow(/)
(setq r1(getreal"\n指定初始半径:"))
(setq disp(getreal"\n指定节距:"))
(setq angtg(getreal"\n输入圆形角:"))
;(setq m(getreal"\n输入圈数:"))
;(setq n(getreal"\n输入每圈细化段数:"))
;因为repeat后面要求跟整数,所以这两行应改为如下:
(setq m(getint "\n输入圈数:"))
(setq n(getint "\n输入每圈细化段数:"))
(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)
)
(defun c:yzluow(/)
(setq r1(getreal"\n指定初始半径:"))
(setq disp(getreal"\n指定节距:"))
(setq angtg(getreal"\n输入圆形角:"))
;(setq m(getreal"\n输入圈数:"))
;(setq n(getreal"\n输入每圈细化段数:"))
;因为repeat后面要求跟整数,所以这两行应改为如下:
(setq m(getint "\n输入圈数:"))
(setq n(getint "\n输入每圈细化段数:"))
(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)
)
看了 Autolisp帮解决下难题...的网友还看了以下:
已知:①苯环上新导入的取代基的位置主要与原有取代基的性质有关,把原有取代基称为定位基。若定位基使新 2020-05-02 …
①苯环上新导入的取代基的位置主要与原有取代基的性质有关,把原有取代基称为定位基。若定位基使新导入的 2020-05-02 …
已知:①苯环上新导入的取代基的位置主要与原有取代基的性质有关,把原有取代基称为定位基。若定位基使新 2020-05-02 …
下列几项中描述错误的是()A.权益收入即基于法定权益获得的收入B.权益收入基于法律随合同而发生, 2020-05-22 …
英语翻译之前的经历为这份工作奠定了基础,积累了经验,使我能更快的进入工作状态,对我帮助很大. 2020-06-12 …
草甘磷是一些除草剂的活性成分,使用时需要加入少量的洗衣粉作为表面活性剂.一种特定的基因对草甘磷具有 2020-06-16 …
作为财政收入基本形式的税收与其他财政收入形式相比较,它的基本特征是A.税收是通过国家权力机关征收的 2020-07-08 …
《三女帮忙》是荆门电视台“直播荆门”的一个子栏目,栏目一直坚持帮忙帮到底的原则,开播以来,三位85后 2020-11-12 …
请懂得基金定投的大侠帮忙,基金定投的计算公式新手上路,可能不是很深奥的问题,希望不要见笑哈----- 2020-11-28 …
帮忙翻译一下1.1掌握商务英语语汇句型,熟悉商务英语篇章学习商务英语首先要从英语语言基础入手,由于商 2021-01-08 …