Hi. I’m a backyard CNC’er who has been content to sandpaper artefacts due my lack of skill with rhino.
However I have seen videos of very complex surfaces being modelled simply and quickly and I would like to move in that direction.
I have a five sided hole that I can cover and sand in a number of ways by trial and error but I hope someone can at least outline a strategy that will let me put a surface on this simply and with ‘good practice’.
These are tricky - in this case possibly something like this - note I monkeyed a little with things to eiliminate the straight bit at the end of the lower curve and put that on the neck side of the hard bit.
All untrimmed surfaces in Rhino have four edges, though one, two or three edges can hae zero length. (Zero length edges may cause difficulties with certain operations so are bes avoided if possible.) It is possible to trim a surface to any shape but it is generally difficult to match a trimmed edge to another edge.
For filling holes with more than five sides there two basic strategies. One is to find an arrangement of surfaces with four or fewer edges, and then build those surfaces. This is what Pascal has done.
The other alternative is to use Patch or an plug-in such as XNurbs to create a trimmed surface. A disadvantage of using a trimmed surface as a patch is it is usually difficult to edit the surface to alter or refine it’s shape while keeping the trimmed edge in the same location.
Those two surfaces were the same but I’ve moved one of the points to the same location as the other point on the same edge. This caused the original edge between those two points to become 0 in length.
-wim
I’ve been trying to learn how to do these tricky surfacing problems. After an earlier failure, I took inspiration from Pascal’s patch layout and ended up with this:
Not perfect, but it’s far better than what I got before I saw Pascal’s patch layout! I did it a little differently though. It was fairly complicated and time-consuming and involved a fair bit of manual tweaking of CVs and slowly increasing the degree of the surfaces and progressively matching them. I made numerous adjustments to the curves before I started building surfaces too. There was a lot of trial-by-error. The trimmed surface in the middle was tricky to make prior to trimming. I made a new curve at the neck joint that shares part of the existing curve and used that for part of a sweep. I then created a blend curve and pulled that to the surface to trim it and then used Sweep2 to make the remaining surface. I also snapped a portion of the CVs in the middle surface to the CV locations of yet another surface I made that fully blended between the left surface and the neck joint. This helped get better flow in that area.
I am not thrilled with the meeting point between the left and center patches. If I were designing the guitar, I would probably avoid the perfectly straight line on the top curve and make it a fully curvature continuous, maybe single span, curve all the way from the fillet on the left.
I wonder if someone who has xNURBS could share what it yields with such a situation. Seems like it might save a lot of time with problems like this one.
Using the ideas presented here - well - those that I understood - and playing with curve shapes to yield 2 x 4 sided models I have got the best result for me yet in this area,
When faced with a challenge like this (and these are challenging!) the first thing to figure out is the optimal patch layout - everything will flow from that. In order to find the basic patch layout, I first simplify everything to the greatest extent possible - you first have to figure out how to model the general shape, and then tailor and tweak to make any specific shape. So, in this case, I’ve greatly simplified the input curves. It should also be noted - every single one of these curves is highly suspect from a surface modeling standpoint. They’re pretty garbage-ey, to be blunt - there’s a strong whiff of AutoCAD spline tools all over them. You’re never going to make a quality model by directly using them as input. Anyway, I rebuilt all of them to degree 5 single span or less, and started playing around. The real breakthrough for me came when I made a blend between the main neck loft, and a guide surface I’d created at the outside corner:
From there, it’s a matter of sculpting and matching your surface to get to your desired tangency on all surfaces. For me, since this is a woodworking piece that will get extensively hand finished, it’s hard to see any reason to go below 0.1 degree, and that’s probably overkill as it is. I’m working on an entire video called Zen and the Art of the Trimmed Edge, but if you pull the surfacing apart you’ll notice that the trimmed edge is not single span, it’s 2. In short, what I’ve found is that for best results when matching to a trimmed edge, I’ll up the degree to 5, then I’ll insert a span from 1 to 2, and then after that if I need I’ll keep adding degrees. Surfaces over degree 5 that are single span suffer from some issues when matching to trimmed edges, but inserting a knot/span into them using the natural option will keep the MatchSrf math “stable” much more often. So you’ll see the trimmed edge ends up at 7-2. This trimmed edge is fairly complex - it’s relatively long and doing quite a bit of “work” so the point count will need to be a bit high. That being said, I think this is a case where a trimmed edge is superior to an untrimmed solution.
This is only a patch layout study, but to me this feels like the best/most viable way forward proposed thus far. Alternately - doing these in subd is quite a joy! I did a whole bunch of necks and heels for Santa Cruz Guitar back in the day using T-Splines. For things that have that hand carved feel, often you can capture the feel and shape better with subd, so it’s a route I’d encourage you to test out.
Thank you very much for sharing that, Sky! I had a look at your file and it looks very good. I ran MatchSrf on the edge meeting the trimmed edge and set it to curvature and it improved the curvature continuity even more. I sure would like to develop a better intuition about how best to lay the patches out.
I’ll have to experiment with what you suggest about adding a span when matching to a trimmed edge.
I am really curious about how xNURBS would fare. I want to learn to do it properly, but it would be nice sometimes to just push a button for these kinds of situations!
You can definitely set MatchSrf to G2 along that trimmed edge, just know that it will push the verts around a bit in a way that’s not great for the flow, but will certainly spec out as better curvature. Just fyi, I would not set it as G2 from the main neck loft to that surface as G2, only because that’s not really how the input geometry would describe this curve here:
that s more or less the same approach i sketched above.
any reason why you leave this little edge (at the right / bottom) after trimming ?
instead of having a corner to corner trimming as I suggested above ? (the blue surface is trimmed corner to corner)
Leaving that little bit of the blend srf there is just personal preference in this case - although there are some variations of neck styles where I think you’d want to move it even more up, just to capture the design intent. FWIW, you’ll get a better result if you match this edge:
with the “Match target isocurve direction” option selected. The shape of the trim is somewhat arbitrary, and so one way you can give yourself the best possible chance for success is by having the neighboring edges matched as “naturally/easily” as possible. By having that angle to your trim, you’re making things a little bit harder to match at that corner. Hopefully that makes sense?
Sky, that’s an amazingly good result! I’m curious: is VSR essential for you to achieve this? Or can you manage this relatively easily using vanilla Rhino tools like MatchSrf and your know-how?
I often struggle with MatchSrf pushing my CVs into messy arrangements, the CVs zig-zagging all over the place. I often spend time trying to manually adjust them to smooth out their flow, trying to follow Alias golden rule number 1 and then try to fine tune the match with MatchSrf and my CVs often go all wonky again. I sometimes find that MatchSrf gives me this zig-zaggy CV arrangment, and after moving CVs manually into a nice flow, I find I am able to describe the curve as well or better myself. So it isn’t that the curvature I need is impossible with anything but that zig-zaggy arrangement. But the manual tweaking is tedious and super time-consuming. I could spend half a day trying to get one little five-sided region to work nicely.
It is probable that I don’t have sufficient understanding yet (I’ve only been at this for a few months). Or is MatchSrf actually not working as well as matching tools in VSR or Alias or whatever would? It seems that if I use a simpler surface, I more easily get smooth flow across the whole surface, but the edge matches are poor because there isn’t enough information there to describe the form needed at the edge. But if I use enough CVs (higher degree or multi-span) to sufficiently describe the form at the edges, the surface ends up being wavy because the CVs needed to give G2 continuity don’t reach far enough into the surface and don’t create sufficient tension between opposing edges. It just bends the edges, so to speak. It then is like bending a towel rather than a sheet of spring steel.
Generally, I am trying to start with a low-degree single-span surface to get the larger form as close as possible, and then increasing degree step by step, matching all the edges again after each step. And often the results are still not so great. I try to keep the surfaces I am matching to as simple as possible.
It feels like such a struggle. It is easy to get good matches under ideal conditions, when the degree is the same on both sides and gives just enough CVs to yield G1 or G2 across the edge-pairs, when both sides are untrimmed, when the isocurve directions match exactly, and so on. But any time I want to make some interesting form that I imagine, inevitably, I seem to find myself needing to fill an area with a number of sides like three or five or six. Or it’s an IQ test to try to figure out a patch layout that avoids the problem. Sometimes I want to realize my vision without it turning into an engineering project! This all leads me to think I should just buy xNURBS so I can make quick work of such areas (Does it actually deliver on this promise?). But I want to understand how to do it with basic tools too, and not be dependent on magic solutions.
How much manual CV tweaking is normal for good matching and flow, even using higher-end tools? How long should it take to solve such a five-sided region?