计算机应用
COMPUTER APPLICATIONS
1999年 第19卷 第6期 Vol.19 No.6 1999



板材柔性制造系统中的数据接口技术
陈慧宝　程远利　张振龙
　　摘　要　本文介绍了板材柔性制造系统中的数据接口技术。叙述了CAD/CAPP系统集成技术中的一些关键问题，并提出了有效的解决方法。
　　关键词　钣金,板材,CAD/CAPP,数据接口
　　我们为沈阳某科技公司板材柔性制造系统设计了一套钣金产品计算机辅助设计加工系统。该系统由CAD、数据接口、CAPP三个子系统组成。钣金CAD子系统基于通用绘图软件AutoCAD进行二次开发；CAD/CAPP数据接口子系统通过对CAD子系统的图形信息进行分析处理后，传输给CAPP子系统完成CAD/CAPP的内部数据连接，对信息联机传递、实时处理。

图1　系统组成简图
1　钣金产品图形数据特点
　　钣金产品CAD子系统是基于参数化思想而设计的。只要输入几个关键的参数，系统自动生成钣金零件的三维视图和展开图。展开图是一个二维图形，CAD/CAPP数据接口对展开图的*.DXF命令组文件进行处理，传递信息到CAPP子系统用于满足板件的冲裁下料。

图2　钣金件设计方案
　　钣金产品的设计和加工有其自身的结构、材料和工艺特点。
　　1） 展开图二维图形由直线、圆弧、圆组成，所有几何特征均在一个平面上。（二次、三次曲线均由圆弧或直线插补构成）。
　　2） 落料加工的所有工艺特征，如粗糙度、定位精度、直线度等均由NC机床保证。
　　CAD系统的信息模型是几何学模型、线架模型、面架模型及体素造型，对于公差和技术要求是按标注信息进行处理。CAPP系统要求的是工艺特征和制造信息， 而不是点、线、面的几何特征。并且由于钣金产品设计加工的自身特点，以*.DXF文件作为数据文件直接作为CAPP子系统的输入信息存在许多问题。
　　. 存在大量非加工信息
　　钣金展开系统是在AutoCAD软件环境下开发的，从CAD子系统传过来的*.DXF命令组文件包含了标准零件图的所有信息，其中包括尺寸线、辅助线等非加工信息；使得操作CAPP子系统时，容易产生加工环不清晰，生成错误的NC操作指令。
　　. 几何交点不重合
　　由于*.DXF文件中的几何点信息是CAD图形通过内部计算而获得的，许多图形元素的几何交点实际上是两个点。尽管两点之间的误差很小，不影响加工精度，但是这样的图形数据不能用于CAPP子系统进行自动工艺编程。
　　. 无序的拓扑关系
　　由于在*.DXF文件中，图形相关数据按CAD子系统在AutoCAD图形界面生成图形元素的先后顺序而存储，因而不能保证组成零件图形的各图形元素之间的拓扑关系是否具有精确的逻辑关系。如不能保证闭环，更不能保证组成环的各图形元素之间的拓扑关系。这样的图形是不能用于数控加工的。
　　. 缺少方向判定
　　对于旋转冲床的工艺编程必须确定冲头的加工走向，以便加工出内轮廓或外轮廓。而展开图的*.DXF文件包含的有关轮廓信息不能确定环的走向，须对组环实体进行分析计算，根据数据文件输出要求的加工走向，依序将环中实体写入数据文件中。
2　解决方法
2.1　把问题消灭在CAD子系统内
　　在CAD子系统总体设计时考虑CAPP的要求。
2.2　建立独立的数据接口
　　该方法的思想是在CAD子系统中充分利用AutoCAD的开发平台，暂不考虑CAPP子系统的要求。对于CAPP子系统，做一个数据接口软件，其任务是对零件展开图的*.DXF文件做进一步处理，内容包括：剔除非加工信息（包括不必要的工艺信息和技术说明）；修正消除几何不重合点，建立拓扑关系，找出加工环；按照事先约定指出加工环走向。
3　设计思想及算法实现
　　在钣金产品CAD子系统中，零件展开图先用AutoCAD的EXPLODE命令将图形打碎，再生成相应的*.DXF文件。只从*.DXF中提取与工件廓形数据有关的实体段信息(CIRCLE、LINE、ARC)到程序中；进行分析计算找出图形信息中外轮廓上一点，依据此点找出外轮廓加工环；在余下的图形信息中寻找其余的内轮廓加工环(CIRCLE作为一个独立的加工环)；判断环向，并将加工环所含图形信息依环向写入数据输出文件中。

