Files
Profiles/profile_sources/non-prusa-fff/QIDITechnology/printer/_X-Plus 4 + BOX_.ini
T
2026-03-19 01:54:47 +00:00

45 lines
9.4 KiB
INI

[printer:*X-Plus 4 + BOX*]
inherits = *X-Plus 4*
autoemit_temperature_commands = 0
bed_exclude_area = 0x0,0x0,0x300,0x305,50x305,50x300,0x300,0x0,0x0,293x0,293x10,305x10,305x0,293x0,0x0
bed_shape = 0x0,305x0,305x305,0x305
before_layer_gcode = TIMELAPSE_TAKE_FRAME
layer_gcode = G92 E0\nSET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}
machine_max_feedrate_z = 20
printer_model = X-Plus 4 + BOX
extruders_count = 4
cooling_tube_length = 0
cooling_tube_retraction = 0
default_filament_profile = "Generic PLA @X-Plus 4 0.4 nozzle"
default_print_profile = 0.20mm Fine @X-Plus 4 0.4 nozzle
deretract_speed = 0,0,0,0
extra_loading_move = 0
extruder_colour = #000000;#FF0000;#FFFFFF;#0009FF
extruder_offset = 0x0,0x0,0x0,0x0
max_layer_height = 0.28,0.28,0.28,0.28
min_layer_height = 0.08,0.08,0.08,0.08
multimaterial_purging = 150
nozzle_diameter = 0.4,0.4,0.4,0.4
nozzle_high_flow = 0,0,0,0
printer_variant = 0.4
retract_before_travel = 1,1,1,1
retract_before_wipe = 0%,0%,0%,0%
retract_layer_change = 1,1,1,1
retract_length = 0,0,0,0
retract_length_toolchange = 0,0,0,0
retract_lift = 0.4,0.4,0.4,0.4
retract_lift_above = 0,0,0,0
retract_lift_below = 279,279,279,279
retract_restart_extra = 0,0,0,0
retract_restart_extra_toolchange = 0,0,0,0
retract_speed = 30,30,30,30
single_extruder_multi_material = 1
start_gcode = DISABLE_BOX_HEATER\nG90\nBOX_TEMP_SET VT0=0 VT1=0 VT2=0 VT3=0\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature] CHAMBER=[chamber_temperature] EXTRUDER=[initial_tool]\nSYNC_EXTRUDER_MOTION EXTRUDER=slot[initial_tool] MOTION_QUEUE=extruder\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nM83\nM140 S[first_layer_bed_temperature]\nM104 S[first_layer_temperature]\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[first_layer_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 3} Z0\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 6}\nG1 Z1 F600\nSET_PRINT_STATS_INFO CURRENT_LAYER=1\nSYNC_EXTRUDER_MOTION EXTRUDER=slot[initial_tool] MOTION_QUEUE=extruder
toolchange_gcode = M118 Starting toolchange from slot [current_extruder] to slot [next_extruder]\nTOOL_CHANGE_START F=[current_extruder] T=[next_extruder]\nDISABLE_ALL_SENSOR\n{if current_extruder != next_extruder}\nM118 Going to cut now\nCUT_FILAMENT T=[current_extruder]\n\n{if filament_type[current_extruder] == "FLEX" or filament_type[current_extruder] == "TPU"}\n G1 X304 F24000 ; ensure cutting with flexible materials\n G1 Y20 F24000\n M400\n G1 Y4.5 F5000\n G4 P500\n G1 Y8 F9000\n G1 Y4.3 F1500\n G4 P500\n G1 Y20 F9000\n G1 Y4.5 F5000\n G4 P500\n G1 Y8 F9000\n G1 Y4.3 F1500\n G4 P500\n G1 Y20 F9000\n{endif}\n\nMOVE_TO_TRASH\n\n{if filament_type[current_extruder] == "PETG"}\nSET_HEATER_TEMPERATURE HEATER=extruder TARGET=260 WAIT=1\n{else}\nSET_HEATER_TEMPERATURE HEATER=extruder TARGET={max(temperature[next_extruder], temperature[current_extruder])} WAIT=1\n{endif}\n\nM118 Unloading [current_extruder]\nSYNC_EXTRUDER_MOTION EXTRUDER=slot[current_extruder] MOTION_QUEUE=extruder\nUNLOAD_T[current_extruder]\nTIMELAPSE_TAKE_FRAME\n\n; FLUSH_START\nG1 E1 F50\nG1 E17 F300\nG92 E0\n; FLUSH_END\n\nM400\nM118 loading [next_extruder]\nSET_HEATER_TEMPERATURE HEATER=extruder TARGET={max(temperature[next_extruder], temperature[current_extruder])} WAIT=1\nSYNC_EXTRUDER_MOTION EXTRUDER=slot[next_extruder] MOTION_QUEUE=extruder\nLOAD_T[next_extruder]\nEXTRUDER_LOAD slot=slot[next_extruder]\nM118 Loaded. Heating...\nSET_HEATER_TEMPERATURE HEATER=extruder TARGET={max(temperature[next_extruder], temperature[current_extruder])} WAIT=1\n\n; FLUSH_START\nG1 E{48.5 * 0.58} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.18} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.18} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E-2 F1800\n; FLUSH_END\n\n\n{if filament_type[current_extruder] != filament_type[next_extruder]}\nG1 Y300 F1000\nMOVE_TO_TRASH\nG1 Y300 F9000\nCLEAR_FLUSH\nCLEAR_OOZE\n\n; FLUSH_START\nG1 E{48.5 * 0.58} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.18} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.18} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E-2 F1800\n; FLUSH_END\n\nG1 Y300 F1000\nMOVE_TO_TRASH\nG1 Y300 F9000\nCLEAR_FLUSH\nCLEAR_OOZE\n\n; FLUSH_START\nG1 E{48.5 * 0.58} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.18} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.18} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E-2 F1800\n; FLUSH_END\n\nG1 Y300 F1000\nMOVE_TO_TRASH\nG1 Y300 F9000\nCLEAR_FLUSH\nCLEAR_OOZE\n\n; FLUSH_START\nG1 E{48.5 * 0.58} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.18} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.18} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E-2 F1800\n; FLUSH_END\n\nG1 Y300 F1000\nMOVE_TO_TRASH\nG1 Y300 F9000\nCLEAR_FLUSH\nCLEAR_OOZE\n\n\n; FLUSH_START\nG1 E{48.5 * 0.58} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.18} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.18} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E{48.5 * 0.02} F{min(filament_max_volumetric_speed[current_extruder], filament_max_volumetric_speed[next_extruder]) / 2.4 * 60}\nG1 E-2 F1800\n; FLUSH_END\n{endif}\n\nG92 E0\nG1 Y300 F9000\nCLEAR_FLUSH\nCLEAR_OOZE\nM118 Finished toolchange from slot [current_extruder] to slot [next_extruder]\n{else}\nM118 NOT switching between slot [current_extruder] to slot [next_extruder], skipping toolchange\nSYNC_EXTRUDER_MOTION EXTRUDER=slot[next_extruder] MOTION_QUEUE=extruder\n{endif}\nTOOL_CHANGE_END\nENABLE_ALL_SENSOR
travel_lift_before_obstacle = 0,0,0,0
travel_max_lift = 0.4,0.4,0.4,0.4
travel_ramping_lift = 1,1,1,1
travel_slope = 3,3,3,3
wipe = 1,1,1,1