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

Script Demo: Bóc Khối Lượng Dầm
Qua AutoCAD MCP + Claude

Kịch bản demo dùng cho Phần 1 — AutoCAD + MCP + Claude (08:15–12:00). Toàn bộ các lệnh BB, BB1...B10 bên dưới là macro AutoLISP/VBA có sẵn trong bộ QSTools (QSTools_Utilities.dvb). Điểm mới của demo này: thay vì gõ tay từng lệnh trên AutoCAD, Claude điều khiển AutoCAD MCP gọi lần lượt từng lệnh, dừng lại đúng chỗ cần con người kiểm tra bằng mắt, rồi mới đi tiếp.

🎯 Mục tiêu demo
✅ Chuẩn bị trước khi chạy
  1. Bản vẽ mặt bằng đã có sẵn line dầm theo layer chuẩn QS (đã học ở mục Layer chuẩn QS, đầu Phần 1)
  2. VBA project QSTools_Utilities.dvb đã được nạp trong AutoCAD (Application > VBA Manager, hoặc tự nạp qua ApplicationPlugins bundle nếu đã cấu hình)
  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 ở bước cuối (B10)
⚠️ Các lệnh C:BB, C:BB1... đều gọi qua -vbarun vào project BeamCenterline / Qstools_Wall trong QSTools_Utilities.dvb — nếu VBA project chưa nạp, lệnh sẽ báo lỗi "project not found". Kiểm tra bước này TRƯỚC khi bắt đầu demo trước lớp.
📜 Kịch bản demo — 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 — hoặc AutoCAD dừng ở dòng lệnh (command line) chờ chọn đối tượng/nhập lựa chọn, hoặc cần người xem kết quả trước khi ra lệnh cho Claude gọi bước tiếp theo. Giảng viên nên đọc to dòng lệnh sau mỗi lần gọi để lớp thấy AutoCAD đang chờ gì, rồi mới cho Claude đi tiếp — không nên gọi liên tiếp nhiều lệnh trong 1 lần chat.
BB
Bước 0 — Vẽ centerline dầm
Chọn layer/đối tượng
Việc macro làm

Quét toàn bộ line dầm theo layer đã chọn, ghép cặp 2 line song song thành 1 centerline, tự merge + khử trùng (dedup) + trim phần chồng vào bê tông + dedup lại lần nữa. Kết quả nằm trên layer CL-BEAM-*.

Prompt mẫu gọi qua Claude
"Chạy lệnh BB để vẽ centerline dầm trên bản vẽ đang mở."
execute_lisp → (C:BB)
⏸ Điểm dừng

AutoCAD dừng ở dòng lệnh chờ chọn layer dầm (hoặc chọn đối tượng) trước khi macro chạy — giảng viên xác nhận đúng layer/phạm vi rồi mới cho đi tiếp.

Kiểm tra trước khi đi tiếp

Zoom nhanh vài vị trí dầm giao nhau — centerline phải nằm giữa 2 mép dầm, không lệch tâm.

BB1
Bước 1 — Dedup trong từng layer
Xác nhận
Việc macro làm

Trong cùng 1 layer, nếu có 2 centerline trùng nhau (do quét nhầm 2 lần), xoá bớt và chỉ giữ lại line dài nhất.

"Chạy BB1 để dọn centerline trùng nhau trong cùng layer."
execute_lisp → (C:BB1)
⏸ Điểm dừng

AutoCAD dừng chờ xác nhận trước khi xoá các line trùng — giảng viên xem qua danh sách/khu vực bị ảnh hưởng rồi mới xác nhận tiếp tục.

BB2
Bước 2 — Dedup xuyên layer
Cần duyệt tay
Việc macro làm

Xử lý trường hợp 2 centerline trùng vị trí nhưng khác layer bề dày dầm (ví dụ 500 vs 400) — giữ lại line thuộc layer bề dày lớn hơn. Macro có chế độ highlight để người dùng duyệt bằng mắt trước khi xoá.

"Chạy BB2, dừng lại cho tôi xem phần highlight trước khi macro xoá gì."
execute_lisp → (C:BB2)
Điểm dừng bắt buộc

Đây là bước duy nhất macro chủ động hỏi xác nhận — giảng viên nên dừng lại giải thích cho lớp thấy vì sao cần con người duyệt (tránh xoá nhầm dầm to lấy nhầm dầm nhỏ).

BB3
Bước 3 — Trim giao cắt
Xác nhận
Việc macro làm

Với line dầm dọc bị cắt ngang qua line dầm ngang, macro lùi đầu line dọc về đúng mép dầm ngang (I + W/2) — tránh tính trùng khối lượng ở chỗ giao nhau.

"Chạy BB3 để trim các chỗ dầm dọc cắt qua dầm ngang."
execute_lisp → (C:BB3)
⏸ Điểm dừng

AutoCAD dừng ở dòng lệnh trong lúc xử lý từng chỗ giao cắt — giảng viên theo dõi và bấm Enter/xác nhận qua từng vị trí để lớp thấy rõ logic trim.

BB4
Bước 4 — Nối khoảng hở
Chọn menu Layer/Size
Việc macro làm

Nối các đoạn centerline bị đứt quãng — chọn nối theo Layer hoặc theo Size qua menu — đồng thời vẽ vạch DFW ở 2 đầu mỗi dầm. Chỉ chạy bước này sau khi đã dedup xong (BB1/BB2).

