FixIt 101 là một script Ruby duy nhất của Anton Synytsia, viết ra để biến một group bị hỏng thành Solid hợp lệ trong SketchUp: vá lỗ hổng phẳng, xoá mặt bị kẹt bên trong khối, gộp mặt đồng phẳng, xoá cạnh thừa không dính mặt nào, và nối lại các cạnh đã bị cắt vụn. Bản đang phát hành là 1.5.0, ngày ra mắt 31/08/2014. Trang SketchUcation ghi lần cập nhật cuối 01/09/2014 với 73.747 lần tải và không có bản nào mới từ đó. Plugin miễn phí, chỉ 13 KB Ruby thuần, không cần tài khoản, không cần mạng, không cần thư viện đi kèm.
Hãy đọc cảnh báo mà chính tác giả viết trong phần đầu file trước khi xem danh sách tính năng, vì nó giải thích gần hết những trải nghiệm tệ mà người dùng gặp: “Đừng dùng cách này để dọn model. Hãy dùng TT CleanUp. Plugin này được thiết kế riêng để vá lỗ và xoá mặt bên trong.” FixIt 101 là công cụ vá lỗ và xoá mặt nội bộ để group vượt được bài test Solid. Nó không phải công cụ dọn file tổng thể, và càng không phải công cụ giảm polygon.
Toàn bộ nội dung dưới đây được đọc trực tiếp từ script đính kèm — ams_FixIt.rb, file duy nhất bên trong FixIt_101.rbz — chứ không lấy từ danh sách tính năng quảng bá, nên các giới hạn ở đây là giới hạn thực.
FixIt 101 thực sự làm gì, theo đúng thứ tự
Một lần bấm menu chạy bảy lượt xử lý theo trật tự cứng trên vùng chọn, sau đó đệ quy xuống mọi group con và mọi definition của component bên trong. Thứ tự này có chủ đích: mặt trùng bị xoá trước để các lượt sau không vướng vào chúng.
- Xoá mặt trùng — nhưng chỉ trùng tuyệt đối. Với mỗi cạnh, script so sánh các mặt gặp nhau tại đó và chỉ xoá một mặt khi pháp tuyến song song và hai đường biên ngoài dùng đúng cùng tập đỉnh. Mặt chỉ chồng nhau một phần thì không bị động tới. Lượt này so từng cặp mặt trên từng cạnh, đó là lý do nó chạy chậm trên geometry dày.
- Vá lỗ bằng chính bộ tìm mặt của SketchUp. “Add faces at desired locations” không phải một tool để click: script gọi
find_facestrên mọi cạnh chỉ có đúng một mặt, và API này “tạo ra tất cả các mặt có thể tạo được từ cạnh đó”. Nghĩa là nó chỉ đóng được những vòng biên phẳng — thiếu nắp một khối hộp thì được, lỗ cong hay biên không đồng phẳng thì không. Và nó cũng sẵn sàng bít một ô trống bạn cố tình để hở nếu biên của ô đó là một vòng kín phẳng. - Xoá mặt nội bộ theo một luật nên nhớ: một mặt bị xoá khi mọi cạnh của nó đều giáp từ ba mặt trở lên. Đó đúng là rác bị kẹt trong kết quả Boolean hoặc file nhập bẩn. Nhưng đó cũng là lý do plugin phá hoại phần nội thất được vẽ có chủ ý — một tấm kệ bên trong tủ kín, hay bất kỳ vách ngăn nội bộ nào trong một Solid, đều có mọi cạnh giáp ba mặt, nên FixIt 101 xoá luôn. Chuyện được lan truyền rộng là “plugin này xoá mặt kính cửa sổ” thì sai: một tấm kính đứng riêng có cạnh giáp một hoặc hai mặt, luật trên không bao giờ đúng với nó.
- Gộp mặt đồng phẳng, nhưng chỉ khi vật liệu giống nhau. Cạnh chung bị xoá khi pháp tuyến song song, mọi đỉnh của cả hai mặt thực sự nằm trên cùng một mặt phẳng khớp được, và vật liệu mặt trước lẫn mặt sau trùng nhau ở cả hai. Hai mặt đồng phẳng khác màu vẫn đứng riêng. Lượt này chạy hai lần, vì mỗi lần gộp lại làm thay đổi quan hệ đồng phẳng ở bên cạnh.
- Xoá cạnh không dính mặt nào — đây chính là việc mà người tìm plugin xóa cạnh thừa trong SketchUp cần: những đường mồ côi còn lại sau khi xoá, explode hay Intersect Faces.
- Nối lại cạnh và curve bị cắt vụn. Hai đoạn thẳng hàng gặp nhau tại một đỉnh lẻ được hàn thành một cạnh; cung bị phân mảnh được nối lại để Follow Me và các tool chạy theo path nhận ra một curve liền mạch, còn “curve” chỉ còn một cạnh thì bị explode. Tác dụng phụ: trong lúc nối curve, script bật
softvàsmoothcho các cạnh khác tại đỉnh đó, nên vài góc cạnh sắc sẽ trở nên mềm sau khi chạy. - Báo cáo những gì đã đổi. Mỗi lần chạy kết thúc bằng một message box đếm số mặt thêm, mặt trùng bị xoá, mặt nội bộ bị xoá, mặt được gộp, cạnh bị xoá, cạnh và curve được nối, và số đối tượng bị chuyển về Layer0. Hãy đọc nó — đây là phản hồi duy nhất plugin đưa ra, và dòng cuối là dòng không ai ngờ tới.
Tác dụng phụ không ai ghi trong tài liệu: mất sạch tag
Nó nằm trong code nhưng không nằm trong bất kỳ danh sách tính năng nào: mọi cạnh, mặt, đường dẫn và điểm dẫn (construction line, construction point) mà FixIt 101 đi qua đều bị đặt layer về Layer0 — thứ SketchUp hiện nay gọi là Untagged. Group và component vẫn giữ tag của chính nó; geometry rời bên trong thì không. Nếu file của bạn làm theo đúng khuyến nghị của SketchUp là “tránh gán tag cho các đối tượng như cạnh hay mặt” thì bạn không mất gì. Nhưng với file DWG nhập vào, nơi từng đường mang theo layer CAD của nó, một lần chạy là sập toàn bộ cấu trúc đó trên vùng chọn. Hãy lưu một bản copy trước, hoặc chạy trên group nhân bản. CleanUp³ cũng làm việc này — nhưng dưới dạng một checkbox bạn tắt được.
Cả lượt chạy được bọc trong một operation duy nhất của SketchUp, nên một lần Ctrl+Z là hoàn tác hết. Ở chế độ toàn file, bước purge tùy chọn cũng nằm trong cùng operation đó.
Cách tải và cài plugin FixIt 101
- Tải file .rbz. Dùng link tải ở cuối bài, hoặc vào mục FixIt_101 trên SketchUcation PluginStore (miễn phí, cần đăng nhập). Cả hai đều là cùng một archive 1.5.0 chứa duy nhất một file Ruby.
- Cài đặt. Mở Extension Manager từ menu Extensions hoặc từ icon trên toolbar, bấm Install Extension, chọn
FixIt_101.rbzrồi Open. SketchUp sẽ cảnh báo chỉ nên cài extension từ nguồn đáng tin cậy; bấm Yes. - Kiểm tra ở menu bar, đừng tìm trong danh sách Extension Manager. Archive chỉ chứa một script rời, không đăng ký
SketchupExtension, nên nó không đưa cho SketchUp bất kỳ tên, phiên bản hay mô tả nào để hiển thị. Xác nhận cài thành công bằng cách tìm Extensions > FixIt 101 trên menu. - Không thấy gì? Đó là do loading policy. Script từ 2014 không có signature, và SketchUp từ chối nạp extension không có chữ ký khi policy để Identified Extensions Only. Mở bánh răng Settings trong Extension Manager, chuyển sang Approve Unidentified Extensions hoặc Unrestricted, rồi khởi động lại SketchUp. Hướng dẫn chi tiết: cách mở khóa plugin SketchUp bị Blocked.
- Chọn đối tượng trước khi chạy. Click group hoặc component cần sửa, Ctrl+click để chọn nhiều. Script sửa mọi thứ bên trong vùng chọn, kể cả group lồng và definition của component. Không chọn gì thì nó xử lý cả file rồi hỏi có purge luôn definition, material, layer và style không dùng hay không — tiện, nhưng là một thay đổi quá lớn để đồng ý mù.
- Chạy plugin. Vào Extensions > FixIt 101 — hoặc click phải vào vùng chọn. Script tự đăng ký thêm vào context menu mỗi khi có đối tượng được chọn, đó là đường nhanh hơn và không được ghi ở đâu cả.
- Kiểm tra bằng Entity Info. SketchUp coi một group hay component là Solid khi nó “có thể tích khép kín hữu hạn” và “không rò rỉ (thiếu mặt hoặc có mặt không gặp nhau tại một cạnh)”, và góc trên bên trái của Entity Info là nơi nó báo cho bạn. Nếu vẫn chưa phải Solid, Solid Inspector² (thomthom, giấy phép MIT, SketchUp 2014 trở lên) kiểm tra và sửa group/component solid, đồng thời chỉ rõ lỗi còn lại.
Tương thích phiên bản là điểm cần nói thật. Trang phát hành khai báo Pre-8, v2013 và v2014; suốt mười một năm tác giả không hề có tuyên bố nào về SketchUp 2017 trở lên — nên mọi khẳng định kiểu “chạy tốt trên 2025”, bao gồm cả bản cũ của bài này, đều là chưa được kiểm chứng. Điều source cho thấy là: script không gọi API nào mới hơn thọi SketchUp 8, chỉ dùng Sketchup.version để chọn đúng cách mở undo, và đăng ký lệnh vào menu tên “Plugins”, chính là menu Extensions ngày nay. Không có cổng chặn phiên bản nào; nếu không nạp được, hãy xem loading policy trước đã.
Lỗi nào dùng tool nào: file hỏng và file nặng là hai chuyện khác nhau
“Model của tôi bị lỗi” và “model của tôi nặng” là hai vấn đề khác nhau, cần hai loại tool khác nhau. Chọn sai là lý do nhiều người kết luận “plugin này chả làm gì cả”.
- Group không chịu thành Solid — có lỗ hổng, có mặt kẹt bên trong. FixIt 101. Đúng việc nó được viết ra để làm.
- Cạnh thừa, mặt trùng, geometry ẩn, cạnh đồng phẳng rải rác toàn file. CleanUp³ (thomthom, bản 3.4.6, cập nhật tháng 2/2024, hơn 252.000 lần tải). Danh sách của chính tác giả gồm xoá mặt trùng, xoá cạnh đơn lẻ, nối cạnh bị cắt, gộp mặt đồng phẳng liền nhau, gộp material giống nhau, xoá geometry ẩn và purge — mỗi thứ là một tùy chọn bạn tự bật. Nó vẫn được bảo trì; FixIt 101 thì đứng yên từ 2014.
- Cần thấy chính xác cạnh nào đang sai. Solid Inspector² — nó kiểm tra và sửa group/component solid thay vì để bạn đoán.
- File rất nặng nhưng geometry nhìn thấy lại ít. Đó là component, material và style không dùng, không phải geometry: purge những thứ không dùng. FixIt 101 cũng có đúng bước purge đó, nhưng chỉ ở chế độ toàn file.
- Chính cái mesh mới là gánh nặng — ghế scan 3D, sofa tải từ 3D Warehouse, file CAD có cả triệu tam giác. Không tool sửa lỗi nào giúp được ở đây. Gộp mặt đồng phẳng chỉ bỏ các cạnh dư thừa; nó không bớt tam giác của một mặt cong dày đặc thực sự. Việc đó cần công cụ giảm lưới, và Decimify cho SketchUp là bản miễn phí: chọn group/component, kéo slider để xem số tam giác giảm theo thời gian thực, rồi commit kết quả đè lên chính definition đó nên mọi instance trong model cập nhật cùng lúc. Bản miễn phí có đủ mọi tính năng và mọi mức giảm với tài khoản 3dshouse miễn phí, giới hạn 3 lượt xuất hoặc commit mỗi ngày UTC; bản Pro giá 30 USD trả một lần, một giấy phép dùng cho cả plugin SketchUp và bản web.
- Mesh nặng vẫn còn là file GLB hoặc STL. Làm nhẹ nó trước khi đưa vào SketchUp: giảm polygon ngay trong trình duyệt rồi mới import bản nhẹ. File được đọc và giảm lưới ngay trên máy bằng WebAssembly — không có geometry nào được upload.
Câu hỏi thường gặp
Tải plugin FixIt 101 cho SketchUp miễn phí ở đâu?
Từ link ở cuối trang này, hoặc từ mục FixIt_101 trên SketchUcation PluginStore (miễn phí, cần đăng nhập). Cả hai đều là bản 1.5.0 — bản cuối cùng tác giả phát hành, năm 2014.
Tên đúng là FixIt 101 hay “Fixlt 101”?
Là FixIt 101, với chứ I hoa. “Fixlt 101”, “fix it 101” và “fix 101” là các cách gõ sai phổ biến của cùng một plugin: file là FixIt_101.rbz và hằng số trong script ghi NAME = 'FixIt 101'.
Plugin nào xóa cạnh thừa và cạnh đồng phẳng trong SketchUp?
Cả hai, theo hai cách khác nhau. FixIt 101 xoá cạnh không dính mặt và gộp mặt đồng phẳng như một phần bắt buộc của lượt chạy duy nhất, và chỉ khi vật liệu mặt trước lẫn mặt sau trùng nhau ở cả hai mặt. CleanUp³ đưa “merge connected co-planar faces” thành một tùy chọn riêng — đó mới là thứ bạn cần nếu chỉ muốn gộp cạnh.

English