What method V5 wrap drawn text around a cylinder?

what is the method for getting drawn text to go around a curved surface ?

I have created an alphabet of stencil font hand crafted each char as no font matched.

I now need to wrap it around a curved cylinder surface like it might be on a can of drink.

I have it filled with HATCH command.

what is the method to do this ?

in V5 ?

I have googled decal V5 and found nothing.



I think you would be able to do that with FlowAlongSrf. Not sure if it works directly with a hatch or if you would have to convert the hatch to curves first.

1 Like

Have a look at this tutorial from the User’s Guide:

I have my drawn text using curves, lines etc, planar text, given then hatch fills and grouped.
I have followed the tutorial, thanks for that, though in my case I havent text to type, its hand crafted.
I have my drawn text, to be white when on surface simply by altering layer colour.
I select the grouped text with its grouped hatches, move it to centre of surface.
2nd attempt of selecting somewhere on cylinder it is correct and not reversed. though no hatch now. :frowning:

I use gumball then arrow keys to nudge into place.

How do I convert hatch to curves to get the text to have a solid colour fill, magenta, before I change the layer colour from magenta to white ?

test wrap text drawn by hand around cylinder rhino v5.3dm (107.2 KB)


Hatches are 2D (flat) objects and cannot be wrapped around a cylindrical shape. You already have the flowed curves. The main possibility is to split the cylinder with those curves and then change the color/layer of the split parts.

I guess another possibility would be to make a decal with the text in color and the rest in transparent and apply it to the cylinder surface. However, the color would then be fixed.

Hi, what if I were to make the flat text an object, very thin, perhaps the thickness of the paint that it will be after paint applied !

0.001inch for example (0.0254mm)

then wrap around surface. and its layer would then be used to alter colour.

That has to work !

So the only way Rhino can apply decals is firstly to have a raster image made from the drawn logo etc. ?



Yes, that could work, the reason it won’t work with a simple surface is that you will get z-fighting because they are at the same level, but if you flow a solid extrusion so that the result is slightly above the cylinder surface it should be OK.

I have now applied that method to the real item.
However a pattern that goes edge to edge on the CreateUVCrv fails to do so when FlowAlongSrf is then used.
Measuring the CreateUVCrv sees a slight difference in its size, 56.015 circumf is 56.016 when unrolled.

My X pattern was designed to match exactly the circumf.

There must be 36 of them.

I have extruded it 0.002inch so as to be able to apply a layer colour of green.

I use it with FlowAlongSrf to make the 360deg pattern and get a gap. almost size of an X.

whats gone wrong ?

Also why did CreateUVCrv create one with the correct wavy edge and a second one without the true edge ?

CreateUVCrv and FlowAlongSrf sees gap in pattern.3dm (18.6 MB)

Also annoyingly I had my pattern created aligned to the cylinder but had to rotate it to suit the surface which gets created 90 degs different to the actual surface and expected unroll out of it.

I also notice that my X does not lie on centre line top as per its placement on the flat surface, draw a line from the quad of the curve down through the X’s., that line goes through middle of an X, but on the flowed pattern the top datum doesnt run there. Due to this gap no doubt.


Seems to work OK here.

I extracted a copy of the outer cylinder, and I shrunk it (ShrinkTrimmedSrfToEdge). I moved it Y-20 to better see the unroll later, then unrolled it.

I then used FlowAlongSrf, clicking on the base and target edges where the ! dots are.

I don’t see any gap at the surface seam.

NoGap-1.3dm (3.6 MB)

I saved small, I made the meshing settings finer to see better, they may take a bit to regenerate.

[quote=“Helvetosaur, post:9, topic:176940”]
Seems to work OK here.

I extracted a copy of the outer cylinder, [/quote]

what command did you use ?
I used CreateUVCrv as per tutorial, so is ithere a better way ?
The dims matched the cylinder so why that gap ?
Did you use V5, perhaps V5 is flawed there.

Why shrink it if the command is accurate ?

so your initial copy of outer cylinder was not an unrolled one.
What then was the unroll command? I wish to replicate exactly your steps.

I had clicked on the waveform matching location.

Why had CreateUVCrv made a wavy and a straight copy for me ?

NoGap-1.3dm (3.6 MB)

I have a number of stencils to apply in this manner, so I must get V5 to work here.



ExtractSrf Copy=Yes

If you are going to use FlowAlongSrf to put the X’s back on the cylinder surface, you need a base surface and a target surface. The best way to create the base surface is to unroll the cylinder surface you are flowing it back to.

It was all done in V5

Because you trimmed the end off your tube at an angle and a bit in from the end, that resulted a trimmed surface that extends beyond the trim boundaries in that direction (turn on points to see) In order to have accurate results it is best to have the surface to be unrolled shrunk to the maximum.

I extracted a copy of the outer surface of your tube and then moved it Y-20. It doesn’t actually matter where the original surface is located, UnrollSrf always places the base corner of the unroll at W0. I simply moved it so you can see the unroll better in the file. The result would be the same if I hadn’t moved it. The copy of the cylinder surface to unroll can be anywhere.

The dots indicate points on the edges of the base surface and the target surface that correspond.

The wavy edge represents the outline of the trimmed surface. The rectangle represents the outline of the untrimmed surface that underlies the trimmed surface.

I will follow these exact steps instead, maybe the surface creation in the tutorial was not the best then.

I will report back on results.



I have experimented with both my first method (based on a tutorial) and yours.
Both now work. It asks for select near a corner and I had select near the max part of the wave, on both surface and cylinder, that must have caused the gap, or perhaps ShrinkTrimmedSrfToEdge was the magic elixir ?

Method 1 Helvetosaur :-

Start the ExtractSrf command. (copy yes)

run UnrollSrf

Use lastcreatedobject tool, hit enter.

Set result to suitable layer if its on wrong layer.

Move it r0,20 to see base edge

Run command ShrinkTrimmedSrfToEdge

Start record history

run FlowAlongSrf, select the XXXX pattern

Select lower right corner then when prompted select same corner on cylinder (had choice of surface or polysurface (the original is a polysurface) so I chose surface.

XXXXXX occur no gap. :grinning:

Method 2 tut:-

Run the CreateUVCrv command. (copy yes)

Move it r0,20 to see base edge

Delete the result that shows the non trimmed surface.

Planarsrf tool fill the shape.

Run command ShrinkTrimmedSrfToEdge selecting curve and surface beforehand.

Set result to suitable layer if its on wrong layer.

with result still selected, Run command ShrinkTrimmedSrfToEdge

Place XXXXX pattern on the surface aligned to edge.

Record history ‘on’


select XXXXX

Select lower right corner surface then when prompted select same corner on cylinder (had choice of surface or polysurface (the original is a polysurface) so I chose surface.

XXXXXX occur no gap.