AutoLISP基础入门案例-很受用.doc

上传人:11****ws 文档编号:2122427 上传时间:2019-04-29 格式:DOC 页数:34 大小:436.50KB
下载 相关 举报
AutoLISP基础入门案例-很受用.doc_第1页
第1页 / 共34页
AutoLISP基础入门案例-很受用.doc_第2页
第2页 / 共34页
AutoLISP基础入门案例-很受用.doc_第3页
第3页 / 共34页
AutoLISP基础入门案例-很受用.doc_第4页
第4页 / 共34页
AutoLISP基础入门案例-很受用.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、1单元一:AutoLISP 主角潇洒登场 一. AutoLISP 是何方神圣? 1. AutoLISP 是 AutoCAD 的最佳拍檔! 2. AutoLISP 内含于 AutoCAD 软件内,不用另外花钱买! 3. AutoLISP 是强化 AutoCAD 最好、最直接的程序语言! 4. AutoLISP 易学、易用,即使不会程序设计的 AutoCAD 使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能 ! 5. 若说 AutoLISP 的出现,是替 AutoCAD 创造一片天的最大功臣,实不为过一点也不夸张! 6. AutoLISP 希望您去学习它、改善它、发挥它、享受它. 真的!它的威

2、力、魅力无穷! 二. AutoLISP 程序语言的特质分析:学习 AutoLISP 是非常容易的 ,对初学者而言,即使没有学习过任何的程序语言 ,都能很快的上手,写出精彩漂亮的 AutoLISP 程序!语法简单 不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格!功能函数强大除一般性的功能函数外,又拥有为数不少控制配合 AutoCAD 的特殊函数,再加上 AutoLISP 可直接呼叫执行所有 AutoCAD 的指令,以及掌握运用所有的 AutoCAD 系统变量,功能之强大令人欣喜不已 !撰写的环境不挑剔只要是一般的文书编辑软件都适用! 如:Window

3、s 的记事本、PE2、PE3、DW3、书中仙、汉书、EDIT.等直译式程序不用再作编译,即写即测、即测即用,马上可以在 AutoCAD 中响应效果,马上就有成就感!横跨各作业平台悠然自得,虽然 AutoCAD 有 DOS、Windows 版本之分但是 AutoLISP却可在不改写的原貌下,加载与执行!三.撰写 AutoLISP 的动机?1. 欲强化 AutoCAD 原有指令时. 2. 欲创造更有用的 AutoCAD 新指令. 23. 欲简化繁琐的环境设定或绘图步骤时. 4. 欲处理参数式绘图时. 5. 欲做图面资料读文件、写文件. 6. 欲做 AutoCAD 简报展示时. 7. 欲达到真正灵活

4、掌控 AutoCAD 时. 8. 欲提升自己跨上 AutoCAD 高手列车时. 四.AutoLISP 的效益评估?1. 对公司负责人或设计主管而言:A.也许某员工或干部花了 20 个小时撰写一个 AutoLISP 程序, 表面上,这将近三天的时间, 他连一张图都没有画,甚至可能偶有发呆、沈思,若此程序一天可以替公司绘图部门节省 1 小时绘图时间,那算一算, 只要 20 天就抵销开发成本,而 20 天以后都是赚的,用的愈久,省的愈多!B. 若员工皆有此动力,在不影响正常工作,鼓励都来不及,那有压抑的道理, 甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢?!C. 千万不要因为您的不懂或压

5、抑,SHOW 您的权威与 POWER,如此, 不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首D. 当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥无期, 那倒不如求助于市面上已有的相关 AutoCAD 支持软件。2. 对设计人员而言 :A. 得到一笔提升绩效奖金呢? 当然,无形中,AutoCAD 高手的封号也将功力又往前迈出了一大步, 对个人的成长帮助匪浅,幸运的话,搞不好还可以黄袍加身,不亦乐乎!B. 半桶水、响叮当,千万不要因为会写 AutoLISP 程序而自傲、孤僻、嚣张起来, 功力的增长,只是让您有更多服务他人、服务公司的机会,若

6、自恃过重,宁可不要!C. AutoLISP 程序功力的累进,是无远弗届的,千万不要 孤芳自赏,人外有人, 天外有天,也许您觉得是宝贝加三级的程序,只是其它设计师基本程序中的一部份罢了 !3D.既然 AutoLISP 是 AutoCAD 的最大功臣,当然不会轻易被舍弃,如此, 您的学习,保证不会白费!E. 精益求精、虚心求教、用心学习、观摩、决心成为高手3.对程序本身而言:A. 少少的几行,却可能有大大满意的时候!B. 充份掌握了控制、创造 AutoCAD 的尚方宝剑,让您在 AutoCAD 的设计运作中得心应手,享受无比的快乐与成就感!五.如何有效的学习 AutoLISP ? 1. 先由小程序

