Dashboard
0/0
← Quay lại Bài Giảng: Tối Ưu QS + AI

Hướng Dẫn Sử Dụng: Bóc Khối Lượng Cột / Vách / Móng
Qua AutoCAD MCP + Claude

Tài liệu hướng dẫn thao tác thực tế trên bản vẽ của bạn. Toàn bộ các lệnh bên dưới là lệnh của bộ QSTools bản DLL — đúng các nút bạn thấy trên ribbon. Qua AutoCAD MCP, Claude gọi thẳng chính những lệnh đó, dừng lại đúng chỗ bạn cần kiểm tra bằng mắt (nhất là các đối tượng bị tô màu đỏ — tức chưa xác minh được), rồi mới đi tiếp.

🎗️ Toàn bộ các nút dùng trong tài liệu này nằm trên ribbon tab AI_CWF, xếp sẵn theo đúng thứ tự làm việc: 1 Name2 Formwork3 Export, kèm panel Slab và panel Room. Vài lệnh chuẩn bị (CDL, BBW/BWH, BM10A, BMD) nằm ở tab khác — chỗ nào dùng tới sẽ ghi rõ.

🔗 Quy trình này đi cặp với Hướng dẫn bóc khối lượng DẦM (tab AI_STR) — phần ván khuôn cột/vách cần dữ liệu dầm nên hai bên dùng chung nhiều bước. Tường xây nằm ở Hướng dẫn tab AI_WALL  ·  Hoàn thiện: Sàn / Trần / Tô trát.

🎯 Bạn sẽ đạt được gì

🆕 Bổ sung so với bản trước: hai lệnh EXVF/EXVS bóc đào — đắp — lót — bê tông cho móng đơn và sàn đáy hầm; QSBS dựng biên cho cột vẽ bằng 2D SOLID; OO1/OO2 nay nhận mọi loại đối tượng; CS11 bóc được cả hình tròn và elip.

🗺️ Bản đồ quy trình — bấm vào lệnh để nhảy tới bước đó
Cấu hình QSUNITS STSET
Chuẩn bị CDL BBW/BWH QSBS khi cột vẽ bằng 2D SOLID
Gán tên OO1 OO2
Ván khuôn ALO+ ALO1+ ALO1B+ BM10A ALO2
Xuất Excel CS11+ CS12 · S22 khối lượng SÀN
Đào đất EXVF móng đơn EXVS sàn đáy hầm
Diện tích phòng QSRM1 QSRM2/ QSRM3 QSRM4 QSRM5
Cam = bước bắt buộc  ·  Vàng = chỉ chạy khi bản vẽ cần  ·  Xanh = tiện ích.
Tick ô "đã xong" ở mỗi bước để đánh dấu bạn đang làm tới đâu — trình duyệt tự nhớ.
✅ Chuẩn bị trước khi chạy

📥 Bản vẽ mẫu để chạy thử (cùng bộ file với hướng dẫn bóc dầm, vì mặt bằng kết cấu có sẵn cả Cột/Vách/Móng):

  1. Bản vẽ có sẵn Polyline/Circle/Ellipse khoanh vùng Cột/Vách/Móng theo layer chuẩn QS, và text tên/kích thước đặt gần từng đối tượng
  2. Cài đặt QSTools theo link sau: Circleqstools_SetupAI.exe
  3. AutoCAD MCP đã kết nối với Claude Desktop — kiểm tra bằng system(operation="status") thấy backend: "file_ipc"
  4. Mở sẵn Excel để nhận kết quả xuất khối lượng
  5. Đã đặt Floor height trong QSUNITS — bước ALO2 bắt buộc phải có
⚠️ Cách Claude gọi lệnh: mọi lệnh trong tài liệu này đều là lệnh của bản DLL, gọi qua MCP bằng execute_lisp với cú pháp (command "OO1"). Gọi kiểu (C:OO1) sẽ không chạy — dạng (C:xxx) chỉ dùng được cho hàm AutoLISP, còn lệnh DLL nằm trong bảng lệnh của AutoCAD nên phải gọi bằng (command "…").
📦 Cài đặt Skill cho Claude

Toàn bộ quy trình bên dưới đã đóng gói sẵn thành Skill tên autocad-column-wall-footing-workflow — Claude tự nhận diện và chạy đúng thứ tự khi bạn gõ yêu cầu như "bóc khối lượng cột", "tính ván khuôn cột vách theo từng mặt"...

📥 Tải file skill: autocad-column-wall-footing-workflow.zip  ·  kèm theo nên tải cả autocad-beam-workflow.zip vì bước ALO2 cần dữ liệu dầm.

  1. Tải và giải nén — sẽ được 1 thư mục chứa SKILL.mdevals.json.
  2. Copy nguyên thư mục đó vào đường dẫn skill cá nhân trên máy bạn:
    C:\Users\<Tên_của_bạn>\.claude\skills\
    (tự tạo thư mục skills nếu máy bạn chưa có).
  3. Mở lại Claude Desktop / Claude Code — skill tự được nhận diện, không cần cài đặt gì thêm.
  4. Kiểm tra bằng cách gõ: "Chạy quy trình bóc khối lượng cột vách".
