# K1-MAX # CreateDate: 2024/01/11 [gcode_macro PRINTER_PARAM] variable_z_safe_pause: 0.0 variable_z_safe_g28: 3.0 variable_max_x_position: 300.0 variable_max_y_position: 300.0 variable_max_z_position: 300.0 variable_fans: 3 variable_auto_g29: 0 variable_fan0_min: 25 variable_fan1_min: 50 variable_fan2_min: 180 variable_fan2_speed: 0 variable_hotend_temp: 0 variable_e_min_current: 0.27 variable_cam_off_temp: 60 gcode: [gcode_macro AUTOTUNE_SHAPERS] #variable_autotune_shapers: 'ei' gcode: [gcode_macro LOAD_MATERIAL_CLOSE_FAN2] variable_fan2_value: 0 gcode: SAVE_GCODE_STATE NAME=myMoveState {% if printer['output_pin fan2'].value > 0,0%} SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value} M107 P2 {% endif %} RESTORE_E_CURRENT [gcode_macro LOAD_MATERIAL_RESTORE_FAN2] gcode: {% set fan2_value = printer['gcode_macro LOAD_MATERIAL_CLOSE_FAN2'].fan2_value|float %} RESTORE_GCODE_STATE NAME=myMoveState {% if fan2_value > 0,0%} {% set s_value = (fan2_value * 255 — printer[«gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 — printer[«gcode_macro PRINTER_PARAM"].fan2_min) %} M106 P2 S{s_value} SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0 {% endif %} SET_E_MIN_CURRENT [gcode_macro SET_E_MIN_CURRENT] gcode: {% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %} M400 SET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current} G4 P2000 [gcode_macro RESTORE_E_CURRENT] gcode: {% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %} M400 SET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current} G4 P2000 [gcode_macro LOAD_MATERIAL] gcode: LOAD_MATERIAL_CLOSE_FAN2 M109 S{printer.custom_macro.default_extruder_temp} G91 G1 E80 F180 LOAD_MATERIAL_RESTORE_FAN2 [gcode_macro QUIT_MATERIAL] gcode: SAVE_GCODE_STATE NAME=myMoveState RESTORE_E_CURRENT M109 S{printer.custom_macro.default_extruder_temp} M83 G1 E100 F300 G1 E-15 F3000 G1 E-22.4700 F2400 G1 E-6.4200 F1200 G1 E-3.2100 F720 G1 E5.0000 F356 G1 E-5.0000 F384 G1 E5.0000 F412 G1 E-5.0000 F440 G1 E5.0000 F467 G1 E-5.0000 F495 G1 E5.0000 F523 G1 E-5.0000 F3000 G1 E-15 F3000 SET_E_MIN_CURRENT RESTORE_GCODE_STATE NAME=myMoveState [gcode_macro Qmode] variable_flag: 0 variable_accel: 0 variable_accel_to_decel: 0 variable_velocity: 0 variable_square_corner_velocity: 0 variable_pressure_advance: 0.0 variable_fan0_value: 0.00 variable_fan1_value: 0.00 variable_fan2_value: 0.00 variable_speed_factor: 0 variable_max_accel: 2500 variable_max_accel_to_decel: 2500 gcode: {% set printer_state = printer.print_stats.state %} {% if printer['gcode_macro Qmode'].flag|int == 0%} {% if printer_state == «printing» or printer_state == «paused» %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor} SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0 SET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0 SET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0 SET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0 G4 P1000 # Set Motion Parameters SET_VELOCITY_LIMIT ACCEL=2500 SET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500 SET_VELOCITY_LIMIT VELOCITY=150 SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5 SET_PRESSURE_ADVANCE ADVANCE=0.05 M220 S50 {% set tmp = printer['output_pin fan0'].value * 255%} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp} {% if tmp — printer['gcode_macro PRINTER_PARAM'].fan0_min > (255 — printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2%} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan0_min + (255 — printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2%} SET_PIN PIN=fan0 VALUE={tmp} {% endif %} {% set tmp = printer['output_pin fan1'].value * 255%} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer['output_pin fan1'].value * 255} {% if tmp — printer['gcode_macro PRINTER_PARAM'].fan1_min > (255 — printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2%} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan1_min + (255 — printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2%} SET_PIN PIN=fan1 VALUE={tmp} {% endif %} {% set tmp = printer['output_pin fan2'].value * 255%} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value * 255} {% if tmp — printer['gcode_macro PRINTER_PARAM'].fan2_min > (255 — printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2%} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan2_min + (255 — printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2%} SET_PIN PIN=fan2 VALUE={tmp} {% endif %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1 SET_QMODE_FLAG FLAG=1 {% endif %} {% endif %} [gcode_macro Qmode_exit] gcode: {% set printer_state = printer.print_stats.state %} {% if printer['gcode_macro Qmode'].flag|int == 1%} {% if printer_state == «printing» or printer_state == «paused» %} SET_VELOCITY_LIMIT ACCEL={printer['gcode_macro Qmode'].accel} SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer['gcode_macro Qmode'].accel_to_decel} SET_VELOCITY_LIMIT VELOCITY={printer['gcode_macro Qmode'].velocity} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer['gcode_macro Qmode'].square_corner_velocity} SET_PRESSURE_ADVANCE ADVANCE={printer['gcode_macro Qmode'].pressure_advance} M220 S{printer['gcode_macro Qmode'].speed_factor * 100} {% set X_RUN_CUR = printer.configfile.settings['tmc2209 stepper_x'].run_current %} {% set Y_RUN_CUR = printer.configfile.settings['tmc2209 stepper_y'].run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR} SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1 SET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1 G4 P1000 {% if printer['output_pin fan0'].value! = 0%} {action_respond_info(«fan0_value = %s» % printer['gcode_macro Qmode'].fan0_value)} SET_PIN PIN=fan0 VALUE={printer['gcode_macro Qmode'].fan0_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0 {% endif %} {% if printer['output_pin fan1'].value! = 0%} {action_respond_info(«fan1_value = %s» % printer['gcode_macro Qmode'].fan1_value)} SET_PIN PIN=fan1 VALUE={printer['gcode_macro Qmode'].fan1_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0 {% endif %} {% if printer['output_pin fan2'].value! = 0%} {action_respond_info(«fan2_value = %s» % printer['gcode_macro Qmode'].fan2_value)} SET_PIN PIN=fan2 VALUE={printer['gcode_macro Qmode'].fan2_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0 {% endif %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0 SET_QMODE_FLAG FLAG=0 {% endif %} {% endif %} [gcode_macro M204] rename_existing: M204.1 gcode: # {% if printer['gcode_macro Qmode'].flag|int == 0%} {% set get_params = «» %} {% set qmode_max_accel = printer['gcode_macro Qmode'].max_accel|string %} {% if 'S' in params|upper %} {% if printer['gcode_macro Qmode'].flag|int == 1 and params.S|float > qmode_max_accel|float %} {% set get_params = (get_params + ' ' + 'S' + qmode_max_accel) %} {% else %} {% set get_params = (get_params + ' ' + 'S' + params.S) %} {% endif %} {% endif %} {% if 'P' in params|upper %} {% if printer['gcode_macro Qmode'].flag|int == 1 and params.P|float > qmode_max_accel|float %} {% set get_params = (get_params + ' ' + 'P' + qmode_max_accel) %} {% else %} {% set get_params = (get_params + ' ' + 'P' + params.P) %} {% endif %} {% endif %} {% if 'T' in params|upper %} {% if printer['gcode_macro Qmode'].flag|int == 1 and params.T|float > qmode_max_accel|float %} {% set get_params = (get_params + ' ' + 'T' + qmode_max_accel) %} {% else %} {% set get_params = (get_params + ' ' + 'T' + params.T) %} {% endif %} {% endif %} M204.1 {get_params} # {% endif %} [gcode_macro M205] gcode: {% if 'X' in params %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X} {% elif 'Y' in params %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y} {% endif %} [gcode_macro M106] gcode: {% set fans = printer[«gcode_macro PRINTER_PARAM"].fans|int %} {% set fan = 0%} {% set value = 0%} {% if params.P is defined %} {% set tmp = params.P|int %} {% if tmp < fans %} {% set fan = tmp %} {% endif %} {% endif %} {% if params.S is defined %} {% set tmp = params.S|float %} {% else %} {% set tmp = 255%} {% endif %} {% if tmp > 0%} {% if fan == 0%} {% set value = (255 — printer[«gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %} {% if printer['gcode_macro Qmode'].flag | int == 1%} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer[«gcode_macro PRINTER_PARAM"].fan0_min + value} {% if value > (255 — printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2%} {% set value = printer[«gcode_macro PRINTER_PARAM"].fan0_min + (255 — printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2%} {% else %} {% set value = printer[«gcode_macro PRINTER_PARAM"].fan0_min + value %} {% endif %} {% else %} {% set value = printer[«gcode_macro PRINTER_PARAM"].fan0_min + value %} {% endif %} {% endif %} {% if fan == 1%} {% set value = (255 — printer[«gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %} {% if printer['gcode_macro Qmode'].flag | int == 1%} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer[«gcode_macro PRINTER_PARAM"].fan1_min + value} {% if value > (255 — printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2%} {% set value = printer[«gcode_macro PRINTER_PARAM"].fan1_min + (255 — printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2%} {% else %} {% set value = printer[«gcode_macro PRINTER_PARAM"].fan1_min + value %} {% endif %} {% else %} {% set value = printer[«gcode_macro PRINTER_PARAM"].fan1_min + value %} {% endif %} {% endif %} {% if fan == 2%} {% set value = (255 — printer[«gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %} {% if printer['gcode_macro Qmode'].flag | int == 1%} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer[«gcode_macro PRINTER_PARAM"].fan2_min + value} {% if value > (255 — printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2%} {% set value = printer[«gcode_macro PRINTER_PARAM"].fan2_min + (255 — printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2%} {% else %} {% set value = printer[«gcode_macro PRINTER_PARAM"].fan2_min + value %} {% endif %} {% else %} {% set value = printer[«gcode_macro PRINTER_PARAM"].fan2_min + value %} {% endif %} {% endif %} {% endif %} {% if value >= 255%} {% set value = 255%} {% endif %} SET_PIN PIN=fan{fan} VALUE={value} [gcode_macro M107] gcode: {% set fans = printer[«gcode_macro PRINTER_PARAM"].fans|int %} {% if params.P is defined %} {% if params.P|int < fans %} SET_PIN PIN=fan{params.P|int} VALUE=0 {% else %} SET_PIN PIN=fan0 VALUE=0 {% endif %} {% else %} SET_PIN PIN=fan0 VALUE=0 SET_PIN PIN=fan2 VALUE=0 {% endif %} [gcode_macro M141] description: Set Chamber temperature with slicers gcode: {% if 'S' in params|upper %} {% if printer[«temperature_fan chamber_fan"].speed > 0,0%} SET_PIN PIN=fan1 VALUE=255 {% else %} SET_PIN PIN=fan1 VALUE=0 {% endif %} {% if params.S|int > 0%} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={params.S|default(35)} {% else %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET=35 {% if params.S|int == 0%} SET_PIN PIN=fan1 VALUE=0 {% endif %} {% endif %} {% endif %} [gcode_macro M900] gcode: {% if 'K' in params %} {% if 'E' in params %} SET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K} {% else %} SET_PRESSURE_ADVANCE ADVANCE={params.K} {% endif %} {% endif %} [delayed_gcode wait_temp] # initial_duration: 2. gcode: {% set cur_temp = printer.extruder.temperature %} {% if cur_temp|int < 40%} WAIT_TEMP_END {% else %} UPDATE_DELAYED_GCODE ID=wait_temp DURATION=5 {% endif %} [gcode_macro WAIT_TEMP_START] gcode: {action_respond_info(«wait temp start\n»)} UPDATE_DELAYED_GCODE ID=wait_temp DURATION=1 M106 P0 S255 # M106 P2 S255 [gcode_macro WAIT_TEMP_END] gcode: {action_respond_info(«wait temp end\n»)} UPDATE_DELAYED_GCODE ID=wait_temp DURATION=0 M106 P0 S0 # M106 P2 S0 [gcode_macro PRINT_CALIBRATION] # This part of the command is replaced by the application side without passing parameters gcode: CX_PRINT_LEVELING_CALIBRATION [gcode_macro FIRST_FLOOR_PAUSE_POSITION] gcode: {% set extruder_temp = printer.custom_macro.g28_ext_temp %} M104 S{extruder_temp} {% set y_park = printer.toolhead.axis_maximum.y/2%} {% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1%} G90 G1 Z2 F600 G1 X{x_park} Y{y_park} F6000 G1 Z0.2 F600 [gcode_macro ACCURATE_G28] gcode: ACCURATE_HOME_Z [gcode_macro START_PRINT] variable_prepare: 0 gcode: WAIT_TEMP_END CLEAR_PAUSE {% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %} {% set bed_temp = printer.custom_macro.default_bed_temp %} {% set extruder_temp = printer.custom_macro.default_extruder_temp %} {% if 'BED_TEMP' in params|upper and (params.BED_TEMP|float) %} {% set bed_temp = params.BED_TEMP %} {% endif %} {% if 'EXTRUDER_TEMP' in params|upper and (params.EXTRUDER_TEMP|float) %} {% set extruder_temp = params.EXTRUDER_TEMP %} {% endif %} {% if printer['gcode_macro START_PRINT'].prepare|int == 0%} {action_respond_info(«not prepare.\n»)} PRINT_PREPARE_CLEAR CX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp} CX_NOZZLE_CLEAR ACCURATE_G28 CX_PRINT_LEVELING_CALIBRATION {% else %} PRINT_PREPARE_CLEAR {% endif %} CX_PRINT_DRAW_ONE_LINE [gcode_macro PRINT_PREPARED] gcode: SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1 {action_respond_info(«print prepared»)} [gcode_macro PRINT_PREPARE_CLEAR] gcode: SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0 [gcode_macro END_PRINT_POINT_WITHOUT_LIFTING] gcode: {% if «xyz» in printer.toolhead.homed_axes %} {% set E = printer[«gcode_macro PAUSE"].extrude|float %} G91 {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info(«Extruder not hot enough»)} {% endif %} G1 Z2.0 F600 G90 {% set y_park = printer.toolhead.axis_maximum.y/2%} {% set x_park = printer.toolhead.axis_maximum.x|float — 10,0%} G1 X{x_park} Y{y_park} F30 000 {% else %} {action_respond_info(«end print xyz_axes is NULL\n»)} {% endif %} [gcode_macro END_PRINT_POINT] gcode: {% if «xyz» in printer.toolhead.homed_axes %} {% set E = printer[«gcode_macro PAUSE"].extrude|float %} {% set max_z = printer[«gcode_macro PRINTER_PARAM"].max_z_position|float %} {% set act_z = printer.toolhead.position.z|float %} {% set z_safe = 0,0%} {% if act_z < (max_z / 2) %} {% set z_safe = (max_z / 2) — act_z %} {% elif act_z < max_z %} {% set z_safe = 2,0%} {% endif %} G91 {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info(«Extruder not hot enough»)} {% endif %} G1 Z2.0 F600 G90 {% set y_park = printer.toolhead.axis_maximum.y/2%} {% set x_park = printer.toolhead.axis_maximum.x|float — 10,0%} G1 X{x_park} Y{y_park} F30 000 {% if z_safe > 2,0%} G91 {% set z_safe = z_safe — 2,0%} G1 Z{z_safe} F600 G90 {% endif %} {% else %} {action_respond_info(«end print xyz_axes is NULL\n»)} {% endif %} [gcode_macro END_PRINT] gcode: Qmode_exit EXCLUDE_OBJECT_RESET PRINT_PREPARE_CLEAR M220 S100 SET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500 TURN_OFF_HEATERS M107 P1 M107 P2 END_PRINT_POINT WAIT_TEMP_START M84 [gcode_macro FIRST_FLOOR_PAUSE] description: Pause the first floor print # change this if you need more or less extrusion variable_extrude: 2.0 gcode: ##### read E from pause macro ##### {% set E = printer[«gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %} ##### set park positon for x and y ##### # default is your max posion from your printer.cfg {% set y_park = printer.toolhead.axis_maximum.y/2%} {% set x_park = printer.toolhead.axis_maximum.x|float — 10,0%} ##### calculate save lift position ##### {% set max_z = printer[«gcode_macro PRINTER_PARAM"].max_z_position|float %} {% set act_z = printer.toolhead.position.z|float %} {% set z_safe = 0,0%} {% if act_z < (max_z — 2.0) %} {% set z_safe = 2,0%} {% elif act_z < max_z %} {% set z_safe = max_z — act_z %} {% endif %} ##### end of definitions ##### SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float} PAUSE_BASE G91 {% if «xyz» in printer.toolhead.homed_axes %} {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info(«Extruder not hot enough»)} {% endif %} G1 Z{z_safe} F600 G90 G1 X{x_park} Y{y_park} F30 000 {% else %} {action_respond_info(«Printer not homed»)} {% endif %} # save fan2 value and turn off fan2 SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer['output_pin fan2'].value} {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} {action_respond_info(«fan2_value = %s \n» % (fspeed))} # SET_PIN PIN=fan2 VALUE=0 M106 P2 S0 SET_E_MIN_CURRENT [gcode_macro FIRST_FLOOR_RESUME] description: Resume the first floor print gcode: RESTORE_E_CURRENT {% if printer['gcode_macro PRINTER_PARAM'].fan2_speed > 0%} # {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} # {action_respond_info(«fan2_value2 = %s \n» % (fspeed))} # SET_PIN PIN=fan2 VALUE={(printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 + 0.5)|int} {% set s_value = (printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 — printer['gcode_macro PRINTER_PARAM'].fan2_min) * 255 / (255 — printer['gcode_macro PRINTER_PARAM'].fan2_min)|float %} M106 P2 S{s_value} {% endif %} ##### read E from pause macro ##### {% set E = printer[«gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1,0%} #### get VELOCITY parameter if specified #### {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = «» %} {% endif %} ##### end of definitions ##### {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info(«Extruder not hot enough»)} {% endif %} M400 RESUME_BASE {get_params} [gcode_macro PAUSE] description: Pause the actual running print rename_existing: PAUSE_BASE # change this if you need more or less extrusion variable_extrude: 2.0 gcode: ##### read E from pause macro ##### {% set E = printer[«gcode_macro PAUSE"].extrude|float %} ##### set park positon for x and y ##### # default is your max posion from your printer.cfg {% set y_park = printer.toolhead.axis_maximum.y/2%} {% set x_park = printer.toolhead.axis_maximum.x|float — 10,0%} ##### calculate save lift position ##### {% set max_z = printer[«gcode_macro PRINTER_PARAM"].max_z_position|float %} {% set act_z = printer.toolhead.position.z|float %} {% set z_safe = 0,0%} {% if act_z < 48,0%} {% set z_safe = 50.0 — act_z %} {% elif act_z < (max_z — 2.0) %} {% set z_safe = 2,0%} {% elif act_z < max_z %} {% set z_safe = max_z — act_z %} {% endif %} {action_respond_info(«z_safe = %s"% (z_safe))} ##### end of definitions ##### SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float} PAUSE_BASE G91 SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target} M104 S140 {% if «xyz» in printer.toolhead.homed_axes %} {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info(«Extruder not hot enough»)} {% endif %} G1 Z{z_safe} F600 M400 G90 G1 X{x_park} Y{y_park} F30 000 {% else %} {action_respond_info(«Printer not homed»)} {% endif %} # save fan2 value and turn off fan2 SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer['output_pin fan2'].value} {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} {action_respond_info(«fan2_value = %s \n» % (fspeed))} # SET_PIN PIN=fan2 VALUE=0 M106 P2 S0 SET_E_MIN_CURRENT [gcode_macro INPUTSHAPER] gcode: SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0 G90 G28 {% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2%} {% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2%} G1 X{POSITION_X} Y{POSITION_Y} F6000 G1 Z10 F600 SHAPER_CALIBRATE CXSAVE_CONFIG SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1 [gcode_macro BEDPID] gcode: PID_CALIBRATE HEATER=heater_bed TARGET=100 SAVE_CONFIG [gcode_macro TUNOFFINPUTSHAPER] gcode: SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 #[gcode_macro RESUME] #description: Resume the actual running print #rename_existing: RESUME_BASE #gcode: # RESTORE_E_CURRENT # {% if printer['gcode_macro PRINTER_PARAM'].hotend_temp|int! = 0%} # {% if printer['gcode_macro PRINTER_PARAM'].hotend_temp|int > printer.extruder.temperature %} # M109 S{printer['gcode_macro PRINTER_PARAM'].hotend_temp|int} # {% else %} # M104 S{printer['gcode_macro PRINTER_PARAM'].hotend_temp|int} # {% endif %} # SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0 # {% endif %} # {% if printer['gcode_macro PRINTER_PARAM'].fan2_speed > 0%} # # {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} # # {action_respond_info(«fan2_value2 = %s \n» % (fspeed))} # # SET_PIN PIN=fan2 VALUE={(printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 + 0.5)|int} # {% set s_value = (printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 — printer['gcode_macro PRINTER_PARAM'].fan2_min) * 255 / (255 — printer['gcode_macro PRINTER_PARAM'].fan2_min)|float %} # M106 P2 S{s_value} # {% endif %} # {% set z_resume_move = printer['gcode_macro PRINTER_PARAM'].z_safe_pause|int %} # {% if z_resume_move > 2%} # {% set z_resume_move = z_resume_move — 2%} # G91 # G1 Z-{z_resume_move} F600 # M400 # {% endif %} # {action_respond_info(«z_resume_move = %s"% (z_resume_move))} # ##### read E from pause macro ##### # {% set E = printer[«gcode_macro PAUSE"].extrude|float + 1,0%} # #### get VELOCITY parameter if specified #### # {% if 'VELOCITY' in params|upper %} # {% set get_params = ('VELOCITY=' + params.VELOCITY) %} # {%else %} # {% set get_params = «» %} # {% endif %} # ##### end of definitions ##### # {% if printer.extruder.can_extrude|lower == 'true' %} # G91 # G1 E{E} F2100 # G90 # {% else %} # {action_respond_info(«Extruder not hot enough»)} # {% endif %} # M400 # RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description: Cancel the actual running print rename_existing: CANCEL_PRINT_BASE gcode: END_PRINT CANCEL_PRINT_BASE [gcode_macro G29] gcode: {% if 'PROBE_COUNT' in params|upper %} {% set get_count = ('PROBE_COUNT' + params.PROBE_COUNT) %} {%else %} {% set get_count = «» %} {% endif %} {% set bed_temp = printer.custom_macro.default_bed_temp %} {% set extruder_temp = printer.custom_macro.g28_ext_temp %} {% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %} {% if 'BED_TEMP' in params|upper %} {% set bed_temp = params.BED_TEMP %} {% endif %} {% if 'EXTRUDER_TEMP' in params|upper %} {% set nozzle_clear_temp = params.EXTRUDER_TEMP %} {% endif %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0 G28 BED_MESH_CLEAR NOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP={nozzle_clear_temp} BED_MAX_TEMP={bed_temp} ACCURATE_G28 M204 S5000 SET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000 BED_MESH_CALIBRATE {get_count} BED_MESH_OUTPUT {% set y_park = printer.toolhead.axis_maximum.y/2%} {% set x_park = printer.toolhead.axis_maximum.x|float — 10,0%} G1 X{x_park} Y{y_park} F2000 CXSAVE_CONFIG TURN_OFF_HEATERS SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1 # [gcode_macro G299] # gcode: # BED_MESH_CLEAR # G28 # PRTOUCH_READY # BED_MESH_CALIBRATE # BED_MESH_OUTPUT 

На сайте используются файлы cookie. Продолжая просмотр сайта, вы разрешаете их использование. Политика конфиденциальности