Sửa XY Skew cho máy in Prusa (hoặc firmware Marlin) bằng G-code
Script Python post-process cho PrusaSlicer giúp sửa XY skew bằng shear transform kiểu Marlin M852 trực tiếp trên G-code. Hỗ trợ tính skew từ góc hoặc đo hình vuông/chữ nhật, tự kiểm giới hạn trong bed. Không hỗ trợ .bgcode.
Mô tả
Dùng để làm gì
Dự án này sửa lỗi XY skew trên bản in do lệch cơ khí nhỏ ở máy in Cartesian và CoreXY mà không hỗ trợ bù skew bằng M852 của Marlin (ví dụ như máy in Prusa). Ngay cả máy in đã canh chỉnh kỹ cũng có thể bị lệch góc nhẹ giữa trục X và Y, dẫn tới lỗ khoan không thẳng hàng, chi tiết không vuông cạnh, hoặc lắp ráp bị kẹt.
Thay vì chỉnh bằng cơ khí, tool này sửa skew trực tiếp trong G-code sau khi slice.
Lưu ý: Nếu skew lớn, hãy kiểm tra độ căng belt và độ vuông của khung trước khi dựa vào sửa bằng phần mềm.
Ai không nên dùng
Nếu bạn in các món không mang tính chức năng (đồ để bàn, đồ chơi) mà không cần độ chính xác/căn thẳng hàng cho các chi tiết lớn, thì skew correction hầu như sẽ không thấy khác biệt rõ.
Nó làm gì
Đây là script post-processing cho PrusaSlicer để áp dụng shear correction lên toạ độ X, dùng đúng mô hình như bù skew M852 của Marlin.
-
Sửa XY skew mà không đổi layer height, extrusion hay thứ tự in
-
Chuyển arc về dạng linear một cách an toàn trước khi correction (cần thiết để chính xác)
-
Hỗ trợ suy ra skew từ:
-
một góc đo được
-
một hình vuông đo được
-
một hình chữ nhật đo được
-
-
Giữ mọi chuyển động nằm trong bed nhờ tự kiểm tra giới hạn (automatic bounds checking)
-
Chạy trên G-code có sẵn — không cần “hack” profile trong slicer
Kết quả là chi tiết đúng kích thước hơn, kể cả trên máy in có khung hoặc belt bị lệch nhẹ.
⚠ Binary G-code
PrusaSlicer có tuỳ chọn tạo binary G-code (.bgcode) để upload nhanh hơn trên một số máy in.
Script này không chỉnh sửa binary G-code.
Nếu phát hiện binary G-code, script sẽ dừng lại kèm thông báo lỗi rõ ràng.
Để dùng tool này, bạn nhớ tắt binary G-code và đảm bảo PrusaSlicer xuất file .gcode dạng ascii bình thường.
Cách đo skew
Bạn không cần dụng cụ đặc biệt hay đồ gá test. Có thể đo skew khá chính xác bằng một mẫu hình vuông hoặc hình chữ nhật in ra và một cây thước kẹp (calipers).
1 In mẫu test hình vuông hoặc chữ nhật
-
Dùng chi tiết 1 lớp (single-layer) hoặc infill thấp để giảm cong vênh
-
Làm càng lớn càng tốt (mỗi cạnh 100–200 mm là hợp lý)
-
In phẳng trên bed, canh cạnh song song theo X và Y
Đặt tên các góc như sau:
A -------- B
| |
| |
D -------- C
2 Đo bằng thước kẹp
Lấy các số đo sau (đơn vị mm):
Với hình vuông
-
AC — đường chéo từ A tới C
-
BD — đường chéo từ B tới D
-
AD — chiều cạnh theo hướng Y
Với hình chữ nhật
-
AC — đường chéo từ A tới C
-
BD — đường chéo từ B tới D
-
AD — chiều cạnh theo hướng Y
-
AB — chiều cạnh theo hướng X
Đo cẩn thận và lặp lại nếu cần. Chênh lệch giữa hai đường chéo thường rất nhỏ nên độ nhất quán khi đo là quan trọng.
Cách cài trong PrusaSlicer
- Tải Python script về. Đảm bảo đã cài Python 3.10 trở lên
Trong PrusaSlicer, mở:
Preferences → Other → Use binary g-code when the printer support it (bỏ chọn ô này)
Configuration → Preferences → Output options
Ở mục Post-processing scripts, thêm một trong các dòng sau:
python path/to/skew_fix_ps.py --skew-deg ANGLE
python path/to/skew_fix_ps.py --skew-from-square AC,BD,AD
python path/to/skew_fix_ps.py --skew-from-rectangle AC,BD,AD,AB
Ví dụ:
python3 /Users/xxxxx/skew_fix_ps.py --skew-deg -0.15 --shear-y-ref-mode auto --recenter-to-bed --recenter-mode clamp
Slice như bình thường — phần correction sẽ tự áp dụng khi xuất G-code.
Tương thích firmware máy in
Tool này dùng cùng mô hình correction kiểu shear như Marlin (M852), nhưng chạy hoàn toàn trên G-code.
Thực tế, nó dùng được với bất kỳ firmware tương thích Marlin, bao gồm các máy in:
-
không expose
M852 -
không cho lưu skew setting dạng persistent
-
hoặc chạy các biến thể firmware phát triển từ Marlin
Vì correction được thực hiện trên G-code sau khi slice, nên không cần chỉnh firmware.
Giấy phép
File mô hình
Chưa có bản in nào được khoe. Hãy là người đầu tiên!
Chưa có bình luận nào. Hãy là người đầu tiên!