I’m curious why some objects do not show up as solid when created using the ruby api?
Run this code in the Ruby Console.
def clear_model
Sketchup.active_model.entities.clear!
Sketchup.active_model.definitions.purge_unused
end
def test_non_solid
d = Sketchup.active_model.definitions.add("Non-Solid")
Sketchup.active_model.entities.add_instance(d, IDENTITY)
d.entities.add_face([5, 0, 10], [5, 10, 10], [0, 10, 10], [0, 0, 10])
d.entities.add_face([5, 0, 10], [5, 10, 10], [10, 10, 10], [10, 0, 10])
d.entities.add_face([0, 0, 10], [0, 10, 10], [0, 10, 0], [0, 0, 0])
d.entities.add_face([10, 0, 10], [10, 10, 10], [10, 10, 0], [10, 0, 0])
d.entities.add_face([0, 10, 10], [10, 10, 10], [10, 10, 0], [0, 10, 0])
d.entities.add_face([0, 0, 10], [10, 0, 10], [10, 0, 0], [0, 0, 0])
d.entities.add_face([0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0])
end
def test_solid
d = Sketchup.active_model.definitions.add("Solid")
Sketchup.active_model.entities.add_instance(d, Geom::Point3d.new(0, 20, 0))
d.entities.add_face([0, 0, 10], [0, 10, 10], [0, 10, 0], [0, 0, 0])
d.entities.add_face([0, 10, 10], [10, 10, 10], [10, 10, 0], [0, 10, 0])
d.entities.add_face([10, 0, 10], [10, 10, 10], [10, 10, 0], [10, 0, 0])
d.entities.add_face([0, 0, 10], [10, 0, 10], [10, 0, 0], [0, 0, 0])
d.entities.add_face([0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0])
d.entities.add_face([0, 0, 10], [0, 10, 10], [5, 10, 10], [5, 0, 10])
d.entities.add_face([5, 0, 10], [5, 10, 10], [10, 10, 10], [10, 0, 10])
end
def do_tests
clear_model
test_non_solid
test_solid
end
Note that in the non solid test the face creates a new long edge rather than reusing the two short lines that already exist.