Text extrusions in Rhino


#1

I have a minor issue on how Rhino seems to extrude text curves when tapered with draft. I often need to add verbiage to molds for thermoforming, so I need to have a 5 degree draft and need to add fillets. I have never had much success with Rhino working with text in this type of scenario without some workarounds. I thought I’d check with the forum to make sure that I’m not missing something in Rhino. As an example, I’ll show the same method in both Rhino and SolidThinking Evolve.

In both, I create curves of a word using the text tool of the application (using the same font and size in both):


I extrude the curves as a solid, with a 5 degree draft:


Here is where the problem can already be seen, in Rhino the geometry in the corners is having some issues, in Evolve, the geometry is clean and rounding (fillets) can be applied directly to the extruded solid:

In Rhino, I need to fix the geometry before I can apply fillets, generally by deleting the side walls and running a sweep 2 rails on each letter to create a new side, then joining the surfaces and then applying the fillet.

The outcome is the same:


One method is just a lot more work than the other. Am I, perhaps, missing something in Rhino or is the text handling in this sort of case just not as robust? Any thoughts or suggestions?

Thanks.


#2

Perhaps this issue might be related to the posts dealing with inaccuracy of the ExtrudeCrvTapered command?


(Pascal Golay) #3

Can you please post files, including the input curves, from both? (Export IGES from Evolve?)

thanks,

-Pascal


(John Brock) #4

The problem is how the tapered extrude tool fills in corners. It is not well suited to this sort of thing.
A better approach would be as follows:
1 - Make your text curves
2 - Use CurveBoolean to make sure they are cleaned up with no overlaps.
3 - Offset the cleaned up curves bu an appropriate amount calculated by the height and draft angle you need.
4 - Check the new curve to see if it has the same point structure as the original. Generally it won’t and will need to be simplified.
5 - Move the offset curves up to the desired height.
6 - Build surfaces between the two curves.


#5

Yes, here are the 2 sets of curves.

Test.3dm (73.5 KB)
Test_Evolve.igs (44.9 KB)


#7

I have also used this approach/method at times, which works of course,
but it’s still much more work. It doesn’t sound as though I’ve been
missing anything obvious, then. For this type of work in Rhino, there
will be some “work around” needed.


(John Brock) #8

The “work around” as you put it is very difficult. The problems start with using Windows TT fonts that were never intended for this use. Many characters have bad boundary curves with overlaps and other problems with respect to making clean, simple, NURBS curves.

The next problem is detecting and “special casing” the shapes that can be Extruded with a taper, like a simple rectangle.

The next complication is when offsetting a curve, Rhino uses a fitting algorithm to keep the curve within tolerance. This is probably not needed with a text character but again, how are we to detect it? The result is the offset curve has far more points and control than the original curve so this new curve needs to be cleaned up too. Some commands in Rhino now have a “simple” option that keeps the point structure instead of holding the tolerance. It doesn’t look like Offset has that option yet.

That’s just a few of the complications in making this seemingly simple task work better with less thought.


(Pascal Golay) #9

Thanks- if you could, please also send the tapered extrusion from Evolve- I’d like to compare…

Ouch, the curves look bad in the iges file. Is there another format- maybe dwg, you could try? Or maybe Evolve exports to 3dm?

thanks,

-Pascal


#10

Understood. By the “work around” comment, I was referring to what I need to do on my end. I’ve no illusions that what is going on behind the scenes in Rhino isn’t difficult to accomplish, I was just making sure that I wasn’t overlooking something.


#11

Yikes, yes the iges file looks horrible, I didn’t preview it before uploading it. Attached are the curves as a dxf and an exported Rhino file (Evolve does export to a .3dm). The extruded file is also attached as an exported .3dm file.

Test_Evolve.dxf (42.9 KB)
Test_Evolve.3dm (24.0 KB)
Test_Extrusion_Evolve.3dm (189.8 KB)


(Pascal Golay) #12

Thanks, that’s perfect. Now… last thing - what radius? Here, after extruding the same curves that are at the base of the Evolve extrusion to the same height, FilletEdge at .03, works well in this example - everything looks nice an clean.

-Pascal


#13

Yes, in the examples .03 was the amount used.


(Pascal Golay) #14

So, for the moment, inconclusive… filleting the tapered extrusions from Rhino work just fine - no need to replace any surfaces or anything. Can you verify that it works for you?

-Pascal


#15

I actually don’t get those same results. If I open the exported Evolve extruded file, move the extrusion out of the way to have access to the base curves and extrude them, I see the same corner issues appear.

Maybe different extrusion settings?


(Pascal Golay) #16

OK, maybe I am missing the real question- yes, the little corner wedges are present in the Rhino extrusion, but there seems not to be any problem associated with that construction so far…filleting works- was there another problem that I should be looking for?

BTW, @mcramblet, to remove some of the corner wedges:

DivideAlongCreases SplitAtTangents=Yes

then

MergeAllFaces

thanks,

-Pascal


#17

When I apply fillets/rounding (Evolve term) to the text, I apply to the top surface, as well as, any remaining sharp intersections of the letters. I guess where the wedges were tripping me up is when trying to apply the fillets to the other areas of the letters, not the top surfaces:


which is a problem here:


(Pascal Golay) #18

Yeah, sorry, I was being a dummy- left out the verticals… So: the process I outlined above for getting rid of the wedges should help in many cases; for the harder ones, like on the ‘e’, ExtractSrf the wedge and its neighbor, and

MergeSrf Smooth=No

Then filleting should go better. But I see what looks to me like another bug there as well… I’ll see if I can figure that out.

thanks,

-Pascal