第1章AutoLISP和Visual LISP

合集下载

VISUAL LISP的概念、功能和基本界面

VISUAL LISP的概念、功能和基本界面

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

一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教程学习教程
在Methods supported (支持的方法)部份列出了可以对过 AutoCAD应用程序施加Eval、GetAcadState、GetInterface Object等 操作。
第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编程基础教程
2018/10/19 华南理工大学化学与化工学院方利国 lgfang@ 15
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

在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指南
第三章 使用 Visual LISP 调试工具 ............................................ 7 3.1 局部变量和全局变量的区别 ............................................. 7 3.1.1 在程序中使用局部变量 ........................................... 7 3.1.2 检查 gp:getPointInput 函数 ..................................... 8 3.2 使用关联表来捆绑数据 ................................................. 9 3.2.1 使用关联表 .................................................... 10 3.2.2 将 gp:getPointInput 的返回值保存到变量中 ...................... 10 3.3 检查程序变量 ........................................................ 11 3.4 修改程序代码 ........................................................ 12 3.5 给程序代码加注释 .................................................... 14 3.6 设置断点并进行更多监视 .............................................. 15 3.6.1 使用“调试”工具栏 ............................................ 15 3.6.2 单步执行代码 .................................................. 17 3.6.3 单步执行程序时监视变量 ........................................ 17 3.6.4 跳出函数 gp:getPointInput 并进入 C:Gpmain ..................... 18 3.7 第二课回顾 .......................................................... 19

CAD二次开发Visual_LISP指南

CAD二次开发Visual_LISP指南
第二章 设计和开始编程....................................................... 2 2.1 定义整个程序的目标 ................................................... 2 2.2 Visual LISP 入门 ..................................................... 2 2.2.1 查看 Visual LISP 等待控制从 AutoCAD 返回的步骤 ................. 2 2.2.2 使用 Visual LISP 开始编写应用程序的步骤 ........................ 3 2.3 Visual LISP 代码格式设置 ............................................. 4 2.4 分析代码 ............................................................. 4 2.5 填补程序 ............................................................. 4 2.5.1 给应用程序加上简单空函数的步骤 ................................. 4 2.6 让 Visual LISP 检查您的代码 .......................................... 5 2.7 在 Visual LISP 中运行程序 ............................................ 6 2.8 第一课回顾 ........................................................... 6

visual LISP语言及编程资料

visual LISP语言及编程资料

(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) “”)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章
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
相关文档
最新文档