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 BM1…BM15 (cùng bước chuẩn bị CCBT, BBW,
ALO) bên dưới là macro của bộ QSTools — bản DLL hiện trên ribbon tab
AI_STR. Qua AutoCAD MCP, Claude gọi bản twin VBA tương ứng
(C:CBM1)…(C:CBM15). Đ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.
📥 Bản vẽ mẫu dùng cho demo này (chọn 1 trong 2 file bên dưới tuỳ tầng muốn thực hành):
📥 Skill cho Claude (quy trình chuẩn bị + BM1…BM15): autocad-beam-workflow.zip — xem cách cài đặt ở mục "📦 Cài đặt Skill cho Claude" bên dưới.
system(operation="status") thấy backend: "file_ipc"(C:CBM1)…(C:CBM15) (và
(C:CBBW), (C:CCBT), (C:CALO)) — mỗi lệnh là AutoLISP wrapper tự
gọi -vbarun vào đúng module trong QSTools_Utilities.dvb. Lưu ý C:BM1…
KHÔNG tồn tại (BM* chỉ là lệnh của bản DLL trên ribbon); qua MCP luôn dùng tiền tố C:CBM….
Nếu VBA project chưa nạp (vbaload), 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.
Toàn bộ quy trình (chuẩn bị CCBT/BBW/ALO → chuỗi
BM1…BM15 → rà soát tên "XXX"/BM9A) đã được đóng gói sẵn thành
Skill tên autocad-beam-workflow — Claude sẽ 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 dầm", "xử lý dầm"...
📥 Tải file skill: autocad-beam-workflow.zip
autocad-beam-workflow.zip — sẽ được 1 thư mục
autocad-beam-workflow chứa SKILL.md và evals.json.C:\Users\<Tên_của_bạn>\.claude\skills\autocad-beam-workflow\skills nếu máy bạn chưa có)./autocad-beam-workflow.QSTools_Utilities.dvb đã nạp như mục "Chuẩn bị trước khi
chạy" ở trên thì mới chạy được các lệnh BM1…BM15.
Chỉ chạy khi tên dầm trong bản vẽ bị gãy thành 2 text riêng (ví dụ B1 và (300x400) tách rời, kể cả khác layer). Vào lệnh hiện hộp 3 nút: YES = AUTO (quét vùng chọn → tự ghép mọi cặp thoả điều kiện: đủ gần + cùng góc xoay + khớp mẫu sốxsố), NO = MANUAL (tự pick từng cặp, không xét điều kiện), CANCEL = thoát. Giữ text "tên", nối _ (vd B1_(300x400)), xoá text kia.
AUTO: chờ chọn vùng chứa text (Select objects) → hỏi hệ số khoảng cách. MANUAL: chờ pick text 1 → text 2, lặp, ESC để dừng. Xong hiện bảng báo cáo có thanh cuộn — kiểm tra vài cặp xem có ghép nhầm không trước khi chạy BBW.
Quét text tên dầm, phân loại theo bề rộng vào layer Text_BW_<w> (mỗi bề rộng một màu), đồng thời lưu danh sách bề rộng vào registry (BeamWidthList). BM1 sau này đọc danh sách này để tự điền bề dày mặc định khi vẽ centerline.
Chờ chọn vùng chứa text, sau đó hiện MsgBox Yes/No hỏi có lưu danh sách bề rộng vào registry không — trả lời Yes để BM1 dùng làm mặc định. Trả lời thẳng trên MsgBox, không hỏi qua Claude.
Pick 1 layer vùng sàn (QS_Slab_Full_Area_* = nền, QS_Slab_Step_Area_* = bậc/vùng lồng trong), rồi vẽ mới hoặc gán một polyline kín cho vùng sàn tương ứng. Chạy nhiều lần cho từng vùng/bề dày sàn khác nhau.
Chờ chọn layer sàn → vẽ hoặc chọn polyline kín cho vùng đó. BẮT BUỘC trước BM11 — BM11 phá dầm + DFW theo chính các vùng sàn này; thiếu vùng thì BM11 báo "no slab zone".
Quét line dầm theo layer đã chọn, ghép cặp 2 mép dầm thành 1 centerline trên layer QS_CL_BEAM_*; tự merge + khử trùng (dedup) + trim + dedup lại. Bề dày tự điền từ registry do BBW lưu (nếu có).
AutoCAD dừng ở dòng lệnh chờ chọn layer dầm 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.
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.
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.
AutoCAD dừng chờ xác nhận trước khi xoá các line trùng — giảng viên xem qua khu vực bị ảnh hưởng rồi mới xác nhận tiếp tục.
Xử lý 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 highlight để người dùng duyệt bằng mắt trước khi xoá.
Đây là điểm dừng bắt buộc — giảng viên nên dừng lại giải thích cho lớp vì sao cần con người duyệt (tránh xoá nhầm dầm to lấy nhầm dầm nhỏ).
Nối các đoạn centerline bị đứt quãng — nối được mọi phương kể cả xiên — chọn nối theo Layer hoặc theo Size qua menu trên dòng lệnh.
Macro hiện menu chờ chọn chế độ nối — Layer hay Size — người dùng trả lời thẳng trên dòng lệnh AutoCAD (không hỏi qua Claude), rồi báo "xong".
Kéo đầu centerline còn hở tới mép dầm gần nhất (trong khoảng ≤300mm) để hình học liền mạch trước khi trim.
Chờ chọn layer mép dầm và nhập khoảng cách max (mặc định 300mm).
BM5A (C:CBM5A) — khép góc L / nút T. BM5B (C:CBM5B) — fill door 2 phương.
Trim 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 DFW nằm trong cột/vách.
AutoCAD dừng chờ xác nhận trước khi xoá các đoạn DFW nằm trong cột/vách — giảng viên xem qua rồi mới xác nhận.
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 trim giao cắt.
Nếu BM7 còn báo lỗi, quay lại BM6 hoặc sửa tay tại các vị trí được highlight trước khi đi tiếp.
Tại chỗ 2 dầm giao nhau, lấy dầm RỘNG HƠN làm dầm chính, lùi đầu dầm phụ về đúng mép dầm chính (giữ cả 2 bên ngã tư) — tránh tính trùng khối lượng ở chỗ giao nhau.
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à xác nhận qua từng vị trí để lớp thấy rõ logic trim.
Đổi layer centerline theo text tên dầm gần nhất — ví dụ QS_CL_BEAM_300 → QS_CL_BEAM_300_D1(300x500). Macro hỏi chế độ: FULL TEXT (giữ nguyên tên) hay SIZE ONLY (bỏ tên, chỉ giữ WxH, gom 1 layer/tiết diện; text không có WxH → _XXX).
Chờ chọn layer text và trả lời chế độ + đơn vị (mm/cm). Sau khi chạy, rà nhanh vài chỗ xem tên gán đúng chưa — đây là dữ liệu quyết định độ chính xác của bảng khối lượng.
(Nếu có nhãn gán sai, dùng BM9A (C:CBM9A) — click line sai rồi click text đúng — để sửa tay từng chỗ.)
Vẽ vạch ván khuôn đầu dầm (DFW) ở 2 đầu mỗi dầm, đặt trên layer QS_CL_DFWBeam_* (tên layer thừa hưởng tên dầm từ BM9). Đây là cơ sở để bước xuất Excel trừ giao ván khuôn.
Chờ chọn chế độ DFW (bỏ đầu tì vào dầm khác / vẽ mọi đầu).
Phá centerline dầm và vạch DFW tại ranh giới các vùng bề dày sàn (đã khoanh bằng ALO) thành các mảnh QS_BCL_Beam_* / QS_BCL_DFWBeam_* (suffix _<bề dày>_<stt>, giữ nguyên màu gốc) — để tính khối lượng chính xác theo từng vùng bề dày.
Chờ chọn vùng làm việc. Cần đã chạy ALO tạo vùng sàn — nếu chưa, BM11 báo "no slab zone".
Tạo sẵn các layer filter group theo thứ tự Dầm → Ván khuôn dầm → Sàn → Tường (kèm nhóm Text_BW cuối) trong Layer Manager (LA) — giúp bước sau isolate nhanh theo từng nhóm.
Sau khi chạy, mở Layer Manager (LA) xem lại danh sách nhóm vừa tạo trước khi dùng ở bước BM13.
Cô lập (isolate) chỉ hiện nhóm layer muốn xuất, ẩn hết các nhóm khác. Nhập 0 để hiện lại tất cả. Kèm hay không kèm nhóm Ván khuôn dầm khi isolate = có hay không trừ giao ván khuôn ở bước xuất.
Đây là bước quyết định "đang xuất khối lượng cho nhóm dầm nào" và "có trừ giao ván khuôn không" — giảng viên nên hỏi lớp chọn 1 nhóm cụ thể làm ví dụ trực quan.
Sau khi đã BM13 isolate đúng nhóm, chạy lệnh trước rồi mới quét chọn (select) các centerline đang hiện, Enter để xuất bảng khối lượng bê tông + ván khuôn sang Excel. Cả hai lệnh đều tính bê tông và trừ giao ván khuôn (đối tượng trên layer DFW ghi chiều dài âm để công thức Excel trừ đi; ván khuôn DFW tính 1 mặt). Chúng chỉ khác nhau ở nguồn bề dày sàn:
..._150_1 → 150mm); DFW gộp theo layer. → Dùng khi ĐÃ chạy BM11 phá vùng.Đây là bước có thao tác tay — Claude gọi lệnh, nhưng người dùng phải tự quét chọn line trên màn hình rồi Enter. Chọn BM14 nếu đã phá vùng bề dày (BM11), chọn BM15 nếu chỉ 1 bề dày phẳng. Nhấn mạnh 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 và lệnh xuất phù hợp.
Trong Excel, các dòng ghi XXX là centerline chưa gán tên / gán sai. Dùng nút "Find Item In AutoCAD" để nhảy tới centerline đó trên bản vẽ, rồi chạy BM9A sửa tên (click line sai → click text đúng). Lặp tới khi hết dòng XXX.
Người dùng tìm dòng XXX + bấm Find Item trước, rồi Claude mới gọi BM9A cho từng chỗ.
Xoá các đối tượng trên danh sách layer chọn — centerline dầm (QS_CL_BEAM_*), vạch DFW (QS_CL_DFWBeam_*) và các mảnh do BM11 phá (QS_BCL_Beam_* / QS_BCL_DFWBeam_*) — dùng khi cần làm lại centerline từ đầu (vẽ nhầm layer, dữ liệu lỗi nặng...).
AutoCAD chờ chọn danh sách layer rồi hỏi xác nhận — đây là thao tác xoá dữ liệu, giảng viên nên đọc kỹ và xác nhận đúng phạm vi trước khi đồng ý.
Có thể gọi lại bất cứ lúc nào sau khi trim để rà soát các centerline còn chờm vào bê tông >10mm — highlight các đoạn lỗi. Nếu còn lỗi, quay lại BM6 hoặc sửa tay trước khi xuất khối lượng.
Dùng như bước kiểm tra chất lượng — chạy lại sau khi sửa tay để chắc chắn đã sạch trước khi sang BM8/BM9.
[Chuẩn bị] CCBT (nếu tên gãy) → BBW (nhóm width) → ALO (khoanh vùng sàn)
BM1 (chọn layer) → BM2 (xác nhận) → BM3 (duyệt tay) → BM4 (chọn menu) → BM5 (auto extend) → BM6 (trim bê tông) → BM7 (kiểm tra) → BM8 (trim giao cắt) → BM9 (gán tên) → BM10 (vẽ DFW) → BM11 (phá theo vùng sàn) → BM12 (tạo nhóm) → BM13 (isolate nhóm) → BM14/BM15 (select tay, xuất Excel)
→ Rà "XXX" trong Excel + BM9A (sửa từng dòng)
(C:CBM1)…(C:CBM15) — C:BM1… (không có chữ C) là lệnh của bản DLL trên ribbon AI_STR, KHÔNG gọi được qua MCPBBW (để BM1 tự điền bề rộng) và ALO (khoanh vùng sàn — bắt buộc trước BM11, thiếu thì BM11 báo "no slab zone")WC — cùng cơ chế, thêm bước vẽ line cửa/cửa sổ cho khoảng hở tại cửa)