How to make a dashed font

I’ve got a monoline (outline) font prepared for an educational client. I’m using Noodler to make different weights and rounded endings.
It looks like this:


With the Noodler filter it looks like this:
32
I’m also need to make a version like this as well:
48

Ideally I’d like to do this all on one master font and export separate fonts. That way I could keep all the font metrics the same, and don’t have separate font families that need unnecessary tweaking.

What’s the best way to do this?

Thanks In advance
René

Probably easiest with scripting of some kind. I suggest you do not bend your dashes, to save on complexity. Then you could divide the paths into little straight lines like with the Roughen filter, then throw every other segment away, and expand the rest.

My approach to this would be to do a dashed stroke in Illustrator to get better consistency of segment and gap, rasterize the dashed stroke, then convert it to outlines and copy it into Glyphs. Immediately after copying it into Glyphs, use mekkablue’s Retract BCPs script otherwise it will be a very slow process.

I would also use a 2000 UPM for this design.

If I could program I would write a script myself. But… I can’t. :wink:

Perhaps somebody out there has a script for this? It should convert a line to dashes.

@George_Thomas this would be my last resort. I’ve done something like this for another font in the past, but it’s a lot of work. Besides that it feels to me like the oldskool way of doing it. :wink:

If the Noodler or Offset Curve filter could convert the monoline to dashes, this could even be “non-destructive”.

Should be possible, yes. One advice though: no closed outlines. The ends won’t work out.

All outlines are open.

Let’s hope somebody out there has or can make a script that converts a monoline to a dashed line.
Twitter, here we come.

Since this is a client project, not a personal endeavor, you could divert funds to pay somebody to write that script.

1 Like

I would, if the client would have the budget. :wink:

I think he meant you might want to give the script-writer some of your money as he is doing your job :wink:

1 Like

Yeah, I got the hint. :wink:
But I’m also working for a bottom-line price. This is a ‘please help us fix our font problem’ job with a limited budget.

Well, René, I would say this is a chance to treat yourself to an afternoon of learning Python. Start here: https://glyphsapp.com/tutorials/scripting-glyphs-part-1

This snippet, which you can paste into and run from the Macro window, should get you started:

# create a virtual layer for collecting small paths:
virtualLayer = GSLayer() 

# go through all paths of current layer:
for thisPath in Layer.paths:
	# step through every other node:
	for thisNode in thisPath.nodes[::2]:
		# ignore if it is the last node on the path:
		if thisNode.nextNode:
			# create two nodes with the same coordinates:
			n1, n2 = GSNode(), GSNode()
			n1.position = thisNode.position
			n2.position = thisNode.nextNode.position
			# create a two-point path with the nodes:
			virtualPath = GSPath()
			virtualPath.nodes.append(n1)
			virtualPath.nodes.append(n2)
			# add the path to the virtual layer:
			virtualLayer.paths.append(virtualPath)

# empty out the layer:
Layer.clear()
# swap the paths from the virtual layer into the actual current layer:
Layer.paths=virtualLayer.paths

It creates short single-line paths from all paths in the current layer.

1 Like

Thanks so much! Your help is fantastic.

I wish, I really wish I could program Python. But I just can’t. I’m a designer and code is abracadabra for me. I’ve tried so often…

The snippet is great. It works, but the result is still a bit clunky though.

Well you have to make many small segments first, like with the Roughen filter.

Try the tutorials. After two hours, you will be able to change the script to what you need.

I think you are underestimating how much skill you need to actually pull this off. It’s more complicated and subtle than roughening. A few hours of learning Python from scratch won’t solve his problem at hand.

3 Likes

I’m just making a similarly dashed font. I did it in illustrator, with some final tweaking. Probably quicker to copy/paste than learn enough python to do a decent job

Hi Kemie. That’s how I would do this 5 years ago. But in times like this where a non-destructive workflow is preferred and doable, doing it like that for me would feel like the oldskool way. Exporting the existing outlines to Illustrator, filter them there and import all 1,700 reworked glyphs back into Glyphs.

But it’s really a preference of how you’d like to work! Both is viable for me, but I personally prefer a filter option or any other modern method, because it’s easier for future changes and font expansions.

Yep, totally get it. would have liked to do it another way.