Thank you for saving that as Rhino 7 format! The surface quality is very nice, though I can still see some minor waviness next to the surface edges. But the input blend surfaces in the 4 inner corners were not perfectly matched (“Edge continuity” reports G1 tangency deviation of 0,07 degrees), so this also can influence some waviness.
@maje90 , can you try this modified model where I replaced those 4 surfaces with new blend surfaces? patch-test-4.3dm (448.6 KB)
Oh! Nice!
I admit the whole logic behind it is not clear to me.
Actually, I prefer uniformly-spaced control points, I feel “safer” for when later I might need to do more modeling. (A surface with packed isocurves or control points very often is a problem for fillets or such later…)
@maje90 the surface you like better contains many more multi-knots and about 2x the amount of control points, so I highly doubt this gives you any advantage in further processing. I suspect the opposite.
Il comando dovrebbe essere “intelligente”, oltre che non esageratamente ridondante, ostico; dovrebbe adattarsi alle curve e alle preferenze di continuità scelte dall’operatore. Se per ottenere una patch decente si deve intervenire su chissà quale parametro (chissà quale!), anche solo una modifica fa fallire tutto, e via così, ricominciare daccapo, ecc, allora la modellazione diventa complicata, noiosa e fallimentare. Questo vale per qualsivoglia comando/strumento. Il CAD deve semplificare, automatizzare, non complicare. XNurbs non sarà perfetto, ma risulta più immediato e concreto nella sua implementazione. Pensiero personale…
I fully agree with your point. While the current Patch in WIP offers various options, it’s often unclear exactly how each parameter affects the outcome. To be honest, I find myself relying mostly on intuition and trial and error.
While the improvements to Patch in R9 WIP are a breakthrough, I believe Rhino’s native surfacing should aim to match or exceed the performance of xNURBS. A world-class surface modeling tool shouldn’t require a 3rd-party plugin for its core ‘n-sided’ surfacing needs.
While setting the internal curves to I is a step in the right direction, the only difference this makes is a) these curves do not participate in trimming and b) their position tolerance is different, given by the internal tolerance.
What I think is going on is that the file used by @Quan_Li has different units maybe? I would be thankful if the exact file that is giving problems can be shared by @Quan_Li, because I cannot reproduce it with the file shared by other users, and I would like to get to the bottom of this.
@brvdln, @menno
I am sorry, the reason I cannot produce the right surface is that I made the internal curves G1. If I make them Internal, it will produce the right one.
The shading reveals some extreme waviness around the target edges caused by the G2 matching to the vertical extrusions. The G2 there must be replaced by G1 tangency, because the horizontal extrusions are half cylinders.
The “Angle” setting also must be 0,1 degrees instead of 1 degree.
I agree that setting the angle to 0.1 degrees is more appropriate for high-quality G1/G2 transitions. However, I’m curious about the default setting: Should it be 0.1 by default for better precision, or is 1.0 kept to prevent frequent surface generation failures for general users? What do you think is the best balance between stability and quality?
0,1 degrees is the better option. I would rather wait for a few seconds longer to get a high-quality surface than making a compromise with a little bit quicker but flawed one.
But as I mentioned above, the main goal is to choose between I, G0, G1 and G2 wisely.
@menno
Is it possible to prevent my parameters from resetting every time I start a new command session?
In the lower section where I wrote “no reset”, I noticed that only the spans keep the values I used previously.