AutoLisp程序设计教程解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Visual Lisp简介(2)
AutoLISP程序由注释和表达式组成。与其他 的高级语言不同的是,它的注释用;来表示。 而表达式用的是前缀表示法,即把运算符放在 表的第一个元素位置,后面才是其他参数。表 达式一般是通过调用函数来执行。
变量(1)
1.符号:用来作为变量、函数的名字。符号可 包含数据和字符((、)、. 、‘、 “、;除外)。 符号的长度最好不要超过6个字符。 2.变量的数据类型:不需对变量事先进行类型 说明,变量被赋值时,值的类型就是变量的类 型。在程序运行过程中,同一变量在不同的时 刻可以赋予不同类型的值。 3.赋值: (setq 变量1 值1 [变量2 值2 ……])
3.表达式的求值过程 在Lisp语言中,函数之间不存在优先关系, 运算的先后顺序只能通过表的层次来实现, 最里层的表最先被求值,再传给外层的表, 直到求值完毕。
表达式(3)
4.表达式的求值规则 (1)整型数、实型数、字符串,以它们本身的 值作为求值结果 (2)符号以它们当前的约束值作为求值结果 (3)表是根据其第一个元素来进行计算的。 其中quote函数表示直接引用,可用 单号来 表示。如(setq p1 (quote (25 10))) 可写成: (setq p1’ (25 10))
Lisp语言是人工智能领域中广泛采用的一种 程序设计语言。 AutoLisp 程序和autoCAD的绘图命令可以 透明的结合起来,使设计和绘图完全融为一 体。还可以实现对AutoCAD图形数据 直接访 问、修改,为实现对图形的实时修改、交互 设计、参数化设计以及在绘图领域中应用人 工智能提供了必要的条件。是一种人工智能 绘图语言。
常用内部函数(5)
mand函数:执行AutoCAD标准命令 利用command函数AutoLISP几乎可以调用CAD 里的全部命令。 格式:
(command “AutoCAD 命令” 据”……) “命令所需的数
如画圆:(command “circle” “2,4” 5) 如直线: (command “line” “100,120” ”23,116”””):调用line、 pline、 layer时以“”结尾,等效于按一次空格 键。
AutoCAD的二次开发(Visual Lisp程序设计)
AutoCAD的显著特点之一是它不仅具有强大的 图形绘制与编辑功能,而且体系结构开放,允许用 户对其进行定制与开发。可针对工程领域的特殊应 用问题,开发一个既有计算分析功能和专用的工程 图形数据库,又有强大图形处理功能的CAD应用系 统。
Visual Lisp简介(1)
(car <点或表>):返回第一个元素 (cdr <点或表>):返回除第一个元素外内容的表
ห้องสมุดไป่ตู้
常用内部函数(5)
9.主要的交互输入函数 (1)(getangle [pt] [msg]):等待用户输入角度 (2) (getcorner [pt] [msg]):等待用户输入一个角点 (3) (getdist [pt] [msg]):等待用户输入一个距离 (4) (getpoint [pt] [msg]):等待用户输入一个点
1.计算函数 (+ n m)、 (- n m)、 (* n m)、 (/ n m) (1+ m)、 (1- m)、(sqrt m) 2.关系运算函数 (= n m) (/= n m) (< n m) (>= n m) 3.逻辑运算函数 (and 表达式1 表达式2 ……) (or 表达式1 表达式2…… ) (not (项))
常用内部函数(1)
常用内部函数(2)
4. 赋值函数 ( setq <符号1><表达式1>……) 5.引用函数 (quote<表达式>)或简写成(‘<表达式>) 6.转换函数 (itoa <整数>):整数转换为字符串 (atoi <字符串>):字符串转换为整数 (atof<字符串>):字符串转换为浮点数
CAD/CAE/CAM系统的编程基础 与二次开发技术
商业化的CAD/CAE/CAM系统在某些方面难以满足工 程需要,为提高和扩展系统的功能,需要对 CAD/CAE/CAM系统进行开发。 开发的方式主要有三种: (1)在通用CAD/CAE/CAM软件基础进行二次开发, 如SolidEdge, SolidWorks,AutoCAD等CAD系统的二次 开发。 (2)基于CAD/CAE/CAM软件平台的开发。如当前 流行的图形核心技术开发平台有ACIS、Parasolid、 CAS.CADE和Granite等,稳定性好,但成本高。 (3)完全自主版权的开发,如C++等结合OpenGL进 行开发。
自定义函数(1)
1.定义函数
格式:(defun 函数名(变量表/局部变量表)表达式……)
如定义一个加10的函数 (defun add10(x) (setq x(+ 10 x)) 2.调用函数 格式: (函数名 [变元]……) 如 (sqrt 4) (add10 3) (setq y(add10 (+2 3))
表达式(1)
表达式相当于程序的语句,主要是由原子或 表构成的。 1.以表的形式存在的表达式 格式: (函数名 [变元]……) 2.前缀表示法:将函数名放在所有的操作数之 前:如x=(a+b)*c 用Lisp表示为:(setq x (* (+ a b) c)),相当于说 运算符也属于函数。
表达式(2)
常用内部函数(3)
7.字符串处理函数 (strcat <字符串1> <字符串2>):将字符串按顺 序连结成一个新字符串 (substr <字符串><开始><长度>):从开始处截 取某长度的字符串。 (strlen <字符串>):求字符串的长度。
常用内部函数(4)
8.求值函数 (distance <点1> <点2>):两点之间的距离 (polar <点> <角度> <距离>):以相对极坐标方式 返回另一个点 ( angle <点1> <点2>):返回两点连线与X轴正向 夹角 (osnap <点> 字符串):返回以点来指定对象的捕 捉点