AutoLISP基础入门案例-很受用

上传人:gb****c 文档编号:141614448 上传时间:2022-08-24 格式:DOC 页数:31 大小:326KB
返回 下载 相关 举报
AutoLISP基础入门案例-很受用_第1页
第1页 / 共31页
AutoLISP基础入门案例-很受用_第2页
第2页 / 共31页
AutoLISP基础入门案例-很受用_第3页
第3页 / 共31页
点击查看更多>>
资源描述
单元一:AutLIP主角潇洒登场一.utoLISP 是何方神圣? 1. toLSP是AutoAD的最佳拍檔! 2. toLP内含于AutoCAD软件内,不用另外花钱买! 3. AtLISP是强化tCD最好、最直接的程序语言! 4. AoLIP易学、易用,即使不会程序设计的AuoC使用者,都能在最短的时间内,写出令人惊讶、赞叹的功能! 5. 若说utoISP的出现,是替AutoCAD创造一片天的最大功臣,实不为过一点也不夸张!6. AtoLIS希望您去学习它、改善它、发挥它、享受它真的!它的威力、魅力无穷! 二.AutLISP 程序语言的特质分析:学习uoLIP是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写出精彩漂亮的AuSP程序!语法简单不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格!功能函数强大除一般性的功能函数外,又拥有为数不少控制配合ACA的特殊函数,再加上AutoSP可直接呼叫执行所有uto的指令,以及掌握运用所有的AtCAD系统变量,功能之强大令人欣喜不已!撰写的环境不挑剔只要是一般的文书编辑软件都适用! 如:Wndows的记事本、P2、PE3、DW3、书中仙、汉书、EIT.。等直译式程序不用再作编译,即写即测、即测即用,马上可以在oCD中响应效果,马上就有成就感!横跨各作业平台悠然自得,虽然AtoCA有DOS、Windows版本之分但是AuoLIP却可在不改写的原貌下,加载与执行!三撰写 utLIP 的动机?1. 欲强化AutoCAD 原有指令时. 2. 欲创造更有用的 AuoAD 新指令.3. 欲简化繁琐的环境设定或绘图步骤时. 4. 欲处理参数式绘图时5. 欲做图面资料读文件、写文件. 6. 欲做 AutoCAD 简报展示时。7. 欲达到真正灵活掌控 AutoCAD时。8. 欲提升自己跨上 AtCAD 高手列车时。 四.AutLIP 的效益评估?1。对公司负责人或设计主管而言:A也许某员工或干部花了0个小时撰写一个uoS程序,表面上,这将近三天的时间,他连一张图都没有画,甚至可能偶有发呆、沈思,若此程序一天可以替公司绘图部门节省1小时绘图时间,那算一算,只要0天就抵销开发成本,而2天以后都是赚的,用的愈久,省的愈多!B。若员工皆有此动力,在不影响正常工作,鼓励都来不及,那有压抑的道理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢?!C.千万不要因为您的不懂或压抑,SHO您的权威与POWR,如此,不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首D。当然,若要撰写的程序很多,内部设计人员的程序功力距离太远,达成需求的时间反而变得遥遥无期,那倒不如求助于市面上已有的相关 AoCA 支持软件。2. 对设计人员而言:A.得到一笔提升绩效奖金呢? 当然,无形中,AtoCAD 高手的封号也将功力又往前迈出了一大步,对个人的成长帮助匪浅,幸运的话,搞不好还可以黄袍加身,不亦乐乎!!!B半桶水、响叮当,千万不要因为会写 AutoISP 程序而自傲、孤僻、嚣张起来,功力的增长,只是让您有更多服务他人、服务公司的机会,若自恃过重,宁可不要!Ato 程序功力的累进,是无远弗届的,千万不要孤芳自赏,人外有人,天外有天,也许您觉得是宝贝加三级的程序,只是其它设计师基本程序中的一部份罢了!D。既然 AuoISP 是AtAD 的最大功臣,当然不会轻易被舍弃,如此,您的学习,保证不会白费!E.精益求精、虚心求教、用心学习、观摩、决心成为高手3对程序本身而言:少少的几行,却可能有大大满意的时候!!B充份掌握了控制、创造 oCAD 的尚方宝剑,让您在toCD 的设计运作中得心应手,享受无比的快乐与成就感!五。如何有效的学习 AtoLIP ?1. 先由小程序着手,认识utoLISP语法规定! 2. 浏览所有的AuoLIP功能函数,重要的功能函数要熟记脑海,俗语说的好一回生,二回熟,除非您不用心,否则没有学不好的道理!3. 要懂得偷懒:不要认为在绘图的过程中,繁琐的步骤是合理的,困难的绘图过程是必须忍耐的,试着用AuLISP解决看看! 4. 多观摩别人的程序设计,吸取精华,像海棉一样吸、吸、吸! 5. 动手写程序比用眼睛看程序,更能够领略深记脑海!6. 随时随地整理您的程序,并加以批注,以免因时间的飞逝,当时用心的成果也烟消云散,忘的一乾二净!! 7. 决心是学好 utoLISP 最重要的关键! 8. 期许自己,要由操作者变成创造者! 单元二:AutLISP的关键、基本结构及语法一、学好 uoLSP 的关键、基本结构与语法:1.AutoLSP程序语言的特质 语法简单功能函数强大C。撰写的环境不挑剃D。直译式程序,即写即测、即测即用E横跨 AuCD各作业平台,悠然自得(注:以上五点,读者可以参考上一章的剖析!!)2。学好 AoLIS 的关键:充份掌握语法结构&功能函数的搭配!3.重要的 LIP 的基本语法结构规则: 以括号组成表达式,、相对称左右括号数一定要成双成对规则2: 表达式型态:(操作数 运算子 运算子 运算子).1 操作数包括功能函数自定函式1. 运算子(自变量)包括:.整数(Itege) 如 8,-7,500,9 。B。实数(Rel) 如 8.,7。46.。.C字符串(Srin) 如 AuoCD,”13”D.串行(st) 如(” ”b ”c),( y)E。像素名称代码如enity name:600022F。档案代码如 .。.G。选择群集代码如Slcti st:规则3:表达式中的运算子,可以是另一表达式或子程序规则4: 多重的括号表达式,运算的先后顺序是由内而外、由左而右规则: 以档案型态存在的AtoLISP 程序(ASCII 档案),其扩展名必须是ls规则6: 撰写的环境,只要是一般的文书编辑软件、记事本,可编辑 ASII 档案者都适用规则7:以 du 功能函数定义新的指令或新的功能函式规则8:新定义的功能函式名称,若为C:函式名,则此函式可为 AutoCA新指令规则: 加载toLISP 程序的作法:= 指令:后直接键入 (lod ”P主檔名”)规则10: AutoLISP 程序中,在分号 ;后的内容均为批注,程序不处理,适时的增加批注,将使程序更具可看性、学习性及完整性规则: uLISP最常用的变量型态是整数、实数、字符串、点串行四种,变量的型态依据设定值而自动定义,变量会一直储存该值,直到被重新设定值或绘图结束自动消失规则2:以 setq 功能函数设定变量值 (setq 变量名称 设定值)规则13:欲在 AuoCAD的环境中,查看一变量值,指令:下键入!变量名即可规则1:以(defunC:函式名(自变量 变数) 。.。)程序中,程序中的变量若在/右边变量内,则称为区域变量,否则为整体变量二、学好 AutoLISP 的关键:充份掌握语法结构&功能函数的搭配!! 其时这个关键亦是学习其它程序语言的关键. 语法结构AutISP的语法结构规定的并不多,变量不用事先定义及宣告,读者可熟记下一单元有关重要的 AutoLIP基本语法结构,十四条设计上要求的规则 功能函数AutoS 之所以能功能如此强大,都有赖功能函数,其成员共约00个: 1. 一般性函数10个 2. ADS定义特殊函数9个 3. 配合 DCL 交谈框设计函数 2个各功能函数在使用上要求配合的运算子(自变量)型态,均有其规定,当然,您可不能乱给!例如: 指令:(+ 1 2 ”ABC”)传回:error :adgumtpe(自变量型态错误)因为函数不接受字符串,而ac 正是字符串指令:(ro ”bc) 传回:error : ad argut type (自变量型态错误)因为rtos函数只接受实数转字符串详细内容可参考下一章快速浏览 AutoLISP 功能函数至于各功能函数详细的语法与实例应用,读者请参阅本书第三篇AutSP功能函数详解三、重要的 AuoISP 的基本语法结构:规则1:以括号组成表达式,左右括号数一定要成双成对、相对称请依序在指令:列 (或指令:) 后面直接键入以下表达式指令:(+ 1 2 3 5) 传回加总和15指令:(4.58. 35) 传回最大值5指令:(mncmd p=*)显示拉下P1指令:(geint ”Enter ea:”)传回nte Rea:要求输入一个实数指令:(seq a(* 12.5 4) 传回相乘值 50,同时设定给变量指令:! 回应50 (注:! 号可用来查询变数值)指令:(min a 63) 响应最小值 (因为变量值a代表5)错误的范例:指令:(stq a ( .5 4)1传回1表示少了一个括号1) 此时,只要再补上一个 ) 即可指令:(et (* 15 42 传回2表示少了二个括号2 )) 此时,只要再补上二个 ) 即可规则:表达式型态 (操作数 运算子 运算子 运算子。)或 (函数(式) 自变量 自变量 自变量 .。)或(函数(式) 元素 元素 元素 。.)1.1操作数包括功能函数&自定函式功能函数:如上练习中的+、max、mnucd、getit、 set、*、in,详细内容可参考下一章快速浏览 toLIP 功能函数&第三篇 AuoLP功能函数详解自定函式:由设计者自行定义的新函式或子程序1.2 运算子(又称自变量或元素)包括:A。整数(Intger): 如8,1,50,9999正常范围: 2的1次方,介于-3268与+3267之间特殊范围: 若以 floa 函数将其转为实数,则范围2的32次方, 介于-248368与+1467之间B实数(Rea):如。5,-14正常范围: 带有小数点的数,精度可达 4 位有效数字C.字符串(Srg): 如 ”AtoCAD”,123,Eter Rea:,7。5”,正常范围: 以双引号内夹字符为认定,字符数不受限制.串行(Lit): 如(”a b” ”c),( y),(xy z),(a 83.5),。正常范围:以左右括号内夹元素为认定,元素型态非常弹性使用频率:在 utoLSP程序设计中应用非常高范例说明 : (a” 8 3.5 k(1 2)表示此串行内有五个元素a”表示字符串a、8表示整数、35表示实数.5、k表示变量kk、(1 2)表示串行( 2)2D 点坐标( ) 表示法 以二实数形成串行3D 点坐标( y ) 表示法 以三实数形成串行E。像素名称代码:如 (engeten)可找到像素的数据库串行F档案代码:如使用范围:开启(pen)档案作读档()、写档(w)使用时,所产生的代码,如下:范例说明: (tq fr (p”test.txt r) 回应 (stq fw (open bc。tx w”) 回应 G。选择群集代码: 如、Seectonset:1使用范围: 一个或数个像素所形成的选择集范例说明: (tq s (sset))选取对象: (可选择物体)选取对象:(可选择物体)选取对象: (按 ENTER 键) 回应Selectioet:1规则3 :表达式中的运算子,可以是另一表达式或子程序功能函数使用语法:(strat 字符串1 字符串2 字符串3 。.) 字符串结合功能函数(gesrng 提示) 要求键入一个字符串(rtos 实数) 将实数转换成字符串范例说明1: (trcat c”123”LIP) 传回:ab123LSP”范例说明2: (strat abc (getsin Entr Sting:) (rts 23。5))执行结果: EnerString: 键入任一字符串,假设是键入 HELO回应 abc*EL*13。45”本例中的srca函数在语法中要求的运算子必须是字符串型态运算子1= abc 是正常的字符串运算子运算子= 表达式 (gesrin ”ne Stig:”)传回结果是一字符串 ”*HELLO运算子3表达式(rtos 123.45) 传回结果是一字符串”13.45规则4:多重的括号表达式,运算的先后顺序是由内而外、由左而右范例说明: 请将10。5 17 - 1. / 的结果,设定给变量,并转换成AutoLS 的表达式解法技巧A:1:运用二分法、加括号:(025 + 1) (13.2 /7)2:操作数往前提: k =( (0。25 + 17)(13。2 / )3:操作数再往前提:k = ( (+ 10。2 7) ( 13. 7))4:转换完成: (setq kk ( (+ 105 7)(/ 13.2 7)))解法技巧B:1:运用二分法、加括号:(10.5 + ( (.2/ 7))2:操作数往前提: kk= ( 10。5 (17 - (13。2 7))3:操作数再往前提:k= (+ 10。5 ( 17 (/ 13.2 7)))4:转换完成:(setq kk (+ 10. ( 7 ( 1. 7))))规则5:以档案型态存在的AutLSP程序(ASCII档案),其扩展名必须是LSP规则6:撰写的环境,只要是一般的文书编辑软件,可编辑 ASII 档案者都适用如:PE、PE3、D3、书中仙、汉书、DIT、记事本.。等规则7:以defu 功能函数定义新的指令或新的功能函式 (注:自变量及区域变量可省略)程序结构型态:(defu 函式名称(自变量/区域变量): :: : 程序内容::)规则8:新定义的功能函式名称,若为C:函式名,则此函式可为utoCAD新指令(注:自变量及区域变量可省略)程序结构型态: (defun C:KK(自变量/区域变量): :程序内容: : : :)则加载此 LIS 程序后,可在指令:后直接键入新定义的 K 指令规则9: 加载AtoS程序的作法:指令:后直接键入 (lad LISP主檔名”)注:la 与字符串间的空格,可有可无注:load 与双引号间的空格,可有可无(loadIP主檔名”)范例: 在c:lspools目录下有一LISP程序tt。sp,而您目前的工作目录在:wg下 若环境设定之支持档案搜寻路径有指定到c:lspo目录,则欲使用加载t。lsp 指令:后键入(load tt) 即可 若环境设定之支持档案搜寻路径无指定到c:soos目录,则键入(loadtt) 后,会出现错误讯息如下: 无法开启tsp做输入错误: 载入失败(LODtt)*取消此时您可键入: 指令:(load ”c:sptolst) 或指令:(load c:lstolt)不可键入:(lo c:ltoolst)因为在AutoLIP 结构语法中已经用于跳脱码控制了规则1:AtoL 程序中,在分号 ;后的内容均为批注,程序不处理,适时的增加批注,将使程序更具可看性、学习性及完整性规则11:AtoIP最常用的变量型态是整数、实数、字符串、点串行四种,变量的型态依据设定值而自动定义,变量会一直储存该值,直到被重新设定值或绘图结束自动消失规则12:以 q 功能函数设定变量值 (etq 变量名称 设定值)范例: (setq a100) ;变量a 值设定成整数 10(etq b1235) ;变量b值设定成实数123。56(setq c ”Good morning!!!”) ;变量 值设定成字符串(setq p (getpont Entr POIT:));变量 pt值设定成点串行(stq p2 (listab) ;此时,a值是10,值是1256变量pt2值设定成点串行(0 123.56)(setq 3 (27 210) ;变量 3 值设定成点串行 (29720)注意:直接设定成点串行时,不能省略单引号否则会被误认 (2971)又是一个表达式, 7是操作数而出错!规则3:欲在 AtoAD 的环境中,查看一变量值,指令:下键入!变量名即可范例:指令:(etq aa (+ 100 75)) 传回:17指令:!a传回:15指令:(stqp (lst 90 0) 传回:(0 50)指令:!pp 传回:(90 0)指令:!w传回:l 空值无设定规则14:以(deun C:函式名(自变量 变数) .。.。.)程序中,程序中的变量若在/右边变量内,则称为区域变量,否则为整体变量(注:在 AISP 中,未赋予值的变量,其值皆响应ni)区域变量于此程序执行完毕后,其值自动消失整体变量于此程序执行完毕后,其值仍然存在范例: test.p 内容如下(defun c:t(/ sb sc)(se sa 100)(s b 0)(setq sc )(ses ( sasb sc))回到: 指令:键入(lad”) 传回:c:tt指令:tt 传回:3指令:!sa 传回:l (属区域变量)指令:!sb 传回:nil(属区域变量)指令:!s传回:ni (属区域变量)指令:!s 传回:30 (属整体变量)单元三:快速分类浏览toLS功能函数(一)一?看到以下那么多的 AutoLISP 功能函数,洋洋洒洒17大类:1. 您第一个念头,一定惊讶怎么会那么多,您可能快吓坏了! 2. 您第二个念头,一定会想那么多,怎么记得下来,您可能快放弃了! 二?其实,您应该要很兴奋而充满信心的,怎么说呢?1. 您有那么多的大将协助您撰写 AutoLSP 程序,当然左右又逢源,不但轻松,而且要快乐的不得了! 2. 这些函数只要您先浏览有印象,要用时,再翻查该函数,了解用途语法再加入到您的程序中就可以了!!! 3. 常用的函数,写久、用久后,自然会深深牢记脑海,想忘都很难,不常用的函数, 若硬要您记下来,相信连高手都很困难,更何况是初学的您!4. 您不用再摸不着头绪了,因为您幸运的拥有了本书,就是您成功的开始!! 第一类 数学运算功能函数项目函数语法传 回1.1(数值 数值 。.)累计实数或整数数值1.2(数值 数值 .。)减去数值.3(* 数值数值。)所有数值乘积。4(/ 数值 数值。.)第一个数值除以第二个以后数值的商1。5(+ 数值)数值11。6(1- 数值)数值-11.7(abs 数值) 数值的绝对值1(tan 数值)反正切值.9(os 角度)角度的余弦值,角度值为弪度110(ex 数值)数值的指数1.1(exp基数指数)基数的指数值1。12(ix 数值)将数值转换为整数值1.13(loat 数值)将数值转换为实数值。14(gcd 数值1 数值)二数值的最大公因子.5(l 数值)数值的自然对数值.16(mx数值 数值 .。)数值中的最大值1。17(min 数值 数值 .)数值中的最小值18pi常数p ,其值约为 3。1961。9(rem 数值1 数值2)二数值的相除的余数12(si角度)角度的正旋值,角度值为弪度1。1(sqrt 数值)数值的平方根第二类 检验 & 逻辑运算功能函数项目函数语法传 回2。(= 表示式1 表示式2)比较表示式1是否等于表示式适用数值及字符串2(/= 表示式1 表示式2)比较表示式是否大于等于表示式.( 表示式1表示式2)比较表示式 1是否 小于 表示式 22.4( 表示式1 表示式2)比较表示式 1 是否=小于等于 表示式 2.5( 表示式1 表示式2)比较表示式1 是否 大于表示式 226(= 表示式1 表示式2)比较表示式1是否大于等于表示式27( 数值)传回:数值的位ot值,(1的补码)(nd表示式1 表示式2)逻辑and的结果9(bool 函数 整数 整数)位式布尔运算2。0(eq 表示式1表示式2)比较表示式与表示式是否相同, 适用串行比较(实际相同)2.1(equl 表示式 表示式 差量)比较表示式1与表示式2是否相同, 差量可省略(内容相同)第三类 转换运算功能函数项目函数语法传 回3。1(agto 字符串模式)角度值的字符串转成实数.2(agos 角度 模式精度)角度转成的字符串值3。(atof 字符串)字符串转成实数值.4(toi 字符串)字符串转成整数值3.5(vunit数值原始单位 转换单位)数值转换单位后的值转换根据 aca.nt档案3.6(diof 字符串 模式)依模式将字符串转成实数值.7(itoa整数)整数转成字符串3.8(rtos数值 模式精度)实数转成字符串39(rans 点 原位置新位置位移)转换坐标系统值第四类 串行处理功能函数项目函数语法传 回4。(apped 串行 串行 。.)结合所有串行成一个串行4。2(assc 关键元素联合串行)依关键元素找寻联合串行中关系数据。3(car 串行)串行中的第一个元素通常用来求 坐标4。(car串行)串行中的第二个元素通常用来求y 坐标4。5(caddr 串行)串行中的第三个元素通常用来求z 坐标46(cdr串行)除去第一个元素后的串行4。7(cons 新元素 串行)将新元素结合到串行4.8(forac 名称 串行 表示式)将串行的每一元素对应至名称再依表示式执行响应4。(length串行)串行内的元素数量.10(lit 元素 元素)将所有元素结合成一串行。(li 元素)判断元素是否为一串4。12(mcar函数 串行1串行2 。)将串行1、串行2、等串行的 元素配合函数,求得新串行4.13(mmer 关键元素串行)依关键元素(含)以后的串行。14(h n 串行)串行的第n个元素4。(evere 串行)将串行元素依顺序颠倒过来的串行4。16(sbst新项旧项 串行)替换新旧串行后的串行第五类 字符串、字符、档案处理功能函数项目函数语法传 回5.1(ci字符串)字符串第一个字符的ASII码5。2(r 整数)整数所对应的ACI 单一字符串5。(cle文件名称)关闭档案5.4(opn 文件名 模式)开启档案代码,准备读取或写入数据5(read字符串)串行中的字符串的第一组元素.6(radchar 档案代码)经由键盘或档案中读取单一字符7(r-lne 档案代码)经由键盘或档案中读取一行字符串5。8(strcase字符串字样) 转换字符串大小写5.9(src字符串1字符串2 。.)将各字符串结合成一字符串5。10(sr 字符串)字符串构成的字符数(即字符串长度)5.1(substr 字符串 起始 长度)取出子字符串1(wcmath字符串 格式)T或ni,将字符串与通用字符进行比对51(wtechar数值 档案代码)将一ASCII字符写到档案或屏幕5。14(wite-lne字符串 档案代码)将字符串写到档案或屏幕上第六类 等待输入功能函数项目函数语法传 回.1(getangl基点提示)请求输入十进制角度数值,响应一弪度值提示及参考点可有可无。2(getcornr 基点 提示)请求输入另一矩框对角点坐标6。3(td 基点 提示)请求输入一段距离6。(getit 提示)请求输入一整数值5(getkord提示)请求输入关键词66(eore 基点提示)请求输入十进制角度,响应一弪度值不受agbae、angir影响6。7(getpoint 基点提示)请求输入一个点坐标6.8(etreal 提示)请求输入一实数6。9(gestrg提示)请求输入一字符串60(iitget位 字符串)设定下次 txx 函数的有效输入第七类 几何运算功能函数项目函数语法传 回7.(angl 点 点2)取得二点的角度弪度值2(dstance 点1点2)取得二点的距离7。3(iners 点1 点2点 点4 模式)取得两条线的交点7。4(snap 点 模式字符串)依辅助抓点模式取得另一坐标点7。5(poar 基点 弪度 距离)依极坐标法取得另一坐标点7.6(text 像素串行)取得文字符串的二对角点坐标第八类 像素处理功能函数项目函数语法传 回8.1(nt 像素名称)删除或逆删除像素8。2(enget 像素名称 应用程序串行)取出像素名称的数据串行.(last)取出图形数据中的最后一个像素8.4(enmae像素串行)建立一个新的像素串行8(ntmod 像素串行)依更新的数据串行更新屏幕上元体.6(etnet 像素名称)找寻图面中的下一个像素8.7(entsel 提示)请求选取一个像素,响应包含像素名称及选点坐标的串行.8(etupd 像素名称)更新屏幕上复元体图形8。(hande 图码)图码的元体名称。1(nentsel 提示) BLOCK所含副元体像素数据串行81(etsel 提示 点)OCK所含副元体像素数据(以 x4矩形表示)单元四:快速分类浏览AutLS功能函数(二)第九类 选择集、符号表处理功能函数项目函数语法传回。1(sad像素名称选择集)将像素加入选择集或建立一新选择集9。(sel 像素名称 选择集)将像素自选择集中移出3(ssge 模式 点1 点2)取得一个选择集9.4(sget ”过滤串行)取得依过滤串行所指定范围的选择集9。5(sslnt选择集)计算选择集的像素个数96(ssmeb 像素名称 选择集)响应像素名称是否包含于选择集内9。7(ame 选择集 索引值)依索引值取出选择集中的像素名称9。8(blnext符号表名称 T)检视符号表,有效的符号表: ”LAYER、LTE、”VIEW、”SYLE、”LOCK”9.9(tblsah 符号表名称 符号)在符号表中搜寻符号第十类 AutCA 相关查询、控制功能函数项目函数语法传 回0.1(coma ”utAD 指令 。.)呼叫执行AtoCAD指令。2(findfile 檔名)传回:应该文件名的路径及文件名103(getled 标题 内定档名扩展名旗号)透过标准AutoCAD档案对话DCL交谈框求得档案1。4(etenv 环境变量”)取得该环境变量的设定值,以字符串表示10.5(etvar 系统变量)取得该系统变量的设定值,以字符串表示106(setvr系统变量 值)设定该系统变量的值0。7(regap 应用类项)将目前的AuoCAD图形登记为一个应用程序名称第十一类判断式、循环相关功能函数项目函数语法传 回1。1(if 表示式2)检算比较式结果,如果为真,执行表示式1否则,执行表示式11。2(rpea整数 表达式 表达式。)重复执行 错误响应)释放ARX应用程序文件15.6(oarxload 文件名称指令定义)载入一个关连式的RX檔15.7(aloa AD 定义的函数 指令)载入一个关连式的AutLIP檔1。8(atoxlad 文件名称 指令定义)载入一个关连式的ADS檔15。(lad 应用程序 出错处理)加载AD应用程序15.1(xunload 应用程序 出错处理)释放DS应用程序 第十六类内存空间管理函数项目函数语法传回161(alo 数值)以节点数值设定区段大小12(expand数值)以区段数值配置节点空间16.3()强制收回废内存.(me)显示目前的内存使用状态16。5(mon)释放S应用程序16.(xdrom 像素名称)传回像素延伸数据允用得内存空间16。7(xdsiz 串行)传回像素延伸数据所占用的内存空间单元五:轻松快速的掌握AutLISP设计技巧一、AuoISP 程序设计的四个步骤:1。第一步骤:产生写程序的动机、预期目标2.第二步骤:构思程序流程、所需之LIP功能函数、相关变量订定&提示讯息3.第三步骤:利用文书软件(如记事本) 撰写xx.lsp程序4.第四步骤:回到utoCA下,加载uoIS程序以(ldLS主檔名”) 或 (oa”S主檔名”)5。第五步骤:执行新的 AutoLISP指令二、透过简单范例全程演练AutoLI:。第一步骤:动机、预期目标如图: 希望能在输入左下角点、矩形宽、矩形高后,自动的将图形依所给的条件画出,如此一来,尔后画这个图就轻松愉快了!2。第二步骤:构思程序相关变量订定(如下图) 定出程序名为pbx。lsp 构思程序流程、相关变量:变量名称可自行设定(如 pa、ww、h、pb、pc、pd、p1、mp2、mp、mp4),掌握三个原则: 不可重复好记不会混淆 适时的以分号;加上批注(efn c:box();以下 pa、ww、hh 值须由使用者输入(se a (请求输入左下角点)(seq w (请求输入矩形宽度实数值))(setq h (请求输入矩形高度实数值));以下p、c、p值须由程序依据pa、w、h求出(etq pb(依据相对极坐标法求出点坐标值)(eqpc(依据相对极坐标法求出c点坐标值))(set p (依据相对极坐标法求出pd点坐标值);以下依据 pa、pb、pc、pd 点画矩形(以pline指令画出矩形);以下p1、mp2、m3、mp4值须由程序依据pa、w、;& pb、pc、pd 值求出(seqm1 (求出 mp1 点坐标值))(setqp (求出p3 点坐标值)(t mp2 (求出 mp2 点坐标值)(t p4 (求出p4 点坐标值);以下依据 mp1、m2、m、mp点画出二条线(以 lie 指令画出 mp1 到 m3 的线)(以 line 指令画出 mp2 到 4的线))本程序所需的AtoISP功能函数及其用法(getpoi 基点 提示) 请求输入一个点坐标(gere提示) - 请求输入一实数(poar 基点 弪度 距离) 依极坐标法取得另一坐标点其中弪度值之转换为:十进制角度弪度值十进制转弪度公式0度000度1/2p (/ p 2) 或 (* pi0)10度ppi270度2/3p ( pi 1.5)N度p*N180(* ( n 180))(mnd ”AutoCA 指令” .。) -呼叫执行 AutoCA 指令注意: 指令及其副选项皆要用双引号处理假设 pa、p、pc、pd 皆为变量,其值为点坐标正确: (omand ”lie p pbc pd c”)错误: (oad plinepa bpc pd )原因:指令 lne 及其副选项 c 皆没用双引号括住错误:(cmmand pin pa ppc p c)原因:副选项c(代表 cloe) 没用双引号括住,会被误认为是toLISP的变量名,但事实又没有 c 这个变数错误:(cmman lie a ” pc ”pd c)原因:变数、pb、pd 不须用双引号括住注意:副选项中,若使用 ,连续二个双引号,代表按 NTE 键若想画一条 a到 c的 LIE 一条p 到 pd 的 LIN 正确: (ommnliep pc )(commnd ”lie” pb p )错误: (coman lin pap)(cmman inebpd)其它相关接近的功能函数。(tdit 基点 提示)?请求输入一段距离(getint 提示) ?请求输入一整数值(getcorne 基点 提示)?请求输入另一矩框对角点坐标(ca 串行) ?传回:串行中的第一个元素通常用来求x坐标(cad串行) ?传回:串行中的第二个元素通常用来求 坐标(cadr 串行) ?传回:串行中的第三个元素通常用来求z坐标3。第三步骤:利用E2、CE 或记事本,撰写 PBX.SP程序并储存到 C:IPTOOL目录下!!!(defn c:pbox();以下 p、ww、h 值须由使用者输入(q a (tpointEnerLeft/owPo:)(setq ww (gtrea Width:)(set h (gereal ”Heght:”));以下pb、p、d值须由程序依据pa、ww、hh求出(sq p (polar pa 0w)(tq pc (or pb(/pi 2) hh)(setqpd(polar c piww);以下依据 a、pb、pc、pd点画矩形(ommand pline pa bp pd c);以下p1、mp2、m3、p4值须由程序依据pa、ww、hh;& pb、pc、pd 值求出(stq mp1 (polr a 0 (/ w 2)))(setqmp2 (olrpb( 2) (/ hh 2))(se m3 (po ( ww 2))(setq 4(olarpa (/ pi2) (/ hh 2));以下依据 mp1、m2、m、p4 点画出二条线(commalnem mp3”)(cmman line p2 mp4 ”)4.第四步骤:回到 utCAD下,加载 tLIS 程序若您的AutoCAD环境设定中支持文件搜寻路径有加上 c:lisptool,则您可轻松载入 pboxs 程序指令:(load”pbox)传回:c:或 指令:(oad pox”)传回:x或 指令:(loapbolp) 传回:c:po若您的tAD环境设定中支持文件搜寻路径并未加上:lispol,则您载入 pb。lsp 程序时,须包含程序所在路径:错误的加载:指令:(lod pbo)会出现:无法开启pboxp做输入错误: 加载失败(LApb)*取消正确的加载方式: 指令:(oad c:/lisool/pbx”)传回:c:pbx或:指令:(oad :lpolpbo) 传回:c:ox5第五步骤:执行新的 AutoISP指令指令:pbx 成功加载后,直接键入 pbox指令EterLeftLowPoit:请给一左下角点Wdth: - 给一实数当宽度,例如0Hight: 给一实数当高度,例如指令:nil指令三、BOX.LP 程序产生的问题 改良1。原程序虽是成功的加载执行了,但却有以下几点小问题:问题:给完左下角点后,idth:及egh:提示却在同一行出现,应该一个提示各别一行才好??NS:很简单,只要做如下的改变,加入n即可!!(stqww(getreal Width:) (setq
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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