FME对CAD中组的处理

原文发布时间:2013-07-03

作者:小新

CAD中除了常见的点、线、面,还有一些特殊的几何类型,如CAD中的块,组等。

CAD的块比较常见,最近在处理CAD数据的时候,遇到CAD中的组,那么来看看FME对CAD组的处理能力吧。

首先,通过帮助了解到如下信息:

1、  FME中读取CAD数据时,可以通过格式属性“autocad_entity”了解要素的实体类型,对于组来说,autocad_entity值为“autocad_group”。

2、  在FME中,只支持对组类型的读取,不支持写出。

3、  组要素是一组没有几何实体的要素。

前面两点还比较好理解,最后一点但看字面意思理解起来有点费解。下面通过实际数据进行说明。

1)        首先在Autocad中打开原数据:

        

    在CAD中,选中一个组的数据,可以看出会选中组成该组的所有要素。且在特性中该要素显示为组。

2)        在FME中加载该数据

通过“Autodesk AutoCAD DWG/DXF”读模块打开一个还有组的dwg数据,在读模块参数中有个“Read Groups”的参数,选取该参数。选择合并输出:

        

    3)        在工作空间中暴露autocad_entity属性,并过滤出autocad_entity为autocad_group的要素,输出到viewer中查看:

    

  在viewer中,看不到几何图形,只能通过“选择非几何对象”进行选择查看。这里就可以理解上面的第3点“组要素是一组没有几何实体的要素”。

在fme中读到的组,并不是像再CAD中看到的一组实体要素,而是一个非几何对象。那如何知道该每个组中有哪些要素呢?则需要通过autocad_entity_handle{}这个列表去获取。如下图所示:

        

如在4FEBB这个组中,是由“4FEB6、4FEB7、4FEB8、4FEB9、4FEBA”这5个要素组成。通过该列表可以知道通过FME读取该文件时,把属于同一个组的要素进行关联。

有了上面的陈述,现在我要对这个包含组的dwg数据进行处理,由于FME不支持组的写出,处理要求则转换为对于同一个组的要素转为块后输出到目标dwg中。(处理时的重点是找到属于同一个组的要素进行聚合并输出为块)。

模板如下:

            

        输出结果:

        

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/80722938