これがいくつかのGoogleSketchUpRubyAPIスニペットです。Edge#find_faces
SketchUpが特定のエッジで可能な面を見つけようとする方法を使用すると、非常に簡単です。https://developers.google.com/sketchup/docs/ourdoc/edge#find_faces
現在選択されている顔を検索します。
# Find faces for selected edges:
model = Sketchup.active_model
model.start_operation( 'Find Faces in Selection', true )
for entity in model.selection.to_a
next unless entity.is_a?( Sketchup::Edge )
entity.find_faces
end
model.commit_operation
現在のコンテキストの顔を検索します。
# Find faces for current context:
model = Sketchup.active_model
model.start_operation( 'Find Faces in Current Context', true )
for entity in model.active_entities.to_a
next unless entity.is_a?( Sketchup::Edge )
entity.find_faces
end
model.commit_operation
モデル内のすべてのエッジの面を検索します。
# Find faces for all edges in model:
model = Sketchup.active_model
model.start_operation( 'Find Faces in Whole Model', true )
for entity in model.entities.to_a
next unless entity.is_a?( Sketchup::Edge )
entity.find_faces
end
for definition in model.definitions
next if definition.image?
for entity in definition.entities.to_a
next unless entity.is_a?( Sketchup::Edge )
entity.find_faces
end
end
model.commit_operation
このためにDWGファイルのバッチを処理する必要がある場合はModel#import
、DWGファイルのインポートを使用してそれを自動化することもできます。https://developers.google.com/sketchup/docs/ourdoc/model#import
これは、エッジが同一平面上のサーフェスの境界であることを前提としています。インポートするワイヤーグリッドが1つを表すことができる場合にのみ、ソリッドを取得します。