第1章AutoLISP和Visual LISP
VISUAL LISP的概念、功能和基本界面
![VISUAL LISP的概念、功能和基本界面](https://img.taocdn.com/s3/m/8d90f9d4d5bbfd0a79567368.png)
36.1.1Visual LISP与AutoLISPLISP是List Processor(表处理程序)的缩写,主要用于人工智能(AI)领域。
AutoLISP是人工智能语言CommonLISP的简化版本,作为通用LISP语言的一个小子集,AutoLISP严格遵循其语法和惯例,但又添加了许多针对AutoCAD的功能。
Autodesk公司在AutoCAD 2.1版引入AutoCAD作为应用程序编程接口(API),用于扩展和自定义AutoCAD功能。
借助AutoLISP,用户可以用适合编写图形应用程序的强大的高级语言来编写宏程序和函数,并开发各种软件包。
AutoLISP易于使用,并且非常灵活,多年来一直是自定义AutoCAD的标准。
从AutoCAD R14开始,Visual LISP被引入到AutoCAD中,它增强并扩展了AutoLISP语言,可以通过Microsoft ActiveX Automatio n接口与对象交互,并扩展了AutoLISP响应事件的能力。
作为开发工具,Visual LISP提供了一个完整的集成开发环境(IDE),包括编译器、调试器和其他工具,可以提高自定义AutoCAD的效率。
另外,Visual LISP提供了发布用AutoLISP编写的独立应用程序的工具。
Visual LISP没有任何特殊的硬件需求,能运行AutoCAD系统即可运行Visual LISP。
36.1.2Visual LISP与AutoCADVisual LISP作为一个完整的集成开发环境(IDE),具有自己的窗口和菜单,但它并不能独立于AutoCAD运行。
当用户从Visual LIS P IDE中运行AutoLISP程序时,经常需要与AutoCAD图形交互或在命令窗口响应程序提示。
如果Visual LISP把控制传给AutoCAD时AutoCAD已被最小化,用户必须手动恢复并激活AutoCAD才可继续,Visual LISP不会自动恢复AutoCAD窗口。
Visual_LISP编程基础1
![Visual_LISP编程基础1](https://img.taocdn.com/s3/m/d8ba1213647d27284b73516f.png)
一Visual LISP编程基础一、实验目的1.Visual LISP开发环境介绍;2.熟悉Visual LISP开发环境和开发步骤,并掌握Visual LISP调试方法和调试过程,断点设置,单步执行,自动执行和数据监视等功能的使用。
二、实验设备1.硬件环境:台式计算机;2.软件环境:WIN XP操作系统,AutoCAD 2004。
三、实验步骤1 熟悉Visual LISP开发环境(1)进入Visual LISP启动AutoCAD,通过选择菜单:工具->AutoLISP->Visual LISP编辑器,进入如下编程环境。
图5-1 Visual LISP集成开发环境(2)输入如下所示程序选择菜单:文件->新建文件,或工具按钮,启动新的文件编辑窗口如下,并输入其中的LISP程序。
图5-2 编辑hello world源程序源程序:( print “hello,world”)(3)保存选择菜单:文件->保存,或工具按钮,文件取名为helloworld.lsp,注意LISP文件名后缀。
(4)运行选择菜单:工具->加载编辑器中的文字,或工具按钮,即可运行当前程序。
程序运行结果将会显示在控制台窗口中,如图5-3所示。
图5-3 hello world程序运行结果该程序利用函数print输出字符串“hello,world”。
控制台窗口是一个单独的、可任意移动的窗口。
在控制台窗口中用户可以直接输入、运行AutoLISP表达式并查看结果,与AutoCAD命令窗口的工作方式非常类似。
但在控制窗口中显示一个AutoLISP变量的当前值只需输入变量名后回车,不再需要在变量名前加一个“!”。
在控制台中可以实现下面一些典型功能:●可以执行表达式并显示表达式的返回值●可以一次执行多个表达式●可以在控制台和文本编辑窗口之间复制或粘贴文本,在控制台中可以使用大部分文本编辑命令●通过在控制台中按Tab键可以回溯到以前输入的命令。
AutoLISPVisualLISP教程学习教程
![AutoLISPVisualLISP教程学习教程](https://img.taocdn.com/s3/m/c649c7eff424ccbff121dd36a32d7375a417c6ca.png)
第9页/共87页
10.2.2访问其他AutoCAD对象
获取AutoCAD应用程序这个根对象之后,沿着AutoCAD对象模 型图,就可以将其作为起点,逐级访问它的下一级VLA对象。
第5页/共87页
2. 了解AutoCAD应用程序的属性和方法
(vlax-dump-object VLA对象 [T]),该函数的功能是列出指定 VLA对象的属性和方法,参数为VLA对象,如果未设置T,只列出 指定VLA对象的属性。例如
(vlax-dump-object myacad t)返回
; IAcadApplication: An instance of the AutoCAD application
; ZoomCenter (2) ; ZoomExtents () ; ZoomPickWindow () ; ZoomPrevious () ; ZoomScaled (2) ; ZoomWindow (2)
第8页/共87页
在Property values(属性)部份列出了AutoCAD应用程序具 有ActiveDocument(活动的文档)、Application(应用程序的 指针)、Caption(标题)、FullName(可执行文件名)等属性。
第13页/共87页
; Handle (RO) = "81" ; HasExtensionDictionary (RO) = 0 ; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 040a53f4> ; Layer = "0" ; Length (RO) = 50.0 ; Linetype = "ByLayer" ; LinetypeScale = 1.0 ; Lineweight = -1 ; Normal = (0.0 0.0 1.0) ; ObjectID (RO) = 2129985160 ; ObjectName (RO) = "AcDbLine" ; OwnerID (RO) = 2129984760 ; PlotStyleName = "ByLayer" ; StartPoint = (10.0 20.0 0.0) ; Thickness = 0.0 ; TrueColor = #<VLA-OBJECT IAcadAcCmColor 040a6db0> ; Visible = -1
VisualLisp编程基础教程
![VisualLisp编程基础教程](https://img.taocdn.com/s3/m/83f16df9ad51f01dc281f1bd.png)
3、基本函数
(3)反正切函数ATAN 格式: (atan <数> ) 功能:求<数>反正切值,单位为弧度,为[-π/2,π/2] 实例:(atan 1) 结果为0.785398 , 即(π/4) (atan -1) 结果为0.-785398 , 即(-π/4) (atan 0) 结果为0 (atan 100000000000) 结果为1.5708,接近π/2
华南理工大学化学与化工学院方利国 lgfang@
8
2、基本运算
(6)普通数求幂 格式: (expt <底数> <幂>) 功能:求<底数>的 <幂>次方值 实例:(expt 3 3)结果为27 (expt 5 2)结果为25 (expt 2 4)结果为16 (expt 2 1.3)结果为 2.46229
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 9
2、基本运算
(7)求自然对数 格式: (log <数> ) 功能:求<数>的自然对数,要求<数>必须大于零 实例:(log 10.0) 返回2.3025851 (log 9) 返回 2.19722 (log 12) 返回 2.48491 (8)求平方根 格式: (sqrt <数> ) 功能:求<数>的平方根,要求<数>必须大于零 实例:(sqrt 4.0) 返回2.0 (sqrt 12) 返回3.4641 (sqrt 15.0) 返回3.87298
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 12
AutoLISP和Visual LISP
![AutoLISP和Visual LISP](https://img.taocdn.com/s3/m/0d9386bb960590c69ec376c1.png)
在AutoLISP中,符号的大小写等价,符号的长 度没有限制,且所有的字符都是有意义的。 如果一个符号的长度不超过6,就用节点本身来存
储;如果符号的长度超过6,这样的符号就不能用节
点来存储,而是在节点中存放一个指向实际存储符号 名的指针。这将会多占用存储空间,且减慢了执行速 度。因此,符号的长度最好不要超过6。
5. 函数(SUBS)
函数相当于子程序或过程。函数分为内部函数和外部函数 。AutoLISP提供的或用AutoLISP定义的函数为内部函数。用 ADS、ADSRX或ARX定义的函数为外部函数。例如sin 、cos 、sqrt为内部函数。 运算符在AutoLISP里属于函数,例如“+”、“-”、 “*”、“/”分别称之为加、减、乘、除函数,“<”、“<=”
2. 实型(REAL)
实型数是带小数点的数。在-1和1之间的实数必须以0开头,例 如:.5是错误的,应该写成0.5。实数用双精度的浮点数表示,并 且至少有14位有效位数的精度。注意,Visual LISP不显示所有的 有效位。
3. 字符串(STR)
字符串是由一对双引号括起来的字符序列。通常又把构成字符 串的双引号对称为字符串界定符。字符串中字母的大、小写和空 格符。 AutoLISP对字符串有如下约定: 字符串中,同一字母的大小写认为是不同的字体,空格也是一个 有意义的字符。 字符串的长度指位于双引号之间的字符个数(不包括双引号)。 如果在字符串的定界符之间无任何字符,称其为空串,它的长度 为零。 任何字符都可以用\nnn的格式表示,其中反斜杠“\”是ASCII 码的前导标识字符,nnn是该字符八进制的ASCII码。例如,字 符串ABCD也可表示为\101\102\123\104。一些常用的控制字符, 象反斜杠、双引号,除了可以用 \nnn的格式表示之外,还可以 用“\”转义字符的格式表示为“\\”、“\"”等特殊字符,见下表 。
CAD二次开发Visual_LISP指南
![CAD二次开发Visual_LISP指南](https://img.taocdn.com/s3/m/1ca2a7186c175f0e7cd1373d.png)
CAD二次开发Visual_LISP指南
![CAD二次开发Visual_LISP指南](https://img.taocdn.com/s3/m/1ca2a7186c175f0e7cd1373d.png)
visual LISP语言及编程资料
![visual LISP语言及编程资料](https://img.taocdn.com/s3/m/db6138aad0d233d4b04e691d.png)
(c:ls)
2018/11/27
8
xhm
6.3.2 在AutoCAD环境中加载、运行AutoLISP程序 1、加载 工具 →AutoLISP→加载应用程序… “管理”选项卡→“应用程序”面板→ 加载应用程序 2、运行 (1)AutoLISP程序中以“defun c:<函数名>”格式定义,在命令窗 口直接输入函数名(当作Autocad新命令) (2) AutoLISP程序中以“defun<函数名>”格式定义,在命令窗口 输入用括号括起来的函数名
xhm
主要内容: 1、Visual LISP集成开发环境 2、加载、运行AutoLISP程序 3、 AutoLISP编程、函数 4、应用举例
2018/11/27
1
xhm
AutoCAD 具有开放的体系结构,可对其进行二次开发 开发工具:Auto LISP Visual Basic VBA Visual C++等 Visual LISP 是 开 发 AutoCAD 最 主 要 的 工 具 。 用 户 可 以 利 用 Visual LISP 语 言 实 现 对 AutoCAD 当 前 图 形 数 据 库 的 直 接 访 问 和 修 改 , 增 加
4、赋值函数 (setq <符号1> <表达式> [符号2] [表达式2]…) (setq a 45 c 56 d 78) (setq h1 (* h 1.61658) (setq p1 (getpoint “\n 输入第一点:”)) 5、禁止求值函数 (quote <表达式>) 或 ‘(<表达式>) (setq pt1 (quote (4.5 7.5))) (4.5 7.5) (setq pt1 '(4.5 7.5)) (4.5 7.5) (command “line” ‘(100 120) ‘(23 116) “”)
常用的CAD二次开发语言
![常用的CAD二次开发语言](https://img.taocdn.com/s3/m/ca6da7e804a1b0717fd5dd9d.png)
常用的CAD二次开发语言:1 AutoLISP 全名是LIST Processing Language,LISP是List Processor(表处理程序)的缩写,cad系统的第一代开发工具,是一种嵌入在AutoCAD内部的编程语言,是低版本AutoCAD的首选编程语言。
它是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上执行。
其缺点是继承了LISP语言的编程规则而导致繁多的括号。
2 ADS 全名是AutoCAD Development System,它是AutoCAD的C语言开发系统,丰富和保留了autolisp语言的功能,是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,不包含于cad内部,包含c语言的全部功能。
ADS速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理。
3 ObjectARX 崭新面向对象的开发AutoCAD应用程序的工具,以为编程语言,提供可与AutoCAD直接交互的开发环境。
可以与autolisp和ADS应用程序协同工作。
ObjectARX也没有包含在AutoCAD中,可在AutoDESK公司网站中去下载。
二次开发者可以充分利用AutoCAD的开放结构,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受AutoCAD固有命令的新命令。
ObjectARX的核心是两组关键的API,即AcDb(Auto CAD数据库)和AcEd(Auto CAD编译器),另外还有一些重要组件,如AcRX(Auto CAD实时扩展)、AcGi(Auto CAD图形接口)、AcGe(Auto CAD几何库)、ADSRX(Auto CAD开发系统实时扩展。
ObjectARX还可以按需要加载应用程序;使用ObjectARX进行应用开发还可以在同一水平上与Windows系统集成,并与其它Windows应用程序实现交互操作。
CAD二次开发技术介绍-工程
![CAD二次开发技术介绍-工程](https://img.taocdn.com/s3/m/8558d50bdc36a32d7375a417866fb84ae55cc340.png)
CAD二次开发技术介绍-工程摘要:本文对CAD技术中的二次开发所需的语言及工具介绍归纳,得出了一些有用的结论,对于了解CAD二次开发技术的发展及其如何适应具有一定的意义关键词:CAD二次开发技术;AutoLISP1.前言AutoCAD荣登全球绘图软件的龙头宝座,主要是因为它具有开放的体系结构,。
它允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求。
AutoCAD第一版于1982年11月由AutoDESK公司推出,目前被大家广泛使用的,最新版本是AutoCAD 2010,其二次开发语言及工具也在不断地涌现由于大量的应用领域提供了特有的几何问题,对于这些问题必须建立有效的算法,画出更精确的图形,这就是孕育CAD的二次开发,AutoCAD的二次开发主要涉及以下内容:(1)编写各种用户自定义函数并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。
(2)建立符合自己要求的菜单文件,一般可在AutoCAD 原菜单文件内添加自己的内容,对于AutoCAD2000版本还可增加部分菜单文件,然后经交互方式加入到系统中去。
(3)在系统的ACAD.LSP或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。
(4)通过系统对话框设置某些路径。
这些操作在程序开发成功后向其它AutoCAD系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。
2.CAD二次开发所涉及到的技术介绍2.1AutoCAD二次开发的内容和工具AutoCAD二次开发的主要目的是提高专业应用领域的工作效率,为专业绘图建立标准,并使常用的或重复的任务自动化等。
内容如下:Ø开发具有专业特点的用户图形界面Ø设计建立专业化的标准图形库Ø设计和规划专业化的系统功能和命令集AutoCAD二次开发的工具如下:Ø Auto LISP语言和Visual LISP开发环境Ø ActiveX和Visual Basic for Application (VBA)语言Ø VisualC++语言和ObjectARX开发环境ObjectARX—AutoCAD Runtime Extension 编程环境,构造对象的C++ 库。
AutoLISP语言简介
![AutoLISP语言简介](https://img.taocdn.com/s3/m/eea8138371fe910ef12df8c7.png)
1.2.2 表和点对
表—放在一对相匹配的左右括号中的一个或多个元素的有
序集合。有两种基本类型的表: 1.标准表-用于函数调用,如:(setq x 15) (* 4 6 3) … 2.引用表-用于数据处理,如:‘(3 4 7) „(“cad” 56 y)…
点对-由圆点将左右元素分隔开的表,常用于构造
1.2 AutoLISP的数据类型
整型数(INT) 实型数(REAL) 符号(SYM) 字符串(STR) 表(LIST) 文件描述符(FILE) AutoLISP的内部函数(SUBR) 选择集(PICKSET) 图元名(ENAME) 函数分页表(PAGETB)
1.2.1 原子
整型数 如:0,1,2,-25,68,3678 … 2. 实型数 如: 4.3, -2.36, 47.542, 2.5E-6, 1.8E12 … 3. 字符串 如:“ABC” “234” “BDe56” “这是字符串” … “ ” “\nPress Any Key!” 4. 符号原子 如:x1,a24,ab,B*,r-2,u_1 … 注意: ( ) . „ “ ; 这些符号不能作为符号原子!
例如:(+ 4 8 3 1)
(defun addx5 (x) (+ x 5) );end
返回:16
command:(addx5 8)
4) 5)
返回:13
6)
如果标准表是多层嵌套的,其求值结果总是从最里层的表开始,并依次向 外层求值,最后返回顶层表的结果。 若求值器读入的既不是数字、字符串、文件指针、系统内部函数、符号原 子,也不是一个有效的函数调用的表,则求值器将给出相应的出错提示。 例如:command: (satq a 15) 返回: 错误:空函数。 在任何时候按下Ctrl-C键,都将中断AutoLISP 的求值。
VisualLisp编程基础教程
![VisualLisp编程基础教程](https://img.taocdn.com/s3/m/83f16df9ad51f01dc281f1bd.png)
华南理工大学化学与化工学院方利国 lgfang@
8
2、基本运算
(6)普通数求幂 格式: (expt <底数> <幂>) 功能:求<底数>的 <幂>次方值 实例:(expt 3 3)结果为27 (expt 5 2)结果为25 (expt 2 4)结果为16 (expt 2 1.3)结果为 2.46229
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 17
(6)赋值函数SETQ 格式:(setq <变量1> <表达式1> [<变量2> <表达式 2>]…..) 功能:将表达式的值赋给变量,变量和表达式需成对出现 实例: (setq a 10) 结果 a=10 (setq s “it” ) 结果 s=“it” (setq b 123 c 10 d 45) 结果 b=123 c=10 d=45 (setq t (+ 34 45)) 结果 t=79 (setq P1 ' ( 34 45)) 结果是P1点x轴的坐标为34,y轴的坐标为45, 其中在表(34 45)前面加了单引号“' ”号,是为了禁止对表(34 45)的求值,需要注意的是所有的单引号和双引号必须在英文状态 下输入,否则就会出现错误。如果不用“'”,也可以用quote表示, 例如用下面的小程序就可以绘制一条从(130,140)到(200,400) 的直线。 (setq p1 '(130 140)) //确定点P1的坐标 (setq p2 '(200 400)) //确定点P2的坐标 (command “line” p1 p2 “”) //绘制从P1点到P2点的直线是AutoLISP程序 中应用程度较高的一个函数,希望读者引起注意
AutoLisp(1)
![AutoLisp(1)](https://img.taocdn.com/s3/m/fe02f6277375a417866f8f3b.png)
(4)校核功能
(5)有限元分析功能 (6)数据库管理功能
3. 开发要求
(1)结果正确
(2)操作方便
(3)友好的人机交互界面
二次开发的基本思路:
以交互式图形系统为主要支撑, 以图形系统的用户语言为进程的控制者,
以高级语言为系统连接及数据库转换的枢纽,
开发一个集参数化设计零件、交互式编辑图形、数 据的系统管理、零件的有限元分析为一体的机械 CAD软件系统。
即对基础软件的某些功能作一些修改和补充使某个软件为特定的用户所应用二次开发的特点1提高与继承性2专业性3相对简单性4实用性712机械cad软件的二次开发二次开发的内容1交互式系统的完善2交互式系统数据库管理系统有限元分析系统间的连接和相互调用3参数化设计模块的设计4界面设计
第7章 CAD系统的 二次开发技术
Hale Waihona Puke 7.3.4 AutoLISP基本函数
计算函数 关系运算函数 逻辑运算函数 转换运算函数 字符串处理函数 图形处理函数 表处理函数 交互式输入/输出函数 条件函数 循环函数 文件处理函数 赋值函数 禁止求值函数 command函数 defun自定义函数
1. 计算函数
(+ 数 数 …) (- 数 数 …) 返回所有数的和。(整型数,实型数均可) 返回第一个数与后面所有数的差。
7.3 Visual LISP
7.3.1 Lisp, AutoLISP与Visual LISP简介
LISP (List Processing Language,表处理解释语言)诞生 于20世纪50年代末期,是人工智能领域广泛使用的程序设 计语言。 AutoLISP 是专门用于对AutoCAD进行定制、二次开发的 非结构化程序设计语言,它嵌套于AutoCAD内部,不仅具 有一般高级语言的基本结构与功能,而且具有强大的图形 处理功能。 Visual LISP 它为使用AutoLISP语言进行程序开发提供一 个集成开发环境(IDE, Integrated Development Environment),用户可方便地编写程序代码,调试程序。
数字测图原理与应用——Lisp语言的学习和使用
![数字测图原理与应用——Lisp语言的学习和使用](https://img.taocdn.com/s3/m/418de823bcd126fff7050b06.png)
数字测图原理与应用——Lisp语言的学习和使用主要内容AutoLisp语言介绍AutoLisp语言的基本知识赋值与数值计算函数自定义函数程序分支与循环函数逻辑运算函数字符串与类型转换函数表处理函数交互数据输入函数及相关的计算函数与文件有关的函数实体和设备访问类函数其它函数一、AutoLisp语言介绍LISP(List Processing)是一种计算机的表处理语言。
LISP语言是人工智能领域中广泛应用的一种程序语言。
AutoLISP语言是一种运行在AutoCAD环境下的LISP编程语言,或称为AutoCAD的一种嵌入式语言。
它采用了与CommandLISP(一种通用的LISP语言版本)相近的语法及习惯约定,并吸收了LISP语言的主要函数,同时增加了针对AutoCAD特点的许多功能,如:可以把AutoLISP和AutoCAD的绘图命令透明地结合起来,使设计和绘图完全融为一体。
利用AutoLISP语言编程可以实现对AutoCAD当前图形数据库进行直接访问和修改。
在LISP语言中,最基本的数据类型是符号表达式。
LISP语言的特点是程序和数据都采用符号表达式的形式,即一个LISP程序可以把另一个LISP程序作为它的数据进行处理。
因此使用LISP语言编程十分灵活,看起来是一个一个的函数调用。
支持递归定义也是Auto LISP语言的重要特性。
AutoLISP语言是提供给用户的主要二次开发工具之一。
用AutoLISP语言编写应用程序,可以为AutoCAD增加新的命令或修改AutoCAD,以适应用户的特殊需要。
AutoCAD软件的开发者——AutoDesk公司许诺,将保证今后AutoCAD 软件对AutoLISP语言的支持。
掌握使用和编制AutoLISP应用程序的方法和技术将大大提高用户的工作效率和二次开发水平,增强AutoCAD的灵活性,并将得到长期、稳定的技术支持。
二、AutoLISP语言的基本知识2.1 AutoLISP语言的特性AutoLISP语言是一种解释型语言,它的特点如下:1.解释型语言编程语言有两种基本类型:解释型和编译型。
AutoLisp程序设计
![AutoLisp程序设计](https://img.taocdn.com/s3/m/78a52ad033d4b14e85246835.png)
自定义函数(2)
3.定义AutoCAD命令 用defun C:函数可以定义AutoCAD命令,格 式如下:
(defun C:AutoCAD命令名(/局部变量表)表达式…… 如定义通过矩形的对角点画矩形的命令,源代码如 下: ( defun C:rect(/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”) )
Visual Lisp简介(2)
AutoLISP程序由注释和表达式组成。与其他 的高级语言不同的是,它的注释用;来表示。 而表达式用的是前缀表示法,即把运算符放在 表的第一个元素位置,后面才是其他参数。表 达式一般是通过调用函数来执行。
变量(1)
1.符号:用来作为变量、函数的名字。符号可 包含数据和字符((、)、. 、‘、 “、;除外)。 符号的长度最好不要超过6个字符。 2.变量的数据类型:不需对变量事先进行类型 说明,变量被赋值时,值的类型就是变量的类 型。在程序运行过程中,同一变量在不同的时 刻可以赋予不同类型的值。 3.赋值: (setq 变量1 值1 [变量2 值2 ……])
Lisp语言是人工智能领域中广泛采用的一种 程序设计语言。 AutoLisp 程序和autoCAD的绘图命令可以 透明的结合起来,使设计和绘图完全融为一 体。还可以实现对AutoCAD图形数据 直接访 问、修改,为实现对图形的实时修改、交互 设计、参数化设计以及在绘图领域中应用人 工智能提供了必要的条件。是一种人工智能 绘图语言。
AutoLISP(1)概述、基本函数、表处理函数、绘图函数
![AutoLISP(1)概述、基本函数、表处理函数、绘图函数](https://img.taocdn.com/s3/m/e8f82ac4aa00b52acfc7ca3e.png)
石家庄铁道学院工业设计系
计 算 机 绘 图
Auto LISP语言的特点 语言的特点
AutoLISP语言是一种嵌入在AntoCAD内部的LISP 编程语言,具有common LISP的一些特性,但它 针对AutoCAD又增加了许多功能: 把AutoLISP语言和AutoCAD绘图命令结合起来, 使设计和绘图完全融为一体。 实现对AutoCAD当前图形数据库的直接访问和 修改,为屏幕图形的实时修改,实现交互设计 以及在绘图领域中应用人工智能提供了方便。
AutoLISP表达式 表达式
如: _$ (* 2 (+ 5 10 ((_> )) 30 常见错误是忽略了文本字符串中的双引号(")。 在这种情况下,右括号被解释为字符串的一部分, 而不会被用来和开括号配对。要改正此错误,可 按ESC键取消该函数,然后重新输入正确的表 达式。
石家庄铁道学院工业设计系
计 算 机 绘 图
四、符号和变量
符号是一些ASCII字符,可以用来表示函数操 作符、内存变量等。 字符串不是符号。 组成符号的字符可以是字母、数字等ASCII字 符,但以下一些字符不能在符号中使用: 圆括号()、句点 . 、单引号‘、双引号 ”、 分号 ;,这些字符在AutoLISP中另有特殊含义。
???计算机绘图计算机绘图石家庄铁道学院工业设计系autolisp程序设计计算机绘图计算机绘图石家庄铁道学院工业设计系第一章autolisp语言的特点计算机绘图计算机绘图石家庄铁道学院工业设计系概述计算机绘图计算机绘图石家庄铁道学院工业设计系?lisp
计 算 机 绘 图
AutoLISP程序设计
石家庄铁道学院工业设计系
石家庄铁道学院工业设计系
计 算 机 绘 图
AutoLISP从入门到精通初级教程(新手必备)
![AutoLISP从入门到精通初级教程(新手必备)](https://img.taocdn.com/s3/m/570629efe109581b6bd97f19227916888486b916.png)
AutoLISPxx单元一: AutoLISP主角登场一. AutoLISP 是何方神圣 ?1、AutoLISP是 AutoCAD的最正确拍檔 !2、AutoLISP内含于 AutoCAD软件内 ,不用此外花费买 !3、AutoLISP是加强 AutoCAD最好、最直接的『程序语言』!4、AutoLISP易学、易用 ,即便不会程序设计的 AutoCAD使用者 ,都能在最短的时间内 ,写出令人吃惊、赞美的功能 !若说 AutoLISP的出现 ,是替 AutoCAD 创建一片天的『最大元勋』 ,实不为过一点也不夸张 !5、AutoLISP希望您去学习它、改良它、发挥它、享受它 .真的 ! 它的威力、魅力无量 !二. AutoLISP 程序语言的特质解析 :学习 AutoLISP是特别简单的 ,对初学者而言 ,即便没有学习过任何的程序语言 , 都能很快的上手 ,写出出色美丽的 AutoLISP程序 !语法简单:不用特别的变量宣布 ,特别富裕弹性 ,比起其他的程序语言 ,它的语法可说是特别简单而有其独到的风格 !功能函数强盛:除一般性的功能函数外,又拥有为数许多控制配合AutoCAD 的特别函数 ,再加上 AutoLISP可直接呼喊履行所有 AutoCAD的指令 ,以及掌握运用所有的 AutoCAD系统变量 ,功能之强盛令人惊喜不已 !撰写的环境不挑剔:只假如一般的文书编写软件都合用 ! 如:Windows 的记事本、 P2、P3、D3、书中仙、汉书、 EDIT....等直译式程序:不用再作编译 ,『即写即测、即测即用』 ,立刻能够在 AutoCAD 中响应成效 ,立刻就有成就感 !横跨各作业平台:悠闲自得 ,固然 AutoCAD有 DOS、Windows 版本之分但是AutoLISP却可在不改写的原貌下 ,加载与履行 !三.撰写 AutoLISP 的动机 ?1、欲加强AutoCAD 原有指令时 .2、欲创建更实用的AutoCAD 新指令 .3、欲简化繁琐的环境设定或画图步骤时.4、欲办理参数式画图时 .5、欲做图面资料读文件、写文件.6、欲做AutoCAD 简报展现时 .7、欲达到真实灵巧掌控AutoCAD 时.8、欲提高自己跨上AutoCAD 能手列车时 .四.AutoLISP 的效益评估 ?1.对企业负责人或设计主管而言 :A. 或许某职工或干部花了 20 个小时撰写一个 AutoLISP程序 ,表面上 ,这快要三天的时间 ,他连一张图都没有画 ,甚至可能偶有发呆、沈思 ,若此程序一天能够替企业画图部门节俭 1 小时画图时间 ,那算一算 ,只需 20 天就抵销开发成本 ,而 20 天此后都是赚的 ,『用的愈久 ,省的愈多』!B. 若职工皆有此动力 ,在不影响正常工作 ,『鼓舞』都来不及 ,那有『压迫』的道理 ,甚至还要差遣优异人员出去受训 ,学习更好的设计技巧与创意呢?!C. 千万不要由于您的不懂或压迫 ,SHOW您的威望与 POWER,这样 ,不只对职工造成打击 ,甚至您可能成为阻挡了企业计算机化进步的罪魁祸首D. 自然 ,若要撰写的程序好多 ,内部设计人员的程序功力距离太远 ,达成需求的时间反而变得遥遥无期 ,那倒不如求援于市道上已有的有关 AutoCAD 支持软件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AutoLISP和Visual LISP
精品课件
1.1 关于LISP
LISP是人工智能领域中广泛采用的一种程序设计语言。主要用于人工 智能、机器人、专家系统、博奕、定理证明等领域。
LISP也被称为符号式语言,因为它处理的对象是符号表达式。LISP语 言的程序和数据都是以符号表达式的形式来表示,因此,一个LISP程序可以 把另一个LISP程序作为它的数据来处理。
Visual LISP是Autodesk公司在1997年14版本推出的。它是 为加速AutoLISP程序开发而设计的软件开发工具,是一个完整 的集成开发环境。 Visual LISP包括文本编辑器、格式编排器 、语法检查器、源代码调试器、检验和监视工具、文件编译器 、工程管理系统、上下文相关帮助与自动匹配功能和智能化控 制台等。
精品课件
ห้องสมุดไป่ตู้
1.2 关于AutoLISP
AutoLISP是为二次开发AutoCAD而专门设计的编程语言,它起源于LISP 语言,嵌入在AutoCAD的内部,是LISP语言和AutoCAD有机结合的产物。
AutoLISP 采 用 了 和 CommonLISP 最 相 近 的 语 法 和 习 惯 约 定 , 具 有 CommonLISP的特性,但又针对AutoCAD增加了许多功能。它既有LISP语言人工 智能的特性,又具有AutoCAD强大的图形编辑功能的特点。它可以把AutoLISP 程序和AutoCAD的绘图命令透明地结合起来,使设计和绘图完全融为一体,还 可以实现对AutoCAD图形数据库的直接访问和修改。
在VLISP集成环境下可以便捷、高效地开发AutoLISP程序 ,可以经过编译得到运行效率更高、代码更加紧凑、源代码受 到保护的应用程序。
Visual LISP是新一代AutoLISP语言,它对AutoLISP语言进 行 了 扩 展 , 可 以 通 过 Microsoft ActiveX Automation 接 口 与 AutoCAD对象交互,可以通过反应器函数扩展AutoLISP响应事件 的能力。
LISP语言语法简单,编写程序便捷、灵活,数据类型丰富。利用LISP 语言可以很容易地定义或调用新的函数。这就是Autodesk公司早在1985年的 2.1版本就引用了LISP语言的宏操作,在1986年的2.5版本就推出了比较完整 的AutoLISP语言的原因。
LISP 在 它 几 十 年 的 发 展 过 程 中 产 生 了 多 种 版 本 , 如 MacLISP 、 InterLISP、ZetaLISP、和CommonLISP等。其中CommonLISP是近几年美国的 几所大学(如麻省理工、斯坦福等)和工业界(如Bell实验室、DEC公司、 HP公司等)的人工智能研究人员协同推出的,它概括了MacLISP、InterLISP 、ZetaLISP等版本的特点,因而功能较强且拥有其它版本的一些优点,是目 前LISP语言较完整的版本。
如果使用Visual LISP对AutoLISP扩展功能的部份,必须 调 用 vl-load-com 函 数 , 或 者 将 调 用 该 函 数 的 表 达 式 写 在 acad2006doc.lsp 文件内。
精品课件
Visual LISP用户界面良好,用过Microsoft软件的用户只需 很短的时间即可掌握它。
Visual LISP兼容以前的AutoLISP程序。在Visual LISP集成 环境下开发AutoLISP程序,就不再象以前那样编辑程序时,用 其它系统的文本编辑程序编写程序代码;调试程序时,需要用 户自己决定在程序的什么位置插入打印语句,以便查看变量的 内容;在程序运行正常后,再精品将课件插入的调试代码删除或注释掉
利用AutoLISP语言可以进行各种工程分析计算、自动绘制复杂的图形,还 可以定义新的AutoCAD命令、驱动对话框、控制菜单。为AutoCAD扩充具有一 定智能化、参数化的功能,可以使设计人员的主要精力用于产品的构思和创 新设计上,实现真正意义上的计算机辅助设计。
精品课件
1.3 关于Visual LISP