←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 Dầm
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 BM1…BM15 (cùng bước chuẩn bị CBT, BBW/BWH, ALO/ALO1) 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 tab AI_STR. Qua AutoCAD MCP, Claude gọi thẳng chính những lệnh đó bằng (command "BM1")…(command "BM15"). Điểm lợi khi dùng cách này: thay vì gõ tay từng lệnh trên AutoCAD, bạn ra yêu cầu bằng lời, Claude điều khiển AutoCAD MCP gọi lần lượt từng lệnh, dừng lại đúng chỗ bạn cần kiểm tra bằng mắt, rồi mới đi tiếp.

🔄 Bộ lệnh dầm gồm BM1…BM15 (+ các lệnh phụ BM5A, BM5B, BM9A, BM9B, BM10A, BM10B) và 3 lệnh dọn BMD / BMU / BMS. Các bước vẽ tim, dọn, nối, trim, gán tên và vẽ DFW hỗ trợ cả dầm cung tròn (riêng BM11 chưa phá dầm cung — xem Bước 11). Hai bảng thông số QS Settings và STSET ở mục bên dưới quyết định kết quả của nhiều bước — xem trước khi bắt tay vào chạy.

🔑 Cần bản QSTools FULL. Bản Lite không có các lệnh BM1…BM15, BM5A/B, BM9A/B, BM10A/B, BMD/BMU/BMS, ALO, ALO1 (Lite chỉ có GCL/ICL).

⚠️ Ba bước cần đọc kỹ: BM8 phân loại nút theo hình dạng (ngã tư / chữ T / góc) rồi mới áp luật cắt · BM10 tách riêng layer QS_CL_DFWCOL cho đầu dầm giáp cột/vách · BM14/BM15 mở bảng tick 3 mục để chọn xuất thành phần nào.

🎯 Bạn sẽ đạt được gì
🗺️ 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ị CBT/ CBT1→ BBW/ BWH→ ALO+ ALO1
Chuỗi chính BM1→ BM2→ BM3→ BM4→ BM5→ BM6→ BM7→ BM8→ BM9→ BM10→ BM11→ BM12→ BM13→ BM14/BM15
Thêm khi cần BM5A · BM5B · BM9B · BM10A · BM10B chèn vào đúng chỗ trong chuỗi trên
Soát lại Rà "XXX" → BM9A
Cam = bước bắt buộc  ·  Vàng = chỉ chạy khi bản vẽ cần  ·  Xanh = tiện ích, chạy lúc nào cũng được.
Tick ô "đã xong" ở mỗi bước để đánh dấu bạn đang làm tới đâu — trình duyệt tự nhớ, đóng máy mở lại vẫn còn.
✅ Chuẩn bị trước khi chạy

📥 Bản vẽ mẫu để chạy thử: dùng một mặt bằng kết cấu của chính bạn, hoặc nhận bộ bản vẽ mẫu trong buổi học.

📥 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.

  1. Bản vẽ mặt bằng đã có sẵn line dầm theo layer chuẩn QS và text tên dầm/kích thước gần đó
  2. Cài đặt QSTool 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. QSTools bản DLL đã nạp — gõ thử BM1 trên dòng lệnh AutoCAD thấy lệnh chạy (nhấn ESC thoát) là được; nếu báo "Unknown command" thì mở lại AutoCAD hoặc cài lại QSTools
  5. Mở sẵn Excel để nhận kết quả xuất khối lượng ở bước cuối (BM14 hoặc BM15)
⚠️ 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 "BM1"). Gọi kiểu (C:BM1) 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 "…").
⏱ Vì gọi bằng (command "…"), lệnh sẽ khởi động rồi dừng ngay tại dòng lệnh AutoCAD chờ bạn chọn đối tượng / trả lời lựa chọn. Với các lệnh mở hộp thoại (BM5, BM9, BM10…), Claude có thể báo hết thời gian chờ trong lúc hộp thoại còn mở — không sao, cứ thao tác xong trên AutoCAD rồi báo Claude đi tiếp.
📦 Cài đặt Skill cho Claude

Toàn bộ quy trình (chuẩn bị CBT/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

  1. Tải và giải nén file autocad-beam-workflow.zip — sẽ được 1 thư mục autocad-beam-workflow chứa SKILL.md và evals.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\autocad-beam-workflow\
    (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 sẽ 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 dầm" hoặc gọi trực tiếp /autocad-beam-workflow.
⚠️ 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 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.
🧊 Bấm nút trên ribbon hay gọi qua Claude — giống hay khác?

Hoàn toàn giống nhau. Bấm nút BM9 trên ribbon AI_STR và nhờ Claude gọi (command "BM9") qua MCP đều chạy đúng một bản DLL — cùng thuật toán, cùng thông số, cùng kết quả. Mọi tính năng đều dùng được ở cả 2 đường, ví dụ:

👉 Vậy nên chọn đường nào là tuỳ tiện tay: đang chat với Claude thì để Claude gọi; đang thao tác trên AutoCAD thì bấm nút cho nhanh. Xen kẽ giữa chừng cũng không sao.

📜 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 — hoặc AutoCAD dừng ở dòng lệnh (command line) chờ bạn chọn đối tượng/nhập lựa chọn, hoặc bạn cần xem kết quả trước khi bảo Claude gọi bước tiếp theo. Sau mỗi lần gọi lệnh, 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.
CBT
Chuẩn bị (tuỳ chọn) — Ghép text tên dầm bị gãy
Chỉ khi tên dầm bị tách
Việc macro làm

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.

Prompt mẫu gọi qua Claude
"Chạy CBT để gom các text tên dầm bị gãy thành một trước khi phân loại bề rộng."
execute_lisp → (command "CBT")
⏸ Điểm dừng

AUTO: hỏi hệ số khoảng cách trước (khoảng hở tối đa = hệ số × chiều cao text, mặc định 3, nhớ lần trước) → chờ chọn vùng chứa text (Select objects). MANUAL: chờ pick text 1 (được giữ lại) → text 2 (gộp vào text 1 rồi xoá), 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.

✅ Xong đúng thì thấy

Tên dầm trước bị tách làm nhiều mảnh nay là một text liền — click thử chỉ chọn được 1 đối tượng.

❌ Hay sai chỗ này

Chạy CBT sau BM9: lúc đó BM9 đã đọc tên sai rồi, phải mở BM9A sửa lại từng chỗ. Ghép text trước, luôn.

CBT1
Chuẩn bị (tuỳ chọn) — Gộp cụm text xếp thẳng cột thành một nhãn
Chỉ khi nhãn viết nhiều dòng
execute_lisp → (command "CBT1")
Việc macro làm

Khác CBT: CBT chỉ ghép tên dầm bị tách và bắt buộc chuỗi ghép phải có dạng sốxsố. CBT1 gộp mọi cụm text xếp thẳng cột (cùng hướng chữ, cùng chiều cao chữ, nằm gần nhau theo chiều dọc dòng chữ) thành một nhãn nối bằng _, không đòi mẫu nào — ví dụ CF.04 + CH+2.600 → CF.04_CH+2.600.

Ngưỡng gom chỉnh trong STSET: TxtGrpGapFactor, TxtGrpColTol, TxtGrpMaxDist, TxtGrpMaxInBox.

"Chạy CBT1 để gộp các nhãn viết 2 dòng thành một text."
✅ Xong đúng thì thấy

Mỗi nhãn nhiều dòng nay là một text liền.

❌ Hay sai chỗ này

Dùng CBT1 cho tên dầm thường bị tách kiểu B1 + (300x400) nằm cạnh nhau — việc đó là của CBT.

BBW
Chuẩn bị — Phân loại tên dầm theo bề rộng
Chọn vùng + MsgBox
Việc macro làm

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ạy BBW để phân loại và tô màu text tên dầm theo bề rộng."
execute_lisp → (command "BBW")
⏸ Điểm dừng

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.

✅ Xong đúng thì thấy

Text tên dầm đổi màu theo nhóm bề rộng — mỗi bề rộng một màu, nhìn là thấy dầm nào cùng loại.

❌ Hay sai chỗ này

Ô Beam dimension unit trong QS Settings để sai mm/cm ⇒ nhóm ra sai 10 lần. Kiểm ô đó trước khi chạy.

BWH
Chuẩn bị (thay cho BBW) — Gom text tên dầm theo 3 tiêu chí
Chọn text + trả lời 1 lựa chọn
Việc macro làm

Bản mở rộng của BBW: cũng tô màu text tên dầm theo nhóm, nhưng cho bạn chọn gom theo tiêu chí nào thay vì luôn theo bề rộng.

  • Width — theo bề rộng (giống hệt BBW).
  • Height — theo chiều cao dầm.
  • Both — theo cả cặp WxH, mỗi tiết diện một màu riêng.
  • Face — không dùng text: đo bề rộng từ 2 mép dầm rồi ghi danh sách bề rộng cho BM1 (chỉ ra được bề rộng, không ra chiều cao).

Hỏi ngay trên dòng lệnh (không mở hộp thoại) và nhớ lựa chọn lần trước — Enter là dùng lại. Đơn vị mm/cm lấy thẳng từ ô Beam dimension unit trong QS Settings, không hỏi lại. Chế độ Height không ghi danh sách bề rộng vào registry; Width/Both hỏi Yes/No như BBW.

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

Trước tiên trả lời [Width/Height/Both/Face] trên dòng lệnh, sau đó quét chọn text/mtext (Face thì chọn theo hướng dẫn trên dòng lệnh để đo mép dầm).

✅ Xong đúng thì thấy

Text đổi màu theo đúng tiêu chí đã chọn; bảng tổng kết liệt kê từng nhóm kèm số lượng.

❌ Hay sai chỗ này

Chọn Both trên bản vẽ ghi tiết diện lộn xộn sẽ ra rất nhiều nhóm màu, nhìn còn rối hơn — bắt đầu bằng Width.

ALO
Chuẩn bị — Gán layer vùng SÀN
Bắt buộc trước BM11
Việc macro làm

Hộp thoại liệt kê các layer vùng sàn có sẵn (QS_Slab_Full_Area_ = nền, QS_Slab_Step_Area_ = bậc/vùng lồng trong, QS_Slab_Open_* = lỗ mở) — chọn 1 layer, nhập bề dày / độ giật bậc vào ô giá trị (layer đích thành dạng QS_Slab_Full_Area_(150)), rồi chọn Draw New (vẽ mới bằng lệnh vẽ gốc của CAD, lặp lại tới khi nhấn ESC) hoặc Assign Existing (chọn đối tượng có sẵn). Chạy nhiều lần cho từng vùng/bề dày sàn khác nhau. Bản vẽ chưa có layer QS_Slab_* thì chạy STL trước.

Vùng sàn để BM11 dùng phải là polyline kín (Circle/Spline/Line gán được layer nhưng BM11 không đọc).

"Chạy ALO để tôi khoanh vùng sàn theo từng bề dày trước khi phá dầm."
execute_lisp → (command "ALO")
⏸ Điểm dừng

Chờ chọn layer + nhập giá trị trong hộp thoại → 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 valid slab zone found!".

✅ Xong đúng thì thấy

Vùng sàn nằm trên layer QS_Slab_Full_Area_(150) / QS_Slab_Step_Area_(±50), bao kín khu vực cần bóc.

❌ Hay sai chỗ này

Quên chạy ⇒ BM11 báo "No valid slab zone found!" và không phá gì; lúc xuất phải dùng một bề dày sàn duy nhất.

ALO1
Chuẩn bị — Gán bề dày sàn cho LỖ MỞ
Chỉ khi bản vẽ có lỗ mở
Việc macro làm

Đi cặp với ALO. Mỗi đối tượng trên layer QS_Slab_Open_* (Area / MEP / Tank / Ramp / Staircase) được tra bề dày sàn tại chỗ nó nằm, rồi đổi tên layer thành QS_Slab_Open_Area_(200) — mang sẵn con số đó.

Cách tra giống hệt BM11: vùng Full lấy số ghi trong tên, vùng Step lấy vùng Full bao ngoài gần nhất rồi cộng bậc — bậc lồng bậc không cộng dồn.

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

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

Chờ chọn vùng làm việc (vùng chọn chỉ lọc lỗ mở; vùng sàn Full/Step luôn quét cả bản vẽ) → hiện bảng tổng kết và hỏi xác nhận trước khi đổi tên layer — đọc mục cần xử lý trước khi đồng ý.

✅ Xong đúng thì thấy

Layer lỗ mở đổi thành dạng QS_Slab_Open_Area_(200), mang sẵn bề dày tại chỗ.

❌ 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, đừng bỏ qua.

BM1
Bước 1 — Vẽ centerline dầm
Chọn layer/đối tượng
Việc macro làm

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ó). Hỗ trợ cả dầm cung tròn — ghép 2 cung cùng tâm (lệch tâm ≤ ArcCenterTol, mặc định 50mm) thành centerline cung ở bán kính trung bình. Chọn được vùng làm việc hoặc cả bản vẽ.

🌀 Nhận cả cung "bị polygon hoá". Nhiều bản vẽ có mặt dầm cong được vẽ thành một chuỗi đoạn thẳng ngắn chứ không phải cung thật. Lệnh dò ra chuỗi đoạn thẳng nằm trên cùng một đường tròn rồi coi như cung để ghép cặp với mép bên kia. Ba thông số trong STSET: PolyArcMinSeg (4), PolyArcMaxTurn (30°), PolyArcTol (2 mm) — đặt PolyArcMinSeg nhỏ hơn 3 là tắt hẳn tính năng này.

🗑️ Bản vẽ đã có tim dầm: lệnh hỏi "DELETE them and redraw?". Bấm Yes để xoá tim cũ trong vùng đã chọn (hoặc cả bản vẽ nếu chọn toàn bộ) rồi vẽ lại; bấm No là huỷ lệnh.

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

Lần lượt hỏi: layer mép dầm (gõ tên hoặc Pick on screen) → layer bê tông cột/vách (tim nằm trong bê tông bị cắt bỏ; để trống = bỏ qua) → danh sách bề rộng (điền sẵn từ BBW) → dung sai ±20 mm → chiều dài line tối thiểu 50 mm → vùng làm việc → bảng xác nhận. Ở QUICK mode (InteractiveMode = 0) lệnh bỏ qua 3 câu bề rộng / dung sai / chiều dài và bảng xác nhận, dùng lại giá trị đã lưu.

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.

✅ Xong đúng thì thấy

Mỗi dầm có đúng một đường tim trên layer QS_CL_BEAM_<bề rộng>.

❌ Hay sai chỗ này

Chọn nhầm layer mép dầm ⇒ tim vẽ lệch hoặc thiếu hàng loạt. Nhìn qua vài dầm trước khi sang bước sau.

BM2
Bước 2 — 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 — áp cho cả cung tròn (cùng tâm + cùng bán kính + chồng lấn góc ≥50%). Hai line thẳng coi là trùng khi song song, cách nhau không quá DedupDist (STSET) và chồng lấn ≥50% line ngắn hơn.

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

Lệnh chạy thẳng trên cả bản vẽ, không hỏi xác nhận, xong hiện bảng "Dedup complete" ghi số line đã xoá. Thấy không ổn thì Ctrl+Z.

✅ Xong đúng thì thấy

Số tim giảm; không còn 2 tim chồng nhau trong cùng một layer.

❌ Hay sai chỗ này

Đặt DedupDist quá lớn ⇒ 2 dầm song song sát nhau bị coi là trùng và mất một cái.

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

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. Lệnh hỏi vùng làm việc, rồi hiện hộp: Yes = xoá ngay line mỏng hơn · No = chỉ highlight để bạn duyệt bằng mắt · Cancel = thoát. Danh sách cặp trùng (kèm handle) in ra dòng lệnh.

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

Đây là điểm dừng bắt buộc — muốn duyệt trước thì bấm No (chỉ highlight), xem xong mới chạy lại và bấm Yes, vì máy có thể chọn nhầm. Duyệt kỹ ở đây tiết kiệm rất nhiều công sửa về sau.

✅ Xong đúng thì thấy

Không còn tim trùng nhau giữa các layer bề rộng khác nhau.

❌ Hay sai chỗ này

Duyệt qua loa: bước này xoá tim thật nếu bạn xác nhận nhầm — xem kỹ từng cặp được hỏi.

BM4
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 — nối được mọi phương kể cả xiên — chọn nối theo Layer hoặc theo Size. Khe hở nằm trong vùng bê tông thì không nối. Với dầm cung tròn: snap đầu line thẳng về đúng đầu cung cùng layer.

"Chạy BM4, tôi sẽ chọn chế độ nối trên hộp thoại AutoCAD."
execute_lisp → (command "BM4")
⏸ Điểm dừng

Hộp thoại hỏi chế độ: Yes = nối cùng layer (bề rộng lệch trong JoinWidthTol vẫn nối) · No = nối cùng tiết diện · Cancel = thoát → chọn vùng làm việc → nhập khe hở tối đa (mặc định 600 mm) → chọn layer bê tông (để trống = bỏ qua kiểm bê tông). Trả lời thẳng trên AutoCAD (không trả lời qua Claude), xong thì báo "xong" cho Claude đi tiếp. BM4 luôn hỏi đủ các bước, kể cả ở QUICK mode.

✅ Xong đúng thì thấy

Các đoạn tim thẳng hàng đã nối liền; khe hở giữa chúng biến mất.

❌ Hay sai chỗ này

Chế độ By Layer với JoinWidthTol lớn có thể nối 2 dầm khác bề rộng thật thành một — đoạn gộp lấy bề rộng LỚN HƠN nên thừa khối lượng.

BM5
Bước 5 — Auto Extend đầu centerline còn hở
Chọn layer mép + max
Việc macro làm

Kéo đầu centerline còn hở tới mép dầm gần nhất để hình học liền mạch trước khi trim. Giới hạn kéo = số bạn nhập ở hộp "Max extend distance" (mặc định 300 mm) — đầu nào không có mép dầm trong khoảng đó thì để nguyên. Mép dầm nhận cả LWPOLYLINE; cung tròn được kéo dài theo đường cong.

"Chạy BM5 để kéo các đầu centerline còn hở tới mép dầm."
execute_lisp → (command "BM5")
⏸ Điểm dừng

Chờ chọn layer mép dầm bằng form pick trên màn hình (chỉ vào 1 đối tượng mép dầm là xong, khỏi tìm tên layer trong danh sách) — lệnh nhớ layer đã chọn cho lần sau → nhập khoảng kéo tối đa (mm) → chọn vùng làm việc.

✅ Xong đúng thì thấy

Đầu tim còn hở đã chạm tới mép dầm/bê tông; không còn đầu lửng giữa không trung.

❌ Hay sai chỗ này

Nhập khoảng kéo tối đa quá lớn ⇒ tim bị kéo vượt qua lỗ mở, chạm sang dầm kế bên. Giữ số này nhỏ.

BM5A
Bước 5A (tuỳ chọn) — Khép góc L / nút T
Chọn vùng
execute_lisp → (command "BM5A")
Việc macro làm

Với từng đầu tim, tìm tim khác cắt qua (lệch góc ≥ MinCrossAng, mặc định 10°), tính giao điểm rồi kéo đầu tim tới đó nếu đoạn phải kéo không vượt giới hạn = WidthFactor (mặc định 1.5) × bề rộng dầm lớn hơn trong 2 dầm; không đọc được bề rộng từ tên layer thì dùng ExtendDefLimit (600 mm). Nhiều ứng viên thì chọn đoạn kéo ngắn nhất. Chạy sau BM4/BM5, trước BM10.

"Chạy BM5A để khép các góc L và nút T còn hở."
⏸ Điểm dừng

Chờ chọn vùng làm việc, xong hiện bảng tổng kết.

❌ Hay sai chỗ này

WidthFactor quá lớn ⇒ tim bị kéo dài quá đà, xuyên qua cả dầm bên cạnh.

BM5B
Bước 5B (tuỳ chọn) — Lấp khe hở bằng line "Door"
Chọn vùng + nhập khe
execute_lisp → (command "BM5B")
Việc macro làm

Vẽ line mới tại khoảng hở giữa các centerline thẳng hàng, cả phương ngang lẫn phương dọc, lên layer QS_CL_Beam_<W>_Door_<dài khe> (vd QS_CL_Beam_300_Door_500), xong tự dedup lại các layer QS_CL_BEAM_*.

"Chạy BM5B để lấp các khe hở bằng line Door."
⏸ Điểm dừng

Chờ chọn vùng làm việc → nhập khe hở tối đa cần lấp (mm) → chọn bộ lọc layer.

⚠️ Layer QS_CL_Beam_*_Door_* nằm trong họ QS_CL_BEAM nên BM14/BM15 cộng chiều dài này vào khối lượng dầm. Chỉ dùng khi khe hở đó thật sự là dầm; nếu không, xoá hoặc tắt layer Door trước khi xuất.
BM6
Bước 6 — Trim centerline trong vùng bê tông
Xác nhận xoá
Việc macro làm

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.

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

Chờ chọn layer bê tông (form pick trên màn hình) → vùng làm việc, rồi trim luôn (không hỏi trước khi xoá DFW trong cột/vách). Trim xong, nếu có line bị ảnh hưởng thì hỏi "Run dedup now?" — nên chọn Yes. Layer QS_CL_DFWCOL được bỏ qua có chủ đích.

✅ Xong đúng thì thấy

Phần tim nằm trong vùng bê tông cột/vách đã bị cắt bỏ.

❌ Hay sai chỗ này

Layer bê tông chọn thiếu ⇒ tim vẫn chờm vào cột, khối lượng đếm trùng phần giao. Chạy BM7 để soát lại.

BM7
Bước 7 — Kiểm tra sau trim
Xem highlight
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 — để bạn biết còn sai sót ở đâu trước khi trim giao cắt.

"Chạy BM7, cho tôi biết còn bao nhiêu chỗ bị chờm vào bê tông."
execute_lisp → (command "BM7")
⏸ Điểm dừng

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.

✅ Xong đúng thì thấy

Không còn đoạn nào bị highlight, tức không còn tim chờm vào bê tông quá CheckOverlapTol.

❌ Hay sai chỗ này

Thấy còn lỗi mà bỏ qua đi tiếp: sai số này đi thẳng vào bảng khối lượng cuối cùng.

BM8
Bước 8 — Trim giao cắt
Nhập góc + xác nhận
Việc macro làm

Trong kết cấu thực tế chỉ vách/cột bê tông mới chia đôi dầm — dầm gặp dầm không bị bẻ gãy. Vì vậy lệnh phân loại nút theo HÌNH DẠNG trước, rồi mới áp luật:

  • Ngã tư (cả 2 dầm đều xuyên qua) → dầm rộng hơn chạy suốt, dầm hẹp bị cắt làm 2. Bằng bề rộng thì dầm nằm ngang chạy suốt.
  • Chữ T (1 dầm kết thúc trên dầm kia) → dầm chạy suốt KHÔNG BAO GIỜ bị chẻ, bất kể bề rộng; chỉ đầu dầm đâm vào bị thụt về đúng mép.
  • Góc (cả 2 cùng kết thúc tại đó) → dầm rộng hơn kéo dài ra mép ngoài, dầm hẹp thụt vào ⇒ ô góc thuộc trọn về dầm rộng, không còn vùng "không của ai".

Ranh giới "xuyên qua" hay "đầu mút thò dư" do CornerStubFactor quyết định (xem Bảng 2). Vẫn tính cả trường hợp 2 dầm chỉ chạm nhau (dung sai TouchTol) và trim tim thẳng tại chỗ gặp cung tròn.

📐 Nút xiên: nửa bề rộng đo vuông góc với dầm, còn phép lùi/kéo đo dọc trục, nên lượng lùi được chia cho sin(góc giữa 2 tim) — nút 45° vẫn cắt đủ. Hai tim bằng bề rộng mà không tim nào nằm ngang (mặt bằng xoay): tim nào gần nằm ngang hơn thì chạy suốt và giữ trọn ô giao.

"Chạy BM8 để trim các chỗ dầm giao nhau."
execute_lisp → (command "BM8")
⏸ Điểm dừng

Chờ chọn vùng làm việc, rồi mở hộp thoại hỏi góc giao tối thiểu (mặc định 20°) — 2 tim lệch góc nhỏ hơn giá trị này coi như song song, không đụng tới. Ngay trong hộp thoại có tóm tắt 3 luật ở trên. Nhập xong lệnh chạy một lượt và hiện bảng tổng kết đếm riêng từng loại nút.

⚠️ Tim đã bị chẻ đôi KHÔNG tự lành. Dầm đã bị cắt thành 2 tim rời (do sửa tay hoặc do lệnh khác như QSBRK) thì chạy lại BM8 không ghép chúng lại được — phải dựng lại tim từ BM1.
✅ Xong đúng thì thấy

Bảng tổng kết đếm riêng từng loại nút (ngã tư / chữ T / góc), số liệu khớp với những gì bạn thấy trên bản vẽ.

❌ Hay sai chỗ này

Nhập góc giao tối thiểu quá lớn ⇒ nhiều nút bị coi là song song và không được trim chút nào.

BM9
Bước 9 — Gán tên dầm
Chọn layer text + FULL/SIZE
Việc macro làm

Đổ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).

📌 Đơn vị text tiết diện KHÔNG còn hỏi — lấy từ ô Beam dimension unit trong QS Settings (xem bảng 1 ở trên), lệnh in ra dòng lệnh đang đọc là mm hay cm. Nếu bản vẽ ghi tiết diện 2 chiều cao (250x600/500), đặt MultiSizeMode trong STSET = 1 (lấy max) hoặc 2 (lấy trung bình) để tên layer gọn lại còn 1 giá trị.

  • Chỉ đổi tên tim nằm trong vùng làm việc đã chọn.
  • Toạ độ text lấy tâm khung bao (không lấy điểm chèn), nên text căn giữa trên dầm nghiêng vẫn đo khoảng cách đúng.
  • Nhận line, cung và polyline.

🔗 Chế độ PAIR (lệnh hỏi mỗi lần chạy; trả lời No = không dùng): pick một đối tượng mẫu → mọi line/cung/polyline trên layer đó ghép với text gần nhất và chuyển sang QS_CL_BEAM_<W>_<text>, bề rộng suy từ WxH trong chính text. Ghép không được thì để nguyên đối tượng — không tạo layer rác, không gán _XXX — và liệt kê riêng.

📌 Text vuông góc vẫn gán được. Góc chỉ là ưu tiên: không có text song song trong LabelAngTol thì lệnh lui về text gần nhất bất kể góc — nên đừng đổ lỗi cho thông số này khi dầm nghiêng không nhận tên.

"Chạy BM9 để gán tên dầm theo text gần nhất, tôi sẽ chọn FULL TEXT hay SIZE ONLY."
execute_lisp → (command "BM9")
⏸ Điểm dừng

Thứ tự hỏi: vùng làm việc → chế độ tên layer (Yes = FULL TEXT, No = SIZE ONLY) → có ghép thêm đối tượng ngoài QS_CL_BEAM_* không (PAIR) → quét chọn vài text mẫu để lấy layer text → khoảng cách tối đa (mặc định 2000 mm; xa hơn thì layer mang đuôi _XXX). BM9 luôn hỏi đủ, kể cả ở QUICK mode. 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.

Ghi chú

(Nếu có nhãn gán sai, dùng BM9A (command "BM9A") — click line sai rồi click text đúng — để sửa tay từng chỗ. BM9A hỏi chế độ: Yes = DRAW vẽ centerline mới (pick điểm đầu/cuối) rồi click text, No = RELABEL line sẵn có; Enter để kết thúc; giữ nguyên hình dạng cung khi relabel dầm cung tròn.)

✅ Xong đúng thì thấy

Tên layer đầy đủ dạng QS_CL_BEAM_300_D1(300x500); rất ít hoặc không có layer _XXX.

❌ Hay sai chỗ này

Nhiều _XXX mà vẫn đi tiếp ⇒ bảng Excel đầy dòng không tên. Chạy BM9B khoanh chúng lại rồi sửa bằng BM9A.

BM9B
Bước 9B — Khoanh vòng các dầm chưa có tên
Chọn vùng + xác nhận
Việc macro làm

Sau BM9, những dầm không tìm được text tên sẽ mang đuôi _XXX. Lệnh này vẽ vòng tròn quanh từng cái trên layer riêng QS_BEAM_XXXCheck để bạn nhìn bản vẽ là thấy ngay còn sót chỗ nào — thay vì phải xuất Excel rồi mới dò ngược.

Layer vòng tròn cố ý nằm ngoài họ QS_CL_BEAM* nên nó không bao giờ lọt vào bảng khối lượng hay bị các bước trim coi là tim dầm. Xoá bằng BMD như mọi layer khác.

"Chạy BM9B để khoanh các dầm còn _XXX cho tôi thấy."
execute_lisp → (command "BM9B")
⏸ Điểm dừng

Chờ chọn vùng làm việc, rồi hỏi có xoá vòng tròn của lần chạy trước không (nên chọn Yes).

✅ Xong đúng thì thấy

Các dầm chưa có tên bị khoanh tròn rõ ràng — không còn phải dò tay trong Excel.

❌ Hay sai chỗ này

Trả lời No ở câu hỏi xoá vòng cũ khi chạy lại ⇒ vòng tròn chồng lên nhau, càng nhìn càng rối.

BM10
Bước 10 — Vẽ vạch DFW 2 đầu dầm
Chọn chế độ DFW
Việc macro làm

Vẽ vạch ván khuôn đầu dầm (DFW) ở 2 đầu mỗi dầm — cơ sở để bước xuất Excel trừ giao ván khuôn. Tên layer thừa hưởng tên dầm từ BM9.

📌 Vạch DFW tách làm 2 layer tuỳ đầu dầm tì vào cái gì:

  • QS_CL_DFWBeam_* (màu đỏ) — đầu dầm tì vào dầm khác.
  • QS_CL_DFWCOL_* (màu magenta) — đầu dầm giáp bê tông cột/vách. Lệnh hỏi riêng layer bê tông để nhận biết; bê tông được ưu tiên hơn mép dầm khi một đầu vừa chạm cả hai.

Tách ra để bước xuất Excel bật/tắt riêng từng loại trừ (xem Bước 14). BM6 cố ý bỏ qua layer DFWCOL — nếu không nó sẽ xoá sạch đúng những vạch này vì chúng nằm trong vùng bê tông.

"Chạy BM10 để vẽ vạch DFW 2 đầu mỗi dầm."
execute_lisp → (command "BM10")
⏸ Điểm dừng

Thứ tự hỏi: vùng làm việc → chế độ DFW (Yes = bỏ đầu tì vào dầm khác, No = vẽ ở mọi đầu) → layer mép dầm (chỉ hỏi khi chọn Yes) → layer bê tông cột/vách (để trống = mọi vạch vào QS_CL_DFWBeam), các layer chọn bằng form pick trên màn hình. Vạch DFW cũ trong vùng được xoá trước khi vẽ lại. Với dầm cung tròn, vạch DFW vẽ theo hướng bán kính tại 2 đầu cung.

✅ Xong đúng thì thấy

Mỗi đầu dầm có một vạch ngắn; vạch giáp dầm và vạch giáp cột/vách nằm trên hai layer khác màu.

❌ Hay sai chỗ này

Không khai layer bê tông ⇒ mọi vạch rơi hết vào DFWBeam, sau đó không tách riêng phần giáp cột được nữa.

BM10A
Bước 10A — Vẽ hình tiết diện dầm từ tim
Chọn phạm vi + xác nhận
Việc macro làm

Từ mỗi tim, vẽ hình kín đúng bề rộng dầm, tim nằm chính giữa — tức là vệt dầm thật trên mặt bằng. Tim thẳng ra hình chữ nhật (2 đầu cắt vuông), tim cung tròn ra dải cong. Tim gốc giữ nguyên.

  • Dầm, chế độ Size → QS_RECT_BEAM_<W>x<H> (bề rộng lấy từ tên layer, chiều cao đi vào tên hình — cần tim đã có WxH)
  • Dầm, chế độ Width → QS_RECT_BEAM_<W> (chỉ bề rộng, vẽ được cả tim chưa gán tên; nhưng WC9 không dùng được hình này vì cần chiều cao)
  • Tường → QS_RECT_WALL_<bề dày>

Dùng để làm gì: hình là đối tượng thật nên bạn kéo/xoá/thêm được, và ALO2 (ván khuôn cột/vách) có thể ăn theo đúng cái bạn nhìn thấy thay vì tự dựng trong bộ nhớ.

"Chạy BM10A để vẽ hình tiết diện dầm từ tim."
execute_lisp → (command "BM10A")
⏸ Điểm dừng

Chờ chọn phạm vi [Selected/All] → kiểu tên layer [Size/Width] (nhớ lần trước); nếu bản vẽ đã có hình QS_RECT_* thì hỏi: Yes = giữ hình cũ, chỉ vẽ thêm · No = xoá hết vẽ lại · Cancel = thoát. Mảnh QS_BCL_* của BM11 và vạch DFW được bỏ qua.

✅ Xong đúng thì thấy

Mỗi tim có một hình kín bao quanh đúng bề rộng dầm, nằm trên layer QS_RECT_*.

❌ Hay sai chỗ này

Ở chế độ Size, dầm chưa gán tên (thiếu WxH) bị bỏ qua — lệnh liệt kê ra, sửa bằng BM9A rồi chạy lại.

BM10B
Bước 10B — Vẽ đường mặt ván khuôn dầm
Chọn phạm vi + layer bê tông
Việc macro làm

Cách khác để tính ván khuôn, thay cho vạch DFW của BM10. Mỗi tim sinh 4 đường — 2 mặt bên và 2 đầu — rồi cắt bỏ ngay đoạn nằm trong bê tông khác (cột, vách, hoặc dầm cắt qua). Cái gì bị che thì không còn đường, nên không phải trừ lại về sau.

Kết quả ra layer mang sẵn chiều cao: QS_FW_BEAM_<W>x<H> / QS_FW_WALL_<T> ⇒ diện tích ván khuôn = tổng chiều dài đường × chiều cao đọc trong tên layer. Hai thông số tinh chỉnh: FwEdgeTol (sát tới đâu thì coi là nằm trên mặt kia) và FwMinSeg (mảnh ngắn hơn thì bỏ).

⚠️ BM10B và vạch DFW của BM10 là hai cách THAY THẾ nhau, không cộng vào nhau. BM10 vẽ vạch rồi để bước Excel trừ đi; BM10B thì cắt sẵn ngay trên bản vẽ. Dùng cả hai là trừ 2 lần.
"Chạy BM10B để vẽ đường mặt ván khuôn dầm."
execute_lisp → (command "BM10B")
⏸ Điểm dừng

Chờ 3 câu: phạm vi [Selected/All] → vẽ cho [Beam/Wall/Both] (mặc định Beam) → layer bê tông cột/vách (để trống là bỏ qua bước trừ này).

✅ Xong đúng thì thấy

Đường ván khuôn chạy dọc 2 bên và 2 đầu dầm, đứt đoạn đúng chỗ đâm vào cột/vách hay dầm khác.

❌ Hay sai chỗ này

🔴 Dùng BM10B rồi vẫn cộng vạch DFW của BM10 ⇒ trừ ván khuôn hai lần. Chọn một trong hai cách.

BM11
Bước 11 — Phá dầm & DFW theo vùng bề dày sàn
Chọn vùng làm việc
Việc macro làm

Giữ nguyên tim gốc và tạo bản sao của centerline dầm và vạch DFW, phá tại ranh giới các vùng bề dày sàn (đã khoanh bằng ALO), lên các layer QS_BCL_BEAM_* / QS_BCL_DFWBeam_* / QS_BCL_DFWCOL_* với hậu tố _<bề dày>_<stt> (dầm nằm trọn trong 1 vùng thì hậu tố _<bề dày>_F), 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.

🔴 Sau BM11, tránh đếm 2 lần: tim gốc QS_CL_BEAM_* / QS_CL_DFW* vẫn còn nguyên trên bản vẽ. Trước khi chạy BM14, ở BM13 chỉ isolate các nhóm QS_BCL_Beam / QS_BCL_DFWBeam / QS_BCL_DFWCOL — không bật kèm nhóm QS_CL_BEAM / QS_CL_DFW*, nếu không khối lượng bị tính hai lần.
⚠️ BM11 chưa phá dầm cung: cung tròn và polyline có đoạn cong bị bỏ qua (có cảnh báo), nên không có bản sao QS_BCL_*. Dầm cung phải xuất riêng từ QS_CL_BEAM_* (BM15, hoặc BM14 với bề dày nhập tay).
"Chạy BM11 để phá dầm và DFW theo các vùng bề dày sàn đã khoanh."
execute_lisp → (command "BM11")
⏸ Điểm dừng

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 valid slab zone found!". Mảnh ngắn hơn MinFragLen (STSET, mặc định 200mm) thì không phá tiếp.

✅ Xong đúng thì thấy

Bản sao của dầm được cắt thành mảnh tại ranh giới các vùng bề dày sàn; mảnh nằm trên QS_BCL_BEAM_* mang bề dày trong tên, tim gốc vẫn còn.

❌ Hay sai chỗ này

Isolate cả QS_CL_BEAM lẫn QS_BCL_Beam rồi xuất BM14 ⇒ khối lượng gấp đôi. Chưa chạy ALO ⇒ lệnh báo "No valid slab zone found!" và không làm gì cả.

BM12
Bước 12 — Tạo Layer Group trong Layer Manager
Kiểm nhóm tạo ra
Việc macro làm

Tạo sẵn các layer filter group theo thứ tự Dầm → Ván khuôn dầm → Sàn → Tường → Cột/Vách/Móng → Text (Text_BW, Text_BH, Text_BWH, Text_WW), kèm các nhóm hoàn thiện, trong Layer Manager (LA) — giúp bước sau isolate nhanh theo từng nhóm. Tên khác của lệnh: GCL.

"Chạy BM12 để tạo nhóm layer."
execute_lisp → (command "BM12")
⏸ Điểm dừng

Hiện bảng danh sách filter vừa tạo, đóng bảng là hộp chọn nhóm của BM13 tự mở ngay — muốn xem lại cây filter trong Layer Manager (LA) thì bấm Cancel ở hộp đó.

✅ Xong đúng thì thấy

Trong Layer Manager hiện các nhóm lọc theo đúng thứ tự Dầm → Ván khuôn → Sàn → Tường.

❌ Hay sai chỗ này

Thêm họ layer mới mà quên chạy lại BM12 ⇒ nhóm thiếu, BM13 isolate sót đối tượng.

BM13
Bước 13 — Isolate nhóm cần xuất khối lượng
Chọn nhóm
Việc macro làm

Hộp thoại liệt kê các nhóm layer (kèm số layer). Tick nhóm cần xuất rồi bấm Isolate (chỉ hiện nhóm đã tick); Hide SEL = ẩn riêng các nhóm đã tick (freeze hoặc off); Thaw ALL = hiện lại tất cả (bỏ đóng băng và bật lại layer đang off). 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. Tên khác của lệnh: ICL.

🔴 Đã chạy BM11 thì chỉ tick các nhóm QS_BCL_Beam / QS_BCL_DFWBeam / QS_BCL_DFWCOL, không tick kèm QS_CL_BEAM / QS_CL_DFWBeam / QS_CL_DFWCOL — tim gốc vẫn còn, tick cả hai là khối lượng tính hai lần.
"Chạy BM13, isolate nhóm QS_BCL_Beam kèm QS_BCL_DFWBeam và QS_BCL_DFWCOL để tôi xuất khối lượng."
execute_lisp → (command "BM13")
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" và "có trừ giao ván khuôn không" — chọn sai nhóm ở đây thì bảng Excel ra sai phạm vi. Nếu chưa quen, hãy làm thử với 1 nhóm tiết diện trước rồi mới xuất các nhóm còn lại.

✅ Xong đúng thì thấy

Chỉ còn nhóm bạn chọn hiện trên màn hình; mọi thứ khác đã tắt.

❌ Hay sai chỗ này

Quên chạy SLO lưu trạng thái trước đó ⇒ sau khi xuất xong phải bật tay lại từng layer.

BM14 / BM15
Bước 14 — Xuất khối lượng & ván khuôn dầm sang Excel
Chạy lệnh rồi select tay
Việc macro làm

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:

  • BM14 — Excel (auto thk): đọc bề dày từng vùng từ suffix layer do BM11 tạo (vd ..._150_1 → 150mm); DFW gộp theo layer. Đối tượng nào không có suffix thì lệnh hỏi một bề dày dự phòng 1 lần. → Dùng khi ĐÃ chạy BM11 phá vùng.
  • BM15 — Excel (manual thk): một bề dày nhập tay cho mọi đối tượng, thêm mode Yes = PER LINE / No = TOTAL. → Dùng khi KHÔNG phá vùng (1 bề dày phẳng).
  • Cả hai lệnh còn hỏi EXCLUDE bottom formwork? [Yes/No] = có bỏ ván khuôn ĐÁY dầm không (Yes cho dầm nằm trên nền đất; cột ván khuôn đáy trong Excel để trống) — lệnh nhớ lựa chọn cho lần sau.

Thứ tự hỏi — BM14: (mở sẵn Excel) → bảng tick 3 mục → bỏ ván khuôn đáy? → quét chọn đối tượng. BM15: PER LINE/TOTAL → bảng tick 3 mục → bỏ ván khuôn đáy? → bề dày sàn → quét chọn. Vùng ghi trong Excel đã có dữ liệu thì hỏi ghi đè / chọn dòng khác / huỷ.

Bảng tick 3 mục

Mở đầu lệnh là một hộp thoại cho tick độc lập 3 thành phần — tick đủ cả ba = bảng bóc đầy đủ, bỏ tick cái nào thì bỏ qua cái đó kể cả khi nó nằm trong vùng bạn chọn:

Mục tickLayerGhi vào Excel
Beam quantityQS_CL_BEAM_* / QS_BCL_BEAM_* — thực tế là mọi đối tượng được chọn không thuộc layer DFWKhối lượng dầm — chiều dài dương
Deduct beam-to-beamQS_CL_DFWBeam*Trừ ván khuôn chỗ dầm giao dầm — chiều dài ÂM
Deduct beam-to-column/wallQS_CL_DFWCOL*Trừ ván khuôn chỗ dầm giáp cột/vách — chiều dài ÂM
⚠️ Dòng trừ ghi chiều dài ÂM — nên bỏ tick một mục trừ làm tổng LỚN HƠN, không phải nhỏ đi. Đây là chỗ dễ hiểu ngược nhất: thấy tổng tăng lên thì đừng mừng, kiểm lại xem có bỏ sót mục trừ nào không.

📌 Thứ tự dòng trong Excel cố định: khối lượng DẦM → trừ giao DẦM → trừ giao CỘT/VÁCH.

🔴 Lệnh tính mọi đối tượng bạn quét chọn — không lọc theo tên layer. Phải isolate sạch bằng BM13 trước khi quét. Đã chạy BM11 thì chỉ để hiện các nhóm QS_BCL_*; để lẫn QS_CL_BEAM_* gốc là khối lượng gấp đôi.
"Chạy BM14 để xuất khối lượng + ván khuôn (auto đọc bề dày từng vùng); tôi sẽ quét chọn các mảnh QS_BCL đang hiện khi macro yêu cầu."
execute_lisp → (command "BM14") / hoặc (command "BM15")
Lưu ý quan trọng

Đây là bước có thao tác tay — Claude gọi lệnh, nhưng bạn 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. Nói ngắn gọn: AI lo phần dọn dẹp và tính toán lặp lại, còn phạm vi chọn và lệnh xuất phù hợp vẫn do bạn quyết định.

✅ Xong đúng thì thấy

Excel có đủ 3 khối theo thứ tự: khối lượng dầm → trừ giao dầm → trừ giao cột/vách; tổng ở cuối hợp lý.

❌ Hay sai chỗ này

Bỏ tick một mục trừ làm tổng LỚN HƠN chứ không nhỏ đi — thấy tổng tăng thì kiểm lại bảng tick chứ đừng mừng.

XXX → BM9A
Sau khi xuất — Rà soát dòng "XXX" trong Excel
Sửa từng dòng
Việc cần làm

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.

"Tôi đã Find Item tới line bị XXX, chạy BM9A để tôi sửa lại tên dầm này."
execute_lisp → (command "BM9A")
⏸ Điểm dừng

Bạn tìm dòng XXX + bấm Find Item trước, rồi mới nhờ Claude gọi BM9A cho từng chỗ.

✅ Xong đúng thì thấy

Không còn dòng nào ghi XXX trong Excel.

❌ Hay sai chỗ này

Sửa tên trên bản vẽ xong mà quên xuất lại Excel ⇒ bảng cũ vẫn còn nguyên dòng XXX.

🔗 Ván khuôn CỘT / VÁCH — liên quan trực tiếp tới bảng dầm

Hai lệnh ALO2 và CS12 thuộc quy trình cột/vách nhưng dính chặt vào bảng khối lượng dầm bạn vừa xuất, nên cần biết để không cộng trùng:

⚠️ Ba chỗ dễ cộng trùng — nhớ kỹ:
① BM10B ↔ vạch DFW của BM10: hai cách thay thế nhau, dùng một thôi.
② Cột U của CS11 vốn đã là ván khuôn — dùng CS12 thì để CS11 lấy phần bê tông, đừng cộng cả hai.
③ ALO2 ↔ dòng QS_CL_DFWCOL mà BM14/BM15 trừ: 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, không mặt nào được ghép ván khuôn.

📚 Chi tiết hai lệnh này ở Hướng dẫn tab AI_CWF — Cột / Vách / Móng. Phần tường xây (tim tường, cửa, chiều cao xây) nằm ở Hướng dẫn tab AI_WALL  ·  Hoàn thiện: Sàn / Trần / Tô trát — lệnh WC9 bên đó cần chính hình tiết diện dầm do BM10A vẽ ra.

🧰 Lệnh tiện ích bổ sung (không nằm trong chuỗi BM1→BM15 chính)
⚠️ Các lệnh dưới đây không nằm trong trình tự chính — chỉ dùng khi cần làm lại từ đầu, dọn dẹp, hoặc xử lý tình huống phát sinh. Không gọi tuỳ tiện giữa chừng khi đang chạy chuỗi BM1→BM15.
BMD
Xoá centerline / DFW / mảnh break theo layer chọn
Chọn layer + xác nhận
Việc macro làm

Xoá các đối tượng trên danh sách layer chọn — dùng khi cần làm lại centerline từ đầu (vẽ nhầm layer, dữ liệu lỗi nặng...). Lệnh liệt kê ra bảng tick, không tự xoá gì nếu bạn không tick. Nhận diện được:

  • Centerline dầm QS_CL_BEAM_* và mảnh do BM11 phá QS_BCL_BEAM_*
  • Vạch DFW cả 2 loại: *DFWBeam* (giáp dầm) và *DFWCOL* (giáp cột/vách)
  • Polyline cột/vách/móng đã gán tên QS_CL_OBJ_* (kể cả dạng không tiền tố CL_OBJ_*)
  • Vòng tròn đánh dấu _XXX trên layer QS_BEAM_XXXCheck

BMD không xoá hình QS_RECT_* (BM10A) và đường QS_FW_* (BM10B) — hai lệnh đó tự hỏi xoá vẽ lại khi chạy lại.

"Chạy BMD để xoá centerline/DFW dầm theo layer chọn, làm lại từ đầu."
execute_lisp → (command "BMD")
⏸ Điểm dừng

AutoCAD chờ chọn vùng làm việc → bảng tick nhóm bề rộng / layer cần xoá → hỏi xác nhận số đối tượng sẽ xoá — đây là thao tác xoá dữ liệu, hãy đọc kỹ và kiểm đúng phạm vi trước khi đồng ý.

✅ Xong đúng thì thấy

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

❌ Hay sai chỗ này

Tick nhầm QS_CL_OBJ_* ⇒ xoá luôn polyline cột/vách đã gán tên, phải chạy lại OO1/OO2.

QSULK
Mở khoá toàn bộ layer đang bị khoá
Chạy một phát, không hỏi gì
Việc macro làm

Quét toàn bộ layer của bản vẽ, 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 QSTools không sửa được đối tượng.

Lệnh không đụng tới layer đang tắt hay đang đóng băng — chỉ đếm và báo số lượng để bạn biết. Tên có tiền tố QS vì LAYULK là lệnh gốc của AutoCAD, đặt trùng tên là chiếm mất nó.

"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á — dùng BM13 → Thaw ALL (bỏ đóng băng và bật lại layer đang off), hoặc BMU nếu chỉ cần bỏ đóng băng.

BM7
Kiểm tra centerline còn chờm bê tông (chạy lại khi cần)
Xem highlight
Việc macro làm

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.

"Chạy lại BM7 để kiểm tra còn chỗ nào centerline chờm vào bê tông không."
execute_lisp → (command "BM7")
Khi nào dù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.

✅ Xong đúng thì thấy

Không còn đoạn nào bị highlight, tức không còn tim chờm vào bê tông quá CheckOverlapTol.

❌ Hay sai chỗ này

Thấy còn lỗi mà bỏ qua đi tiếp: sai số này đi thẳng vào bảng khối lượng cuối cùng.

BMU / BMS
Bỏ đóng băng layer CL & reset trạng thái seri dầm
Khi layer bị ẩn/khoá
Việc macro làm

BMU (command "BMU") — bỏ đóng băng toàn bộ layer của bản vẽ, không hỏi gì; không bật lại layer đang OFF (muốn bật cả layer OFF dùng BM13 → Thaw ALL). BMS (command "BMS") — xoá mọi lựa chọn đã ghi nhớ của seri dầm (layer mép dầm, layer bê tông, danh sách bề rộng, dung sai, bảng tick xuất Excel, bỏ ván khuôn đáy…) để chạy lại từ đầu với giá trị mặc định; không đụng tới thông số STSET.

"Chạy BMU để bỏ đóng băng các layer đang bị đóng băng."
execute_lisp → (command "BMU") / (command "BMS")
✅ Xong đúng thì thấy

Mọi layer bị đóng băng hiện lại (layer đang OFF vẫn tắt).

❌ Hay sai chỗ này

Dùng BMS giữa chừng sẽ xoá ghi nhớ lựa chọn của cả seri — chỉ chạy khi muốn làm lại từ đầu.

QSGAP / QSPLX / QSPLD
Bộ lệnh soát & sửa hình học trước khi bóc
Mỗi lệnh có nhánh Check / Fix

Ba lệnh chữa đúng những thứ làm hỏng số liệu mà CAD không hề cảnh báo:

  • QSGAP [Check/Weld] — tìm khe hở tóc và đầu mút treo làm BOUNDARY bị loang. Check khoanh đỏ kèm bảng phân bố độ rộng khe; Weld hàn lại và giữ nguyên handle.
  • QSPLX [Check/Fix] — polyline tự cắt. Diện tích .Area của hình tự cắt bị thiếu mà không báo gì; lệnh in cả diện tích CAD lẫn diện tích hình học thật, lệch nhau là hình đang xoắn. Fix có 3 kiểu [Unwind/KeepBig/Split].
  • QSPLD — bỏ đường vòng nông mà BOUNDARY chui vào khe tường rồi quay lại. Luật đặt đúng nên không cắt góc thật.
execute_lisp → (command "QSGAP") · (command "QSPLX") · (command "QSPLD")
❌ Hay sai chỗ này

Đừng dùng OVERKILL toàn bản vẽ để thay mấy lệnh này: đo thật trên một bản vẽ, nó xoá 63% số đối tượng và làm hỏng biên. Chạy đúng vùng nhỏ quanh chỗ lỗi thôi.

QSBRK
Chẻ đối tượng tại mọi điểm giao
[All/Cutter]

All = mọi đối tượng đã chọn chẻ lẫn nhau · Cutter = chọn hai tập khác nhau, tập bị chẻ và tập làm dao (dao giữ nguyên).

execute_lisp → (command "QSBRK")
❌ Hay sai chỗ này
🔴 Đừng chạy trên tim QS_CL_BEAM / QS_CL_WALL. BM8 và WC8 cố ý không chẻ nút chữ T — chẻ ra là phá đúng cái luật vừa trim.
🔴 Handle đổi hết. Bảng Excel đã xuất trước đó (cột mã đối tượng, hyperlink, lệnh QSFIND/QSFCAD) sẽ trỏ vào đối tượng không còn tồn tại.
STL / SLO / QSLR
Bộ lệnh layer đi kèm (panel Layer Management)
Tiện ích
Việc từng lệnh làm
  • STL — tạo bộ layer chuẩn QS cho bản vẽ mới.
  • SLO (hay RLO — hai tên, cùng một hộp thoại) — trạng thái ON/OFF layer của bản vẽ. Menu liệt kê sẵn các state đã lưu, rồi: <số> = khôi phục · S = lưu state mới (hỏi tên) · S2 = ghi đè state số 2 · D2 / D2,3,5 / D* = xoá. Xoá chỉ gỡ bản đã lưu, không đổi layer trong bản vẽ. Mỗi bản vẽ lưu được nhiều state. Bản vẽ chưa có state nào thì vào thẳng nhánh lưu.
  • QSLR — đổi tên / gộp layer (dùng khi tên layer bị lệch chuẩn giữa các bản vẽ).
"Chạy SLO lưu trạng thái layer hiện tại tên 'Truoc khi isolate', sau đó chạy BM13."
execute_lisp → (command "SLO") / (command "STL") / (command "QSLR")
Mẹo dùng

Trước khi BM13 isolate, chạy SLO → S lưu lại 1 state — sau khi xuất Excel xong gọi SLO lần nữa rồi gõ số của state đó là hiện lại đúng như trước, không phải bật tay từng layer.

✅ Xong đúng thì thấy

Trạng thái layer khôi phục đúng như lúc lưu.

❌ Hay sai chỗ này

Xoá state bằng D* là mất hết bản lưu của bản vẽ đó, không hoàn tác được.

QSMODE / STSET
Gạt chế độ hỏi–không hỏi & mở bảng thông số
Tiện ích
Việc từng lệnh làm

QSMODE gạt nhanh InteractiveMode giữa 1 (hỏi đủ bước như thường) và 0 (QUICK mode — dùng lại giá trị đã lưu, bỏ bớt bước nhập tay; BM4 và BM9 vẫn luôn hỏi). STSET mở bảng 99 thông số ở mục "Hai bảng thông số phải biết" phía trên.

"Bật QUICK mode bằng QSMODE rồi chạy lại BM5 cho nhanh."
execute_lisp → (command "QSMODE") / (command "STSET")
⚠️ Lần đầu chạy nên để InteractiveMode = 1 để thấy rõ từng điểm dừng và kiểm được kết quả. QUICK mode chỉ nên bật khi bạn đã quen tay và chạy lại nhiều lần trên cùng bản vẽ.
✅ Xong đúng thì thấy

Dòng lệnh in ra chế độ đang dùng mỗi khi chạy lệnh liên quan.

❌ Hay sai chỗ này

Bật QUICK mode khi chưa quen ⇒ lệnh dùng lại giá trị cũ mà không hỏi, sai mà không biết vì sao.

📝 Lưu ý khi sử dụng
📚 Phụ lục tra cứu — hai bảng thông số

Phần này để tra khi cần, không phải đọc tuần tự. Hai bảng dưới quyết định kết quả của nhiều bước — nếu một lệnh cho ra số lạ, quay lại đây kiểm trước khi nghi bản vẽ.

⚙️ Hai bảng thông số phải biết: QS Settings & STSET

Trước khi bóc, cả bộ lệnh đọc thông số từ 2 bảng. Đây là chỗ hay bị bỏ qua nhất khiến kết quả sai mà không hiểu vì sao:

