On my machine (Win10 i7-8750H 2.2GHz Nvidia GTX1060) and adding the 3000 arcs into a new group I am seeing consistently around 9.5 - 9.7 seconds.
What are the specs of the machine you are testing upon?
Adding to a new group means that the arcs will only need to be checked with their siblings for geometry merging, and not the rest of the model. The group can always be exploded at the end of the operation.
def go
model = Sketchup.active_model
entities = model.active_entities
model.start_operation("Add arcs", true)
t1 = Time.now
grp = entities.add_group
ents = grp.entities
(1..3000).each { |x|
ents.add_arc(
Geom::Point3d.new(0, x*5, 0),
X_AXIS, Z_AXIS, 10, 15.degrees, 135.degrees
)
}
t2 = Time.now
model.commit_operation
puts "time: #{t2.to_f-t1.to_f}\n"
end
Note in the above example, I’ve removed the assignments of the vectors and used the global constants X_AXIS
and Z_AXIS
. I also removed the unnecessary reference assignments from inside the each
loop as these assignments are not really used later and they just eat time creating Ruby object references.
P.S. - In your post please fixed the code block. See: