autolisp入门教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、学好AutoLISP的关键、基本结构与语法:
1. AutoLISP程式语言的特质
A.语法简单
B.功能函数强大
C.撰写的环境不挑剃
D.直译式程式,『即写即测、即测即用』
E.横跨AutoCAD各作业平台,悠然自得(注:以上五点,读者可以参考上一章的剖析)
2.学好AutoLISP的关键:充份掌握『语法结构』&『功能函数』的搭配
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"),(xy)
E.图元名称代码如
F.档案代码如
G.选择群集代码如
规则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:函式名(引数/变数) ........)程式中,程式中的变数若在『/』右边变数内,则称为『区域变数』,否则为『整体变数』
二、学好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的基本语法结构:
规则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 (注:!号可用来查询变数值)
指令:(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运算子(又称引数或元素)包括: