'Pierce' shape onto cylinder


Hello, I need to create a pierced labyrinth onto a cylinder.
The shape is of course connected entirely (it is a labyrinth). Due to its complexity I have traced it in 2D. I was hoping it would be possible to import it to Rhino, cut it into a plane and ‘rerolling’ the plane onto a cylinder since it is possible to unroll.
I haven’t been able to sort this out, please help.


You’d likely be looking at ApplyCrv to map the curves (along with a rectangle corresponding to the outer edges)onto the cylinder.


Thanks a lot, but I need the labyrinth to curve along the cylinder and ‘pierce’ it. ArrayCrv only seems to place the labyrinth flat along the circumference of the cylinder.

I don’t know if this image makes it clearer.

a lot

(Pascal Golay) #4

Hello- try this: Make a plane through the labyrinth- say midway through and parallel to the main plane of the object. Use this plane as a base surface for FlowAlongSrf, with the cylinder as the target. I’ll see if I can make a simplified example.



That was EXACTLY what I needed. Thank you so mucho.
Do you know of any way to fillet all those borders at once?

(Pascal Golay) #6

The edges of the flowed labyrinth? I guess you can try FilletEdge with a window selection but I can imagine that would be a tough thing to do all at once.


(Willem Derks) #7

Whatever you do, do the filleting before the flow along surface.
That will be faster than filleting the ‘flowed’ geometry.


(Pascal Golay) #8

Hmmm - true but then the fillets willl not be fillets, if that that matters.



It does sound simpler to make the fillets before the flow along srf. How do you mean they are not going to be fillets?

Also, once I curve the labyrinth it sort of curves on itself and overlaps. I need it to be one unified object so I’d have to use a Boolean union though I’m not so sure it’ll work as a ‘self’ Boolean union
Any thoughts?

(Pascal Golay) #10

Hi sfab- the fillets on the flat object are round/arc section surfaces by definition, at specific radii - if you distort the object with the fillets, they’ll still be there but they may have any old shape and not have consistent radii- in other words they will no longer be true fillets - in some cases that matters.
As for the depth of the thing, the amount that the curves thing collides with itself depends upon the location of the base plane in FlowAlongSrf- move the plane closer to one face or the other of the labyrinth thing to adjust - the part that passes through the plane is the part that will hit the cylinder, so if you only need it to penetrate the cylinder a little, then put the plane near once face of the labyrinth.
Any luck?



Thanks Pascal. You’re right about the fillets.
I didn’t make myself clear. The labyrinth in itself is a hollow cylinder. (I erased the original one, upon which I Flowed surface).
Since I ‘rolled up’ the labyrinth one side is touching perpendicularly the other, so I have to join them to make one solid object.
I tried boolean union but I don’t know if it actually worked. How can I check?
Here’s an image. The vertical line on X is the place where they join.

(Willem Derks) #12

Hi Susana,

Another approach:

Create the cylinder as a single surface without caps.
(best to extrude a circle with option: Solid=No)

Next Explode your flat labyrinth and delete all surfaces except the top surface.
Next Use the command _DupEdge to duplicate the outline of the labyrinth as curves.
Next delete all the duplicated edges that lay on the edge of the surface.
especially the curves that are at positions where the 2 opposite sides meet.

Next Create a surface at the same height as the outline curves with the same dimensions as the full labyrinth.
Next flow the curves from the flat surface over the cylinder.
Next split the cylinder with the flowed curves
Next delete all parts that are not part of the labyrint
Next jlin the remaining surface (if more than one)
Next Offset the cylinder using OffsetSrf Command

Hope this is clear, else let me know.


Did it,worked perfectly, thanks for the example!


Ok so I need help again. The model is finished. The labyrinth got split in 2 so I had to make a column in the center that has sort of ‘branches’ that hold the entire thing together. These branches are the positive shape of the labyrinth extruded, that revolves around the column and connects to the outer wall of the labyrinth. So they’re not so much branches but lines, like a stairway.

I guess it’s complicated so I’ll attach the file.

Now, I did these branches as I did the labyrinth. I used FlowAlongSrf on the column and then OffsetSrf. The problem is the part of the branches attached to the column is way too thin. The outer surface of the branches (the one that touches the inner part of the outer cylinder) is 1mm and I need the inner part (the part connected to the central column) of them to be 1mm too. I need to have this 3D printed and that’s the minimun thickness allowed in the materials that I need.

How can I do this? Everything is booleaned together, it’s all one solid closed object. Please help!


Only the vertical lines are deformed, how can i make them ‘slide’ on the surface of the column on a straight line so I can thicken that part of my solid?

(Pascal Golay) #17

Hi sfab- I see the problem, I’ll see if I can cook up a decent workaround.


(Pascal Golay) #18

I think the only way out is to design your initial labyrinth with this in mind- the lines that will end up vertical need to be spaced wider than the ones that are horizontal.



Yep, that’s what I had to do. Thanks for all the help!

(Willem Derks) #20

Hi Susana,

I had this workflow already prepared so I just share it FWIW.

To make the labyrinth functional in the sense that the path has the same width. Currently the path’s width tapers inward :

laberintoWD.3dm(794.3 KB)



Thanks a lot! I’m sure it’ll help me, with this or next projects, to get an idea of Rhino and how to get some stuff done.
I must say this was my first incursion in Rhino or ANY 3D modelling program for that matter and you all have been of great help. Thanks!