Circular Lettering Definition

I do quite a bit of lettering around circles. Yup, I can do it directly in Rhino. Yes, I know how to use “history”. But it just does not feel right to me, anyhow. So I wrote this.

Input the lettering (or any other geometry for that matter), select the target circle. There is no special relationship required between the geometry and the circle. The definition is fairly robust in that it will automatically align the seam so the text typically appears on the top. The text can be manipulated into many different positions and things like scale and distance from baseline can be changed. The boolean toggles allow the text to be manipulated for things like being on the lower part of the cirlce. Edit: Yikes! cirlce??? Gotta pay more attention to spell check. . .

Anyway, ‘nuff bloviating. . . .

Circular Lettering.gh (47.0 KB)

2 Likes

Moved to Grasshopper category.

The curve and geometry containers were not internalized.

Thanks, I was not sure where you folks wanted this sort of thing, now I know!

That is correct.

I prefer input geometry to be NOT internalized. That way the inputs show up in a nice bright orange color. I try to label them so what is required is obvious. In this case, I got a bit ahead of myself and have relabeled them as shown below,

I had a lot of trouble when first starting with GH because of the “internalized” geometry, it was not apparent to me where the inputs were, nevermind that a lot of folks did not bother relabeling them in a descriptive manner.

Yes, but it is not helping us understand how the script is supposed to work.

How does having the geometry internalized help you “understand” the script? Seems pretty obvious to me that some letters need to be selected and a circle. Those are labeled appropriately.

I am not posting these to teach others, I am far from qualified to do that. I am posting these so someone who is using Rhino and has a need to do this type of thing has a tool they can try out. Having internalized geometry can actually be confusing to someone who is NOT interested in understanding how it works as I mentioned above.

BTW, I also have a loathing for made up rules and the classic “WE always do it this way”.

Hi T -

The rule here is to internalize all Rhino geometry when posting a Grasshopper file.
We would all appreciate it if you could follow that rule.
-wim

@wim From what I understand, he doesn’t need help. It is a WORKING definition.

@T_Reischl nice definition, replace curve by circle it will be more clear for everyone.

Funny when scale is to big

Yes, we understand that. I was just wondering about where the letter geometry was supposed to come from; like why there wasn’t a Text On Surface component or similiar, so I asked for internalized geometry, and the OP got wierdly defensive.

No, I did not get “weirdly defensive”. I explained to you WHY I do it the way I do. That is not “weird” or “defensive”.

I am also trying to figure out who this “we” you keep referring to actually is? Are you part of some committee or group reading these posts?

As to your technical question “text on surface”? there is no need for a “text on surface”, in fact, it will work with all sorts of geometry that is not lettering. It does not need a surface to function.

What is weird is how you feel the need to start quoting “rules” to others.

Thanks for the comments. I reposted the definition with the two input labels more clearly defined, I try to do that, but. . . . sometimes the cracks in the floor are hungry.

Yup, the scale can cause that, so can a way too long text/object string. It just runs off on a tangent from what I can see. The scale was put in there so it is easy to tweak the size. When doing this sort of work, I found myself constantly pulling on the gizmo scale handles. I find this easier. In fact, most of the controls are for tweaking and fine tweaking, :slightly_smiling_face:

I am certainly not a GH guru by a long shot, so I am hoping that others feel free to improve and add on to my efforts.

I do cnc routing/3D printing/laser in my shop on three distinct machines. In a lot of ways Rhino reminds me of 3D printers. It is a great tool, but in the early days of 3DP, they were more like lab experiments. Folks like me just wanted a printer to make something. There are lots of Rhino users who are the same way, they just want to get the design done and off to their machines or wherever. They are not interested in any gory details of how to get letters to flow around a circle or along a curve. They want it fast, with minimal adjusting and tuning.

Nuff bloviating!

Edit, I never thought of doing vertical text, that is very cool!

1 Like

After diligently searching this forum. . . .

I failed to find any “rule” stating that definitions must have internalized geometry.

I then consulted AI hoping to find enlightenment. Alas, AI also failed to find any such rule.

However, I did detect at least one other person than myself who does not seem to care about this alleged “rule”, so much for “we would all”, huh?