"Chạy BB4, nối khoảng hở theo Layer."
execute_lisp → (C:BB4)
⏸ Điểm dừng

Macro hiện menu chờ chọn chế độ nối — Layer hay Size — giảng viên phải trả lời qua Claude (hoặc trực tiếp trên AutoCAD) trước khi macro tiếp tục.

BB5
Bước 5 — Gán tên dầm
Xem kết quả gán tên
Việc macro làm

Đổi layer của centerline theo text tên dầm gần nhất trên bản vẽ — ví dụ CL-BEAM-300CL-BEAM-300-D1(300x500). Từ đây mỗi centerline đã "biết" nó thuộc dầm nào, tiết diện bao nhiêu.

"Chạy BB5 để gán tên dầm theo text gần nhất."
execute_lisp → (C:BB5)
⏸ Điểm dừng

Sau khi chạy xong, giảng viên rà nhanh vài chỗ xem tên đã gán đúng dầm gần nhất chưa trước khi đi tiếp — vì đây là dữ liệu quyết định độ chính xác của bảng khối lượng cuối cùng.

Ghi chú

(Không nằm trong chuỗi demo chính nhưng nên biết: nếu có nhãn gán sai, dùng BB6 — click line sai rồi click text đúng — để sửa tay từng chỗ.)

BB8
Trim centerline trong vùng bê tông
Tiện ích — cần xác nhận
Việc macro làm

Chạy trim riêng cho các centerline còn nằm lấn vào vùng bê tông (cột/vách) — đồng thời xoá luôn các đoạn CL-DFWBeam-* nằm trong cột/vách.

"Chạy BB8 để trim centerline còn dính vào cột/vách."
execute_lisp → (C:BB8)
⏸ Điểm dừng

AutoCAD dừng chờ xác nhận trước khi xoá các đoạn CL-DFWBeam-* nằm trong cột/vách — giảng viên xem qua rồi mới xác nhận.

BB9
Kiểm tra sau trim
Xem kết quả
Việc macro làm

Rà soát toàn bộ centerline, highlight các đoạn còn chờm vào bê tông quá 10mm — để người dùng biết còn sai sót ở đâu trước khi xuất khối lượng.

"Chạy BB9, cho tôi biết còn bao nhiêu chỗ bị lỗi chờm vào bê tông."
execute_lisp → (C:BB9)
Điểm dừng để giảng viên nhấn mạnh

Nếu BB9 còn báo lỗi, quay lại BB8 hoặc sửa tay tại các vị trí được highlight trước khi đi tiếp sang bước tạo layer group.

GCL
Tạo Layer Group trong Layer Manager
Xác nhận nhóm tạo ra
Việc macro làm

Tạo sẵn các layer filter group gộp theo CL-BEAM-*CL-WALL-* trong Layer Manager (LA) — giúp bước sau isolate nhanh theo từng nhóm tiết diện dầm.

"Chạy GCL để tạo nhóm layer cho các centerline dầm."
execute_lisp → (C:GCL)
⏸ Điểm dừng

Sau khi chạy, mở Layer Manager (LA) xem lại danh sách nhóm vừa tạo — xác nhận đúng số nhóm/tên nhóm trước khi dùng ở bước ICL tiếp theo.

ICL
Isolate layer theo nhóm muốn xuất khối lượng
Chọn nhóm
Việc macro làm

Quick LAYISO theo nhóm — nhập số thứ tự nhóm (group name từ bước GCL) để cô lập chỉ hiện layer đó trên màn hình, ẩn hết các layer khác. Nhập 0 để hiện lại tất cả (thaw all).

"Chạy ICL, isolate nhóm dầm 300x500 để tôi xuất khối lượng nhóm này."
execute_lisp → (C:ICL)
Vì sao cần chọn tay ở đây

Đây là bước quyết định "đang xuất khối lượng cho nhóm dầm nào" — giảng viên nên hỏi lớp chọn 1 nhóm cụ thể để làm ví dụ trực quan.

B10
Xuất khối lượng sang Excel
Select tay trên màn hình
Việc macro làm

QS_BeamLayer (module Qstools_Wall) — sau khi đã ICL isolate đúng nhóm layer cần xuất, người dùng quét chọn (select) các centerline đang hiện trên mặt bằng, rồi chạy B10 để xuất bảng khối lượng (chiều dài, số lượng theo tiết diện) sang Excel.

"Tôi đã quét chọn các line dầm nhóm 300x500 trên màn hình, chạy B10 để xuất khối lượng sang Excel."
execute_lisp → (C:B10)
Lưu ý quan trọng

Đây là bước thao tác tay duy nhất trong toàn chuỗi — Claude không tự quét chọn đối tượng trên màn hình được, cần người dùng bấm chọn line rồi mới ra lệnh cho Claude gọi B10. Nhấn mạnh điểm này với lớp: AI lo phần dọn dẹp/tính toán lặp lại, con người vẫn quyết định phạm vi chọn để xuất.

🔁 Tóm tắt trình tự đã demo

BB (chọn layer) → BB1 (xác nhận) → BB2 (duyệt tay) → BB3 (xác nhận) → BB4 (chọn menu) → BB5 (xem kết quả) → BB8 (xác nhận) → BB9 (kiểm tra) → GCL (xác nhận nhóm) → ICL (chọn nhóm) → B10 (select tay)

📝 Ghi chú giảng viên