利用ObjectARX方法实现NC车削自动编程系统的图形输入

2019-06-20 05:34石鑫王忠建刘丽华石梦琳中航工业江西洪都航空工业股份有限公司中南林业科技大学
智能制造 2019年4期
关键词:数据结构样条圆弧

文|石鑫 王忠建 刘丽华 石梦琳 .中航工业江西洪都航空工业股份有限公司 .中南林业科技大学

一、引言

AutoCAD软件在机械制造领域已经得到了广泛的应用,能够完成各种机械零件设计及图形输入任务,然而其所绘制的图形数据结构不能为CAPP、CAM等相关模块所利用,为此需要对AutoCAD的图形数据进行读取并转化成数控编程系统所需要的数据结构。国内外学者对此作了很多研究工作,如利用AutoLISP读取DXF文件等方法对AutoCAD的图形文件进行读取识别。然而这些方法仍然有很多的局限性,不能进行信息的全面转化。针对上述问题,本文利用ObjectARX3.0方法读取AutoCAD2000数据库的图形信息及ID值来识别图素的属性并进行相应的数据处理,转换成NC加工所需要的基于特征的数据结构,从而为CAPP、CAM等相关模块提供数据源,最终实现NC数控编程自动化。

二、ObjectARX简介

ObjectARX3.0是Autodesk公司针对AutoCAD 2000平台的二次开发而推出的一个工具包,它支持面向对象的编程方法(OOP)。ObjectARX3.0应用程序是一种Windows动态库。

ObjectARX由以下类构成:

(1)AcRx 用于绑定应用程序和运行时类的注册。

(2)AcEd 用于注册内部命令和系统事件通知的类。

(3)AcDb AutoCAD数据库类。

(4)AcGi用于渲染AutoCAD实体的图形界面。

所有ObjectARX应用程序必须与acad.Lib和raapi.Lib连接,根据使用的ObjectARX类库和函数的前缀不同,还可能需要其它的附加链接库如表1所列。

表1 附加链接库

三、总体结构

1、总体结构的设计

在AutoCAD环境下进行零件设计与零件工程图的绘制,根据零件工程图信息进行加工特征的定义和零件特征模型的描述。图形输入系统的总体结构如图1所示。

图1 系统总体结构

2、几何数据结构

本程序的数据源来自AutoCAD数据库,利用ObjectARX方法从数据库中读入数据需要存储以便进一步进行数据分析,为此建立了图素的几何数据结构,如下:

struct STusu

long R;//若为圆弧则表示圆弧的半径坐标,对其他图素没有意义

double startAngle,endAngle;//若为圆弧则表示圆弧的起、止角度值,对其他图素没有意义};

注:x1,y1——直线(或圆弧,或样条曲线)的始点坐标。

x2,y2——直线(或圆弧,或样条曲线)的末点坐标。

c1,c2——若为圆弧则表示圆弧的中心点坐标,对其他图素没有意义。

3、零件工艺信息

由于零件是以实体特征面构建的,所以各特征面的工艺信息可能是不同的,有的工艺信息是所有表面共有的,称作全局工艺信息。实体表面工艺信息是指不同的表面类型而具有不同的工艺参数。本文主要考虑了以下工艺信息:硬度、粗糙度、表面处理、轴向尺寸公差、直径尺寸公差、直线度、圆柱度、平行度、圆度、垂直度、同轴度、径向全跳动和径向圆跳动等。

四、程序设计

本程序分为数据读入模块、数据处理模块及工艺信息输入模块。

1、读入模块

读入模块是利用ObjectARX方法从AutoCAD数据库中读取零件的信息,并保存在前面确定的几何信息数据结构中,以便接下来的数据处理。读入模块源代码流程图如图2所示。以下是读入模块遍历所有实体的源代码:

