31 lines
1.1 KiB
Python
Executable File
31 lines
1.1 KiB
Python
Executable File
#! /usr/bin/env python
|
|
from argparse import ArgumentParser
|
|
from gcodeinterpreter import GcodeInterpreter
|
|
from pwm_driver import PWMDriver
|
|
from visualizer import Visualizer
|
|
|
|
# A4
|
|
WIDTH_MM = 297.0
|
|
HEIGHT_MM = 210.0
|
|
|
|
if __name__ == "__main__":
|
|
argparser = ArgumentParser()
|
|
argparser.add_argument("-f", "--file", type=str)
|
|
argparser.add_argument("-W", "--width", type=float, default=WIDTH_MM, required=False)
|
|
argparser.add_argument("-H", "--height", type=float, default=HEIGHT_MM, required=False)
|
|
argparser.add_argument("-V", "--visualize", action="store_true", default=False, required=False)
|
|
argparser.add_argument("-P", "--port", type=str, default=None)
|
|
|
|
args = argparser.parse_args()
|
|
|
|
parser = GcodeInterpreter().parse_file(args.file)
|
|
positions = parser.get_coordinates()
|
|
|
|
if args.visualize:
|
|
screen_dimensions = (1024*1.5, 1024*1.5 * args.height/args.width)
|
|
visualizer = Visualizer(positions, screen_dimensions, (args.width, args.height))
|
|
visualizer.visualize()
|
|
|
|
if args.port:
|
|
pwm = PWMDriver(positions, (args.width, args.height), args.port)
|
|
pwm.run() |