Exemplo n.º 1
0
def eeschema_plot_schematic(output_directory):
    wait_for_window('eeschema', '\[')

    logger.info('Focus main eeschema window')
    xdotool(['search', '--name', '\[', 'windowfocus'])

    logger.info('Open File->Plot->Plot')
    xdotool(['key', 'alt+f'])
    xdotool(['key', 'p'])
    xdotool(['key', 'p'])

    wait_for_window('plot', 'Plot')
    xdotool(['search', '--name', 'Plot', 'windowfocus'])

    logger.info('Enter build output directory')
    xdotool(['type', output_directory])

    logger.info('Select PDF plot format')
    xdotool([
        'key',
        'Tab',
        'Tab',
        'Tab',
        'Tab',
        'Tab',
        'Up',
        'Up',
        'Up',
        'space',
    ])

    logger.info('Plot')
    xdotool(['key', 'Return'])
Exemplo n.º 2
0
def eeschema_plot_schematic(output_name, wait_init):
    """Send keystrokes for printing schematic

    Keyword arguments:
    output_name -- The output pdf file name
    """
    # Give enough time to load the libraries
    time.sleep(float(wait_init))

    logger.info('Open File->Print')
    xdotool(['key', 'alt+f'])
    xdotool(['key', 'p'])

    wait_for_window('print', 'Print')

    logger.info('Set color output')
    xdotool(['key', 'alt+b'])

    logger.info('Open Print dialog')
    xdotool(['key', 'Tab'])
    xdotool(['key', 'Tab'])
    xdotool(['key', 'Tab'])
    xdotool(['key', 'Return'])

    logger.info('Enter build output directory')
    xdotool(['key', 'Tab'])
    xdotool(['key', 'alt+n'])
    xdotool(['type', output_name])

    wait_for_window('print', 'Print')
    logger.info('Print!')
    xdotool(['key', 'alt+p'])

    logger.info('Wait before shutdown')
    time.sleep(10)
Exemplo n.º 3
0
def _pcbnew_export_3d(output_file, width, height, transforms):
    if os.path.exists(output_file):
        os.remove(output_file)

    wait_for_window('pcbnew', 'Pcbnew ', additional_commands=['windowfocus'])

    time.sleep(1)

    logger.info('Open 3d viewer')
    xdotool(['key', 'alt+3'])

    wait_for_window('3D Viewer',
                    '3D Viewer',
                    additional_commands=['windowfocus'])

    time.sleep(3)

    # Maximize window
    xdotool(['search', '--name', '3D Viewer', 'windowmove', '0', '0'])
    xdotool([
        'search', '--name', '3D Viewer', 'windowsize',
        str(width),
        str(height)
    ])

    time.sleep(3)

    for transform in transforms:
        description, func = _transforms[transform]
        logger.info(description)
        func()

    logger.info('Wait for rendering...')

    _wait_for_pcbnew_idle()

    time.sleep(5)

    logger.info('Export current view')
    xdotool([
        'key',
        'alt+f',
        'Return',
    ])

    logger.info('Enter build output filename')
    xdotool([
        'key',
        'ctrl+a',
    ])
    xdotool(['type', output_file])

    logger.info('Save')
    xdotool(['key', 'Return'])

    logger.info('Wait before shutdown')
    time.sleep(2)
Exemplo n.º 4
0
def eeschema_plot_schematic(output_directory, kicad_4):
    wait_for_window('eeschema', '\[', additional_commands=['windowfocus'])

    logger.info('Open File->Plot->Plot')
    xdotool(['key', 'alt+f'])
    if kicad_4:
        xdotool(['key', 'p'])
        xdotool(['key', 'p'])
    else:
        xdotool(['key', 'l'])

    wait_for_window('plot', 'Plot', additional_commands=['windowfocus'])

    time.sleep(2)
    
    if not kicad_4:
        # Move/resize window to standard position and click into the text box
        xdotool(['search', '--name', 'Plot', 'windowmove', '0', '0'])
        xdotool(['search', '--name', 'Plot', 'windowsize', str(WIDTH), str(HEIGHT)])
        time.sleep(2)
        xdotool(['mousemove', '400', '20', 'click', '1'])

    logger.info('Enter build output directory')
    xdotool(['key', 'BackSpace', 'BackSpace'])
    xdotool(['type', output_directory])

    time.sleep(2)

    if kicad_4:
        logger.info('Select PDF plot format')
        xdotool([
            'key',
            'Tab',
            'Tab',
            'Tab',
            'Tab',
            'Tab',
            'Up',
            'Up',
            'Up',
            'space',
        ])
        time.sleep(2)


    logger.info('Plot')
    xdotool(['key', 'Return'])

    logger.info('Wait before shutdown')
    time.sleep(5)
Exemplo n.º 5
0
def eeschema_export_bom(output_directory, wait_init):
    # Give enough time to load the libraries
    time.sleep(float(wait_init))

    logger.info('Open Tools->Generate Bill Of Materials')
    xdotool(['key', 'alt+t'])
    xdotool(['key', 'm'])

    logger.info('Run generate')
    wait_for_window('plot', 'Bill of Material')
    xdotool(['search', '--name', 'Bill of Material', 'windowfocus'])
    xdotool(['key', 'Return'])

    logger.info('Wait before shutdown')
    time.sleep(5)
Exemplo n.º 6
0
def eeschema_export_bom(output_directory):
    wait_for_window('eeschema', '\[')

    logger.info('Focus main eeschema window')
    xdotool(['search', '--name', '\[', 'windowfocus'])

    logger.info('Open Tools->Generate Bill Of Materials')
    xdotool(['key', 'alt+t'])
    xdotool(['key', 'm'])

    logger.info('Run generate')
    wait_for_window('plot', 'Bill of Material')
    xdotool(['search', '--name', 'Bill of Material', 'windowfocus'])
    xdotool(['key', 'Return'])

    logger.info('Wait before shutdown')
    time.sleep(2)
Exemplo n.º 7
0
def eeschema_export_bom(output_directory):
    wait_for_window("eeschema", "\[")

    logger.info("Focus main eeschema window")
    xdotool(["search", "--name", "\[", "windowfocus"])

    logger.info("Open Tools->Generate Bill Of Materials")
    xdotool(["key", "alt+t"])
    xdotool(["key", "m"])

    logger.info("Run generate")
    wait_for_window("plot", "Bill of Material")
    xdotool(["search", "--name", "Bill of Material", "windowfocus"])
    xdotool(["key", "Return"])

    logger.info("Wait before shutdown")
    time.sleep(2)
Exemplo n.º 8
0
def eeschema_export_bom(output_directory):
    wait_for_window('eeschema', '\[')

    logger.info('Focus main eeschema window')
    xdotool(['search', '--name', '\[', 'windowfocus'])

    logger.info('Open Tools->Generate Bill Of Materials')
    xdotool(['key', 'alt+t'])
    xdotool(['key', 'm'])

    logger.info('Run generate')
    wait_for_window('plot', 'Bill of Material')
    xdotool(['search', '--name', 'Bill of Material', 'windowfocus'])
    xdotool(['key', 'Return'])

    logger.info('Wait before shutdown')
    time.sleep(2)
Exemplo n.º 9
0
def pcbnew_cleanup(footprints, wait_init):
    """Send keystrokes for cleaning the pcb

    Keyword arguments:
    footprints -- the list of footprints
    """
    # Give enough time to load the libraries
    # This should be a parameter
    time.sleep(float(wait_init))

    logger.info('Open Edit -> Cleanup tracks and vias')
    xdotool(['key', 'alt+e'])
    xdotool(['key', 'c'])
    xdotool(['key', 'c'])
    xdotool(['key', 'c'])
    xdotool(['key', 'Return'])

    wait_for_window('cleanup', 'Cleaning Options')

    logger.info('Go!')
    xdotool(['key', 'Return'])

    logger.info('Wait to fill')
    time.sleep(5)

    xdotool(['key', 'b'])

    logger.info('Wait to save')
    time.sleep(4)

    logger.info('Save board')
    xdotool(['key', 'alt+f'])
    xdotool(['key', 's'])

    logger.info('Wait before shutdown')
    time.sleep(5)
Exemplo n.º 10
0
def eeschema_plot_schematic(output_directory):
    wait_for_window('eeschema', '\[')

    logger.info('Focus main eeschema window')
    xdotool(['search', '--name', '\[', 'windowfocus'])

    logger.info('Open File->Plot->Plot')
    xdotool(['key', 'alt+f'])
    xdotool(['key', 'p'])
    xdotool(['key', 'p'])

    wait_for_window('plot', 'Plot')
    xdotool(['search', '--name', 'Plot', 'windowfocus'])

    logger.info('Enter build output directory')
    xdotool(['type', output_directory])

    logger.info('Select PDF plot format')
    xdotool([
        'key',
        'Tab',
        'Tab',
        'Tab',
        'Tab',
        'Tab',
        'Up',
        'Up',
        'Up',
        'space',
    ])

    logger.info('Plot')
    xdotool(['key', 'Return'])

    logger.info('Wait before shutdown')
    time.sleep(2)
Exemplo n.º 11
0
def _pcbnew_export_3d(output_file):
    if os.path.exists(output_file):
        os.remove(output_file)

    wait_for_window('pcbnew', 'Pcbnew ', additional_commands=['windowfocus'])

    time.sleep(1)

    logger.info('Open 3d viewer')
    xdotool(['key', 'alt+3'])

    wait_for_window('3D Viewer',
                    '3D Viewer',
                    additional_commands=['windowfocus'])

    time.sleep(3)

    # Maximize window
    xdotool(['search', '--name', '3D Viewer', 'windowmove', '0', '0'])
    xdotool([
        'search', '--name', '3D Viewer', 'windowsize',
        str(WIDTH),
        str(HEIGHT)
    ])

    time.sleep(3)

    logger.info('Zoom in')
    for i in range(6):
        xdotool([
            'click',
            '4',
        ])
        time.sleep(0.2)

    logger.info('Move right')
    xdotool([
        'key',
        'alt+v',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Return',
    ])
    time.sleep(2)

    for i in range(2):
        logger.info('Rotate X Clockwise')
        xdotool([
            'key',
            'alt+v',
            'Down',
            'Down',
            'Down',
            'Down',
            'Return',
        ])
        time.sleep(2)

    for i in range(2):
        logger.info('Rotate Y counter-clockwise')
        xdotool([
            'key',
            'alt+v',
            'Down',
            'Down',
            'Down',
            'Down',
            'Down',
            'Down',
            'Down',
            'Return',
        ])
        time.sleep(2)

    logger.info('Rotate Z counter-clockwise')
    xdotool([
        'key',
        'alt+v',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Down',
        'Return',
    ])
    time.sleep(2)

    logger.info('Wait for rendering...')

    _wait_for_pcbnew_idle()

    time.sleep(5)

    logger.info('Export current view')
    xdotool([
        'key',
        'alt+f',
        'Return',
    ])

    logger.info('Enter build output filename')
    xdotool([
        'key',
        'ctrl+a',
    ])
    xdotool(['type', output_file])

    logger.info('Save')
    xdotool(['key', 'Return'])

    logger.info('Wait before shutdown')
    time.sleep(2)