Trình tạo Puzzle Trượt tùy biến (Print-In-Place)

Tạo puzzle trượt độc đáo với thông điệp và kích thước tùy chọn bằng OpenSCAD. In print-in-place liền khung và các ô, có chỉnh gap/tolerance, chamfer giảm elephant foot, xuất STL nhanh để in mượt hơn.

👁️
2.8K
Lượt Xem
❤️
102
Lượt Thích
📥
513
Lượt Tải
Cập Nhật Apr 25, 2026
Chi tiết
Tải xuống
Bình Luận
Khoe bản in
Remix

Mô tả

Mình đã thử in vài phiên bản khác nhau của kiểu puzzle trượt này mà xui quá, không cái nào ra hồn… Có cái thì vừa mới giải thử là rã ra, có cái thì dính chặt các phần lại với nhau. Mình cũng thử chỉnh flow rate và scale model rồi mà vẫn không ăn thua. Vậy nên mình quyết định tự làm một bản của riêng mình, và cho nó tùy biến được bằng OpenSCAD!

Puzzle này in ra sẽ dính liền một khung (frame) và nhiều ô vuông (squares). Các ô vuông là phần chuyển động, còn khung là phần giữ và giới hạn chuyển động của các ô. Bạn có thể tùy chỉnh số lượng và kích thước các ô; khung sẽ tự canh kích thước theo. Phần chữ và font trên các ô cũng chỉnh được.

Thiết kế này có vài điểm giúp in dễ hơn. Elephant foot sẽ ít gặp hơn vì mặt đáy của các ô vuông bên trong đã được chamfer. Khe hở giữa các chi tiết có thể thay đổi tùy theo độ chính xác của máy in. Chiều cao liên quan trực tiếp tới độ “overlap” của các ô, nên kể cả puzzle hơi lỏng thì cũng không rớt ra nếu height đủ lớn.

Đừng ngại thử nghiệm: lỡ có làm hư gì hoặc gặp lỗi thì cứ tải lại file và làm lại từ đầu!

Yêu cầu trước khi bắt đầu

Làm quen nhanh với OpenSCAD

Khi mở file PuzzleGenerator.scad, bạn sẽ thấy code ở bên trái màn hình và phần preview thô ở bên phải. Model sẽ nhìn không đúng: nó sẽ bị phẳng và không có chữ.

Để xem bản hiển thị đúng của model, chỉ cần nhấn F6. Lưu ý là model sẽ mất thời gian render; trên máy của mình thường tầm 10–30 giây. Thêm nhiều ô hơn hoặc dùng font phức tạp sẽ làm thời gian tăng lên.

Nếu thấy ổn, dùng F7 để export model ra file STL. Nhớ thêm đuôi .stl vào tên file khi lưu.

Tùy chỉnh

Tất cả biến liên quan nằm ở đầu file. Bạn đổi giá trị cần thiết, lưu file (CTRL + S), render lại (F6), rồi export (F7).

Variable

Name

Example

Notes

cols

Columns

3

Số ô vuông theo trục X

rows

Rows

3

Số ô vuông theo trục Y

sqText

Text for Squares

Nội dung cho từng ô trong puzzle; xem chi tiết bên dưới

size

Square Size

14

Độ dài cạnh phần hiển thị của mỗi ô

height

Height

6

Chiều cao puzzle; tối thiểu 4, nhưng khuyến nghị 6

frame

Frame Width

6

Bề rộng khung; phải ít nhất bằng height

inCham

Square Chamfer

1

Kích thước chamfer áp dụng cho mỗi ô vuông bên trong

ouCham

Frame Chamfer

2

Kích thước chamfer ngoài của khung; phải nhỏ hơn một nửa height

gap

Tolerance

0.4

Khe hở giữa các phần; bắt đầu bằng kích thước nozzle rồi thử dần

textFont

Text Font

"Arial"

Font chữ; có thể thêm “:style=Bold” cho các biến thể

textSize

Text Size

6

Kích thước chữ; giảm nếu một ô có hơn 1 ký tự

textDep

Text Depth

1

Độ lõm của chữ; để số âm để chữ nổi lên

textRt

Text Shift Right

0.3

Dời chữ qua phải; số âm để dời qua trái

textUp

Text Shit Up

0.3

Dời chữ lên trên; số âm để dời xuống

textDeg

Text Rotate Degrees

45

Xoay chữ theo số độ

Font

Cẩn thận khi chọn font. Một số font có chi tiết mảnh sẽ in không đẹp. Nên chọn các font đậm (bold), dạng display, không có nét quá mỏng. Thêm “:style=Bold" vào tên font sẽ giúp rất nhiều. Ngoài ra nhớ đảm bảo textDep là bội số của layer height.

Tolerance

Trước hết, đảm bảo flow của bạn đã cân chỉnh chuẩn. E-steps cần được calibrate, và bạn phải biết nhiệt độ đúng cho loại filament đang dùng. Cố gắng giảm elephant foot nhiều nhất có thể.

Bắt đầu bằng cách đặt gap bằng kích thước nozzle. In thử một puzzle 2x2 đơn giản với ba ô và height = 6. Nếu các miếng thấy lỏng, giảm giá trị xuống 0.05. Nếu các miếng quá khít hoặc dính vào nhau, tăng giá trị lên 0.05. Nếu các ô in ra ok nhưng vẫn thấy “lắc lư,” cân nhắc tăng height. Height quyết định độ “overlap” giữa các ô và có thể làm puzzle chắc hơn.

Chữ trên các ô (Squares' Text)

sqText là một mảng (array) các chuỗi (strings) cho puzzle.

Đảm bảo mỗi chuỗi đều nằm trong dấu ngoặc kép và cách nhau bằng dấu phẩy. Nếu một chuỗi đặt là false hoặc trong mảng không đủ số chuỗi, thì các ô tương ứng sẽ không được thêm vào puzzle.

Bạn có thể dùng nhiều ký tự (vd. “10”), nhưng nhớ giảm textSize. Tùy font, bạn cũng có thể cần chỉnh textRttextUp.

Việc xuống dòng mảng này không làm thay đổi layout của puzzle: bạn phải chỉnh đúng biến colsrows để kích thước khớp.

Nhớ chừa một “lỗ” trong puzzle bằng cách đặt một phần tử của mảng thành false. Nếu không có lỗ, puzzle sẽ không trượt được.

Dưới đây là vài ví dụ sqText kèm số cột và số hàng. Nhìn kỹ định dạng trong mảng sqText và cách nó hiển thị trong puzzle sau khi render.

In ấn (Printing)

  • Nozzle: 0.4mm
  • Layer Height: 0.2mm
  • Infill: 15%

Thiết lập mặc định trên PrusaSlicer chạy rất ổn sau khi bạn chỉnh tolerance như ở trên.

Các ô có thể hơi dính ngay sau khi in xong. Chỉ cần trượt/di chuyển các ô qua lại một chút là nó sẽ trơn ra.

Nếu bạn đổi filament đúng tại độ cao bằng textDep, bạn có thể làm chữ nổi bật hơn. Mình hay đặt textDep = 1mmheight = 6mm. Sau đó mình in 1mm đầu bằng một màu, 4mm giữa bằng màu khác, và 1mm cuối quay lại màu đầu. Bạn xem mẫu puzzle đen-xanh trong hình.

Đừng quên đánh giá và chia sẻ sản phẩm bạn in ra nha!

Giấy phép

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

Creative Commons — Attribution — Noncommercial — Share Alike

CC-BY-NC-SA

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)