Are there any single line Fonts?

I’m afraid that I can’t understand your question. Maybe my English is still too poor. :slight_smile: Do you mean that arcs should be replaced with G2 blend curves instead?

Yes, provided your tooling can reproduce them (I know little about CNC).

About 10 years ago I used to CNC-mill various stuff from wood and styrofoam, and I used other custom made font whose letters consisted only straight lines (very simple, but not pretty). I used it for both, wood carving and laser engraving. Then I created a smoother version with arcs. The Mach 3 software that I used to run my CNC-machine had a setting to accept arcs as simple objects to speed up the CNC-milling without stop between the separate segments.
The new font that I posted above was primarily made for marking of laser cut metal plates by using a low power setting for the cutting laser. Example:

is that a part of an aeroplane?

It’s part of a steel frame that holds a few parts such like solenoid and latch used in a front trunk of a car.



9 Likes

Hi @Rhino_Bulgaria,

Here’s a wip of an installable font: just for the letter forms at present - character spacing hasn’t been worked on yet. Limited Latin character set. No way will I produce a full 64K Unicode set but if there are a few more specific characters needed then let me know their Unicode values.

I have tried to stick with your design intent as far as I could but have made a few changes and my interpretation for the lower case and other unshown characters may be way off. Comments welcome.

Usual caveat: these are only intended for use in Rhino Text Objects, not Text.

BulgarLineA-Laser.zip (13.8 KB)

Regards
Jeremy

2 Likes

Wow, that font works flawlessly in Rhino! :slight_smile: Many thanks for the effort to turn it into a native Windows font!
That would save me a lot of time should I had it several months ago while I worked in a company where my task was to name almost 500 laser cut plates. At the time I had to arrange all letters by hand. :smiley:

PS: A few lines in certain letters create bad objects, even though I see no reason for that.

If you let me know which ones, I’ll take a look - send me a PM if you prefer. Also, what would be the minimum gap between lines that you could resolve with the laser?

I think that you can use “! _SelBadObjects” to find the lines that create bad objects. I will write all letters and will make a screen-shot with the ones that this particular command recognizes as bad. :slight_smile:

As for the spacing, I was using 2 millimeters between characters, even though some of them needed to be 1 mm closer in certain combinations, such like:
“-7”, where the number 7 was too far away from the “-”)
“LT” (1 or 2 mm closer due to the large space in-between)

PS: This is the alphabet, both in capital and small version. The selected (yellow) curves are bad objects according to Rhino. I also noticed couple of missing lines in the small letters.

Great, thanks for the info - I’ll check them out.

I managed to get the “MecSoft_Font-1.ttf” font to show up in the font list, but not the “BulgarLineA-Laser.ttf”.

Hi @osuire,

It’s a work in progress - except I haven’t had much time to progress it of late. I need a better understanding of how Rhino interprets it to iron out the wrinkles.

Anyway, were you trying to install it on Winows or Mac?

AH ! It works, but it required to close and re-open Rhino.
Windows here.
It works in V6 and V7, but all the numerals don’t pan out…

I’ll try and find some time to take another look at it sometime soon. Unfortunately my font editor is on my desktop pc and I’m away from the office at present.

Thanks Jeremy, I found a viable workflow here, with the Mecsoft font.

I find it amazing the McNeel lets us struggle with this while they claim to provide the perfect tool for CNC hobbyists…

@jeremy5 I noticed there are a lot of duplicate lines in your font, I think this makes it fail

Hi @Gijs,

As Windows doesn’t support single line fonts, they are fudged by superimposing the two sides of each stroke, rather than placing them a stroke width apart. (It’s actually rather more complicated than that.) That may be resulting in what you see. The problem, in a nutshell, is getting the balance between ‘duplicate’ lines - which are needed for the font to render as a font in the textbox - and single lines - which are all the tool needs.

Regards
Jeremy

@jeremy5 but for laser engraving this is not nice I think, because that means the laser will have to make some double strokes too, which is a bit of a waste. The mecsoft font doesn’t render well, but is a true single line font. In Rhino 7 btw, I can get the font to output correctly when checking the engraving checkbox, but with double strokes. When not checking the engraving checkbox I see what @osuire posted, on the Mac it is even worse (lower one with ‘engraving font’ checkbox)

would be nice if you could fix this, because it is a clear geometric font. The mecsoft is also usable but has some ugly curves in it. It’s been long time ago that I touched a font editor. I tried to open the font in font forge but on windows this program is unusable, I might give it a try otherwise on the Mac.

@gijs, That’s interesting - I guess that the ‘engraving’ checkbox causes Rhino to remove overlapping curves before rendering. I have asked @stevebaer in another thread if there is any documentation on what Rhino expects from a single line font, so hopefully I will have something to inform my implementation when I get back to my office. I hope to complete the font in due course.

Jeremy

An update to my font editor has removed the loophole that allowed me to create an unclosed contour in a font, which was fundamental to my approach. In compensation it has made closing contours either by overlapping paths or creating a closing line a trivial task. I now have a choice: I can create a font that previews in in the Rhino 6 TextObject window as black blobs but renders as single lines (like mecsoft), or one that previews legibly but renders with duplicate curves (which could be selected and deleted). Next session I’ll see what happens in Rhino 7.

1 Like