第2讲 利用AutoLisp语言绘图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2讲利用AutoLisp语言绘图
在AuotCAD绘制简单图形时,有三种主要方式:(1)图标菜单(2)下拉式菜单(3)命令行。事实上还有另外一种绘图方式,即通过lisp语言实现绘制图形。利用Lisp语言绘图的最大优点是可以实现批处理,降低劳动强度。
小知识:
Lisp语言最大优势是和AutoCAD绘图结合的很好,这也
是该语言至今仍未被淘汰的最主要原因。
1、简单的绘图语句
几乎AuotCAD中所有的绘图及环境设置命令都可以通过程序调用!,利用Lisp语言编写绘图命令的窍门是首先在命令行下把绘图命令和对应的参数记住,然后用Lisp语言的格式书写出即可。
1.1 绘制直线
(command "line" "0,0" "1,1" "")
1.2 绘制圆
(command "circle" "0,0" 5)
1.3 绘制正多边形
(command "polygon" 5 "0,0" "i" 5)
(command "polygon" "5" "0,0" "i" "5")都正确
1.4 新建图层
(command "la yer" "m" "道路" "c" 2 "" "")
请同学自己编写高度为2,起点位置在“0,0”,文字内容是“理工大”的程序2、用多条绘图语句表示复杂图形
正常情况下图形都比较复杂,需要用多条语句编写,例如测绘中的下水井、路灯等符号。
例1、下水井的绘制
(defun c:xsj()
(command "circle" "0,0" 0.5)
(command "line" "-0.5,0" "0.5,0" "")
(command "line" "0,-0.5" "0,0.5" "")
)
3、循环控制语句
例2、绘制同心圆
例3、绘制可多次插入的下水井符号
例4、绘制y=sinx 曲线
4、课后练习题
4.1 编写lisp 程序,绘制路灯图案,参照下水井程序,改写成可以多次插入的程序。
4.2 编写lisp 程序,绘制(1) y =sinx
x (2) y =1
√2πexp(−x 2
2) 的图形,并用matlab 程序编写,比较两种语言的各自特点。
(defun c:tx y() (setq r 1.0) (while (< r 10) (command "circle " "0,0" r) (setq r (+ r 1)) ) ) (defun c:xsj() (setq r 0.5) (setq pt (getpoint "\请确定点位: ")) (while pt (setq x (nth 0 pt) y (nth 1 pt)) (setq x1 (- x 0.5) x2 (+ x 0.5) y1 (- y 0.5) y2 (+ y 0.5) ) (command "circle " pt r) (command "line" (list x1 y) (list x2 y) "") (command "line" (list x y1) (list x y2) "") (setq pt (getpoint "\请确定点位: ")) ) ) (defun c:sinx() (setq x (* pi -2)) (command "pline") (while (< x (* pi 2)) (command (list x (sin x))) (setq x (+ x 0.1)) ) (command "") ) matlab 程序: x=-pi:0.1:pi; plot(x,sin(x)); axis equal
5、过三点的外接圆参考程序