How to force trim to always pull curves to its surface?

Many of my surfaces have G2, others are G1 (around less important small corners), and some are something like G1,5 (G1 whose 3rd row of control points I adjusted manually to be close to G2, but is not a true G2, because sometimes G1,5 has better visual flow and reflections than true G2, G3, G4 etc). In this case the first two rows of control points (the G1 ones) remain the same, but even then offsetting these surfaces sometimes results into creation of extremely tiny new edges or split edges.

I also don’t agree with your statement that the “Loose=Yes” produces perfect match. It may be the case in simple G1 fillets such like those on basic mechanical design shapes, but try it on smooth double curved surfaces and you will immediately spot the obvious deviation of the loose offset surfaces that will produce either naked gaps or loss of continuity.

The input curve is coloured in black; the offset curve with “Loose=Yes” is coloured in white; the offset curve with “Loose=No” is coloured in blue. There is a deviation everywhere except for the start and end.

The same rule applies for surfaces, too. Only the 4 corners of an offset surface preserve the true offset distance.

This is a very simple case. Even using “Loose=No” results in a slight deviation, even though it’s within the user-set tolerance and in 95% of the cases joining of offset surfaces is possible. But in the rest 5% the cases the resulting offset surfaces must be modified to avoid the naked edges or loss of continuity.

P.S.: Read again my earlier posts and you will notice where and how the discussion about the deviation started. You keep repeating about G1 fillet surface which is a totally different thing and has nothing to do with automotive surfacing except for rounding the outmost edges around the border of the body panel. If you like to continue to argue, that’s your problem. I don’t see a reason to argue for the sake of having to argue. :slight_smile:

Every car designer has his or her vision about the car styling, hence we live in a World where any car (and any other kind of machines, toys, power tools, buildings, clothes, shoes, sun glasses, bicycles, electronics etc) has more or less its own personality. Some of them are hit, others are miss. :slight_smile: Modern cars often feature too many complex details for the sake of complexity. The manufacturers hope that the regular consumer will accept the over-complexity as a statement for the quality and advanced technology in their car models. To some extent this is true.
Pontiac Aztek, for example, was the most practical and versatile SUV of its time, however, it failed on the market and lead to substantial loss to “General motors”, because its radical design was so different than the competitor models that some people truly loved it but others simply hated it. In the eyes of the haters the car looked as low quality product that only losers would buy. They never experienced what’s to actually own the car; they just relied on their opinion based on the visual perception and personal taste. However, actual owners of the car loved it and enjoyed using it. :slight_smile:

1 Like

Hi,
These are great I’d love to see some tutorials on how you made some of this nice work?
Thanks for posting.
RM

For interior parts or plastic parts, you may be correct, but body panels are absolutely G2. In fact, I have worked with a very high end European made car that’s entirely in G3.

But seriously, @pascal or someone, can you please split off the surface continuity/offset discussions? :rofl:

1 Like

:slight_smile: that is correct for every engineering product.

1 Like

I agree. This topic started for a different reason and sorry for the off-topic. :slight_smile:

One thing that’s interesting about NURBS surfacing is that there is no universal modeling technique. Some surface creation tools offer similar end result and usually I try a few of them until I pick the one that performed best in the given situation. It may be “Blend surface”, or “Sweep 2 rails”, or “Network surface”, or “Loft”, or “Extrude”… Most of the time I combine these with “Rebuild UV” and additional point editing to roughly shape the surface according to my intent, then I apply “Match surface”.

Please stop misrepresenting what I have said.
I never said it would work on your surfaces.
In fact I have repeatedly said the opposite - it generally is not going to work with the surfaces you are making.

The advantage of being able to use loose offset is that the output offset surfaces will be no more complicated than the input surfaces.

This discussion started because of your complaint that you can’t trim a small amount off a surface. I have tried to explain that the origins of the problem is a combination of the surfaces not having good tangent continuity and using offsetsrf on the joined surfaces.

If you start with surfaces with good tangent continuity and offset them as individual unjoined surfaces you will not have the problem.