{//打开当前块表

2、数据处理模块

数据处理模块共有三个函数:

Data process1函数:寻找圆点O(OX,OY),删除中心线,把坐标系转化为以O(OX,OY)为圆点的坐标系。

Data process2函数:取图形的上半部分,并将多余的图素删去。

Data process 3函数:通过对零件的几何信息进行分析,提出了一种方便快捷的图形轮廓搜素法,从而得到图形的外轮廓数据。它对从AutoCAD数据库读入的数据进行了进一步处理,从而判断出各图素的工艺特征(柱面、端面和锥面等)。

数据处理的具体思路:搜索初始图素(有一端点坐标值为(0,0)的图素),将它的末点赋给endPoint0,然后利用endPoint0的值继续搜索下一个图素(下一个图素与上一个图素首尾相接),每搜索到符合要求的点时就将它存储到PPON结构中。如果搜索到的图素的X坐标值等于Xmaxx(上个模块中得到的值,它是所有图素中X坐标的最大值),则图形的外轮廓搜索完成。接下来判断有没有内孔,通过将剩下的图素与外轮廓的最后一个图素进行求交,若求交成功则说明内孔存在,然后按照外轮廓搜索的规则继续进行搜索直到所得图素的Y坐标值为0,再判断是否存在左、右盲孔,若存在就继续是使用上述方法进行搜索,直到所搜索到图素的X值为0,全部搜索结束,得到图形的外轮廓。

3、主要图素的处理

(1)直线、圆弧的处理

直线程序:利用ObjectARX类库所提供的startPoint()及endPoint()函数得到直线的起点与终点坐标值。具体使用如下:

在进行外轮廓的搜索时,如果所搜索到的点是直线的终点,将直线的起点与终点进行调换。

圆弧程序:利用ObjectARX类库所提供的startAngle()、endAngle()及center()函数分别得到圆弧的起始角、终止角及圆弧的中心坐标值。具体实现如下:

圆弧旋向的处理:在AutoCAD数据库中圆弧无论是顺时针绘制,还是逆时针绘制,其存储都是按照逆时针进行的,在进行图形外轮廓的搜索时,如果所搜索的点是圆弧的终止点,则将圆弧的旋向取反。

(2)样条曲线的处理

为了从AutoCAD数据库中读入样条曲线的型值点,需要利用ObjectARX所提供的函数。经过仔细的分析从ObjectARX所提供的类库中(dbspline.h)找到了可以得到样条曲线型值点、始末端点及切线斜率等关键值的函数,其声明如下:控制端点:

其中AcGePoint3dArray& fi tPoints定义了一个动态的数组,用来存储搜索到的型值点坐标。

函数的使用如下:

从而得到了动态数组Points,它存储样条曲线所有的型值点坐标。

得到了型值点的坐标后,接着利用追赶法得到绘制三次B样条曲线所需的控制点,经过插补得到B样条的拟合点。将这些点存储在点表PPON结构中,从而完成对样条曲线的处理。

4、工艺信息输入模块

根据零件整体及各特征形面的不同工艺要求,可以输入全局工艺信息或局部工艺信息。实验件的轴端面的工艺信息输入如图3所示。

图3 轴端面工艺信息输入

五、实验结果与讨论

为了考察本系统程序运行的结果是否达到预期的要求,及其形成的文件是否满足NC数控加工所需的数据结构。首先在AutoCAD环境下绘制如图4所示的回转体实验件。

图4 回转体实验件

加载应用程序NCINTPUT.arx,读取AutoCAD所绘制的图形并进行数据处理,程序系统的主界面如图5所示。

图5 程序系统主界面

至此已经得到了实验件的几何图形信息,这还不能满足数控加工的需要,接下来需对零件的工艺信息进行输入,全局工艺信息输入如图6所示,其中,淬火C表示渗碳淬火,强度与韧性单位为MPa。

图6 全局工艺信息输入

为了验证本程序所得数据的正确性,对所形成的文件进形读取并重现了图形的轮廓如图7所示。

图7 图形轮廓重现

六、结论

本文利用VC++6.0语言,通过ObjectARX3.0类库读取AutoCAD2000数据库的图形信息,从而实现NC自动编程系统的图形输入,可以得到以下结论:

◎ 利用ObjectARX方法可对AutoCAD数据库进行操作;

◎ 搜索AutoCAD数据库中的图素时,利用ObjectARX所提供的迭代器进行搜索;

◎ 进行工艺信息的标注时,可随机选取图素进行工艺信息标注(例如,在点选外腔或内腔圆柱面后,将弹出如图8所示的对话框提示用户输入圆柱面工艺信息)。

图8 圆柱面工艺信息输入

经过测试,利用ObjectARX方法及本系统程序所制定的数据转化规则所得到的数据符合NC自动编程所需要的数据结构形式,实现了数控车削自动编程系统图形的快速高效输入,提高了工训实践能力。

猜你喜欢
数据结构样条圆弧
一元五次B样条拟插值研究
外圆弧面铣削刀具
三次参数样条在机床高速高精加工中的应用
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
基于样条函数的高精度电子秤设计
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
数控车削圆弧螺纹程序编制与加工
等截面圆弧无铰板拱技术状况评价
TRIZ理论在“数据结构”多媒体教学中的应用