sketchup - 如何在sketchup中使用ruby api知道人脸包含另一张脸
问题描述
我有一个faceA,一个faceB,faceC,faceA包含faceB,我想知道如何让Ruby API让faceA包含faceB。但不包含 faceC
faceA.all_connected.grep(Sketchup::Face)
这个可以找到faceB,也可以找到faceC
解决方案
这可以通过比较构成面部的环来确定。
Face.outerloop
将返回限制面的循环(不包括任何内部边缘)。 Face.loop
返回面部的所有循环,包括内部和外部。
因此,通过获取所有连接面的列表(使用all_connected
您发布的示例代码),您可以迭代这些面以确定outerloop
迭代面是否共享任何 faceA。如果是这样,则它不是嵌入面,而是相邻的。
这里发布了另一种方法,这可能也是一个好方法:https ://forums.sketchup.com/t/how-to-know-that-a-face-contains-another-face-using-ruby -api/21840/3
请注意,在链接的帖子中,他们评论说您不能直接比较循环,但您可以比较边缘(构成循环)。
推荐阅读
- android - 带索引解析的 JSONOBJECT
- google-chrome - 由 Codeception 驱动时,Chrome 67 不显示文本
- java - 如何在 JPA 中使用不同的序列名称/身份
- mysql - 如何逐行从大表中获取数据
- ios - 如何启用 SocketRocket 日志记录
- python-3.x - 下面的python代码一开始运行良好,但是由于我使用了相同的目录,所以第二次出现循环,我需要在哪里更改以避免无限循环?
- javascript - 计算对象的百分比
- ponyorm - PonyORM 中的模式迁移
- javascript - 输入完成后滚动到 div
- python - Sklearn DecisionTreeclassifier 为拆分返回不可能的值