mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-26 04:12:07 +00:00
The engine already implements prime_volume_mode (Default/Saving/Fast) but nothing in the UI could set it, leaving prime-saving unreachable on multi-sub-nozzle extruders and fast purge unreachable on printers that support it. - new PurgeModeDialog with selectable Standard/Fast or Standard/Prime Saving cards depending on printer capability - "Purge mode" sidebar button next to Flushing volumes; opens the dialog and stores the choice in the project config - printer preset-load gating: button shown only when the printer has multiple sub-nozzles per extruder or sets support_fast_purge_mode; stale project values the printer cannot honor reset to Default - enable fast purge on A2L 0.4 (support_fast_purge_mode), explicit default 0 in the common machine base - new dialog strings added to OrcaSlicer.pot Printers without these capabilities never show the button and their projects keep prime_volume_mode at Default, so slicing output is unchanged.
101 lines
23 KiB
JSON
101 lines
23 KiB
JSON
{
|
|
"type": "machine",
|
|
"name": "Bambu Lab A2L 0.4 nozzle",
|
|
"inherits": "fdm_bbl_3dp_001_common",
|
|
"from": "system",
|
|
"setting_id": "GM056",
|
|
"instantiation": "true",
|
|
"nozzle_diameter": [
|
|
"0.4"
|
|
],
|
|
"printer_model": "Bambu Lab A2L",
|
|
"printer_variant": "0.4",
|
|
"auxiliary_fan": "0",
|
|
"bed_exclude_area": [],
|
|
"default_filament_profile": [
|
|
"Bambu PLA Basic @BBL A2L 0.4 nozzle"
|
|
],
|
|
"default_print_profile": "0.20mm Standard @BBL A2L",
|
|
"enable_long_retraction_when_cut": "2",
|
|
"extruder_clearance_height_to_lid": "325",
|
|
"extruder_clearance_height_to_rod": "25",
|
|
"extruder_clearance_max_radius": "73",
|
|
"grab_length": [
|
|
"17.4"
|
|
],
|
|
"head_wrap_detect_zone": [
|
|
"226x224",
|
|
"256x224",
|
|
"256x256",
|
|
"226x256"
|
|
],
|
|
"machine_bed_mass_Y": "2700",
|
|
"machine_load_filament_time": "11",
|
|
"machine_max_acceleration_extruding": [
|
|
"12000",
|
|
"12000"
|
|
],
|
|
"machine_max_acceleration_x": [
|
|
"12000",
|
|
"12000"
|
|
],
|
|
"machine_max_acceleration_y": [
|
|
"8000",
|
|
"8000"
|
|
],
|
|
"machine_max_acceleration_z": [
|
|
"1500",
|
|
"1500"
|
|
],
|
|
"machine_max_force_Y": "29",
|
|
"machine_max_jerk_e": [
|
|
"3",
|
|
"3"
|
|
],
|
|
"machine_max_printed_mass": "2000",
|
|
"machine_max_speed_x": [
|
|
"500",
|
|
"500"
|
|
],
|
|
"machine_max_speed_y": [
|
|
"500",
|
|
"500"
|
|
],
|
|
"machine_max_speed_z": [
|
|
"30",
|
|
"30"
|
|
],
|
|
"machine_unload_filament_time": "12",
|
|
"nozzle_height": "4.76",
|
|
"nozzle_type": [
|
|
"stainless_steel"
|
|
],
|
|
"nozzle_volume": [
|
|
"92"
|
|
],
|
|
"deretract_speed_extruder_change": [
|
|
"30"
|
|
],
|
|
"printable_area": [
|
|
"0x0",
|
|
"330x0",
|
|
"330x320",
|
|
"0x320"
|
|
],
|
|
"printable_height": "325",
|
|
"printer_structure": "i3",
|
|
"retract_lift_below": [
|
|
"326"
|
|
],
|
|
"support_fast_purge_mode": "1",
|
|
"support_object_skip_flush": "1",
|
|
"upward_compatible_machine": [
|
|
"Bambu Lab H2S 0.4 nozzle"
|
|
],
|
|
"machine_start_gcode": ";M1002 set_flag extrude_cali_flag=1\n;M1002 set_flag g29_before_print_flag=1\n;M1002 set_flag build_plate_detect_flag=1\n;M1002 set_flag bed_heat_stable_wait_flag=1\n\n;======== A2L start gcode==========\n;===== 2026/05/26 =====\nT1000 O0\nM1002 gcode_claim_action : 2\n{if hold_chamber_temp_for_flat_print && (bed_temperature_initial_layer_single == 55)}\n M140 S65\n{else}\n M140 S[bed_temperature_initial_layer_single] ; heat heatbed first\n{endif}\n\nM993 A0 B0 C0 ; nozzle cam detection not allowed.\nM400\n\n;=====printer start sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A53 B9 L30 C53 D9 M30 E53 F9 N30\nM1006 A56 B9 L30 C56 D9 M30 E56 F9 N30\nM1006 A61 B9 L30 C61 D9 M30 E61 F9 N30\nM1006 A53 B9 L30 C53 D9 M30 E53 F9 N30\nM1006 A56 B9 L30 C56 D9 M30 E56 F9 N30\nM1006 A61 B18 L30 C61 D18 M30 E61 F18 N30\nM1006 W\n;=====printer start sound ===================\n\n M620 M ;enable remap\n G389\n\n;===== avoid end stop =================\n G91\n G380 S2 Z22 F1200\n G380 S2 Z-12 F1200\n G90\n;===== avoid end stop =================\n\n;===== reset machine status =================\n M204 S10000\n M630 S0 P1\n G90\n M17 D ; reset motor current to default\n M960 S5 P1 ; turn on logo lamp\n M220 S100 ;Reset Feedrate\n M221 S100 ;Reset Flowrate\n M73.2 R1.0 ;Reset left time magnitude\n G29.1 Z{+0.0} ; clear z-trim value first\n M983.1 M1\n M982.2 S1 ; turn on cog noise reduction\n M983.4 S0\n;===== reset machine status =================\n;Set the filament gear warning temperature\n{if (temperature_vitrification[initial_filament_id] <= 50)}\n {if ((filament_ids[initial_filament_id]==\"GFA05\") || (filament_ids[initial_filament_id]==\"GFA06\"))}\n M142 P1 O45; set PLASILK gear warning temperature when start\n {else}\n M142 P1 O60; set PLA/PLACF/PLAAERO/PVA/TPU gear warning temperature when start\n {endif}\n{else}\n M142 P1 O100 ; set gear warning temperature when start\n{endif}\n;===== start to heat heatbed & hotend==========\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M104 S140 A\n\n G29.2 S0 ; avoid invalid abl data\n\n;===== first homing start =====\n M1002 gcode_claim_action : 13\n M105\n G28 X Z P0 T300 W\n G150.3\n G1 Z1.3 F1200\n G150.1 F16000 ; wipe mouth to avoid filament stick to heatbed\n G90\n M400\n;===== first homing end =====\n\n\n;===== detection start =====\n;===== build_plate_detect_flag start =====\nM1002 judge_flag build_plate_detect_flag\nM622 S1\n G91\n G1 Z5 F1200\n G90\n G0 X15 F30000\n G0 Y319 F3000\n G91\n G1 Z-5 F1200\n G28 Z P0 T140\n G1 F1200\n G39.4\n G90\n G1 Z5 F1200\nM623\n;===== build_plate_detect_flag end =====\n;===== detection end =====\n\n\n;===== hotend hotbed pre-heat start =====\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]-80} A ; rise nozzle temp in advance\n\n G90\n G1 Y220 F3000 ; Put away the heated bed to prevent collisions\n\n {if hold_chamber_temp_for_flat_print && (bed_temperature_initial_layer_single == 55)}\n M190 S65\n {else}\n M190 S[bed_temperature_initial_layer_single]\n {endif}\n;===== hotend hotbed pre-heat end =====\n\n\n;===== prepare print temperature and material ==========\n M400\n M211 X0 Y0 Z0 ;turn off soft endstop\n M975 S1 ; turn on input shaping\n\n G29.2 S0 ; avoid invalid abl data\n G150.3\n{if ((filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PLA-CF\") || (filament_type[initial_no_support_filament_id] == \"PETG\") || (filament_type[initial_no_support_filament_id] == \"PETG-CF\")) && (nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2)}\nM620.10 A0 F74.8347 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\nM620.10 A1 F74.8347 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\n{else}\nM620.10 A0 F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60} H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\nM620.10 A1 F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60} H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\n{endif}\n\n M620.11 P0 L0 I[initial_no_support_filament_id] E0\n M620.11 K0 I[initial_no_support_filament_id] R0\n\n M620 S[initial_no_support_filament_id]A ; switch material if AMS exist\n M1002 gcode_claim_action : 4\n M1002 set_filament_type:UNKNOWN\n M400\n T[initial_no_support_filament_id]\n M400\n M628 S0\n M629\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M621 S[initial_no_support_filament_id]A\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M400\n M106 P1 S0\n M400\n G29.2 S1\n{if ((filament_type[initial_no_support_filament_id] == \"PETG\") || (filament_type[initial_no_support_filament_id] == \"PETG-CF\") || (filament_type[initial_no_support_filament_id] == \"TPU\") || (filament_type[initial_no_support_filament_id] == \"TPU-AMS\"))}\n G390.7 M6 G4 C3\n{else}\n G390.7 M6 G6 C3\n{endif}\n;===== prepare print temperature and material ==========\n\n\n;===== auto extrude cali start =========================\nM975 S1\nM1002 judge_flag extrude_cali_flag\n M622 J0\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n M623\n\n M622 J1\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 8\n M109 S{nozzle_temperature[initial_no_support_filament_id]}\n G90\n M83\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n M400\n M623\n\n M622 J2\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 8\n M109 S{nozzle_temperature[initial_no_support_filament_id]}\n G90\n M83\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n M400\n M623\n;===== auto extrude cali end =========================\n\n\n {if filament_type[initial_filament_id] == \"TPU\" || filament_type[initial_filament_id] == \"PVA\"}\n {else}\n M83\n G1 E-3 F1800\n M400 P500\n {endif}\n G0 Z1.3 F1200\n G150.2\n G150.1 F16000\n\n G91\n G1 X20 F12000 ; move away from the trash bin\n G90\n M400\n\n\n;===== wipe nozzle start =====\n M1002 gcode_claim_action : 14\n G150 T{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M400\n M109 S140 A\n M106 P1 S255\n G91\n G1 Z1.3 F1200\n G90\n M400 S1\n ;======== enhance brush nozzle start =====\n G150.1 F16000\n G91\n G1 Y5 F5000\n G1 X-20 F16000\n G1 Y-10 F5000\n G1 X-20 F16000\n G1 Y10 F5000\n G1 X20 F16000\n G1 Y-10 F5000\n G1 X20 F16000\n G1 Y5 F5000\n G90\n G150.1 F16000\n G150.3\n ;======== enhance brush nozzle end =====\n M106 P1 S0\n;===== wipe nozzle end =====\n\n;===== mech mode sweep start =====\n M1002 gcode_claim_action : 3\n G90\n G1 Z5 F1200\n G1 X165 Y160 F20000\n M400 P200\n M970.3 Q1 A5 K0 O3\n M970.3 Q1 B1\n M970.2 Q1 K1 W52 Z0.1 B30 ;\n M970.3 Q0 A10 K0 O1\n M970.3 Q0 B1\n M970.2 Q0 K1 W40 Z0.1 B20 ;\n M974 Q0 S2 P0\n M974 Q1 S2 P0\n M975 S1 R1 M1\n M400\n G1 X155 F3000\n G150.3\n;===== mech mode sweep end =====\n\n\n;===== bed leveling ==================================\n\n {if hold_chamber_temp_for_flat_print && (bed_temperature_initial_layer_single == 55)}\n M190 S65\n {else}\n M190 S[bed_temperature_initial_layer_single] ; ensure bed temp\n {endif}\n M109 S140 A\n\n\n {if hold_chamber_temp_for_flat_print && (bed_temperature_initial_layer_single == 55)}\n M1002 gcode_claim_action : 58\n SYNC R0 T600\n M1030 S500 ; action before has done 200s insulation\n M1030 C\n {else}\n M1002 judge_flag bed_heat_stable_wait_flag\n M622 J1\n {if (bed_temperature_initial_layer_single > 35)}\n M1002 gcode_claim_action : 54\n G29.30 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n {endif}\n M623\n {endif}\n SYNC R0 T120 ; Adjust estimated time\n\n M106 S0 ; turn off fan , too noisy\n M1002 judge_flag g29_before_print_flag\n M622 J1\n M1002 gcode_claim_action : 1\n {if hold_chamber_temp_for_flat_print && (bed_temperature_initial_layer_single == 55)}\n G29 R\n {else}\n {if (bed_temperature_initial_layer_single > 35)}\n G29 A1 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} O1 R\n {else}\n G29 A1 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} O R\n {endif}\n {endif}\n M400\n M623\n\n M622 J2\n M1002 gcode_claim_action : 1\n {if hold_chamber_temp_for_flat_print && (bed_temperature_initial_layer_single == 55)}\n G29 R\n {else}\n {if (bed_temperature_initial_layer_single > 35)}\n G29 A2 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} O1 R\n {else}\n G29 A2 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} O R\n {endif}\n {endif}\n M400\n M623\n\n M622 J0\n G28 R\n M623\n G29.2 S1\n;===== bed leveling end ================================\n\n M985.1 U0 E2\n M985.1 U1 E2\n\n M104 S{nozzle_temperature_initial_layer[initial_filament_id]} A\n G150.3 ; move to garbage can to wait for temp\n\n;===== wait temperature reaching the reference value =======\n {if hold_chamber_temp_for_flat_print && (bed_temperature_initial_layer_single == 55)}\n M190 S65\n {else}\n M190 S[bed_temperature_initial_layer_single] ; ensure bed temp\n {endif}\n\n ;========turn off light and fans =============\n M960 S1 P0 ; turn off laser\n M960 S2 P0 ; turn off laser\n M106 S0 ; turn off cooling fan\n\n;===== wait temperature reaching the reference value =======\n\n M1002 gcode_claim_action : 255\n M400\n M975 S1 ; turn on mech mode supression\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n {if curr_bed_type==\"Textured PEI Plate\"}\n {if hold_chamber_temp_for_flat_print && (bed_temperature_initial_layer_single == 55)}\n G29.1 Z{-0.03} ; for Textured PEI Plate first layer\n {else}\n G29.1 Z{-0.04} ; for Textured PEI Plate\n {endif}\n {else}\n G29.1 Z{-0.01}\n {endif}\n\n;===== nozzle load line ===============================\nM1002 gcode_claim_action : 51\n G29.2 S1 ; ensure z comp turn on\n G90\n M83\n M400 P50\n M500 D1\n M400 S3\n M109 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n G0 X145 Y0 F24000\n M400\n G130 O0 X145 Y-0.2 Z0.8 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2/2.4053} L40 E20 D4\n G90\n M83\n G1 Z0.2\n M400\n;===== nozzle load line end ===========================\nM1007 S1 C1;turn on mass estimation && clear\nM1002 gcode_claim_action : 0\n G29.99\n\n{if (filament_type[initial_no_support_filament_id] == \"TPU\")}\nM1015.3 S1 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]};enable tpu clog detect\n{else}\nM1015.3 S0;disable tpu clog detect\n{endif}\n\n{if (filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PETG\")\n || (filament_type[initial_no_support_filament_id] == \"PLA-CF\") || (filament_type[initial_no_support_filament_id] == \"PETG-CF\")}\nM1015.4 S1 K1 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} ;enable E air printing detect\n{else}\nM1015.4 S0 K0 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} ;disable E air printing detect\n{endif}\n\nM620.6 I[initial_no_support_filament_id] W1 ;enable ams air printing detect\n\nM1010 Q0 B0.005 S0.01\nM1010 Q1 B0.002 S0.01\nM1010.1 S1\n",
|
|
"machine_end_gcode": ";======== A2L end gcode ==========\n;===== 2026/04/07 =====\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\n\n; pull back filament to AMS\nM620 S65535\nT65535\nG150.2\nM621 S65535\nG150.3\nG1 Y295 F3600\nG90\nG1 Z{max_layer_z + 0.4} F900 ; lower z a little\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S5 ;wait for last picture to be taken\nM623 ;end of \"timelapse_record_flag\"\n\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\nM142 P1 Q0 ; turn off extruder autocool\n\nM220 S100 ; Reset feedrate magnitude\nM204.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\n\nM1015.3 S0 ;disable clog detect\nM1015.4 S0 K0 ;disable air printing detect\n;=====printer finish sound=========\nM17\nM400 S1\nM1006 S1\nM1006 A53 B10 L30 C53 D10 M30 E53 F10 N30 \nM1006 A57 B10 L30 C57 D10 M30 E57 F10 N30 \nM1006 A0 B15 L0 C0 D15 M0 E0 F15 N0 \nM1006 A53 B10 L30 C53 D10 M30 E53 F10 N30 \nM1006 A57 B10 L30 C57 D10 M30 E57 F10 N30 \nM1006 A0 B15 L0 C0 D15 M0 E0 F15 N0 \nM1006 A48 B10 L30 C48 D10 M30 E48 F10 N30 \nM1006 A0 B15 L0 C0 D15 M0 E0 F15 N0 \nM1006 A60 B10 L30 C60 D10 M30 E60 F10 N30 \nM1006 W\n;=====printer finish sound=========\nM400\nM18\n\nM104 S0 ; turn off hotend\nM140 S0 ; turn off bed\nM1007 S0",
|
|
"layer_change_gcode": ";======== A2L layer_change gcode ==========\n;===== 2026/04/29 ====\n; update layer progress\nM201 N1 Y[curr_y_acceleration_limit]\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change\nM1007 L1",
|
|
"time_lapse_gcode": ";======== A2L timelapse gcode ==========\n;===== 2026/05/09 ====\n{if !spiral_mode && print_sequence != \"by object\"}\n; SKIPPABLE_START\n; SKIPTYPE: timelapse\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n G1 Z{max_layer_z + 0.4} F1200\n G150.3 ; move to garbage can\n G1 Y{first_layer_center_no_wipe_tower[1]} F30000; move to safe pos\n M400\n M1004 S5 P1 ; external shutter\n M971 S11 C11 O0\n M400 P350\nM623\n; SKIPPABLE_END\n{endif}\n; SKIPPABLE_START\n; SKIPTYPE: g39_detection\n; go x0 clamping detection, clear_to_x0 = [clear_to_x0]\n{if !spiral_mode && (print_sequence != \"by object\" || clear_to_x0)}\nM1002 judge_flag g39_detection_flag\nM622 J1\n ; enable nozzle clog detect at 3rd layer\n {if layer_num == 1 || layer_num == 2}\n M400\n G390.7 M7 S1 Z2.5\n {endif}\n {if layer_num > 5 && layer_z <= 10 && layer_z > 0.4 && layer_num % 6 == 0}\n M400\n G390.7 M7 S1 Z2.5\n {endif}\n M1002 judge_flag g39_mass_exceed_flag\n M622 J1\n {if layer_num > 2}\n M400\n G390.7 M9 S1 Z2.5\n {endif}\n M623\nM623\n{endif}\n; SKIPPABLE_END",
|
|
"change_filament_gcode": ";======== A2L filament_change gcode ==========\n;===== 2026/05/26 =====\n\nM620 S[next_filament_id]A\nM204 S9000\n{if toolchange_count > 1 && (z_hop_types[current_filament_id] == 0 || z_hop_types[current_filament_id] == 3)}\nG17\nG2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\n\n;nozzle_change_gcode\n\nG1 Z{max_layer_z + 3.0} F1200\n\nM400\nM106 P1 S0\n\n{if toolchange_count == 2}\n; get travel path for change filament\n;M620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0\n;M620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1\n;M620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2\n{endif}\n\n{if ((filament_type[current_filament_id] == \"PLA\") || (filament_type[current_filament_id] == \"PLA-CF\") || (filament_type[current_filament_id] == \"PETG\") || (filament_type[current_filament_id] == \"PETG-CF\")) && (nozzle_diameter_at_nozzle_id[current_nozzle_id] == 0.2)}\nM620.10 A0 F74.8347 L[flush_length] H{nozzle_diameter_at_nozzle_id[current_nozzle_id]} T{flush_temperatures[current_filament_id]} P[old_filament_temp] S1\n{else}\nM620.10 A0 F{flush_volumetric_speeds[current_filament_id]/2.4053*60} L[flush_length] H{nozzle_diameter_at_nozzle_id[current_nozzle_id]} T{flush_temperatures[current_filament_id]} P[old_filament_temp] S1\n{endif}\n\n{if ((filament_type[next_filament_id] == \"PLA\") || (filament_type[next_filament_id] == \"PLA-CF\") || (filament_type[next_filament_id] == \"PETG\") || (filament_type[next_filament_id] == \"PETG-CF\")) && (nozzle_diameter_at_nozzle_id[next_nozzle_id] == 0.2)}\nM620.10 A1 F74.8347 L[flush_length] H{nozzle_diameter_at_nozzle_id[next_nozzle_id]} T{flush_temperatures[next_filament_id]} P[new_filament_temp] S1\n{else}\nM620.10 A1 F{flush_volumetric_speeds[next_filament_id]/2.4053*60} L[flush_length] H{nozzle_diameter_at_nozzle_id[next_nozzle_id]} T{flush_temperatures[next_filament_id]} P[new_filament_temp] S1\n{endif}\n\n{if long_retraction_when_cut}\nM620.11 P1 L0 I[current_filament_id] E-{retraction_distance_when_cut} F{max((flush_volumetric_speeds[current_filament_id]/2.4053*60), 200)}\n{else}\nM620.11 P0 L0 I[current_filament_id] E0\n{endif}\n\nM620.11 K0 I[current_filament_id] R0\n\n\nT[next_filament_id]\n\n;deretract\n{if filament_type[next_filament_id] == \"TPU\"}\n{else}\n;VG1 E4 F{max(new_filament_e_feedrate, 200)}\n;VG1 E4 F{max(new_filament_e_feedrate/2, 100)}\n{endif}\n\n\n; VFLUSH_START\n\n{if flush_length>41.5}\n;VG1 E41.5 F{min(old_filament_e_feedrate,new_filament_e_feedrate)}\n;VG1 E{flush_length-41.5} F{new_filament_e_feedrate}\n{else}\n;VG1 E{flush_length} F{min(old_filament_e_feedrate,new_filament_e_feedrate)}\n{endif}\n\nSYNC T{ceil(flush_length / 80) * 7.5 + 6.5}\n\n; compensate for heating and cooling\n{if flush_length > 0}\n{if flush_temperatures[next_filament_id] > new_filament_temp}\nSYNC T{(flush_temperatures[next_filament_id]-(new_filament_temp - filament_cooling_before_tower[next_filament_id]))/hotend_cooling_rate[filament_map[next_filament_id]-1]}\nSYNC T{(flush_temperatures[next_filament_id]-(new_filament_temp - filament_cooling_before_tower[next_filament_id]))/hotend_heating_rate[filament_map[next_filament_id]-1]}\n{else}\nSYNC T{(new_filament_temp - filament_cooling_before_tower[next_filament_id] -flush_temperatures[next_filament_id])/hotend_cooling_rate[filament_map[next_filament_id]-1]}\nSYNC T{(new_filament_temp - filament_cooling_before_tower[next_filament_id] -flush_temperatures[next_filament_id])/hotend_heating_rate[filament_map[next_filament_id]-1]}\n{endif}\n{endif}\n\n; VFLUSH_END\n\n\n\nM1002 set_filament_type:{filament_type[next_filament_id]}\n\nM400\nM83\n{if next_filament_id < 255}\nM620.10 R{retract_length_toolchange[filament_map[next_filament_id]-1]}\nM628 S0\n;VM109 S[new_filament_temp]\nM629\nM400\nM983.3 F{filament_max_volumetric_speed[next_filament_id]/2.4} A0.4 R{retract_length_toolchange[filament_map[next_filament_id]-1]}\nM400\n\nG1 Z{max_layer_z + 3.0} F3000\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[travel_acceleration]\n{endif}\n\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\n\nM621 S[next_filament_id]A\n\nM622.1 S0 ;for prev version, default skip\nM1002 judge_flag powerloss_resume_flag\nM622 J1\nM983.3 F{filament_max_volumetric_speed[next_filament_id]/2.4} A0.4 R{retract_length_toolchange[filament_map[next_filament_id]-1]}\nM400\nG1 Z{max_layer_z + 3.0} F3000\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[travel_acceleration]\n{endif}\nM1002 set_flag powerloss_resume_flag=0\nM623\n\n{if (filament_type[next_filament_id] == \"TPU\")}\nM1015.3 S1 H{nozzle_diameter_at_nozzle_id[next_nozzle_id]};enable tpu clog detect\n{else}\nM1015.3 S0;disable tpu clog detect\n{endif}\n\n{if (filament_type[next_filament_id] == \"PLA\") || (filament_type[next_filament_id] == \"PETG\")\n || (filament_type[next_filament_id] == \"PLA-CF\") || (filament_type[next_filament_id] == \"PETG-CF\")}\nM1015.4 S1 K1 H{nozzle_diameter_at_nozzle_id[next_nozzle_id]} ;enable E air printing detect\n{else}\nM1015.4 S0 K0 H{nozzle_diameter_at_nozzle_id[next_nozzle_id]} ;disable E air printing detect\n{endif}\n\n{if ((filament_type[next_filament_id] == \"PETG\") || (filament_type[next_filament_id] == \"PETG-CF\") || (filament_type[next_filament_id] == \"TPU\") || (filament_type[next_filament_id] == \"TPU-AMS\"))}\n G390.7 M6 G4 C3\n{else}\n G390.7 M6 G6 C3\n{endif}\n\nM620.6 I[next_filament_id] W1 ;enable ams air printing detect\n\n;Set the filament gear warning temperature\n{if (temperature_vitrification[next_filament_id] <= 50)}\n {if ((filament_ids[next_filament_id]==\"GFA05\") || (filament_ids[next_filament_id]==\"GFA06\"))}\n M142 P1 O45; set PLASILK gear warning temperature when filament change\n {else}\n M142 P1 O60; set PLA/PLACF/PLAAERO/PVA/TPU gear warning temperature when filament change\n {endif}\n{else}\n M142 P1 O100 ; set gear warning temperature when filament change\n{endif}\n"
|
|
}
|