AutoLISP绘图程序设计解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(while (<= a n) (command circle P0 R) (setq P0 (polar P0 0 L)) (setq a (1+ a))
) )
2018/10/11
3
(4)AutoLISP语言中使用大量的函数(有 200多个函数),进行各种运算;
(5)AutoLISP编写的程序特点(学习中注 意):
(5)表(LIST):带有一对括号、有若干元素 组成。(元素1 元素2 … 元素n)
如:(2 4 f)
◇元素的个数叫表的长度。
◇元素也可以是表,如( 45 (3 6) 7),这 叫嵌套。
◇元素之间必须用“空格” 隔开。
◇表的定义方式:( LIST 5 6);'( 5 6); 还可以用defun定义(后面讲)。
2018/10/11
6
例: (setq P(list 12.36 -26.58)) 结果是:(12.36 -26.58) 例:(setq P '(12.36 -26.58)) 结果是:(12.36 -26.58)
提示: (1)表的嵌套时一定要注意括号“(”、“)”
匹 配。 (2)西文状态下输入!!!
2018/10/11
7
(6)文件描述符
(7)AutoLISP内部函数 (8)AutoCAD的选择集 (9)AutoCAD的实体名
上述数据类型中,前四种称原子,原子 包括数值原子(整型数、实型数),符号 原子和字符串原子。
AutoLISP基本数据类型是原子和表,重 点介绍前五种数据类型。
2018/10/11
AutoCAD二次开发手段。
所谓二次开发:是指以AutoCAD软件为平台, 加入自己所需要的功能。开发过程,就是编程 的过程。
二次开发所支持的语言有VB、C++,大型的 二次开发,以C++为主,而小型二次开发,一 般以AutoLISP为主。
2018/10/11
2
(2)必须在 AutoCAD 环境下运行(内嵌); (3)AutoLISP 可以编写程序,调用 AutoCAD 的许多
2018/10/11
9
4.点 是表的一种形式,也叫点表。 有三种获得点的方式: (1)用'表示 '(120.35 253.24) (2)list函数定义点 (setq X 12.36 Y -26.58) (setq M (list X Y)) 结果是: M=(12.36 -26.58) (setq M '( X Y)) 结果是:(X Y) (3)由getpoint函数得到点 其格式:(getpoint “\n输入一点:”)
命令; 举例:在水平方向画 n个大小相等的圆。
;;调用AutoCAD命令画圆 (defun C:HY()
(setq P0 (getpoint 第一圆心坐标:)) (setq R (getreal 半径:)) (setq L (getreal 圆心间距离:)) (setq a 1) (setq n(getint\n 圆的个数:))
?以表形式描述数据处理过程,程序执行过 程就是函数求值过程;
?每段程序都是一个函数;
?具有交互处理功能,边解释边执行; ?采用模块化设计方法。
2018/10/11
4
2.AutoLISP的数据类型
(1)整型数( INT):是由 0、1、2…9、+、-组成的。
(2)实型数( REAL):如 0.4(0不能少)、 -1.23 、 0.526E9 (0.526 ×109)。
8
二、几个基本概念
1.常数 PI——数学中的π( 3.1415929 …) T——逻辑真,即成立。
NIL——逻辑假,即不成立。还代表空,即无值。 注意:(1)大小写等效;( 2)它们不能作为变量。 2.原子 是程序处理中最小的数据单元。 3.表达式 原子和表的统称。 如:(setq P '(12.36 -26.58))
2018/10/11
10
三、AutoLISP程序结构
1.举例
例(1)
;;在屏幕上显示 ASCII码为(65-90)的字符
(defun C:zm(/ as)
; 自定义命令
(setq as 65 n 100)
(while (<= as 90)
(command text (list n 100) 15 (chr as))
(setq as (+ as 1) n (+ n 20))
)
)
2018/10/11
11
例(2) ;;绘制正多边形程序
(defun c:dbx() (setq n (getint\n 输入多边形边数 :)) (setq L (getreal\n 输入多边形边长 :)) (setq P1(getpoint\n 输入多边形第一个角点坐 标:)) (setq P2(polar P1 0 L)) (command polygon n e p1 p2)
)
2018/10/11
12
例(3) (defun yuan( ) ;;画圆函数
(setq r (getreal\n 半径:)) (setq p (getpoint\n 圆心:)) (command circle p r) )
2018/10/11
13
例(4) (defun ld( )
(setq p1 (getpoint\n p1:) p2 (getpoint\n p2:)
(3)符号( SYM):除 (、)、*、‘、”、;之外的字 符序列,并且不能全部是数字。
符号常用着变量,如:
Command:(setq X 12)
; 整型数
Command:(setq X 12.0) ; 实型数
Baidu Nhomakorabea
Command:(setq X “12”) ;字符串
2018/10/11
5
(4)字符串( STR):如:“ ABC”、“ abc”、 “457”等。
);;;输入两点 (setq d (distance p1 p2));求距离 (setq ang (angle p1 p2));求方位角 (print d) (print ang) (command line p1 p2 ); 画直线 )
第三章 AutoLISP绘图程序设计
主要内容
1.AutoLISP特点 2.AutoLISP函数的用法 3.AutoLISP程序结构 4.AutoLISP程序执行方式
2018/10/11
1
§3.1 AutoLISP 概述
一、AutoLISP介绍
1.AutoLISP的作用 ( 1 ) AutoLISP 是 一 种 表 语 言 , 是 常 用 的
) )
2018/10/11
3
(4)AutoLISP语言中使用大量的函数(有 200多个函数),进行各种运算;
(5)AutoLISP编写的程序特点(学习中注 意):
(5)表(LIST):带有一对括号、有若干元素 组成。(元素1 元素2 … 元素n)
如:(2 4 f)
◇元素的个数叫表的长度。
◇元素也可以是表,如( 45 (3 6) 7),这 叫嵌套。
◇元素之间必须用“空格” 隔开。
◇表的定义方式:( LIST 5 6);'( 5 6); 还可以用defun定义(后面讲)。
2018/10/11
6
例: (setq P(list 12.36 -26.58)) 结果是:(12.36 -26.58) 例:(setq P '(12.36 -26.58)) 结果是:(12.36 -26.58)
提示: (1)表的嵌套时一定要注意括号“(”、“)”
匹 配。 (2)西文状态下输入!!!
2018/10/11
7
(6)文件描述符
(7)AutoLISP内部函数 (8)AutoCAD的选择集 (9)AutoCAD的实体名
上述数据类型中,前四种称原子,原子 包括数值原子(整型数、实型数),符号 原子和字符串原子。
AutoLISP基本数据类型是原子和表,重 点介绍前五种数据类型。
2018/10/11
AutoCAD二次开发手段。
所谓二次开发:是指以AutoCAD软件为平台, 加入自己所需要的功能。开发过程,就是编程 的过程。
二次开发所支持的语言有VB、C++,大型的 二次开发,以C++为主,而小型二次开发,一 般以AutoLISP为主。
2018/10/11
2
(2)必须在 AutoCAD 环境下运行(内嵌); (3)AutoLISP 可以编写程序,调用 AutoCAD 的许多
2018/10/11
9
4.点 是表的一种形式,也叫点表。 有三种获得点的方式: (1)用'表示 '(120.35 253.24) (2)list函数定义点 (setq X 12.36 Y -26.58) (setq M (list X Y)) 结果是: M=(12.36 -26.58) (setq M '( X Y)) 结果是:(X Y) (3)由getpoint函数得到点 其格式:(getpoint “\n输入一点:”)
命令; 举例:在水平方向画 n个大小相等的圆。
;;调用AutoCAD命令画圆 (defun C:HY()
(setq P0 (getpoint 第一圆心坐标:)) (setq R (getreal 半径:)) (setq L (getreal 圆心间距离:)) (setq a 1) (setq n(getint\n 圆的个数:))
?以表形式描述数据处理过程,程序执行过 程就是函数求值过程;
?每段程序都是一个函数;
?具有交互处理功能,边解释边执行; ?采用模块化设计方法。
2018/10/11
4
2.AutoLISP的数据类型
(1)整型数( INT):是由 0、1、2…9、+、-组成的。
(2)实型数( REAL):如 0.4(0不能少)、 -1.23 、 0.526E9 (0.526 ×109)。
8
二、几个基本概念
1.常数 PI——数学中的π( 3.1415929 …) T——逻辑真,即成立。
NIL——逻辑假,即不成立。还代表空,即无值。 注意:(1)大小写等效;( 2)它们不能作为变量。 2.原子 是程序处理中最小的数据单元。 3.表达式 原子和表的统称。 如:(setq P '(12.36 -26.58))
2018/10/11
10
三、AutoLISP程序结构
1.举例
例(1)
;;在屏幕上显示 ASCII码为(65-90)的字符
(defun C:zm(/ as)
; 自定义命令
(setq as 65 n 100)
(while (<= as 90)
(command text (list n 100) 15 (chr as))
(setq as (+ as 1) n (+ n 20))
)
)
2018/10/11
11
例(2) ;;绘制正多边形程序
(defun c:dbx() (setq n (getint\n 输入多边形边数 :)) (setq L (getreal\n 输入多边形边长 :)) (setq P1(getpoint\n 输入多边形第一个角点坐 标:)) (setq P2(polar P1 0 L)) (command polygon n e p1 p2)
)
2018/10/11
12
例(3) (defun yuan( ) ;;画圆函数
(setq r (getreal\n 半径:)) (setq p (getpoint\n 圆心:)) (command circle p r) )
2018/10/11
13
例(4) (defun ld( )
(setq p1 (getpoint\n p1:) p2 (getpoint\n p2:)
(3)符号( SYM):除 (、)、*、‘、”、;之外的字 符序列,并且不能全部是数字。
符号常用着变量,如:
Command:(setq X 12)
; 整型数
Command:(setq X 12.0) ; 实型数
Baidu Nhomakorabea
Command:(setq X “12”) ;字符串
2018/10/11
5
(4)字符串( STR):如:“ ABC”、“ abc”、 “457”等。
);;;输入两点 (setq d (distance p1 p2));求距离 (setq ang (angle p1 p2));求方位角 (print d) (print ang) (command line p1 p2 ); 画直线 )
第三章 AutoLISP绘图程序设计
主要内容
1.AutoLISP特点 2.AutoLISP函数的用法 3.AutoLISP程序结构 4.AutoLISP程序执行方式
2018/10/11
1
§3.1 AutoLISP 概述
一、AutoLISP介绍
1.AutoLISP的作用 ( 1 ) AutoLISP 是 一 种 表 语 言 , 是 常 用 的