AutoCAD – Bản vẽ

Lỗi không hatch được trong CAD: bốn nguyên nhân và cách dò đúng cái của mình

Lỗi không hatch được trong CAD có bốn nguyên nhân khác hẳn nhau, mỗi cái một cách chữa. Bài chỉ cách dò đúng cái của mình thay vì thử mò từng thứ.

  • TS. Đỗ Quốc Hoàng
  • 9 phút đọc
Bốn nguyên nhân làm không tô được hatch, mỗi nhánh một dấu hiệu nhận biết và một cách chữa riêng Ảnh: Sơ đồ của Viện Tin học Xây dựng

Bạn gõ H, chỉ vào giữa một ô tường, và không có gì xảy ra. Hoặc có gì đó xảy ra nhưng nhìn vào vẫn trắng trơn. Lỗi không hatch được trong CAD không phải một lỗi mà là bốn lỗi khác hẳn nhau, và chữa nhầm cái thì mất cả buổi.

Bài này tách bốn nguyên nhân ra, kèm dấu hiệu nhận biết riêng của từng cái. Muốn học trọn phần trình bày bản vẽ, Viện có khoá AutoCAD cho ngành xây dựng.

Phân biệt trước: không tạo được, hay tạo được mà không thấy

Đây là chỗ phải tách ngay từ đầu, vì hai chuyện này chữa hoàn toàn khác nhau.

Một hình chữ nhật 20 × 10 tô với tỉ lệ mẫu 100 thì AutoCAD vẫn tạo ra mảng tô, diện tích đọc được đúng 200 đơn vị vuông. Nhưng nhìn vào bản vẽ thì không thấy một nét gạch nào, vì một chu kỳ mẫu ở tỉ lệ 100 dài hơn cả cạnh hình.

Nghĩa là không hatch được trong cad và "hatch xong mà không hiện" là hai tình huống khác nhau.

Dấu hiệuThực chất
Dòng lệnh báo Valid hatch boundary not found.Không tạo được — lỗi đường bao
Lệnh chạy xong, không báo gì, nhìn vẫn trắngTạo được rồi — lỗi hiển thị hoặc tỉ lệ

Cách kiểm trong ba giây: bấm vào chỗ vừa tô. Nếu có một đối tượng được chọn thì mảng tô đã có, và bạn đang gặp nhóm lỗi thứ hai.

Nguyên nhân 1: đường bao không khép kín

Đây là nguyên nhân phổ biến nhất của lỗi hatch trong cad, và cũng là nguyên nhân duy nhất mà máy chịu báo ra lời.

Autodesk nói thẳng trong trang hỏi đáp về hatch: "When defining a hatch boundary, there can't be any gaps in the geometry."

Bản 2027 phân xử rất dứt khoát. Một đa tuyến khép kín 2000 × 1000 tô được ngay, diện tích đúng 2.000.000. Cùng hình ấy để hở thì AutoCAD từ chối ngay ở bước nhận đường bao, không đợi tới lúc vẽ mẫu.

Điều làm nó khó bắt là khe hở thường nhỏ hơn bề dày nét, phóng to hết cỡ vẫn nhìn như liền. Có ba cách tìm ra nó.

Cách một — để máy tự tìm.BOUNDARY, chọn Object typePolyline, rồi chỉ vào vùng. Máy tạo được đường bao thì vùng ấy kín; máy báo không tìm được thì có khe.

Cách hai — nối lại bằng lệnh.PEDIT, chọn Multiple, quét hết các nét, chọn Join, rồi nhập một khoảng dung sai nhỏ. Các đoạn gần nhau sẽ nối thành một đa tuyến liền.

Cách ba — bảo máy bỏ qua khe. Biến HPGAPTOL sinh ra đúng cho việc này. Tài liệu Autodesk về biến HPGAPTOL định nghĩa nó là "the maximum gaps between a set of objects that almost enclose an area to still be treated as a closed hatch boundary". Biến này mặc định 0 và nhận giá trị từ 0 đến 5000 theo đơn vị bản vẽ.

Mặc định của bản 2027 đúng là HPGAPTOL bằng 0, tức máy không tha một khe nào. Đặt nó bằng bề rộng khe lớn nhất bạn chấp nhận — với bản vẽ mm thì 2 đến 5 là đủ.

Nhưng đây là cách chữa triệu chứng. Khe hở vẫn còn trong bản vẽ, và nó sẽ làm sai diện tích đọc được, sai chu vi, và làm hỏng cả việc xuất sang phần mềm khác.

Nguyên nhân 2: có phần đường bao nằm ngoài màn hình

Nguyên nhân này ít ai ngờ tới, và Autodesk ghi rõ trên cùng trang: "All objects being used to define the boundary of a hatch object must be visible in the current drawing view."

Nghĩa là nếu bạn phóng to vào một góc phòng rồi tô, mà cạnh đối diện của phòng đang nằm ngoài màn hình, thì máy không dựng được đường bao. Không có khe hở nào cả — chỉ là máy không nhìn thấy đủ.

Chữa bằng một thao tác: gõ Z rồi E để thu toàn bộ bản vẽ vào màn hình, hoặc chỉ cần lùi ra đủ để thấy trọn vùng cần tô, rồi tô lại.

Đây cũng là lý do một mảng tô hôm qua làm được, hôm nay mở ra tô lại thì báo lỗi: mức phóng đã khác.

Nguyên nhân 3: tỉ lệ mẫu sai nên nhìn như không có gì

Nhóm này là lỗi không hiện hatch trong cad chứ không phải lỗi tạo. Mảng tô đã nằm đó, chỉ là mắt không thấy.

Có hai hướng sai ngược nhau.

Tỉ lệ so với hìnhNhìn thấy gì
Quá lớnTrắng trơn, không một nét gạch nào lọt vào trong hình
Quá nhỏĐặc kín một mảng đen, các nét sát nhau hơn bề rộng nét in

Autodesk mô tả cách xử lý: "you may need to adjust the Maximum Hatch display setting or the scale assigned to the hatch object".

Cách chữa nhanh: chọn mảng tô, Ctrl+1, sửa ô Scale. Bản vẽ xây dựng vẽ bằng milimét in ở 1:100 thì tỉ lệ quanh 1 là hợp với các mẫu ISO. Cách chọn tỉ lệ theo từng tỉ lệ in nằm ở bài lệnh hatch trong CAD.

Còn một trần cứng nữa: biến HPMAXLINES, đo trên bản 2027 là 100.000. Mẫu cần vẽ nhiều nét hơn số ấy thì máy từ chối tô và báo ra. Gặp trường hợp này thì tăng tỉ lệ chứ đừng tăng trần — số nét quá lớn làm bản vẽ nặng và in rất chậm.

Nguyên nhân 4: chế độ tô đặc đang tắt

Nguyên nhân cuối cùng dễ chữa nhất, và hay bị bỏ qua nhất vì nó ảnh hưởng mọi mảng tô trong bản vẽ cùng lúc.

Biến FILLMODE quyết định máy vẽ ruột của mảng tô hay chỉ vẽ đường bao. Autodesk mô tả: "Fill Mode setting controls whether the pattern of a hatch object is suppressed and only its boundary is displayed."

Trên một bản vẽ mới, FILLMODE mặc định bằng 1, tức đang bật. Ai đó tắt nó đi — hoặc nhận một bản vẽ có nó bị tắt sẵn — thì mọi mảng tô biến mất cùng lúc, kể cả những mảng vẫn hiện bình thường hôm trước.

Dấu hiệu nhận ra rất rõ: tất cả mảng tô cùng mất, không riêng cái vừa làm. Gõ FILLMODE, đặt về 1, rồi gõ REGEN.

Lệnh hatch không hiện bảng: một chuyện khác hẳn

Có một tình huống bị gộp nhầm vào nhóm này: gõ lệnh mà lệnh hatch không hiện bảng chọn mẫu, máy hỏi thẳng trên dòng lệnh.

Đây không phải lỗi. Biến HPDLGMODE quyết định lệnh mở hộp thoại hay hỏi trên dòng lệnh. Để 1 thì bảng chọn mẫu hiện ra như thường; để 0 thì lệnh H hỏi thẳng từng bước trên dòng lệnh và không có bảng nào.

