示例#1
0
def measure_nozzle_offset(app, args=None, lang='en_US.UTF-8'):
    setLanguage(lang)

    app.macro("M104 S0", "ok", 2, _("Extruder heating off"))
    app.macro("M140 S0", "ok", 2, _("Bed heating off"))

    app.trace(_("Measuring nozzle offset"))
    zpos = getPosition(app, lang)

    # Paper width is 0.08mm
    nozzle = float(zpos['z']) - 0.08

    app.macro("G90", "ok", 2, _("Setting rel position"), verbose=False)
    app.macro("G0 Z+40",
              "ok",
              100,
              _("Moving the bed 40mm away from measured height"),
              verbose=False)

    # Store offset to head config
    head_file = os.path.join(
        app.config.get('hardware', 'heads'),
        app.config.get('settings', 'hardware.head') + '.json')
    with open(head_file) as json_f:
        head_info = json.load(json_f)

    #head_info['nozzle_offset'] = str(round(nozzle,2))
    head_info['nozzle_offset'] = nozzle

    with open(head_file, 'w') as outfile:
        json.dump(head_info, outfile, sort_keys=True, indent=4)

    return {'nozzle_z_offset': nozzle}
示例#2
0
def pause_additive(app, args=None, lang='en_US.UTF-8'):
    app.macro("M999",   "ok", 5,    _("Clearing error state"), verbose=False)
    #app.macro("M756",   "ok", 1,    _("Clearing error state"))
    app.macro("M400",   "ok", 240,    _("Waiting for all moves to finish"), verbose=False)
    position = getPosition(app, lang)
    
    with open('/var/lib/fabui/settings/stored_task.json', 'w') as f:
        f.write( json.dumps({
            'position':position
            }) )
    
    current_z = float(position['z'])
    safe_z = current_z + 50.0
    
    max_z = app.config.get('settings', 'z_max_offset', 241.5) - 5
    if safe_z > max_z:
        safe_z = max_z
    
    feeder = app.config.get_current_feeder_info()
    #app.macro("M82",                "ok", 2,    _("E relative position mode"), verbose=False )
    #app.macro("G0 E-{0} F{1}".format(feeder['retract_amount'], feeder['retract_feedrate']),  "ok", 20,    _("Retract fillament") )
    
    app.macro("G90",                "ok", 2,    _("Setting abs position"), verbose=False )
    app.macro("G0 Z{0} F5000".format(safe_z),        "ok", 100,  _("Moving to Z safe zone"), verbose=False )
    app.macro("G0 X210 Y210 F6000", "ok", 100,  _("Moving to safe zone"), verbose=False )
    #block stepper motor for 5min => 60*5=300
    app.macro("M84 S300", "ok", 2, _("Block stepper motor"), verbose=False)
    app.macro("M732 S0", "ok", 2, _("Disabling door safety"))
示例#3
0
def pause_subtractive(app, args=None, lang='en_US.UTF-8'):
    setLanguage(lang)
    app.macro("M400",
              "ok",
              240,
              _("Waiting for all moves to finish"),
              verbose=False)
    position = getPosition(app, lang)

    with open('/var/lib/fabui/settings/stored_task.json', 'w') as f:
        f.write(json.dumps({'position': position}))

    current_z = float(position['z'])
    safe_z = current_z + 50.0

    max_z = app.config.get('settings', 'z_max_offset', Z_MAX_OFFSET) - 5
    if safe_z > max_z:
        safe_z = max_z

    app.macro("G90", "ok", 2, _("Setting absolute position"), verbose=False)
    app.macro("G0 Z{0} F5000".format(safe_z),
              "ok",
              100,
              _("Moving to Z safe zone"),
              verbose=False)

    app.macro("G0 X210 Y210 F6000",
              "ok",
              100,
              _("Moving to safe zone"),
              verbose=False)
    #block stepper motor for 5min => 60*5=300
    app.macro("M84 S300", "ok", 2, _("Block stepper motor"), verbose=False)
    app.macro("M732 S0", "ok", 2, _("Disabling door safety"))
示例#4
0
def pause_prism(app, args=None, lang='en_US.UTF-8'):

    setLanguage(lang)

    try:

        max_height = args[0]

    except:

        max_height = 40.00

    try:

        z_offset = args[1]

    except:

        z_offset = 100.00

    app.macro("M300", "ok", 3, _("Play beep"), verbose=False)

    app.macro("M732 S0", "ok", 2, _("Disabling door safety"), verbose=False)

    # turn lights to red
    set_lights(app, [25, 2, 0])

    # get position
    position = getPosition(app, lang)

    current_z = float(position['z'])

    # raise platform only if object's height is < max_height

    if current_z < max_height:

        # store position
        with open('/var/lib/fabui/settings/stored_task.json', 'w') as f:

            f.write(json.dumps({'position': position}))

        safe_z = current_z + z_offset

        app.macro("G91", "ok", 1, _("Relative mode"), verbose=False)

        app.macro("G0 Z-{0} F300".format(safe_z),
                  "ok",
                  100,
                  _("Raising platform"),
                  verbose=False)

        app.macro("M400",
                  "ok",
                  120,
                  _("Wait for all movements"),
                  verbose=False)
示例#5
0
def measure_probe_offset(app, args=None, lang='en_US.UTF-8'):
    setLanguage(lang)

    ext_temp = 200
    bed_temp = 45
    max_probe_length = 45
    default_probe_length = 38
    eeprom = getEeprom(app)
    probe_length = abs(float(eeprom["probe_length"]))
    zprobe_disabled = int(app.config.get('settings', 'probe.enable')) == 0

    if (probe_length > max_probe_length):
        app.macro("M710 S{0}".format(default_probe_length),
                  "ok",
                  2,
                  _("Write config to EEPROM"),
                  verbose=False)

    app.macro("M104 S" + str(ext_temp), "ok", 3,
              _("Pre Heating Nozzle ({0}&deg;) (fast)").format(str(ext_temp)))
    app.macro("M140 S" + str(bed_temp), "ok", 3,
              _("Pre Heating Bed ({0}&deg;) (fast)").format(str(bed_temp)))

    # app.trace( _("Preparing Calibration procedure") )
    # Get Z-Max
    app.trace(_("Measuring Z max offset"))
    app.macro("M206 X0 Y0 Z0",
              "ok",
              5,
              _("Reset homing offset"),
              verbose=False)
    app.macro("G27", "ok", 100, _("Homing all axes"), verbose=False)
    zmax = getPosition(app, lang)

    # Get Probe-Length
    if not zprobe_disabled:
        app.trace(_("Measuring probe length"))
        app.macro("G90", "ok", 2, _("Setting abs position"), verbose=False)
        app.macro("G0 Z50 F1000",
                  "ok",
                  100,
                  _("Moving the bed 50mm away from nozzle"),
                  verbose=False)
        app.macro("G0 X86 Y58 F6000",
                  "ok",
                  100,
                  _("Moving the probe to the center"),
                  verbose=False)
        app.macro("M733 S0", "ok", 2, _("Disable homing check"), verbose=False)
        probe_length = 0.0
        for i in range(0, 4):
            app.trace(_("Measurement ({0}/4)").format(i + 1))
            zprobe = zProbe(app, lang)
            probe_length = probe_length + float(zprobe['z'])

        probe_length = probe_length / 4
        app.macro("M710 S{0}".format(probe_length),
                  "ok",
                  2,
                  _("Write config to EEPROM"),
                  verbose=False)
        app.macro("M733 S1", "ok", 2, _("Enable homing check"), verbose=False)

    # Move closer to nozzle
    app.macro("G90", "ok", 2, _("Setting abs position"), verbose=False)
    app.macro("G0 X103 Y119.5 Z20 F1000",
              "ok",
              100,
              _("Moving the bed 20mm away from nozzle"),
              verbose=False)

    app.config.set('settings', 'z_max_offset', float(zmax['z']))
    app.config.set('settings', 'probe.length', float(probe_length))
    app.config.save('settings')

    return {
        'z_max_offset': float(zmax['z']),
        'z_probe_offset': float(probe_length)
    }
示例#6
0
def read_position(app, args=None, lang='en_US.UTF-8'):
    setLanguage(lang)
    return getPosition(app, lang)