232 lines
15 KiB
Plaintext

;M98 P"mmu/lib/globals.g"
;M98 P"mmu/settings.g"
; generated/free-endstop.g
var output = "mmu/lib/generated/free-endstop.g"
echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!"
echo >>{var.output} "; disassociate the pin first"
echo >>{var.output} "M950 J" ^ global.mmu_selector_trigger ^ "C""nil"" ; unassign the selector triger pin definition."
echo >>{var.output} "M581 T" ^ global.mmu_selector_trigger ^ "P-1 ; delete the trigger for the mmu selector"
echo >>{var.output} "M574 " ^ global.mmu_selector_axis ^ 0 ^ "; declare that the selector axis has no endstop."
echo >>{var.output} "M574 " ^ global.mmu_extruder_axis ^ 0 ^ "; declare that the mmu extruder axis has no endstop."
echo >>{var.output} "if fileexists(""/sys/trigger" ^ global.mmu_encoder_trigger ^ ".g"") ; if we have a sys/triggerX.g file"
echo >>{var.output} " M30 {""/sys/trigger" ^ global.mmu_selector_trigger ^ ".g""} ; delete it."
; generated/buzz.g
set var.output = "mmu/lib/generated/buzz.g"
echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!"
echo >>{var.output} "G91 ; switch to relative movement."
echo >>{var.output} "G92 " ^ global.mmu_extruder_axis ^ "0 ; Null the MMU extruder axis."
echo >>{var.output} "G1 F" ^ global.mmu_extruder_slow_speed ^ " " ^ global.mmu_extruder_axis ^ "5 ; slowly go forward 5 millimeters."
echo >>{var.output} "M400 ; wait for the command to end."
echo >>{var.output} "G1 F" ^ global.mmu_extruder_slow_speed ^ " " ^ global.mmu_extruder_axis ^ "-5 ; slowly go backwards 5 millimeters again."
echo >>{var.output} "M400 ; wait again."
echo >>{var.output} "M84 " ^ global.mmu_extruder_axis ^ " ; turn off the extruder axis."
echo >>{var.output} "G90 ; return to absolute movement."
; generated/home.g
set var.output = "mmu/lib/generated/home.g"
echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!"
echo >>{var.output} "M98 P""mmu/lib/assert-empty.g"""
echo >>{var.output} "M98 P""mmu/lib/generated/free-endstop.g"""
echo >>{var.output} "M98 P""mmu/lib/disengage.g"""
echo >>{var.output} "M584 P{#move.axes} ; allow operating on MMU axes"
echo >>{var.output} "set global.mmu_extruder_loaded = false"
echo >>{var.output} "G91"
echo >>{var.output} "M574 S1 " ^ global.mmu_selector_axis ^ "1" ^ " P""" ^ global.mmu_selector_endstop_pin ^ """"
echo >>{var.output} "G1 H1 F6000 " ^ global.mmu_selector_axis ^ -global.mmu_selector_axis_max - 5
echo >>{var.output} "M98 P""mmu/lib/assert-endstop.g"""
echo >>{var.output} "G1 F6000 " ^ global.mmu_selector_axis ^ "5"
echo >>{var.output} "G1 H1 F300 " ^ global.mmu_selector_axis ^ -10
echo >>{var.output} "M98 P""mmu/lib/assert-endstop.g"""
echo >>{var.output} "M574 " ^ global.mmu_selector_axis ^ 0
echo >>{var.output} "G90"
echo >>{var.output} "M98 P""mmu/lib/generated/select.g"" S0 H1"
echo >>{var.output} "M584 P{#move.axes - 2} ; hide MMU axes"
; generated/init.g
set var.output = "mmu/lib/generated/init.g"
echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!"
echo >>{var.output} "M98 P""mmu/lib/globals.g"" ; initialize all global variables."
echo >>{var.output} "M98 P""mmu/settings.g"" ; overwrite gobal default values with printer-specifics."
echo >>{var.output} "M98 P""" ^ global.mmu_selector_file ^ """ ; restore selector state."
echo >>{var.output} "M950 S" ^ global.mmu_servo_num ^ " C""" ^ global.mmu_servo_pin ^ """"
echo >>{var.output} "M906 " ^ global.mmu_extruder_axis ^ global.mmu_extruder_current ^ " " ^ global.mmu_selector_axis ^ global.mmu_selector_current
echo >>{var.output} "M350 " ^ global.mmu_extruder_axis ^ global.mmu_extruder_microsteps ^ " " ^ global.mmu_selector_axis ^ global.mmu_selector_microsteps
echo >>{var.output} "M92 " ^ global.mmu_extruder_axis ^ global.mmu_extruder_steps ^ " " ^ global.mmu_selector_axis ^ global.mmu_selector_steps
echo >>{var.output} "M201 " ^ global.mmu_extruder_axis ^ global.mmu_extruder_accel ^ " " ^ global.mmu_selector_axis ^ global.mmu_selector_accel
echo >>{var.output} "M203 " ^ global.mmu_extruder_axis ^ 24000 ^ " " ^ global.mmu_selector_axis ^ 24000
echo >>{var.output} "M208 S1 " ^ global.mmu_selector_axis ^ global.mmu_selector_axis_min ^ " " ^ global.mmu_extruder_axis ^ "-9999"
echo >>{var.output} "M208 S0 " ^ global.mmu_selector_axis ^ global.mmu_selector_axis_max ^ " " ^ global.mmu_extruder_axis ^ "9999"
echo >>{var.output} "M591 D0 S0 P0"
echo >>{var.output} "M98 P""mmu/lib/filament-runout.g"""
; generated/load.g
set var.output = "mmu/lib/generated/load.g"
echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!"
echo >>{var.output} "M98 R1"
echo >>{var.output} "if state.macroRestarted"
echo >>{var.output} " if !global.mmu_extruder_loaded"
echo >>{var.output} " var err = ""Filament not yet loaded: T"" ^ global.mmu_selector_pos"
echo >>{var.output} " if state.status == ""processing"""
echo >>{var.output} " echo var.err"
echo >>{var.output} " M291 P{var.err} R""Load Filament"" S1 T0"
echo >>{var.output} " M98 R1"
echo >>{var.output} " M226"
echo >>{var.output} " M99"
echo >>{var.output} "if global.mmu_extruder_loaded"
echo >>{var.output} " echo ""Extruder already loaded, skipping; restarted="" ^ state.macroRestarted"
echo >>{var.output} " M99"
echo >>{var.output} "if global.mmu_selector_pos == -1"
echo >>{var.output} " abort ""Home selector first"""
echo >>{var.output} "M98 P""mmu/lib/assert-empty.g"""
echo >>{var.output} "M98 P""mmu/lib/engage.g"""
echo >>{var.output} "G91"
echo >>{var.output} "M584 P{#move.axes} ; enable axes, we need them"
echo >>{var.output} "M98 P""mmu/lib/generated/free-endstop.g"""
echo >>{var.output} "M574 A0"
echo >>{var.output} "M574 S1 " ^ global.mmu_extruder_axis ^ "2" ^ " P""" ^ global.mmu_filament_sensor_pin ^ """ ; Endstop Configuration. Microswitch (S1), High End (2)"
echo >>{var.output} "M208 S1 " ^ global.mmu_extruder_axis ^ "-9999 ; max travel to minimum -10m"
echo >>{var.output} "M208 S0 " ^ global.mmu_extruder_axis ^ "9999 ; max travel to maximum +10m"
echo >>{var.output} "G91 ; set to relative moves"
echo >>{var.output} "G1 H1 F" ^ global.mmu_extruder_fast_speed ^ " " ^ global.mmu_extruder_axis ^ 50 ^ " ; run for up to 50mm waiting for the endstop to trigger."
echo >>{var.output} "M98 P""mmu/lib/assert-selector-loaded.g"""
echo >>{var.output} "G92 " ^ global.mmu_extruder_axis ^ "0"
echo >>{var.output} "M98 P""mmu/lib/generated/free-endstop.g"""
echo >>{var.output} "M574 A0"
echo >>{var.output} "M574 S1 " ^ global.mmu_extruder_axis ^ "2" ^ " P""" ^ global.mmu_extruder_runout_pin ^ """ ; Endstop Configuration. Microswitch (S1), High End (2)"
echo >>{var.output} "M208 S1 " ^ global.mmu_extruder_axis ^ "-9999"
echo >>{var.output} "M208 S0 " ^ global.mmu_extruder_axis ^ "9999"
echo >>{var.output} "G1 H1 F" ^ global.mmu_extruder_fast_speed ^ " " ^ global.mmu_extruder_axis ^ global.mmu_bowden_length ^ " ; fast load the filament to the extruder runout sensor."
echo >>{var.output} "G1 F" ^ global.mmu_extruder_load_speed ^ " " ^ global.mmu_extruder_axis ^ -10 ^ " ; back off slightly."
echo >>{var.output} "G1 H1 " ^global.mmu_extruder_axis ^ 20 ^ " ; slowly feed again for more precision."
echo >>{var.output} "M574 " ^ global.mmu_extruder_axis ^ 0 ^ " ; Disconnect endstop"
echo >>{var.output} "M98 P""mmu/lib/generated/load-extruder.g"""
echo >>{var.output} "if !global.mmu_extruder_loaded"
echo >>{var.output} " var errmsg = ""Load into extruder not detected: T"" ^ global.mmu_selector_pos"
echo >>{var.output} " if state.status == ""processing"""
echo >>{var.output} " echo var.errmsg"
echo >>{var.output} " M291 P{var.errmsg} R""Load Filament"" S1 T0"
echo >>{var.output} " M98 R1"
echo >>{var.output} " M226"
echo >>{var.output} " else"
echo >>{var.output} " abort var.errmsg"
echo >>{var.output} "M98 P""mmu/lib/disengage.g"""
echo >>{var.output} "G90"
; generated/load-extruder.g
set var.output = "mmu/lib/generated/load-extruder.g"
echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!"
echo >>{var.output} "if global.mmu_extruder_loaded && (!exists(param.F) || param.F != 1)"
echo >>{var.output} " echo ""Cannot load extruder while already loaded; restarted="" ^ state.macroRestarted"
echo >>{var.output} " M99"
echo >>{var.output} "G91"
echo >>{var.output} "G92 " ^ global.mmu_extruder_axis ^ "0" ^ " ; Null the mmu extruder."
echo >>{var.output} "G1 " ^ global.mmu_extruder_axis ^ global.mmu_sensor_extruder_gears_length ^ " E" ^ global.mmu_sensor_extruder_gears_length ^ " ; filament: runout sensor -> extruder. Spin extruder as well to prevent the filament from going elsewhere"
echo >>{var.output} "G1 F" ^ global.mmu_extruder_load_speed ^ " E" ^ {global.mmu_extruder_gear_diameter + 10} ^ " " ^ global.mmu_extruder_axis ^ {global.mmu_extruder_gear_diameter + 10}
echo >>{var.output} "M400"
echo >>{var.output} "M98 P""mmu/lib/disengage.g"""
echo >>{var.output} "G1 F" ^ global.mmu_extruder_load_speed ^ " E" ^ {global.mmu_extruder_to_park_length - (global.mmu_extruder_gear_diameter + 10)} ^ " ; bring filament to park position."
echo >>{var.output} "M400"
echo >>{var.output} "M584 P{#move.axes - 2} ; hide MMU axes"
echo >>{var.output} "set global.mmu_extruder_loaded = true"
echo >>{var.output} "T{global.mmu_tool_number}"
echo >>{var.output} "G90"
echo >>{var.output} "M98 P""mmu/lib/save-selector-state.g"""
echo >>{var.output} "M98 P""mmu/lib/filament-runout.g"""
; generated/load-lane.g
set var.output = "mmu/lib/generated/load-lane.g"
echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!"
echo >>{var.output} "; this macro initially loads a lane. That means it starts spinning the MMU extruder until the filament sensor trips,"
echo >>{var.output} "; then moves the filament back so it sits flush with the selector lane, allowing the selector to move."
echo >>{var.output} "M98 P""mmu/lib/assert-empty.g"""
echo >>{var.output} "M98 P""mmu/lib/generated/free-endstop.g"""
echo >>{var.output} "M98 P""mmu/lib/engage.g"""
echo >>{var.output} "M584 P{#move.axes} ; allow operating on MMU axes"
echo >>{var.output} "set global.mmu_extruder_loaded = false ; we asserted before that we are empty, so we are currently obviously not loaded."
echo >>{var.output} "M574 S1 " ^ global.mmu_extruder_axis ^ "2" ^ " P""" ^ global.mmu_filament_sensor_pin ^ """ ; Endstop Configuration. Microswitch (S1), High End (2)"
echo >>{var.output} "M208 S1 " ^ global.mmu_extruder_axis ^ "-9999 ; max travel to minimum -10m"
echo >>{var.output} "M208 S0 " ^ global.mmu_extruder_axis ^ "9999 ; max travel to maximum +10m"
echo >>{var.output} "G91 ; set to relative moves"
echo >>{var.output} "G1 H1 F600 " ^ global.mmu_extruder_axis ^ 600 ^ " ; run for up to 60cm waiting for the endstop to trigger."
echo >>{var.output} "M98 P""mmu/lib/assert-endstop.g"""
echo >>{var.output} "G1 F6000 " ^ global.mmu_extruder_axis ^ -15
echo >>{var.output} "M400" ; Wait
echo >>{var.output} "G92 " ^ global.mmu_extruder_axis ^ 0 ^ " ; Null Selector-Extruder again"
echo >>{var.output} "M574 " ^ global.mmu_extruder_axis ^ 0 ^ " ; Disconnect endstop"
echo >>{var.output} "M18 " ^ global.mmu_extruder_axis ^ " ; turn off extruder power - we don't need it afterwards."
echo >>{var.output} "M98 P""mmu/lib/disengage.g"""
echo >>{var.output} "M584 P{#move.axes - 2} ; hide MMU axes"
; generated/select.g
set var.output = "mmu/lib/generated/select.g"
echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!"
echo >>{var.output} "if global.mmu_selector_pos == -1 && (!exists(param.H) || param.H != 1)"
echo >>{var.output} " abort ""Home selector first"""
echo >>{var.output} "if !exists(param.S)"
echo >>{var.output} " abort ""No Slot selected"""
echo >>{var.output} "if !exists(param.H) || param.H != 1"
echo >>{var.output} " M98 P""mmu/lib/assert-empty.g"""
echo >>{var.output} "if global.mmu_servo_engaged"
echo >>{var.output} " M98 P""mmu/lib/disengage.g"""
echo >>{var.output} "M584 P{#move.axes} ; allow operating on MMU axes"
echo >>{var.output} "var axis = -1"
echo >>{var.output} "while var.axis == -1"
echo >>{var.output} " if iterations >= #move.axes"
echo >>{var.output} " break"
echo >>{var.output} " if move.axes[iterations].letter == global.mmu_selector_axis"
echo >>{var.output} " set var.axis = iterations"
echo >>{var.output} "if var.axis == -1"
echo >>{var.output} " abort ""Cannot find selector axis"""
echo >>{var.output} "G90"
echo >>{var.output} "var slot_position = (param.S * global.mmu_slot_spacing) "
echo >>{var.output} "if var.slot_position > global.mmu_selector_axis_max"
echo >>{var.output} " abort ""Selected Slot "" ^ param.S ^ "" would move selector beyond its length of "" ^ global.mmu_selector_axis_max ^ ""!"""
echo >>{var.output} "set global.mmu_selector_pos = param.S"
echo >>{var.output} "G92 " ^ global.mmu_selector_axis ^ "{move.axes[var.axis].userPosition}"
echo >>{var.output} "G1 F18000 " ^ global.mmu_selector_axis ^ "{var.slot_position}"
echo >>{var.output} "M84 " ^ global.mmu_selector_axis
echo >>{var.output} "M98 P""mmu/lib/save-selector-state.g"""
echo >>{var.output} "M98 P""mmu/lib/filament-runout.g"""
echo >>{var.output} "M584 P{#move.axes - 2} ; hide MMU axes"
; generated/unload-selector.g
set var.output = "mmu/lib/generated/unload-selector.g"
echo >{var.output} "; THIS FILE IS AUTO-GENERATED!!! Do not edit, your changes WILL be overwritten next time you run mmu/generate.g again!"
echo >>{var.output} "M98 R1"
echo >>{var.output} "if state.macroRestarted"
echo >>{var.output} " if !global.mmu_extruder_loaded"
echo >>{var.output} " if state.status == ""processing"""
echo >>{var.output} " M291 P{""Filament not yet loaded: T"" ^ global.mmu_selector_pos} R""Load Filament"" S1 T0"
echo >>{var.output} " M98 R1"
echo >>{var.output} " M226"
echo >>{var.output} " M99"
echo >>{var.output} "M98 P""mmu/lib/engage.g"""
echo >>{var.output} "M98 P""mmu/lib/generated/free-endstop.g"""
echo >>{var.output} "M584 P{#move.axes} ; allow operating on MMU axes"
echo >>{var.output} "G91"
echo >>{var.output} "M574 S1 " ^ global.mmu_extruder_axis ^ "2" ^ " P""!" ^ global.mmu_filament_sensor_pin ^ """"
echo >>{var.output} "M208 S1 " ^ global.mmu_extruder_axis ^ "-9999"
echo >>{var.output} "M208 S0 " ^ global.mmu_extruder_axis ^ "9999"
;echo >>{var.output} "G1 F" ^ global.mmu_extruder_fast_speed ^ " " ^ global.mmu_extruder_axis ^ "-10"
;echo >>{var.output} "G1 F" ^ global.mmu_extruder_fast_speed ^ " " ^ global.mmu_extruder_axis ^ "-30 E30"
echo >>{var.output} "G1 H1 F" ^ global.mmu_extruder_fast_speed ^ " " ^ global.mmu_extruder_axis ^ -7000
echo >>{var.output} "G1 F6000 " ^ global.mmu_extruder_axis ^ -15
echo >>{var.output} "M98 P""mmu/lib/assert-endstop.g"""
echo >>{var.output} "M574 S1 " ^ global.mmu_extruder_axis ^ 0
echo >>{var.output} "M400"
echo >>{var.output} "G92 " ^ global.mmu_extruder_axis ^ 0
echo >>{var.output} "M84 " ^ global.mmu_extruder_axis
echo >>{var.output} "M98 P""mmu/lib/disengage.g"""
echo >>{var.output} "set global.mmu_extruder_loaded = false"
echo >>{var.output} "M98 P""mmu/lib/save-selector-state.g"""
echo >>{var.output} "M584 P{#move.axes - 2}"