AutoCAD-AutoLISP基本函数(课件PPT)

合集下载

第三章AutoLISP的基本函数

第三章AutoLISP的基本函数
(atan num1 [num2]) 返回一个数的反正切值(以弧度为单位) 如果仅提供一个参数 num1,本函数返回数 num1 的以弧度为单位的反正 切值。如果提供了两个参数 num1 和 num2,本函数返回 num1/num2 的 以弧度为单位的反正切值。如果 num2 为 0,该函数返回正的或负的 1.570796 弧度(+90 度或 -90 度),其正负取决于 num1 的正负。该函数 返回的角度的范围是 -pi/2 至 +pi/2(弧度)。 _$ (atan 1) 0.785398 _$ (atan 2 3.0) 0.588003
返回顶层第一个元素 一般性表 ls t为 点对 返回点对左元素 nil(空表) 返回nil
• • • • • • • • 2.
_$ (car '(x y z)) X _$ (car „((a b (c)) d 5)) (A B (C)) _$ (car '(0 . "LINE")) 0 _$ (car '()) nil (cdr lst)
• (setq pt '(1.0 1.0 1.0)) • (setq pt (1.0,1.0,1.0))
;正确 ;错误
• • • • • • • • • • • • • • • • • • • • •
3.1.4再求值函数eval 求表达式值的值,也就是说求两次值。 (eval epxr) 例如 _$ (setq a '(* 5 6)) (* 5 6) _$ (eval a) 30 _$ (setq a 'b) B _$ (setq b 'c) C _$ (eval a) C _$ (eval „a) ;quote只能阻止一次求值 B _$ (eval 5) ;对数求值结果为其自身 5 _$ (eval “(+ 3 4)”) ;对字符串求值结果为其自身 "(+ 3 4)" _$

2AutoLISP基本函数

2AutoLISP基本函数

;返回1.570796 ;返回-1.570796
二、AutoLISP 基本函数
▪ 讨论与练习 写出y x3 ax2 bx c的AutoLISP表达式
(Setq y (+ (expt x 3) (* a x x) (* b x) c))
写出x * y /(tgx a sin 2 y)的AutoLISP表达式
是整型数,实型数,表达式
(- <数1> <数2>…)返回第一个<数>与后面所有数的差
(* <数> <数>…) 返回所有<数>的乘积
(/ <数1> <数2> …)返回<数1>依次除以其他数后的商
(1+ <数>)
返回<数>有空格)
(1- <数>)
返回<数>减1后的值
(注意:1与-号之间不能有空格)
2、表达式求值规则:①整型数、实型数 和字符串其本身的值就是求值结果;② 表根据第一个元素进行求值
3、最好不要给AutoLISP一些内置函数名 及符号赋值。虽然是有效的,但保留符 号和函数将被重新定义
2.1 赋值与求值函数
▪ 2 再赋值函数
(set <变量> <表达式>)
功能:再赋值函数,给变量的值赋值的函数 格式:只能有两个参数,且对<变量><表达式>都要求值,
二AutoLISP 基本函数
▪ 引言
1 AutoLISP函数分为:系统内部函数和用户自定 义的外部函数
2 AutoLISP函数的调用:通过对标准表来实现, 一般格式: (函数名[参数1][参数2]…)

AutoCAD二次开发实用教程第3章 AutoLISP基本函数

AutoCAD二次开发实用教程第3章 AutoLISP基本函数

第3章 AutoLISP基本函数
3.1.1 计算函数 11.(LOG <数>) 该函数是EXP的反函数,返回值为<数>的自然对数值,其 数据类型为实型数。 例如:
(LOG (LOG (LOG (LOG
3) 返回1.098610 1) 返回0.00000 1.22) 返回0.198850 -90) 返回错误:没有为参数定义函数: -90
(ATAN -1.0) 返回-0.785398(弧度),即-45° 如果<数1>和<数2>都存在了,则返回<数1>/<数2>的反正切 值(单位为弧度)。 (ATAN 2.0 3.0) 返回值0.588002(弧度) (ATAN 2.0 -3.0) 返回值2.553590(弧度) (ATAN -2.0 3.0) 返回值-0.588002(弧度) (ATAN -2.0 -3.0) 返回值-2.553590(弧度)
第3章 AutoLISP基本函数
3.1.1 计算函数 5.(/ <数1> <数2>…) 本函数返回<数1>除以<数2>,再除以<数3>…依次做除法运 算的结果。如果仅提供了一个<数>,则返回<数>除以1的 结果。
各个<数>类型不同,计算结果不同,返回值类型也不同。 例如: (/ 9 2) 返回值4 (/ 9 2.0) 返回值4.5000 (/ 9 (/ 2 3)) error:divide by zero (/ 9 (/ 2.0 3)) 返回13.5000 (/ 4) 返回4 (相当于4÷1=4)
返回4.0700 返回9.0000 返回-1 返回9.0000 返回2.0

AutoCADLISP基本知识及函数

AutoCADLISP基本知识及函数

AutoCADLISP基本知识及函数1.lisp数据类型INT 整型REAL 实数型(最多有6位小数)STR 字符串型2.预定义符号nil 尚无定义或者falseT 常量PAUSE 暂停PI 常量π3.赋值函数(setq x 1.5 y 20 p "center");给x、y、p赋值,返回值center。

4.查询变量的值和数据类型command:!a或者直接输入a;返回a的值command:(type a)或者直接输入(type a);返回a的数据类型5.quote函数(quote(10 20 ...))(quote(10 20))或者'(10 20);表示禁止对表求值,返回(10 20) 定义二维点(setq p '(10 20))6.定义函数(defun 函数名(变元.../局部变量...) 表达式... )7.调用函数(函数名变量)8.调用CAD命令(command "autocad命令" "所需数据" ...)如绘制圆心(2,4),半径为5的圆(command "circle" "2,4" 5)或者(command "circle" '(2 4) 5)9.画矩形(defun c:rect1(/ p1 p2 p3 p4)(setq p1 (getpoint "\n输入矩形的一个角点"))(setq p3 (getcorner p1 "\n输入矩形的另一个角点:"))(setq p2 (list(car p3) (cadr p1)))(setq p4 (list(car p1) (cadr p3)))(command "pline" p1 p2 p3 p4 "c"))10.cond函数多条件判断(cond(测试表达式1 结果表达式1)(测试表达式2 结果表达式2) ...);从第一个子表起,测试每个子表的测试表达式直至有一个子表测试表达式成立,计算该子表的结果表达式并返回这个结果表达式的值。

AutoCAD基本语法.ppt

AutoCAD基本语法.ppt
AutoCAD高级培训教程之二
AutoCAD应用开发
第二部分 AutoLISP基本语法
2 AutoLISP基本语法
• 2.1 AutoLISP的语句 • 2.2 AutoLISP数据类型 • 2.3 AutoLISP 中的常量、原子及点对 • 2.4 AutoLISP的变量
2.1 AutoLISP的语句
• 若在表的前面(左括号前)加一个单引号“’”,
则表示对此表不作求值处理,而是把它当作常量 表来处理,如 ’(a b c) 就是一个常量表。
• 注意:函数表的函数名必须是一个合法的已存在
的AutoLISP函数,AutoCAD将按此函数的功能, 完成其动作。AutoLISP函数可以在AutoLISP系统 帮助中查到。
• (3)字符串:STR。字符串是一个由双引号引起来的字符序 列,双引号称为字符串的界定符,字符串中字符的个数(不包括两个 界定符)称为字符串的长度。字符串中可以包括大小写字母、数字、 空格符号及其他ASCII码表中的任意字符。字符串的长度是任意的, 它的存储空间是动态分配的。
• 字符串中的反斜号“\”为控制字符的标志符,
• (2)实型:REAL。双精度,14位有效小数。AutoLISP中, 实数有两种表示形式:小数形式和科学计数法形式。例如0.123,4.56,7.89E3(也可记为7.89e3,相当于7.89×103)都是合法的实数。 但介于-1~1之间的纯小数,必须有前导零,例如0.3,-0.3正确,.3, -.3错误。
值,基本格式为:( 函数名 变量 参数 )。表中的 第一个元素为函数名,后边的元素为变量或参数。 例如表 ( sqrt 9 ),“sqrt”为函数名,为数学中的 求平方根函数,这个表将返回9的平方根3。表 (setq a 3) 为赋值函数,相当于a=3。函数表也 可以只有函数名,例如 ( princ ) 为打印函数,功 能是打印一个空行。

第5章 AutoLISP基本函数

第5章 AutoLISP基本函数

第5章 AutoLISP基本函数函数是AutoLISP语言处理数据的基本工具,学习AutoLISP编程最主要的是要掌握AutoLISP语言系统内部函数和符号的基本用法。

如:函数的调用格式,即函数名、参数的个数及类型;函数的功能、求值情况及返回值类型等。

AutoLISP基本函数主要包括:数值函数、赋值与求值函数、表处理函数、字符串处理函数、逻辑运算函数和控制结构函数等。

5.1 数值函数数值函数用于处理整型数和实型数,数值函数包括:基本算术函数、三角函数、数据类型转换函数。

数值函数的返回值类型取决于参数表中参数的数据类型。

AutoLISP中数值计算要遵循整实原则,具体运算规则为:A.整整得整;B.实实得实;C.整实得实。

例:command: (/ 18 4 2) 返回: 2command: (* 4.5 2.0) 返回:9.0command: (+ 6 4.2) 返回:10.25.1.1 基本算数函数这类函数包括:+、-、*、/、1-、1+、abs、sqrt、min、max、expt、exp、log、gcd、rem 1) (+ 〈数〉〈数〉… )功能: 求表中所有整数或实数的和。

例如:Command:(+ 1.2 3.1 3.8)返回:8.12) (- 〈数〉〈数〉… )功能: 求表中第 1 个数减去后面所有数的差, 当表中只有一个数时, 返回这个数的相反数。