I love a good troll!!! Thanks!

I’ll engage your responses once as matter of explanation and post again later with an improvement on your script:

When your post was moved from the Rhino to the Grasshopper category, your .gh file did not have geometry internalized to the containers. It is a common mistake of beginners to post to the forum without having geometry, and I thought that that might also be the case here so drew your attention to it.

You explained that, no, you did not forget to internalize the geometry, it was a matter of personal preference. For you, internalized geometry confuses where the inputs were. I personally take no issue with this, remarked however that not having any geometry made it difficult to understand the script.

This remains true. Providing the user with example geometry helps them understand how a script is supposed to work. It’s why GH components are preloaded with boilerplate data in their inputs. You’ll notice that the first thing that even Laurent (a seasoned and talented scripter) did with your script was insert the text component of his Nautilus plug-in to test it.

The suggestion that geometry should be internalized to a script can be found in point 3 of this forum’s guidelines: Help Us Help You . A moderator tried to explain that to you. When I used ‘we’ in the sentence “we understand that […this is a working definition]” I was explaining to Laurent that both the moderator and I understand that you are not asking for help but showcasing a script.

I call your responses wierdly defensive, because to simple, one sentence statements you respond with paragraphs of explanation and or justification. You’ve also now tried to walk away from your thread having called a moderator a “troll”, so I don’t know. You tell me how I am supposed to interpret your responses.

I’m busy at the moment, but later I will try to ammend this script so that text insertion occurs directly in Grasshopper. Instead of shifting the text away from the curve as a centerline, the script could also automatically detects the baseline, x-height and and ascenders/descenders as possible snaps.

1 Like

Over at “Help Us Help You”:

“Asking questions and getting answers is what this forum is all about. Although people are generally very helpful, there are things you can do to improve your chances of getting good and quick answers. Below you will find some suggestions, but don’t think of them as rules and especially don’t think of them as guarantees.”

Yet here you are, trying to turn a suggestion into a rule.

I have heard from a couple of other users that they avoid this forum precisely because of these kind of attitudes. I am now deciding if I will post any other scripts I may create in the future. Conversations like these are a waste of my time.

There is no rule. From David Rutten:

“Asking questions and getting answers is what this forum is all about. Although people are generally very helpful, there are things you can do to improve your chances of getting good and quick answers. Below you will find some suggestions, but don’t think of them as rules and especially don’t think of them as guarantees.

You can do this with a single component. Have you tried using the Text On Surface component?

TextOnSurface.gh (9.5 KB)

2 Likes

Honestly? I did not even know it existed. Interesting. Played with it a tiny bit, but it would still need a lot of extra “post processing” to get it doing what I want, the way I work.

For instance, when I am doing an emblem or badge I need to be able to rotate the text around easily and with a fine adjustment. It is also handy to be able to attach symbols, eg. a star to either end of the text. Then there is the whole moving it up and down relative to a baseline to get a “just right looking” fit. And there is also the “taper” effect. Some text looks good with a slight bit of taper, sometimes not.

Right now, that script is pretty much doing exactly what I want.

Oh, the other thing, I prefer to work with curves. Quite often my workflow takes the Rhino output into apps like Corel Draw. Corel has no clue what to do with surfaces or breps. Here is an example:

A lot of laser work is essentially raster scanning. This isn’t. Notice that the outline is a bit heavier, but more importantly the inside of the wings look sort of lacey. This is vector cutting, not scanning. Corel allows me to create that inner wing effect with ease. Corel also does circular lettering, but it is also a bit primitive, lots of iterations to get things just right. BTW, this is a just a quick and dirty coaster thing for the master gardeners in the area. Trying to figure out how to keep the “smoke” from discoloring around the lettering and outer ring. I am thinking maybe a small fan in the enclosure to get the surface smoke moving faster.

1 Like

Ok. I was just trying to show a different way to do it. If you have a workflow that’s working for you, that’s great.

Please do not misunderstand, I am happy you showed that idea. Could come in handy down the road. And, it may turn out that it would make a better front end to the script???

There are probably all sorts of things in the scripts I write that could be improved.