⚠️ Skill chỉ chứa quy trình gọi lệnh (hướng dẫn cho Claude) — máy bạn vẫn cần có sẵn AutoCAD MCP kết nối và QSTools bản DLL đã cài thì mới chạy được các lệnh.
📜 Quy trình từng bước — chạy theo đúng thứ tự
Gần như mọi lệnh bên dưới đều dừng lại chờ tương tác — hãy nhìn dòng lệnh AutoCAD xem nó đang chờ gì, xử lý xong rồi mới đi tiếp; đừng yêu cầu Claude gọi liên tiếp nhiều lệnh trong 1 lần chat.
CDL
Chuẩn bị (tuỳ chọn) — Xoá đối tượng bị nhân bản chồng khít
Chọn phạm vi + xác nhận
Việc lệnh làm

Quét Polyline / Circle / Ellipse, phát hiện đối tượng bị copy-paste chồng khít lên nhau (trùng bounding box + diện tích + góc xoay trong dung sai) rồi xoá bản thừa, mỗi nhóm giữ lại một. Không dọn thì mọi thứ phía sau đều nhân đôi: gán tên hai lần, và khối lượng cộng hai lần ở CS11.

Ba dung sai điều khiển việc này nằm trong STSET: CdlBboxTol, CdlAreaTolPct, CdlAngleTol.

"Chạy CDL để dọn các đối tượng cột/vách bị trùng lặp trước khi bắt đầu."
execute_lisp → (command "CDL")
⏸ Điểm dừng

Chờ chọn phạm vi quét, rồi hiện bảng tổng kết từng nhóm trùng trước khi xoá.

✅ Xong đúng thì thấy

Bảng tổng kết cho biết số nhóm trùng và đối tượng nào được giữ lại.

❌ Hay sai chỗ này

Bỏ qua bước này trên bản vẽ nhận từ người khác — bản vẽ chồng hình rất hay gặp, và sai số đi thẳng vào bảng khối lượng.

BBW / BWH
Chuẩn bị (hỗ trợ nhìn) — Tô màu text theo nhóm tiết diện
Chọn text
Việc lệnh làm

Quét text kích thước, gom theo tiết diện rồi tô màu từng nhóm — nhìn mặt bằng là thấy ngay cột nào cùng loại. BBW gom theo bề rộng; BWH cho chọn [Width/Height/Both].

📌 Đây là công cụ nhìn, không phải điều kiện bắt buộc — OO1 đọc text trực tiếp chứ không cần nhóm màu. Bỏ qua cũng không sao; chạy thì dễ soát hơn.

Đơn vị mm/cm lấy từ ô Beam dimension unit trong QS Settings.

"Chạy BWH, tôi chọn text tên cột rồi gom theo Both."
execute_lisp → (command "BWH")
⏸ Điểm dừng

Chờ quét chọn text/mtext; riêng BWH hỏi thêm tiêu chí gom trên dòng lệnh.

✅ Xong đúng thì thấy

Text đổi màu theo nhóm tiết diện, bảng tổng kết liệt kê từng nhóm kèm số lượng.

❌ Hay sai chỗ này

Ô Beam dimension unit để sai mm/cm ⇒ nhóm ra sai 10 lần.

QSBS
Chuẩn bị (khi cần) — Dựng biên polyline cho cột vẽ bằng 2D SOLID
Chọn SOLID + [Keep/Delete]
Việc lệnh làm

Nhiều bản vẽ tô đặc cột/vách bằng 2D SOLID thay vì polyline. SOLID không có thuộc tính diện tích và không lệnh CAD nào rút được biên của nó, nên cả OO1 lẫn CS11 đều không bóc được. Lệnh này dựng một polyline kín trùm khít lên từng SOLID, cùng layer, cùng màu.

"Chạy QSBS để tạo biên polyline cho các cột đang vẽ bằng 2D SOLID."
execute_lisp → (command "QSBS")
⏸ Điểm dừng

Chọn các 2D SOLID → hỏi [Keep/Delete]: giữ hay xoá luôn SOLID gốc.

✅ Xong đúng thì thấy

Mỗi SOLID có một polyline kín nằm chồng khít. Lệnh tự kiểm diện tích: lệch quá 0,1% thì bỏ polyline đó và liệt kê handle ra, chứ không im lặng ghi số sai. Chạy lại không đẻ bản trùng.

❌ Hay sai chỗ này

Đây là anh em của BH (tạo biên cho hatch). Đừng nhầm hai cái: BH cho HATCH, QSBS cho 2D SOLID.

OO1
Bước 1 — Gán tên Cột/Vách/Móng tự động theo text gần nhất
Chọn 2 lượt + nhập thông số
Việc lệnh làm

Với mọi loại đối tượng đã chọn (polyline, hình tròn, elip, line, block…), tìm text gần nhất (đo tới cạnh hình chứ không chỉ tới đỉnh) rồi đổi layer sang dạng mang tên:

D1_(300x500) → QS_CL_OBJ_C1_(300x500)

Hỏi lần lượt, đúng thứ tự cố định: ① chọn toàn bộ hình cần gán → Enter · ② chọn toàn bộ text/mtext dùng để đối chiếu → Enter · ③ nhập khoảng cách tối đa (mm) · ④ có bật kiểm tra diện tích không (Yes khi text ghi sẵn size; No khi bản vẽ chỉ ghi tên).

Chỉ những trường hợp chắc chắn khớp mới được nhận. Mọi chỗ còn nghi ngờ bị tô đỏ và đặt tên QS_CL_OBJ_XXX để bạn xử lý tay ở bước sau.

