How to close trimmed polysurface

Apologies. This must be a very basic question, but I’m fairly new to Rhino.

I’ve created a tube and given it thickness using OffsetSrf. I now need to trim the end but when I do, I end up with an open end. I need it closed so as to have a solid for 3D printing.

What is the best way of trimming so as to not have open ends please?

Hello- it depends… if you are trimming with a plane or surface/polysurface, try BooleanDifference rather than trim. Note the cutter’s surface normals must be pointing ‘outward’, towards the part to keep for this to work as you probably expect. Solid objects should always have outward pointing normals but open objects, even if only barely open, do not have an inside and outside- use the Dir command to change the direction on these.

Trimming with a curve you can in some cases use WireCut instead of trim- this works well if the trim is being projected through the object.


1 Like

That’s great. Thank you.

I’m stuck again on this cutting thing. Sometimes one technique works, sometimes not. I’ve managed to get by with the rest of my model but now I have a case where nothing seems to work. I’ve tried all that you suggested but I keep on getting an open end. I’ve run both Check and Show Naked Edges commands on the object to cut and nothing seems wrong, but the various cutting techniques don’t work correctly.


Looks like the intersector is not finding a solution so you better send the file to McNeel for a check.

A few things you could try to get on though: explode the pipe part and see if trimming with the plane works. If not, run intersect on the two surfaces (the pipe surface and the plane) and try cutting with the resulting curve. Also check if the curve is a closed curve. If not you could try closing it manually.

I can cut it okay, it’s just that the result doesn’t have a closed end, unlike the other pipes. I’ve tried Trim (with surface and object), WireCut and Boolean - all cut but all leave an opening.

In theory WireCut and BooleanSplit should leave a closed end, whereas trim or split will leave an open end. If the first two are leaving an open spot, then there is a bug somewhere, normally if the cut crosses an open edge with either WireCut or a Boolean operation, the operation will simply fail.

Is your object valid?


Will Cap close the hole?


I ran the Check and Show Naked Edges commands and nothing is wrong that I can see. Cap closes the end in the wrong way. I have a hollow pipe with thick walls. I just need the walls closed. Cap closes the whole pipe so that it is no longer hollow.

OK, that indicates to me that somehow the inner wall of your thick pipe is not getting completely cut by the plane surface, leaving a non-planar end, or somehow the inner wall is not attached to something else which is why it is not included in the cap. What you can do is try PlanarSrf and just select the two open edges (after trimming). If a ring surface is formed like you want, join it to the rest. If it just makes a planar surface with the outer wall (no hole), the inner edge is not planar, you will need to untrim it, extend it if necessary and re-trim it.


Mitch. I appreciate you taking time to help me out. Thank you.

So, I did what you suggested. PlanarSrf comes up with an error: “Self-intersecting input curves were found.”

When I ran OffsetSrf to create in the inner-wall thickness it created a surface that looped on itself. I didn’t notice it because of the number of isocurves but PlanarSrf highlights it nicely.

Thank you again.

OK, cool, as long as you found it, I didn’t think about self-intersections or other possible surface problems…