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}
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"))
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"))
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)
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}°) (fast)").format(str(ext_temp))) app.macro("M140 S" + str(bed_temp), "ok", 3, _("Pre Heating Bed ({0}°) (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) }
def read_position(app, args=None, lang='en_US.UTF-8'): setLanguage(lang) return getPosition(app, lang)