Esempio n. 1
0
def main():
    """command line entry point"""
    parser = argparse.ArgumentParser(
        description=
        'Modify GCode program to account arcs and replace the G1 with G2/G3')

    parser.add_argument(
        'infile',
        nargs='?',
        type=argparse.FileType('r'),
        default=sys.stdin,
        help='Program filename to be modified. Defaults to standard input.')
    parser.add_argument('outfile',
                        nargs='?',
                        type=argparse.FileType('w'),
                        default=sys.stdout,
                        help='Modified program. Defaults to standard output.')
    parser.add_argument('--inplace',
                        '-i',
                        action='store_true',
                        help='Modify file inplace')

    parser.add_argument('--verbose',
                        '-v',
                        action='count',
                        default=1,
                        help='Verbose mode')
    parser.add_argument('--quiet',
                        '-q',
                        action='count',
                        default=0,
                        help='Quiet mode')

    args = parser.parse_args()

    # count verbose and quiet flags to determine logging level
    args.verbose -= args.quiet

    if args.verbose > 1:
        logging.root.setLevel(logging.DEBUG)
    elif args.verbose > 0:
        logging.root.setLevel(logging.INFO)

    logging.basicConfig(format="%(levelname)s:%(message)s")

    # read original GCode
    gcode = GCode(args.infile.readlines())  # pylint: disable=redefined-outer-name

    # First convert to relative extrusion
    # GCodeToRelativeExtrusionFilter().filter(gcode)

    # Then perform the stretching
    GCodeArcOptimizerFilter().filter(gcode)

    # write back modified gcode
    gcode.write(
        open(args.infile.name, 'w')
        if args.inplace is True and args.infile != sys.stdin else args.outfile)
Esempio n. 2
0
def test_arc_optimization_4():
    gcode = open_gcode_file('arc_raw_4.gcode')
    gcode_ref = open_gcode_file('arc_ref_4.gcode')
    logging.basicConfig(level=logging.DEBUG)
    GCodeArcOptimizerFilter().filter(gcode)
    gcode_eq(gcode_ref, gcode)