基于AutoLISP的AutoCAD二次开发研究

2019-06-24 12:28
制造业自动化 2019年2期
关键词:销轴二次开发调用

(常州机电职业技术学院,常州 213164)

0 引言

Autolisp是美国Autodesk公司开发的lisp语言,该语言因语法简单、函数强大、编写环境宽、直译等特点,而在AUTOCAD软件的二次开发方面得到广泛应用,特别是在机械行业,其影响及普及程度处于最重要地位。为了进一步扩充该软件的功能和应用行业,专业人士应用AutoLISP技术对AUTOCAD进行二次开发的研究一直没有停止过,也取得了较丰硕的成果。谢中梅等[1]用Auto LISP和Visual Basic开发的程序,完成了AUTOCAD软件图表的设计;张勇[2]研究了基于特定设计对象,AutoCAD的二次开发系统;张洪雷[3]应用AutoLISP技术,就如何制定产品结构和生产方案进行了研究;邱林[4]等用AutoLISP编程,对渐开线弧齿圆柱齿轮实现了参数化建模。本研究以销轴为例详细介绍AutoCAD软件AutoLISP二次开发的方法与步骤。

1 基于AutoLISP的AutoCAD二次开发技术简介

AutoLISP是AutoCAD内部解释型的API语言,它适用于交互式程序的二次开发,它不是面向对象的语言,而是一种人工智能语言。嵌入到AutoCAD里的AutoLISP语言是COMMON LISP语言的一个子集,它拥有强大的可进行图形处理的函数,以一般高级语言结构形式实现图形处理。其程序可被用来进行重复操作,以完成图形的重复性处理任务,软件可通过定制化的开发和程序编写,在AutoCAD 软件上生成相应的命令。

针对AutoCAD软件的二次开发,AutoLISP增加了许多功能,使AutoLISP程序与AutoCAD绘图命令融为一体;利用AutoLISP语言程序编写功能,可实时对数据库进行访问、修改,以达到交互式设计的目的。Visual LISP是AutoLISP的衍生产物,至Visual LISP引入到AutoCAD后,它扩展了AutoLISP语言功能,具备了Active X自动化API与对象交互技术,同时,扩展了AutoLISP反馈事件的能力。与AutoLISP相比,VisualLISP还提供了一个集成开发环境(IDE),通过利用Active X/COM自动化API等技术,使AutoLISP程序开发周期缩短,源程序泄密性得到有效拟制,同时,Visual LISP因避免了LISP程序繁锁的调试过程,因而其效率明显提高,编译后程序的运行效率比解释型AutoLISP程序快几倍[5,6]。

2 AutoLISP二次开发实例

图1为本次AutoLISP二次开发实例零件—销轴工程图。表1为该销轴尺寸表。从图表中可知,该零件为机械零件设计手册中的标准零件,其由一系列尺寸组成,在实际工程绘图中,若对每一尺寸进行绘制,则其工作效率很低,而采用AutoLISP编程驱动销轴尺寸值,则可及时完成零件工程图的绘制。其二次开发步骤按图2所示流程进行。

图1 销轴工程图

图2 二次开发流程

表1 销轴尺寸表

零件结构尺寸分析主要是研究零件的形状、尺寸和角度值,列出尺寸值或角度值的换算公式,为AutoLISP程序编写做好前期准备工作。建立dat文件是要建立零件尺寸数据库,如表1所示,即建立AutoLISP可以读取的数据库文件,dat文件的输入要与原始数据一一对应,列项名称可以变换,但一定要与AutoLISP程序中的名称相一致,从而避免CAD软件在读取数据时出现误读现象。AutoLISP程序的编写是在Visual LISP集成开发环境下完成的,在调用AutoLISP内置函数的基础上,编程人员定义自定义函数,以此完成程序的编写,该过程是二次开发中最重要的环节。AutoLISP程序调试主要是为了检验程序的对与错,修改或调整部分源程序,以便当程序导入到AutoCAD中时,AutoLISP程序能够顺利运行,以达到预期绘图之目的。图3为AutoLISP程序编写与调试流程,由图可知,在完成了零件尺寸分析的基础上,即进入程序编写阶段,当程序载入到AutoCAD系统中后,开始进行程序调试判断,若程序无误,则程序编写结束,若所撰写的程序存在错误,则重新进入程序编写与调试流程,最终获得正确的AutoLISP程序。

