CleanUp³ (tác giả ThomThom) là plugin dọn rác SketchUp miễn phí: xóa nét thừa không dính mặt nào, nối lại cạnh bị chẻ vụn, xóa mặt trùng, purge component/material không dùng, và gộp các mặt đồng phẳng bị chia vụn thành một mặt sạch. Bản mới nhất là 3.4.6, ra ngày 24/02/2024 — đến nay vẫn là bản cuối. Biết trước một điều cho đúng kỳ vọng: CleanUp³ xóa và gộp, nó không giảm lưới. Mặt cong hay mesh nhập từ bên ngoài chạy xong vẫn đúng số tam giác như lúc đầu.
Plugin CleanUp³ SketchUp — thông tin và tải về
- Phiên bản 3.4.6, tác giả đánh dấu ngày 24/02/2024. Trang SketchUcation PluginStore ghi cùng phiên bản, cùng ngày, với 252.379 lượt tải.
- Tác giả: ThomThom (Thomas Thomassen). Giá: miễn phí. Mã nguồn công khai, giấy phép MIT.
- Extension Warehouse ghi hỗ trợ SketchUp 2022, 2023, 2024, 2025, 2026 — Windows và Mac, chỉ tiếng Anh.
- TT_Lib² là thư viện bắt buộc và KHÔNG đi kèm trong file cài. File lõi của CleanUp³ mở đầu bằng
require 'TT_Lib2/core'; nếu lệnh đó thất bại bạn chỉ nhận được một hộp thoại tên “TT_Lib² Not Installed” trỏ về trang tải thư viện. Cài TT_Lib² trước, CleanUp³ sau. - CleanUp³ không có toolbar. Dòng “Menus & Toolbars: Plugins » CleanUp” trên Warehouse là tất cả — mã nguồn chỉ tạo menu, không tạo một nút toolbar nào. Từ SketchUp 2015 menu “Plugins” cũ chính là menu Extensions (Ruby API vẫn nhận tên cũ để tương thích), nên hãy tìm ở Extensions » CleanUp³.
Cài xong mà không thấy gì: hai cửa chặn âm thầm
Hai lỗi này nhìn từ ngoài giống nhau y hệt: Extension Manager vẫn liệt kê plugin, vẫn bật, mà không menu nào có CleanUp³.
- Thiếu TT_Lib². Bạn được một hộp thoại “TT_Lib² Not Installed”, nội dung trang chỉ vỏn vẹn “Please download and install the latest release” kèm link tải thư viện. Đóng nó rồi thì trong phiên đó nó không hiện lại.
- TT_Lib² quá cũ. Toàn bộ CleanUp³ nằm trong một điều kiện duy nhất:
TT::Lib.compatible?('2.11.0', 'CleanUp³'). Thư viện cũ hơn thì cả file bị bỏ qua — không menu, không lỗi, không cảnh báo. Lưu ý trang Warehouse vẫn ghi yêu cầu là “TT_Lib² — 2.10.0” trong khi code 3.4.6 đòi 2.11.0; tin code và cài bản TT_Lib² hiện tại (2.16.0). - SketchUp 2022 là trường hợp trớ trêu. CleanUp³ ghi hỗ trợ 2022–2026, nhưng trang TT_Lib² giờ ghi 2023–2027. Nếu Warehouse không cài được thư viện cho bản 2022 của bạn thì CleanUp³ không thể load.
Từng lệnh trong menu làm gì
Extensions » CleanUp³ có tám mục:
- Clean… — mở hộp thoại thiết lập rồi chạy những gì bạn tích.
- Clean with Last Settings — chạy lại đúng thiết lập đã lưu, không mở hộp thoại. Đây mới là “dọn một click” thật, và là mục đáng gán shortcut.
- Erase Hidden Geometry, Erase Stray Edges, Geometry to Layer0, Merge Faces, Merge Materials, Repair Edges — sáu lệnh chỉ làm một việc, bỏ qua mọi thiết lập còn lại.
Scope là thiết lập duy nhất không bao giờ được ghi nhứ. Nó được đánh dấu không lưu và tính lại theo việc bạn đang làm: đang chọn gì → Selected; không chọn gì nhưng đang ở trong group/component → Local; còn lại → Model. Nghĩa là “Clean with Last Settings” dùng lại tùy chọn nhưng không dùng lại phạm vi — nháy đúp vào trong component trước thì lượt dọn chỉ gỏn trong đó. Kéo theo một chi tiết: việc sửa tên component trùng chỉ chạy ở phạm vi Model.
Toàn bộ thiết lập trong hộp thoại CleanUp³ và mặc định
Hộp thoại là cửa sổ 290 × 785 pixel dựng trên WebDialog cũ của SketchUp — vì vậy nó trông cũ. Nó kéo giãn được và SketchUp nhứ kích thước bạn để lại, nhưng nó được tạo với chức năng cuộn bị tắt — nên trên màn hình cao dưới khoảng 800 pixel, hoặc sau khi bạn thu nhỏ nó, mấy dòng cuối thành không với tới được chứ không cuộn được. Hãy kéo cho cửa sổ cao lên.

