SOLVED Copy selected layers to new font
-
Hi, new to RF and scripting; this is probably a simple question because I can't find it addressed anywhere (or I'm framing the question wrong):
I have a master version of my modular script Kast with all the layers needed to build its various versions:
I'd like to selectively export its layers to new fonts (top right, top left, left right, etc.). I can get the master's layers names, create a new font, but I can't figure out the next steps. Even just a nudge with the proper methods would be appreciated.
-
@gferreira I think those were the clues I needed—thanks!
-
hello @MauriceMeilleur,
if I understand it correctly, you would like to make individual styles by combining some of the layers?
if so, have a look at Boolean Glyph Math. you can get individual glyph layers with
glyph.getLayer(layerName)
.hope this helps, good luck!
-
Thanks, Frederik! But my goal is to generate fonts from different combinations of layers from the master.
So the ideal pseudocode would read like this (I think), for example to create a font with the top-facing sides in the virtual cubes in my design:
font1 = master UFO with all layers font2 = new font with one layer for layer in font1: if layer name = top or top_background: for each glyph in layer: copy paths in glyph to corresponding glyph in font2 else pass
-
Do you need each layer as a separate UFO? if so you can export each glyph to a new font object and work from there
if not:
You can generate manually with the generate menu item and select a specific layer.
or for now:
import os destRoot = 'root/folder/to/store/binaryFont' font = CurrentFont() for layer in font.layers: layerName = layer.name path = os.path.join(destRoot, f"{layerName}-{font.info.familyName}-{font.info.styleName}.otf") # the naked layer object has a separate generate api layer.naked().generate(path=path, format="otf")
This will move in future version to
font.generate(..., layerName="background")
where thelayerName
argument will selecte a specific layer.hope this helps