AutoLISP入门教程

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

3.重要的 AutoLISP 的基本语法结构 规则 1: 以括号组成表达式,、相对称左右括号数一定要成双成对 规则 2: 表达式型态:(操作数 运算子 运算子 运算子) 1.1 操作数包括『功能函数』&『自定函式』 1.2 运算子(自变量)包括: A.整数(Integer) 如 8,-17,500,9999 ..... B.实数(Real) 如 8.5,-17.456 ..... C.字符串(String) 如 "AutoCAD","123" D.串行(List) 如 ("a" "b" "c"),(x y) E.像素名称代码 如 <entity name: 6000f262> F.档案代码 如 <file:#12438>..... G.选择群集代码 如 <Selection set:1> 规则 3:表达式中的『运算子』,可以是另一『表达式』或『子程序』 规则 4: 多重的括号表达式,运算的先后顺序是『由内而外、由左而右』 规则 5: 以档案型态存在的 AutoLISP 程序(ASCII 档案),其扩展名必须是.lsp 规则 6: 撰写的环境, 只要是一般的文书编辑软件、记事本,可编辑 ASCII 档 案者都适用 规则 7: 以 defun 功能函数定义新的指令或新的功能函式 规则 8: 新定义的功能函式名称,若为『C:函式名』,则此函式可为 AutoCAD 新指令 规则 9: 加载 AutoLISP 程序的作法:=> 指令:后直接键入 (load "LISP 主 檔名") 规则 10: AutoLISP 程序中,在『分号 ;』后的内容均为批注,程序不处理,适 时的增加批注,将使程序更具可看性、学习性及完整性 规则 11: AutoLISP 最常用的变量型态是『整数』、『实数』、『字符串』、 『点串行』四种,变量的型态依据设定值而自动定义 ,变量会一直储存该值,直到 被重新设定值或绘图结束自动消失 规则 12:以 setq 功能函数设定变量值 (setq 变量名称 设定值) 规则 13:欲在 AutoCAD 的环境中,查看一变量值,指令 :下键入『! 变量名』即 可 规则 14:以(defun C:函式名(自变量 / 变数) ........)程序中 ,程序中的变量若在 『/』右边变量内, 则称为『区域变量』,否则为『整体变量』
Biblioteka Baidu
四.AutoLISP 的效益评估?
1. 对公司负责人或设计主管而言: A. 也许某员工或干部花了 20 个小时撰写一个 AutoLISP 程序,表面上,这将近三 天的时间,他连一张图都没有画,甚至可能偶有发呆、 沈思,若此程序一天可以 替公司绘图部门节省 1 小时绘图时间,那算一算,只要 20 天就抵销开发成本, 而 20 天以后都是赚的, 『用的愈久,省的愈多』! B. 若员工皆有此动力, 在不影响正常工作,『鼓励』都来不及,那有『压抑』的道 理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢?! C. 千万不要因为您的不懂或压抑,SHOW 您的权威与 POWER,如此,不但对员 工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首 D. 当然 , 若要撰写的程序很多 ,内部设计人员的程序功力距离太远 ,达成需求的 时间反而变得遥遥无期 , 那倒不如求助于市面上已有的相关 AutoCAD 支 持软件。 2. 对设计人员而言: A. 得到一笔提升绩效奖金呢 ? 当然,无形中, 『AutoCAD 高手的封号』也将黄 功力又往前迈出了一大步 , 对个人的成长帮助匪浅 ,幸运的话 , 搞不好还可以 袍加身,不亦乐乎!!! B. 『半桶水、响叮当』, 千万不要因为会写 AutoLISP 程序而自傲、孤僻、嚣 张起来,功力的增长 ,只是让您有更多『服务他人、服务公司』的机会,若自恃 过重,宁可不要! C. AutoLISP 程序功力的累进,是无远弗届的,千万不要『孤芳自赏』,『人外有 人,天外有天』,也许您觉得是『宝贝加三级』的程序,只是其它设计师基本程 序中的一部份罢了!
指令:(min 75 a 63) 响应最小值 50 (因为变量值 a 代表 50) 错误的范例: 指令:(setq a (* 12.5 4) 1> 传回 1>表示少了一个括号 1> ) 此时,只要再补上一个 ) 即可 指令:(setq a (* 12.5 4 2> 传回 2>表示少了二个括号 2> )) 此时,只要再补上二个 ) 即可 规则 2:表达式型态 (操作数 运算子 运算子 运算子 ...)或 (函数(式) 自变量 自变量 自变量 ...) 或 (函数(式) 元素 元素 元素 ...) 1.1 操作数包括『功能函数』&『自定函式』 功能函数: 如上练习中的 +、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): 如 8.5,-17.456„ 正常范围: 带有小数点的数 ,精度可达 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 表示变量 kk、(1 2)表示串行(1 2) 2D 点坐标(x y) 表示法 => 以二实数形成串行
五.如何有效的学习 AutoLISP ?
1. 先由小程序着手,认识 AutoLISP 语法规定! 2. 浏览所有的 AutoLISP 功能函数,重要的功能函数要熟记脑海,俗语说的 好『一回生,二回熟』,除非您不用心,否则没有学不好的道理!!! 3. 要懂得偷懒: 不要认为在绘图的过程中, 繁琐的步骤是合理的 ,困难的绘 图过程是必须忍耐的 ,试着用 AutoLISP 解决看看! 4. 多观摩别人的程序设计,吸取精华, 像海棉一样=> 『吸』 、 『吸』 、 『吸』 !!! 5. 动手『写』程序比用眼睛看程序, 更能够领略深记脑海! 6. 随时随地整理您的程序, 并加以批注, 以免因时间的飞逝 ,当时用心的成 果也烟消云散,忘的一干二净!!! 7. 『决心』是学好 AutoLISP 最重要的关键! 8. 期许自己,要由操作者变成创造者!!!
二. AutoLISP 程序语言的特质分析:
学习 AutoLISP 是非常容易的,对初学者而言,即使没有学习过任何的程序语言, 都能很快的上手,写出精彩漂亮的 AutoLISP 程序! 语法简单 不用特殊的变量宣告,非常富有弹性 ,比起其它的程序语言 ,它的语 法可说是非常简单而有其独特的风格 ! 除一般性的功能函数外,又拥有为数不少控制配合 AutoCAD 的特 功 能 函 数 强 殊函数,再加上 AutoLISP 可直接呼叫执行所有 AutoCAD 的指令 , 大 以及掌握运用所有的 AutoCAD 系统变量,功能之强大令人欣喜不 已! 撰 写 的 环 境 只要是一般的文书编辑软件都适用 ! 如:Windows 的记事本、 PE2、 不挑剔 PE3、DW3、书中仙、汉书、EDIT....等 直译式程序 不用再作编译,『即写即测、即测即用』,马上可以在 AutoCAD 中 响应效果,马上就有成就感 ! AutoLISP 却可在不改写的原貌下,加载与执行 !
D. 既然 AutoLISP 是 AutoCAD 的『最大功臣』,当然不会轻易被舍弃 ,如此, 您的学习,保证不会白费! E. 『精益求精』、『虚心求教』、『用心学习、观摩』、『决心成为高手』 3.对程序本身而言: A. 少少的几行,却可能有『大大满意』的时候!!! B. 充份掌握了控制、创造 AutoCAD 的『尚方宝剑』,让您在 AutoCAD 的设 计运作中『得心应手』,享受无比的快乐与成就感!!!
二、学好 AutoLISP 的关键:
充份掌握『语法结构』&『功能函数』的搭配!!! 其时这个关键亦是学习其它程 序语言的关键. 『语法结构』AutoLISP 的语法结构规定的并不多,变量不用事先定义及 宣告,读者可熟记下一单元有关重要的 AutoLISP 基本语法结构,十四条设 计上要求的『规则』 『功能函数』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 (自变量型态错误) 因为『rtos』函数只接受实数转字符串 详细内容可参考下一章『快速浏览 AutoLISP 功能函数』至于各功能函数详 细的语法与实例应用 ,读者请参阅本书『第三篇 AutoLISP 功能函数详解』
单元二:AutoLISP 的关键、基本结构及语法
一、学好 AutoLISP 的关键、 基本结构与语法:
1. AutoLISP 程序语言的特质 A.语法简单 B.功能函数强大 C.撰写的环境不挑剃 D.直译式程序,『即写即测、即测即用』 E.横跨 AutoCAD 各作业平台 ,悠然自得 (注:以上五点 ,读者可以参考上一章 的剖析!!!) 2.学好 AutoLISP 的关键:充份掌握『语法结构』&『功能函数』的搭配!!!
横 跨 各 作 业 悠 然 自 得 , 虽 然 AutoCAD 有 DOS 、 Windows 版 本 之 分 但 是 平台
三.撰写 AutoLISP 的动机?
1. 欲强化 AutoCAD 原有指令时. 2. 欲创造更有用的 AutoCAD 新指令. 3. 欲简化繁琐的环境设定或绘图步骤时. 4. 欲处理参数式绘图时 . 5. 欲做图面资料读文件、写文件. 6. 欲做 AutoCAD 简报展示时. 7. 欲达到真正灵活掌控 AutoCAD 时. 8. 欲提升自己跨上 AutoCAD 高手列车时.

