#! /usr/bin/env python from argparse import ArgumentParser from gcode_parser import GCodeParser 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 = GCodeParser(args.file) positions = parser.get_positions() 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()