medeek
July 18, 2019, 12:53am
1
I’m surprised I have never had to do this type of operation before but I’m wanting to create a face given an array of points using the add_face method and then remove the actual face but leave the (outer loop) edges behind.
Its seems I must have done this sort of thing before but I can’t find a single example in any of my code.
This block first creates the face:
dep_group = Sketchup.active_model.active_entities.add_group
entities_dep = dep_group.entities
new_face_outline = entities_dep.add_face @pts
medeek
July 18, 2019, 1:23am
2
Maybe the only way (best way) to do this is to just cycle through the points and draw the edges with the add_line method.
The reason I want to use the add_face method is so that I can calculate the area of the polgyon and report that information later on in the code.
I have no problem doing this …
pts = [[0,0,10], [276,20,10], [276,276,10]]
ents = Sketchup.active_model.active_entities
f = ents.add_face pts
a = f.area
#=> 35328.0
f.erase!
… the edges are left intact . The face is removed.
Also no issues when drawing on the ground plane (Z = 0).
FYI, There are formulas for finding area of polygons …
How to Calculate the Area of a Polygon: 15 Steps (with Pictures)
1 Like
medeek
July 18, 2019, 2:51am
4
Maybe I just need a break from my code. I was accidentally erasing the group and not the face, no wonder it was not working.
Too easy!
Thank-you.
1 Like