三、重要的 AutoLISP 的基本语法结构:
规则 1:以括号组成表达式, 左右括号数一定要成双成对、相对称 请依序在『指令:』列 (或指令:) 后面直接键入以下表达式 指令:(+ 1 2 3 4 5) 传回加总和 15 指令:(max 14.5 8.9 35) 传回最大值 35 指令:(menucmd "p1=*") 显示拉下 POP1 指令:(getint "Enter Real:") 传回 Enter Real:要求输入一个实数 指令:(setq a (* 12.5 4)) 传回相乘值 50,同时设定给『变量 a』 指令:!a 回应 50 (注:! 号可用来查询变数值)
单元一:AutoLISP 主角潇洒登场
一. AutoLISP 是何方神圣?
1. AutoLISP 是 AutoCAD 的最佳拍檔! 2. AutoLISP 内含于 AutoCAD 软件内,不用另外花钱买! 3. AutoLISP 是强化 AutoCAD 最好、最直接的『 程序语言』! 4. AutoLISP 易学、 易用,即使不会程序设计的 AutoCAD 使用者,都能在最 短的时间内,写出令人惊讶、赞叹的功能! 5. 若说 AutoLISP 的出现, 是替 AutoCAD 创造一片天的『最大功臣』 , 实不为过一点也不夸张! 6. AutoLISP 希望您去学习它、改善它、发挥它、享受它.真的! 它的威力、 魅力无穷!
相关文档
最新文档