I followed (very helpful) advice by TIG to create and transform copies of certain faces in a model, by creating a temporary group,
sometrans = IDENTITY # or something more complicated... tmpgrp = Sketchup::active_model.entities.add_group( [su_face] + su_face.edges ) newgrp = Sketchup::active_model.entities.add_instance( tmpgrp.definition, sometrans) tmpgrp.explode
I’m dealing with faces that have both line and arc bounding loops. This technique greatly simplifies the transformation of all the face edges. But, it loses important information - when any of the edges are ArcCurves, they get turned into just plain line segments, so that the edge is no longer a single arc or circle, instead being the individual line segments.
How can I preserve the curve?
OK, so while I was typing I decided to try something, and the answer is simple. I had chosen to model the grouping above on what you would do from the Sketchup interface, namely select the face AND all its edges to make a group. But, if you change the call above to just
tmpgrp = Sketchup::active_model.entities.add_group( [su_face] )
Then the copied loops correctly maintain the ArcCurve information. [Edit] This turns out to be incorrect. Under some conditions the “curve” information is lost. One case seems to be copying a face that has been pulled into a 3D solid, but the basic issue is that this technique does not guarantee the curve information will be maintained