I have started using the SketchUp C API to import SKP files into our standalone app.
Is there a way within the API to access what SketchUp considers a “Surface” which appears to be a set of connected faces.
I don’t see a way in the API to get the surfaces - knowing that some faces are connected instead of all being independent would greatly increase our performance when making polygonal meshes from the faces.
The edges between “surface” faces are softenedand/or smoothed.
A soft edge will cause the connected faces to be treated as a surface. This means that if you have Hidden Geometry off and select one face it will also select all faces connected with soft edges. A soft edge will also appear hidden.
The “surface” feature is a GUI feature and I do not think either API (Ruby nor C) has a “get surface” method / function.
So within any entities collection (model, group or component) you would need to filter the faces you get back. It might be easier to collect the edges, and filter out any that are not softened or smoothed. Then get the faces that share the remainder. You’ll need to decide whether you also need the unsoftened / unsmoothed border edges.
Another possibility is to go via the EdgeUse. If you have a face that is part of a surface, having a smoothed / softened edge, then you get the next connected edge from the edge’s EdgeUse object and from that the connected face. … And so on.
Thanks for the snippet … I’ll investigate to see if that will help.
What I’m doing is trying to build individual mesh entities out of connected facets. Fortunately we have some tools here that can take a large set of triangular facets and build what I need, but its basically a post-processor that I need to invoke whereas if the SketchUp API were to tell me what faces connect to make what the webapp will report as surfaces, them I think I can manage it upstream instead of downstream.
I did not find a way in the SketchUp API to access a tessellation that matches the ‘surfaces’ shown in SketchUp. We do have some pretty strong mesh tools here internally and I ended up finding something that was able to do the job for me from a lot of random triangles.
Sorry I couldn’t help. I wasn’t successful in my attempt to log a ticket - maybe you can.
Okay then please begin a new topic rather than hijacking this one. You can link the 2 topics as related by clicking the Share button at the bottom of the thread (above the Bell notification button) and then click the +New Topic button on the Sharing popup.