autolisp入门教程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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运算子(又称引数或元素)包括:

相关文档
最新文档