给一段自动修改线为指定宽度的AutoLisp程序
问题的提出
在用AutoCAD绘图时遇到需要修改别人画好的图的各种线为指定宽度的问题。我们都知道应该用PEdit命令。但是,你会发现,修改少量的线还可以,当需要修改的线数量巨大的时候,重复的工作量就会大的惊人了。这时候AutoLisp自动执行的优势就派上用场了。
实现目标
我希望将所要修改的线用尽可能少的的输入实现自动修改为指定宽度——仅输入命令,选择线两个动作。
实现代码
;自动将选定的线改成设定宽度:
(defun c:lw ()
(setq w 90) ;设定的线宽
(setq ln (entsel "\n选择线:"))
(setq st (cdr (car (cdr (entget (car ln))))))
(if (equal st "LWPOLYLINE")
(command "pedit" ln "W" w "")
(command "pedit" ln "Y" "W" w "")))
使用方式
首先将该段代码保存为一个文件(如:peditw.lsp),然后在AutoCAD工具菜单中用AutoLisp子菜单加载程序,就可以像普通AutoCAD命令(命令名:lw)一样使用了。
后记
本程序仅是为简化指定工作而实现。如果需要更通用,需要扩展以下两个功能:
- 对设定的线宽可以通过设定及读取系统变量(如PLine的线宽系统变量)来实现,就可实现修改任意自定义线宽。
- 增加 (equal st “LWPOLYLINE”) 部分的比较范围,可实现修改任意线(SPline线等不能修改为PLine线的除外)为指定宽度。
有兴趣的朋友们可以去进一步完善。
标签:线宽,线为,ln,指定,修改,宽度,AutoLisp 来源: https://blog.csdn.net/chinazhangyong/article/details/99753121
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。