Skip to content

Instantly share code, notes, and snippets.

@andrewcchen
Created November 16, 2024 22:58
Show Gist options
  • Save andrewcchen/f5844b51e2b1053786f0b15dca36242c to your computer and use it in GitHub Desktop.
Save andrewcchen/f5844b51e2b1053786f0b15dca36242c to your computer and use it in GitHub Desktop.
x1c-fast-start-end.gcode
; Fast No Unload
;===== date: 20240528 =====================
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
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
;=====printer finish sound=========
M17
M400 S1
M1006 S1
M1006 A0 B20 L100 C37 D20 M40 E42 F20 N60
M1006 A0 B10 L100 C44 D10 M60 E44 F10 N60
M1006 A0 B10 L100 C46 D10 M80 E46 F10 N80
M1006 A44 B20 L100 C39 D20 M60 E48 F20 N60
M1006 A0 B10 L100 C44 D10 M60 E44 F10 N60
M1006 A0 B10 L100 C0 D10 M60 E0 F10 N60
M1006 A0 B10 L100 C39 D10 M60 E39 F10 N60
M1006 A0 B10 L100 C0 D10 M60 E0 F10 N60
M1006 A0 B10 L100 C44 D10 M60 E44 F10 N60
M1006 A0 B10 L100 C0 D10 M60 E0 F10 N60
M1006 A0 B10 L100 C39 D10 M60 E39 F10 N60
M1006 A0 B10 L100 C0 D10 M60 E0 F10 N60
M1006 A0 B10 L100 C48 D10 M60 E44 F10 N100
M1006 A0 B10 L100 C0 D10 M60 E0 F10 N100
M1006 A49 B20 L100 C44 D20 M100 E41 F20 N100
M1006 A0 B20 L100 C0 D20 M60 E0 F20 N100
M1006 A0 B20 L100 C37 D20 M30 E37 F20 N60
M1006 W
M17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power
M960 S5 P0 ; turn off logo lamp
; Fast No Unload
;===== machine: X1 ====================
;===== date: 20240528 ==================
;===== start printer sound ================
M17
M400 S1
M1006 S1
M1006 A0 B10 L100 C37 D10 M60 E37 F10 N60
M1006 A0 B10 L100 C41 D10 M60 E41 F10 N60
M1006 A0 B10 L100 C44 D10 M60 E44 F10 N60
M1006 A0 B10 L100 C0 D10 M60 E0 F10 N60
M1006 A46 B10 L100 C43 D10 M70 E39 F10 N100
M1006 A0 B10 L100 C0 D10 M60 E0 F10 N100
M1006 A43 B10 L100 C0 D10 M60 E39 F10 N100
M1006 A0 B10 L100 C0 D10 M60 E0 F10 N100
M1006 A41 B10 L100 C0 D10 M100 E41 F10 N100
M1006 A44 B10 L100 C0 D10 M100 E44 F10 N100
M1006 A49 B10 L100 C0 D10 M100 E49 F10 N100
M1006 A0 B10 L100 C0 D10 M100 E0 F10 N100
M1006 A48 B10 L100 C44 D10 M60 E39 F10 N100
M1006 A0 B10 L100 C0 D10 M60 E0 F10 N100
M1006 A44 B10 L100 C0 D10 M90 E39 F10 N100
M1006 A0 B10 L100 C0 D10 M60 E0 F10 N100
M1006 A46 B10 L100 C43 D10 M60 E39 F10 N100
M1006 W
;===== 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 =================
M290 X40 Y40 Z2.6666666
G91
M17 Z0.4 ; lower the z-motor current
G380 S2 Z10 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed
G380 S2 Z-5 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
{if scan_first_layer}
;=========register first layer scan=====
;M977 S1 P60
{endif}
;=============turn on fans to prevent PLA jamming=================
{if filament_type[initial_no_support_extruder]=="PLA"}
{if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}
M106 P3 S180
{endif};Prevent PLA from jamming
M142 P1 R35 S40
{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_no_support_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_no_support_extruder]
G1 X54 F12000
G1 Y265
M400
M621 S[initial_no_support_extruder]A
M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_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 E10 F200
M400
M106 P1 S255
G92 E0
G1 E5 F300
M109 S{nozzle_temperature_initial_layer[initial_no_support_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_no_support_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 X128 Y128
G29.2 S1 ; turn on ABL
;G28 ; home again after hard wipe mouth
M106 S0 ; turn off fan , too noisy
;===== wipe nozzle end ================================
;===== check scanner clarity ===========================
;G1 X128 Y128 F24000
;G28 Z P0
;M972 S5 P0
;G1 X230 Y15 F24000
;===== check scanner clarity 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_no_support_extruder]=="PLA"}
{if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}
M106 P3 S180
{endif};Prevent PLA from jamming
M142 P1 R35 S40
{endif}
M106 P2 S100 ; turn on big fan ,to cool down toolhead
M104 S{nozzle_temperature_initial_layer[initial_no_support_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
;===== mech mode fast check============================
{if scan_first_layer}
;start heatbed scan====================================
;M976 S2 P1
;G90
;G1 X128 Y128 F20000
;M976 S3 P2 ;register void printing detection
{endif}
;===== nozzle load line ===============================
M1002 judge_flag extrude_cali_flag
M622 J1
M975 S1
G90
M83
T1000
G1 X18.0 Y1.0 Z0.8 F18000;Move to start position
M109 S{nozzle_temperature[initial_no_support_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 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
M400
M623
;===== 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}
;===== draw extrinsic para cali paint =================
M1002 judge_flag extrude_cali_flag
M622 J1
M1002 gcode_claim_action : 8
T1000
G0 F1200.0 X231 Y15 Z0.2 E0.741
G0 F1200.0 X226 Y15 Z0.2 E0.275
G0 F1200.0 X226 Y8 Z0.2 E0.384
G0 F1200.0 X216 Y8 Z0.2 E0.549
G0 F1200.0 X216 Y1.5 Z0.2 E0.357
G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X48.0 Y14 E0.92 F1200.0
G0 X35.0 Y6.0 E1.03 F1200.0
;=========== extruder cali extrusion ==================
T1000
M83
{if default_acceleration > 0}
{if outer_wall_acceleration > 0}
M204 S[outer_wall_acceleration]
{else}
M204 S[default_acceleration]
{endif}
{endif}
G0 X35.000 Y6.000 Z0.300 F30000 E0
G1 F1500.000 E0.800
M106 S0 ; turn off fan
G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X187 Z0
G1 F1500.000 E-0.800
G0 Z1
G0 X180 Z0.3 F18000
M900 L1000.0 M1.0
M900 K0.040
G0 X45.000 F30000
G0 Y8.000 F30000
G1 F1500.000 E0.800
G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 F1500.000 E-0.800
G1 X183 Z0.15 F30000
G1 X185
G1 Z1.0
G0 Y6.000 F30000 ; move y to clear pos
G1 Z0.3
M400
G0 X45.000 F30000
M900 K0.020
G0 X45.000 F30000
G0 Y10.000 F30000
G1 F1500.000 E0.800
G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 F1500.000 E-0.800
G1 X183 Z0.15 F30000
G1 X185
G1 Z1.0
G0 Y6.000 F30000 ; move y to clear pos
G1 Z0.3
M400
G0 X45.000 F30000
M900 K0.000
G0 X45.000 F30000
G0 Y12.000 F30000
G1 F1500.000 E0.800
G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 F1500.000 E-0.800
G1 X183 Z0.15 F30000
G1 X185
G1 Z1.0
G0 Y6.000 F30000 ; move y to clear pos
G1 Z0.3
G0 X45.000 F30000 ; move to start point
M623 ; end of "draw extrinsic para cali paint"
;M1002 judge_flag extrude_cali_flag
;M622 J0
; G0 X231 Y1.5 F30000
; G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
;M623
M104 S140
;=========== laser and rgb calibration ===========
M1002 judge_flag extrude_cali_flag
M622 J1
M400
M18 E
M500 R
M973 S3 P14
G1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos
T1100
G1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos
M400 P100
M960 S1 P1
M400 P100
M973 S6 P0; use auto exposure for horizontal laser by xcam
M960 S0 P0
G1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos
M960 S2 P1
M400 P100
M973 S6 P1; use auto exposure for vertical laser by xcam
M960 S0 P0
M623
;=========== handeye calibration ======================
M1002 judge_flag extrude_cali_flag
M622 J1
M973 S3 P1 ; camera start stream
M400 P500
M973 S1
G0 F6000 X228.500 Y4.500 Z0.000
M960 S0 P1
M973 S1
M400 P800
M971 S6 P0
M973 S2 P0
M400 P500
G0 Z0.000 F12000
M960 S0 P0
M960 S1 P1
G0 X221.00 Y4.50
M400 P200
M971 S5 P1
M973 S2 P1
M400 P500
M960 S0 P0
M960 S2 P1
G0 X228.5 Y11.0
M400 P200
M971 S5 P3
G0 Z0.500 F12000
M960 S0 P0
M960 S2 P1
G0 X228.5 Y11.0
M400 P200
M971 S5 P4
M973 S2 P0
M400 P500
M960 S0 P0
M960 S1 P1
G0 X221.00 Y4.50
M400 P500
M971 S5 P2
M963 S1
M400 P1500
M964
T1100
G0 F6000 X228.500 Y4.500 Z0.000
M960 S0 P1
M973 S1
M400 P800
M971 S6 P0
M973 S2 P0
M400 P500
G0 Z0.000 F12000
M960 S0 P0
M960 S1 P1
G0 X221.00 Y4.50
M400 P200
M971 S5 P1
M973 S2 P1
M400 P500
M960 S0 P0
M960 S2 P1
G0 X228.5 Y11.0
M400 P200
M971 S5 P3
G0 Z0.500 F12000
M960 S0 P0
M960 S2 P1
G0 X228.5 Y11.0
M400 P200
M971 S5 P4
M973 S2 P0
M400 P500
M960 S0 P0
M960 S1 P1
G0 X221.00 Y4.50
M400 P500
M971 S5 P2
M963 S1
M400 P1500
M964
T1100
G1 Z3 F3000
M400
M500 ; save cali data
M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.
T1100
M400 P400
M960 S0 P0
G0 F30000.000 Y10.000 X65.000 Z0.000
M400 P400
M960 S1 P1
M400 P50
M969 S1 N3 A2000
G0 F360.000 X181.000 Z0.000
M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040
M400 P100
G0 F20000
G0 Z1 ; rise nozzle up
T1000 ; change to nozzle space
G0 X45.000 Y4.000 F30000 ; move to test line pos
M969 S0 ; turn off scanning
M960 S0 P0
G1 Z2 F20000
T1000
G0 X45.000 Y4.000 F30000 E0
M109 S{nozzle_temperature[initial_no_support_extruder]}
G0 Z0.3
G1 F1500.000 E3.600
G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
; see if extrude cali success, if not ,use default value
M1002 judge_last_extrude_cali_success
M622 J0
M400
M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}
M623
G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}
G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
M973 S4
M623
;========turn off light and wait extrude temperature =============
M1002 gcode_claim_action : 0
M973 S4 ; turn off scanner
M400 ; wait all motion done before implement the emprical L parameters
;M900 L500.0 ; Empirical parameters
M109 S[nozzle_temperature_initial_layer]
M960 S1 P0 ; turn off laser
M960 S2 P0 ; turn off laser
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
G90
M83
T1000
G1 E{-retraction_length[initial_no_support_extruder]} F1800
G1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position
G1 E{retraction_length[initial_no_support_extruder]} F1800
M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}
G0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}
G0 Y128 E6.4
G0 X252.5
G0 Y252.5 E6.4
G0 X128 E6.4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment