BIM

Lệnh array trong CAD: mười hai hình mà chỉ là một đối tượng

Lệnh array trong CAD từ bản mới sinh ra một đối tượng duy nhất chứ không phải nhiều bản sao. Bài đếm lại đối tượng để chỉ rõ khác biệt ấy.

  • TS. Đỗ Quốc Hoàng
  • 9 phút đọc
Hai mảng bốn hàng ba cột trông giống hệt nhau, nhưng một bên là một đối tượng còn bên kia là mười hai Ảnh: Ảnh chụp trên AutoCAD 2027 tại Viện

Lệnh array trong CAD chép một hình thành nhiều bản theo hàng cột hoặc theo vòng tròn. Ai cũng biết thế. Điều ít người biết là từ nhiều bản nay nó không còn sinh ra nhiều bản sao rời rạc nữa.

Bài này đếm lại số đối tượng để chỉ rõ khác biệt ấy, đo trên AutoCAD 2027 tại Viện. Muốn học trọn bộ lệnh dựng hình nhanh thì xem khóa AutoCAD Xây Dựng.

Hai mảng trông giống hệt nhau, đếm thì khác hẳn

Trang ARRAYRECT của Autodesk mô tả lệnh bằng một câu: "Distributes object copies into any combination of rows, columns, and levels." Chúng tôi vẽ một hình tròn, chạy lệnh tạo mảng bốn hàng ba cột, rồi đếm số đối tượng vừa sinh ra. Sau đó làm lại y hệt với biến ARRAYASSOCIATIVITY đặt về 0.

Hai mảng giống nhau nhưng khác bản chất Ảnh: Hai mảng bốn hàng ba cột dựng từ cùng một hình tròn, bước hàng 800 và bước cột 900. Trái là mảng liên kết, phải là mảng rời. Trên màn hình không phân biệt được
ARRAYASSOCIATIVITYSố đối tượng sinh raLoại đối tượng
1 (ngầm định)1INSERT
011hình tròn rời

Dòng đầu là chỗ đáng ngạc nhiên. Mười hai hình tròn trên màn hình, mà trong tệp chỉ là một đối tượng, và loại của nó là INSERT, tức là một khối.

Chúng tôi kiểm lại bằng một cách khác. Quét chọn đúng vùng của một hình tròn trong mảng liên kết, máy trả về 1 đối tượng, loại INSERT. Chạm vào một hình là chạm vào cả mười hai, vì chúng chỉ là một.

Mảng liên kết được gì và mất gì

Autodesk mô tả hai trạng thái ấy khá rõ. Chọn Yes thì "Contains array items in a single array object, similar to a block", còn chọn No thì "Creates array items as independent objects. Changes to one item do not affect the other items."

Cụm similar to a block giải thích đúng con số chúng tôi đo được: loại đối tượng là INSERT.

Cả hai kiểu đều có chỗ dùng, nên biết đánh đổi là chọn đúng.

Mảng liên kếtMảng rời
Sửa số hàng, số cộtkéo một nút là xongphải xoá rồi làm lại
Sửa một phần tử riêngphải vào chế độ sửa trong mảngsửa thẳng như hình thường
Số đối tượng trong tệpmộtbằng số phần tử
Xoá bớt một phần tửkhông xoá thẳng đượcxoá như hình thường

Ưu điểm lớn nhất của mảng liên kết là sửa được sau khi đã tạo. Dãy cọc móng dựng xong mới biết phải thêm một hàng, bạn chọn mảng rồi kéo nút, khỏi làm lại từ đầu.

Nhược điểm cũng rõ. Cần xoá đúng một cọc ở góc vì vướng đài móng thì mảng liên kết cản đường, và bạn phải phá nó ra.

Cách dùng lệnh array trong CAD: ba kiểu mảng

AutoCAD có ba lệnh riêng, không còn gộp trong một hộp thoại như bản cũ.

LệnhKiểu mảngDùng cho
ARRAYRECThàng và cộtlưới cọc, lưới cột, ô gạch
ARRAYPOLARquanh một tâmbulông quanh mặt bích, ghế quanh bàn tròn
ARRAYPATHdọc theo một đườngcây dọc vỉa hè, tà vẹt dọc ray

AR thì vào lệnh chung và nó hỏi chọn kiểu. Gõ thẳng tên đầy đủ thì vào luôn kiểu ấy, nhanh hơn một nhịp.

Dòng nhắc của mảng hàng cột, chép nguyên văn từ bản 2027.

Type = Rectangular Associative = Yes

Specify opposite corner for number of items or [Base point/Angle/Count] <Count>:

Enter number of rows or [Expression] <4>:

Enter number of columns or [Expression] <4>:

Specify the distance between rows or [Expression] <720.0>:

Specify the distance between columns or [Expression] <720.0>:

Dòng đầu cho biết ngay mảng sắp tạo là liên kết hay rời. Nhìn dòng ấy trước khi bấm tiếp là bớt được nhiều lần làm lại.

Bốn dòng sau chứa một cái bẫy nhỏ mà chúng tôi đã tự mắc khi đo bài này. Máy hỏi số hàng trước, số cột sau, ngược với cách người Việt hay nói là "ba cột bốn hàng". Gõ quen tay theo thứ tự trong đầu thì mảng ra đúng số phần tử nhưng sai hình dạng, và bước hàng bước cột cũng đảo theo. Đọc dòng nhắc thay vì gõ theo trí nhớ là xong.

Lựa chọn Expression: khai công thức thay vì con số

Hai chữ Expression trong ngoặc vuông là thứ gần như không ai dùng, mà lại giải quyết đúng bài toán hay gặp nhất.

Thay vì gõ số hàng, bạn gõ một biểu thức. Cần rải cọc suốt chiều dài 24000 với bước 1500 thì gõ 24000/1500 ở câu hỏi số cột, máy tự tính ra 16.

Autodesk mô tả lựa chọn này bằng một câu gọn: "Derives the value based on a mathematical formula or equation." Lợi ích không nằm ở việc đỡ bấm máy tính. Nó nằm ở chỗ bạn ghi lại được ý định của mình: chiều dài chia bước, chứ không phải một con số 16 rơi từ trên trời xuống. Sau này đổi bước cọc, bạn biết ngay phải tính lại thế nào.

Phá mảng ra thì được bao nhiêu hình

Câu hỏi thực tế khi cần sửa một phần tử. Chúng tôi phá mảng liên kết bốn hàng ba cột bằng lệnh EXPLODE rồi đếm lại.

Trước khi pháSau khi phá
1 đối tượng12 đối tượng

Mười hai hình tròn rời rạc, đúng bằng số phần tử. Sau khi phá thì không quay lại được, nên cân nhắc trước.

Cách đỡ mất mát hơn là dùng chế độ sửa ngay trong mảng. Chọn mảng, trên bảng lệnh có nút cho sửa từng phần tử, và bạn đổi được một phần tử mà mảng vẫn là mảng. Cách quản lý khối và thuộc tính nằm ở bài block trong CAD.

Vì sao mảng liên kết lại là một khối

Kết quả đo cho thấy loại đối tượng của mảng liên kết là INSERT, tức là một tham chiếu khối. Điều này giải thích vài hành vi khó hiểu.

Nó giải thích vì sao bấm một phần tử thì cả mảng sáng lên: bạn đang chọn một khối, không phải chọn một hình tròn.

Nó giải thích vì sao mảng nhẹ hơn nhiều so với chép tay: tệp chỉ lưu một định nghĩa cộng với quy luật rải, thay vì mười hai hình tròn.

Và nó giải thích vì sao phải cẩn thận khi dọn bản vẽ: mảng liên kết sinh ra một định nghĩa khối mang tên tự đặt. Lệnh dọn rác không xoá nó khi mảng còn đó, nhưng phá mảng đi thì định nghĩa ấy thành thừa. Cách dọn nằm ở bài làm nhẹ bản vẽ CAD.

Mảng quanh tâm và mảng dọc đường

Hai kiểu còn lại ít được nhắc nhưng giải quyết những việc rất cụ thể trong hồ sơ xây dựng.

Mảng quanh tâm hỏi một điểm làm tâm, số phần tử và góc quét. Điểm đáng nhớ là lựa chọn cho phép quyết định phần tử có xoay theo hay không. Bulông quanh mặt bích thì nên xoay theo; ký hiệu cao độ quanh một sân tròn thì không, vì chữ phải đứng.

Mảng dọc đường rải phần tử dọc theo một đường đã có, kể cả đường cong. Nó hỏi bạn muốn chia đều hay giữ nguyên bước. Chia đều thì khoảng cách tự co giãn cho vừa chiều dài; giữ nguyên bước thì phần dư nằm ở cuối.

Cây xanh dọc vỉa hè cong là ví dụ kinh điển. Vẽ tim vỉa hè bằng một đường đa tuyến, rồi rải khối cây dọc theo nó, và khi tim vỉa hè đổi thì mảng đi theo vì nó liên kết với đường ấy.

Đó cũng là lý do nên dùng mảng liên kết cho việc này. Mảng rời thì đổi tim vỉa hè xong phải rải lại từ đầu.

Ba điều hay nghe nhưng không đúng

Điều hay ngheThực tế đo trên bản 2027
Lệnh mảng chép ra nhiều hình rờiMảng liên kết chỉ sinh một đối tượng, loại INSERT
Tạo mảng xong là không sửa được số hàngKéo nút của mảng liên kết là đổi được hàng, cột, bước
Muốn sửa một phần tử thì phải phá mảngCó chế độ sửa từng phần tử mà mảng vẫn giữ nguyên

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

Lệnh ar trong CAD là lệnh gì?

Là lệnh tắt của ARRAY. Gõ nó thì máy hỏi chọn kiểu mảng; gõ thẳng ARRAYRECT hay ARRAYPOLAR thì vào luôn kiểu ấy.

Vì sao bấm một hình trong mảng thì cả mảng sáng lên?

Vì mảng liên kết là một đối tượng duy nhất, loại INSERT. Chúng tôi đọc loại đối tượng và đếm được đúng một.

Cách sử dụng lệnh array trong CAD để ra các hình rời?

Đặt biến ARRAYASSOCIATIVITY bằng 0 trước khi tạo, hoặc chọn ASsociative rồi trả lời không ngay trong lệnh.

Phá mảng ra thì được bao nhiêu hình?

Đúng bằng số phần tử. Mảng bốn hàng ba cột phá ra cho 12 đối tượng, chúng tôi đếm lại và ra đúng con số ấy.

Mảng liên kết có làm bản vẽ nặng thêm không?

Ngược lại. Tệp chỉ lưu một định nghĩa khối cộng với quy luật rải, thay vì lưu từng bản sao. Với lưới cọc vài trăm phần tử thì khác biệt là đáng kể.

Có tính được số hàng theo chiều dài không?

Có, bằng lựa chọn Expression. Gõ thẳng phép chia, ví dụ 24000/1500, vào câu hỏi số cột.

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 lập trình phần mềm trong xây dựng