Start G-code
;===== machine: P1S ========================
;===== date: 20231107 =====================
;===== turn on the HB fan & MC board fan = HB 팬과 MC 보드 팬을 켬 =================
M104 S75 ;HB 팬을 켜고 노즐에서 필라멘트가 흘러나오는 것을 방지하려면 압출기 온도를 75도로 설정
M710 A1 S255 ;핫엔드 온도가 50도 이상일 경우 MC 팬 속도를 자동으로 설정, 255 속도로 설정. 255=0xFF
; 온도 하락시 48도가 되면 팬이 꺼짐. 히스테리시스 구간은 2도로 추측.
;===== reset machine status = 기계 상태 재설정 =================
M290 X40 Y40 Z2.6666666 ;아기 걸음마로 이동
G91 ;상대 위치 모드 설정
M17 Z0.4 ; z-모터 전류를 0.4A로 낮춤. 원점 잡을 때 충돌 시 충격 방지
G380 S2 Z30 F300 ; G380은 G38과 동일합니다. 노즐이 핫베드 아래에 있는 것을 방지하기 위해 핫베드를 30mm 낮춤
G380 S2 Z-25 F300 ; 베드를 다시 25mm 올림
G1 Z5 F300 ;베드를 5mm 300mm/min 속도로 하강
G90 ;절대 위치 모드 설정
M17 X1.2 Y1.2 Z0.75 ; 모터 전류를 기본값으로 설정
M960 S5 P1 ; 로고 램프 켜기
G90 ;절대 위치 모드 설정 ???
M220 S100 ;이동 속도 비율 100% 재설정
M221 S100 ;유량 100% 재설정
M73.2 R1.0 ;남은 시간 1분으로 재설정
M1002 set_gcode_claim_speed_level : 5
M221 X0 Y0 Z0 ;잠재 논리 문제를 방지하기 위해 소프트 엔드스톱을 끔
G29.1 Z{+0.0} ; 먼저 z-trim 값을 지움
M204 S10000 ; 시작 가속도를 10m/s²로 설정
;===== heatbed preheat = 히트베드 예열 ====================
M1002 gcode_claim_action : 2
M140 S[bed_temperature_initial_layer_single] ;베드 온도 설정
M190 S[bed_temperature_initial_layer_single] ;베드 온도까지 대기
;=============turn on fans to prevent PLA jamming = PLA 걸림을 방지하려면 팬을 켬=================
{if filament_type[initial_extruder]=="PLA"}
{if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}
M106 P3 S180
{endif};Prevent PLA from jamming
{endif}
M106 P2 S100 ; 툴헤드를 식히기 위해 큰 팬(2)을 40% 속도로 켬
;===== prepare print temperature and material = 인쇄 온도와 재료를 준비 ==========
M104 S[nozzle_temperature_initial_layer] ;압출기 온도 설정
G91;상대 경로 설정
G0 Z10 F1200;베드를 10mm 하강
G90;절대 경로 설정
G28 X;X축 자동 호밍
M975 S1 ; 진동 억제 모드 켬
G1 X60 F12000;X축 60mm 위치로 고속 이동
G1 Y245;Y축 245mm 위치로 이동
G1 Y265 F3000;Y축 265mm 위치로 이동
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 ; ===필라멘트 런아웃 감지 켜기===
M109 S250 ;노즐을 일반 플러시 온도로 설정
M106 P1 S0 ;1번 팬 정지
G92 E0;압출기 위치를 0으로 설정
G1 E50 F200 ;압출기 필라멘트 50mm 토출
M400 ;모터 동작 완료 대기
M104 S[nozzle_temperature_initial_layer] ;압출기 온도 설정
G92 E0 ;압출기 위치를 0으로 설정
G1 E50 F200;압출기 필라멘트 50mm 토출
M400;모터 동작 완료 대기
M106 P1 S255 ;1번 팬 속도 최대로 설정
G92 E0 ;압출기 위치를 0으로 설정
G1 E5 F300 ;압출기 필라멘트 5mm 토출
M109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ;노즐 온도를 낮추고 필라멘트를 약간 쭈글쭈글하게 만듦
G92 E0 ;압출기 위치를 0으로 설정
G1 E-0.5 F300 ;압출기 필라멘트 -0.5mm 후퇴
G1 X70 F9000
G1 X76 F15000
G1 X65 F15000
G1 X76 F15000
G1 X65 F15000 ;쓰레기를 내려놓기 위한 흔들기
G1 X80 F6000
G1 X95 F15000
G1 X80 F15000
;⬆️변기 위에서 똥을 털어주는 동작
G1 X165 F15000 ;닦기 위한 흔들기
;똥구멍 대충 닦음
M400 ;모터 동작 완료 대기
M106 P1 S0 ;1번 팬 속도 끔
;===== 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 ; 똥꼬 깨끗이 닦는 위치로 이동
G0 X135 Y253 F20000 ; 노출된 강철 표면 가장자리로 이동
G28 Z P0 T300; 낮은 정밀도의 홈 z, 300도 온도 허용
G29.2 S0 ; ABL 끔
G0 Z5 F20000;베드를 5mm 하강
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 ; 노출된 강철 표면으로 이동하여 노즐을 멈춤
M104 S140 ; 온도를 히트베드 허용치로 낮춤. 호밍 중 똥칠 방지.
M106 S255 ; 팬을 켬 (G28은 팬을 끄는 기능이 있음)
M221 S; 소프트 엔드스톱 상태 푸시
M221 Z0 ;Z축 엔드스톱 끄기
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 ; 노즐 온도가 히트베드 허용 온도까지 내려가기를 기다림
G2 I0.5 J0 F3000
G2 I0.5 J0 F3000
G2 I0.5 J0 F3000
G2 I0.5 J0 F3000
;⬆️노즐 온도가 내려갈 동안 똥구멍을 베드에 비비면서 깨끗하게 닦는 동작
M221 R; 팝 소프트엔드 상태
G1 Z10 F1200
M400 ;모터 동작 완료 대기
G1 Z10
G1 F30000
G1 X230 Y15
G29.2 S1 ; ABL 켬
;G28 ; 구멍을 세게 닦은 후 다시 자동 호밍
M106 S0 ; 팬 꺼, 너무 시끄러워
;===== 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 ;교정 자료 저장
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 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
{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 ;짧고 빠른 공진 감지 테스트. Y축. 7~30 주파수, 80회 반복, 15 진동 강도
M974 Q1 S2 P0 ;결과 평가 및 적용 여부 결정
G1 X128 Y128 Z10 F20000
M400 P200
M970.3 Q0 A7 B30 C90 Q0 H15 K0 ;짧고 빠른 공진 감지 테스트. X축. 7~30 주파수, 90회 반복, 15 진동 강도
; Q0 중복은 코드 작성 실수인듯
M974 Q0 S2 P0 ;결과 평가 및 적용 여부 결정
;⬆️진동 보정 끝
M975 S1 ;결과에 따라 진동 보정 설정 적용
G1 F30000 ;30,000mm/min 속도 설정
G1 X230 Y15 ;오른쪽 전면으로 이동
G28 X ; X축 원점
;===== fmech mode fast check============================
;===== nozzle load line = 줄 출력 ==============================
M975 S1 ;진동 억제 모드 켬
G90 ;절대 위치 결정 모드
M83 ;압출기 상대 위치 모드
T1000
G1 X18.0 Y1.0 Z0.8 F18000 ;왼쪽 앞으로 이동
M109 S{nozzle_temperature_initial_layer[initial_extruder]}
G1 Z0.2
G0 E2 F300 ;300mm/min 속도로 2mm 압출
G0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60} ;가로로 길게 출력하면서 15mm 압출
G0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60} ;세로로 짧게 출력
G0 X239.5 ;왼쪽으로 0.5mm 이동
G0 E0.2 ;0.2mm 압출
G0 Y1.5 E0.700 ; 앞으로 9.5mm 이동
G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60} ;처음 위치로 이동하면서 15mm압출
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} ;텍스처 PEI 플레이트용 오프셋을 -0.04로 설정
{endif}
;========turn off light and wait extrude temperature =============
M1002 gcode_claim_action : 0
M106 S0 ;팬 끔
M106 P2 S0 ;보조 팬 끔
M106 P3 S0 ;배기 팬 끔
M975 S1 ;진동 억제 모드 켬
필라멘트 낭비
필라멘트 퓨징 작업 코드에서 빨간색 글자를 보면 50mm씩 두 번, 100mm를 토출 합니다. 상당히 많은 양의 필라멘트를 낭비하고 있습니다. 같은 필라멘트를 공급한다면 굳이 💩을 많이 쌀 필요가 없습니다.
절약하기
반으로 줄이려면 E50을 E25로 두 곳을 편집하면 됩니다. 더 줄여도 됩니다.
이후 베드 안쪽 중앙에 노즐을 비벼대는데, 노즐 표면에 묻은 똥찌꺼기를 깨끗이 닦는 것입니다. 그래야 베드 중앙에서 원점을 잡을 때 정확한 측정이 가능합니다.
공진 측정
뱀부랩 P1S 프린터에는 출력 전 공진 측정을 실행합니다. 정확히는 벨트의 장력을 측정하여 정밀 제어가 가능하도록 교정하는 것입니다. 단단하게 당겨진 벨트를 튕겨주면 우웅~하는 공진음을 들을 수 있으며, 마이크를 통해 공진 주파수를 측정하게 됩니다.
장력이 강하면 공진 주파수가 높으며, 장력이 약하면 공진 주파수가 낮습니다. 측정 결과가 자체 보정 가능한 범위를 벗어나면 사용자가 직접 벨트 장력을 조절해야 합니다.
공진 측정 끄기
mech mode fast check 항목의 색칠한 부분의 앞에 ;(세미콜론)을 추가하여 주석처리하면 됩니다.