原文发布时间:2013-09-12
作者:小C
SketchUp这种格式是SketchUp Pro和3D建模软件中的一种格式,FME可以对该数据模型的读取和写入,FME 2013 sp1支持SketchUp版本8或者更早期的版本。但是需要注意的是,目前还不支持SketchUp文本,尺寸,光照,相机还有坐标系,在写出SketchUp格式时,会自动输出为SKETCHUP_COORDSYS_0。
一个SketchUp文件是由一个.skp文件组成的,这个文件包括了在一个SketchUp模型中所用到的组,组件和实体对象。这种文件格式支持3D,多边形,纹理,和阴影模型,这些模型中包含有面(faces),边(edges),组件定义以及组件实例。
使用FME读取的一个SketchUp 3D模型:
SketchUp面(faces)包含有所用的颜色和纹理材质,可以有正反材质。如果只有正面的纹理材质,没有反面的纹理,那么就认为这个面是一面的-正面。正面即在坐标系中的一个右手边的法线方向,也就是说,在查看正面时,面的节点是一个逆时针方向。反面就这这边的对面,一个面可以在反面有不同的纹理。单独一个.skp文件(也就是一个SketchUp模型)包括多个几何对象实体(面,边线,纹理和图像),这些都被添加都一个层次组中,并分配到一个层(Layer)。SketchUp模型也包括由3D几何对象的建筑块所提供的组件定义。
使用FME SketchUp读模块可以读取SketchUp模型的外观贴图,同时,使用FME写模块也支持对外观的写出。SketchUp写模块将转换FME外观为一个SketchUp材质,如果FME外观没有设置任何纹理,那将会从FME外观中的漫反射颜色中创建SketchUp材质。
前面说到的Layer(层),在SketchUp模型中,有一个默认的层:Layer0,这个层不能被重命名。用户定义的层默认为Layer1,Layer2,等等,这些用户定义的层可以被重命名。
SketchUp模型中组件定义表示为FME几何对象定义,组件实例就是FME几何对象实例,组也就是FME中的聚合。FME读取SketchUp模型时,默认为一个组,可以通过打散转换器,将组进行打散处理。
将之前读取的SketchUp3D模型,使用打散转换器,将模型打散,然后使用GeometryPropertyExtractor转换器读取出组件实例名称,这样就分别提取出实例与其他对象:
这是其中一个实例,右下侧有几何对象实例的一些特性,包括层,id,阴影等特性信息:
注意:在FME中,实例是不能被进行打散的,但是如果对实例进行了修改,这些实例将会被自动打散修改,被分解为组,这些几何对象特性信息都是可以进行提取和处理的。
这里我们再来看一个非实例几何对象:
在右侧的几何对象特性中,可以看出,这个对象的类型是面,而且不带有材质信息。
SketchUp这种格式对几何对象的支持是有限的,了解支持的几何对象情况,对于处理和写出SketchUp模型非常有帮助,下面是该格式支持的几何对象情况:
相关视频:FME与3D(一)