Created
November 13, 2023 03:29
-
-
Save eropple/6ea44e21f2f81a602b46984154e535fd to your computer and use it in GitHub Desktop.
bambu gcode preamble/post
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
M620 S[next_extruder]A | |
M204 S9000 | |
{if toolchange_count > 1 && (z_hop_types[current_extruder] == 0 || z_hop_types[current_extruder] == 3)} | |
G17 | |
G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift | |
{endif} | |
G1 Z{max_layer_z + 3.0} F1200 | |
G1 X70 F21000 | |
G1 Y245 | |
G1 Y265 F3000 | |
M400 | |
M106 P1 S0 | |
M106 P2 S0 | |
{if old_filament_temp > 142 && next_extruder < 255} | |
M104 S[old_filament_temp] | |
{endif} | |
G1 X90 F3000 | |
G1 Y255 F4000 | |
G1 X100 F5000 | |
G1 X120 F15000 | |
G1 X20 Y50 F21000 | |
G1 Y-3 | |
{if toolchange_count == 2} | |
; get travel path for change filament | |
M620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0 | |
M620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1 | |
M620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2 | |
{endif} | |
M620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]} | |
T[next_extruder] | |
M620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]} | |
{if next_extruder < 255} | |
M400 | |
G92 E0 | |
{if flush_length_1 > 1} | |
; FLUSH_START | |
; always use highest temperature to flush | |
M400 | |
{if filament_type[next_extruder] == "PETG"} | |
M109 S220 | |
{else} | |
M109 S[nozzle_temperature_range_high] | |
{endif} | |
{if flush_length_1 > 23.7} | |
G1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part | |
G1 E{(flush_length_1 - 23.7) * 0.02} F50 | |
G1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate} | |
G1 E{(flush_length_1 - 23.7) * 0.02} F50 | |
G1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate} | |
G1 E{(flush_length_1 - 23.7) * 0.02} F50 | |
G1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate} | |
G1 E{(flush_length_1 - 23.7) * 0.02} F50 | |
G1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate} | |
{else} | |
G1 E{flush_length_1} F{old_filament_e_feedrate} | |
{endif} | |
; FLUSH_END | |
G1 E-[old_retract_length_toolchange] F1800 | |
{if (flush_length_2 > 1) && (filament_type[next_extruder]=="PLA-CF" || filament_type[next_extruder]=="PETG")} | |
M106 P1 S255 | |
M400 S3 | |
M106 P1 S0 | |
G1 X80 F15000 | |
G1 X60 F15000 | |
G1 X80 F15000 | |
G1 X60 F15000; shake to put down garbage | |
G1 X70 F5000 | |
G1 X90 F3000 | |
G1 Y255 F4000 | |
G1 X100 F5000 | |
G1 Y265 F5000 | |
G1 X70 F10000 | |
G1 X100 F5000 | |
G1 X70 F10000 | |
G1 X100 F5000 | |
G1 X165 F15000; wipe and shake | |
G1 Y245 F21000 | |
G1 X65 | |
G1 Y265 F3000 | |
{endif} | |
G1 E[old_retract_length_toolchange] F300 | |
{endif} | |
{if flush_length_2 > 1} | |
; FLUSH_START | |
G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_2 * 0.02} F50 | |
G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_2 * 0.02} F50 | |
G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_2 * 0.02} F50 | |
G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_2 * 0.02} F50 | |
G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_2 * 0.02} F50 | |
; FLUSH_END | |
G1 E-[new_retract_length_toolchange] F1800 | |
{if (flush_length_3 > 1) && (filament_type[next_extruder]=="PLA-CF" || filament_type[next_extruder]=="PETG")} | |
M106 P1 S255 | |
M400 S3 | |
M106 P1 S0 | |
G1 X80 F15000 | |
G1 X60 F15000 | |
G1 X80 F15000 | |
G1 X60 F15000; shake to put down garbage | |
G1 X70 F5000 | |
G1 X90 F3000 | |
G1 Y255 F4000 | |
G1 X100 F5000 | |
G1 Y265 F5000 | |
G1 X70 F10000 | |
G1 X100 F5000 | |
G1 X70 F10000 | |
G1 X100 F5000 | |
G1 X165 F15000; wipe and shake | |
G1 Y245 F21000 | |
G1 X65 | |
G1 Y265 F3000 | |
{endif} | |
G1 E[new_retract_length_toolchange] F300 | |
{endif} | |
{if flush_length_3 > 1} | |
; FLUSH_START | |
G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_3 * 0.02} F50 | |
G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_3 * 0.02} F50 | |
G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_3 * 0.02} F50 | |
G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_3 * 0.02} F50 | |
G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_3 * 0.02} F50 | |
; FLUSH_END | |
G1 E-[new_retract_length_toolchange] F1800 | |
{if (flush_length_4 > 1) && (filament_type[next_extruder]=="PLA-CF" || filament_type[next_extruder]=="PETG")} | |
M106 P1 S255 | |
M400 S3 | |
M106 P1 S0 | |
G1 X80 F15000 | |
G1 X60 F15000 | |
G1 X80 F15000 | |
G1 X60 F15000; shake to put down garbage | |
G1 X70 F5000 | |
G1 X90 F3000 | |
G1 Y255 F4000 | |
G1 X100 F5000 | |
G1 Y265 F5000 | |
G1 X70 F10000 | |
G1 X100 F5000 | |
G1 X70 F10000 | |
G1 X100 F5000 | |
G1 X165 F15000; wipe and shake | |
G1 Y245 F21000 | |
G1 X65 | |
G1 Y265 F3000 | |
{endif} | |
G1 E[new_retract_length_toolchange] F300 | |
{endif} | |
{if flush_length_4 > 1} | |
; FLUSH_START | |
G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_4 * 0.02} F50 | |
G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_4 * 0.02} F50 | |
G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_4 * 0.02} F50 | |
G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_4 * 0.02} F50 | |
G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate} | |
G1 E{flush_length_4 * 0.02} F50 | |
; FLUSH_END | |
{endif} | |
; FLUSH_START | |
M400 | |
M109 S[new_filament_temp] | |
G1 E2 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature | |
; FLUSH_END | |
M400 | |
G92 E0 | |
G1 E-[new_retract_length_toolchange] F1800 | |
M106 P1 S255 | |
M400 S3 | |
G1 X80 F15000 | |
G1 X60 F15000 | |
G1 X80 F15000 | |
G1 X60 F15000; shake to put down garbage | |
G1 X70 F5000 | |
G1 X90 F3000 | |
G1 Y255 F4000 | |
G1 X100 F5000 | |
G1 Y265 F5000 | |
G1 X70 F10000 | |
G1 X100 F5000 | |
G1 X70 F10000 | |
G1 X100 F5000 | |
G1 X165 F15000; wipe and shake | |
G1 Y256 ; move Y to aside, prevent collision | |
M400 | |
G1 Z{max_layer_z + 3.0} F3000 | |
{if layer_z <= (initial_layer_print_height + 0.001)} | |
M204 S[initial_layer_acceleration] | |
{else} | |
M204 S[default_acceleration] | |
{endif} | |
{else} | |
G1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000 | |
{endif} | |
M621 S[next_extruder]A |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; layer num/total_layer_count: {layer_num+1}/[total_layer_count] | |
M622.1 S1 ; for prev firware, default turned on | |
M1002 judge_flag timelapse_record_flag | |
M622 J1 | |
{if timelapse_type == 0} ; timelapse without wipe tower | |
M971 S11 C10 O0 | |
{elsif timelapse_type == 1} ; timelapse with wipe tower | |
G92 E0 | |
G1 E-[retraction_length] F1800 | |
G17 | |
G2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little | |
G1 X65 Y245 F20000 ; move to safe pos | |
G17 | |
G2 Z{layer_z} I0.86 J0.86 P1 F20000 | |
G1 Y265 F3000 | |
M400 P300 | |
M971 S11 C11 O0 | |
G92 E0 | |
G1 E[retraction_length] F300 | |
G1 X100 F5000 | |
G1 Y255 F20000 | |
{endif} | |
M623 | |
; update layer progress | |
M73 L{layer_num+1} | |
M991 S0 P{layer_num} ;notify layer change |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
M400 U1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;===== machine: P1S ======================== | |
;===== date: 20230707 ===================== | |
;===== turn on the HB fan ================= | |
M104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle | |
;===== reset machine status ================= | |
G91 | |
M17 Z0.4 ; lower the z-motor current | |
G380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed | |
G380 S2 Z-25 F300 ; | |
G1 Z5 F300; | |
G90 | |
M17 X1.2 Y1.2 Z0.75 ; reset motor current to default | |
M960 S5 P1 ; turn on logo lamp | |
G90 | |
M220 S100 ;Reset Feedrate | |
M221 S100 ;Reset Flowrate | |
M73.2 R1.0 ;Reset left time magnitude | |
M1002 set_gcode_claim_speed_level : 5 | |
M221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem | |
G29.1 Z{+0.0} ; clear z-trim value first | |
M204 S10000 ; init ACC set to 10m/s^2 | |
;===== heatbed preheat ==================== | |
M1002 gcode_claim_action : 2 | |
M140 S[bed_temperature_initial_layer_single] ;set bed temp | |
M190 S[bed_temperature_initial_layer_single] ;wait for bed temp | |
;=============turn on fans to prevent PLA jamming================= | |
{if filament_type[initial_extruder]=="PLA"} | |
{if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)} | |
M106 P3 S180 | |
{elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)} | |
M106 P3 S255 | |
{endif};Prevent PLA from jamming | |
{endif} | |
M106 P2 S100 ; turn on big fan ,to cool down toolhead | |
;===== prepare print temperature and material ========== | |
M104 S[nozzle_temperature_initial_layer] ;set extruder temp | |
G91 | |
G0 Z10 F1200 | |
G90 | |
G28 X | |
M975 S1 ; turn on | |
G1 X60 F12000 | |
G1 Y245 | |
G1 Y265 F3000 | |
M620 M | |
M620 S[initial_extruder]A ; switch material if AMS exist | |
M109 S[nozzle_temperature_initial_layer] | |
G1 X120 F12000 | |
G1 X20 Y50 F12000 | |
G1 Y-3 | |
T[initial_extruder] | |
G1 X54 F12000 | |
G1 Y265 | |
M400 | |
M621 S[initial_extruder]A | |
M620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]} | |
M412 S1 ; ===turn on filament runout detection=== | |
M109 S250 ;set nozzle to common flush temp | |
M106 P1 S0 | |
G92 E0 | |
G1 E50 F200 | |
M400 | |
M104 S[nozzle_temperature_initial_layer] | |
G92 E0 | |
G1 E50 F200 | |
M400 | |
M106 P1 S255 | |
G92 E0 | |
G1 E5 F300 | |
M109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit | |
G92 E0 | |
G1 E-0.5 F300 | |
G1 X70 F9000 | |
G1 X76 F15000 | |
G1 X65 F15000 | |
G1 X76 F15000 | |
G1 X65 F15000; shake to put down garbage | |
G1 X80 F6000 | |
G1 X95 F15000 | |
G1 X80 F15000 | |
G1 X165 F15000; wipe and shake | |
M400 | |
M106 P1 S0 | |
;===== prepare print temperature and material end ===== | |
;===== wipe nozzle =============================== | |
M1002 gcode_claim_action : 14 | |
M975 S1 | |
M106 S255 | |
G1 X65 Y230 F18000 | |
G1 Y264 F6000 | |
M109 S{nozzle_temperature_initial_layer[initial_extruder]-20} | |
G1 X100 F18000 ; first wipe mouth | |
G0 X135 Y253 F20000 ; move to exposed steel surface edge | |
G28 Z P0 T300; home z with low precision,permit 300deg temperature | |
G29.2 S0 ; turn off ABL | |
G0 Z5 F20000 | |
G1 X60 Y265 | |
G92 E0 | |
G1 E-0.5 F300 ; retrack more | |
G1 X100 F5000; second wipe mouth | |
G1 X70 F15000 | |
G1 X100 F5000 | |
G1 X70 F15000 | |
G1 X100 F5000 | |
G1 X70 F15000 | |
G1 X100 F5000 | |
G1 X70 F15000 | |
G1 X90 F5000 | |
G0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle | |
M104 S140 ; set temp down to heatbed acceptable | |
M106 S255 ; turn on fan (G28 has turn off fan) | |
M221 S; push soft endstop status | |
M221 Z0 ;turn off Z axis endstop | |
G0 Z0.5 F20000 | |
G0 X125 Y259.5 Z-1.01 | |
G0 X131 F211 | |
G0 X124 | |
G0 Z0.5 F20000 | |
G0 X125 Y262.5 | |
G0 Z-1.01 | |
G0 X131 F211 | |
G0 X124 | |
G0 Z0.5 F20000 | |
G0 X125 Y260.0 | |
G0 Z-1.01 | |
G0 X131 F211 | |
G0 X124 | |
G0 Z0.5 F20000 | |
G0 X125 Y262.0 | |
G0 Z-1.01 | |
G0 X131 F211 | |
G0 X124 | |
G0 Z0.5 F20000 | |
G0 X125 Y260.5 | |
G0 Z-1.01 | |
G0 X131 F211 | |
G0 X124 | |
G0 Z0.5 F20000 | |
G0 X125 Y261.5 | |
G0 Z-1.01 | |
G0 X131 F211 | |
G0 X124 | |
G0 Z0.5 F20000 | |
G0 X125 Y261.0 | |
G0 Z-1.01 | |
G0 X131 F211 | |
G0 X124 | |
G0 X128 | |
G2 I0.5 J0 F300 | |
G2 I0.5 J0 F300 | |
G2 I0.5 J0 F300 | |
G2 I0.5 J0 F300 | |
M109 S140 ; wait nozzle temp down to heatbed acceptable | |
G2 I0.5 J0 F3000 | |
G2 I0.5 J0 F3000 | |
G2 I0.5 J0 F3000 | |
G2 I0.5 J0 F3000 | |
M221 R; pop softend status | |
G1 Z10 F1200 | |
M400 | |
G1 Z10 | |
G1 F30000 | |
G1 X230 Y15 | |
G29.2 S1 ; turn on ABL | |
;G28 ; home again after hard wipe mouth | |
M106 S0 ; turn off fan , too noisy | |
;===== wipe nozzle end ================================ | |
;===== bed leveling ================================== | |
M1002 judge_flag g29_before_print_flag | |
M622 J1 | |
M1002 gcode_claim_action : 1 | |
G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} | |
M400 | |
M500 ; save cali data | |
M623 | |
;===== bed leveling end ================================ | |
;===== home after wipe mouth============================ | |
M1002 judge_flag g29_before_print_flag | |
M622 J0 | |
M1002 gcode_claim_action : 13 | |
G28 | |
M623 | |
;===== home after wipe mouth end ======================= | |
M975 S1 ; turn on vibration supression | |
;=============turn on fans to prevent PLA jamming================= | |
{if filament_type[initial_extruder]=="PLA"} | |
{if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)} | |
M106 P3 S180 | |
{elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)} | |
M106 P3 S255 | |
{endif};Prevent PLA from jamming | |
{endif} | |
M106 P2 S100 ; turn on big fan ,to cool down toolhead | |
M104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time | |
;===== mech mode fast check============================ | |
G1 X128 Y128 Z10 F20000 | |
M400 P200 | |
M970.3 Q1 A7 B30 C80 H15 K0 | |
M974 Q1 S2 P0 | |
G1 X128 Y128 Z10 F20000 | |
M400 P200 | |
M970.3 Q0 A7 B30 C90 Q0 H15 K0 | |
M974 Q0 S2 P0 | |
M975 S1 | |
G1 F30000 | |
G1 X230 Y15 | |
G28 X ; re-home XY | |
;===== fmech mode fast check============================ | |
;===== noozle load line =============================== | |
M975 S1 | |
G90 | |
M83 | |
T1000 | |
G1 X18.0 Y1.0 Z0.8 F18000;Move to start position | |
M109 S{nozzle_temperature_initial_layer[initial_extruder]} | |
G1 Z0.2 | |
G0 E2 F300 | |
G0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60} | |
G0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60} | |
G0 X239.5 | |
G0 E0.2 | |
G0 Y1.5 E0.700 | |
G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60} | |
M400 | |
;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing == | |
;curr_bed_type={curr_bed_type} | |
{if curr_bed_type=="Textured PEI Plate"} | |
G29.1 Z{-0.04} ; for Textured PEI Plate | |
{endif} | |
;========turn off light and wait extrude temperature ============= | |
M1002 gcode_claim_action : 0 | |
M106 S0 ; turn off fan | |
M106 P2 S0 ; turn off big fan | |
M106 P3 S0 ; turn off chamber fan | |
M975 S1 ; turn on mech mode supression |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;===== date: 20230428 ===================== | |
M400 ; wait for buffer to clear | |
G92 E0 ; zero the extruder | |
G1 E-0.8 F1800 ; retract | |
G1 Z{max_layer_z + 0.5} F900 ; lower z a little | |
G1 X65 Y245 F12000 ; move to safe pos | |
G1 Y265 F3000 | |
G1 X65 Y245 F12000 | |
G1 Y265 F3000 | |
M140 S0 ; turn off bed | |
M106 S0 ; turn off fan | |
M106 P2 S0 ; turn off remote part cooling fan | |
M106 P3 S0 ; turn off chamber cooling fan | |
G1 X100 F12000 ; wipe | |
; pull back filament to AMS | |
M620 S255 | |
G1 X20 Y50 F12000 | |
G1 Y-3 | |
T255 | |
G1 X65 F12000 | |
G1 Y265 | |
G1 X100 F12000 ; wipe | |
M621 S255 | |
M104 S0 ; turn off hotend | |
M622.1 S1 ; for prev firware, default turned on | |
M1002 judge_flag timelapse_record_flag | |
M622 J1 | |
M400 ; wait all motion done | |
M991 S0 P-1 ;end smooth timelapse at safe pos | |
M400 S3 ;wait for last picture to be taken | |
M623; end of "timelapse_record_flag" | |
M400 ; wait all motion done | |
M17 S | |
M17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom | |
{if (max_layer_z + 100.0) < 250} | |
G1 Z{max_layer_z + 100.0} F600 | |
G1 Z{max_layer_z +98.0} | |
{else} | |
G1 Z250 F600 | |
G1 Z248 | |
{endif} | |
M400 P100 | |
M17 R ; restore z current | |
G90 | |
G1 X128 Y250 F3600 | |
M220 S100 ; Reset feedrate magnitude | |
M201.2 K1.0 ; Reset acc magnitude | |
M73.2 R1.0 ;Reset left time magnitude | |
M1002 set_gcode_claim_speed_level : 0 | |
M17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment