




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、autolisp实用编程四例江苏 崔华明autocad是一个功能强大的通用图形设计软件,其内嵌的autolisp语言为用户进行二次开发提供了方便。下面就介绍几则用autolisp编写的实用程序,这些程序相当于新增的autocad命令,可以弥补autocad本身的一些不足,为日常使用带来方便。1快速更改文本的大小在标准的autocad中,要更改已有文本的大小,需要使用change命令。该命令的缺陷是:即使只更改文本的大小,也要重新确认文本的插入点、字型、倾斜角等一系列参数。也就是说,除输入文本的新高度值外,还需要按5次回车键才能完成一个文本的更改!而且每次只能修改一个文本。这对于同时更改多个文本
2、的大小非常不便。本文的autolisp程序使这一工作变得十分方便和快捷。使用方法如下:在autocad的command提示下,打入命令:cthautocad将提示“selectobjects:”,这时可以使用autocad允许的任意方式选择目标。对于有多个文本需要更改的情况,使用窗口选择比较方便,而且你不用担心选择窗口中包含了非文本目标,程序能够自动在选择的目标中查找出文本实体,并只对文本进行更改。选择目标后,autocad提示“newtextheight:”,这时输入一个新的文本高度值然后回车,则所有选中的文本被更改成新设定的高度。2延伸直线的长度在实际使用中,常常要将一条直线延伸指定的长度
3、。通常的做法是:在需要延伸的直线的端点画一个辅助圆,圆的半径等于直线要延伸的长度,然后使用extend命令将直线延伸到与圆相交,最后删除辅助圆。本文的autolisp程序将使你非常容易地实现这一点。你只需选择要延伸的直线并输入要延伸的长度即可,其余的工作由程序自动完成。使用方法如下:在autocad的command提示下,打入命令:stl然后根据提示选择要延伸的直线(选择点要靠近直线需要延伸的端点),并输入延伸的长度。该程序将自动在离选择点较近的直线端点,按指定的长度延伸直线。3快速画直线在画给定坐标点的直线时,需要通过键盘输入坐标值。这样的情况下当然是利用右边的数字键盘输入较为方便。但若直接
4、使用autocad的line命令画直线,在x和y两个坐标值之间需要输入一个逗号“,”作为分隔,而数字键盘区又没有该逗号,所以仍然不方便。本文的autolisp画直线程序只要求用户输入坐标值,而由程序自动调用line命令画出直线,因此用户不用离开数字键盘区就能完成工作。使用方法如下:在autocad的command提示下,打入命令:xlin然后根据提示依次输入x和y坐标。若要结束画线,在程序提示输入x坐标时直接打回车即可。4围绕圆弧写一段文本有时为了美观的需要,希望能够围绕一段圆弧来写文本文字,本文的程序提供了这一功能。使用方法如下(粗体字表示autocad的提示,尖括号“中的部分是需要用户输入
5、的内容):command:atxtstartpointoftext:指定文本的起点textheight:指定文本的高度值selectarc:选择圆弧text:输入文本输入以上相关内容后,程序自动围绕指定的圆弧写文本。如果当前的文本字型有固定高度,则程序不提示“textheight:”。本文给出的程序只适合写英文文本,由于汉字是双字节,所以若要写汉字,需要对程序作一些修改。需要修改的地方为程序中第二个if函数,用下面的代码替换原来的if函数:(if(tsize0)(commandtextcptsiztr(substrtxtcnt2)(commandtextcpttr(substrtxtcnt2)
6、紧接该函数,在其后再增加一行代码:(setqcnt(cnt1)修改后的程序支持中文文本(不支持中、英文混合书写)。5程序使用说明以上每个功能的autolisp程序既可以以独立的文本文件形式存放,也可以合并在一个文本文件中。若以acadlsp作为程序文件名,并将文件放在autocad支持文件所在的路径中,则在启动autocad时系统会自动加载该文件。否则需要通过系统菜单或load函数加载autolisp程序文件,然后才能使用。load函数的调用格式是:在autocad的command:命令提示状态下,打入:(loadautolisp文件名)在autolisp文件名中可以包含dos路径,但需要注意
7、的是:在autolisp中,反斜杠“”有特殊的定义,因此要使用正斜杠或连续两个反斜杠来表示dos路径中的反斜杠。如:(loadacadcad1lsp)扩展名lsp可以省略。6autolisp程序以上四个功能的autolisp程序如下,该程序已在acadr13forwindows、中文windows95环境下调试通过。它适用于autocad100以上的dos和windows版本。;更改文本高度程序(defunc:cth(sstxsizenindexenttypeoldsizenewsizeent1)(setqss(ssget)(setqtxsize(getdistnnewtextheight:)
8、(setqn(sslengthss)(setqindex0)(repeatn(setqent(entget(ssnamessindex)(setqindex(1index)(setqtype(assoc0ent);检查选择的实体是否为文本(if(text(cdrtype)(progn(setqoldsize(assoc40ent)(setqnewsize(cons(caroldsize)txsize)(setqent1(substnewsizeoldsizeent)(entmodent1)(princ);延伸直线的长度程序(defunc:stl(eentpt1pt2madis)(setqe(e
9、ntselnselectline:);取得选中实体的数据(setqent(entget(care)(setqpt1(cdr(assoc10ent)pt2(cdr(assoc11ent);找出离选择点最近的直线的端点(if(distance(cadre)pt1)(distance(cadre)pt2)(setqptpt1m10a(anglept2pt1)(setqptpt2m11a(anglept1pt2)(setqdis(getdistptnstretchlength:)(setqpt(polarptadis)(setqe(subst(consmpt)(assocment)ent)(entmo
10、de)(princ);快速画直线程序(defunc:xlin(xy)(setvarcmdecho0)(commandline)(setqxt)(while(xnil)(setqx(getrealnenterx:)(if(xnil)(progn(setqy(getrealentery:)(command(listxy)(command)(princ);围绕圆弧写文本程序(defunc:atxt(ospt1styetsizesizarctxtrlendiahfintangcntssnangpttr)(setqos(getvarosmode)(setqpt1(getpointnstartpointoftext:)(setqsty(getvartextstyle)(setqe(tblsearchstylesty)(setqtsize(cdr(assoc40e)(setqsiztsize);检查当前的文本字型是否为固定高度(if(tsize0)(setqsiz(getdistpt1ntextheight:)(setvarosmode4)(setqarc(getpointnselectarc:)(setvarosmodeos)(setqtxt(getstring1ntext:)(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民宿短租平台用户入住及退房流程管理协议
- 国际法律顾问团队派遣服务协议
- 专业美容美发技术培训与创业支持合同
- 互联网支付货币合规管理补充协议
- 艺术展览馆运营与管理委托合同
- 俄罗斯能源输送管道监理与维护补充协议
- 电力设施租赁补充协议(储能电站建设)
- 房产抵押贷款与互联网金融创新服务合同
- 快餐连锁品牌加盟及绿色有机食材供应协议
- 仓库租赁补充协议(含消防)
- 中国低空经济发展指数报告(2025版)
- 2025年乡村振兴战略相关考试试题及答案
- 2024-2025学年全国版图知识竞赛(小学组)考试题库(含答案)
- JJF1033-2023计量标准考核规范
- MOOC 营销管理-电子科技大学 中国大学慕课答案
- 语文五年级 【知识精讲】7.阅读(2)文言文阅读
- 社会心理学8-人际关系课件
- QC-R 596-2017高速铁路板式无砟轨道自密实混凝土高清-无水印
- 2023高中学业水平合格性考试历史重点知识点归纳总结(复习必背)
- 邻补角、对顶角、同位角、内错角、同旁内角经典习题-一对一专用
- 常见病媒生物分类鉴定
评论
0/150
提交评论