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.

👁️
45
Lượt Xem
❤️
0
Lượt Thích
📥
3
Lượt Tải
Cập Nhật Feb 06, 2026
Chi tiết
Tải xuống
Bình Luận
Khoe bản in
Remix

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

  1. 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

Tác phẩm này được cấp phép theo

Creative Commons — Attribution — Noncommercial

CC-BY-NC

Yêu cầu ghi công
Remix & phái sinh Được phép
Sử dụng thương mại Không được phép

File mô hình

TẤT CẢ FILE MÔ HÌNH (1 Tập tin)
Đang tải files, vui lòng chờ...
Vui lòng đăng nhập để bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Vui lòng đăng nhập để khoe bản in của bạn.

Chưa có bản in nào được khoe. Hãy là người đầu tiên!

Remix (0)