欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    AutoLISP基础入门案例,很受用.docx

    • 资源ID:50256159       资源大小:70.10KB        全文页数:34页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    AutoLISP基础入门案例,很受用.docx

    1单单元一:元一:AutoLISP主角潇洒登场主角潇洒登场一一.AutoLISP 是何方神圣是何方神圣?1.AutoLISP 是 AutoCAD 的最佳拍檔!2.AutoLISP 内含于 AutoCAD 软件内,不用另外花钱买!3.AutoLISP 是强化 AutoCAD 最好、最直接的程序语言!4.AutoLISP 易学、易用,即使不会程序设计的 AutoCAD 使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能!5.若说 AutoLISP 的出现,是替 AutoCAD 创造一片天的最大功臣,实不为过一点也不夸张!6.AutoLISP 希望您去学习它、改善它、发挥它、享受它.真的!它的威力、魅力无穷!二二.AutoLISP 程序语言的特质分析程序语言的特质分析:学习 AutoLISP 是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写出精彩漂亮的 AutoLISP 程序!语法简单语法简单不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格!功能函数功能函数强大强大除一般性的功能函数外,又拥有为数不少控制配合 AutoCAD 的特殊函数,再加上 AutoLISP 可直接呼叫执行所有 AutoCAD 的指令,以及掌握运用所有的 AutoCAD 系统变量,功能之强大令人欣喜不已!撰写的环撰写的环境不挑剔境不挑剔只要是一般的文书编辑软件都适用!如:Windows 的记事本、PE2、PE3、DW3、书中仙、汉书、EDIT.等直译式程直译式程序序不用再作编译,即写即测、即测即用,马上可以在 AutoCAD 中响应效果,马上就有成就感!横跨各作横跨各作业平台业平台悠然自得,虽然 AutoCAD 有 DOS、Windows 版本之分但是 AutoLISP却可在不改写的原貌下,加载与执行!三三.撰写撰写 AutoLISP 的动机的动机?1.欲强化 AutoCAD 原有指令时.2.欲创造更有用的 AutoCAD 新指令.3.欲简化繁琐的环境设定或绘图步骤时.4.欲处理参数式绘图时.25.欲做图面资料读文件、写文件.6.欲做 AutoCAD 简报展示时.7.欲达到真正灵活掌控 AutoCAD 时.8.欲提升自己跨上 AutoCAD 高手列车时.四四.AutoLISP 的效益评估的效益评估?1.对公司负责人或设计主管而言对公司负责人或设计主管而言:A.也许某员工或干部花了 20 个小时撰写一个 AutoLISP 程序,表面上,这将近三天的时间,他连一张图都没有画,甚至可能偶有发呆、沈思,若此程序一天可以替公司绘图部门节省 1 小时绘图时间,那算一算,只要 20 天就抵销开发成本,而 20 天以后都是赚的,用的愈久,省的愈多!B.若员工皆有此动力,在不影响正常工作,鼓励都来不及,那有压抑的道理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢?!C.千万不要因为您的不懂或压抑,SHOW 您的权威与 POWER,如此,不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首D.当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥无期,那倒不如求助于市面上已有的相关 AutoCAD 支持软件。2.对设计人员而言对设计人员而言:A.得到一笔提升绩效奖金呢?当然,无形中,AutoCAD 高手的封号 也将功力又往前迈出了一大步,对个人的成长帮助匪浅,幸运的话,搞不好还可以黄袍加身,不亦乐乎!B.半桶水、响叮当,千万不要因为会写 AutoLISP 程序而自傲、孤僻、嚣张起来,功力的增长,只是让您有更多服务他人、服务公司的机会,若自恃过重,宁可不要!C.AutoLISP 程序功力的累进,是无远弗届的,千万不要孤芳自赏,人外有人,天外有天,也许您觉得是宝贝加三级的程序,只是其它设计师基本程序中的一部份罢了!D.既然 AutoLISP 是 AutoCAD 的最大功臣,当然不会轻易被舍弃,如此,您的学习,保证不会白费!E.精益求精、虚心求教、用心学习、观摩、决心成为高手33.对程序本身而言对程序本身而言:A.少少的几行,却可能有大大满意的时候!B.充份掌握了控制、创造 AutoCAD 的尚方宝剑,让您在 AutoCAD 的设计运作中得心应手,享受无比的快乐与成就感!五五.如何有效的学习如何有效的学习 AutoLISP?1.先由小程序着手,认识 AutoLISP 语法规定!2.浏览所有的 AutoLISP 功能函数,重要的功能函数要熟记脑海,俗语说的好一回生,二回熟,除非您不用心,否则没有学不好的道理!3.要懂得偷懒:不要认为在绘图的过程中,繁琐的步骤是合理的,困难的绘图过程是必须忍耐的,试着用 AutoLISP 解决看看!4.多观摩别人的程序设计,吸取精华,像海棉一样=吸、吸、吸!5.动手写程序比用眼睛看程序,更能够领略深记脑海!6.随时随地整理您的程序,并加以批注,以免因时间的飞逝,当时用心的成果也烟消云散,忘的一乾二净!7.决心是学好 AutoLISP 最重要的关键!8.期许自己,要由操作者变成创造者!4单单元二:元二:AutoLISP 的关键、基本结构及语法的关键、基本结构及语法一、学好一、学好 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,123D.串行(List)如(a b c),(x y)E.像素名称代码 如 F.档案代码 如.G.选择群集代码 如 5规则 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 个:61.一般性函数 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(注:!号可用来查询变数值)7指令:(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 操作数包括功能函数&自定函式功能函数:如上练习中的+、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,8正常范围:以双引号内夹字符为认定,字符数不受限制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)表示法=以二实数形成串行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.txt w)回应 G.选择群集代码:如、9使用范围:一个或数个像素所形成的选择集范例说明:(setq ss(ssget)选取对象:(可选择物体)选取对象:(可选择物体)选取对象:(按 ENTER 键)回应 规则 3:表达式中的运算子,可以是另一表达式或子程序功能函数使用语法:(strcat 字符串 1 字符串 2 字符串 3.)字符串结合功能函数(getstring 提示)要求键入一个字符串(rtos 实数)将实数转换成字符串范例说明 1:(strcat abc 123 LISP)传回:abc123LISP范例说明 2:(strcat 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:多重的括号表达式,运算的先后顺序是由内而外、由左而右范例说明:请将 10.25+17-13.2/7 的结果,设定给变量 kk,并转换成 AutoLISP的表达式解法技巧 A:101:运用二分法、加括号:(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(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 新指令(注:自变量及区域变量可省略)程序结构型态:(defun C:KK(自变量/区域变量)11:程序内容:)则加载此 LISP 程序后,可在 指令:后直接键入新定义的 KK 指令规则 9:加载 AutoLISP 程序的作法:指令:后直接键入(load LISP 主檔名)注:load 与字符串间的空格,可有可无注:load 与双引号间的空格,可有可无(loadLISP 主檔名)范例:在 c:lsptools 目录下有一 LISP 程序 tt.lsp,而您目前的工作目录在 c:dwg下若环境设定之支持档案搜寻路径有指定到c:lsptools目录,则欲使用加载tt.lsp 指令:后键入(load tt)即可若环境设定之支持档案搜寻路径无指定到 c:lsptools 目录,则键入(loadtt)后,会出现错误讯息如下:无法开启tt.lsp做输入错误:载入失败(LOAD tt)*取消*此时您可键入:指令:(load c:lsptoolstt)或指令:(load c:/lsptools/tt)不可键入:(load c:lsptoolstt)因为在 AutoLISP 结构语法中已经用于跳脱码控制了规则 10:AutoLISP 程序中,在分号;后的内容均为批注,程序不处理,适时的增加批注,将使程序更具可看性、学习性及完整性12规则 11:AutoLISP 最常用的变量型态是整数、实数、字符串、点串行 四种,变量的型态依据设定值而自动定义,变量会一直储存该值,直到被重新设定值或绘图结束自动消失规则 12:以 setq 功能函数设定变量值(setq 变量名称 设定值)范例:(setq a 100);变量 a 值设定成整数 100(setq b 123.56);变量 b 值设定成实数 123.56(setq c Good morning!);变量 c 值设定成字符串(setq pt1(getpoint Enter POINT:);变量 pt1 值设定成点串行(setq pt2(list a b);此时,a 值是 100,b 值是 123.56 变量 pt2 值设定成点串行(100 123.56)(setq pt3(297 210);变量 pt3 值设定成点串行(297 210)注意:直接设定成点串行时,不能省略单引号否则会被误认(297 210)又是一个表达式,297 是操作数而出错!规则 13:欲在 AutoCAD 的环境中,查看一变量值,指令:下键入!变量名即可范例:指令:(setq aa(+100 75)传回:175指令:!aa 传回:175指令:(setq pp(list 90 50)传回:(90 50)指令:!pp 传回:(90 50)指令:!ww 传回:nil 空值无设定规则 14:以(defun C:函式名(自变量/变数).)程序中,程序中的变量若在/右边变量内,则称为区域变量,否则为整体变量(注:在 AutoLISP 中,未赋予值的变量,其值皆响应 nil)13区域变量于此程序执行完毕后,其值自动消失整体变量于此程序执行完毕后,其值仍然存在范例:test.lsp 内容如下(defun c:tt(/sa sb sc)(setq sa 100)(setq sb 20)(setq sc 10)(setq sd(+sa sb sc)回到:指令:键入(loadtt)传回:c:tt指令:tt 传回:130指令:!sa 传回:nil(属区域变量)指令:!sb 传回:nil(属区域变量)指令:!sc 传回:nil(属区域变量)指令:!sd 传回:130(属整体变量)14单单元三:元三:快速分类浏览 AutoLISP 功能函数(一)一一?看到以下那么多的看到以下那么多的 AutoLISP 功能函数功能函数,洋洋洒洒洋洋洒洒 17 大类大类:1.您第一个念头,一定惊讶怎么会那么多,您可能快吓坏了!2.您第二个念头,一定会想那么多,怎么记得下来,您可能快放弃了!二二?其其实实,您您应该应该要很要很兴奋兴奋而充而充满满信心的信心的,怎么怎么说说呢呢?1.您有那么多的大将协助您撰写 AutoLISP 程序,当然左右又逢源,不但轻松,而且要快乐的不得了!2.这些函数只要您先浏览有印象,要用时,再翻查该函数,了解用途语法再加入到您的程序中就可以了!3.常用的函数,写久、用久后,自然会深深牢记脑海,想忘都很难,不常用的函数,若硬要您记下来,相信连高手都很困难,更何况是初学的您!4.您不用再摸不着头绪了,因为您幸运的拥有了本书,就是您成功的开始!第一第一类类 数学运数学运算功能函算功能函数数项目函数语法传回151.1(+数值 数值.)累计实数或整数数值1.2(-数值 数值.)减去数值1.3(*数值 数值.)所有数值乘积1.4(/数值 数值.)第一个数值除以第二个以后数值的商1.5(1+数值)数值+11.6(1-数值)数值-11.7(abs 数值)数值的绝对值1.8(atan 数值)反正切值1.9(cos 角度)角度的余弦值,角度值为弪度1.10(exp 数值)数值的指数1.11(expt 基数 指数)基数的指数值1.12(fix 数值)将数值转换为整数值1.13(float 数值)将数值转换为实数值1.14(gcd 数值 1 数值 2)二数值的最大公因子1.15(log 数值)数值的自然对数值1.16(max 数值 数值.)数值中的最大值1.17(min 数值 数值.)数值中的最小值1.18pi常数 p,其值约为 3.14159261.19(rem 数值 1 数值 2)二数值的相除的余数1.20(sin 角度)角度的正旋值,角度值为弪度1.21(sqrt 数值)数值的平方根第二第二类类 检验检验&逻辑运逻辑运算功能函算功能函数数项目函数语法传回2.1(=表示式 1 表示式 2)比较表示式 1 是否等于表示式 2 适用数值及字符串162.2(/=表示式 1 表示式 2)比较表示式 1 是否大于等于表示式 22.3(表示式 1 表示式 2)比较表示式 1 是否 小于 表示式 22.4(=表示式 1 表示式 2)比较表示式 1 是否 表示式 1 表示式 2)比较表示式 1 是否 大于 表示式 22.6(=表示式 1 表示式 2)比较表示式 1 是否大于等于表示式 22.7(数值)传回:数值的位 not 值,(1 的补码)2.8(and 表示式 1 表示式 2)逻辑 and 的结果2.9(boole 函数 整数 整数)位式布尔运算2.10(eq 表示式 1 表示式 2)比较表示式 1 与表示式 2 是否相同,适用串行比较(实际相同)2.11(equal 表示式 1 表示式 2 差量)比较表示式 1 与表示式 2 是否相同,差量可省略(内容相同)第三第三类类 转换运转换运算功能函算功能函数数项目函数语法传回3.1(angtof 字符串 模式)角度值的字符串转成实数3.2(angtos 角度 模式 精度)角度转成的字符串值3.3(atof 字符串)字符串转成实数值3.4(atoi 字符串)字符串转成整数值3.5(cvunit 数值 原始单位 转换单位)数值转换单位后的值转换根据 acad.unt 档案3.6(distof 字符串 模式)依模式将字符串转成实数值3.7(itoa 整数)整数转成字符串3.8(rtos 数值 模式 精度)实数转成字符串3.9(trans 点 原位置 新位置 位移)转换坐标系统值第四第四类类 串行串行处处理功能函理功能函数数17项目函数语法传回4.1(append 串行 串行.)结合所有串行成一个串行4.2(assoc 关键元素 联合串行)依关键元素找寻联合串行中关系数据4.3(car 串行)串行中的第一个元素通常用来求 x 坐标4.4(cadr 串行)串行中的第二个元素通常用来求 y 坐标4.5(caddr 串行)串行中的第三个元素通常用来求 z 坐标4.6(cdr 串行)除去第一个元素后的串行4.7(cons 新元素 串行)将新元素结合到串行4.8(foreach 名称 串行 表示式)将串行的每一元素对应至名称再依表示式执行响应4.9(length 串行)串行内的元素数量4.10(list 元素 元素)将所有元素结合成一串行4.11(listp 元素)判断元素是否为一串4.12(mapcar 函数 串行 1 串行 2.)将串行 1、串行 2、等串行的 元素配合函数,求得新串行4.13(member 关键元素 串行)依关键元素(含)以后的串行4.14(nth n 串行)串行的第 n 个元素4.15(reverse 串行)将串行元素依顺序颠倒过来的串行4.16(subst 新项 旧项 串行)替换新旧串行后的串行第五第五类类 字符串、字符、字符串、字符、档档案案处处理功能函理功能函数数项目函数语法传回5.1(ascii 字符串)字符串第一个字符的ASCII码5.2(chr 整数)整数所对应的 ASCII 单一字符串5.3(close 文件名称)关闭档案5.4(open 文件名 模式)开启档案代码,准备读取或写入数据5.5(read 字符串)串行中的字符串的第一组元素185.6(read-char 档案代码)经由键盘或档案中读取单一字符5.7(read-line 档案代码)经由键盘或档案中读取一行字符串5.8(strcase 字符串 字样)转换字符串大小写5.9(strcat 字符串 1 字符串 2.)将各字符串结合成一字符串5.10(strlen 字符串)字符串构成的字符数(即字符串长度)5.11(substr 字符串 起始 长度)取出子字符串5.12(wcmatch 字符串 格式)T 或 nil,将字符串与通用字符进行比对5.13(write-char 数值 档案代码)将一 ASCII 字符写到档案或屏幕5.14(write-line 字符串 档案代码)将字符串写到档案或屏幕上第六第六类类 等待等待输输入功能函入功能函数数项目函数语法传回6.1(getangle 基点 提示)请求输入十进制角度数值,响应一弪度值提示及参考点可有可无6.2(getcorner 基点 提示)请求输入另一矩框对角点坐标6.3(getdist 基点 提示)请求输入一段距离6.4(getint 提示)请求输入一整数值6.5(getkword 提示)请求输入关键词6.6(getorient 基点 提示)请求输入十进制角度,响应一弪度值不受 angbase、angdir 影响6.7(getpoint 基点 提示)请求输入一个点坐标6.8(getreal 提示)请求输入一实数6.9(getstring 提示)请求输入一字符串6.10(initget 位 字符串)设定下次 getxxx 函数的有效输入第七第七类类 几何几何运运算功能函算功能函数数19项目函数语法传回7.1(angle 点 1 点 2)取得二点的角度弪度值7.2(distance 点 1 点 2)取得二点的距离7.3(inters 点 1 点 2 点 3 点 4 模式)取得两条线的交点7.4(osnap 点 模式字符串)依辅助抓点模式取得另一坐标点7.5(polar 基点 弪度 距离)依极坐标法取得另一坐标点7.6(textbox 像素串行)取得文字符串的二对角点坐标第八第八类类 像素像素处处理功能函理功能函数数项目函数语法传回8.1(entdel 像素名称)删除或逆删除像素8.2(entget 像素名称 应用程序串行)取出像素名称的数据串行8.3(entlast)取出图形数据中的最后一个像素8.4(entmake 像素串行)建立一个新的像素串行8.5(entmod 像素串行)依更新的数据串行更新屏幕上元体8.6(entnext 像素名称)找寻图面中的下一个像素8.7(entsel 提示)请求选取一个像素,响应包含像素名称及选点坐标的串行8.8(entupd 像素名称)更新屏幕上复元体图形8.9(handent 图码)图码的元体名称8.10(nentsel 提示)BLOCK 所含副元体像素数据串行8.11(nentselp 提示 点)BLOCK 所含副元体像素数据(以 4 x 4 矩形表示)20单单元四:元四:快速分类浏览 AutoLISP 功能函数(二)第九第九类类 选择选择集、符集、符号号表表处处理功能函理功能函数数项目函数语法传回9.1(ssadd 像素名称 选择集)将像素加入选择集或建立一新选择集9.2(ssdel 像素名称 选择集)将像素自选择集中移出9.3(ssget 模式 点 1 点 2)取得一个选择集9.4(ssget X 过滤串行)取得依过滤串行所指定范围的选择集9.5(sslenth 选择集)计算选择集的像素个数9.6(ssmemb 像素名称 选择集)响应像素名称是否包含于选择集内9.7(ssname 选择集 索引值)依索引值取出选择集中的像素名称9.8(tblnext 符号表名称 T)检视符号表,有效的符号表:LAYER、LTYPE、VIEW、STYLE、BLOCK9.9(tblsearch 符号表名称 符号)在符号表中搜寻符号第十第十类类 AutoCAD 相关查询、控制功能函数相关查询、控制功能函数项目函数语法传回10.1(command AutoCAD 指令.)呼叫执行 AutoCAD 指令10.2(findfile 檔名)传回:应该文件名的路径及文件名10.3(getfiled 标题 内定档名 扩展名 旗号)透过标准 AutoCAD 档案对话 DCL 交谈框求得档案10.4(getenv 环境变量)取得该环境变量的设定值,以字符串表示10.5(getvar 系统变量)取得该系统变量的设定值,以字符串表示10.6(setvar 系统变量 值)设定该系统变量的值2110.7(regapp 应用类项)将目前的 AutoCAD 图形登记为一个应用程序名称第十一第十一类类 判判断断式、循式、循环环相相关关功能函功能函数数项目函数语法传回11.1(if 表示式 2)检算比较式结果,如果为真,执行否则,执行11.2(repeat 整数 .)重复执行次数11.3(while 标题 内定档名 扩展名 旗号)透过标准 AutoCAD 档案对话 DCL 交谈框求得档案11.4(cond 环境变量)取得该环境变量的设定值,以字符串表示11.5(progn 表达式 1 表达式 2.)连结其内的表达式为一组,常用于配合 if、cond 等函数第十二第十二类类 函函数处数处理、定理、定义义、追、追踪踪&错误处错误处理功能函理功能函数数项目函数语法传回12.1(*error*字符串)程序错误时的警示讯息12.2(alert 字符串)以交谈框式显示出警告字符串12.3(apply 功能函数 串行)将功能函数与串行结合后执行12.4(defun 名称 自变量串行 表示式.)自定函数或子程序12.5(eval 表示式)传回:表示式的执行结果12.6(exit)强制退出目前的应用程序12.7(lambda 自变量 表示式)定义未具名的函数12.8(progn 表达式 1 表达式 2.)连结其内的表达式为一组,常用于配合 if、cond 等函数12.9(quit)强制退出目前的应用程序12.10(tablet 代码 列 1 列 2 列 3 方向)取用或建立对数字板的校调12.11(trace 函数)对函数设定追踪旗号,辅助除错12.12(untrace 函数)对函数设定解除追踪旗号22第十第十三三类类 显显示、打印控制功能函示、打印控制功能函数数项目函数语法传回13.1(graphscr)作图环境切换到图形画面13.2(grclear)暂时清除模前的屏幕画面13.3(grdraw 起点 终点 颜色 亮显)暂时性的画出一条线13.4(grread 追踪)由输入设备读取追踪值13.5(grtext 位置 字符串 亮显)将字符串显示在状态列或屏幕菜单上13.6(grvecs 向量串行 转置矩阵)暂时性的画出多条线13.7(menucmd 字符串)提供在 AutoLISP 中呼叫各菜单13.8(prin1 表示式 档案代码)将表示式打印于命令区或已开启的档案,句柄字符则以 为前缀展开13.9(princ 表示式 档案代码)除句柄字符则不以 为前缀展开外其余同 prin113.10(print 表示式 档案代码)除表示式会往下一新行列出,及一空格外其余同 prin113.11(prompt 讯息)将讯息显示于屏幕的命令区,并随后响应一个 nil 讯息13.12(redraw 像素名称 模式)重绘整张图或依像素名称重绘该图形13.13(terpri)在屏幕上显示新列13.14(textscr)作图环境切换到文字画面13.15(textpage)清除文字画面文字类似 DOS 的 cls 指令13.16(vports)传回:窗口组态串行第十第十四四类类 符符号号、元素、表示式、元素、表示式处处理功能函理功能函数数23项目函数语法传回14.1(atom 元素)如果元素不是串行,响应 T,否则为 nil14.2(atoms-family 格式 符号串行)传回:一组已定义函数的符号串行14.3(boundp 表示式)传回:T 或 nil,响应表示式是否有值存在14.4(minusp 元素)传回:T 或 nil,元素是否为负值14.5(not 元素)传回:T 或 nil,判定元素是否为 nil14.6(null 元素)传回:T 或 nil 判定元素是否被赋予 nil 值14.7(numberp 元素)传回:T 或 nil,元素是否为整数或实数14.8(.表示式)响应表示式未检算前状态14.9(quote 表示式)响应表示式未检算前状态,同功能14.10(set 符号 表示式)将表示式结果设定给带单引号 符号14.11(setq 符号 1 表示式 1 符号 2 表示式 2.)设定表示式结果给各符号14.12(type 元素)传回:元素的数据型态143.13(zerop 元素)传回:T 或 nil,元素是否为 0 值第十第十五五类类 ADS、AutoLISP 加载与释放函数加载与释放函数项目函数语法传回15.1(ads)传回:目前加载 ADS 程序串行15.2(ver)传回:目前 AutoLISP 版本字符串15.3(load LSP 檔名 加载失败)载入 AutoLISP 档案(*.lsp)15.4(arxload 错误响应)加载一个 ARX 应用程序文件15.5(arxunload 错误响应)释放 ARX 应用程序文件15.6(autoarxload )载入一个关连式的 ARX 檔15.7(autoload ADS 定义的函数&指令)载入一个关连式的 AutoLISP 檔15.8(autoxload )载入一个关连式的 ADS 檔2415.9(xload 应用程序 出错处理)加载 ADS 应用程序15.10(xunload 应用程序 出错处理)释放 ADS 应用程序第十第十六六类类 内内存空存空间间管理函管理函数数项目函数语法传回16.1(alloc 数值)以节点数值设定区段大小16.2(expand 数值)以区段数值配置节点空间16.3(gc)强制收回废内存16.4(mem)显示目前的内存使用状态16.5(vmon)释放 ADS 应用程序16.6(xdroom 像素名称)传回像素延伸数据允用得内存空间16.7(xdsize 串行)传回像素延伸数据所占用的内存空间25单单元五:元五:轻松快速的掌握 AutoLISP 设计技巧一、一、AutoLISP 程序设计的四个步骤:程序设计的四个步骤:1.第一步骤:产生写程序的动机、预期目标2.第二步骤:构思程序流程、所需之 LISP 功能函数、相关变量订定&提示讯息3.第三步骤:利用文书软件(如记事本)撰写 xxx.lsp 程序4.第四步骤:回到 AutoCAD 下,加载 AutoLISP 程序以(loadLSP 主檔名)或(load LSP 主檔名)5.第五步骤:执行新的 AutoLISP 指令二、透过简单范例全程演练二、透过简单范例全程演练 AutoLISP:1.第一步骤:动机、预期目标如如图图:希望能在输入左下角点、矩形宽、矩形高后,自动的将图形依所给的条件画出,如此一来,尔后画这个图就轻松愉快了!262.第二步骤:构思程序相关变量订定(如下图)定出程序名为 pbox.lsp构思程序流程、相关变量:变量名称可自行设定(如 pa、ww、hh、pb、pc、pd、mp1、mp2、mp3、mp4),掌握三个原则:不可重复好记不会混淆适时的以分号;加上批注(defun c:pbox();以下 pa、ww、hh 值须由使用者输入(setq pa(请求输入左下角点)(setq ww(请求输入矩形宽度实数值)(setq hh(请求输入矩形高度实数值);以下 pb、pc、pd 值须由程序依据 pa、ww、hh 求出(setq pb(依据相对极坐标法求出 pb 点坐标值)(setq pc(依据相对极坐标法求出 pc 点坐标值)(setq pd(依据相对极坐标法求出 pd 点坐标值);以下依据 pa、pb、pc、pd 点画矩形(以 pline 指令画出矩形)27;以下 mp1、mp2、mp3、mp4 值须由程序依据 pa、ww、hh;&pb、pc、pd 值求出(setq mp1(求出 mp1 点坐标值)(setq mp3(求出 mp3 点坐标值)(setq mp2(求出 mp2 点坐标值)(setq mp4(求出 mp4

    注意事项

    本文(AutoLISP基础入门案例,很受用.docx)为本站会员(叶***)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开