Inability to trim a very tiny fraction off a surface (despite being withing the file tolerance) happens with any individual surface, especially at a steep angle. No need for that surface to be tangent to another surface, or offset surface, or part of a polysurface. The “Trim” and “Split” tools both fail to remove tiny amount of a surface, because they are probably programmed to automatically “snap” to the nearest corner or for whatever reason. This also applies to the “Project curve” tool. Setting the tolerance to be 10x or more accurate solves the issue. You are free to stop repeating about tangent surfaces, because you are beating a dead horse. :slight_smile:

I regularly use loose offset surfaces that then I further improve with point editing and “Match surface”, but they only work in areas where the resulting surface is not trimmed. My example showed a trimmed surface that was surrounded by several adjacent surfaces, so it had to keep its shape less for the very tiny edge that is clearly seen in my 3dm file above. Believe it or not, car body panels are not made entirely by 4-sided patches without trimmed edges. Most of the surfaces are trimmed and used as a base for building other surfaces (usually “Blend surface”, “Sweep 2 rails” or “Network surface”). Some areas need multi-sided transitions, and the best quality finish is to trim a smooth 4-sided surface to make it appear as 3-sided or 5-sided.

Thanks for your reply I appreciate your posts.
RM

So I’ve been using this in Rhino as well for the past 6 months (specifically because of this topic), but I just quite shocklingly discovered that this produces G0 trim edges!

The green surface here is a G3 blend surface, and look at the trim edge it produces:

Now, the rule I’ve learned for the past decade is the following:

A projected curve loses one level of continuity, so if you trim with G2 curves, you get G1 edges. If you trim with G1 curves, you get G0 edges.

However, this doesn’t seem to be true at all for intersecting surfaces (and I just tried it in Alias as well).

How do you work around this?

@Pascal is this not true for the underlying mathematics in Rhino? @John_Brock you like to quote the NURBS definitions to me, do you know? @bobmcneel ?

I might embarrass myself here, but what the heck:

alias

G3 surface/curve/edge used to project normal (pull) trim a surface, always yields a G2 edge. This is predictable. This is set in stone.

wtf

Is there a setting I’ve missed in Rhino, or why does this happen? What am I not understanding about Rhino here?

test.stp (17.3 KB)

2 Likes

Try instead using Pull with the Loose option set to yet. After you pull, re-match the end points of your curves so they achieve the continuity you desire. See if this will indeed be close enough to act as a valid split object (within file tolerance). If not, consider upping the degree of your curves, running Pull again, still set to loose then re-match.

ETA - Realize that the curvature of your pulled curves will ALWAYS be better than any trimmed edge. So, if you want/need a super smooth edge, you NEED to find a way to make that edge untrimmed.

That is how the original fin surfaces were created in the first place. But just because you said it, I tried it, and the result is pretty much exactly the same.

Totally understand - in case you missed my edit, realize that to get that kind of curvature on an edge, that edge needs to be untrimmed. You need to define a different patch layout in order to get it that smooth/continuous. Trimmed edges will always always result in less than ideal continuity

Again, this is what I was taught when I learned Nurbs:

You could see my videos, right? They work for other people but me? (Just checking… :slight_smile: ) So you can see the empirical evidence of this. So, again my question, is this not true for Rhino? I’m going to wait for someone from McNeel to confirm for now.

1 Like

It makes a nasty edge for me too! So, it’s not just you. I’d construct it like this instead - my new surfaces in red:

UntrimmedTrimEdge.3dm (80.2 KB)

Lets pause and clarify some terminilogy.

What do you mean by G2 curves? Are you referring to Degree 2 curves?

G2 refers to continuity between curves or segements/spans of curves. Curves are not typically referred to as “Gx”

Degree 2 NURBS curves have G1 (tangency) continuity between spans (unless there are multiknots or stacked control points.)

If you trim with Degree 2 curves the resulting edge will generally have segments with G1 continuity between segments.

1 Like

I don’t see this in practice.

I’m talking only continuity here, as I thought the curvature combs demonstrated.

At no point, neither in the Alias video, nor in the Rhino video, do I inspect the control point/spans (not counting what happens automatically in Rhino when you edit a blend surface).

(I’m beginning to think that the videos aren’t playing for some people. Is that the case?)