AutoLISP基础入门案例-很受用
单元一:AutLIP主角潇洒登场 一.utoLISP 是何方神圣? 1. toLSP是AutoAD的最佳拍檔! 2. toLP内含于AutoCAD软件内,不用另外花钱买! 3. AtLISP是强化tCD最好、最直接的程序语言! 4. AoLIP易学、易用,即使不会程序设计的AuoC使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能! 5. 若说utoISP的出现,是替AutoCAD创造一片天的最大功臣,实不为过一点也不夸张!6. AtoLIS希望您去学习它、改善它、发挥它、享受它真的!它的威力、魅力无穷! 二.AutLISP 程序语言的特质分析:学习uoLIP是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写出精彩漂亮的AuSP程序!语法简单不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格!功能函数强大除一般性的功能函数外,又拥有为数不少控制配合ACA的特殊函数,再加上AutoSP可直接呼叫执行所有uto的指令,以及掌握运用所有的AtCAD系统变量,功能之强大令人欣喜不已!撰写的环境不挑剔只要是一般的文书编辑软件都适用! 如:Wndows的记事本、P2、PE3、DW3、书中仙、汉书、EIT.。等直译式程序不用再作编译,即写即测、即测即用,马上可以在oCD中响应效果,马上就有成就感!横跨各作业平台悠然自得,虽然AtoCA有DOS、Windows版本之分但是AuoLIP却可在不改写的原貌下,加载与执行!三撰写 utLIP 的动机?1. 欲强化AutoCAD 原有指令时. 2. 欲创造更有用的 AuoAD 新指令.3. 欲简化繁琐的环境设定或绘图步骤时. 4. 欲处理参数式绘图时5. 欲做图面资料读文件、写文件. 6. 欲做 AutoCAD 简报展示时。7. 欲达到真正灵活掌控 AutoCAD时。8. 欲提升自己跨上 AtCAD 高手列车时。 四.AutLIP 的效益评估?1。对公司负责人或设计主管而言:A也许某员工或干部花了0个小时撰写一个uoS程序,表面上,这将近三天的时间,他连一张图都没有画,甚至可能偶有发呆、沈思,若此程序一天可以替公司绘图部门节省1小时绘图时间,那算一算,只要0天就抵销开发成本,而2天以后都是赚的,用的愈久,省的愈多!B。若员工皆有此动力,在不影响正常工作,鼓励都来不及,那有压抑的道理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢?!C.千万不要因为您的不懂或压抑,SHO您的权威与POWR,如此,不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首D。当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥无期,那倒不如求助于市面上已有的相关 AoCA 支持软件。2. 对设计人员而言:A.得到一笔提升绩效奖金呢? 当然,无形中,AtoCAD 高手的封号也将功力又往前迈出了一大步,对个人的成长帮助匪浅,幸运的话,搞不好还可以黄袍加身,不亦乐乎!!!B半桶水、响叮当,千万不要因为会写 AutoISP 程序而自傲、孤僻、嚣张起来,功力的增长,只是让您有更多服务他人、服务公司的机会,若自恃过重,宁可不要!Ato 程序功力的累进,是无远弗届的,千万不要孤芳自赏,人外有人,天外有天,也许您觉得是宝贝加三级的程序,只是其它设计师基本程序中的一部份罢了!D。既然 AuoISP 是AtAD 的最大功臣,当然不会轻易被舍弃,如此,您的学习,保证不会白费!E.精益求精、虚心求教、用心学习、观摩、决心成为高手3对程序本身而言:少少的几行,却可能有大大满意的时候!!B充份掌握了控制、创造 oCAD 的尚方宝剑,让您在toCD 的设计运作中得心应手,享受无比的快乐与成就感!五。如何有效的学习 AtoLIP ?1. 先由小程序着手,认识utoLISP语法规定! 2. 浏览所有的AuoLIP功能函数,重要的功能函数要熟记脑海,俗语说的好一回生,二回熟,除非您不用心,否则没有学不好的道理!3. 要懂得偷懒:不要认为在绘图的过程中,繁琐的步骤是合理的,困难的绘图过程是必须忍耐的,试着用AuLISP解决看看! 4. 多观摩别人的程序设计,吸取精华,像海棉一样>吸、吸、吸! 5. 动手写程序比用眼睛看程序,更能够领略深记脑海!6. 随时随地整理您的程序,并加以批注,以免因时间的飞逝,当时用心的成果也烟消云散,忘的一乾二净!! 7. 决心是学好 utoLISP 最重要的关键! 8. 期许自己,要由操作者变成创造者! 单元二:AutLISP的关键、基本结构及语法一、学好 uoLSP 的关键、基本结构与语法:1.AutoLSP程序语言的特质 语法简单功能函数强大C。撰写的环境不挑剃D。直译式程序,即写即测、即测即用E横跨 AuCD各作业平台,悠然自得 (注:以上五点,读者可以参考上一章的剖析!!)2。学好 AoLIS 的关键:充份掌握语法结构&功能函数的搭配!3.重要的 LIP 的基本语法结构规则: 以括号组成表达式,、相对称左右括号数一定要成双成对规则2: 表达式型态:(操作数 运算子 运算子 运算子).1 操作数包括功能函数自定函式1. 运算子(自变量)包括:.整数(Itege) 如 8,-7,500,9 。B。实数(Rel) 如 8.,7。46.。.C字符串(Srin) 如 "AuoCD,”13”D.串行(st) 如("” ”b" ”c"),( y)E。像素名称代码如enity name:600022F。档案代码如 <>.。.G。选择群集代码如Slcti st:>规则3:表达式中的运算子,可以是另一表达式或子程序规则4: 多重的括号表达式,运算的先后顺序是由内而外、由左而右规则: 以档案型态存在的AtoLISP 程序(ASCII 档案),其扩展名必须是ls规则6: 撰写的环境,只要是一般的文书编辑软件、记事本,可编辑 ASII 档案者都适用规则7:以 du 功能函数定义新的指令或新的功能函式规则8:新定义的功能函式名称,若为C:函式名,则此函式可为 AutoCA新指令规则: 加载toLISP 程序的作法:= 指令:后直接键入 (lod ”P主檔名”)规则10: AutoLISP 程序中,在分号 ;后的内容均为批注,程序不处理,适时的增加批注,将使程序更具可看性、学习性及完整性规则: uLISP最常用的变量型态是整数、实数、字符串、点串行四种,变量的型态依据设定值而自动定义,变量会一直储存该值,直到被重新设定值或绘图结束自动消失规则2:以 setq 功能函数设定变量值 (setq 变量名称 设定值)规则13:欲在 AuoCAD的环境中,查看一变量值,指令:下键入!变量名即可规则1:以(defunC:函式名(自变量 变数) 。.。)程序中,程序中的变量若在/右边变量内,则称为区域变量,否则为整体变量二、学好 AutoLISP 的关键:充份掌握语法结构&功能函数的搭配!! 其时这个关键亦是学习其它程序语言的关键. · 语法结构AutISP的语法结构规定的并不多,变量不用事先定义及宣告,读者可熟记下一单元有关重要的 AutoLIP基本语法结构,十四条设计上要求的规则· 功能函数AutoS 之所以能功能如此强大,都有赖功能函数,其成员共约00个: 1. 一般性函数10个 2. ADS定义特殊函数9个 3. 配合 DCL 交谈框设计函数 2个各功能函数在使用上要求配合的运算子(自变量)型态,均有其规定,当然,您可不能乱给!例如: 指令:(+ 1 2 ”ABC”)传回:error :adgumtpe(自变量型态错误)因为函数不接受字符串,而ac 正是字符串指令:(ro ”bc") 传回:error : ad argut type (自变量型态错误)因为rtos函数只接受实数转字符串详细内容可参考下一章快速浏览 AutoLISP 功能函数至于各功能函数详细的语法与实例应用,读者请参阅本书第三篇AutSP功能函数详解三、重要的 AuoISP 的基本语法结构:规则1:以括号组成表达式,左右括号数一定要成双成对、相对称请依序在指令:列 (或指令:) 后面直接键入以下表达式指令:(+ 1 2 3 5) 传回加总和15指令:(4.58. 35) 传回最大值5指令:(mncmd "p=*")显示拉下P1指令:(geint ”Enter ea:”)传回nte Rea:要求输入一个实数指令:(seq a(* 12.5 4) 传回相乘值 50,同时设定给变量指令:! 回应50 (注:! 号可用来查询变数值)指令:(min a 63) 响应最小值 (因为变量值a代表5)错误的范例:指令:(stq a ( .5 4)1>传回1表示少了一个括号1>) 此时,只要再补上一个 ) 即可指令:(et (* 15 42 传回2表示少了二个括号2 )) 此时,只要再补上二个 ) 即可规则:表达式型态 (操作数 运算子 运算子 运算子。)或 (函数(式) 自变量 自变量 自变量 .。)或(函数(式) 元素 元素 元素 。.)1.1操作数包括功能函数&自定函式功能函数:如上练习中的+、max、mnucd、getit、 set、*、in,详细内容可参考下一章快速浏览 toLIP 功能函数&第三篇 AuoLP功能函数详解自定函式:由设计者自行定义的新函式或子程序1.2 运算子(又称自变量或元素)包括:A。整数(Intger): 如8,1,50,9999正常范围: 2的1次方,介于-3268与+3267之间特殊范围: 若以 floa 函数将其转为实数,则范围2的32次方, 介于-248368与+1467之间B实数(Rea):如。5,-14正常范围: 带有小数点的数,精度可达 4 位有效数字C.字符串(Srg): 如 ”AtoCAD”,123","Eter Rea:,7。5”,正常范围: 以双引号内夹字符为认定,字符数不受限制.串行(Lit): 如(”a b” ”c"),( y),(xy z),(