def plot(self, ztransforms): """Plots a route through the blueprint, then does ztransforms.""" keys = [] cursor = self.start ks = None for layer in self.layers: layer.start = cursor # first layer's start or last layer's exit pos # plan the cursor's route to designate all the areas layer.grid, layer.plots, end = router.plan_route( layer.grid, cursor) # generate key/macro sequence to render this series of plots in DF ks = Keystroker(layer.grid, self.build_config) layerkeys, cursor = ks.plot(layer.plots, cursor) keys += layerkeys + layer.onexit # move cursor back to start pos x, y, so start==end keys += ks.move(cursor, self.start, 0) #start = end # perform any awaiting z-transforms keys = self.repeat_ztransforms(ztransforms, keys, self.repeater_keys) return keys