General
- Scope — Model / Local / Selected như trên.
- Validate Results (bật) — chạy tiếp công cụ Fix Problems của chính SketchUp. Tooltip ghi “Recommended! (Windows only. OSX users should run Fix Problems manually.)” và code đúng như vậy: trên Mac tích này không làm gì. Nó cũng bắt buộc chạy ngoài operation dọn dẹp, nên tạo thêm một bước undo riêng.
- Show Statistics (bật) — hộp tổng kết cuối lượt: số cạnh giảm, số mặt giảm, số component/layer/material/style đã purge, số definition bị khóa đã bỏ qua, thời gian chạy. Tắt tích thì báo cáo đó vẫn in ra Ruby Console.
Optimisations
- Purge Unused (bật) — components, layers/tags, materials, styles. Nó chạy hai lần trong một lượt: trước khi xử geometry và một lần nừa ở cuối, vì gộp mặt có thể làm thêm component trở nên không dùng.
- Erase Hidden Geometry (tắt) — tắt sẵn là đúng: đối tượng ẩn thường được ẩn có ý.
- Erase Duplicate Faces (tắt) — tooltip mở đầu bằng “Warning: Very slow!”. Nó dò các mặt nằm trùng chỗ nhau, nên chỉ bật khi bạn biết file có mặt chồng. Khi bật, bước gộp mặt đồng phẳng sẽ chạy thêm một lần sau nó.
Layers
- Geometry to Layer0 (tắt) — đưa cạnh và mặt rời về Layer0/Untagged. Nó chuyển trạng thái hiển thị trước: thứ đang vô hình chỉ vì tag bị tắt sẽ được đặt hidden rõ ràng rồi mới xóa tag, nên bật tag lại sau này cũng không làm chúng sống lại.
Materials
- Merge Identical Materials (tắt) — mục này bỏ qua Scope và xử toàn bộ material trong model, đúng như tooltip cảnh báo. “Giống nhau” nghĩa là cùng màu, cùng độ trong, cùng loại material, và với texture thì cùng tên file cộng cùng chiều rộng, chiều cao và kích thước ảnh — nên hai bản của cùng một texture nhưng scale khác nhau sẽ được giữ nguyên.
- Ignore Attributes (bật) — bỏ qua attribute dictionary khi so sánh. Đó là nơi các engine render lưu dữ liệu, nên nếu material của bạn mang thiết lập V-Ray hay Enscape thì hãy tắt tích này.
Coplanar Faces
- Merge Coplanar Faces (bật) — việc chính: xóa cạnh giữa hai mặt nằm cùng một mặt phẳng.
- Ignore Normals (tắt) — bật thì hai mặt quay ngược hướng nhau vẫn gộp được.
- Ignore Materials (tắt) — bật thì hai mặt khác material vẫn gộp.
- Ignore UV (bật — mặc định dễ gây bất ngờ) — đang bật thì mặt có texture vẫn gộp dù bản đồ texture hai bên không ăn khớp qua cạnh, nên vân gạch hay texture đặt thủ công theo từng mặt có thể nhảy thấy rõ. Tắt nó khi độ khớp texture quan trọng hơn số mặt: khi đó CleanUp³ so UV ở cả hai đầu cạnh, cả mặt trước và mặt sau, trước khi xóa.
Edges
- Repair Split Edges (bật) — nối lại một cạnh bị SketchUp cắt thành nhiều đoạn thẳng hàng.
- Erase Stray Edges (bật) — cạnh không dính mặt nào, cộng trường hợp lạ là cạnh dính cùng một mặt nhiều lần. Cạnh nằm trên mặt phẳng cắt của component có khả năng cắt tường được bảo vệ, nên lỗ cửa đi, cửa sổ không bị phá.
- Remove Edge Materials (tắt) — xóa material đã tô trực tiếp lên cạnh.
- Smooth Edges by Angle (0 = tắt) — lớn hơn 0 thì làm soft + smooth mọi cạnh hai mặt có góc giữa hai pháp tuyến nhỏ hơn số đọ đó. Chú ý quy ước: góc đo giữa hai pháp tuyến, nên 0° là phẳng tuyệt đối và số càng lớn càng làm mềm nhiều nếp gấp hơn.
Vì sao vài cạnh “thừa” mãi không biến mất
Merge Coplanar Faces không quét theo bề mặt. Nó xét từng cạnh một và chỉ xóa khi đủ tất cả điều kiện sau, theo thứ tự này:
- Cạnh có đúng hai mặt. Ba mặt chung một cạnh — tường ăn vào sàn, góc trong, mọi chỗ hình chữ T — là giữ lại ngay.
- Hai mặt quay cùng hướng (chỉ cần song song nếu Ignore Normals đang bật).
- Chúng không phải hai mặt dựng trên cùng một tập đỉnh.
- Không mặt nào là mảnh vụn có toàn bộ cạnh biên song song — chạm cố ý để tránh một lỗi của SketchUp làm mất geometry khi gộp những mặt như vậy.
- Material mặt trước và mặt sau khớp nhau ở cả hai mặt, và — trừ khi Ignore UV bật — texture liên tục qua cạnh.
- Mọi đỉnh của hai mặt nằm vừa đúng trên một mặt phẳng.
Riêng điều 1 đã giải thích phần lớn cạnh còn sót: cạnh bạn muốn xóa đang đỡ một mặt thứ ba ở đâu đó dọc theo nó.
Cả lượt dọn chỉ là một bước undo
Từ lần purge đầu đến bước cuối, mọi thứ chạy trong một operation duy nhất của SketchUp, nên một lần Ctrl+Z (Cmd+Z) là model trị lại như cũ. Ngoại lệ duy nhất là Validate Results vì nó chạy ngoài operation đó và cần thêm một lần undo. Dù vậy vẫn nên lưu file trước: dọn một model lớn không nhanh, và Erase Duplicate Faces vốn chậm theo thiết kế.
Đối tượng bị khóa được bỏ qua — theo definition, không theo instance
CleanUp³ thu thập các group/component đang bị khóa trước khi chạy và báo số đó ở dòng “Skipped Locked Definitions”. Cơ chế này đáng biết vì nó có hai mặt: khóa được giải theo từng component definition, và mọi thứ lồng bên trong một definition bị khóa cũng được đánh dấu khóa theo. Khóa một instance là mọi instance của component đó trong model đều đứng ngoài lượt dọn — cách rất tốt để bảo vệ model của nhà cung cấp, và cũng là lý do thường gặp khi thấy clean “chạy mà như không làm gì”.
Thứ CleanUp³ không giảm được
Mọi bước giảm số mặt trong CleanUp³ đều đòi các mặt phải phẳng và đồng phẳng, hoặc phải trùng nhau đúng nghĩa. Điều đó loại đúng những model làm SketchUp ứ nhất:
- Mặt cong — trụ, bọ góc fillet, địa hình Sandbox. Các tam giác kề nhau lệch góc nhau nên không gộp được gì.
- Mesh nhập vào — FBX, OBJ, GLB từ 3ds Max, Blender, bản quét 3D hay photogrammetry. Chúng vào đã chia tam giác và cong hữu cơ.
- Nội thất 3D Warehouse nặng — ca kinh điển: một bộ sofa tốn nhiều tam giác hơn cả cái nhà bên ngoài nó.
Chạy CleanUp³ trên mấy thứ đó thì hộp thống kê báo thật thà: 0 mặt giảm. Đó không phải lỗi. Giảm một mesh cong là việc khác — giảm lưới (decimate), tức dựng lại bề mặt bằng ít tam giác hơn nhưng to hơn mà vẫn giữ hình dáng.
Vậy nếu file của bạn xoay chậm chứ không phải chỉ nặng dung lượng, nguyên nhân là số tam giác, và Decimify — plugin giảm polygon cho SketchUp là bước CleanUp³ không làm. Bạn chọn đúng một group hoặc component, kéo slider đặt mục tiêu phần trăm tam giác giữ lại cho từng sub-mesh, xem kết quả ngay, rồi commit trả về model. Commit đổ lại đúng component definition đó tại chỗ, nên mọi instance cập nhật cùng lúc và cả lần commit chỉ là một bước undo. Nó cần tài khoản 3dshouse miễn phí: bản free có đủ mọi tùy chọn ở mọi mức giảm, giới hạn 3 lượt xuất hoặc commit một ngày (theo ngày UTC); Pro là $30 mua một lần, một lần mua dùng cho cả plugin SketchUp và bản web. Với file .glb hay .stl chưa đưa vào SketchUp, giảm lưới ngay trên trình duyệt trước — không upload gì, việc giảm chạy trên máy bạn.
File SketchUp nặng: mỗi nguyên nhân một công cụ
- File .skp lớn nhưng chạy vẫn mượt — component, material, style, tag không dùng vẫn nằm trong file. Xử: Purge Unused, hoặc chính CleanUp³ với Purge Unused được tích.
- Geometry bẩn nhưng nhẹ — nét thừa, cạnh bị chẻ, cạnh chia một mảng tường phẳng thành hàng chục mặt, mặt trùng chồng nhau. Xử: CleanUp³, chính bài này.
- Geometry lỗi — group không chịu thành solid, cạnh và mặt nhân đôi đè lên nhau. Xử: FixIt 101.
- Xoay chậm, cắt section chậm, xuất chậm — quá nhiều tam giác, từ mặt cong, mesh nhập, bản quét hay nội thất Warehouse. Xử: giảm lưới. Purge hay clean đều không động được vào con số này.
Câu hỏi thường gặp
Cài CleanUp³ rồi nhưng không thấy menu, vì sao?
Ba nguyên nhân, hay gặp nhất trước. Thiếu TT_Lib² hoặc TT_Lib² cũ hơn 2.11.0 — khi đó CleanUp³ không tạo menu và không báo lỗi gì. Bạn tìm sai menu — các lệnh nằm ở Extensions » CleanUp³. Hoặc bạn đang tìm toolbar: plugin này không có toolbar, chỉ có menu.
Plugin CleanUp³ có purge đối tượng không dùng trong SketchUp không?
Có. Purge Unused bật sẵn, xử Components, Layers/Tags, Materials, Styles, và chạy hai lần mỗi lượt clean. Nếu bạn chỉ cần purge thì dùng công cụ purge riêng sẽ nhanh hơn là clean đầy đủ.
CleanUp³ có chạy trên SketchUp 2022 và 2024 không?
Trang Warehouse của bản 3.4.6 ghi hỗ trợ 2022 đến 2026 trên Windows và Mac. Nhưng thư viện bắt buộc TT_Lib² lại ghi 2023–2027, nên nếu dùng SketchUp 2022 hãy kiểm tra Warehouse có cài được TT_Lib² cho bạn hay không — thiếu nó thì CleanUp³ không load.
Tải CleanUp³
Tải miễn phí từ trang CleanUp³ trên Extension Warehouse, và cài TT_Lib² trước đó — cùng bản 3.4.6 cũng có trên SketchUcation PluginStore. Cài xong khởi động lại SketchUp rồi mở Extensions » CleanUp³. Không thấy submenu đó thì thứ cần sửa là TT_Lib².

English