几何模型"/>
利用CLIPPER裁剪3维几何模型
原文发布时间:2013-08-28
作者:小C
利用Clipper转换器可以执行对几何图形的裁剪操作,对3维的实体也同样有效。在2013版本中该转换器将一系列裁剪范围(clipper)和被裁剪要素(clippee)分裂成两组输出数据:INSIDE输出端(在clipper要素范围内的所有clippee要素);OUTSIDE输出端(在clipper要素范围外的所有clippee要素。然而在2013之前的一些版本中有四个输出端。
“Clippees on Clipper Boundary”这一设置主要针对clippee要素与clipper要素边界重合的部分,指定其作为内部或者外部数据。如果设置为“Treat as Inside and Outside”,则边界范围上的点线将被重复输出为内部和外部数据。通过设置“Create Aggregates”参数,可生产聚合或者独立要素数据,并输出。
这里,需要注意的是在输入clippee与clipper端均需输入相同的几何对象。clipper端支持多边形、环、聚合多边形、聚合环,在clippee输入端由实体/点/点云或者这些几何对象聚合体组成时,clipper端也可以是一个实体或者多个实体。
注意:clipper转换器在没有接收到有效的clipper要素时,所有的clippee要素都将作为OUTSIDE输出。另外,针对mesh/surfac等不支持的几何对象,用该转换器时,会报错。
一、用一个3维实体(fme_solid)对另一个3维实体进行裁剪
例如,1、在clipper转换器两个输入端中分别输入下面两组实体数据:
用clipper输入端数据裁剪的clippee输入端数据,输出完全在clipper范围内的clippee输入端数据如下:
输出的完全在clipper范围外的clippee输入端数据如下:
注意:裁剪的3D模型,输出数据是在clipper 3D模型范围(xyz)中的clippee输入端数据,而非xy平面内数据。
2、如果clippee输入端是solid与area的聚合体(或者多个实体),clipper的solid数据对clippee数据进行裁剪时,仅输出的clippee输入端solid几何对象。输入数据如下:
输出数据为:
Outside
Inside
二、用一个3维的fme_area对一个3维的fme_solid进行裁剪
注意:在clipper输入端的数据是实体(solid)时,clippee输入端中的所有非点和非实体的几何对象将被忽略。
1、 fme_solid的xy平面完全包含在fme_area的xy平面内,则会在INSIDE端口输出clipee输入端数据
输入数据如下:
输出数据为:
2、 fme_solid的xy平面完全不包含在fme_area的xy平面内,则会在OUTSIDE端口输出clipee输入端数据
输入数据如下:
输出数据为:
3、 fme_solid的xy平面与fme_area的xy平面相交,尽管工作空间运行成功,但会有警告,并输出数据为0。
警告内容为:
Received geometry that cannot be clipped. A possible cause may be polygons with collinear lines in their boundaries
(接收到的几何对象不能被裁剪,一个可能的原因是在他们的边界范围中,存在共线多边形)
三、用一个3维的fme_area对一个2维的fme_area进行裁剪,或者是一个2维的fme_area对一个3维的fme_area进行裁剪
最后裁剪的范围为在xy平面坐标范围的数据。
例如,输入数据为:
输出结果数据为:
或者
更多推荐
利用CLIPPER裁剪3维几何模型
发布评论