7、着手,认识 AutoLISP 语法规定! 2. 浏览所有的 AutoLISP 功能函数,重要的功能函数要熟记脑海, 俗语说的好一回生,二回熟,除非您不用心,否则没有学不好的道理! 3. 要懂得偷懒:不要认为在绘图的过程中,繁琐的步骤是合理的,困难的绘图过程是必须忍耐的,试着用 AutoLISP 解决看看! 4. 多观摩别人的程序设计,吸取精华,像海棉一样=吸、吸、吸! 5. 动手写程序比用眼睛看程序,更能够领略深记脑海 ! 6. 随时随地整理您的程序,并加以批注,以免因时间的飞逝,当时用心的成果也烟消云散,忘的一乾二净! 7. 决心是学好 AutoLISP 最重要的关键! 8. 期许自己,要由

8、操作者变成创造者! 4单元二:AutoLISP 的关键、基本结构及语法一、学好 AutoLISP 的关键、 基本结构与语法:1. AutoLISP 程序语言的特质 A.语法简单B.功能函数强大C.撰写的环境不挑剃D.直译式程序,即写即测、即测即用E.横跨 AutoCAD 各作业平台 ,悠然自得 (注:以上五点 ,读者可以参考上一章的剖析!)2.学好 AutoLISP 的关键:充份掌握语法结构 后的内容均为批注 ,程序不处理,适时的增加批注,将使程序更具可看性、学习性及完整性规则 11: AutoLISP 最常用的变量型态是 整数、实数、字符串、点串行四种,变量的型态依据设定值而自动定义 ,变量

9、会一直储存该值,直到被重新设定值或绘图结束自动消失规则 12:以 setq 功能函数设定变量值 (setq 变量名称 设定值)规则 13:欲在 AutoCAD 的环境中,查看一变量值, 指令:下键入! 变量名即可规则 14:以(defun C:函式名(自变量 / 变数) .)程序中, 程序中的变量若在/右边变量内,则称为区域变量,否则为整体变量二、学好 AutoLISP 的关键: 充份掌握语法结构&功能函数的搭配! 其时这个关键亦是学习其它程序语言的关键. 语法结构AutoLISP 的语法结构规定的并不多,变量不用事先定义及宣告,读者可熟记下一单元有关重要的 AutoLISP 基本语法结构,十

10、四条设计上要求的规则 6 功能函数AutoLISP 之所以能功能如此强大,都有赖功能函数, 其成员共约 200 个: 1. 一般性函数 170 个 2. ADS 定义特殊函数 9 个 3. 配合 DCL 交谈框设计函数 22 个 各功能函数在使用上要求配合的运算子(自变量)型态, 均有其规定,当然, 您可不能乱给!例如: 指令:(+ 1 2 3 “ABC“)传回:error : bad argument type (自变量型态错误)因为+函数不接受字符串,而 “abc“ 正是字符串指令:(rtos “abc“) 传回:error : bad argument type (自变量型态错误)因为r

11、tos 函数只接受实数转字符串详细内容可参考下一章快速浏览 AutoLISP 功能函数至于各功能函数详细的语法与实例应用,读者请参阅本书第三篇 AutoLISP 功能函数详解三、重要的 AutoLISP 的基本语法结构:规则 1:以括号组成表达式,左右括号数一定要成双成对、相对称请依序在指令:列 (或指令:) 后面直接键入以下表达式指令:(+ 1 2 3 4 5) 传回加总和 15指令:(max 14.5 8.9 35) 传回最大值 35指令:(menucmd “p1=*“) 显示拉下 POP1指令:(getint “Enter Real:“) 传回 Enter Real:要求输入一个实数7指

12、令:(setq a (* 12.5 4) 传回相乘值 50, 同时设定给变量 a指令:!a 回应 50 (注:! 号可用来查询变数值)指令:(min 75 a 63) 响应最小值 50 (因为变量值 a 代表 50)错误的范例:指令:(setq a (* 12.5 4)1 传回 1表示少了一个括号1 ) 此时,只要再补上一个 ) 即可指令:(setq a (* 12.5 42 传回 2表示少了二个括号2 ) 此时,只要再补上二个 ) 即可规则 2:表达式型态 (操作数 运算子 运算子 运算子 .)或 (函数(式) 自变量 自变量 自变量 .)或 (函数 (式) 元素 元素 元素 .)1.1 操

