在sketchup中如何知道面孔包含另一张面孔ruby api
how to know face contain another face with ruby api in sketchup
我有一个faceA,一个faceB,faceC,faceA包含faceB,我想知道如何让RubyAPI得到faceA包含faceB。但不包含 faceC
faceA.all_connected.grep(Sketchup::Face)
这样可以找到faceB,也可以找到faceC
这可以通过比较构成面部的环来确定。
Face.outerloop
将 return 限定面的循环(不包括任何内部边缘)。 Face.loop
return 一个面部的所有循环,包括内部和外部。
因此,通过获取所有连接面的列表(使用您 post 编辑的 all_connected
示例代码),您可以遍历这些面以确定是否有任何面 A 的 outerloop
由迭代面共享。如果是这样,则它不是内嵌面,而是相邻的。
这里有一个替代方法 posted 也可能是一个很好的方法:https://forums.sketchup.com/t/how-to-know-that-a-face-contains-another-face-using-ruby-api/21840/3
请注意,在链接 post 中,他们评论说您不能直接比较循环,但可以比较边(构成循环)。
我有一个faceA,一个faceB,faceC,faceA包含faceB,我想知道如何让RubyAPI得到faceA包含faceB。但不包含 faceC
faceA.all_connected.grep(Sketchup::Face)
这样可以找到faceB,也可以找到faceC
这可以通过比较构成面部的环来确定。
Face.outerloop
将 return 限定面的循环(不包括任何内部边缘)。 Face.loop
return 一个面部的所有循环,包括内部和外部。
因此,通过获取所有连接面的列表(使用您 post 编辑的 all_connected
示例代码),您可以遍历这些面以确定是否有任何面 A 的 outerloop
由迭代面共享。如果是这样,则它不是内嵌面,而是相邻的。
这里有一个替代方法 posted 也可能是一个很好的方法:https://forums.sketchup.com/t/how-to-know-that-a-face-contains-another-face-using-ruby-api/21840/3
请注意,在链接 post 中,他们评论说您不能直接比较循环,但可以比较边(构成循环)。