QuadRemesh to get SubD Crease On Shoe Last Bottom Edge with Rhinocommon

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?

Thank you,
Sam

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…

Thank you,
Sam

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

https://developer.rhino3d.com/api/rhinocommon/rhino.geometry.mesh/quadremeshbrep

and ensuring that you’re setting PreserveMeshArrayEdgesMode to your desired integer value which will extract and utilize the edge curves for you.

Hi Travis,

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?

Thank you,
Sam

Your best bet to ensure you get creases on the edges that you expect is to unweld those edges before converting to a subd.

1 Like

That answers my question, thank you Travis

So does this solve your problem with the interpolated SubD?

Hi Travis,

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.

Thank you,
Sam