DWG文件 ICEMCFD的文件转换
周昌令唐湘
(北京大学计算中心,北京 100871)
摘要本文介绍了一种从AutoCAD的DWG文件格式中提取模型几何信息,用逆向工程方法重新构造简化模型,并得到网格生成软件如ICEMCFD所能识别的文件格式的方法。
关键词逆向工程;点云;国家体育馆
Converting DWG file to ICEMCFD acceptable file
Zhou Changling, Tang Xiang
(Computer Center, Peking Univ., Beijing 100871)
Abstract:This paper presents a method of getting geometric information from AutoCAD’ DWG file format, rebuilding simplified model from point clouds, and transferring the CAD model to Meshing software like ICEMCFD.
Keywords: Reverse Engineer, Point Cloud, Beijing Olympic Stadium
0、引言
北京大学环境科学研究中心承担奥运主场馆的风环境研究,其中一个重要内容是建筑结构上的风载荷。奥运主场馆的外形结构像‘鸟巢’,十分复杂,但必须考虑风载荷的结构部分却是紧贴其下的顶棚,他是一块巨大而不透风雨的天花板。外层交错的桁架对风力有影响,但仅仅是对垂直分量的阻尼。因此,在风力计算中一般以‘半透气’的膜层来代替[1]。
计算力学在计算前需要将计算对象做成计算网格。计算对象的数字化文件格式甚多,其中大多数能为商品网格生成软件,如ICEMCFD所识别。但委托方提供的是AutoCAD设计所得的文件为DWG格式,不为目前市上绝大部分商品网格生成软件所接受。本文的目的在于介绍如何根据外层桁架结构的DWG文件得到相应的‘膜层’数据,并转换成网格生成软件ICEMCFD所能接受的格式处理过程。
1、模型介绍
国家体育场馆坐落在奥林匹克公园中央区平缓的坡地上,结构的组件相互支撑,形成了网络状的构架,它就像树枝编织的鸟巢[2]。其几何模型可以分为三部分:外层桁架、顶棚和观众坐席区。整体结构是由一系列辐射式门式钢桁架围绕碗状坐席区旋转而成,结构科学简洁,设计新颖独特,为国际上
极富特的巨型建筑。国家体育场馆主体长约330米(南北走向),宽约300米(东西走向),高约50米,总体建筑面积约25.8万平方米。
图1为国家体育场馆外观模型,图2是项目委托方所提供的国家体育馆外层桁架的AutoCAD数字模型。
图1 国家体育馆外观模型图2  国家体育场馆外层桁架几何模型DWG文件格式通常用于存储模型的二维信息,但也可以存储三维的信息。我们所拿到的原始数据模型文件大部分为二维的详细设计的图样。虽然有如图2的三维的组装模型,但该模型并不是真正的实体模型,没有ACIS 实体对象,无法导出几何信息。并且,包括ICEMCFD在内的大多数网格处理软件对DWG格式的支持极为有限,并不能直接读取该格式的文件。所以,需要另想办法从DWG文件中提取几何信息。
2、导出模型的三维点云数据
事实上该模型是采用多义面网格(AcDbPolyFaceMesh)来描述桁架的几何信息的。多义面的基础是
节点(vertice),为了能较好的表示模型的细节,模型中包含有大量的节点(外层桁架就有62016个)。这些节点组成点云(cloud points),可以充分表现体育场馆的几何信息。下图是桁架的局部放大图,可以看到多义面网格上的节点分布。这些节点的(x、y、z)坐标可以通过内建的objectARX取得,由AutoCAD内建的VBA 支持,可以将这些坐标数据导出到文本文件。附录是用VBA在autocad中导出点云数据的源代码,可作为参考。
图3 外层桁架局部几何模型
3、点云过滤和点云三角化
从原始模型中获得了点云数据后,可以用来重构原来的几何信息。但是我们需要建立的模型是简化而适合于数值模拟的,比如计算要求体育场外层桁架要用透风的膜层来代替;同时,由于从原始模型导出的点云在各个局部的疏密分布不同,直接进行逆向工程重构模型会有问题。就需要对导进来的点云数据进行稀疏过滤操作。通过对点云数据过滤,保留关键信息和特征点,可以减少存储数据量,降低三角面化的复杂度[3]。
常用的点云过滤方法有以下几种:
曲率过滤法。也叫自适应过滤法,即根据曲面曲率变化确定点的取舍,在曲率变化平缓区域保留较少的点来描述曲面形状,在曲率变化急剧的区域保留较多的点。常用的算法是根据弦偏差(Chordal Deviation)过滤点云。用这种方法过滤点云能很好地保持曲面的形状。
高斯过滤法。即按照高斯算法进行点云过滤,这种方法的过滤功能很强,但其缺点是较难保持曲面特征。
球过滤法,是指过点云上一点生成一个指定半径的球,过滤掉球内的所有点,再通过下一个保留点生成指定半径球,过滤掉球内所有点,如此循环至到最后。
图4是采用球过滤法过滤前的点云分布情况。
过滤球径
图4  过滤前的点云分布
经过过滤后的点云基本均匀分布,且数量大大减少。点云三角化就是指将杂乱无序的点云转化成一组有序的三角化面片。在生成三角化面片的过程中,CATIA软件提供了三角化面片的过滤功能,即过滤掉形状不合理的三角化面片,例如夹角过小的三角化面片,从而保证了所生成三角化面片的质量。通过调节球径大小,到合适的位置点OK生成整体的三角面片。球径过大生成的曲面粗糙,过小有较多的洞需要手工修补。同时在局部点云疏密程度与全局差异较大时,需要分区域激活点云,分别生成面。
图5  三角面化后的外层桁架
这样得到的三角化后的点云经过进一步修补平滑后就可以使用了。进一步的修补平滑的处理方法包括特征提取和点云分块等方式。特征提取是指从点云中提取规则曲面,如平面、球面、柱面、锥面等,以及提取曲面之间的理论交线等。这样就可以提高后续曲面重构的速度。点云分块指在后续的曲面重构中,经常要用到曲面拟合功能,而一个点云一般情况下不可能只由一个曲面来拟合,这就需要根据曲面的构成,将点云进行分块。利用CATIA的DSE(Digital Shape Editor)模块[4, 5]可以方便地将点云进行分块。如果需要很好的重构原始模型,还得进一步进行曲面重构,采用了NURBS方法来描述曲面。Catia提供了曲面到点云的拟合功能。这样就可以先利用此功能根据点云拟合出一个基础曲面,再利用曲面编辑功能对该基础曲面进行局部编辑和光顺,从而提高了曲面重构的效率。
考虑到我们需要做的是简化模型,并不需要非常光顺的曲面。合理的分区后,适当的修补和平滑后得到
的曲面就可以导出iges文件,为ICEMCFD所接受。图6是经过处理后的整体模型。
图6  处理后的国家体育馆模型
4、生成网格
得到的iges文件导入到ICEMCFD后,进行必要的拓扑修复,划分family,设置网格生成的seeds等操作后,就可以划分网格了。图7是采用了Tetra四面体网格生成方式得到的体育场计算区域的网格分布图。整个计算区域为(-3000,-3000,0)到(3000,3000,500),采用了非结构化网格生成方式,总网格数为760099,因为需要的是顶层天花板上的压力情况,故此在顶层天花板上设置网格较密,天花板面上使用网格数为17887。
图2体育场内部网格示意图
5、附录:
从AutoCAD模型中导出点云信息的VBA代码(参考)
Private Sub CommandButton1_Click()
Dim sSetObj As AcadSelectionSet
Dim FileName As String
FileName = "c:\"
Set sSetObj = ActiveDocument.ActiveSelectionSet
sSetObj.Select acSelectionSetAll
Dim coord As Variant
Open FileName For Output As #1
For iii = 0 To sSetObj.Count - 1
With sSetObj.Item(iii)
If StrComp(.ObjectName, "AcDbPolyFaceMesh", vbTextCompare) = 0 Then
什么软件能打开dwg文件For jjj = 0 To .NumberOfVertices - 1 Step 1
coord = .Coordinate(jjj)
Print #1, coord(0), coord(1), coord(2)
next jjj
End If
End With
Next iii
Close #1
MsgBox "导出数据完毕!"
End
End Sub
参考文献
1. 樊春, 安亦然, 林官明, 首都博物馆建筑空气动力学计算.实用数值模拟, 2004. 1.
2. 苗文博, 樊春, 唐湘, 北京国家体育场空气流动的力学分析. 2004.
3. Lee, K.H., H. Woo, T. Suk, Point Data Reduction Using 3D Grids. The International Journal of Advanced
Manufacturing Technology, 2001. 18(3): p. 201.
4. 刘鑫, 等, 基于3d栅格的点云三角网格模型重构研究.上海大学学报(自然科学版), 2003. 03.
5. 陈晓曦,吴立国, 基于Catia数字编辑器实现逆向工程的数据处理.天津职业技术师范学院学报, 2003. 03.