13、作数包括功能函数&自定函式功能函数: 如上练习中的 +、max、menucmd、getint、 setq、*、min,详细内容可参考下一章快速浏览 AutoLISP 功能函数&第三篇 AutoLISP 功能函数详解自定函式: 由设计者自行定义的新函式或子程序1.2 运算子( 又称自变量或元素 )包括:A.整数(Integer): 如 8,-17,500,9999正常范围: 2 的 16 次方,介于 -32768 与+32767 之间特殊范围: 若以 float 函数将其转为实数 ,则范围 2 的 32 次方, 介于-2147483648 与+2147483647 之间B.实数(Real): 如

14、 8.5,-17.4568正常范围: 带有小数点的数,精度可达 14 位有效数字C.字符串(String): 如 “AutoCAD“,“123“,“Enter Real:“,“7.5“,正常范围: 以双引号内夹字符为认定,字符数不受限制D.串行(List): 如 (“a“ “b“ “c“),(x y),(x y z),(“a“ 8 3.5),.正常范围: 以左右括号内夹元素为认定,元素型态非常弹性使用频率: 在 AutoLISP 程序设计中应用非常高范例说明 : (“a“ 8 3.5 kk (1 2) 表示此串行内有五个元素 “a“表示字符串 a、8 表示整数 8、3.5 表示实数3.5、kk

15、 表示变量 kk、(1 2)表示串行(1 2)2D 点坐标(x y) 表示法 = 以二实数形成串行3D 点坐标(x y z) 表示法 = 以三实数形成串行E.像素名称代码:如 .使用范围: AutoCAD 会自动赋予像素指向代码,透过此代码可找到像素的数据库记录范例说明: (setq en (entlast) 传回 (entget en) 可找到像素的数据库串行F.档案代码: 如 使用范围: 开启(open)档案作读档(r) 、写档(w)使用时,所产生的代码, 如下:范例说明: (setq ffr (open “test.txt“ “r“) 回应 (setq ffw (open “abc.tx

16、t“ “w“) 回应 9G.选择群集代码: 如、使用范围: 一个或数个像素所形成的选择集范例说明: (setq ss (ssget)选取对象: (可选择物体)选取对象: (可选择物体)选取对象: (按 ENTER 键) 回应 规则 3 :表达式中的 运算子 ,可以是另一表达式或子程序功能函数使用语法:(strcat 字符串 1 字符串 2 字符串 3 .) 字符串结合功能函数(getstring 提示 ) 要求键入一个字符串(rtos 实数) 将实数转换成字符串范例说明 1: (strcat “abc“ “123“ “LISP“) 传回:“abc123LISP“范例说明 2: (strcat

17、“abc“ (getstring “Enter String:“ ) (rtos 123.45)执行结果: Enter String: 键入任一字符串,假设是键入 *HELLO*回应 “abc*HELLO*123.45“本例中的 strcat 函数在语法中要求的运算子必须是字符串型态运算子 1 = “abc“ 是正常的字符串运算子运算子 2 = 表达式 (getstring “Enter String:“) 传回结果是一字符串 “*HELLO*“运算子 3 = 表达式 (rtos 123.45) 传回结果是一字符串 “123.45“规则 4:多重的括号表达式,运算的先后顺序是由内而外、由左而右

18、范例说明: 请将 10.25 + 17 - 13.2 / 7 的结果,设定给变量 kk,并转换成AutoLISP 的表达式10解法技巧 A:1:运用二分法、加括号:(10.25 + 17) - (13.2 / 7)2:操作数往前提: kk = (- (10.25 + 17) (13.2 / 7)3:操作数再往前提:kk = (- (+ 10.25 17) (/ 13.2 7)4:转换完成: (setq kk (- (+ 10.25 17) (/ 13.2 7)解法技巧 B:1:运用二分法、加括号:(10.25 + (17 - (13.2 / 7)2:操作数往前提: kk = (+ 10.25

19、(17 - (13.2 / 7)3:操作数再往前提:kk = (+ 10.25 (- 17 (/ 13.2 7)4:转换完成: (setq kk (+ 10.25 (- 17 (/ 13.2 7)规则 5:以档案型态存在的 AutoLISP 程序(ASCII 档案),其扩展名必须是.LSP规则 6:撰写的环境 ,只要是一般的文书编辑软件,可编辑 ASCII 档案者都适用如:PE2、PE3、DW3、书中仙、汉书、EDIT、记事本.等规则 7:以 defun 功能函数定义新的指令或新的功能函式 (注: 自变量及区域变量可省略)程序结构型态:(defun 函式名称(自变量/区域变量 ): : : 程序内容: :)规则 8:新定义的功能函式名称,若为C:函式名,则此函式可为 AutoCAD 新指令(注:自变量及区域变量可省略)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。