如何在Sketchup中知道脸上包含红宝石API的另一张脸

时间:2019-06-21 15:42:23

标签: sketchup

我有一个faceA,一个faceB,faceC,faceA包含faceB,我想知道如何使用Ruby API来获取faceA包含faceB。但不包含faceC

faceA.all_connected.grep(Sketchup::Face) 

这可以找到faceB,也可以找到faceC

1 个答案:

答案 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

请注意,在链接的文章中,他们评论说您不能直接比较循环,但是可以比较边缘(组成循环)。