⚠️ Nhận mọi loại đối tượng không có nghĩa là bóc được mọi loại. CS11 chỉ tính được diện tích của polyline kín, hình tròn và elip; thứ khác lọt vào sẽ bị nó bỏ qua kèm dòng [Skip] calculated size = 0 — không làm sai bảng, nhưng đừng tưởng đã bóc. Cột vẽ bằng 2D SOLID thì chạy QSBS trước để có biên polyline.
⚠️ Tên layer chuẩn hiện nay có tiền tố QS_CL_OBJ_. Bản vẽ cũ dùng CL_OBJ_ vẫn xuất Excel được — CS11 nhận cả hai — nhưng bản vẽ mới nên để lệnh tự đặt, đừng sửa tay tên layer.
"Chạy OO1 để gán tên cột/vách/móng tự động theo text gần nhất."
execute_lisp → (command "OO1")
⏸ Điểm dừng

Dừng ở dòng lệnh qua 4 bước trên. Dòng nhắc luôn hiện "Select objects:" ở cả 2 lượt chọn — nhớ thứ tự: lượt đầu là HÌNH, lượt sau là TEXT.

✅ Xong đúng thì thấy

Phần lớn hình đổi màu theo text của nó; số còn đỏ ít và nằm đúng những chỗ text đặt xa hoặc mập mờ.

❌ Hay sai chỗ này

🔴 Khoảng cách tối đa nhập quá nhỏ ⇒ không hình nào tìm được text, tất cả rơi về QS_CL_OBJ_XXX và bước xuất Excel gộp hết thành vài dòng "XXX" vô nghĩa. Gặp cảnh đó thì nới khoảng cách rồi chạy lại, đừng cố sửa tay từng cái.

OO2
Bước 2 — Gán tên thủ công cho các hình còn màu đỏ
Chọn tay từng cặp
Việc lệnh làm

Lặp: chọn một hình còn đỏ → chọn text tương ứng → lệnh gán tên và đổi màu theo text đó. Nếu text không ghi size mà đối tượng là polyline, lệnh tự tính diện tích/chu vi thật để suy ra kích thước rồi ghép thành <tên>_(LxW).

"Chạy OO2 để tôi ghép tay các hình còn đang màu đỏ."
execute_lisp → (command "OO2")
⏸ Điểm dừng

Lặp lại hỏi chọn hình → chọn text cho tới khi hết; Enter hoặc Esc để dừng.

✅ Xong đúng thì thấy

Không còn hình nào tô đỏ trên mặt bằng.

❌ Hay sai chỗ này

Bỏ sót vài hình đỏ rồi vẫn xuất Excel ⇒ bảng có dòng XXX không biết thuộc cấu kiện nào.

ALO
Bước 3 — Khoanh vùng bề dày SÀN
Chọn vùng + nhập bề dày
Việc lệnh làm

Khoanh các vùng sàn và ghi bề dày vào tên layer: QS_Slab_Full_Area_(150) cho sàn thường, QS_Slab_Step_Area_(±50) cho phần giật cấp.

Vì sao bước bóc cột lại cần vùng sàn: ALO2 tính chiều cao ván khuôn bằng chiều cao tầng trừ đi bề dày của thứ nằm trên mặt cột đó — không có vùng sàn thì nó coi mọi mặt là full chiều cao tầng.

"Chạy ALO để khoanh vùng bề dày sàn."
execute_lisp → (command "ALO")
⏸ Điểm dừng

Chờ chọn vùng và nhập bề dày cho từng vùng.

✅ Xong đúng thì thấy

Các vùng sàn nằm trên layer QS_Slab_Full_Area_* / QS_Slab_Step_Area_*, phủ kín khu vực cần bóc.

❌ Hay sai chỗ này

Bỏ qua ⇒ ALO2 tính mọi mặt cột theo full chiều cao tầng, thừa đúng bằng bề dày sàn ở mọi chỗ.

ALO1
Bước 3B (tuỳ chọn) — Gán bề dày sàn cho LỖ MỞ
Chỉ khi có lỗ mở
Việc lệnh làm

Mỗi đối tượng trên layer QS_Slab_Open_* được tra bề dày sàn tại chỗ nó nằm rồi đổi tên thành QS_Slab_Open_Area_(200). Mặt cột giáp lỗ mở được ALO2 tính full chiều cao tầng vì chỗ đó không có sàn, ván khuôn chạy suốt.

Lỗ vắt qua ranh giới 2 bề dày: lệnh đo tỉ lệ diện tích, vùng nào chiếm từ OpenZoneMinRatio (mặc định 0,95) mới được coi là chủ; dưới ngưỡng thì để nguyên và đưa vào mục cần xử lý.

"Chạy ALO1 để gán bề dày sàn cho các lỗ mở."
execute_lisp → (command "ALO1")
⏸ Điểm dừng

Chạy một lượt rồi hiện bảng tổng kết — đọc mục cần xử lý trước khi đi tiếp.

✅ Xong đúng thì thấy

Layer lỗ mở mang sẵn bề dày, dạng QS_Slab_Open_Area_(200).

❌ Hay sai chỗ này

Lỗ vắt qua 2 bề dày không được gán — phải tự tách lỗ làm 2 rồi chạy lại.

S22
Bước 3B+ (tuỳ chọn) — Xuất khối lượng SÀN ra Excel
Chọn chế độ + chọn vùng sàn
Việc lệnh làm

Đi liền sau ALO/ALO1: các vùng sàn bạn vừa khoanh mang sẵn bề dày trong tên layer, lệnh này đọc chúng và ghi thẳng ra Excel — diện tích và chu vi của từng vùng.

