钢结构应用软件中的DXF文件接口实现技术
2014-12-03卢清平徐华丽
杨 洋,卢清平,徐华丽
(皖西学院信息工程学院,安徽 六安237012)
随着钢结构工程的发展,钢结构CAD软件的应用越来越多,但是各种软件都有自己专用的构件文件格式,使得各软件之间进行数据交换变得困难。很多系统为了解决数据交换的问题,都提供了通用的图形数据交换文件格式。DXF(Drawing Exchange File)图形交换文件是AutoCAD与其他钢结构设计软件之间进行数据交换的一种通用的图形交换格式[1]。姚宜斌等[2]通过对DXF中实体数据存储规则的研究,实现了多图系图件转换过程中图块的整体转换;文献[3]在AutoGIS中设计了对DXF与Shape文件的无损共享,李晨[4]研究了基于XML的工程图形数据仓库,李英琳等[5]设计与实现了服装样板数据的二进制DXF文件交换格式及其转换接口,郑盛梓等[6]探讨了三维曲面可视化及复杂曲面表示问题,并实现DXF文件转换与图件的操作功能等。本文将采用JAVA技术解决钢结构构件数据与DXF文件的转换接口问题。
1 CAD中的DXF文件格式
DXF可以分为两类:ASCII格式和二进制格式,绝大多数CAD系统都能读入或输出DXF文件。ASCII格式的DXF文件可阅读性强,配合编码页,可以被文本阅读器读出,显示为文本的格式。ASCII格式DXF文件的基本组成包括标题段(HEADER),包含图形的基本信息;类段(CLASSES),包含应用程序定义的类的信息;表段(TABLES);块段(BLOCKS),包含构成图形中每个块参照的块定义和图形图元;实体段(ENTITIES),包含图形中的图形对象(图元);对象段(OBJECTS),包含图形中的非图形对象;以及文件结束标记EOF。其中每个段内都由组(Group)构成,每组里又分为组值和组码,具体结构如图1。
图1 DXF文件结构图
组码用来标识数据的意义,组值用来存放数据的具体数值。组值和组码在DXF中由两行定义[2],如下:
组码是一个整数,它的值说明了组值的类型,如为0~9,则组值表示为字符型,10~59表示为实型,60~99表示为整型,100表示为字符串等。组码也表示了组值的具体含义,即组码和组值的对应关系,如表1。
表1 组码和组值的对应关系
DXF文件中图元的主要信息存储在ENTITIES段中,其中ENTITIES段包含以下图元对象:点(POINT),直线(LINE),文字部分(TEXT),多义线(POLYLINE),多义线顶点(VERTEX),实体结束(ENDSEC),块(BLOCK),插入(INSERT)等。
2 钢结构构件数据与DXF文件的对应关系
在钢结构构件库中包含有各种构件的截面尺寸、截面面积、截面特性等参数[7]。钢结构住宅构件截面形式有柱和梁两种,细分为:H型钢柱、窄翼十字型、丁字型组合柱、劲性混凝土柱、焊接箱型柱、冷弯—焊接箱型柱、钢管柱等[8]。本文以H型钢柱为例,它的对称截面包括截面高、截面宽、腹板厚、翼缘厚等数据。图2是对称H型钢柱的截面示意图。
图2 对称H型钢柱的截面示意图
参数截面高h是指整个截面的最高度,截面宽b是指整个截面的最宽度,翼缘厚t是指翼缘板壁的厚度,腹板厚tw是指翼缘以下的竖向板的侧壁。
H型钢柱有若干个规格,每个规格都有自己的截面样图,可以将某个规格的截面样图存放在一个DXF文件中。在DXF文件的BLOCK段中存放组成截面的其他信息,本例中ENTITIES段中存放的图元对象包括点(POINT)、直线(LINE)、上翼缘和下翼缘的4个顶点以及腹板和翼缘接触的顶点定义为POINT图元,X,Y轴坐标均可由4个参数计算处理得到。上翼缘、下翼缘边线和腹板边线定义为LINE图元。下面以上翼缘的上边线为例,进行LINE图元的接口设计。表2为上翼缘上边线的LINE实体信息。
表2 上翼缘上边线的LINE实体信息
3 DXF文件转换接口的JAVA程序设计
3.1 接口界面设计
实现DXF文件转换的接口程序在JAVA开发环境下完成,程序可以将钢结构构件的DXF文件转换成JPG等格式文件,并将构件的图形显示在界面上,实现了DXF文件与其他图形文件的数据转换,界面如图3所示。
图3 DXF文件转换界面
3.2 接口代码设计
代码编写时,考虑设计了文件类型对象file及其BufferedReader 对 象 reader,reader=new BufferedReader(new FileReader(file)),String类型的groupCode[]表示组码,以及String类型的对象tempString,实现了对DXF文件ENTITIES段中LINE图元的读取功能。主要代码如下:
4 结语
本文针对钢结构构件的特点并以H型钢柱的LINE图元信息格式为例,分析了钢结构构件H型钢柱信息的DXF文件存储方式,并利用JAVA技术实现了DXF文件的LINE图元格式转换,为其他软件文件与DXF文件设计了有效的接口,利用H型钢柱数据验证了其可行性、有效性,为其他设计软件与CAD之间建立了数据通道。
[1]郭瑞良,张辉.服装CAD中的DXF文件格式及接口程序[J].北京服装学院学报,2007,27(1):34-40.
[2]姚宜斌,孔建.基于DXF文件的图件转换方法研究及程序实现[J].大地测量与地球动力学,2011,31(1):117-121.
[3]孙晓莉,赵俊三.DXF文件到Shape文件无损转换方法的研究[J].科学技术与工程,2011,11(14):3336-3341.
[4]李晨.用VC实现基于DXF文件的AutoCAD数据共享接口[J].工业控制计算机,2010,23(4):76-77.
[5]李英琳,闫亦农,张鸿志.服装样板数据的二进制DXF文件交换格式及其转换接口[J].天津工业大学学报,2007,26(5):36-39.
[6]郑盛梓,姚涵珍,周桂英.复杂曲面三维建模及读取数据方法的研究[J].天津科技大学学报,2004,19(2):59-61.
[7]舒赣平,范圣刚.钢结构构件设计的CAD技术[J].东南大学学报,2000,30(4):54-58.
[8]陈绍藩.建筑钢结构设计规范 GB50017[S].2003-12.