Có một nguồn nhầm lẫn nữa: gõ -HATCH với dấu gạch nối ở đầu thì bao giờ cũng chạy bằng dòng lệnh, bất kể HPDLGMODE bằng mấy. Đó là thiết kế chứ không phải hỏng.

Muốn hộp thoại trở lại thì đặt HPDLGMODE về 1, và nhớ gõ H chứ đừng gõ -H.

Hatch không hiện diện tích: thường không phải lỗi

Cụm hatch không hiện diện tích hay bị hiểu nhầm, nên cần nói rõ.

Ba trường hợp dưới đây dùng chung một hình 2000 × 1000.

Trường hợpDiện tích đọc được
Mảng tô liên kết, còn đường bao2.000.000
Đã xoá đường bao2.000.000
Mảng tô không liên kết2.000.000

Cả ba đều trả về đủ. Nghĩa là lỗi hatch không hiện diện tích không đến từ việc mất liên kết hay mất đường bao như nhiều nơi viết.

Nguyên nhân thật gần như luôn là: bạn đang chọn nhiều mảng tô cùng lúc. Khi ấy ô Area hiện *VARIES*, còn tổng nằm ở dòng ngay bên dưới tên là Cumulative Area. Cách cộng diện tích mảng tô cho cả bản vẽ nằm ở bài lisp tính diện tích hatch.

Trình tự dò trong một phút

Làm theo đúng thứ tự này thì không phải thử mò.

  1. Bấm vào chỗ vừa tô. Chọn được đối tượng nghĩa là mảng tô đã có — nhảy xuống bước 4.
  2. Đọc dòng lệnh. Thấy Valid hatch boundary not found. là lỗi đường bao — chạy BOUNDARY để tìm khe.
  3. Z rồi E rồi tô lại. Được ngay thì nguyên nhân là đường bao nằm ngoài màn hình.
  4. FILLMODE, xem có bằng 1 không. Bằng 0 thì đặt lại 1 rồi REGEN.
  5. Chọn mảng tô, Ctrl+1, sửa ô Scale. Đổi một bậc lớn — từ 1 lên 10 hoặc xuống 0,1 — để thấy ngay có phải lỗi tỉ lệ không.

Ba điều hay nghe mà không đúng

Hay ngheBản 2027 thực sự làm gì
Không tô được là do đường bao hởHình 20×10 tỉ lệ 100 tô được bình thường, chỉ là không thấy
Xoá đường bao thì mất diện tích mảng tôVẫn đọc đủ 2.000.000 sau khi xoá đường bao
Tăng HPGAPTOL là chữa được khe hởNó chỉ bỏ qua khe khi tô; khe vẫn còn và vẫn làm sai diện tích về sau

Câu hỏi thường gặp

Lỗi không hatch được trong CAD hay gặp nhất là do đâu?

Đường bao hở. Dấu hiệu là dòng lệnh báo Valid hatch boundary not found. Chạy BOUNDARY chỉ vào vùng ấy để máy tự tìm khe.

Máy không báo gì mà vẫn không thấy hatch?

Mảng tô đã được tạo. Kiểm FILLMODE có bằng 1 không, rồi kiểm tỉ lệ mẫu trong bảng Properties.

Đặt HPGAPTOL bao nhiêu là hợp?

Bằng bề rộng khe lớn nhất bạn chấp nhận bỏ qua. Bản vẽ milimét thì 2 đến 5. Nhưng nên vá khe thật thay vì để đó.

Vì sao cùng một vùng, hôm qua tô được hôm nay không?

Rất có thể mức phóng đã khác. Autodesk yêu cầu mọi đối tượng tạo nên đường bao phải đang hiển thị trong khung nhìn hiện tại.

Tô xong thì thành một mảng đen đặc?

Tỉ lệ mẫu quá nhỏ nên các nét sát nhau hơn bề rộng nét in. Tăng ô Scale lên.

Mảng tô của tôi không có ô diện tích?

Kiểm xem có đang chọn nhiều mảng cùng lúc không. Khi ấy ô Area hiện *VARIES* còn tổng nằm ở dòng Cumulative Area ngay dưới.

Về tác giả

TS. Đỗ Quốc Hoàng — Phó Viện trưởng Viện Tin học Xây dựng, Trường Đại học Xây dựng Hà Nội, chuyên gia phát triển phần mềm cho ngành xây dựng