Ba nhóm được ghi theo thứ tự cố định, không theo thứ tự bạn quét chọn: sàn nền QS_Slab_Full_* trước, rồi phần bậc QS_Slab_Step_* ghi thành dòng "Step of-", cuối cùng là lỗ mở QS_Slab_Open_* ghi thành dòng "Deduct open-" mang số lượng âm để trừ ra.

"Chạy S22 xuất khối lượng sàn, chọn chế độ gộp theo layer."
execute_lisp → (command "S22")
⏸ Điểm dừng

Hỏi chế độ xuất: SUMMARY gộp các vùng cùng layer thành một dòng (cộng dồn diện tích và chu vi) hay DETAIL mỗi vùng một dòng. Sau đó chọn các vùng sàn cần xuất.

✅ Xong đúng thì thấy

Excel nhận đủ 3 nhóm dòng theo đúng thứ tự trên; dòng lệnh báo đã ghi từ dòng nào tới dòng nào.

❌ Hay sai chỗ này

Dòng lỗ mở mang số âm nên bỏ sót nó làm tổng lớn hơn thực tế — quét chọn thì nhớ lấy cả layer lỗ mở. Vùng sàn chưa khoanh bằng ALO thì không có gì để đọc.

BM10A
Bước 3C (tuỳ chọn) — Vẽ hình tiết diện dầm từ tim
Chọn phạm vi
Việc lệnh làm

Thuộc quy trình dầm, nhưng có mặt ở đây vì ALO2 có thể lấy tiết diện dầm từ hình do lệnh này vẽ thay vì tự dựng từ tim. Hình là đối tượng thật nên bạn kéo / xoá / thêm được, và ALO2 ăn đúng cái bạn nhìn thấy.

Chỉ cần chạy nếu bạn định dùng nhánh Rect ở bước ALO2. Không chạy thì để ALO2 ở nhánh Centerline mặc định.

"Chạy BM10A để vẽ hình tiết diện dầm, tôi sẽ chỉnh tay vài chỗ."
execute_lisp → (command "BM10A")
⏸ Điểm dừng

Chờ chọn phạm vi; nếu đã có hình cũ thì hỏi giữ hay xoá vẽ lại.

✅ Xong đúng thì thấy

Mỗi tim dầm có một hình kín bao quanh đúng bề rộng, trên layer QS_RECT_BEAM_<W>x<H>.

❌ Hay sai chỗ này

Sửa tim dầm xong mà quên chạy lại lệnh này ⇒ ALO2 nhánh Rect vẫn ăn hình cũ.

ALO2
Bước 4 — Chiều cao ván khuôn cột/vách theo TỪNG MẶT
3 câu hỏi + xác nhận
Việc lệnh làm

Đây là điểm khác lớn nhất so với cách bóc cũ. CS11 hỏi một chiều cao rồi áp cho cả chu vi. Thực tế chiều cao ván khuôn không đều quanh một cột, nên lệnh này đi dọc chu vi và cắt tại chỗ đổi chiều cao:

  • Mặt có dầm đâm vào → chiều cao tầng trừ chiều cao dầm
  • Mặt giáp sàn → chiều cao tầng trừ bề dày sàn tại chỗ
  • Mặt giáp lỗ mở hoặc lồi ra ngoài biên sàn → full chiều cao tầng

Kết quả vẽ thêm đường dọc chu vi, đặt lên layer mang sẵn chiều cao QS_FW_COL_<tên>_(<cao>)magenta = full, cyan = đã trừ. Polyline gốc QS_CL_OBJ_* giữ nguyên để CS11 vẫn tính được bê tông.

Diện tích ván khuôn = tổng chiều dài đường × chiều cao đọc trong tên layer.

⚠️ Báo cáo ghi "no beam centreline found" nghĩa là phần mặt cột bị đầu dầm che chưa được trừ. Nếu bản vẽ có dầm thật thì chạy chuỗi BM1BM9 trước rồi quay lại. Dầm có mà vẫn không nhận thì nới AloBeamExtend.
"Chạy ALO2 để tính chiều cao ván khuôn cột/vách theo từng mặt."
execute_lisp → (command "ALO2")
⏸ Điểm dừng

Ba câu: lấy tiết diện dầm từ [Centerline/Rect] → phạm vi [Selected/All] → nếu đã có kết quả cũ thì hỏi giữ hay vẽ lại.

✅ Xong đúng thì thấy

Quanh mỗi cột có các đoạn đường khác màu nhau đúng chỗ chiều cao đổi; báo cáo cuối chia rõ chiều dài theo 4 loại mặt.

❌ Hay sai chỗ này

🔴 Chưa đặt Floor height trong QS Settings ⇒ lệnh dừng ngay. Và nhớ định nghĩa: Floor height đo từ mặt sàn đến mặt sàn, lệnh tự trừ bề dày sàn — đừng tự trừ trước rồi mới nhập.

CS11
Bước 5 — Xuất khối lượng bê tông sang Excel
Nhập chiều cao + quét chọn
Việc lệnh làm

Quét chọn các polyline đã gán tên, mỗi cái ghi một dòng: tên đọc từ layer, Dài × Rộng tính lại từ diện tích và chu vi thật, kèm chiều cao bạn nhập, công thức khối lượng, mã đối tượng và hyperlink về file bản vẽ.

⚠️ CS11 đã có sẵn cột ván khuôn. Nếu bạn dùng ALO2 + CS12 để lấy ván khuôn theo từng mặt thì chỉ lấy phần bê tông của CS11 — cộng cả hai là tính ván khuôn hai lần.
"Chạy CS11, tôi nhập chiều cao 3300mm rồi quét chọn toàn bộ cột tầng này."
execute_lisp → (command "CS11")
⏸ Điểm dừng

