Surface Split from a BUNCH of curves vs with a BREP

I am trying to trim

followed by >5 more trimming operations from curves in all three planes.
Obviously the componant can handle a multiple curve object as input so this might be more efficient in terms of GH window real estate.

I can select the particular item in the result with ListItem, but what about the DIRECTION input of the PROJECT component. I assume it needs to contain a correlated list of directions for each curve? (the help is not much help)

Then there is this method

This thread looks like a lot of great help BUT there is no Rhino file in the entire thread for me to get the underlying curves from !!!

If I undestand the curve primitive correctly, you can INTERNALIZE these underlying curves, after which they are not needed in Rhino so posting a .GH file would be all that is required. Fantastic, but none of the responses captured the underlying curves : (

Then there are the solututions that have pics of components with just symbols on them. This is as useful as a response in Greek to a begginer like me : )

Is there any reason to choose one over the other in general leaving aside the multiple trimming issue?

Also, can i just hook up 5 individual curves to the one input on Surface Spli? If so, in what order are they processed?

I have asked 3x about a manual and received no response so I assume there is no manual to cover these kinds of details. Perhaps a thread that incorporates all this knowledge for begginers might be valuable?


To give you an answer regarding the underlying curves from the thread you refer to, the internalizing is generally to clean up the .gh file, so the kind people on this forum don’t have to understand the logic behind the 1000 components in the complete file, but only the necessary regarding the asked question of the thread. : )

Now, back to your thread. I would take you own advice and post a gh file and rhino file if necessary. It is a bit difficult to understand your intention (for me at least) from a screenshot described as “I am trying to do this”, but I am sure it will help if I have the file to look around in. : )

Best regards,

Screenshot Deleted. The surface is irrelevant.
Im trying to cut a surface multiple times with a single instance of a module.

I found a GH PRIMER, but it is very basic. Anything a little more advanced?

To expand upon this question, I am trying to trim a pipe to leave a surface between say station 2 and 7 of the subdivided curve. I am trying to extract two isocurves and split the pipe into two pieces and delete the unwanted piece.

20-05-05 Trim Pipe (13.8 KB)

How do you set a plane such that Z runs down the line in this example?
I dont have 3 points, and I only care that Z axis runs down the line. X and Y can point anywhere - although X could align with the line from the TOP view

(in Rhino I align Gumball to object then I can rotate and translate all in the plane of that object)

I ended up doing it with an extruded 3 pt rectangle

this is to avoid projecting a curve to trim with

Regarding the plane with the Z-axis running down the line. Is this what you intend?

No. Like this. Z runs down the line. X and Y sit at one end.


This is so a partial circle can be drawn at one end and SWEEP ONE CURVE used to create a partial surface instead of trimming a pipe.

The problem with the pipe is that when it gets trimmed, the edges all break apart

Yes, you can pass multiple curves to a single instance of SrfSplit. However, you cannot rely on any particular order of the results. It’s usually a matter of sorting the fragments by area or the sum of their edge lengths are the Z value of their center point.

Your description of the problem is long and complicated. I don’t want to watch a video or read a book to understand what you want.

From what I can tell, it sounds like you are trying to do something like this?

Trim (9.4 KB)

The seam of the surface presents a potential complication in determining which result to choose, though getting the one with the largest area as I did is quite simple.

Note that I used Flip curve to make sure both edges of the pipe (circles) are going the same direction. Otherwise, the lines connecting them will be skewed.

Mon Duex! I learned about 5 other things in that example. Thank you!

Your description of the problem is long and complicated…

Its there in case. Just ignore it.

from what I can tell, it sounds like you are trying to do something like this?

yes, but it looks like you mirrored the cut edge to the other side? The second line is not actually opposite, but this is alot more work than I anticipated. I think I need to just create a round surface another way to begin with. I began with a Pipe because it easy, not becuase it was the best choice :confused:

This is so a partial circle can be drawn at one end and SWEEP ONE CURVE used to create a partial surface instead of trimming a pipe.

If you intend to use sweep, maybe this could work? The rail is controlled by a slider, but could also just be a length of the pipe.

Here’s another way to get the same result without SrfSplit:

Trim (5.8 KB)

I didn’t mirror anything. When there are 10 division points, 2 through 7 is half the circle.

Wow! I know these are trivial examples to you guys, but there is so much peripheral information buried in them. Thank you!

I need to read up on the different ways of creating surfaces. It is still not clear to me what the differences are if any between a pipe surface, a SWEEP ONE RAIL surface, and a LOFT surface set to NORMAL (tight to gerometry)

“buried”? In plain sight, eh?

I hope you can use it for something at least. :slight_smile:

This for example:

I would never have thought of that…

I didn’t mirror anything. When there are 10 division points, 2 through 7 is half the circle.

Appologies, I should have chosen better numbers

And how would you specify a different starting location for that curve?
say 1pm instead of 3pm.
In other words, how do you create a domain from two numbers?
Can you Shift connect two to the input?


Or you can use the ‘Angle’ slider and PRot (Rotate Plane) components I provided.