SketchUp(無料版、Mac)で簡単なフルートを作るスクリプトを書いています。チューブとチューブを突き抜けるシリンダーを作成し、チューブとシリンダーの間に交差線を引き、シリンダーを消し、円を残してチューブを切り取ります。
これはマウスで行うと機能しますが、マウスでの配置と測定を正確に行うのは難しいことがわかりました。ただし、これまでのところ、スクリプトで機能させることはできませんでした。現在、チューブに不完全な円を描いているので、顔を見つけて消去することができません。Ruby コンソールで次のスクリプトを実行すると、私の意味がわかるはずです。私は何を間違っていますか?
entities = Sketchup.active_model.entities
# make tube
tube = entities.add_group
tube_inner = tube.entities.add_circle Geom::Point3d.new(0,0,0), Geom::Vector3d.new(0,0,1), 5, 360
tube_outer = tube.entities.add_circle Geom::Point3d.new(0,0,0), Geom::Vector3d.new(0,0,1), 6, 360
cross_section_face = tube.entities.add_face tube_outer
inner_face = tube.entities.add_face tube_inner
tube.entities.erase_entities inner_face
cross_section_face.pushpull -10, false
# make a cylinder that punches through the wall
hole_punch = entities.add_group
hole_outer = hole_punch.entities.add_circle Geom::Point3d.new(0,0, 5), Geom::Vector3d.new(0,1,0), 3, 360
face = hole_punch.entities.add_face hole_outer
face.pushpull 10, false
# draw the intersection lines and erase the hole punch
entities.intersect_with true, hole_punch.transformation, tube, tube.transformation, true, hole_punch
hole_punch.erase!