Hỏi chiều cao/bề dày dùng chung cho cả lượt, rồi chờ bạn quét chọn — Claude không quét chọn hộ được.

✅ Xong đúng thì thấy

Excel có đủ số dòng bằng số cấu kiện đã chọn, không dòng nào tên XXX.

❌ Hay sai chỗ này
  • Còn dòng XXX ⇒ quay lại OO2 xử lý nốt hình đỏ rồi xuất lại.
  • Cột tròn / elip nay bóc được: cột LongWidth ghi đường kính thật (hoặc 2 trục của elip), nên Long × Width KHÔNG bằng cột diện tích — với hình tròn nó lớn hơn 27%. Khối lượng vẫn đúng tuyệt đối vì công thức dùng diện tíchchu vi thật, không dùng hai cột đó.
  • Đối tượng không tính được diện tích bị bỏ qua kèm [Skip] calculated size = 0đếm dòng Excel so với số cấu kiện đã chọn trước khi chốt bảng.
CS12
Bước 6 — Xuất ván khuôn theo mặt sang Excel
Chọn phạm vi
Việc lệnh làm

Đọc các đường do ALO2 vẽ và ghi ra Excel — mỗi cặp cột × chiều cao một dòng. Đây là con số ván khuôn đã trừ đúng chỗ dầm đâm vào và chỗ sàn đè lên, thay cho việc nhân chu vi với một chiều cao duy nhất.

"Chạy CS12 để xuất ván khuôn cột/vách sang Excel."
execute_lisp → (command "CS12")
⏸ Điểm dừng

Chờ chọn phạm vi [Selected/All].

✅ Xong đúng thì thấy

Excel có các dòng ván khuôn nhóm theo tên cột và chiều cao; tổng khớp với báo cáo mà ALO2 in ra.

❌ Hay sai chỗ này

Chạy CS12 mà chưa chạy ALO2 ⇒ không có đường nào để đọc, bảng rỗng.

ALO1B
Bước phụ — Gán chiều cao xây cho bổ trụ
Chọn / quét theo layer mẫu
Việc lệnh làm

Bổ trụ (QS_STIFF_*) là cấu kiện bê tông nhỏ chèn trong tường. Lệnh xét vùng chạm: chạm dầm → cao tới đáy dầm; chạm sàn → trừ bề dày sàn vùng đó; giao cả hai → lấy đáy dầm; trong lỗ mở → trọn cao tầng. Kết quả ghi vào đuôi tên layer _H<số> để CS11 bóc được.

execute_lisp → (command "ALO1B")
❌ Hay sai chỗ này

Bổ trụ là một khối, không bị cắt nhỏ như tim tường — chạm nhiều dầm thì lấy dầm cao nhất. Lệnh gán bề rộng tương ứng là ALO1A, nằm ở tab AI_WALL (xem trang Tường).

EXVF
Đào đất MÓNG ĐƠN — đào, đắp trả, chuyển đi, lót, bê tông
Chọn polyline móng + nhập cao móng
Việc lệnh làm

Chọn các polyline bao móng → lệnh dựng hố đào mở taluy rồi xuất ra Excel theo đúng sơ đồ cột của CS11. Đáy hố = kích thước móng + lót thò ra (ExvLeanOffset 100 mm) + chân taluy (ExvWorkOffset 600 mm) mỗi bên; thành hố mở theo ExvTaluyAngle (mặc định 45°).

Bảng ra 5 khối công tác, mỗi khối có dòng tổng nằm TRÊN dùng SUBTOTAL(9,…) (không phải SUM, để cộng tổng cuối bảng không bị đếm hai lần):

  1. Đào — thể tích ghi thành công thức sống trong ô Excel, hệ số taluy viết thẳng dạng 1/TAN(45*PI()/180) nên sửa góc trong ô là Excel tính lại ngay
  2. Đắp trả = đào − lót − bê tông móng  ·  ③ Chuyển đi = đào − đắp trả
  3. Bê tông lót  ·  ⑤ Bê tông móng

Chiều sâu không nhập thẳngsuy ra: bạn chỉ nhập chiều cao móng, lệnh cộng thêm bề dày lót và ghi ra ô H dạng công thức =0.6+0.1 — nhìn bảng là giải trình được. Có prompt đất phủ trên đỉnh móng, mặc định 0.

"Chạy EXVF, tôi chọn các móng đơn rồi nhập chiều cao móng 600."
execute_lisp → (command "EXVF")
⏸ Điểm dừng

Chọn polyline móng → chọn cách gom nhóm [Each/Layer/Size] → nhập chiều cao móng → nhập đất phủ.

✅ Xong đúng thì thấy

Excel có 5 khối rõ ràng; báo cáo cho biết bề rộng hố lớn nhất và khẳng định không hố nào chạm nhau.

❌ Hay sai chỗ này
  • 🔴 Dòng "bê tông móng" trùng với CS11 — đã bóc móng bằng CS11 thì đừng cộng cả hai. Chính dòng mô tả trong bảng có ghi cảnh báo này.
  • 🔴 Hố chồng nhau: taluy mở suốt chiều sâu nên thể tích tăng theo bậc hai — móng 2000×1500 đào sâu thêm 1 m thì miệng hố nở từ 4,8 lên 6,8 m và thể tích gấp 4 lần. Lưới cột 6 m là các hố ăn vào nhau, mà lệnh tính từng hố độc lập ⇒ phần giao đếm hai lần. Lệnh có đếm và báo số cặp dính nhau; gặp thì hoặc dùng EXVS bóc cả vùng như một hố, hoặc đặt ExvTaluyAngle = 90 khi có chống vách (thành đứng không bao giờ chồng).
