diff --git a/Scripting examples/db_currentDesignspace_grid.py b/Scripting examples/db_currentDesignspace_grid.py index d448a5e..48e7b05 100644 --- a/Scripting examples/db_currentDesignspace_grid.py +++ b/Scripting examples/db_currentDesignspace_grid.py @@ -9,7 +9,7 @@ def ip(a, b, f): return a+f*(b-a) -def grid(ds, glyphName, horizontalAxis, verticalAxis, columns, rows): +def grid(ds, glyphName, horizontalAxis, verticalAxis, discreteLocation, columns, rows): items = [] for x in range(columns): xf = x/(columns-1) @@ -21,27 +21,30 @@ def grid(ds, glyphName, horizontalAxis, verticalAxis, columns, rows): av = ds.getAxis(verticalAxis) avValue = ip(av.minimum, av.maximum, yf) loc = {horizontalAxis:ahValue, verticalAxis:avValue} + if discreteLocation is not None: + loc.update(discreteLocation) glyph = ds.makeOneGlyph(glyphName, loc) items.append(((x, y), loc, glyph)) return items # parameters -glyphName = "S" +glyphName = "A" horizontalAxis = "width" verticalAxis = "weight" +discreteLoc = dict(slab=1) columns = 7 - -rows = 9 +rows = 7 margin = 100 xunit = (width()-2*margin)/columns yunit = (height()-2*margin)/rows d = CurrentDesignspace() +print(d) fill(0) stroke(None) with savedState(): translate(margin,margin) - for (x,y), loc, glyph in grid(d, glyphName, horizontalAxis, verticalAxis, columns, rows): + for (x,y), loc, glyph in grid(d, glyphName, horizontalAxis, verticalAxis, discreteLoc, columns, rows): with savedState(): translate(x*xunit, y*yunit) scale(0.09)