How does one extrude surface from center point?

Hello everyone,

I’m pretty new to Rhino but am making wedding rings for my brother and don’t know how to “extrude surface” to make these letters that go all the way around the extrude negatively into the ring’s surface. My goals is to “engrave” these letter into the ring.

I did as much reading and research as I could and I believe I need to “Surface Extrude from Normals”?
At any rate, I don’t know how to do this from the center of the inside diameter of ring .

I believe the approach would be that I have all the curves of the letters grouped, and if I knew how to do the controls, I would extrude from the center of the ring so that all surfaces are pulled into the ring deeper to engrave the letters. At least .7mm.

Any one kind enough to tell how that is done?

Thank you!
Pimmy’s channel ring.3dm (2.1 MB)

Wow, thank you so much for your time and help. I will try this as soon as I get home today.

How do I “sink the letters into the base surface”? Do I just select the curves that outline the letters and then Move tool I assume? ( I see I have steps before that but just wondering about this other step)

thanks.

Hi,

Fast solution>

  1. copy top surface of the ring (one where the engraving goes), split the copied surface with the letters, delete remaining parts of the copied surface (non letter parts)
    1b. offset the letter surfaces 0.7mm with both sides option (for tolerance purposes)

  2. join ring surfaces into 1 solid

  3. booleandifference ring and letter solids

done.

p.s

if that’s a part for milling you are going to need a minimum radius on those letters.

2 Likes

Just to note that when you have the letters on the inside of the ring, due to the distortion induced by FlowAlongSrf, once subtracted from the main body, the letter “walls” actually have 0 draft. This may not matter much for visualization purposes, especially if the engraving depth is shallow, but in reality, if this was physically engraved, there will typically be some positive draft.

There is no easy, good Rhino solution to get the draft direction correct (as far as I know), doing it precisely requires quite a bit of manual work. You can try extruding the original flat letters tapered before flowing, but tapered extrusions on letterforms are painful in Rhino, and usually require a lot of manual fixing to get it right.

1 Like

Thanks.

I just got home so I can start trying all this. But one thing I never learned to do as of yet, is why when I use “Creat UV’s” and I place solid letters, (letters that are 3d) and when I add the UV’s to my ring… my letters are not 3d anymore. So how did you get 3d letters to flow along the ring? I don’t even see your “Create UV” box where the letters should be in.

I’ll try what you guys said in the meantime.

You folks are awesome here! I am reading and watching tutorials each night.

I’m going to try Vlad’s method because when I try to 'create UV surface" and then apply extruded letters halfway down inside the “created UV rectangle” and then use “apply UV curves” my letter disappear and I get this message "507 curves were not in the world XY plane and was not applied to the surface.

I got it now! Well at least to the part where I have the letters in 3d sunk into my ring! Now I just have to boolean.

Thank you for your patience!

Hmm, you didn’t have to use create UV.
Before you start with anything rebuild the ring with standard circle.
Yours has too many isocurves, now with the projection of the letter surfaces the geometry will get more complicated and the bad circle curve will compound the issue.

Your circle is also NOT a circle! (as the radius is not constant)
My estimation is that you tried to make a circle with a radius of 8 and somehow got something with dynamic radius 7.92 to 7.96.

Also why is the extruded part of the circle 1.06mm in width? seems strange. Interior ring offset of 1.13 is also strange.

If you need a draft angle of say 3 degrees. (would be usually used for molded parts to get them out of the mold). You do have however a negative (recessed) text on the interior surface of the ring which is more difficult for production though, and more expensive.

I decided to do a little tutorial for you. Check attached.

ringfixed.3dm (3.0 MB)

Disclaimer> if you really want to prepare that for production you will need to refine those letters as instructed. (including the inner radii)

I just used the one you provided

Wow, I don’t know what to say but thank you. I will now start reviewing this and I appreciate your time! Thank you.

More progress. I simply had to learn about checking “Direction” to make sure the axis lines up before Flow Along Surface. Even when they look matched up the ring can still be “upside down” and you don’t know it unless you get backwards letters.

I guess i picked the hardest shape to work on first.

Thanks guys! I’m making a ton of progress. I will spend more time learning basics before anything else now as I definitely need to learn how to build things from scratch first.

You’re welcome, it took only about half an hour and was fun to do.

As Helvetosaur correctly pointed out you will not be able to use flowalongsrf and keep the correct draft angle.

You will have to use flowalongcurve with rigid and stretch set to yes. (as done in the tutorial)

Cylinders aren’t that hard man, in fact it’s only 1 up from planar. :upside_down_face:

OK thanks. The only thing that is “hard” to me about the cylinder shape is that when you check “dir.” direction of your target and the base before flowalongsrf, I can confirm red and green axis, but I don’t see any way possible to know that the bottom or top of the inside of the ring is up or down. In other words, you have no way of knowing where to pick start of base until after you see the letters are backwards and you have to flip everything.

Ah ha! Thank you. This is extremely helpful. Thank you very much.

I gave up on doing this in vanilla rhino. I use tsplines for all my lettering now. I got my children to create a library of fonts that I reuse all the time. Avoids the issue of filletting edges and sharp corners that cause so many issues with manufacturing.

Even for one off fonts I find tracing them and recreating in tsplines is quicker and avoids issues down the track.

That said the font here has sections at the scale used that are about .08mm wide. I doubt they can be produced to a finished product at a depth of .7mm. I would not try to cast it. I would expect the metal to break the investment during flow. I print and direct cast resin…might have better reults with milling in wax.

1 Like

You are wrong. OrientOnSrf and FlowAlongSrf commands have ConstrainNormal option in Rhino 6. This option solves the problem. This video tutorial (8:50-11:42) explains details: https://www.youtube.com/watch?v=S5EjtrI6-XU&t=12s

1 Like

And did you actually try this option out on, say, the file posted by RichardZ (post #2)? The “constrain normal” option keeps all the surfaces that have draft at the same angle as the original - i.e. it cuts the relation to the target surface normal. If you use that and flow all the letters at once, you will quickly see that this results in a mess when the target surface is a cylinder.

Certainly, you can orient the letters one-by one, that’s one of the good possible solutions, but it’s far from automatic. And you would still have to model the letters flat with draft first before flowing/orienting.

There are a number of ways to do this nicely and correctly, but as others have outlined above, none of them is a one-click solution.

Also to note in passing that if this was to be engraved via CNC, you would not actually need to create any surfaces, the flowed curves will be fine for creating the toolpaths and the cutter itself would create the draft. 3D printing also allows you a number of solutions that would tolerate zero or negative draft.

–Mitch

That font at that size I would diamond drag engrave in metal post casting and forget about trying to CNC or 3D print it. Neither are gong to cast at .7mm deep IMO. If it does I would love to see it.

The draft angle does not have to be constant. If you want it to be constant, use Scale1D command twice on the text.