Lisp CAD 求助高手!怎么通过代码实现连续画直线?

我想实现一个功能,举例,输入一组长度数字(10203040202352)其中每组有上限例如10个长度,输入长度后,输入直线角度,最好默认不输入时为零度,切每段直线的端点处... 我想实现一个功能,举例,输入一组长度数字(10 20 30 40 20 23 52)其中每组有上限例如10个长度,输入长度后,输入直线角度,最好默认不输入时为零度,切每段直线的端点处加入4mm的圆圈,我的未完成代码:
(defun tes0();输入一组线长
)
(defun tes1();循环控制
(setq p0(getpoint"\n选择起始点"))
(setq ang (getangle p0"\n选择直线方向或输入直线角度"))
)
(defun tes2();pn线起始点控制

(setq p0(getpoint"\n选择起始点"))
(setq ang (getangle p0"\n选择直线方向或输入直线角度"))
(setq le (getdist"\n输入直线长度"))

)

(defun tes3();pd线终止点控制
)

(defun c:ww () ;;划线并添加圆圈
(setvar "blipmode" 0)
(setq pn(tes2))
(setq pd(tes3)) (setq #os (getvar "osmode")) ;;取得当前捕捉设置
(setq #k (getvar "clayer")) ;;取得当前图层
(setvar "clayer" "0") ;;切换到图层0
(command "circle" pd 1.5)
(setvar "clayer" #k) ;;恢复原来图层 (setvar "osmode" #os) ;;恢复捕捉设置
(command "line" pn pd) (command pause)
(princ) )
展开
 我来答
dnbc1
2013-12-19 · TA获得超过977个赞
知道小有建树答主
回答量:1235
采纳率:92%
帮助的人:403万
展开全部
(defun c:cc() (setq cm (getvar "cmdecho") om (getvar "osmode")) (setvar "cmdecho" 0) (setvar "osmode" 33) (command "_undo" "be") (setq no 1) (while (setq p1 (getpoint (strcat "\n选择第" (itoa no) "条直线的起始点<回车则结束>:"))) (if (= (setq ang (getangle p1 (strcat "\n选择第" (itoa no) "条直线的方向或输入直线角度"))) nil) (setq ang 0.0) ) (if (setq le (getdist (strcat "\n输入第" (itoa no) "条直线的长度"))) (progn (setvar "osmode" 0) (setq p2 (polar p1 ang le));直线终点 (command "_line" p1 p2 "") (command "_circle" p1 (* 0.5 4)) (command "_chprop" (entlast) "" "layer" "0" "") ) ) (setq no (1+ no)) ) (command "_zoom" "e") (command "_undo" "e") (setvar "osmode" om) (setvar "cmdecho" cm) (princ))
VSH艾羽
2024-10-27 广告
CAD(计算机辅助设计)技术在上海艾羽信息科技有限公司的应用极为广泛。我们利用先进的CAD软件工具,精确高效地绘制产品设计图纸,从二维草图到三维建模,无所不能。这一技术不仅优化了设计流程,缩短了产品从概念到实物的周期,还通过精准的数据分析提... 点击进入详情页
本回答由VSH艾羽提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式