Bốn giờ chiều, hồ sơ phải nộp lúc năm giờ, và bản vẽ mặt bằng kết cấu không chịu mở. Cảm giác đầu tiên là mất trắng. Thật ra không mở được file CAD hiếm khi đồng nghĩa với mất bản vẽ, nhưng cũng hiếm khi cứu về nguyên vẹn như nhiều người tưởng.
Bài này làm một việc mà các hướng dẫn khác bỏ qua: cố tình phá một bản vẽ thật, cứu nó bằng RECOVER, rồi đếm xem còn lại bao nhiêu. Toàn bộ quy trình quản lý hồ sơ bản vẽ được dạy kỹ trong khoá AutoCAD cho xây dựng của Viện.
Ba câu hỏi khác nhau bị gộp làm một
Người dùng gõ tìm kiếm thì viết giống nhau, nhưng ba triệu chứng dưới đây có ba nguyên nhân hoàn toàn khác và ba cách chữa khác hẳn.
| Triệu chứng | Nguyên nhân thường gặp | Việc phải làm |
|---|---|---|
| Nháy đúp vào tệp, AutoCAD báo lỗi rồi thoát | Dữ liệu trong tệp hỏng thật | RECOVER |
Mở ra bình thường, nhưng Ctrl + S không ăn | Tệp bị khoá ghi, không phải hỏng | Sửa quyền ghi của tệp |
| Mở ra bình thường, nhưng không sửa được nét nào | Lớp bị khoá, hoặc bản vẽ chỉ đọc | Mở khoá lớp, hoặc lưu sang tên mới |
Câu "không mở được file CAD" vì thế nên được hỏi lại thành: nó không mở, hay nó mở mà không cho ghi. Nhầm nhóm là mất thời gian vô ích. Chạy RECOVER cho một tệp chỉ đọc thì chẳng sửa được gì, vì tệp ấy có hỏng đâu. Ngược lại, đổi quyền ghi cho một tệp thật sự hỏng cũng chẳng cứu được dòng dữ liệu nào.
Gọi RECOVER và AUDIT từ đâu
Bảng sau đọc từ chính tệp giao diện acad.cuix và tệp lệnh tắt acad.pgp của bản 2027 trên máy, chứ không chép từ tài liệu.
| Lệnh | Lệnh tắt | Vào từ menu | Làm gì |
|---|---|---|---|
RECOVER | không có | File → Drawing Utilities → Recover | Sửa rồi mở một tệp hỏng |
AUDIT | không có | File → Drawing Utilities → Audit | Soát lỗi bản vẽ đang mở |
RECOVERALL | không có | File → Drawing Utilities → Recover drawing and xrefs | Cứu cả bản vẽ lẫn xref của nó |
DRAWINGRECOVERY | DRM | File → Drawing Utilities → Drawing Recovery Manager | Bảng danh sách bản vẽ chờ cứu |
Ba lệnh đầu không có lệnh tắt, đây là điểm khác biệt đáng nhớ so với hầu hết lệnh vẽ. Chỉ DRAWINGRECOVERY có lệnh tắt DRM.
Chạy AUDIT trên một bản vẽ lành, nhật ký của phần mềm ghi lại nguyên văn như sau.
Command: _.AUDIT
Fix any errors detected? [Yes/No] <N>: y
Auditing Header
Auditing Tables
Auditing Entities Pass 1
Pass 1 16600 objects audited
Auditing Entities Pass 2
Pass 2 16600 objects audited
Auditing Blocks
523 Blocks audited
Auditing AcDsRecords
Total errors found 0 fixed 0
Erased 0 objects
Để ý dấu ngoặc nhọn <N> ở dòng thứ hai. Đó là giá trị mặc định, nghĩa là bấm Enter cho nhanh thì phần mềm soát mà không sửa gì cả. Muốn nó sửa thì phải gõ Y rồi mới Enter.
AutoCAD không mở được file DWG: cứu bằng RECOVER được bao nhiêu
Đây là phần mà không hướng dẫn tiếng Việt nào trả lời bằng con số.
Bản vẽ dùng để thử là một mặt bằng kết cấu thật, 674.660 byte, có 4.686 đối tượng trong Model. Chép ra hai bản giống hệt nhau. Bản thứ hai bị ghi đè 64 byte ở vị trí 303.597, tức khoảng giữa tệp. Rồi chạy RECOVER cho cả hai.
| Chạy RECOVER trên | Lỗi tìm thấy | Lỗi đã sửa | Đối tượng bị xoá |
|---|---|---|---|
| Bản còn nguyên | 1 | 1 | 0 |
| Bản bị ghi đè 64 byte | 105 | 105 | 0 |
Hộp thoại phần mềm hiện ra sau khi cứu xong ghi đúng những dòng này.
Open Drawing - Damaged File
The drawing file was recovered.
Errors were found and fixed in the drawing. Invalid data might have been
changed or deleted, and some previously erased objects might have been restored.
Errors found: 105
Errors fixed: 105
Objects erased: 0
Đọc lướt thì yên tâm: sửa hết, không xoá đối tượng nào. Nhưng đếm lại số đối tượng trong bản vẽ vừa cứu thì ra chuyện khác hẳn.
| Loại đối tượng trong Model | Bản còn nguyên | Bản đã cứu | Mất |
|---|---|---|---|
| Đường thẳng | 2.199 | 1.970 | 229 |
| Chữ một dòng | 1.127 | 1.058 | 69 |
| Đa tuyến | 423 | 376 | 47 |
| Khối chèn vào | 307 | 280 | 27 |
| Mặt cắt vật liệu | 117 | 102 | 15 |
| Kích thước thẳng | 483 | 473 | 10 |
| Tổng | 4.686 | 4.288 | 398 |
398 đối tượng biến mất, tức 8,5% bản vẽ. Không một dòng nào báo, và hộp thoại vẫn ghi Objects erased: 0. Nói cách khác, con số ấy đếm số đối tượng bị xoá sau khi bản vẽ đã nạp xong, chứ không đếm phần phần mềm đọc không nổi nên bỏ qua ngay từ đầu.
Trang tài liệu của Autodesk về lệnh RECOVER nói thẳng điều này, chỉ có điều người đọc hay lướt qua: "Repairs and then opens a damaged drawing file. The program extracts as much data as it can from the damaged file."
Cụm as much data as it can mới là chỗ quan trọng. Lệnh không vá lại chỗ hỏng, nó rút ra được bao nhiêu thì rút.
Có một tin tốt thật sự trong phép đo. Toàn bộ phần khung của bản vẽ sống sót nguyên vẹn: 30 lớp còn đủ 30, 14 kiểu chữ còn đủ 14, 6 kiểu kích thước còn đủ 6, và cả hai layout đều còn. Thứ mất đi là hình vẽ rải rác, không phải thiết lập.
Sửa file CAD bị lỗi: thứ tự đúng và tệp .adt cho biết mất gì
Khi sửa file CAD bị lỗi, thứ tự dưới đây tiết kiệm được nhiều giờ dò tìm.
| Bước | Làm gì | Vì sao |
|---|---|---|
| 1 | Chép tệp hỏng ra một bản dự phòng | Mọi bước sau đều có thể làm hỏng thêm |
| 2 | Đặt AUDITCTL = 1 | Để có báo cáo lỗi bằng văn bản |
| 3 | Chạy RECOVER trên bản chép | Đây là lệnh duy nhất mở được tệp hỏng |
| 4 | Chạy AUDIT, trả lời Y | Quét thêm một lượt trên bản đã nạp |
| 5 | Chạy PURGE rồi lưu sang tên mới | Đừng ghi đè lên tệp gốc |
Bước 2 là bước hầu như không ai làm, và nó chính là câu trả lời cho câu hỏi "mất những gì". Tài liệu Autodesk về lệnh AUDIT ghi: "If the AUDITCTL system variable is set to 1, a text file with an ADT file extension is created that describes the problem and the action taken."
Đặt AUDITCTL = 1 rồi cứu lại đúng bản vẽ hỏng ở trên, phần mềm sinh ra tệp t7.adt dài 1.117 dòng nằm cạnh bản vẽ. Mở đầu tệp ấy như sau.
Drawing: C:\t9\t7.dwg Autodesk, Inc. AutoCAD AUDIT REPORT Page 1
Release: 26.0s (LMS Tech) Microsoft Windows NT Version 10.0 (Intel64)
Reading handle 4239D object type AcDb2dVertex
Error 13 (eUnknownHandle)
Reading handle 423B0 object type AcDb2dVertex
Error 13 (eUnknownHandle)
...
Total errors found 105 fixed 105
Erased 0 objects
Tệp ghi rõ số hiệu và kiểu của từng đối tượng phần mềm đọc không nổi. Với AUDITCTL = 0 thì chạy y hệt như vậy không sinh ra tệp .adt nào. Lệnh PURGE và lệnh AUDIT dùng theo hướng dọn dẹp được nói kỹ hơn trong bài làm nhẹ bản vẽ CAD.
Một nguyên nhân khác cũng hay bị nhầm là bản vẽ lưu ở đời mới hơn phiên bản đang dùng. Trường hợp ấy tệp không hỏng chút nào, chỉ cần hạ đời, và cách làm nằm ở bài chuyển bản vẽ CAD về đời thấp.
File CAD bị khóa không save được: ba nguyên nhân thật
Nhóm triệu chứng thứ hai không liên quan gì đến hỏng hóc. Bản vẽ mở ra đẹp đẽ, sửa được, nhưng lưu thì không xong. Tình huống file CAD bị khóa không save được hầu như luôn rơi vào một trong ba nguyên nhân dưới đây.
Một, thuộc tính chỉ đọc của Windows. Đặt cờ chỉ đọc cho một tệp DWG rồi mở ra, thanh tiêu đề của phần mềm ghi thêm hai chữ Read Only sau tên bản vẽ, và thẻ bản vẽ hiện một hình ổ khoá nhỏ. Bấm lưu thì hiện hộp thoại.
AutoCAD Message
Drawing file is write protected.
Đây là dòng chính xác mà người gặp lỗi không lưu được bản vẽ CAD nhìn thấy. Cách chữa nằm ngoài phần mềm: nháy phải vào tệp trong Windows, vào Properties, bỏ dấu tích ở ô Read-only. Nếu tệp nằm trên ổ mạng mà bạn không có quyền ghi thì chỉ còn cách lưu sang chỗ khác bằng SAVEAS.
Hai, biến FILEDIA bị đặt về 0. Nhiều trang khuyên đặt lại FILEDIA = 1, và lời khuyên ấy đúng, nhưng lý do thì hay bị kể sai. FILEDIA = 0 không hề chặn việc lưu. Nó chỉ thay hộp thoại chọn tệp bằng một câu hỏi trên dòng lệnh.
Command: _.SAVEAS
Current file format: AutoCAD 2018 Drawing
Enter file format [R14(LT98<97)/2000(LT2000)/2004(LT2004)/2007(LT2007)/
2010(LT2010)/2013(LT2013)/2018(LT2018)/Standards/DXF/Template] <2018>:
Người dùng bấm Ctrl + S, không thấy hộp thoại quen thuộc hiện ra, nên tưởng máy treo. Thật ra phần mềm đang chờ trả lời ngay dưới màn hình. Gõ FILEDIA rồi nhập 1 là hộp thoại trở lại.
Ba, tệp đang nằm ở thư mục tạm. Mở thẳng bản vẽ từ tệp đính kèm trong thư điện tử hoặc từ tệp nén là rơi vào trường hợp này. Bản vẽ ở thư mục tạm của Windows, lưu thì được nhưng hôm sau tìm lại không thấy. Giải nén ra một thư mục thật trước khi mở.
Cách mở bản vẽ CAD bị khóa và chuyện tệp .dwl
Mở một bản vẽ lên, nhìn vào thư mục chứa nó sẽ thấy mọc thêm hai tệp nhỏ cùng tên.
| Tệp | Kích thước đo được | Chứa gì |
|---|---|---|
mau-mbkc.dwg | 674.660 byte | Bản vẽ |
mau-mbkc.dwl | 58 byte | Tên người và tên máy đang mở |
mau-mbkc.dwl2 | 208 byte | Cũng nội dung ấy, dạng XML |
Mở tệp .dwl bằng Notepad thì thấy đúng ba dòng.
pc
DESKTOP-L2465T5
Sunday, September 20, 2026 8:23:15 PM
Tên tài khoản, tên máy, thời điểm mở. Đóng bản vẽ thì cả hai tệp tự biến mất. Đây là công dụng thật của chúng: khi bản vẽ dùng chung trên ổ mạng, tệp .dwl cho biết ai đang giữ nó, để bạn gọi điện cho đúng người.
Và đây là chỗ cần nói lại cho đúng. Rất nhiều hướng dẫn dạy rằng cách mở bản vẽ CAD bị khóa là xoá tệp .dwl đi. Thử trực tiếp trên máy: tạo tay một tệp .dwl ghi tên người khác trên một máy khác, đặt cạnh bản vẽ, rồi mở bản vẽ ấy lên. Kết quả là bản vẽ mở bình thường, ghi sửa thoải mái, không một lời cảnh báo, và phần mềm còn ghi đè luôn tệp .dwl ấy bằng tên máy của mình.
Nghĩa là tệp .dwl sót lại không khoá gì cả. Nó chỉ là mẩu giấy dán trên cửa. Khoá thật nằm ở chỗ khác: hệ điều hành giữ tệp khi một chương trình đang mở nó, và cờ chỉ đọc ở mục trước. Xoá .dwl không hại gì, nhưng cũng đừng trông chờ nó chữa được bệnh.
Ba tệp cứu bạn khi máy sập
Khi mất điện giữa chừng, thứ cứu bản vẽ không phải là lệnh nào cả, mà là mấy tệp phần mềm đã lặng lẽ để sẵn.
Tệp .bak. Lưu bản vẽ lần đầu thì chưa có gì. Lưu lần thứ hai mới sinh ra tệp .bak, và phép đo cho thấy nó nặng đúng 15.461 byte, bằng chằn chặn kích thước bản .dwg sau lần lưu thứ nhất. Nói cách khác, .bak là bản vẽ của lần lưu trước. Đổi đuôi .bak thành .dwg là mở được, nhưng bạn lùi lại một lần lưu.
Tệp .sv$. Phần mềm tự lưu mỗi 10 phút, theo biến SAVETIME, vào thư mục ghi ở biến SAVEFILEPATH. Trên máy thử, đó là C:\Users\pc\AppData\Local\Temp\, và tệp có tên kiểu mau-mbkc_1_1200_ca1ccebe.sv$. Chép nó ra chỗ khác, đổi đuôi thành .dwg, mở lên thì đủ cả 6.184 đối tượng, không thiếu một loại nào.
Có một cái bẫy nhỏ ở đây. Nếu không đổi đuôi mà mở thẳng tệp .sv$, phần mềm báo tệp không tồn tại, dù tệp nằm sờ sờ ở đó với đủ 709.527 byte.
File C:\t9\t6.sv$ is not found
Đổi đuôi là bắt buộc, không phải mẹo cho vui.
Bảng Drawing Recovery Manager. Sau một lần phần mềm thoát bất thường, gõ DRM để mở bảng này. Nó gom sẵn bản vẽ gốc, bản .bak và bản .sv$ của từng bản vẽ đang mở lúc sập, kèm thời điểm của mỗi bản, để bạn chọn bản mới nhất. Biến RECOVERYMODE trên máy thử đang ở giá trị 2, nghĩa là bảng này tự hiện lên sau sự cố.
Với bản vẽ có tham chiếu ngoài thì dùng RECOVERALL thay cho RECOVER, vì lệnh này cứu luôn các tệp xref đi kèm. Cách quản lý tham chiếu ngoài nằm ở bài xref trong CAD.
Năm điều hay nghe nhưng không đúng
| Điều hay nghe | Đo được gì |
|---|---|
| RECOVER cứu lại nguyên vẹn bản vẽ | Cứu được 4.288 trên 4.686 đối tượng, mất 398 |
| Hộp thoại ghi Objects erased: 0 nên không mất gì | Vẫn mất 8,5%, con số ấy không đếm phần đọc không nổi |
Xoá tệp .dwl là mở được bản vẽ bị khoá | Tệp .dwl giả không hề chặn việc mở hay ghi |
FILEDIA = 0 làm không lưu được bản vẽ | Vẫn lưu được, chỉ là nó hỏi trên dòng lệnh |
Mở thẳng tệp .sv$ cũng được | Phần mềm báo is not found dù tệp vẫn còn đủ 709.527 byte |
Câu hỏi thường gặp
Bản vẽ báo lỗi ngay khi mở, làm gì trước tiên?
Chép tệp ra một bản dự phòng đã, rồi mới chạy RECOVER trên bản chép. Với mọi trường hợp không mở được file CAD, đây luôn là bước đầu tiên, vì các bước sau đều có thể làm hỏng thêm.
Làm sao biết RECOVER đã làm mất những gì?
Đặt AUDITCTL = 1 trước khi cứu. Phần mềm sẽ để lại một tệp đuôi .adt cạnh bản vẽ, ghi số hiệu và kiểu của từng đối tượng nó đọc không nổi.
Thanh tiêu đề ghi Read Only, sửa thế nào?
Đóng bản vẽ, nháy phải vào tệp trong Windows, vào Properties rồi bỏ dấu tích ở ô Read-only. Nếu tệp nằm trên ổ mạng thì hỏi người quản trị, hoặc lưu sang chỗ bạn có quyền ghi.
Máy sập lúc chưa kịp lưu thì lấy lại bản vẽ ở đâu?
Gõ DRM để mở bảng Drawing Recovery Manager. Nếu bảng không có gì thì vào thư mục ghi ở biến SAVEFILEPATH, tìm tệp .sv$ cùng tên bản vẽ và đổi đuôi thành .dwg.
Cứu xong có nên lưu đè lên tệp cũ không?
Không. Lưu sang một tên mới, giữ nguyên tệp hỏng. Nếu sau này phát hiện thiếu hình, bạn còn tệp gốc để thử cách khác.
Bản vẽ có nhiều xref thì cứu thế nào?
Dùng RECOVERALL thay cho RECOVER. Lệnh này soát và sửa cả bản vẽ chính lẫn toàn bộ tệp tham chiếu ngoài mà nó gọi tới.