📐 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)mọi lệnh xuất Excel (BM14, BM15, WC100, CS11, CS12…)
PrecisionSố chữ số thập phân làm tròn khi ghi Excelmọi lệnh xuất Excel
Scale ratio (times)Tỉ lệ bản vẽ — nhân vào kích thước đo đượccác lệnh đo chiều dài / diện tích
Concrete coverLớp bảo vệ bê tông (mm)nhóm lệnh thép (rebar)
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 chiều cao thông thuỷ). Các lệnh tự trừ tiếp bề dày sàn và bậc giật cấp để ra chiều cao thực xây/ván khuôn ⇒ đừng tự trừ trước rồi mới nhập, sẽ thiếu 2 lần.
Máy đã lỡ lưu 0 thì vẫn giữ 0 — mở QSUNITS nhập lại 1 lần.
ALO2, WC9, WC100, QS_BrickWall_*
Beam dimension unitmm hay cm cho text tiết diện dầm trong bản vẽ. Text ghi 40x60 mà bảng đang đặt mm thì tên layer ra 40x60 (sai 10 lần); đặt cm mới ra 400x600. Đặt nhanh bằng lệnh QSBEAMUNITBM9, BM9A, WC4 và QS_BrickWall_03/04
Text heightChiều cao text của nhãn lệnh vẽ (lưu chung với họ lệnh Rectangle)QSCLT/QSCLT1, QSTH
Extend lengthKéo dài 2 đầu đối tượng vẽ (0 = không kéo)QSCLT/QSCLT1, QSEXL
⚠️ Đơn vị text tiết diện không hỏi khi chạy lệnh: BBW/BWH/BM9/BM9A/WC4 đều lấy chung ô Beam dimension unit ở bảng trên và in ra dòng lệnh đang dùng đơn vị nào. Đặt sai mm/cm thì tên layer ra 40x60 thay vì 400x600 → khối lượng sai 100 lần. Kiểm tra ô này TRƯỚC khi chạy BM9.
🎛️ Bảng 2 — STSET (99 thông số, lệnh STSET)

Giá trị lưu trong registry, dùng chung cho mọi lệnh của bộ QSTools. Không sửa gì thì lệnh chạy theo giá trị ở cột "Mặc định". Các dòng tô cam là những thông số hay phải chỉnh nhất khi bóc dầm.

📋 Bảng dưới liệt kê các thông số ảnh hưởng chuỗi bóc dầm. Các thông số còn lại (nhóm Room* của seri lệnh phòng, Alo* của ALO2, Plaster*, Lint*, Door* của seri tường, ExportSortMode của CS11…) thuộc lệnh khác — mở STSET là thấy đủ 99, mỗi dòng có sẵn mô tả.

Thông sốMặc địnhÝ nghĩaLệnh
① Vẽ centerline & khử trùng
MaxGapMerge100 mmKhe hở tối đa để ghép 2 centerline thẳng hàng thành 1BM1
EdgeMargin5 mmBỏ qua line nằm sát mép bê tông trong khoảng nàyBM1, WC
ArcCenterTol50 mmLệch tâm tối đa để ghép 2 cung thành 1 dầm cung trònBM1
PolyArcMinSeg4Số đoạn thẳng tối thiểu để một chuỗi đoạn được coi là cung bị polygon hoá (< 3 = tắt)BM1
PolyArcMaxTurn30 degGóc gãy tối đa giữa 2 đoạn liền nhau trong chuỗi cung polygon hoáBM1
PolyArcTol2 mmSai số tối đa của các đỉnh so với đường tròn khi nhận cung polygon hoáBM1
DedupDist70 mmKhoảng cách tối đa coi 2 centerline là trùng nhauBM2, BM3
TolAngle2 degDung sai góc để coi 2 line là song songBM1–BM3
OvlMin50 mmChiều dài chồng lấn tối thiểu của 2 mép dầm mới ghép thành cặpBM1
OvlRatio0.02Tỉ lệ chồng lấn tối thiểu (so với mép ngắn hơn) khi ghép cặp 2 mép dầmBM1
② Nối / kéo dài / trim
JoinWidthTol30 mmỞ chế độ Yes = By Layer, 2 line thẳng hàng vẫn nối được dù bề rộng layer lệch nhau tới mức này (vd 70 nối với 50 và 90); đoạn gộp lấy layer bề rộng LỚN NHẤT. 0 = tắt, tên layer phải khớp tuyệt đối. Chế độ No = By Size không áp dung sai nàyBM4
WidthFactor1.5Hệ số × bề rộng dầm lớn hơn = giới hạn kéo khi khép góc L / nút TBM5A
ExtendDefLimit600 mmGiới hạn kéo khi không đọc được bề rộng từ tên layerBM5A
MinCrossAng10 degDưới góc này coi như song song — không khép gócBM5A
CheckOverlapTol10 mmNgưỡng báo lỗi "còn chờm vào bê tông"BM7, WC8
TouchTol10 mmNới thêm quá nửa bề rộng dầm chính để tính là "chạm nhau" khi trim giao cắtBM8
CornerStubFactor1.15 × bề rộngQuyết định BM8 xếp một nút vào loại nào. Một nhánh dài hơn bề rộng × hệ số này thì coi là dầm xuyên qua nút; ngắn hơn là đầu mút thò dư. Cả 2 xuyên qua = ngã tư · 1 xuyên qua = chữ T · không cái nào = góc. Đuôi thừa ngắn hơn ngưỡng ở nút góc bị cắt ngay tại điểm giao. 0 = tắt (không cắt đuôi thừa). Đặt quá lớn (vd 2.0) thì một nhánh thò 240 mm trên dầm/tường 180 bị xếp nhầm là "góc" thay vì ngã 3.BM8, WC8
DfwTrimMargin5 mmBiên an toàn khi trim vạch DFWBM10, BM14, BM15
③ Gán tên dầm
LabelAngTol15 degDung sai góc giữa text và centerline khi gán tênBM9, WC4
LabelWidthTol5 mmDung sai so bề rộng layer với W trong text WxHBM9
NeighborMaxGap2000 mmKhe hở tối đa để line _XXX thừa hưởng tên của line kềBM9 (bước B)
MultiSizeMode0Bản vẽ ghi tiết diện 2 chiều cao kiểu 250x600/500 → 0 giữ cả 2 trong tên layer (250x600#500) · 1 lấy giá trị lớn nhất (250x600) · 2 lấy trung bình làm tròn 1mm (250x550)BM9, BM9A, WC4
④ Phá theo vùng & chế độ chạy
MinFragLen200 mmMảnh ngắn hơn giá trị này thì không phá tiếpBM11
OpenZoneMinRatio0.95Tỉ lệ diện tích lỗ mở tối thiểu nằm trong một vùng sàn để lỗ được gán bề dày của vùng đóALO1
FwEdgeTol1 mmSát tới mức này thì coi đường ván khuôn nằm trên mặt bê tông khác (bị cắt bỏ)BM10B
FwMinSeg10 mmMảnh đường ván khuôn ngắn hơn giá trị này thì bỏBM10B
InteractiveMode11 = hỏi đủ các bước như thường · 0 = QUICK mode: dùng lại giá trị đã lưu, bỏ bớt bước nhập tay. Gạt nhanh bằng lệnh QSMODE (BM4 và BM9 vẫn luôn hỏi)toàn seri BM/WC
RibbonShortLabels00 = nhãn nút ribbon đầy đủ · 1 = chỉ mã lệnh (cửa sổ hẹp vẫn thấy nhiều panel). Gạt bằng lệnh QSRBLribbon
⑤ Thông số của lệnh khác (không dùng khi bóc dầm)
ConcEdgeMaxLen300 mmWC1: chỉ loại mép tường nằm trên mặt bê tông nếu mép ngắn hơn giá trị nàyWC1
MergeDistFactor3 × cao textKhoảng cách ghép text tên bị gãy = hệ số × chiều cao textCBT
MergeAngleTolDeg2 degDung sai góc khi ghép text bị gãyCBT
AreaTolOO10.05Sai số diện tích cho phép khi đối chiếu kích thước từ textOO1
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
LintelWidth0 mmBề rộng lanh tô khi pick 2 điểm theo tim (0 = phải pick 2 góc đối)QSCLT
LintelExtendLen0 mmKéo dài mỗi đầu lanh tô (0 = không kéo)QSCLT/QSCLT1
LintelTextHeight20 mmChiều cao text nhãn ghi cạnh lanh tôQSCLT/QSCLT1
⚠️ 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, bạn nên mở STSET xem qua 1 lượt — nhất là MultiSizeMode và InteractiveMode — rồi để 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ì.