您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 1VisualLISP编程环境.
CAD程序设计方法教师:李敬敏邮箱:hjljm@163.com生活中总有想不开的一瞬间,尤其在一些你知道自己还有能力可以改进或更好,但却找不到方向的时候。对自己的信任常会出现,常会消失,只要你不要随便否定它就好。不论你的假想敌,或者这个世界要求你和谁比较,你在尽力发光发热的一瞬间,其实你就是你自己而已。加油!1.为什么选择一门课?相信自己,超越自己用专业的水平要求自己2.如何学好一门课?自主版权的CAD软件或在AutoCAD授权的二次开发CAD软件特点:版本类型较多,功能强,兼容性不是很好国外的商品化的CAD软件特点:功能齐全,性能优良,并完成了商品化和工程化的需求,一般都是通用化软件3.本门课是什么样的课程?通用CAD软件的二次开发Knowledge&Skill1)大量的实践:10上机+22授课+课下学习3.本门课是什么样的课程?2)大量的作业:4上机作业+1实验报告3)考试形式:开卷成绩=卷面成绩+平时作业+实验报告基于AutoCAD的二次开发方法AutoLisp与VisualLispLISP是广为应用的人工智能语言之一。AutoLisp语言是嵌入在AutoCAD内部的LISP编程语言,目的是使用户充分利用AutoCAD进行二次开发VisualLISP在AutoLISP基础上增加了对话框和窗口界面的库,为开发者提供了一个完整的集成开发环境(IDE),具有代码的编辑、程序调试、独立应用程序的发布等功能。基于AutoCAD的二次开发方法VBA(VisualbasicforApplication)VBA除了具有VB的基本语方特征,VBA和AutoCAD运行于同一处理空间,是内嵌在AutoCAD内部的,可以直接利用AutoCAD的图形处理资源VisualBasic语言的代码阅读起来非常容易,但由于VBA不能向AutoCAD注册命令,调试较困难,但速度快,功能更强大适合熟悉VB而不了解LISP开发者选择基于AutoCAD的二次开发方法ADS(AutoCADDevelopmentSystem)ADS是利用C语言编译器,将应用程序编译成可执行的文件在AutoCAD环境下运行,这种可以在AutoCAD环境中直接运行的可执行文件叫做ADS应用程序。优点:(1)具备错综复杂的大规模处理能力;(2)编译成机器代码后执行速度快;(3)编译时可以检查出程序设计语言的逻辑错误;(4)程序源代码的可读性好于AutoLISP不足:(1)C语言比LISP难于掌握和熟练应用(2)源代码复杂,隐藏错误会导致AUTOCAD的崩溃基于AutoCAD的二次开发方法objectARX(AutoCADRuntimeextension)以C++为基础的面向对象开发环境和应用程序接口。用其开发的AUTOCAD软件具有模块性好,独立性强,连接简单,使用方便,代码可重性强等特点,可实现复杂功能特点:能够访问很多的AutoCAD底层工具;唯一一种能够确保代码安全(不被别人阅读或非法复制)的开发工具ARX可以向AutoCAD注册自己的命令,用户运行该程序时无需了解关于AutoCAD更多的知识;基于AutoCAD的二次开发方法.net目前支持.net开发方法的软件版本AutoCAD2006及其以后的版本。不管开发人员熟悉的语言是VisualBasic.net还是VisualC#.net,进行AutoCAD二次开发的基本方法和步骤是一样的。基于AutoCAD的二次开发方法AutoCAD五种开发工具性能特点比较AutoCAD开发方法开发语言对AutoCAD控制能力程序可读性使用难易度系统着重点AutoLisp/VisualLispAutoLisp/VisualLisp一般较差易交互性VB/VBAVisualBasic一般好较易易用性ADSC语言较深入较好较难综合性Object-ARXC++最深入较好难智能性.NETVB.net/VC#.netAutoCAD2006以后的版本完全支持应用VisualLISP水平初级---简单计算和参数绘图,命令自动执行,选择集的使用。中级---自建图形库,设计工具,自定义数据结构,图形数据库的访问。高级---能进行多层次、多模块的复杂应用系统的设计,能设计过程模拟。二、AutoLISP程序结构及特性1、程序实例1画圆二、AutoLISP程序结构及特性1、程序实例2求圆周长和面积的函数二、AutoLISP程序结构及特性1、程序实例3求两数中最大值程序二、AutoLISP程序结构及特性1、程序实例二、AutoLISP程序结构及特性2、AutoLISP语言的结构特点1)AutoLISP程序由许多子表组成的一个大表。表的结构:以圆括号组成表达式,左右括号一定要配对。表的元素:可以是字母,数字,符号,也可以是表,甚至可以是空表的元素是有序的:(ABC)和(BCA)不同表中的元素用空格分隔除字符串外,字母可随意大小写二、AutoLISP程序结构及特性2、AutoLISP语言的结构2)“前缀表示法”----把运算符放在参数表的第一个元素的位置,后面为其参数例如:表达式X=(A+B)×C,在AutoLISP程序中表示为:(setqX(*(+AB)C))3)注释以分号“;”开始到行末的所有内容,既不执行也不解释。编写AutoLISP程序时,应添加必要的注释,以说明程序的功能、编写时间、作者、某些程序代码的具体含义等信息,这些信息将有助于程序的编写与修改。二、AutoLISP程序结构及特性2、AutoLISP语言的结构此外,AutoLISP调用AutoCAD命令,编程顺序和键入绘图过程对应(command“pline”P1“w”0.4“”p2p3“”)二、AutoLISP程序结构及特性A.语法简单,易学易用B.功能函数强大C.撰写的环境不挑剃D.直译式程序,『即写即测、即测即用』E.横跨AutoCAD各作业平台,悠然自得3、AutoLISP程序特性3.1启动VisualLISP1)在AutoCAD的命令行输入:VLISP或VLIDE2)AutoCAD中的菜单/Tools/AutoLISP/VisualLISPEditor三、VisualLISP编程环境3.2VisualLISP编程界面三、VisualLISP编程环境3.3在VisualLISP编程环境下编辑并运行程序1)进入AutoCAD,进入VLISP编程环境2)下拉菜单-File-Newfile创建一个新文件3)在文本编辑区键入以下程序三、VisualLISP编程环境3.3在VisualLISP编程环境下编辑并运行程序4)保存文件,并命名5)加载当前编辑窗口中的文件入内存6)运行应用程序①在VLISP控制台窗口输入(box300240‘(100100)1.0)并回车——Window-ActiveAutoCAD,切换到AutoCAD图形②在AutoCAD图形窗口命令行输入并回车,查看图形结果三、VisualLISP编程环境6)运行应用程序三、VisualLISP编程环境3.3在VisualLISP编程环境下编辑并运行程序3.4VisualLISP环境的退出可以点文件/退出,或直接关闭按钮。声明:关闭并不是在程序中卸载了VisualLISP,而只是关闭了VisualLISP窗口。三、VisualLISP编程环境3.5应用VisualLISP调试程序3.5.1检查括号匹配1)左右括号不配对:malformedlist(残缺的表),或extrarightparen(多余的右括号)2)括号匹配功能:将光标移到要检查的起始括号位置上,按下相关的快捷键:Ctrl+]:向程序前方匹配括号Ctrl+[:向程序后方匹配括号三、VisualLISP编程环境3.5应用VisualLISP调试程序3.5.2用语法分色检查拼写错误三、VisualLISP编程环境3.5应用VisualLISP调试程序3.5.3使用检查命令检查其他语法错误1)检查全部的程序行:菜单→Tools→CheckTextinEditor(检查编辑器中的文字)2)检查选定的若干行程序片断:菜单→Tools→CheckSelection(检查编辑器中选定的程序)三、VisualLISP编程环境3.5、应用VisualLISP调试程序3.5.4通过断点来检查与变量有关的错误如果希望在程序运行到某处时检查变量的当前值,可在程序中的该处加入“断点”,中断后可用监视器观察变量,也可一个表达式一个表达式的求值,发现出错的地方。(setqa(angle‘(2040)‘(60100)))(princa)(setqbp(getstring))(setqa(angle‘(40100)‘(60100)))(princa)三、VisualLISP编程环境3.5应用VisualLISP调试程序3.5.5编程中要注意的要点1)不要和计算机较劲2)计算机是非常公正的3)相同的输入会得到相同的结果4)变量作用域的定义5)注意不要混淆度和弧度6)对相关的系统变量进行检查7)调试通则三、VisualLISP编程环境AutoLISP数据类型A.整型数B.实型数C.字符串D.符号(或变量)E.表F.文件描述符G.AutoCAD选择集H.AutoCAD图元名I.VLA对象四、AutoLISP基本要素1.整型数整型数是由0,1,2,…,9,+或-这12个字符组成的数字,不含小数点。例如:+230、450、-180等均为有效的整数。四、AutoLISP基本要素2.实型数实型数是带有小数点的数,它以双精度浮点数格式保存,提供了至少14位的精度。例如:13.2、0.045均为有效的AutoLISP实型数3.字符串字符串是由一对双引号””括起来的字符序列。四、AutoLISP基本要素AutoLISP对字符串有如下约定:1)字符串中,同一字母的大小写认为是不同的字体,空格也是一个有意义的字符。2)字符串的长度--指位于双引号之间的字符个数.字符串可以为空,则长度为0,最大长度为100,如果超过上限,后面无效。“string1”和“\nEnterfirstpoint:”都是有效的字符串。4.符号(变量)作用:用于存储数据;四、AutoLISP基本要素命名:由任何可定字符以任意顺序组成如:a12、#b34、cde、f_78都是合法符号注意:2)不能包含下面6个字符:((左括号))(右括号)·(句号)′(单引号)″(双引号);(分号)1)不能全为数字:123、4564.符号(变量)四、AutoLISP基本要素3)变量名称不能包含空格,变量名称没有大小写字母之分如ABC、aBC、abc等都是相同的4)变量的数据类型:变量的类型即为被赋予值的类型,同时程序运行过程中,变量的类型是可变的5.表1)所谓表:由圆括号括起来,由空格分隔的若干元素形成的有序集合;2)表中的元素:可以是A整型,实型、字符串等数据类型;B各种函数(+24);C表(A(BC)D);四、AutoLISP基本要素3)表的类型:分为两种:①引用表:用来存储数据的②标准表:用于函数调用5.表3)表的类型:①引用表:用来存储数据的四、AutoLISP基本要素重要的应用:图中点坐标:二维点可用二维表(XY)表示三维点可用三维表(XYZ)表示这本书中会讲到工程数据库也是引用表的典型应用这种表第一个元素不是函数,不能作为函数调用,起数据存储作用(1.01.00.0)、(“this”“that”“theother”)和(1“ONE”)都是有效的引用表。3)表的类型:②标准表:相当于一个求值表达式,是AutoLISP程序基本的结构形式表中的元素:3元素setq是系统内部定义的赋值函数元素m为变量,元素2为整数,均为setq的参数四、AutoLISP基本要素第一个元素必须是系统内部函数或用户定义函数,其他元素是该函数参数5.表(setqm2)5.表4)表中元素有序的:(ABC)和(BCA)不同,为便于对表中元素进行存取,每个元素有序号,第一个为0四、AutoLISP基本要素5)
本文标题:1VisualLISP编程环境.
链接地址:https://www.777doc.com/doc-3024826 .html