Help me understand trim / split of surfaces

rhino5

(G Synetos) #1

Hello to the community. While being a Rhino user for almost a decade I still sometimes cannot explain why some things are happening in the models that i make in Rhino.
I will share my frustration by giving an illustration to what I currently struggle to understand.

all surfaces are intersecting

Then I go trim the bigger surface using as cutting objects the 2 planes

If i ask for the intersection between the trimmed surface and the cutting objects the intersection is partly lost

Can someone explain why this happens and how it is the “correct” way to trim surfaces while maintaining the connectivity between the parts?


#2

That should not happen, but it does tend to happen if that trimmed surface is a composite surface. That’s one reason to avoid surfaces with fully-multiple knots.

What does “connectivity” mean"?

If you want to join surfaces you need edges that match (within tolerance)

You should post the geometry if you want more than guesses about what’s going on.


(G Synetos) #3

Hi jim thanks for your reply

It is not a polysurface if that you mean by saying composite surface. It is a lofted surface that is being rebuilt with 20 contol points

By connectivity I actually mean that the two parts intersect. Since i prepare this model for Finite Element Analysis i am trying to model it as precise as possible since that will save me time later.


(G Synetos) #4

Here is the geometry

trimSrf.3dm (135.0 KB)


#5

It’s because that big surface you drew is more of an artifact than a proper surface. (too many points, wrong topology)

If you draw it like 3 surfaces (vertical, horizontal and connecting blend) you should have no problems staying precise.

Some understanding of nurbs might be required.


#6

OK this is a bug. For some reason the trimming is not accurate.

You can get it to trim accurately by first trimming with the big plane and then in a second trim operation trim with the small plane.

BTW your tolerance seems much tighter than it really needs to be. But if you are going to work with such tight tolerance you should change your display tolerance so that you can see if things are as accurate as you are asking them to be.

Yes its possible using that strategy could model the shape he wants more precisely, but there is nothing wrong with the surface as it is. The problem with the trim not being accurate is a bug. The bug is not the intersection code. The bug is a failure to create a trim boundary that agrees with the intersection curves. You get the correct boundary if you do the trimming in 2 steps.


(G Synetos) #7

Vladimir thank you for your answer.

Can you please elaborate a bit furher on the topics you mention inside the parenthesis. And to be more precise what do you mean by wrong topology?

I will also try this to see see if that helps.

I indeed have a good understanding in Bezier curves and NURBS but still cannot explain that.
Can you?


(G Synetos) #8

Jim thank you for your reply!

The purpose of using this tolerance is because it gives me the “best compatibility” when i import it in spaceclaim from which i share topology and then perform the FE calculation.

Can you please let me know where I can change the display tolerance that you mention?


#9

By wrong topology I mean compacting all that geometry in a single surface (looking at the big one).
Its transforming uncontrollably.

You have 23 points in a single direction in a 3rd degree surface.

What you need to figure out is what of those transformations is a design choice and what is a mistake, to me it all looks like a mistake.

You are carrying all of those mistakes into your trim operations.


#10

Its in the same place where you set the units (right below it)

I find it difficult to believe you can’t get it to work with looser tolerance, but if it necessary just be aware the tight tolerance can make modeling more difficult.

The bug is there even if you use 0.001 as tolerance


(Pascal Golay) #11

Hello - it looks like v6 gets this better but not perfect (with both trims at once) at the current file tolerance and does get it right with a more reasonable tolerance.

-Pascal