@pgarmyn said:
@TIG
In method def self.intersectALL()
(ens.length-1).times{|i|
> (ens.length-1).times{|j|
> next if j<=i # in place of ; next if j==i
> if self.intersect?(ens[i], ens[j])
> ss.add(ens[i])
> ss.add(ens[j])
> end
> }
next if j<=i ( in place of next if j==i )
prevents double checking (slower) and double results.
If intersect?(ens[1], ens[2]) has been tested, then we don't have to test intersect?(ens[2], ens[1])
I don't know why, but neither TIG's version, nor yours, works on my computer
this is how i changed the code:
model=Sketchup.active_model
ss=model.selection
ents=model.active_entities
ss.clear
gps=ents.grep(Sketchup;;Group)
ins=ents.grep(Sketchup;;ComponentInstance)
ens=gps+ins
ens.uniq!
ens.compact!
for i in (0..ens.length-1)
for j in ((i+1)..ens.length-1)
if TIG.intersect?(ens[i], ens[j])
ss.add(ens[i])
ss.add(ens[j])
end
end
end
puts "Any intersecting groups/component-instances are highlighted..."
length-1 because it because i begins at 0...
and the i+1 to avoid comparing i to itself
is this version much slower than yours?