溜溜问答 > 平面设计 > CAD问答 > lisp AutoCAD命令
kiss mayue
kiss mayue
邀请你来回答
161人阅读 2021-09-03

lisp AutoCAD命令

用lisp语言自定义AutoCAD命令
我要回答
1个回答

Autolisp语言作为AutoCAD的二次开发工具,虽然在功能、运行速度和保密性等方面比起arx等工具要逊色一些,但由于它易学易用,交互性好,灵活性强,对于那些经常使用AutoCAD进行绘图的普通用户来说,不失为一种理想的开发工具。下面就介绍用Autolisp语言自定义的几个AutoCAD绘图命令,可以起到简化操作、提高作图效率的作用。 一、键槽尺寸视图的绘制命令“jct” 在绘制轴、齿轮或带轮等零件图时,经常需要画轴上键槽处的剖视图或轮毂键槽的端面视图,比较麻烦;由于键槽的尺寸随轴径的变化而变化,所以我们可以用lisp程序来实现自动绘图。加载下面的程序,在命令行中键入”jct”并回车,通过人机交互的形式输入有关参数,可自动完成轴上键槽的剖视图和轮毂键槽的端面视图的绘制。代码示例如下所示。 (defun c:jct () (setq pt0 (getpoint "\n 请输入视图的中心位置点:")) (initget 7) (setq loop t) (while loop (setq d (getreal "\n 请输入键槽处的轴径(12 d 130)) (alert "轴径数据输入错误!\n\n请重新输入!") (setq loop nil) );if );while (cond;根据轴径检索键槽尺寸 ((and (> d 12) (<= d 17)) (setq b 5 t1 3.0 t2 2.3));b表示键槽的宽度 ((and (> d 17) (<= d 22)) (setq b 6 t1 3.5 t2 2.8));t1表示轴上键槽的深度 ((and (> d 22) (<= d 30)) (setq b 8 t1 4.0 t2 3.3));t2表示轮毂上键槽的高度 ((and (> d 30) (<= d 38)) (setq b 10 t1 5.0 t2 3.3)) ((and (> d 38) (<= d 44)) (setq b 12 t1 5.0 t2 3.3)) ((and (> d 44) (<= d 50)) (setq b 14 t1 5.5 t2 3.8)) ((and (> d 50) (<= d 58)) (setq b 16 t1 6.0 t2 4.3)) ((and (> d 58) (<= d 65)) (setq b 18 t1 7.0 t2 4.4)) ((and (> d 65) (<= d 75)) (setq b 20 t1 7.5 t2 4.9)) ((and (> d 75) (<= d 85)) (setq b 22 t1 9.0 t2 5.4)) ((and (> d 85) (<= d 95)) (setq b 25 t1 9.0 t2 5.4)) ((and (> d 95) (<= d 110)) (setq b 28 t1 10.0 t2 6.4)) ((and (> d 110) (<= d 130)) (setq b 32 t1 11.0 t2 7.4))) (command "circle" pt0 "d" d) (command "zoom" "a") (setq s1 (ssget "l" )) (setq di (-(* (/ d 2.0) (/ d 2.0)) (* (/ b 2.0) (/ b 2.0))) dx (sqrt di) dy (/ b 2.0) pt1 (list (+ (car pt0) dx) (+ (CADr pt0) dy)))

查看全部
2021-09-03
回复 采纳

相关问题

AutoCAD中的lisp语言
共4条回答 >
沉溺🔥: 在Autolisp里面,计算数值的时候,加减符号要写在前面,另外要写成实数的形式,如果是整数,运行后,数值可能会出错。例:1/2=0这个是整数运行的结果。(/(-88.0(*52.063.0))(+18.0(/47.03.0)))
(4) 回复
AutoCAD lisp
共4条回答 >
陶然: 你想画一个矩形,这个程序有两个错误。其一、pi是180度而不是90度;其二、括号的问题,倒数第2行最后少一个右括号,倒数第1行最后右括号改为半角。正确的程序:(setqpa(getpoint"输入左下角点:"))(setqww(getreal"宽度:"))(setqhh(getreal"高度:"))(setqpb(polarpa0ww))(setqpc(polarpb(/pi2)hh))(setqpd(polarpa(/pi2)hh))(command"pline"papbpcpd"c")
(1) 回复
AutoCAD 中如何让写好的lisp按简化命令调用?
共2条回答 >
还: 在命令行输入(defunc:简化命令()(command^^"原来的命令"))即可重定义命令
(1) 回复
AutoCAD lisp,怎么可以让AutoCAD正常使用lisp,但不能让人复制/打开/移动lisp的文件?
共1条回答 >
vai: 要做到这一点,只有修改电脑系统的功能才能做到。似乎系统做不到这一点。
回复
AutoCAD lisp有什么命令可以读取文本数据?
共1条回答 >
佳烨装饰: (setqss1(ssget(list(cons0"*text"))))(setqent(ssnamess10))(setqstr(cdr(assoc1(entgetent))))文本内容已读取至str这个变量中,你可以参考
回复
发表成功!
感谢您的分享!
好的
官方微信群

(微信添加“妙妙”或“笑笑”,邀您进群)