This code appears to remove the vertices as well, messing up the faces generally
# create an inner edge collection
inner_edges_to_cull = []
# fill in the section plane from the section points
Sketchup.active_model.entities.grep(Sketchup::Edge).each{|e|
# collect edges where each vertex has 3 or more connected edges and has 2 faces
if e.end.edges.length > 2 && e.start.edges.length > 2 && e.faces.length > 1
if !inner_edges_to_cull.include?(e)
print "adding #{e} to inner_edges_to_cull\n"
inner_edges_to_cull << e
end
end
}
print "inner_edges_to_cull: #{inner_edges_to_cull}\n\n"
Sketchup.active_model.active_entities.erase_entities inner_edges_to_cull
@eneroth3, maybe this is about the vertext/endpoint that ends up on two collinear edges without a third edge connected. The one on the left also gets purged after deleting the second edge in the animation.
Although I don’t know why you would want to keep that endpoint there. Unless it has to do with dimensioning your model in a certain way. Who knows? (OP does)
The workings of the SketchUp cleanup operation have, so far as I know, never been documented and remain somewhat inscrutable. @eneroth3 is correct that cleanup will detect when an erase leaves two co-linear edges and will merge them into one, deleting the vertex that previously separated them unless it is also used by some other entity. There is no documented way to avoid this cleanup action, so even though you might find a workaround that seems to work there is no guarantee it will always work.
I think the answer is not to answer the question as it was originally posed !
In the manual example you are erasing edges but their vertices are left behind, because those vertices are also used by other edges…
If what you really want to do is to erase those edges which support two [or more] faces, whilst leaving those edges which support only one edge [around faces’ perimeters], then the process is this…
ents=Sketchup.active_model.entities
# collect all edges which have >1 face [forget looking at the vertices !]
to_cull = ents.grep(Sketchup::Edge).find_all{|e| e.faces.length > 1 }
to_cull.uniq!
ents.erase_entities( to_cull ) if to_cull[0]
Note: if you also want to erase any ‘faceless’ edges, then change the find_all test to: