{ "type": "machine", "name": "fdm_bbl_3dp_001_common", "from": "system", "instantiation": "false", "printable_area": [ "0x0", "256x0", "256x256", "0x256" ], "auxiliary_fan": "1", "bed_exclude_area": [ "0x0", "28x0", "28x28", "0x28", "0x28", "8x28", "8x256", "0x256" ], "default_filament_profile": [ "Bambu PLA Basic @BBL X1C" ], "default_print_profile": "0.16mm Optimal @BBL X1C", "deretraction_speed": [ "0" ], "machine_end_gcode": "M400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-4.0 F3600 ; retract \nG91\nG1 Z3;\nM104 S0 ; turn off hotend\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nG90\nG0 X110 Y200 F3600", "extruder_colour": [ "#018001" ], "extruder_offset": [ "0x0" ], "gcode_flavor": "marlin", "inherits": "fdm_machine_common", "machine_max_acceleration_e": [ "5000", "5000" ], "machine_max_acceleration_extruding": [ "20000", "20000" ], "machine_max_acceleration_retracting": [ "5000", "5000" ], "machine_max_acceleration_travel": [ "9000", "9000" ], "machine_max_acceleration_x": [ "20000", "20000" ], "machine_max_acceleration_y": [ "20000", "20000" ], "machine_max_acceleration_z": [ "500", "200" ], "machine_max_speed_e": [ "30", "30" ], "machine_max_speed_x": [ "500", "200" ], "machine_max_speed_y": [ "500", "200" ], "machine_max_speed_z": [ "20", "20" ], "machine_max_jerk_e": [ "2.5", "2.5" ], "machine_max_jerk_x": [ "9", "9" ], "machine_max_jerk_y": [ "9", "9" ], "machine_max_jerk_z": [ "3", "3" ], "machine_min_extruding_rate": [ "0", "0" ], "machine_min_travel_rate": [ "0", "0" ], "max_layer_height": [ "0.28" ], "min_layer_height": [ "0.08" ], "printable_height": "250", "extruder_clearance_radius": "57", "extruder_clearance_max_radius": "68", "extruder_clearance_height_to_rod": "36", "extruder_clearance_height_to_lid": "90", "nozzle_volume": "118", "nozzle_diameter": [ "0.4" ], "printer_settings_id": "", "printer_technology": "FFF", "printer_variant": "0.4", "retraction_minimum_travel": [ "1" ], "retract_before_wipe": [ "70%" ], "retract_when_changing_layer": [ "1" ], "retraction_length": [ "0.8" ], "retract_length_toolchange": [ "2" ], "z_hop": [ "0.4" ], "retract_restart_extra": [ "0" ], "retract_restart_extra_toolchange": [ "0" ], "retraction_speed": [ "30" ], "deretraction_speed": [ "30" ], "nozzle_type": "hardened_steel", "silent_mode": "0", "single_extruder_multi_material": "1", "change_filament_gcode": "M620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1}\nG17\nG2 Z{max_layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nG1 X70 F21000\nG1 Y245\nG1 Y265 F3000\nM400\nM106 P1 S0\nM106 P2 S0\nM104 S[old_filament_temp]\nG1 X90 F3000\nG1 Y255 F4000\nG1 X100 F5000\nG1 X120 F15000\n\nG1 X20 Y50 F21000\nG1 Y-3\nM620.1 X F21000\nT[next_extruder]\nM620.1 E F{new_filament_e_feedrate}\n; always use highest temperature to flush\nM400\nM109 S[nozzle_temperature_range_high]\n\n{if next_extruder < 255}\nM400\n\nG92 E0\n{if flush_length_1 > 1}\n; FLUSH_START\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 1}\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 1}\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_4 > 1}\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n\nM400\nM109 S[new_filament_temp]\n\nM400\nM106 P1 S255\nM400 S3\nG1 X80 F15000\nG1 X60 F15000\nG1 X80 F15000\nG1 X60 F15000; shake to put down garbage\n\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\n\nG1 X70 F5000\nG1 X90 F3000\nG1 Y255 F4000\nG1 X100 F5000\nG1 Y265 F5000\nG1 X70 F10000\nG1 X100 F5000\nG1 X70 F10000\nG1 X100 F5000\nG1 X165 F15000; wipe and shake\nG1 Y256 ; move Y to aside, prevent collision\nM400\nG1 Z[z_after_toolchange] F3000\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\nM621 S[next_extruder]A", "layer_change_gcode": "M622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n{if timelapse_type == 0} ; timelapse without wipe tower\nM971 S11 C10 O0\n{elsif timelapse_type == 1} ; timelapse with wipe tower\nG92 E0\nG1 E-[retraction_length] F1800\nG1 X65 Y245 F12000 ; move to safe pos\nG1 Y265 F3000\nM400 P100\nM971 S11 C10 O0\nG92 E0\nG1 E[retraction_length] F300\nG1 X100 F5000\nG1 Y255\n{endif}\nM623", "machine_pause_gcode": "M400 U1\n", "wipe": [ "1" ] }