EXVS
Đào đất SÀN ĐÁY HẦM — tính từ cao độ, không nhập chiều sâu
Chọn polyline hầm + 3 cao độ
Việc lệnh làm

Bản sao của EXVF cho tầng hầm, khác ở chỗ chiều sâu tính từ cao độ: hỏi cao độ hiện trạng trung bình (cho phép số âm), chiều cao hầmbề dày sàn đáy; lót lấy từ STSET. Ô H trong Excel là công thức =-0.5+3+0.3+0.1 nên sửa lại được ngay trong bảng.

execute_lisp → (command "EXVS")
✅ Xong đúng thì thấy

Phép thử nhanh: khối lượng "chuyển đi" phải đúng bằng khối hộp tầng hầm (diện tích sàn đáy × chiều sâu).

❌ Hay sai chỗ này

🔴 Đừng bê mô hình móng đơn sang hầm. Tầng hầm là một hộp chiếm chỗ, không lấp lại — đắp trả chỉ là khe chu vi + nêm taluy. Dùng nhầm công thức móng đơn cho hầm 30×20 m sẽ báo khoảng 2000 m³ đắp trả vào đúng chỗ thực ra là tầng hầm rỗng.

QSULK
Mở khoá toàn bộ layer đang bị khoá
Chạy một phát
Việc lệnh làm

Quét toàn bộ layer, layer nào đang khoá thì mở. Hay dùng khi nhận bản vẽ của người khác mà các lệnh không sửa được đối tượng. Lệnh không đụng layer đang tắt hay đóng băng — chỉ đếm và báo.

"Chạy QSULK mở khoá hết layer đang bị khoá."
execute_lisp → (command "QSULK")
⏸ Điểm dừng

Không có điểm dừng — chạy xong hiện bảng tổng kết ngay.

✅ Xong đúng thì thấy

Bảng tổng kết liệt kê đúng những layer vừa được mở khoá.

❌ Hay sai chỗ này

Layer vẫn khuất sau khi chạy: nó đang tắt hoặc đóng băng chứ không phải bị khoá.

BMD
Xoá layer đã tạo để làm lại từ đầu
Chọn layer + xác nhận
Việc lệnh làm

Liệt kê ra bảng tick các nhóm layer do bộ lệnh tạo ra — trong đó có QS_CL_OBJ_* (và tên cũ CL_OBJ_*) của cột/vách — rồi xoá đúng nhóm bạn tick. Không tick thì không xoá gì.

"Chạy BMD để xoá layer cột/vách đã gán tên, tôi làm lại từ OO1."
execute_lisp → (command "BMD")
⏸ Điểm dừng

Chờ chọn phạm vi rồi tick nhóm layer cần xoá; đây là thao tác xoá dữ liệu, đọc kỹ trước khi đồng ý.

✅ Xong đúng thì thấy

Đúng những nhóm bạn tick biến mất khỏi bản vẽ.

❌ Hay sai chỗ này

Tick nhầm ⇒ mất luôn công gán tên, phải chạy lại OO1/OO2 từ đầu.

🏠 Panel Room — khoanh diện tích phòng

Năm nút cuối tab phục vụ công tác hoàn thiện (lát nền, trần, sơn, bả): tạo một polyline kín quanh mỗi phòng để lấy diện tích. Panel này có mặt ở cả tab AI_CWF lẫn AI_WALL — cùng một bộ lệnh.

Chúng dựa vào engine dò biên kín của AutoCAD, nên điều kiện tiên quyết là biên phòng phải kín. Hở một khe ở ô cửa là vùng dò sẽ loang ra cả mặt bằng. Quy trình gợi ý: QSRM1 quét nhanh lấy phần dễ → QSRM2 cày lại chỗ khó → QSRM4 gán tên cho phần phải vẽ tay → QSRM5 soát lại lần cuối.

Polyline kết quả nằm trên layer QS_Floor_Area_<tên phòng>. Phòng nào không dò được thì được khoanh tròn đỏ trên layer QS_ROOM_ERROR — đó là danh sách việc cần làm tay, không phải lỗi của lệnh.

QSRM1
Quét nhanh một lượt — chỉ vẽ phòng đã kín
Chọn vùng + chế độ chọn text
Việc lệnh làm

Với mỗi text tên phòng, lệnh dò vùng kín bao quanh nó rồi vẽ polyline và đặt tên layer theo tên phòng. Đây là bản nhanh: mỗi phòng chỉ dò một lượt, phòng nào không ra ngay thì bỏ qua và khoanh tròn đỏ — nhờ vậy không bao giờ mắc kẹt ở mấy phòng biên hở.

Dung sai khe hở lấy thẳng từ STSET > RoomGapTol và luôn được in ra dòng lệnh mỗi lần chạy, để không bao giờ sai âm thầm.

"Chạy QSRM1 quét nhanh diện tích phòng cho tầng này."
execute_lisp → (command "QSRM1")
⏸ Điểm dừng

Chọn vùng làm việc → chọn cách lấy text tên phòng: Selected chọn đích danh vài text (mặc định, an toàn nhất) · byLayer pick một text mẫu rồi chạy mọi text cùng layer · All mọi text đang hiện trong vùng.

✅ Xong đúng thì thấy

Mỗi phòng kín có một polyline ôm sát tường. Dòng lệnh in tiến độ [3/12] tên phòng kèm thời gian và số đỉnh, cuối cùng là báo cáo phòng nào không dò được.

❌ Hay sai chỗ này
  • Chọn All trên bản vẽ có hàng nghìn text (mã thép, cao độ, ghi chú) ⇒ mỗi text thành một vòng đỏ. Dùng byLayer với đúng layer tên phòng.
  • Text tên phòng bị vỡ thành nhiều mảnh (P1.04 rời nhau) ⇒ mỗi mảnh dò một lần, layer sinh ra mang tên cụt. Ghép text lại trước.
  • Layer chứa nét đóng kín phòng đang tắt ⇒ engine không nhìn thấy nét đó và coi phòng là hở. Bật layer lên rồi chạy lại.
QSRM2
Bản đầy đủ — cày kỹ những phòng khó
Thêm bước bịt lỗ mở
Việc lệnh làm

Cùng việc với QSRM1 nhưng chịu khó hơn: mỗi phòng được thử nhiều lần với nhiều cách khác nhau cho tới khi ra kết quả sạch, có trần số lần thử lấy từ STSET > RoomMaxTries.

Nó còn thêm bước tự bịt lỗ mở: nắp cửa vẽ trong bản vẽ kiến trúc thường hụt vài trăm mm nên nước dò vẫn lách qua được. Bạn pick một nắp mẫu, lệnh tự vẽ line tạm dọc trục mọi nắp cùng layer, kéo dài thêm RoomCapExtend để đè lên tường, đo xong xoá sạch.

"Chạy QSRM2 cho mấy phòng còn vòng đỏ, tôi sẽ pick nắp cửa mẫu."
execute_lisp → (command "QSRM2")
⏸ Điểm dừng

Như QSRM1, thêm một bước: pick một nắp lỗ mở mẫu để lệnh biết layer nắp cửa — nhấn ENTER nếu bản vẽ không có nắp.

✅ Xong đúng thì thấy

Những phòng QSRM1 bỏ qua nay ra được biên. Báo cáo cuối liệt kê phòng nào chậm nhất và phòng nào dừng vì hết hạn mức thử.

❌ Hay sai chỗ này

Lệnh chạy trên luồng giao diện của AutoCAD nên trong lúc dò màn hình đứng im và Windows có thể báo "Not Responding" — nó vẫn đang chạy, cứ nhìn thanh tiến độ dưới đáy. Muốn dừng thì nhấn ESC, đừng tắt AutoCAD.

QSRM3
Tự khoanh MỌI vùng kín — không cần text tên phòng
Chọn các nét làm biên
Việc lệnh làm

Cách làm ngược lại: thay vì đi từ text tên phòng, lệnh rải một lưới điểm dày lên toàn bộ vùng bạn chọn rồi tạo polyline kín cho mọi vùng kín tìm được, giữ lại các vùng từ 1 m² trở lên. Không cần text nào cả.

Rất nhanh vì cả lưới điểm được nạp trong một lượt dò duy nhất. Chạy xong lệnh chọn sẵn toàn bộ polyline vừa tạo cho bạn.

"Chạy QSRM3 khoanh hết các vùng kín của mặt bằng này."
execute_lisp → (command "QSRM3")
⏸ Điểm dừng

Chờ chọn các đối tượng tạo thành biên (line, polyline, arc, circle, spline, ellipse) — thường là quét chọn cả mặt bằng tường.

✅ Xong đúng thì thấy

Dòng lệnh báo dò được bao nhiêu vùng, bỏ bao nhiêu vùng nhỏ hơn ngưỡng, giữ lại bao nhiêu.

❌ Hay sai chỗ này
  • Polyline tạo ra nằm trên layer hiện hànhchưa có tên phòng. Nên đặt layer hiện hành thành một layer riêng trước khi chạy, rồi dùng QSRM4 gán tên sau.
  • Chọn thiếu nét biên ⇒ các vùng dính vào nhau thành một mảng lớn.
QSRM4
Gán tên cho biên phòng vẽ tay
Chọn polyline + pick text còn thiếu
Việc lệnh làm

Dành cho những phòng bạn phải tự vẽ biên. Chọn các polyline, lệnh tìm text nằm bên trong từng cái để lấy tên, chuyển polyline lên layer QS_Floor_Area_<tên>, tự đóng kín nếu polyline còn hở, và xoá luôn vòng đỏ nằm trong nó.

"Chạy QSRM4 để gán tên cho mấy polyline tôi vừa vẽ tay."
execute_lisp → (command "QSRM4")
⏸ Điểm dừng

Chọn các polyline. Cái nào không có text hoặc có nhiều hơn một text bên trong thì cuối lệnh sẽ zoom tới từng cái và hỏi bạn pick text — nhấn ENTER để bỏ qua cái đó.

✅ Xong đúng thì thấy

Polyline vẽ tay nằm cùng nhóm layer với các phòng dò tự động, vòng đỏ tương ứng biến mất.

❌ Hay sai chỗ này

Vẽ biên chồng lấn lên phòng bên cạnh ⇒ diện tích bị tính hai lần. Chạy QSRM5 ở chế độ Overlap để soát.

QSRM5
Soát lại — thiếu biên và biên chồng lấn
Chọn Missing / Overlap / Both
Việc lệnh làm

