Graphical cut-outs in three-dimensional objects

Hello everyone,

I’m currently trying to build a lamp similar to the one shown in the image: a solid body (cylindrical and square variants) with a defined wall thickness, from which a geometric pattern is cut out.

My goal is to create both a cylindrical and a rectangular version. What I’m mainly looking for is a clean and reliable method to apply a pattern onto the surface and then cut it out accurately.

I’m working in Rhino, but I don’t have any practical experience with Grasshopper yet.

So my question is:
What would you consider the best workflow for this?

If anyone has done something similar, I’d really appreciate any tips, workflows, or common pitfalls to watch out for.

Thanks a lot!
Flex

Hello everyone,

I am still working on a cylinder with geometric cut-outs and I am running into a couple of problems in Rhino.

My current workflow is the following:
I unrolled a cylinder, then edited the flattened surface and created the cut-out geometry there. However, the subtraction only seems to work one cut-out at a time. I have to subtract each opening individually. I already tried joining the cutting objects into one object, but that did not solve the problem. I do not understand why Rhino will not subtract all of them in one step.

After that, I am trying to wrap the edited flat surface back onto the cylinder. For this I created a reference surface that should serve as the base surface for the FlowAlongSrf command, shown in red in my screenshot. But after selecting the first object, meaning my edited pattern/surface, I cannot add the second surface in the command sequence. Rhino does not let me continue as expected.

So my questions are:

  1. Why does the subtraction only work one cut-out at a time instead of all at once?

  2. What is the correct way to wrap an edited unrolled cylinder surface back into cylinder form?

  3. Why might Rhino prevent me from selecting the second reference surface?

Am I misunderstanding the command, or is there likely something wrong with my geometry?

Best,
Flex


Are you using Boolean difference? You can select multiple cutting objects.

1 Like

I have tried trimming and boolean operations, but both result in faulty geometry. At the moment, I am trying to wrap a spline object around the cylinder and then perform the boolean operation directly on the cylinder.

Post your flat geometry with the cutting objects.

1 Like

this?

cutting test.3dm (3.7 MB)

I’m not having any major issues.

Trim away side pieces.
Boolean split the rest.

cut.3dm (1.6 MB)

1 Like

Thank you for your help. I followed your workflow, but I cannot reproduce the same result. I assume the curves may have been cleaned up or simplified beforehand.

Could you specify if any curve optimization (e.g. rebuilding, simplifying, removing overlaps) was necessary before applying the operation?


That 2nd image. Explode the surface and delete the parts going down so that you’re left with only the flat surface with cutouts.

1 Like

Thank you for your help. In that case, I’ll break the object apart and remove the unnecessary parts. I was hoping there might be a way to clean it up directly, but this approach works as well. I really appreciate your support.

I’m sure there’s a way to do this in a single operation with Rhino but I use GH more often. Is a bit strange that boolean difference can’t split the surface without joining them.

1 Like

your curves are messy:
_ungroup
_explode
_selShort <0.1 → 146 curves are added to selection

to do:
_reducePolyline with 0.1 tolerance
best workflow:
_createUV curve to get a rectangle representing the cylinder
_applyCrv (including the rectangle) to get the curves to the cylinder
_join
check with _selOpenCrv or select the curves → only closed curves ?
_split
_sellast
unselect the part to keep
_delete

cutting_test_tp_00.3dm (4.4 MB)

best - tom

2 Likes

Yes.. I really need to learn Grasshopper!

Thank you for your workflow. I tried to clean up the curves manually, but it didn’t work. I appreciate your explanation — I’ll definitely use this approach more often.

Why do you _join the curves only after projecting them onto the cylinder?

joining applied curves mainly to see if endpoints still hit across the surface seam.
could you repeat the workflow successfully ?

1 Like

Even with your very helpful step-by-step instructions, I still cannot follow the final steps. Once I have selected the cylinder for the _Split operation, I can no longer select the projected splines. What am I doing wrong?
split.3dm (286.8 KB)

… you might want to try to select the curves in displaymode wireframe.

alternative / additional: organize your document - this will allow you to select the curves by Layer, but also possible by Color, by Name, by Group … however you like it.

recommended: put the curves on a separate layer.
_spilt → select the cylinder by mouse click.
cutting objects - right click on the layer in the layerpanel, then in the submenu-> Select Objects.

hope this helps - tom

1 Like

Yes, that worked perfectly—thank you for your help and the detailed guidance!
Best
Flex