图3 AutoLISP程序编写与调试流程

图4 自定义CAD菜单步骤

自定义CAD菜单的目的是为了在CAD绘图界面中可以方便地调取程序,及时绘制出零件工程图。其具体操作步骤如图4所示,在CAD绘图界面中点击菜单“工具”,选择“自定义”—“界面”,出现图5(a)所示的“自定义用户界面”对话框,在“主CUI中的定义”界面中选择“custom.cui”,点击“菜单”项,按鼠标右键“新建”菜单,名称取为“机械零件”如图5(b)所示。在命令列表对话框中,选类别为“自定义命令”,点击“新建命令”,在信息对话框中将命令改成“销轴”。按住“销轴”并拖放到“机械零件”下,如图5(c)所示。在图5(d)所示“宏”中载入AutoLISP程序,其格式为“^C^C(load "销轴.lsp")销轴”。最后在CAD界面中出现如图6所示的菜单。

图5 自定义CAD菜单操作流程

图6 自定义命令菜单

3 销轴零件AutoLISP程序

AutoLISP语言将函数共分成两大类:一类是AutoLISP语言所具有的如数学功能运算、关系逻辑判断等内部函数,每个函数均有特定功能;另一类是defun自定义函数。内部函数与defun自定义函数间作某种调用与组织,就可编写出某一程序,此应用程序以纯文本文件方式保存,调用该程序即可完成指定功能操作,从而能在电脑中快速、方便地绘制出图形。

AutoLISP中的defun自定义函数编写格式是:

(defun C:<函数名>([实参变量名表[/局部变量名表]]<表达式>…),自定义函数名为一字符串。

以下是用记事本编辑器编写的AutoLISP程序,存盘路径为 C: / cadprograms/ PIN.LSP/ ,调用自定义函数时,按以下格式执行:

(函数名 <实参1> <实参2> …),该程序已在AutoCAD 2010 中调用过[7]。

在Visual LISP编辑器下编写的销轴部分程序代码是:

4 销轴零件的调用

由图6可知,当点击机械零件下拉菜单“销轴”时,在“命令”对话框下将出现如图7(a)所示的“输入销轴插入点<退出>:”命令,输入插入点后,命令对话框将要求输入销轴直径、长度和旋转角度,如图7(b)~图7(d)所示。将以上数值确定后,在AutoCAD绘图界面中将绘制出销轴二维视图,如图8所示。图9为某一尺寸用AutoCAD软件生成的销轴三维实体图[8]。

从图6所示的自定义命令菜单中可知,点击自定义命令菜单中的某零件后,即可调用所需要的零件对话框,在图7所示的命令菜单后输入相应尺寸,就可实现对某零件图形的调用。

从以上销轴二次开发的结果可知,AutoLISP程序相对较为简洁,初学者容易理解与掌握,软件开发后使用起来也很方便。修改与调用也非常容易,通过AutoLISP的二次开发,扩展了AutoCAD的功能,达到了软件使用效率高、准确性高的目的。

图7 销轴调用程序

图8 销轴工程图

图9 销轴三维实体图

5 结束语

本文以销轴零件的二次开发为例,详细介绍了应用Autolisp对AutoCAD进行二次开发的过程[9]。从结果看,采用该方法进行二次开发,可快速开发出各类零件的命令集,这将大大提高AutoCAD的绘图效率和准确性;可在一定程度上减轻工程技术人员查阅手册的繁锁工作,从而使得AutoCAD辅助设计效能得到进一步发挥。开发者可基于项目需要选择Autolisp开发工具,实现对AutoCAD的定向开发,制作出企业定制的AutoCAD系统。

猜你喜欢
销轴二次开发调用
铰接销轴结构的改进设计
浅析液压支架再制造过程中销轴的拆解方法
移动式液压支架销轴拆装设备的设计及应用
核电项目物项调用管理的应用研究
浅谈Mastercam后处理器的二次开发
系统虚拟化环境下客户机系统调用信息捕获与分析①
试论输煤系统1212/18—18型可逆锤击式细碎机锤臂拆卸
例谈课本习题的“二次开发”
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用
利用RFC技术实现SAP系统接口通信