AutoLISP二次开发在线切割加工中的运用论文_吴概

佛山市南海奔达模具有限公司

摘要:在压铸模具型腔加工中,有很多的顶针孔、镶针孔需要线切割加工。本文采用AutoCAD自带的AutoLISP开发工具,开发了一个小程序,实现了线切割加工孔位的刷选拷贝,进刀线的绘制,加工数目统计等功能。通过对AutoCAD功能的定制扩展,提高了办工效率和产品质量,同时降低了对加工编程操作人员素质要求。

关键词:AutoLISP;二次开发;压铸模具;线切割加工编程

作为制造业大国,计算机辅助设计和制造在工厂中的运用已经相当普遍。大多数计算机软件都提供了二次开发的接口,方便软件使用者开发一些适用自己需求的功能,以便提高工作效率。在高压压铸模具型腔加工中,有很多精度和位置度要求高的顶针孔、镶针孔等,都需要采用线切割加工。线切割设备是数字控制加工设备,需要有相应的图形程序来驱动。目前,在工厂中一般先将模具3D造型转换成AutoCAD.dwg格式的图纸,线切割编程操作人员根据加工工艺要求,人工筛选出需要切割的孔位,并绘制进刀线,再进行编程处理。如<图一>所示。其中人工筛选孔位和绘制进刀线的这个过程,工作繁琐,但不能出差错。在实际生产中,操作人员可能会漏选需线切割的孔位,造成模具返工,导致加工浪费,也可能因进刀线绘制错误,割坏模具,造成重大生产损失。

基于现状,本着能让计算机完成的工作,就不要让人工参与的原则。本人通过掌握的AutoLISP语言,利用AutoCAD的二次开发接口,开发了一个小程序,实现了线切割加工孔位的自动筛选,进刀线的自动绘制,加工孔位数量统计等功能。借此提高加工编程的效率,降低出错的概率,以及减轻编程操作人员的负担。以下是程序开发过程的主体部分介绍,供读者参考。

程序分成两大部分:第一部分,筛选需要线切割的孔;第二部分,孔位绘制进刀线及加工数量统计。为了增强大家开发程序的信心,编写程序时,遵循由易到难的步骤,我们先介绍第二部分的程序编制。

首先,假设需要线切割的孔位已经筛选好,只需要绘制进刀线。

以下为画单个孔位进刀线的程序:

(setq endata (entget ssn));取出孔位名称为ssn的数据库

(setq cenpt (cdr (assoc 10 endata))));取出孔位的圆心坐标

(setq R1 (cdr (assoc 40 endata)));取出孔位的半径

(setq endpt (polar cenpt 0 longpt));计算孔位第一象限点的坐标

(command "line" cenpt endpt ""));调用画直线命令,绘制从圆心到第一象限点的进刀线

这只是单一孔位的进刀线绘制,程序需增加一个循环嵌套的指令,用于绘制下一个孔位的进刀线。以下是画进刀线的循环嵌套程序:

(defun c:cl (/ss nn i) ;主程序

(princ "\n请选择圆:")

(setq ss (ssget '((0 . "CIRCLE"))))

(setq nn (sslength ss)) ;统计有多少个圆需要绘制进刀线

(setq i 0)

(repeat nn ;有nn个孔位需要绘制,循环nn次

(setq ssn (ssname ss i)) ;当i为0的时候,取得第一个孔位的名称

(进入单个孔位进刀线绘制程序)

(setq i (1+ i)) ;程序进入下一个循环

(princ nn) ;统计绘制了多少条进刀线,即需要加工的孔位数量

(princ) ;程序结束

程序编译运行后,进刀线就可以自动绘制了,运行结果如<图二>所示。此时,程序的编制已经完成一大半了,接下来我们开始编制第一部分筛选孔位的程序。

以下是筛选孔位的程序:

(defun c:yuan (/ a b c d e aa) ;主程序

(setvar "cmdecho" 0)

(princ "\n请输入要查找圆的最大直径<5.9>") ;提示输入最大直径的圆,如按下空格键,最大直径默认5.9

(setq a (getreal))

(if (null a)(setq a 2.95) (setq a (/ a 2)))

(princ "\n请输入要查找圆的最小直径<2>") ;提示输入最大直径的圆,如按下空格键,最大直径默认5.9

(setq b (getreal))

(if (nullb)(setq b 1)(setq b (/ b 2)))

(setq c (cons 40 a))(setq d (cons 40 b))

(setq e (list '(0 . "CIRCLE") '(-4 . "<=") c '(-4 . ">=") d))

(setq aa (ssget e)) ;建立选择集aa,选取符合要求的孔位

(command "chprop"aa"""c""6""") ;将已选取的孔位变成粉色线,区别显示

(setq bb (ssgete) ;建立选择集bb,选取造型的外框线,作编程加工基准

(if (null bb) ;将选择集bb上的物体合并到aa上

(progn (setq nn (sslength bb))(setq i 0)

(repeat nn(setq ssn (ssname bb i))(ssadd ssn aa) (setq i (1+ i)))

(command "copy'' aa "pause""pause" '''' ) ;将已经筛选好的孔位及基准拷贝出来

(princ)) ;程序结束

通过运行筛选孔位的程序,我们已经将需要线切割加工的孔位和编程加工基准拷贝了一份出来,并且在原来的图形中将已经拷贝过的孔位做了颜色显示处理,如有遗漏的孔位,可以很直观地发现,方便编程操作人员核对。经过一次或多次运行此程序,我们就可以将所有工艺要求线切割加工的孔位都拷贝出来。运行后的结果如<图三>所示

以上是两部分程序主体及创作思路的介绍,为了程序运行更稳定,主体程序中还得增加一些防错、中断等处理,这里就不一一介绍。当然程序还可以作进一步的改进,为了降低钼丝的损耗对加工精度的影响,孔位的进刀线方向是否可以变化等等。

参考文献:

[1]梁雪春 宋德明 AutoCAD2002二次开发技术指南 清华大学出版社 2001年

[2]蓝屹生 AutoLISP学习指导 中国铁道出版社 2003年

[3]金石成 蒲红克 于建华等 AutoCAD2000二次开发与运用[J] 计算机应用,2004,2):84-86

论文作者:吴概

论文发表刊物:《建筑学研究前沿》2017年第14期

论文发表时间:2017/10/16

标签:;  ;  ;  ;  ;  ;  ;  ;  

AutoLISP二次开发在线切割加工中的运用论文_吴概
下载Doc文档

猜你喜欢