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