@sdmitch said:
[...]Anyone else seen this
Yes, I've encountered this as well and have had some success with the following method. Instead of exploding the intersection edges into the face group with one explosion, the edges are distributed randomly over something like 20 groups, and these are then exploded into the face group. On complex geometry this is both faster and more robust, for some unknown reason.
I've added a small file and a code snippet to illustrate the principle. Select the two groups and run the script.
mod = Sketchup.active_model # Open model
ent = mod.entities # All entities in model
sel = mod.selection # Current selection
gs = sel.grep(Sketchup;;Group)
#find the edge group
eg = gs.select{|g| g.entities.grep(Sketchup;;Face).length == 0}[0]
#find the face group
fg = gs.select{|g| g.entities.grep(Sketchup;;Face).length != 0}[0]
#collect all edges from the edge group
es = eg.entities.grep(Sketchup;;Edge)
#compute a tranformation from the edge group into the face group
tr = eg.transformation * fg.transformation.inverse
#create #no_of_groups empty groups in the face group
no_of_groups = 20
ess = []
(1..no_of_groups).each { |i| ess << fg.entities.add_group }
#add edges more or less randomly to the groups
i = 0
es.each { |e|
ess[i % no_of_groups].entities.add_line(e.start.position.transform(tr), e.end.position.transform(tr))
i += 1
}
#explode all groups
ess.each { |g| g.explode }
#delete the edge group
eg.erase!