图3　流程简图
3.1　系统的数据结构
　　本系统数据结构采用双向链表结构。由于钣金加工特点(板材均匀性)，因此可以简单按二维图形处理。而且，无论是冲孔还是落料，其轮廓都构成闭环,它是由直线或圆弧首尾相连构成的图形(或是一个整圆)。
　　建立

　class ARC:public CIRCLE,public LINE
　{ 
　int Direct;
　};
　　其中，类ARC是类CIRCLE、LINE的子类。
　　类CIRCLE、LINE中的成员：Center代表圆心坐标；Radius表示半径；Start，End分别为直线或圆弧的起始点和终止点坐标；Direct是ARC中独有的成员，它标示圆弧的方向：沿顺时针方向等于+1，圆弧沿逆时针方向等于-1。
3.2　几何信息提取模块
　　图形实体经打碎后成为“LINE”、“ARC”、“CIRCLE”三种类型(经研究发现，对V13.0图形实体打碎到最后均为LINE、ARC、CIRCLE，如Fit拟合的Pline解碎后为Arc，Spline拟合的Pline解碎后为Line等)。因此程序的核心以ARC、LINE、CIRCLE为对象。程序从*.DXF文件的实体段(ENTITIES)中调用一个实体，判断其是LINE还是ARC或CIRCLE，分流后按其组码提取几何信息。
　　例如：对于直线，可用10和11组码提取其起点、终点坐标。
3.3　组环算法
　　每一个class中都有一个Distant()函数，这个函数用于寻找每一个实体上距原点距离最大点。比较所有实体的Distant()函数值，从中找出距原点距离最大点，该点对应的实体N1必在外轮廓上。
　　如果N1为圆，则此零件外加工环S0即此圆。
　　如果N1为直线或圆弧，则以实体N1为基准组环S0(外轮廓加工环)。以N1起始点为环S0的起点，以N1终止点为环的下一个实体的起始点。
　　搜索其余实体(只考虑直线和圆弧)的起止点，寻找近似重合点(当点与点之差距小于某个很小的整数ε，认为是重合点，并作几何交点啮合)作为相邻两基本图形实体的交点。该点所在实体作为环的第二链，继续在余下的实体ARC和LINE中寻找环的下一链，并判断链中的终止点是否与环的起点近似重合。不重合重复此过程，否则外轮廓环S0组环结束。
　　在余下未组环的实体ARC、LINE中继续组环S1、S2、S3、S4…(均为内轮廓环，组环方法同上)。直至所有实体ARC、LINE均组入各环中。
　　读取余下的实体CIRCLE作为内环。
3.4　数据输出模块
　　在输出时判断环的走向。对于三个实体组成的环，直接两实体叉乘，运用右手定则判断环的走向；对于一般实体环寻找环内点，引直线进行叉乘计算判断环向，再按照约定格式输出数据到数据文件中，并将数据文件传送到CAPP子系统。
　　CAD/CAPP集成实际上是结构设计模块与加工工艺模块的结合。CAD/CAPP数据接口子系统将CAD模块输出的图形信息转换成CAPP可以接收识别的数据格式，实现了CAD和CAPP之间信息的提取、交换、共享和处理。钣金产品CAD/CAPP数据接口子系统的建立，使系统更充分利用AutoCAD平台的二次开发功能，实现了钣金产品设计制造的参数化、标准化、系列化、自动化，缩短新产品生产周期，提高生产效率。
作者单位：上海大学机械电子工程学院　上海(201800)
参考文献
［1］　J.Tackett,Jr.Visual C++ 面向对象程序设计.北京：清华大学出版社，1995
［2］　高元茂,等.AutoCAD(13.0)计算机辅助设计教程.北京：电子工业出版社，1996
［3］　郝泳涛,等.AutoCAD线切割加工指令的自动编程系统.机械与电子，1998;(1):7-8
［4］　黄　健,等.集CAD/CAM/CNC于一体的板材下料系统.机械工业自动化， 1997;19(3):20-22
收稿日期:1999-03-27(修改稿)
