[问题] 请问有关如何自动抓边(SketchUp里的Ruby)

楼主: pugboy   2024-05-13 10:33:30
不好意思想请问各位大大先进
小弟目前想把SketchUp的图档汇入到Unity里
但是因为Unity的问题所以会缺少SketchU原本的一些边的线条
所以想在SketchUp里就把一些单独的边直接转成3D物件
找到了可以在SketchUp里写Ruby让他自动转成3D物件
但是在自动抓边我卡住了
我抓不到门的垂直的边,只抓到平行的边
想请问各位大大先进要如何改写才可以抓到门的平行跟垂直的边呢?
谢谢!
如下图
https://lurl.cc/43z2D
我的程式码如下:
# 定义一个方法来递回搜寻并抓取单独的Edges
def collect_lonely_edges(entities)
edges = []
# 迭代所有实体
entities.each do |entity|
if entity.is_a?(Sketchup::Edge)
# 检查这条 Edge 是否与任何面相连
connected_faces = entity.faces
edges << entity if connected_faces.empty?
elsif entity.is_a?(Sketchup::Group) || entity.is_a?(Sketchup::ComponentInstance)
# 如果是群组或组件,递回搜寻其子实体
edges.concat(collect_lonely_edges(entity.definition.entities))
end
end
edges
end
# 抓取场景上所有单独的Edges
lonely_edges = collect_lonely_edges(Sketchup.active_model.entities)
# 将找到的Edges标记为选取状态
model = Sketchup.active_model
model.selection.clear
model.selection.add(lonely_edges)
# 输出Edges的数量
puts "共找到 #{lonely_edges.length} 条单独的Edges,已标记为选取状态"

Links booklink

Contact Us: admin [ a t ] ucptt.com