I have a thread already going with a version of this question here. But I don’t think it can be solved with quadremesh tool in Rhino. And I have to automate it anyway. So I’m posting this question here in the Rhino Developer section.
Basically, I’m trying to create a SubD model of QuadMeshCreaseTest.3dm (1.9 MB)
with a crease on the bottom edge. It can be done by manually creasing the bottom edge loop afterwards, but the results are only good when not interpolating, and I need to interpolate to get an accurate model with a reasonable SubD face count.
So I’m thinking maybe there are some extra settings exposed in Rhinocommon that could help manage to get the crease all along the bottom edge.
That being said, there is one setting from QuadRemesh in rhino that I can’t find in Rhinocommon, and that is “Use Surface Edges” - Off/Smart/Strict. Is this available in Rhinocommon by chance?
Any other settings in Rhinocommon that could help get the crease on the bottom edge?
Use surface edges merely passes in Brep edges as guide curves. Keep in mind that QuadRemesh on a Brep is just passing the Breps render mesh in as the input mesh to be remesh. The “Smart” is just a filter that excludes any of those edge curves that Rhino deems “extremely short”.
Use surface edges gives very different results from using the bottom edge as a guide curve (tried all curve influence types). So it seems like ‘Use surface edges’ is doing something different. And whatever it is, it is better than guide curves and I’d like to find the equivalent in Rhinocommon. Any suggestions?
Even with ‘use surface edges’, I’m still not able to get a subD bottom edge creased model of the shoe last I attached previously. Someone was trying to help me in the other thread, but ultimately didn’t have the answer. Perhaps there is some additional settings within Rhinocommon that could better solve this problem…
As I mentioned in my previous post, using brep surface edges just passes in the breps edges as guide curves for you without you having to make additional curves in those locations.
The QuadRemesh command calls the RhinoCommon quadremesh functions so everything you need is there. You might try posting your code to get a more detailed solution.
To remesh a brep as the command does, you should be using
PreserveMeshArrayEdgesMode is what I was looking for. I just didn’t know that it was equivalent to “Use Surface Edges”. Now I can get the same results with Rhinocommon as I do with QuadRemesh in Rhino. Thank you.
I still find I can’t always get the SubD edge I want. I’ve noticed this is the case if the two surfaces of the edge don’t meet at a sharp enough angle. Perhaps there is some kind of sensitivity setting for when and edge is sharp enough to be recognized as a crease?
I’m able to get it working better now. It’s still not quite what I had hoped for. But I recognize the limitations and now know the tools I have to work around them as much as possible.