Bước kiểm cuối cùng trước khi lấy số, gộp hai phép kiểm vào một báo cáo:

  • Missing — text tên phòng nào chưa có polyline kín bao quanh: khoanh tròn đỏ trên QS_ROOM_ERROR. Đó là diện tích đang bị bỏ sót.
  • Overlap — hai biên phòng chồng lấn diện tích nhau: khoanh màu magenta trên layer riêng QS_ROOM_OVERLAP. Đó là diện tích đang bị tính hai lần. Hai phòng chỉ dùng chung cạnh thì hợp lệ, không bị bắt.
"Chạy QSRM5 chế độ Both để soát lại toàn bộ biên phòng."
execute_lisp → (command "QSRM5")
⏸ Điểm dừng

Chọn kiểm gì: [Missing / Overlap / Both], mặc định Both. Chế độ Missing hỏi thêm cách lấy text giống QSRM1.

✅ Xong đúng thì thấy

Báo cáo cuộn được, cả hai mục đều 0. Lúc đó con số diện tích mới dùng được.

❌ Hay sai chỗ này

Bỏ qua bước này. Thiếu biên và chồng biên đều không nhìn thấy được bằng mắt trên bản vẽ đã vẽ xong — chỉ lộ ra khi cộng tổng diện tích và thấy lệch.

⚖️ Hai cách tính ván khuôn — chọn một, đừng cộng cả hai
Cách làmChạy những gìĐược gì
NhanhOO1OO2CS11 Một chiều cao áp cho cả chu vi. Nhanh, nhưng thừa phần bị dầm và sàn che.
Theo mặtOO1OO2ALOALO2CS11 (bê tông) + CS12 (ván khuôn) Chiều cao đúng theo từng mặt. Chính xác hơn hẳn ở nhà có dầm dày và sàn giật cấp.
⚠️ Ba chỗ dễ cộng trùng:
Cột ván khuôn của CS11CS12: dùng CS12 thì chỉ lấy phần bê tông của CS11.
ALO2 ↔ dòng QS_CL_DFWCOLBM14/BM15 trừ bên bảng dầm: KHÔNG phải trùng nhau — một cái trừ khỏi tổng DẦM (mặt đầu dầm), một cái trừ khỏi tổng CỘT (mảng mặt cột bị đầu dầm che). Hai mặt thật khác nhau của cùng một nút.
③ Bên bảng dầm: BM10B ↔ vạch DFW của BM10 là hai cách thay thế nhau.
📝 Lưu ý khi sử dụng
📚 Phụ lục tra cứu — thông số ảnh hưởng kết quả

Phần này để tra khi cần, không phải đọc tuần tự. Nếu một lệnh cho ra số lạ, quay lại đây kiểm trước khi nghi bản vẽ.

📐 Bảng 1 — QS Settings (lệnh QSUNITS)
Ô trong formÝ nghĩaẢnh hưởng lệnh nào
UnitsĐơn vị chiều dài ghi ra Excel (mm / cm / m)CS11, CS12
PrecisionSố chữ số thập phân khi ghi ExcelCS11, CS12
Floor heightChiều cao tầng (mm) — mặc định 3300. Đo từ MẶT SÀN tầng này đến MẶT SÀN tầng trên (không phải thông thuỷ). Lệnh tự trừ tiếp bề dày sàn và bậc giật cấp ⇒ đừng tự trừ trước rồi mới nhập.ALO2 — chưa đặt thì lệnh dừng ngay
Beam dimension unitText tiết diện trong bản vẽ ghi mm hay cmBBW, BWH, BM10A
🎛️ Bảng 2 — STSET (lệnh STSET)

Bảng có 84 thông số dùng chung cho cả bộ QSTools; dưới đây là những dòng ảnh hưởng quy trình cột/vách. Không sửa gì thì mọi lệnh chạy đúng như mặc định.

Thông sốMặc địnhÝ nghĩaLệnh
① Dọn trùng & gán tên
CdlBboxTol0.01Dung sai bounding-box khi tìm đối tượng trùngCDL
CdlAreaTolPct0.0001Dung sai diện tích tương đối khi tìm trùngCDL
CdlAngleTol0.0001 radDung sai góc xoay khi tìm trùngCDL
AreaTolOO10.05Sai số diện tích cho phép khi đối chiếu kích thước ghi trong text — nới ra thì nhận nhiều hơn nhưng dễ gán nhầmOO1
ExportSortMode1Thứ tự dòng khi xuất: 1 theo TÊN · 2 theo VỊ TRÍ (hàng trên trước, trái sang phải) · 3 theo thứ tự nhặt được trên bản vẽCS11
② Ván khuôn theo mặt
AloProbeDist20 mmĐẩy điểm tra ra ngoài mặt cột bao xa rồi mới hỏi "bên kia có gì". Phải lớn hơn nhiễu bản vẽ nhưng nhỏ hơn dải sàn mỏng nhất cần nhậnALO2
AloBeamExtend200 mmNới tiết diện dầm dọc trục mỗi đầu trước khi hỏi dầm có chạm mặt cột không — bù cho việc tim dầm bị cắt lùi khỏi mặt bê tôngALO2
AloMinSeg50 mmĐoạn chu vi ngắn hơn giá trị này thì gộp vào đoạn kề, tránh vụn bản vẽALO2
OpenZoneMinRatio0.95Một vùng sàn phải chiếm ít nhất tỉ lệ này diện tích lỗ mở mới được coi là chủ của nóALO1
⚠️ Sửa STSET là đổi hành vi mọi lệnh liên quan, không chỉ lệnh đang chạy. Lần đầu dùng nên để nguyên mặc định mà chạy; chỉ chỉnh khi bản vẽ có đặc thù và bạn đã biết rõ mình cần đổi gì.