This commit is contained in:
Michael Fogleman 2018-01-21 19:21:08 -05:00
parent ac333d4431
commit 8e6d9e4198
3 changed files with 48 additions and 10 deletions

View File

@ -9,9 +9,9 @@ from serial.tools.list_ports import comports
from .planner import Planner from .planner import Planner
from .progress import Bar from .progress import Bar
TIMESLICE_MS = 15 TIMESLICE_MS = 10
MICROSTEPPING_MODE = 2 MICROSTEPPING_MODE = 1
STEP_DIVIDER = 2 ** (MICROSTEPPING_MODE - 1) STEP_DIVIDER = 2 ** (MICROSTEPPING_MODE - 1)
STEPS_PER_INCH = 2032 / STEP_DIVIDER STEPS_PER_INCH = 2032 / STEP_DIVIDER
@ -25,9 +25,9 @@ PEN_DOWN_POSITION = 45
PEN_DOWN_SPEED = 150 PEN_DOWN_SPEED = 150
PEN_DOWN_DELAY = 0 PEN_DOWN_DELAY = 0
ACCELERATION = 4 ACCELERATION = 6
MAX_VELOCITY = 4 MAX_VELOCITY = 6
CORNER_FACTOR = 0.005 CORNER_FACTOR = 0.005 * 2
VID_PID = '04D8:FD92' VID_PID = '04D8:FD92'

View File

@ -4,9 +4,33 @@ import axi
import numpy as np import numpy as np
import sys import sys
COLUMNS = 8 COLUMNS = 6
SECONDS = 5 SECONDS = 5
TEXT = ['Five Seconds of Donkey Kong']
FONT = axi.FUTURAM
def stack_drawings(ds, spacing=0):
result = axi.Drawing()
y = 0
for d in ds:
d = d.origin().translate(-d.width / 2, y)
result.add(d)
y += d.height + spacing
return result
def text():
ds = [axi.Drawing(axi.text(line, FONT)).scale_to_fit_height(1) for line in TEXT]
d = stack_drawings(ds, 0.1)
# d = d.scale_to_fit(12, 8.5)
d = d.scale_to_fit(12, 0.25)
# d = d.move(6, 0, 0.5, 0)
# d = d.translate(0, 0.01)
d = d.move(6, 8.5, 0.5, 1)
d = d.translate(0, -0.01)
d = d.join_paths(0.01)
return d
def main(): def main():
with open(sys.argv[1], 'r') as fp: with open(sys.argv[1], 'r') as fp:
data = fp.read() data = fp.read()
@ -51,13 +75,18 @@ def main():
paths.append(path) paths.append(path)
d = axi.Drawing(paths) d = axi.Drawing(paths)
print 'transforming paths' print 'transforming paths'
d = d.scale(12 / d.width, 8.5 / d.height) d = d.scale(8.85 / d.width, 12 / d.height)
print 'sorting paths' print 'sorting paths'
d = d.sort_paths() d = d.sort_paths()
print 'rendering paths' print 'rendering paths'
d = stack_drawings([d, text()], 0.25)
d = d.rotate_and_scale_to_fit(12, 8.5, step=90)
d.render(scale=109 * 1, line_width=0.3/25.4).write_to_png('out.png') d.render(scale=109 * 1, line_width=0.3/25.4).write_to_png('out.png')
d.dump_svg('out.svg') d.dump_svg('out.svg')
# axi.draw(d) # print sum(x.t for x in axi.Device().plan_drawing(d)) / 60
axi.draw(d)
if __name__ == '__main__': if __name__ == '__main__':
main() main()

View File

@ -15,6 +15,10 @@ LINES = [
'Anything your heart desires will come to you', 'Anything your heart desires will come to you',
] ]
LINES = [
'Five Seconds of Donkey Kong'
]
def stack_drawings(ds, spacing=0): def stack_drawings(ds, spacing=0):
result = axi.Drawing() result = axi.Drawing()
y = 0 y = 0
@ -25,7 +29,7 @@ def stack_drawings(ds, spacing=0):
return result return result
def main(): def main():
font = axi.SCRIPTS font = axi.FUTURAM
ds = [axi.Drawing(axi.text(line, font)).scale_to_fit_height(1) for line in LINES] ds = [axi.Drawing(axi.text(line, font)).scale_to_fit_height(1) for line in LINES]
d = stack_drawings(ds, 0.1) d = stack_drawings(ds, 0.1)
# d = d.rotate_and_scale_to_fit(12, 8.5, step=90) # d = d.rotate_and_scale_to_fit(12, 8.5, step=90)
@ -33,13 +37,18 @@ def main():
# d = d.center(12, 8.5) # d = d.center(12, 8.5)
# d = d.move(0, 0, 0, 0) # d = d.move(0, 0, 0, 0)
d = d.scale_to_fit(12, 8.5) d = d.scale_to_fit(12, 8.5)
d = d.scale_to_fit(12, 0.25)
# d = d.center(12, 8.5) # d = d.center(12, 8.5)
d = d.move(6, 0, 0.5, 0) d = d.move(6, 0, 0.5, 0)
d = d.translate(0, 0.01) d = d.translate(0, 0.01)
d = d.move(6, 8.5, 0.5, 1)
d = d.translate(0, -0.01)
d = d.join_paths(0.01) d = d.join_paths(0.01)
d.render().write_to_png('out.png') d.render().write_to_png('out.png')
print sum(x.t for x in axi.Device().plan_drawing(d)) print sum(x.t for x in axi.Device().plan_drawing(d))
# axi.draw(d) axi.draw(d)
if __name__ == '__main__': if __name__ == '__main__':
main() main()