I do not think that either Patch or xNurbs is needed here. From what I understand of the design intent is that the internal G0 crease should gradually be smoothed towards the G1 or G2 continuous upper boundary.
I propose the following. It introduces a kink and keeps the surface kinked by switching off CreaseSplitting. This is usually not recommended, but I think this is a good case to temporarily switch it off. The setting does not keep between sessions which is a Good Thing™.
_CreaseSplitting _Disable
Create a degree 3x3 single span plane with _Plane _Deformable _UDegree=3 _VDegree=3 _UPointCount=4 _VPointCount=4 _3Point and select three corners.
_MatchSrf with multiple matches again, but now use refinement and match-by-closest point. This will increase the surface degree to 5x9 because the target surfaces have those degrees.
First duplicate the two creased surface edges and join them into a polycurve, and use that as target for _MatchSrf again, but now on the lower creased edge, position only.
I’m reviewing the file — what an interesting result. Using _InsertKink is actually a really smart solution to the problem. I’ll definitely keep that in mind for the future.
good @menno
The result from this procedure can be used as starting surface with Patch; set Preserve Edges on in that case. It will then smooth out any unevenness and improve any edges that were not matched to the required tolerance; the kink does not contribute to the surface energy so that may get more pronounced.
@menno Thanks, I’m seeing various results — the method is really fascinating.
The only thing is that this command doesn’t have a dedicated icon and can only be called from the command line. So it falls into that category of “hidden” commands: either you know it exists, or you’ll probably never discover it.
In my opinion, it would be useful to create an icon for it and place it in the surface tools section. Also, adding a short usage video — like in this case — could help not only me, but many other users as well, become aware of the existence of the CreaseSplitting command.
I agree and I think I should add a warning for the use of kinked surfaces: if a surface contains a kink, it can experience all kinds of problems: difficulty in downstream processing (trims, fillets, etc.) and rendering/analysis artefacts (the mesh does not know about the kink).
So, once you’re happy with the kinked surface run _CreaseSplitting _Enable to re-enable crease splitting and _DivideAlongCreases on the kinked surface to convert it into a polysurface with parts on either side of the kink.
Back in year 2008, I and a friend of mine who is a programmer had a brief moment of developing a simple NURBS program, but other tasks at the time took out time and the project was scrapped. Years later, I proposed some of the ideas in this forum, including a “Hybrid surface” tool (a.k.a. “Crease patch”) that could produce a crease that gradually disappears.
The parameters of the crease were supposed to be modified by the user, in order to control how it blends to the smooth middle of the surface:
Crease strength;
Falloff shape;
Total distance.
The indicators next to the target edges were inspired by Solidworks. The latter have floating indicators that could be moved in the 3d space by the user on the current view plane, in order to allow a better visibility to the previewed surface.
Here are some pictures that I keep from that period. These should exist somewhere in the forum, but I fail to find them with the Search function.
Also, this is a conceptual multi-blend option that should offer a smooth transition between the patches. Notice the alternative version of the 6-sided patch that could be made from two 4-sided patches:
The latest WIP release updates the Continuous Patch component, much appreciated, however it leaves me clueless as to what connections where and how things have changed so I can quickly rewire.