例如:Command:(- 8. 1 5)返回:3.1Command:(- 0.25)返回:-0.253) ( *〈数〉〈数〉… )功能: 求表中所有数的积, 例如:Command:( * 0.0174533 30)返回:0.5235994) (/ 〈数〉〈数〉… )功能: 求表中第1 个数除以后面所有数的商。

例如:cmnmand:(/ 10 5 2.0)返回:1.05) (1+ 〈数〉)功能: 求一个整数或实数加 1 的和。

例如:Command:(1+ 2.7)返回:3.76) (1- 〈数〉)功能: 求一个整数或实数减 1 的差。

AutoCADAutoLISP基本函数 ppt课件 (2)

AutoCADAutoLISP基本函数 ppt课件 (2)

mode值 线性单位格式
示例
1
科学
2
十进制小数
1.75E+04 23.75
3
工程(英尺 + 十进制英寸)5'-4.25"
4
建筑(英尺 + 分数英寸) 1'-5 1/2\"
5
分数
17 1/2
• 参数precision指定数值的显示精度,对于表5-4中前3种格式,该参数 用来指定小数点后的小数位数。对于后两种格式,用来设定最小分数 的分母。如果没有指定precision的值,将采用系统变量LUPREC来设 定当前精度的值。
• ·(fix x)
• 实型转换为整型,x为实型或整型数,返回x的整型数。取整过程是直 接截断x的小数部分,而非四舍五入。例如:(fix 3.7) 返回3。
• ·(rtos number [ mode [ precision ] ] )
• 实型格式化函数rtos,该函数把实型数number(也可为整型数)按照 指定的模式mode和精度precision转换成字符串。中括号“[ ]”内的参 数可以不写。
• "45.0000" • 命令: (angtos -0.785398 0 4)
• "315.0000" • 命令: (angtos -0.785398 4)
• "S 45d E"
• ·(atoi string)
• 字符串转换为整型,string为字符串。例如: (atoi "80") 返回80。
AutoCADAutoLISP基本函数
第三部分 AutoLISP基本函数
AutoCADAutoLISP基本函数

