Bản vẽ kiến trúc nào cũng đầy cửa: cửa 600, cửa 800, cửa 900. Cách làm quen thuộc là vẽ mỗi cỡ một block rồi ôm cả chục cái tên trong bảng quản lý. Block động trong CAD gộp tất cả lại thành một thẻ duy nhất: chọn nó, kéo một mũi tên xanh, bề rộng đổi ngay mà chiều cao giữ nguyên.
Ba cánh cửa ở ảnh đầu bài là cùng một thẻ chép ra ba bản. Chúng tôi đo toàn bộ bài này trên AutoCAD 2027 tại Viện, mỗi con số đều có đối chứng. Nếu bạn muốn học bài bản từ gốc, Viện có khóa AutoCAD cho ngành xây dựng dạy trọn phần block và layout.
Thư viện block động trong CAD đã nằm sẵn trên máy bạn
Đây là điều gần như không trang tiếng Việt nào nhắc: bản cài AutoCAD đã kèm sẵn một bộ mẫu. Chúng tôi đếm trên máy và thấy có 13 tệp trong thư mục dưới đây.
C:\Program Files\Autodesk\AutoCAD 2027\Sample\en-us\Dynamic Blocks\
Sáu bộ môn, mỗi bộ hai hệ đơn vị, cộng thêm một tệp riêng cho đầu dẫn — vị chi 13 tệp.
| Tệp | Hệ mét | Hệ inch |
|---|---|---|
| Kiến trúc | Architectural - Metric.dwg | Architectural - Imperial.dwg |
| Kết cấu | Structural - Metric.dwg | Structural - Imperial.dwg |
| Hạ tầng | Civil - Metric.dwg | Civil - Imperial.dwg |
| Điện | Electrical - Metric.dwg | Electrical - Imperial.dwg |
| Cơ khí | Mechanical - Metric.dwg | Mechanical - Imperial.dwg |
| Ghi chú | Annotation - Metric.dwg | Annotation - Imperial.dwg |
| Đầu dẫn | Multileader Tools.dwg | dùng chung |
Người đi tìm thư viện dynamic block autocad thường tải về những gói trôi nổi không rõ nguồn. Bộ này do Autodesk phát hành kèm phần mềm, mở ra là dùng được, và hợp lệ về bản quyền.
Mở thử Architectural - Metric.dwg, chúng tôi đếm được 12 định nghĩa block, trong đó 9 định nghĩa là block động. Cách lấy sang bản vẽ của bạn giống hệt block thường: mở tệp mẫu, chép cái cần dùng, dán sang bản vẽ đang làm. Chi tiết về chèn và quản lý block nằm ở bài block trong CAD.
Cách gọi lệnh, đọc thẳng từ tệp giao diện
Bảng dưới đọc từ tệp acad.cuix của bản 2027 trên máy, không viết theo trí nhớ.
| Lệnh | Lệnh tắt | Ribbon | Menu cổ điển |
|---|---|---|---|
BEDIT | BE | Home → Block → Edit | Tools → Block Editor |
BCLOSE | BC | không có | không có |
BSAVE | BS | không có | không có |
BPARAMETER | PARAM | không có | không có |
BACTION | AC | không có | không có |
BVSTATE | BVS | không có | không có |
RESETBLOCK | không có | không có | không có |
Chỉ BEDIT có nút bấm. Sáu lệnh còn lại phải gõ, mà RESETBLOCK thì không có cả lệnh tắt — gõ đủ mười ký tự.
Gọi BCLOSE hay BSAVE khi đang ở ngoài, máy trả lời nguyên văn:
** BCLOSE command only allowed in Block Editor. **
Tạo block động trong CAD: từng bước trên dòng lệnh
Hầu hết hướng dẫn đều bảo nháy đúp vào block để mở hộp thoại. Có đường khác gọn hơn mà chúng tôi đo được trên bản 2027: lệnh -BEDIT có dấu gạch nối, chạy hoàn toàn trên dòng lệnh, không mở hộp thoại nào.
| Bước | Máy hỏi nguyên văn | Bạn làm |
|---|---|---|
| 1 | Command: | Gõ -BEDIT rồi Enter |
| 2 | Enter block name or [?]: | Gõ tên block, ví dụ Door Elevation - Metric |
| 3 | — | Máy vào Block Editor, biến BLOCKEDITOR nhảy từ 0 lên 1 |
| 4 | Command: | Gõ PARAM để đặt thông số, chọn kiểu Linear |
| 5 | Command: | Gõ AC để gán hành động, chọn Stretch |
| 6 | Command: | Gõ BCLOSE |
| 7 | Enter option [Save/Discard changes] <Save>: | Gõ S để ghi, hoặc D để bỏ |
Bước 7 là chỗ cần dừng lại. Chúng tôi vào Block Editor rồi thoát ra mà không sửa gì cả, máy vẫn hỏi câu đó. Nghĩa là BCLOSE luôn hỏi, và mặc định trong dấu ngoặc nhọn là Save. Ai quen bấm Enter cho nhanh là đã đồng ý ghi đè lên định nghĩa block.
Khi ở trong Block Editor, phép đếm cho thấy có 20 đối tượng thuộc định nghĩa cửa ấy. Đó là toàn bộ nét vẽ, thông số và hành động của block — sửa gì trong đó là sửa cho mọi thẻ block cùng tên trên bản vẽ.
Hai lệnh đáng nhớ nhất khi tạo block động trong cad là BPARAMETER và BACTION. Thông số nói đo cái gì, hành động nói đo xong thì kéo cái gì theo. Thiếu một trong hai thì block vẫn đứng yên.
Danh sách giá trị: vì sao gõ 850 lại ra 800
Đây là bẫy làm nhiều người tưởng máy hỏng. Bạn gõ một con số vào ô thông số, máy nhận số khác, mà không báo lỗi gì.
Nguyên nhân là danh sách giá trị. Autodesk định nghĩa trong trang About Specifying Value Sets for Dynamic Blocks của bản 2027 đúng một câu: "A value set is a range or list of values specified for a parameter".
Trang đó nói giá trị bị giới hạn, nhưng không nói máy làm gì khi bạn gõ ra ngoài danh sách. Chúng tôi đo lấy. Thông số Width của block cửa mẫu nhận đúng sáu giá trị: 600, 700, 750, 800, 900, 1000.
| Bạn gõ | Máy nhận | Vì sao |
|---|---|---|
| 900 | 900 | Đối chứng dương: số có trong danh sách thì giữ nguyên |
| 300 | 600 | Dưới đáy, kẹp về giá trị nhỏ nhất |
| 740 | 750 | Lệch 10 so với 750, lệch 40 so với 700 |
| 760 | 750 | Lệch 10 so với 750, lệch 40 so với 800 |
| 850 | 800 | Cách đều 800 và 900, máy chọn số nhỏ hơn |
| 1500 | 1000 | Trên trần, kẹp về giá trị lớn nhất |
Dòng 850 là dòng đáng nhớ: khi khoảng cách hoà nhau, máy lấy giá trị nhỏ hơn. Không tài liệu nào ghi điều này, kể cả trang của Autodesk.
Hệ quả thực tế rất đơn giản. Nếu bạn gõ bề rộng mà cánh cửa nhảy sang số khác, block không hỏng — nó chỉ đang bị khoá vào một danh sách. Muốn có cỡ khác thì phải vào Block Editor sửa danh sách ấy, chứ gõ bao nhiêu lần cũng vậy.
Sửa block động trong CAD mà không làm hỏng bản vẽ
Có hai mức sửa, và nhầm lẫn giữa hai mức là nguồn gốc của phần lớn tai nạn.
Mức nhẹ là đổi thông số của một thẻ trên bản vẽ: kéo mũi tên hoặc gõ số vào bảng Properties. Các thẻ khác không đụng gì tới. Mức nặng là vào Block Editor sửa định nghĩa — sửa xong thì mọi thẻ cùng tên trên bản vẽ đổi theo.
Lệnh RESETBLOCK đưa một thẻ về mặc định. Autodesk mô tả nó một dòng: "Resets one or more dynamic block references to the default values of the block definition". Dòng nhắc duy nhất của lệnh là Select objects:.
Chữ default values of the block definition rất dễ đọc lướt qua, nên chúng tôi đo cho rõ:
| Việc vừa làm | Thông số Width |
|---|---|
| Thẻ block lúc mới mở bản vẽ | 900 |
| Đặt tay xuống 600 | 600 |
Chạy RESETBLOCK | 800 |
Đối chứng âm: đặt lại 600 và không chạy RESETBLOCK | 600 |
RESETBLOCK không phải nút hoàn tác. Nó không trả về 900 mà thẻ đang có lúc đầu, nó trả về 800 là giá trị ghi trong định nghĩa. Ai dùng nó để "quay lại như cũ" sẽ mất đúng cái mình muốn giữ.
Còn một chi tiết hay làm người mới hoang mang. Chọn một thẻ block động rồi đọc mã của nó, tên block hiện ra là *U8 chứ không phải Door Elevation - Metric. Đó là tên vô danh mà AutoCAD tự sinh cho mỗi biến thể; tên thật nằm ở thuộc tính tên hiệu dụng. Vì vậy các lisp lọc block theo tên sẽ trượt hết block động nếu chỉ so tên thường — bài đếm block trong CAD có nói kỹ chỗ này.
Muốn cấm người khác mở Block Editor thì đặt biến BLOCKEDITLOCK bằng 1. Trên máy chúng tôi đo, giá trị mặc định là 0, tức đang mở cho mọi người. Cách sửa block động trong cad an toàn nhất vẫn là nhân bản định nghĩa ra một tên mới rồi sửa bản sao, thay vì sửa thẳng cái đang dùng; bài sửa block trong CAD trình bày đủ các cách.
Phá block động trong CAD: nổ ra thì còn lại gì
Nhiều người nổ block để chỉnh cho nhanh. Chúng tôi đo xem nổ xong thực sự còn gì.
Bản vẽ trước khi nổ có 9 thẻ block. Chạy EXPLODE lên một thẻ block động, đếm lại còn 8 thẻ block, và đối tượng sinh ra sau cùng là một DIMENSION.
Nói cách khác, phá block động trong cad không cho ra một mớ đường thẳng rời rạc như nhiều người tưởng. Nó trả về đúng những đối tượng đang nằm trong thẻ ở trạng thái hiện tại: đường, kích thước, và cả block con nếu định nghĩa có lồng block.
Điều mất đi là toàn bộ thông số. Sau khi nổ, không còn mũi tên để kéo, không còn danh sách giá trị. Muốn có lại thì phải tạo block mới từ đầu. Vì vậy nổ block động chỉ nên dùng khi bạn chắc chắn không cần điều chỉnh nữa.
Lưu về bản DWG cũ có mất tính động không
Câu này được nhắc rất nhiều mà hiếm ai đo. Chúng tôi lưu tệp mẫu về định dạng AutoCAD 2000 rồi mở lại.
| Việc làm | Mã định dạng | Dung lượng | Định nghĩa động khi mở lại |
|---|---|---|---|
| Tệp gốc | AC1024 | 205.805 byte | 9 |
| Lưu về AutoCAD 2000 | AC1015 | 386.762 byte | 9, đủ 5 thông số |
| Đối chứng: lưu bản 2018 | AC1032 | 187.660 byte | 9 |
Kết quả ngược với điều thường nghe: dữ liệu động vẫn nằm trong tệp định dạng 2000, và AutoCAD 2027 mở lại vẫn đọc đủ. Cái giá phải trả là dung lượng, tệp phình từ 205.805 lên 386.762 byte, tức tăng 88%.
Cần nói rõ giới hạn của phép đo này. Chúng tôi đọc lại tệp bằng chính bản 2027, không có máy chạy AutoCAD 2000 để kiểm, nên chỉ khẳng định phần dữ liệu còn nguyên trong tệp. Một bản 2000 thật có hiểu được dữ liệu đó hay không thì chúng tôi chưa đo và không nói bừa.
Ba điều nhiều nơi nói mà máy làm khác
| Điều thường nghe | Bản 2027 thực sự làm gì |
|---|---|
| Phải nháy đúp mở hộp thoại mới vào được Block Editor | -BEDIT vào thẳng bằng dòng lệnh, hỏi Enter block name or [?]: |
RESETBLOCK đưa thẻ về như trước khi sửa | Nó đưa về mặc định của định nghĩa; đo được 800 chứ không phải 900 |
| Hạ đời tệp là mất block động | Tệp AC1015 mở lại vẫn đủ 9 định nghĩa động và đủ thông số |
Tóm lại, block động không phải thứ khó. Nó chỉ có hai khái niệm: thông số đo cái gì, hành động kéo cái gì theo. Nắm hai chữ đó rồi thì phần còn lại là thói quen.
Câu hỏi thường gặp
Lệnh tắt của Block Editor là gì?
BE. Muốn tránh hộp thoại thì gõ -BEDIT rồi nhập tên block ngay trên dòng lệnh.
Vì sao gõ bề rộng mà cánh cửa nhảy sang số khác?
Thông số đang bị khoá vào một danh sách giá trị. Máy lấy giá trị gần nhất trong danh sách, và khi cách đều hai bên thì lấy số nhỏ hơn.
RESETBLOCK có phải lệnh hoàn tác không?
Không. Nó đưa thẻ về mặc định ghi trong định nghĩa block, có thể khác hẳn giá trị bạn vừa sửa. Muốn hoàn tác thì dùng U.
Tìm block động mẫu ở đâu cho an toàn?
Ngay trong thư mục Sample\en-us\Dynamic Blocks của bản cài. Có 13 tệp chia theo sáu bộ môn.
Vì sao bảng Properties hiện tên block là *U8?
Đó là tên vô danh AutoCAD tự sinh cho từng biến thể. Tên thật nằm ở thuộc tính tên hiệu dụng, không phải tên block thường.
Nổ block động ra thì có lấy lại được không?
Không, trừ khi bấm U ngay. Nổ xong là mất hết thông số và phải dựng block mới.