Intermediates Interpolation Helper Script

If you’re looking for a function to calculate missing master coordinates:

import itertools

axes_coords = [[] for axis in Font.axes]

for i, axis in enumerate(Font.axes):
	for master in Font.masters:
		if master.axes[i] in axes_coords[i]:
			continue
		axes_coords[i].append(master.axes[i])

necessary_masters = list(itertools.product(*axes_coords))
missing_masters = []

for master in necessary_masters:
	if master not in [master.axes for master in Font.masters]:
		if master not in missing_masters:
			missing_masters.append(master)
			print("Missing coordinate", master)

You can then use something like this to add the missing masters:

Font.disableUpdateInterface()			
for missing_master in missing_masters:
	missing_master_instance = GSInstance()
	missing_master_instance.name = "Extreme " + str(missing_master)
	Font.instances.append(missing_master_instance)
	Font.instances[-1].axes = missing_master
	Font.instances[-1].addAsMaster()
	Font.instances.remove(Font.instances[-1])
	Font.masters[-1].axes = missing_master
Font.enableUpdateInterface()

Hope this is what you’re looking for.

3 Likes