Bạn gửi bản vẽ cho người khác, họ mở ra và khung tên trống trơn. Không mất dữ liệu, cũng không hỏng tệp. Chỉ là bản vẽ ấy đang mượn nội dung từ một tệp khác, và tệp ấy không đi kèm.
Bài này đo cơ chế mượn ấy trên AutoCAD 2027 tại Viện: tên lớp sinh ra thế nào, sau khi gộp thì đổi ra sao, và máy báo gì khi tệp nguồn biến mất. Muốn học trọn cách tổ chức hồ sơ bản vẽ lớn thì xem khóa AutoCAD nâng cao.
Xref trong CAD là gì: bản vẽ mượn chứ không phải bản vẽ chép
Tên đầy đủ là external reference, tham chiếu ngoài. Lệnh gõ tắt là XR, và Autodesk mô tả lệnh đầy đủ bằng đúng một câu trên trang XREF: "Starts the EXTERNALREFERENCES command."
Chúng tôi ghi một mặt bằng nhỏ ra tệp riêng, gắn vào bản vẽ chính, rồi đọc lại chính đối tượng vừa sinh ra.
| Đo được | Kết quả |
|---|---|
| Loại đối tượng | INSERT |
| Tên khối | tên tệp nguồn |
| Cờ tham chiếu ngoài trong bảng khối | có |
| Đường dẫn máy ghi lại | .\xr-nguon.dwg |
Dòng đầu là chỗ nhiều người bất ngờ. Trong tệp, tham chiếu ngoài nằm y như một khối, cùng loại INSERT. Khác biệt duy nhất là bản ghi khối mang một cái cờ báo rằng nội dung không nằm trong tệp này mà nằm ở nơi khác. Cách khối thường hoạt động chúng tôi viết ở bài block trong CAD.
Dòng cuối đáng để ý: máy ghi đường dẫn tương đối, bắt đầu bằng dấu chấm và dấu chéo ngược. Vì sao lại thế thì ở mục sau.
Tạo xref trong CAD và ba kiểu đường dẫn
Gõ XR để mở bảng quản lý rồi bấm Attach là cách quen thuộc. Bản dòng lệnh -XREF cho thấy toàn bộ việc lệnh này làm được, chép nguyên văn từ bản 2027.
Enter an option [?/Bind/Detach/Path/pathType/Unload/Reload/Overlay/Attach/Show] <Attach>:
Chín lựa chọn, và bốn trong số đó là việc hằng ngày.
| Lựa chọn | Việc nó làm |
|---|---|
Attach | gắn một tệp vào làm tham chiếu |
Reload | nạp lại nội dung mới nhất của tệp nguồn |
Unload | tạm thôi hiển thị, vẫn giữ liên kết |
Detach | cắt đứt hẳn liên kết |
Kiểu đường dẫn do biến REFPATHTYPE quyết định, và máy chúng tôi đo được giá trị 1.
REFPATHTYPE | Nghĩa |
|---|---|
| 0 | không lưu đường dẫn |
| 1 | lưu đường dẫn tương đối |
| 2 | lưu đường dẫn đầy đủ |
Giá trị 1 là lựa chọn ngầm định và cũng là lựa chọn đúng cho hồ sơ gửi đi. Đường dẫn tương đối nghĩa là máy nhớ tệp nguồn nằm ở đâu so với bản vẽ chính, nên chép cả thư mục sang máy khác thì liên kết vẫn sống. Đường dẫn đầy đủ thì ghi cả ổ đĩa, sang máy khác là đứt ngay.
Bind xref trong CAD: hai kiểu, tên lớp khác hẳn nhau
Đây là chỗ mọi bài hướng dẫn tiếng Việt chúng tôi đọc đều nói qua loa rằng Bind và Insert "về cơ bản giống nhau". Đo thì không giống nhau chút nào, và khác biệt nằm ở tên lớp.
Chúng tôi gắn một tệp có lớp tên XR-TUONG, rồi liệt kê lại bảng lớp qua từng bước.
Buoc Ten lop trong ban ve chinh
------------------------ --------------------------
Truoc khi gan (khong co lop nao)
Sau khi gan xr-nguon|XR-TUONG
Sau khi gop, BINDTYPE = 0 xr-nguon$0$XR-TUONG
Sau khi gop, BINDTYPE = 1 XR-COT
Ba dòng cuối chính là ba trạng thái mà người dùng hay nhầm lẫn. Khi còn là tham chiếu, tên lớp mang tiền tố là tên tệp và một dấu gạch đứng. Gộp theo kiểu Bind thì dấu gạch đứng đổi thành $0$, lớp vẫn là lớp riêng của tệp ấy.
Autodesk mô tả chính xác điều đó trong hộp thoại gộp: Bind là "Binds the selected DWG reference to the current drawing. Xref-dependent named objects are changed from blockname|definitionname to blockname$n$definitionname syntax."
Dòng cuối mới là dòng đáng ngại. Biến BINDTYPE đặt về 1 thì lớp của tệp nguồn nhập hẳn vào lớp cùng tên đang có sẵn, mất cả tiền tố. Autodesk gọi kiểu này là Insert và mô tả: "Binds the DWG reference to the current drawing in a way similar to detaching and inserting the reference drawing."
Trong phép đo của chúng tôi, bản vẽ chính đã có sẵn một lớp tên XR-COT. Gộp theo kiểu Insert xong, toàn bộ nét của tệp nguồn nằm trên lớp XR-COT cũ và mang luôn màu, kiểu nét của lớp ấy. Không có cảnh báo nào.
Chọn kiểu nào thì tuỳ việc. Muốn giữ nguyên trạng bản vẽ được tham chiếu thì dùng Bind. Muốn hồ sơ gọn, ít lớp, và chấp nhận trộn thì dùng Insert, nhưng phải biết trước rằng lớp trùng tên sẽ bị trộn.
Phá xref trong CAD cho đúng: Detach chứ không phải Delete
Câu hỏi rất hay gặp, và có một cái bẫy đo được.
Chúng tôi chọn đối tượng tham chiếu rồi xoá bằng lệnh ERASE, sau đó tra lại bảng khối.
| Thao tác | Bản ghi khối của tệp nguồn |
|---|---|
Xoá bằng ERASE | vẫn còn |
Gỡ bằng Detach | mất hẳn |
Nghĩa là xoá nét đi trên màn hình không cắt được liên kết. Bản vẽ vẫn còn nhớ tệp nguồn, vẫn hỏi tệp ấy mỗi lần mở, và người nhận vẫn thấy thông báo thiếu tệp dù chẳng còn nét nào của nó hiện ra.
Muốn cắt đứt hẳn thì phải dùng Detach. Muốn giữ luôn nội dung trong tệp của mình thì gộp bằng Bind, đừng gỡ. Chuyện rác còn nằm lại trong tệp sau những thao tác kiểu này chúng tôi viết kỹ ở bài làm nhẹ bản vẽ CAD.
VISRETAIN: vì sao chỉnh màu lớp của tham chiếu xong lại mất
Tình huống quen thuộc. Bạn tắt vài lớp của bản vẽ được tham chiếu cho đỡ rối, hôm sau mở ra thì chúng bật lại hết.
Thủ phạm là biến VISRETAIN, Autodesk mô tả là "Controls the properties of xref-dependent layers." Chúng tôi đo bằng cách đổi màu một lớp của tệp tham chiếu rồi nạp lại.
VISRETAIN | Màu gốc | Sau khi đổi | Sau khi nạp lại |
|---|---|---|---|
| 0 | 3 | 1 | 3 |
| 1 | 3 | 1 | 1 |
Hai dòng khác nhau đúng ở ô cuối, và đó là toàn bộ câu chuyện. Đặt 0 thì mọi chỉnh sửa lớp của bạn bị bỏ đi mỗi lần nạp lại; đặt 1 thì chúng được giữ.
Autodesk viết rõ cho giá trị 1: "Xref-dependent layer changes made in the current drawing take precedence. Layer settings are saved with the current drawing's layer table and persist from session to session."
Máy chúng tôi đo được giá trị ngầm định là 1, tức là đã đúng sẵn. Nên nếu bạn gặp cảnh chỉnh xong lại mất, hãy kiểm biến này trước, vì nó lưu theo từng bản vẽ chứ không phải theo máy. Cách làm việc với lớp nói chung nằm ở bài layer trong CAD.
Mất tệp nguồn thì máy báo gì
Chúng tôi đổi tên tệp nguồn trên đĩa rồi chạy nạp lại. Máy trả về đúng hai dòng, chép nguyên văn.
Reload Xref "xr-bon": .\xr-bon.dwg
"xr-bon.dwg" cannot be found.
Màn hình thành đúng như nửa phải của ảnh trên: khung tên còn nguyên, nội dung được tham chiếu biến mất sạch. Không có nét nào của nó ở lại.
Ba nguyên nhân hay gặp, xếp theo mức độ thường gặp.
Gửi thiếu tệp. Chép mỗi bản vẽ chính rồi gửi đi, tệp nguồn ở lại máy mình. Đây là nguyên nhân số một.
Đổi tên hoặc chuyển thư mục. Đường dẫn tương đối chịu được việc chép cả thư mục sang chỗ khác, nhưng không chịu được việc đổi tên thư mục con nằm giữa đường.
Đường dẫn đầy đủ. Bản vẽ ghi cả tên ổ đĩa của máy người lập. Máy người nhận không có ổ ấy là đứt.
Cách chữa dứt điểm trước khi gửi hồ sơ chỉ có hai: hoặc gộp hết bằng Bind, hoặc đóng gói bằng ETRANSMIT để máy tự nhặt đủ tệp đi kèm.
Cách xref trong CAD cho một nhóm nhiều người
Lợi ích thật của tham chiếu ngoài không nằm ở chỗ tệp nhẹ. Nó nằm ở chỗ một nguồn duy nhất.
Mặt bằng kiến trúc là một tệp. Bản vẽ kết cấu, bản vẽ điện, bản vẽ nước mỗi thứ một tệp, và cả ba cùng tham chiếu tới mặt bằng ấy. Kiến trúc dịch một bức tường, ba bộ môn kia nạp lại là thấy ngay, không ai phải chép lại mặt bằng lần nữa.
Ba thói quen giữ cho cách làm này không vỡ.
Để tệp nguồn cạnh bản vẽ chính, cùng một thư mục gốc, và để REFPATHTYPE ở giá trị 1.
Đặt tên lớp có tiền tố bộ môn ngay trong tệp nguồn. Khi gộp theo kiểu Insert, lớp trùng tên sẽ bị trộn, và tiền tố là thứ duy nhất ngăn chuyện đó.
Dùng Overlay thay Attach khi có tham chiếu lồng nhau. Kiểu Attachment kéo theo cả các tham chiếu con; kiểu Overlay thì không, nên tránh được cảnh hai bộ môn tham chiếu chéo nhau rồi thành vòng lặp.
Khi cần đưa nội dung tham chiếu sang bố cục in, cơ chế khung nhìn nằm ở bài xoay bản vẽ trong layout.
Ba điều hay nghe nhưng không đúng
| Điều hay nghe | Thực tế đo trên bản 2027 |
|---|---|
| Bind và Insert về cơ bản giống nhau | Tên lớp ra khác hẳn: $0$ giữ lớp riêng, còn Insert trộn thẳng vào lớp cùng tên |
| Xoá nét tham chiếu đi là gỡ xong | Bản ghi khối vẫn còn; chỉ Detach mới cắt được liên kết |
| Chỉnh lớp của tham chiếu thì không lưu được | VISRETAIN đặt 1, đo được là giữ nguyên sau khi nạp lại |
Câu hỏi thường gặp
Lệnh gõ tắt là gì?
XR. Nó mở bảng quản lý tham chiếu ngoài. Muốn làm bằng dòng lệnh thì gõ -XREF.
Bind và Insert khác nhau chỗ nào?
Ở tên lớp. Bind cho tentep$0$tenlop, giữ lớp riêng. Insert bỏ hết tiền tố, lớp trùng tên bị trộn vào lớp có sẵn và lấy luôn màu của lớp ấy.
Xoá bằng phím Delete có gỡ được không?
Không. Chúng tôi xoá bằng ERASE rồi tra lại bảng khối, bản ghi của tệp nguồn vẫn còn. Phải dùng Detach.
Gửi bản vẽ cho người khác thế nào cho đủ?
Hoặc gộp hết bằng Bind trước khi gửi, hoặc dùng ETRANSMIT để máy tự đóng gói cả tệp nguồn.
Tắt lớp của tham chiếu xong mở lại thấy bật hết?
Kiểm biến VISRETAIN. Giá trị 0 thì mọi chỉnh sửa bị bỏ mỗi lần nạp lại; giá trị 1 thì được giữ. Biến này lưu theo từng bản vẽ.