您好,欢迎访问三七文档
GoCAD-Model3D数据格式转换为Geo3DML的转换报告1.GoCAD-Model3D模型的数据格式GoCAD-Model3D模型数据主要包含可视化信息和几何信息。查看GoCAD-Model3D数据的头信息,如下所示。GOCADModel3d1HEADER{name:model_A4*H0b_1*solid*color:#00ff7f*H0b_2*solid*color:#ffff00*H1b_1*solid*color:#ee82ee*H2b_1*solid*color:#ee82ee*H2b_2*solid*color:#006400*H3b_1*solid*color:#6495ed*H3b_2*solid*color:#4682b4*H1b*solid*color:0.250980.8784310.8156861*model3b_boundary*solid*color:10.4980390.3137261*H2b*solid*color:0.6901960.7686270.8705881*H3b*solid*color:0.3725490.6196080.6274511*property*layer:pp*pp*color:1.1.1.1.}GOCAD_ORIGINAL_COORDINATE_SYSTEMNAMEDefaultAXIS_NAMEXYZAXIS_UNITmmmZPOSITIVEElevationEND_ORIGINAL_COORDINATE_SYSTEMTSURFfault_f1TFACE1faultfault_f1744.63714599609375596.59582519531251742.2633056640625584.19964599609375925.304382324218751766.258544921875411.309875488281251350.144531251738.85400390625TFACE2faultfault_f11221.1837158203125272.440490722656251179.00671386718751294.051879882812545.2473411560058591226.895019531251032.4051513671875619.13281251237.4609375REGION56Universe-18-47+45+38-36-27-29+32+30+39LAYERH1b57630END文件头信息包含了GoCAD-Model3D数据的可视化信息,主要为各地质体的颜色信息,是否可见等。在这里还能了解到GoCAD-Model3D模型的整体几何信息。上文中的GoCADModel3d表示该模型的类型,可知它是一个model3D的结构模型。name:后的model_A4表示该模型文件的名称。Tsurf表示的是GoCAD-Model3D的面数据的要素集合,它包含很多单个面要素,用TFACE表示。而每个TFACE下的三个点可以唯一的确定一个面,即TFACE。REGION表示的是地层中某一区域,它主要由若干个Tsurf中的若干个TFACE组成,所以每个REGION下面的数字表示组成它的TFACE的id。LAYER表示的是一整个地层,它主要由组成该地层的REGION表示,每个LAYER下面的数字表示组成它的REGION的id。可以发现,在GoCADModel3D文件中,每个对象的id都是从1开始的,这是因为在GoCADModel3D文件中,“0”常常被用来作为结束标志,比如在每个REGION的下面是组成它的TFACE的id,它的最后一个数字都是0,这个0不代表任何TFACE的id,而是表示其之前的数字代表的是TFACe的id号,并且到此为止。对于LAYER,它所包含的id的表示内涵同REGION一样。而且在每个REGION所包含的TFACE中每个id都有正负号,而且还会出现同一个id出现两次,只是正负不同。在GoCADModel3D中,TFACE的id正负表示该TFACE所代表的几何要素的面向。也就是同一个TFACE在不同的REGION中,它的某一面可能作为阳面即表面,也可能作为阴面即里面。当对整个模型的结构信息进行了解后,可以知道对于REGION和LAYER,GoCAD分别用了两种不同的颜色表示方法。*H0b_1*solid*color:#00ff7f表示的是该模型文件中名称为Hob_1的REGION颜色,在这里它的颜色是用十六进制来表示的。*H1b*solid*color:0.250980.8784310.8156861表示的是该模型文件中名称为H1b的LAYER的颜色,它是以十进制的方式表示的。这应该是GoCAD用来区分REGION和LAYER颜色信息的方法。在GoCADModel3D文件中,文件头信息以及单个Tsurf的信息都是以“GOCAD”开始,以“END”结束。文件头信息后,紧接着的是各要素集合的几何信息,主要以Tsurf为单位如下所示。GOCADTSurf1HEADER{name:fault_f1*solid*color:#ff00ffivolmap:falseimap:falsepainted:on*painted*variable:Xlast_selected_folder:StrainAnalysisname_in_model_list:fault_f1}GOCAD_ORIGINAL_COORDINATE_SYSTEMNAMEDefaultAXIS_NAMEXYZAXIS_UNITmmmZPOSITIVEElevationEND_ORIGINAL_COORDINATE_SYSTEMGEOLOGICAL_FEATUREmodel_A4_fault_f1GEOLOGICAL_TYPEfaultPROPERTY_CLASS_HEADERX{low_clip:-2466.511high_clip:2952.474pclip:99}PROPERTY_CLASS_HEADERZ{is_z:on}PROPERTY_CLASS_HEADERvector3d{low_clip:-1high_clip:0.9999931pclip:99}TFACEVRTX1-1051.614746093754794.886718751620.1038818359375VRTX2-1165.7092285156255081.7324218751597.1199951171875VRTX3-1035.43371582031254850.738281251550.54296875VRTX4-1264.51843261718755330.07519531251577.2791748046875VRTX5-901.00134277343754442.434082031251630.67578125VRTX6-719.858886718754109.542968751574.743896484375VRTX7-964.41589355468754574.56152343751638.4976806640625VRTX8-913.953186035156254448.34863281251648.1689453125。。。TRGL343127TRGL323031TRGL292826TRGL525051TRGL858384TRGL504551TRGL838267TRGL464445TRGL161511TRGL151411。。。TFACE。。。END一个Tsurf几何数据中主要包含该Tsurf的名字,类型,几何数据单位等属性信息,有的还会包含该Tsurf的颜色信息。每个Tsurf单独有一个几何信息,它又由每个TFACE的几何信息组成,主要包括组成TFACE的点,以及每个三角面所需要的三个点的id,需要指出的是,在同一个Tsurf的几何信息中,所有点的id都是从该Tsurf中的第一个TFACE开始,到最后一个TFACE的最后一个点结束。其中每组点都以“VRTX”为标志开始,每个三角面都以“TRGL”为标志开始。2.Geo3DML数据格式一个Geo3DML文件表示一个project工程,通常一个Geo3DML文件包含三个主要子文件,一个是主文件,一个是map文件,一个是model文件。主文件链接到map文件和model文件。map文件主要包含模型的可视化参数信息,model文件主要包含模型的几何信息以及各要素之间的关系信息。3.GoCADModel3D格式向Geo3DML转换的基础因为二者都是由几何数据和可视化信息两部分组成。在GoCADModel3D中可视化信息主要在文件头信息中,在每个要素集合信息中也会包含该要素集合的颜色信息,在Geo3DML中可视化信息单独以map文件进行保存。在数据结构方面,GoCADModel3D中的Tsurf对应于Geo3DML中的geofeatureclass,它们都表示要素的集合。TFACE对应于Geo3DML中的GeologicFeature,它们都表示要素集合中的单个要素。GoCADModel3D中的REGION和TFACE以及LAYER与REGION之间具有某种关系,这种关系在Geo3DML中以Relation来表示。因为Geo3DML和GoCADModel3D数据结构之间具有这种一一对应的关系,这也是GoCADModel3D可以向Geo3DML转换的基础和前提。4.格式转换(1)转换思路:要将GoCADModel3D模型数据转换为Geo3DML格式,该模型数据必须包含Geo3DML需要的基本信息。首先是几何信息,主要为点数据以及它们之间的组合关系。还需要各要素集合的名称,各个要素的名称,然后是可视化信息,主要为各个要素的颜色信息。而这些是构成一个Geo3DML最基本的信息。所以首先需要建立相应的临时存储结构,将读取到的需要存储到Geo3DML中的数据进行临时存储,存储结束后建立与GoCADModel3D相对应的Geo3DML数据结构,将临时存储的数据转移到Geo3DML中。(2)GoCADModel3D数据的读取:○1首先读取模型主要的结构信息:文件名称,Tsurf的个数以及各个Tsurf的名称信息。TFACE的个数信息,以及每个Tsurf所包含的TFACE的个数和名称。REGION信息,包括每个REGION的名称以及组成它的TFACE的id信息。LAYER信息,包括每个LAYER的名称以及组成它的REGION的信息。○2进行颜色信息的读取,通过已经得到的各个Tsurf、REGION以及LAYER的名称信息进行颜色信息的查找匹配。○3进行属性信息的读取,主要包括“is_z”、“AXIS_NAME”、“AXIS_UNIT”、“GEOLOGICAL_TYPE”等属性值的获取。○4进行几何信息的读取,建立GMPolydata*类型的栈,对每个TFACE的几何信息进行读取,并将每个TFACE保存为一个GMPolydata存入栈中。因为是以TFACE为标志进行读取的,每读到一个TFACE字符串就会对之前读取到的点以及三角面信息进行存储,所以当整个几何信息读取结束后,需要对最后一个TFACE进行存储。(3)Geo3DML格式的建立:首先建立Geo3Dproject,然后建立几何信息结构Geo3DModel和可视化信息结构Geo3DMap。把一个GoCADModel3D文件当作一个project,而且只包含一个model和一个map。○1model的建立根据读取到的Tsurf的个数建立相应的GeologicFeatureClass,然后再建立两个GeologicFeatureClass分别对应REGION和LAYER。根据读取到的每个Tsurf包含的TFACE的个数,分别对Tsurf的每个GeologicFeatureClass建立相应的GeologicFeature。因为读取时建立的存储GMPolydata*类型的栈是按文件
本文标题:GoCAD格式转换
链接地址:https://www.777doc.com/doc-4084639 .html