- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
AutoLISP在工程制图中对命令的简化应用
?
?
刘承权刘昌文王艳
【摘要】AutoCAD工程制图中,使用AutoLISP进行一些适应需要的简单编程,实现一个命令替代多个命令或命令多步执行,从而简化操作,使工程制图变得更快捷。
【关键词】AutoLisp;编程;工程制图;AutoCAD
:G434:A:2095-2457(2018)23-0084-002
DOI:10.19694/j.cnki.issn2095-2457.2018.23.035
【Abstract】InAutoCADengineeringdrawing,AutoLISPisusedtocarryoutsomesimpleprogrammingtomeettheneeds,andasinglecommandisimplementedinsteadofmultiplecommandsormulti-stepexecution,whichsimplifiesoperationandmakesengineeringdrawingmorerapid.
【Keywords】AutoLisp;Programming;Engineeringdrawing;AutoCAD
0引言
AutoCAD工程制图中,常常会遇到需要不断重复使用某个命令的情况,而命令使用时,通常还需要继续输入数个选项,这样的命令使用起来枯燥而繁琐。一些AutoCAD插件虽然能提供一些功能,但未必符合自己的应用场景。使用AutoLISP对命令进行一些适应需要的简单编程,就能简化命令操作,从而提高制图效率。AutoLisp可以直接调用AutoCAD中的全部命令,因此我们在使用AutoCAD命令完成的一系列操作都可以用AutoLisp来完成。
1基本原理
下面的例子定义了一个函数“n”,在AutoCAD中加载这个例子后,输入命令“n”,即可执行。“;”符号后面的描述是注释,程序执行时会忽略这些内容。
(defunc:n();;;定义名为n函数,也就是在AutoCAD中输入的命令n,可以根据需要定义,不要与已有AutoCAD命令相同;
(commandZOOMd);;;command函数是本文的主角,用于执行AutoCAD中的命令,其后跟随的“ZOOM”就是视图缩放命令,“d”是执行“ZOOM”命令后出现的选项字段;
);;;括号注意配对;
从上面的例子可以看出,就是定义一个函数的名称,然后调用AutoCAD的命令,就简单的完了需要的功能。
2应用场景实践
2.1动态缩放:
(defunc:n()
(commandZOOMd)
(princ)
)
在某些比面积较大的项目图纸中,比如市政工程,我们需要放大视图检查多个细节,我们可以不断的滚动鼠标中间来放大缩小,也可以输入命令“zoom”然后选择字段“d”来查看,在多个细节上检查来回放大缩小,确实感觉操作繁琐,这个例子看似很简单,但却能解决这个问题。使用时,先加载程序,输入命令n,鼠标变成一个矩形框,将矩形框移动到需要查看的细节位置,点击空格键即可放大该区域,可以用空格重复该命令而不用再输入中间选项。
2.2合并多段线
(defunc:jn()
(setqpet(getvarPEDITACCEPT))
(setvarPEDITACCEPT1)
(setqss(ssget((0.ARC,*LINE))))
(if(andss)
(command_peditmssj)
)
(setvarPEDITACCEPTpet)
(princ)
)
当我们需要合并线段、圆弧、多段线时,尤其是在钢箱桥梁展开图中,曲线是由小段的线段组成,线段数量大,需要合并为一条多段线。通常做法是,输入“PEDIT”命令,根据提示依次输入“M”,选择线段,输入“J”,输入“模糊距离”……步骤多,并且必须是先输入命令再选择,有时候常常忘记顺序,先选择了线段对象,再输入命令,这是发现之前的选择无效必须重新选择。这个例子实现了可以在命令之前或之后选择都可以,中间的选项都不用再輸入,输入一次命令即可完成。
2.3定制打印
(defunc:pt()
(setqslcnil)
(setqslc(ssget((0.lwpolyline)(8.图纸))))
(if(andslc)
(progn
(setqtkn(sslengthslc))
(setqi0)
(repeattkn
(setqtki(ssnameslci))
(setqtki_inf(entgettki))
(setq
您可能关注的文档
- 建筑工程造价预算控制要点研究1.docx
- 全程优化急诊护理对急性脑梗死患者的抢救效果观察.docx
- 中国行业趋势报告-特别报告.docx
- 全过程造价管理在土建工程中的有效应用.docx
- 基于核心素养的中职化学教学策略探索.docx
- 水利工程中的河道生态护坡施工技术研究.docx
- 互联网背景下大数据征信应用研究.docx
- 案例教学法在远程开放教育管理类专业中的应用反思.docx
- 家校合作在学生学习中的作用研究教学研究课题报告.docx
- 小学语文课本剧表演与语文素养教学研究课题报告.docx
- 小学英语课堂中的情境创设与体验教学研究课题报告.docx
- 反思性学习在教学中的实施研究教学研究课题报告.docx
- 小学音乐与语言学习的整合研究教学研究课题报告.docx
- 体验式学习在初中课堂的实践教学研究课题报告.docx
- 2024年四年级英语下册 Fun Time 1(Recycle 2)说课稿 人教精通版(三起).docx
- 高中数学概念理解的误区与对策教学研究课题报告.docx
- 数字化工具在学科教学中的有效应用教学研究课题报告.docx
- 积极心理学在高中心理健康教育中的应用教学研究课题报告.docx
- 学习障碍学生的有效教学与支持策略教学研究课题报告.docx
- 家庭因素与学生学业成就的关系教学研究课题报告.docx
文档评论(0)