AutoLISP绘图程序设计ppt课件

AutoLISP绘图程序设计ppt课件

;;在屏幕上显示 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))
16.07.2021
整理ppt
8
二、几个基本概念
1.常数 PI——数学中的π(3.1415929…) T——逻辑真,即成立。
NIL——逻辑假,即不成立。还代表空,即无值。 注意:(1)大小写等效;(2)它们不能作为变量。 2.原子 是程序处理中最小的数据单元。 3.表达式 原子和表的统称。 如:(setq P '(12.36 -26.58))
(5)表(LIST):带有一对括号、有若干元素 组成。(元素1 元素2 … 元素n)
如:(2 4 f)
◇元素的个数叫表的长度。
◇元素也可以是表,如(45 (3 6) 7),这 叫嵌套。
◇元素之间必须用“空格” 隔开。
◇表的定义方式:(LIST 5 6);’(5 6); 还可以用defun定义(后面讲)。
(while (<= a n) (command "circle" P0 R) (setq P0 (polar P0 0 L)) (setq a (1+ a))
) )
16.07.2021
整理ppt
3
(4)AutoLISP语言中使用大量的函数(有 200多个函数),进行各种运算;
(5)AutoLISP编写的程序特点(学习中注 意):
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

加运算,求x1 + x2 + ……之和。 减运算,求x1 - x2 - ……之差。 乘运算,求x1 * x2 * ……之积。 除运算,求x1 / x2 / ……之商。 增量运算,返回x + 1。 减量运算,返回x - 1。 绝对值函数,求x的绝对值。 平方根函数,求x的平方根。 任意次方函数,求xp的值。
10
• (exp p)
e的任意次方函数,求ep的值。
• (log x)
自然对数函数,求ln(x) 的值。
• (sin x) 为弧度。
正弦函数,求sin(x) 的值,其中x
• (cos x) x为弧度。
余弦函数,求cos(x) 的值,其中
• 参数angle可以是整型或实型常量、变量或表达式。 • 参数mode为角度格式编码,对应的系统变量为ANNITS。Mode的取
值为:0 — 十进制角度,1 — 度/分/秒,2 — 百分度,3 — 弧度, 4 — 勘测单位角度。 • 参数precision指定转换后小数点之后的小数位数,对应系统变量为 AUPREC。 • 例如:在命令行中输入 • 命令: (angtos 0.785398 0 4) • "45.0000" • 命令: (angtos -0.785398 0 4) • "315.0000" • 命令: (angtos -0.785398 4) • "S 45d E"
3
3.1 赋值函数
• 格式:(setq <变量名> <表达式>) • 详见5.2.4。
4
3.2 数据类型转换函数
• ·(float x)
• 整型转换为实型,x为整型数,返回x的实型数。例如:(float 3) 返回 3.0。
• ·(itoa x)
• 整型转换为字符串,x为整型数,把x转化为字符串。例如:(itoa 53) 返回 "53"。
7
• ·(angtos angle [ mode [ precision ] ] )
• 角度格式化函数angtos,该函数把以弧度为单位的角度数值angle按 照指定的角度格式mode和精度precision转换成字符串,角度值angle 的大小在[0, 2π]之间。中括号“[ ]”内的参数可以不写。
• 例如:在命令行中输入 • 命令: (setq x 17.5) • 17.5 • 命令: (setq fmtval (rtos x 1 4)) • "1.7500E+01" • 命令: (setq fmtval (rtos x 2 2)) • "17.50" • 命令: (setq fmtval (rtos x 3 2)) • "1'-5.5\"" • 命令: (setq fmtval (rtos x 4 2)) • "1'-5 1/2\"" • 命令: (setq fmtval (rtos x 5 2)) • "17 1/2" • ·(angtos angle [ mode [ precision ] ] )
AutoCAD高级培训教程之二
AutoCAD应用开发
第三部分 AutoLISP基本函数
1
3 AutoLISP基本函数
• 3.1 赋值函数 • 3.2 数据类型转换函数 • 3.3 数学几何函数 • 3.4 关系逻辑函数 • 3.5 条件分支函数 • 3.6 循环函数 • 3.7 表处理函数 • 3.8 字符串处理函数 • 3.9 交互式数据输入函数 • 3.10 打印输出函数 • 3.11 Command函数 • 3.12 存取AutoCAD系统变量值函数 • 3.13 自定义函数和子程序 • 3.14 参数化编程实例
• ·(fix x)
• 实型转换为整型,x为实型或整型数,返回x的整型数。取整过程是直 接截断x的小数部分,而非四舍五入。例如:(fix 3.7) 返回3。
• ·(rtos number [ mode [ precision ] ] )
• 实型格式化函数rtos,该函数把实型数number(也可为整型数)按照 指定的模式mode和精度precision转换成字符串。中括号“[ ]”内的参 数可以不写。
2
• AutoLISP提供了大量的函数,每个函数都 实现特定的功能。通过调用AutoLISP函数, 并对这些函数做适当的组合和编排,就可 以编写一个AutoLISP程序,来完成用户的 特定的操作。AutoLISP语言是函数的语言, AutoLISP程序是由函数语句组成的。本节 将介绍最常用的AutoLISP函数,以便使读 者比较快地学习和理解AutoLISP程序设计。 详细而全面的函数说明可以参见AutoLISP 帮助。
8
• ·(atoi string) • 字符串转换为整型,string为字符串。例如:
(atoi "80") 返回80。 • ·(atof string) • 字符串转换为实型,string为字符串。例如:
(atof "-1.25") 返回-1.25。
9
3.3 数学几何函数
• (1)数学函数
• · (+ x1 x2 ……) • ·(- x1 x2 ……) • · (* x1 x2 ……) • · (/ x1 x2 ……) • ·(1+ x) • ·(1- x) • ·(abs x) • ·(sqrt x) • ·(expt x p)
• 参数number可以是整型或实型常量、变量或表达式。
5
• 参数mode为线性单位的格式编码,与AutoCAD 的线性格式相对应,具体对应关系如表5-4所示。 如果没有指定mode的值,将采用系统中mode的值与线性单位格式的对应关系
mode值 线性单位格式
示例
1
科学
2
十进制小数
1.75E+04 23.75
3
工程(英尺 + 十进制英寸)5'-4.25"
4
建筑(英尺 + 分数英寸) 1'-5 1/2\"
5
分数
17 1/2
6
• 参数precision指定数值的显示精度,对于表5-4中前3种格式,该参数 用来指定小数点后的小数位数。对于后两种格式,用来设定最小分数 的分母。如果没有指定precision的值,将采用系统变量LUPREC来设 定当前精度的值。
相关文档
最新文档