我有一个faceA,一个faceB,faceC,faceA包含faceB,我想知道如何使用Ruby API来获取faceA包含faceB。但不包含faceC
faceA.all_connected.grep(Sketchup::Face)
这可以找到faceB,也可以找到faceC
答案 0 :(得分:0)
这可以通过比较构成面部的循环来确定。
Face.outerloop
将返回以面为界的循环(不包括任何内部边缘)。 Face.loop
返回脸部的所有循环,包括内部和外部。
因此,通过获取所有已连接面孔的列表(使用您发布的带有all_connected
的示例代码),您可以遍历这些面孔,以确定faceA的outerloop
是否被共享反复的脸。如果是这样,则它不是插入面,而是相邻的。
这里发布了一种替代方法,也可能是一种不错的方法:https://forums.sketchup.com/t/how-to-know-that-a-face-contains-another-face-using-ruby-api/21840/3
请注意,在链接的文章中,他们评论说您不能直接比较循环,但是可以比较边缘(组成循环)。