Bản vẽ qua vài tay là bắt đầu nặng. Chọn một đường tường rồi bấm xoá, hoá ra bên dưới còn một đường y hệt. Đo tổng chiều dài thì ra con số lớn gấp rưỡi thực tế. Nét trùng nằm chồng lên nhau, mắt không thấy, mà máy vẫn tính.
Lệnh xóa nét trùng trong CAD tên là OVERKILL, và nó dọn đúng việc đó trong một lượt. Bài này nói rõ nó bỏ đi cái gì, giữ lại cái gì, và vì sao có lúc chạy xong mà nét trùng vẫn còn. Muốn học trọn phần quản lý bản vẽ, Viện có khóa AutoCAD cho ngành xây dựng.
Overkill là gì
Autodesk mô tả lệnh trong một câu trên trang OVERKILL của bản 2027: "Removes duplicate or overlapping lines, arcs, and polylines. Also, combines those that are partially overlapping or contiguous".
Nó làm hai việc khác nhau, và phân biệt được hai việc ấy là hiểu đúng lệnh:
Xoá bản trùng. Hai nét nằm chồng khít lên nhau, giữ lại một, bỏ đi một.
Gộp nét nối tiếp. Hai nét cùng phương nối đuôi nhau, nhập lại thành một nét dài.
Việc thứ hai mới là thứ làm bản vẽ gọn hẳn. Một bức tường bị vẽ thành mười hai đoạn rời sẽ thành một đoạn duy nhất, dễ chọn, dễ offset, dễ đo.
Cách gọi lệnh overkill trong CAD
Để chạy lệnh xóa nét trùng trong cad thì trước hết phải gọi được nó, mà chỗ này hơi khuất.
| Lệnh | Lệnh tắt | Ribbon | Menu cổ điển |
|---|---|---|---|
OVERKILL | không có | Home → Modify | Modify → Delete Duplicate Objects |
PURGE | PU | không có | File → Drawing Utilities → Purge |
AUDIT | không có | không có | File → Drawing Utilities → Audit |
Lệnh không có lệnh tắt nên phải gõ đủ. Người tìm bằng tiếng Anh hay gõ overkill autocad hoặc lệnh overkill trong autocad, cùng một thứ.
Một điều ít nơi nhắc: tồn tại bản -OVERKILL chạy hoàn toàn trên dòng lệnh, nên nhét được vào script hoặc lisp. Lệnh thường thì phải qua hộp thoại.
Sáu nét vào, ba nét ra
Lấy một bản vẽ có ba tình huống điển hình nằm cạnh nhau: ba nét chồng khít lên nhau, hai nét nối tiếp cùng phương, và một nét riêng lẻ không trùng ai. Tổng sáu đối tượng.
Chạy lệnh một lượt trên cả sáu.
| Tình huống | Sau khi dọn | Máy bỏ đi |
|---|---|---|
| 3 nét chồng khít lên nhau | còn 1 | 2 nét |
| 2 nét nối tiếp cùng phương | gộp còn 1 | 1 nét |
| 1 nét riêng, không trùng ai | còn nguyên | không đụng |
| Cộng lại: 6 đối tượng | còn 3 | 3 nét |
Máy báo lại đúng hai dòng.
2 duplicate(s) deleted
1 overlapping object(s) or segment(s) deleted
Hai con số cộng lại bằng đúng ba nét biến mất, và chúng tách bạch hai việc: hai nét bị xoá vì trùng, một nét bị bỏ vì được gộp vào nét bên cạnh.
Dòng thứ ba là điều đáng yên tâm: nét không trùng ai thì không bị đụng tới. Lệnh không xoá bừa.
Ảnh đầu bài là chính bản vẽ ấy, chụp sau khi dọn. Nhìn nó không khác gì lúc trước, và đó chính là lý do người ta không biết bản vẽ mình đang thừa nét.
Từng bước trên dòng lệnh
| Bước | Máy hỏi nguyên văn | Bạn làm |
|---|---|---|
| 1 | Command: | Gõ OVERKILL rồi Enter |
| 2 | Select objects: | Chọn vùng cần dọn rồi Enter |
| 3 | Hiện hộp thoại Delete Duplicate Objects | Xem lại thiết lập rồi bấm OK |
Với bản gạch nối, bước 3 thành hai dòng ngay trên dòng lệnh.
Current settings: Tolerance=0.000001, Ignore=None, Optimize polylines=Yes,
Combine partial overlap=Yes, Combine end-to-end=Yes
Enter an option to change
[Done/Ignore/tOlerance/optimize Plines/combine parTial overlap/combine Endtoend/Associativity] <done>:
Enter một cái là chạy với thiết lập đang hiện. Dòng thiết lập ấy đáng đọc, vì hai con số trong đó quyết định lệnh có ăn hay không.
Vì sao chạy rồi mà nét trùng vẫn còn
Đây là câu hỏi hay gặp nhất, và có hai nguyên nhân.
Nguyên nhân thứ nhất: khác layer. Mặc định Ignore=None, nghĩa là máy không bỏ qua thuộc tính nào. Hai nét trùng khít nhưng nằm trên hai layer khác nhau thì máy coi là hai vật khác nhau và giữ cả hai.
Đặt cạnh nhau hai cặp nét trùng — một cặp khác layer, một cặp cùng layer — rồi chạy lệnh, máy chỉ báo 1 duplicate(s) deleted. Đúng cặp cùng layer bị gộp, cặp khác layer còn nguyên.
Muốn gộp cả nét khác layer thì ở dòng nhắc chọn Ignore, rồi bật bỏ qua thuộc tính layer. Nhưng cân nhắc: gộp xong nét sẽ nằm trên một layer duy nhất, và đó có thể không phải điều bạn muốn.
Nguyên nhân thứ hai: sai số. Mặc định Tolerance là 0,000001, rất chặt. Hai nét lệch nhau một phần nghìn đơn vị vẫn bị coi là khác nhau. Bản vẽ vẽ ẩu, bắt điểm không chuẩn, thì nét gần trùng chứ không trùng. Nâng Tolerance lên là gom được, nhưng nâng quá tay thì máy gộp cả những nét lẽ ra phải giữ riêng.
Lựa chọn optimize Plines thì làm việc bên trong từng đường đa tuyến, bỏ các đoạn dài bằng không và các đoạn chồng nhau. Chuyện biên tập đa tuyến nằm ở bài polyline trong CAD.
Lệnh làm sạch bản vẽ CAD: bộ ba nên chạy cùng nhau
OVERKILL chỉ dọn phần hình học. Muốn bản vẽ thật sự nhẹ thì còn hai lệnh nữa, và ba lệnh này nên chạy theo thứ tự.
| Thứ tự | Lệnh | Dọn cái gì |
|---|---|---|
| 1 | AUDIT | Kiểm và sửa lỗi cấu trúc trong tệp |
| 2 | OVERKILL | Nét trùng và nét nối tiếp |
| 3 | PURGE, tắt là PU | Layer, kiểu chữ, block, kiểu đường không ai dùng |
Chạy OVERKILL trước PURGE là có lý do: dọn nét xong mới lòi ra những layer không còn vật nào, để PURGE quét nốt.
Đó là cách hiểu đúng khi người ta tìm lệnh làm sạch bản vẽ cad: không có một lệnh duy nhất làm hết, mà là ba lệnh chia nhau ba loại rác.
Một lưu ý về an toàn. OVERKILL xoá thật, không hỏi lại. Trước khi chạy trên bản vẽ quan trọng thì lưu một bản, hoặc ít nhất nhớ rằng U vẫn lùi lại được — chuyện hoàn tác nằm ở bài lệnh undo trong CAD.
Ba điều nhiều nơi bỏ sót
| Điều hay nghe | Bản 2027 thực sự làm gì |
|---|---|
| Lệnh chỉ xoá nét trùng | Nó còn gộp nét nối tiếp thành một, và đó mới là phần làm gọn bản vẽ |
| Chạy xong là sạch hết nét trùng | Nét khác layer không bị gộp, vì mặc định Ignore=None |
| Phải mở hộp thoại mới chạy được | Có bản -OVERKILL chạy trên dòng lệnh, nhét vào script được |
Có một câu hỏi hay đi kèm: chạy lệnh xóa nét trùng trong cad có làm bản vẽ nhẹ đi nhiều không. Câu trả lời thật thà là tuỳ bản vẽ. Hồ sơ vẽ cẩn thận thì dọn xong dung lượng gần như không đổi. Nhưng hồ sơ đi qua nhiều tay thì số đối tượng tụt đi vài phần trăm là chuyện thường. Cái lợi lớn hơn nằm ở chỗ khác: chọn đúng một nét, thay vì bấm ba lần mới trúng cái mình cần.
Còn một lợi ích ít ai để ý. Nét trùng làm sai mọi con số tổng: chiều dài đường ống, chu vi tường, diện tích hatch. Bóc khối lượng trên bản vẽ chưa dọn là bóc thừa, mà thừa bao nhiêu thì không ai biết trước. Dọn trước khi đo là một thói quen đáng tập.
Tóm lại, gõ OVERKILL, quét chọn cả bản vẽ, Enter hai lần. Đọc hai dòng máy báo là biết nó vừa bỏ đi bao nhiêu, và nếu con số bằng không thì kiểm layer với sai số trước khi kết luận bản vẽ đã sạch.
Câu hỏi thường gặp
Lệnh tắt của OVERKILL là gì?
Không có. Phải gõ đủ OVERKILL, hoặc bấm nút ở Home → Modify.
Chạy xong mà nét trùng vẫn còn?
Kiểm hai chỗ: hai nét có cùng layer không, và chúng có trùng khít thật không. Mặc định máy không bỏ qua thuộc tính nào và sai số chỉ 0,000001.
Lệnh có xoá nhầm nét đang cần không?
Không. Nét không trùng ai thì không bị đụng tới.
Làm sao biết nó vừa xoá bao nhiêu?
Đọc hai dòng máy in ra: duplicate(s) deleted là số nét trùng, overlapping object(s) or segment(s) deleted là số nét bị gộp.
Nên chạy lệnh nào trước để làm nhẹ bản vẽ?
AUDIT trước, rồi OVERKILL, rồi PURGE. Dọn nét xong mới lộ ra layer rỗng cho PURGE quét.
Có chạy được trong script không?
Có, dùng bản -OVERKILL với dấu gạch nối.