用AUTOLISP对AUTOCAD进行二次开发
- 格式:pdf
- 大小:607.62 KB
- 文档页数:14
基于AutoLISP 的AutoCAD 二次开发研究Reaserch on AutoCAD secondary development based on AutoLISP崔联合,于华艳,刘 江,万文龙CUI Lian-he, YU Hua-yan, LIU Jiang, WAN Wen-long(常州机电职业技术学院,常州 213164)摘 要:为提高AutoCAD软件的绘制效率和定向功能。
采用Autolisp对AutoCAD软件进行二次开发,以实例介绍了应用Autolisp对AutoCAD进行二次开发的过程。
软件系统可快速开发出各类零件的命令集,通过输入相应尺寸能实现零件的快速绘制。
Autolisp开发工具能实现AutoCAD 的定向开发,提高AutoCAD的绘图效率和准确性。
关键词:Auto CAD;AutoLISP;二次开发;销轴中图分类号:TP391.7; TH132.417 文献标识码:A 文章编号:1009-0134(2019)02-0047-04收稿日期:2018-05-11作者简介:崔联合(1968 -),男,安徽铜陵人,教授,硕士,主要从事材料成形及机械制造等方面的教学与科研工作。
0 引言Autolisp 是美国Autodesk 公司开发的lisp 语言,该语言因语法简单、函数强大、编写环境宽、直译等特点,而在AUTOCAD 软件的二次开发方面得到广泛应用,特别是在机械行业,其影响及普及程度处于最重要地位。
为了进一步扩充该软件的功能和应用行业,专业人士应用AutoLISP 技术对AUTOCAD 进行二次开发的研究一直没有停止过,也取得了较丰硕的成果。
谢中梅等[1]用Auto LISP 和Visual Basic 开发的程序,完成了AUTOCAD 软件图表的设计;张勇[2]研究了基于特定设计对象,AutoCAD 的二次开发系统;张洪雷[3]应用AutoLISP 技术,就如何制定产品结构和生产方案进行了研究;邱林[4]等用AutoLISP 编程,对渐开线弧齿圆柱齿轮实现了参数化建模。
2020年第22期信思与电脑China Computer & Communication基于AutoLISP 的方过渡接头展开放样图绘图命令的二次开发蓝海鹏(中国恩菲工程技术有限公司,北京100038 )摘 要:通过AutoLISP 语言对AutoCAD 进行二次开发,采用对话框交互方式获取参数,利用AutoCAD 强大的命令工 具并借助三维图形,实现了方圆过渡接头展开放样图的自动绘制,避免了烦琐的数学解析和公式推导,提高了工作效率 和准确性。
关键词:AutoLISP;二次开发;展开放样;自动制图中图分类号:TH136; TP391.72 文献标识码:A 文章编号:1003-9767 (2020) 22-045-04Drawing Command Secondary Development for Lofting of HemisphericalDome Based on AutoLISP LAN Haipeng(China ENFI Engineering Corporation, Beijing 100038, China)Abstract : The secondary development of AutoCAD is carried out through AutoLISP language, parameters are obtained through dialog box interaction, the powerful command tool of AutoCAD and three-dimensional graphics are used to realize the automatic drawing for Lofting of Hemispherical Dome, which avoids the tedious mathematical analysis and formula derivation, and improves the work efficiency and accuracy.Keywords : AutoLISP; secondary development; lofting; automatic drawing0引言方圆过渡接头又称“天圆地方”,是指方形管道与圆形 管道之间连接过渡的飯金构件,通常采用钢板弯折焊接而成, 在通风管道、料斗料槽等场合都有广泛应用。
基于AutoLisp的AutoCAD二次开发在测绘图形处理中的应用摘要:本文介绍了如何利用Autolisp语言对AutoCAD进行二次开发,并实现了根据断面图来半自动化生成高程点,其结果大大提高了根据断面图绘制平面图的质量和速度。
关键词:AutoCAD Autolisp 自动化程序断面1引言在实际的测绘生产工作中,我们经常会遇到利用已有的断面图来绘制平面图进而复原地形的情况,想要绘制平面图高程点元素是必不可少的,那么我们就必须根据已有的断面图来生成相应的高程点。
本文介绍了如何利用Autolisp语言在AutoCAD中实现根据设计断面图半自动化生成高程点,简化了原来利用AutoCAD测距量取距离,计算桩号、偏距、高程,再用Cass交互展点画出高程点的生成办法,在提高了准确率的同时也提高了工作效率。
2 Autolisp简介Autolisp是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor(表处理程序)的缩写。
LISP语言具有语法简单,通俗易懂等特点,通过autolisp编程,可以节省工程师很多时间。
AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具[[1]]。
在工程测量领域中,AutoCAD得到了普遍应用,在日常工作中有许多人在研究使用AutoCAD,并画出了很多工程图纸。
然而,人们经常会感觉到作图效率还是不够高,这是因为AutoCAD是一个通用的绘图软件,并不具备专业特色。
AutoCAD开放的结构为不同的使用者留出了广阔的空间,提供了许多二次开发工具,AutoLISP是其中最强大的一个,Autolisp是AutoCAD自带的一门编程语言,无需安装,是为扩展和自定义AutoCAD功能而设计的编程语言,Autolisp易于使用,并且非常灵活,多年来一直是自定义AutoCAD的标准。
Autolisp嵌入AutoCAD内部,它不仅具有一般高级语言的基本结构和功能,而且还具有强大的图形处理和数据交换功能。
应用AutoLISP和DCL对AutoCAD的二次开发苗现华,吴传山(健雄职业技术学院,江苏太仓215411)摘要:通过实例说明,应用AutoLISP和DCL,能够编写出人机交互强,功能强大的程序,对AutoCAD进行十分有效的二次开发,从而提高绘图效率,并使AutoCAD真正地起到辅助设计作用。
关键词:AutoLISP;DCL;AutoCAD;二次开发中图分类号:TP391.72 文献标识码:A1.概述AutoCAD是当今风靡世界的CAD应用软件,为了提高其绘图效率,增强其设计能力,常会用到AutoLISP及DCL对其进行二次开发[1]。
由于AutoLISP及DCL均附着于AutoCAD软件内,AutoLISP是编写绘图、编辑图形等程序的表处理语言,易学易用且功能强大;DCL是用户对话框设计语言,可设计出简洁、美观且人机交互强的用户对话框。
二者配合使用,对AutoCAD有着强大的二次开发能力。
以双头螺柱为例,说明如何应用AutoLISP和DCL对AutoCAD进行二次开发及开发效果。
2.开发流程2.1 用DCL编写用户对话框界面根据设计意图,编写用户对话框,如图1所示。
图1用户对话框界面用户点击图中单选按钮,选取绘图所需的国标及等级代号,右侧则展现对应螺柱样式的图片。
在图中下拉列表框中选取所需公称直径d和公称长度l,选取或输入所需旋转角度angle,点击“确定”按钮在AutoCAD 界面中绘出所希望的双头螺柱。
对话框文件取名为stlz.dcl,源程序如下:stlz:dialog{label=“双头螺柱”;:row{:boxed_radio_column{label="国标及等级代号";:radio_button{ label="GB/T 897-1988 A";key="k897A";}:radio_button{ label="GB/T 897-1988 B";key="k897B";}:radio_button{ label="GB/T 898-1988 A";key="k898A";}:radio_button{ label="GB/T 898-1988 B";key="k898B";}:radio_button{ label="GB/T 899-1988 A";key="k899A";}:radio_button{ label="GB/T 899-1988 B";key="k899B";}:radio_button{ label="GB/T 900-1988 A";key="k900A";}:radio_button{ label="GB/T 900-1988 B";key="k900B";}}:image{key="kimage";color=-2;width=30;aspect_ratio=1;}}:row{:popup_list{label="公称直径d";edit_width=4;key="kpopd";}:popup_list{label="公称长度l";edit_width=4;key="kpopl";}:popup_list{label="旋转角度angle";edit_width=4;key="kpopa";}:edit_box{edit_width=4;key="ke box";}}spacer_1;ok_cancel;}2.2 制作SLD文件为了实现用户对话框中的八种类型的双头螺柱的图像显示,首先在AutoCAD软件的绘图区域中分别绘制这八种类型的双头螺柱,然后在命令行中输入“mslide”命令,分别创建相应的幻灯片文件,文件分别命名为stlz1. sld~stlz8.sld。
(defun s1()(SETQ dcl_id_1(LOAD_DIALOG "C:/zhou.DCL"))(setq do_what_1 2)(while (>= do_what_1 2)(if (= null (new_dialog "s1" dcl_id_1))(progn(princ "\n未能显示对话框。
")(setq dialogshow nil)(exit));end progn);end if(S_IMG_zhou "img_1")(ACTION_TILE "dt_1""(set_tile $key $value)(act_1)(if(> dt_1 130)(done_dialog 4))") (ACTION_TILE "sll_1""(set_tile $key $value)(act_1)(if (< sll_1 sl_1)(done_dialog 2))") (ACTION_TILE "rt_1""(set_tile $key $value)")(ACTION_TILE "ct_1""(set_tile $key $value)")(ACTION_TILE "pick_1""(setq hhh 0)(done_dialog 5)")(ACTION_TILE "at_1""(set_tile $key $value)(act_1)(if (> at_1 90)(done_dialog 3))") (ACTION_TILE "sl_1" "(set_tile $key $value)(act_1)(if (< sll_1 sl_1)(done_dialog 2))") (ACTION_TILE "cancle" "(done_dialog 0)")(ACTION_TILE "accept" "(act_1)(if (/= hhh 0)(done_dialog 6)(setq hhh 1))(done_dialog 1)");(setq do_what_1 (start_dialog))(cond ((= do_what_1 1)(setq pst_1 (list xx_1 yy_1)))((= do_what_1 2)(alert "L1应小于L2\n请重新输入"))((= do_what_1 3)(alert "请输入0到90之间的数"))((= do_what_1 4)(alert "您输入的轴径太大\n请输入0到130之间的数"))((= do_what_1 5)(command "osnap" "end,int,mid")(setq ps_1(getpoint "请您点取p1点:"))(command "osnap" "off")(setq xx_1(car ps_1) yy_1(cadr ps_1)))((= do_what_1 6)(alert "请您点取p1点!")));end cond);end while(unload_dialog dcl_id_1)(if (> do_what_1 0)(draw_1))(setvar"osmode"osmode)(setvar"cmdecho"cmdecho)(setvar"blipmode"blipmode);恢复系统变量,不影响原有操作。
本科毕业论文(设计)题目:应用Auto lisp在南方CASS中批量处理图形数据学院:山西大同大学煤炭工程学院班级:07测绘一班姓名:付智华指导教师:徐广翔职称:副教授完成日期: 2011 年 6 月 15 日山西大同大学2011 届本科毕业论文(设计)选题审批表学院:煤炭工程学院系别:采矿工程系专业(专业方向):测绘工程山西大同大学2011届本科毕业论文(设计)开题报告AutoLisp ExamplesAuto lisp BasicsAuto lisp is the grand daddy of Auto CAD programming tools and you’d be amazed at the amount of Auto lisp programming tools you can find on the Internet. Given a little knowledge you can integrate existing Auto lisp routines into your own and gain tremendous power over your AutoCAD based installation.The first thing to understand is that Auto lisp has a couple of key files and a key function that perform startup operations for you。
The key files are called ACAD。
LSP and ACADDOC。
LSP and the key function is called S::STARTUP and their operations are as summarized here:ACAD。
LSP – This file loads when AutoCAD starts up. Any programming you place within this file will be automatically loaded every time AutoCAD starts。
基于Autolisp的AutoCAD采点功能二次开发作者:范大宇来源:《中国新技术新产品》2015年第20期摘要:Autolisp是一种嵌套在AutoCAD内部的编程语言,它是LISP语言和AutoCAD有机结合的产物,Autolisp是针对AutoCAD二次开发而专门设计的编程语言。
在传统车加工手动编程中,首先在AutoCAD中绘制一比一图形,在使用Autolisp中自带的定位点功能,使用鼠标进行采点操作,将显示的坐标X、Y复制到程序文档中,更改坐标轴字母,这样程序中所需要的点位就采集完毕,这样的一个点接一个点的处理方法既效率低下又极易发生错误。
关键词:Autolisp;二次开发;数控车中图分类号:TP391 文献标识码:A1 引言AutoCAD软件作为基础绘图软件,已经大量应用于机械行业和建筑行业。
本文主要论述的是在机械行业中,应用Autolisp对AutoCAD进行二次开发,开发手动采点功能,进而应用在数控程序的编制中。
2 简介通过使用Autolisp对AutoCAD进行二次开发,开发出专门进行采点的程序插件,只需在AutoCAD中的一比一图形上进行鼠标连续点击,对应的点位即保存到固定路径的文件中,对应的数控程序字母,极大的提高的程序编制效率。
3 总体方案3.1 新件文件操作由于该程序将采集点位保存到固定路径的文件中,所以在程序开始部位,我们先要在该路径新件文件。
通过open命令,尝试打开D盘根目录下名字为“cnc.txt”的文件,然后关闭文件;如果该文件不存在,则在D盘根目录下新建一个名字为“cnc.txt”的文件,并且打开文件然后关闭文件。
该操作的子程序名为writef2,如下:当成功进行一次采点操作后,进行第二此采点操作时,需要先对“cnc.txt”文件进行清空操作,这样才能更好方便的进行第二此采点操作。
我们使用的仍然是open命令,挂载的”w”参数在判断出存在“cnc.txt”文件后即进行清空操作。
浅谈基于AutoLISP的AutoCAD二次开发技术在以AutoCAD制图的工程应用中,经常需要开发一些符合工程需求的AutoCAD工具。
AutoLISP语言是一种对AutoCAD进行二次开发的灵活手段。
本文通过一个从上到下逐行写文本的简单程序,探讨了基于AutoLISP的AutoCAD二次开发程序设计的基本步骤和具体实现过程。
标签:AutoCAD AutoLISP 二次开发AutoCAD是由美国Autodesk公司开发的通用计算机辅助绘图和设计软件包,它具有易于掌握、使用方便、体系开放等特点。
已广泛应用于机械、建筑、电子、土木工程、轻工等各个领域。
目前AutoCAD最新的版本是AutoCAD2006。
一、AutoLISP及二次开发的概念AutoLISP 语言是嵌入在AutoCAD内部的LISP编程语言,它是LISP语言与AutoCAD有机结合的产物。
AutoLISP的嵌入使AutoCAD真正成为能进行计算机辅助设计、绘图的CAD软件。
在使用AutoCAD制图中,大量操作都是通过鼠标点击控件和键盘输入相应参数组合实现的。
有时在制图过程中会需要做大量重复的操作,这些操作又具有一定的规律。
那么,便可以通过AutoLISP开发出AutoCAD中可以使用的自定义控件,在点击该控件后,大量繁琐的执行过程交由后台执行,用户仅需输入一些必要的参数,即可实现制图效果。
这种方法就是所谓的“二次开发”。
显然,二次开发能够提高工作的效率和减轻工作量。
二、使用AutoLISP进行二次开发的实例及过程剖析(一)题目。
下面通过编写一个从上到下逐行写文本的小程序段来简要分析AutoLISP的开发过程。
题目要求如下:1. 用户只需点击一个自定义工具按钮,系统即会提示用户输入首行文本所在位置、相邻两行文本偏移量、文本高度这三个参数。
其中,首行文本所在位置由鼠标在屏幕上点击获得,文本高度默认值为4。
2. 用户依次输入文本,回车表示结束当行输入。