Download AutoCad Bản Quyền

Lisp bóc tách khối lượng: 7 bộ và lệnh gọi trên AutoCAD 2026

Bộ lisp bóc tách khối lượng gồm 7 gói: tên lệnh đọc từ mã nguồn, mật khẩu giải nén từng gói, cách nạp trên AutoCAD 2026 và việc CAD đã tự làm được.

  • autocad123.vn
  • 28/08/2023

Lisp bóc tách khối lượng là nhóm tiện ích nhỏ giúp bạn đo chiều dài, cộng diện tích, đếm block và cộng trừ chữ số ngay trên bản vẽ. Trang này gom bảy bộ mà autocad123 đã chia sẻ từ năm 2018. Lần viết lại này tôi tải hết bảy gói về, giải nén, đọc mã nguồn để lấy đúng tên lệnh và in thẳng mật khẩu giải nén của từng gói ra đây.

Tóm tắt. Bảy gói chia làm hai nhóm. Nhóm thứ nhất đo xong báo một con số rồi thôi: TL, GB, S2A. Nhóm thứ hai gắn Field vào bản vẽ nên số tự cập nhật khi hình đổi: QL, QA, QM. Mật khẩu giải nén không giống nhau giữa các gói, có gói là autocad123, có gói là xaydungso.vn. Riêng gói đếm block hỏi mật khẩu hai lần, mỗi lần một chuỗi khác nhau. Trên AutoCAD 2026, ba việc mà ngày xưa phải nhờ lisp thì phần mềm đã tự làm được: cộng dồn diện tích bằng AREA, đếm block bằng COUNT, xuất bảng bằng DATAEXTRACTION.

Bộ lisp phục vụ bóc tách khối lượng xây dựng trong AutoCAD

Bảng tra nhanh bảy bộ lisp bóc tách khối lượng

Bài gốc liệt kê bảy đường dẫn nhưng bỏ trống ô tên lệnh của bộ đo tổng chiều dài. Chỗ đó chỉ ghi đúng chữ Commad: rồi hết. Người đọc tải tệp về và không biết gõ gì. Tôi mở gói ra, đọc dòng defun c: trong mã nguồn và điền lại đầy đủ.

Việc cần làmLệnh gõKiểu kết quảMật khẩu gói
Cộng tổng chiều dài nhiều đoạnTLhộp thoại báo một lầnxaydungso.vn
Gắn chiều dài một đoạn vào chữQL, QLLField tự cập nhậtautocad123
Gắn diện tích một hình vào chữQA, QAAField tự cập nhậtautocad123
Gắn trị số kích thước vào chữQM, QMMField tự cập nhậtautocad123
Tính diện tích một miền kínGBhộp thoại báo một lầnxaydungso.vn
Cộng dồn diện tích nhiều hìnhS2Aghi chữ lên bản vẽxaydungso.vn
Cộng trừ nhân chia các chữ sốTINHghi đè lên một chữ có sẵnxaydungso.vn
Đếm và thống kê blockDBxuất tệp txthai mật khẩu, xem bên dưới
Chia đôi màn hình để đối chiếuVVđổi bố cục khung nhìnautocad123

Tên lệnh trong bảng trên là kết quả đọc thẳng mã nguồn của từng gói, và mật khẩu cũng lấy từ chính gói đó.

Đo một lần hay gắn số tự cập nhật

Đây là khác biệt quan trọng nhất giữa hai nhóm. Chọn sai nhóm thì mỗi lần sửa bản vẽ bạn phải đo lại từ đầu.

Hai cách lấy số từ bản vẽ Nhóm báo một lần TL, GB, S2A chọn hình, đọc số chép sang bảng tính sửa hình phải đo lại Nhóm gắn Field QL, QA, QM số bám vào đối tượng nằm ngay trên bản vẽ gõ RE là số đổi theo Hợp khi bóc một lượt bản vẽ đã chốt Hợp khi còn sửa nhiều bản vẽ đang chạy Field cập nhật theo biến FIELDEVAL, mặc định là 31. Giá trị đó gồm cả mở tệp, lưu, in và vẽ lại màn hình.

Nhóm báo một lần

TL, GB và S2A đo xong thì trả một con số. Bạn chép con số đó sang bảng dự toán. Bản vẽ sửa thì con số cũ vô nghĩa, phải chạy lại lệnh. Nhóm này hợp khi hồ sơ đã chốt và bạn bóc một lượt cho xong.

Nhóm gắn Field

QL, QA và QM không đo. Chúng chèn một Field trỏ vào thuộc tính của đối tượng bạn chọn. Chữ hiện trên bản vẽ là kết quả của Field đó. Kéo dài đường thẳng rồi gõ RE, con số tự đổi theo.

Cơ chế nằm ở biến FIELDEVAL. Tài liệu AutoCAD 2026 ghi giá trị mặc định là 31. Đó là tổng của năm mức: 1 cập nhật khi mở tệp, 2 khi lưu, 4 khi in, 8 khi dùng ETRANSMIT, 16 khi vẽ lại màn hình. Vì có mức 16 nên lệnh REGEN, viết tắt là RE, đủ để làm mới toàn bộ Field.

Từng bộ lisp làm gì và vướng ở đâu

TL, cộng tổng chiều dài nhiều đoạn

Đây là bộ được hỏi nhiều nhất khi bóc chiều dài tường, đường ống, dây điện. Gõ TL, quét chọn, nhấn phím cách. Một hộp thoại hiện ra với dòng Total length.

Mã nguồn chỉ nhận bảy kiểu đối tượng: LINE, ARC, CIRCLE, POLYLINE, LWPOLYLINE, ELLIPSE và SPLINE. Đường dựng XLINE, RAY và MLINE nằm ngoài danh sách nên không được cộng. Cần biết thêm một điều: với CIRCLE và ELLIPSE thì lisp cộng chu vi của hình. Quét trúng một vòng tròn lạc là tổng vọt lên.

Bẫy thứ hai là chọn hụt. Nếu bạn quét mà không trúng đối tượng nào rồi nhấn phím cách, lisp báo lỗi đỏ trên dòng lệnh thay vì báo bằng chữ dễ hiểu. Đó là lỗi của mã, không phải máy bạn hỏng.

Tải về

Lisp đo tổng chiều dài, lệnh TL

Quét chọn một loạt đường rồi đọc tổng chiều dài trong hộp thoại.

  • Tệp trong gói tl.lsp, 607 byte
  • Dung lượng tải 80.985 byte
Tải lisp lệnh TL

Mật khẩu giải nén: xaydungso.vn. Hướng dẫn dùng ở bài lisp đo tổng chiều dài các đoạn thẳng.

QA, QL, QM, gắn số vào chữ bằng Field

Một tệp duy nhất định nghĩa sáu lệnh. Ba lệnh viết một chữ cái cuối và ba lệnh viết hai chữ cái cuối. Cặp nào cũng lấy cùng một thuộc tính, chỉ khác chỗ đặt kết quả.

LệnhLấy thuộc tínhKết quả đi đâu
QLLength, chiều dàighi đè vào một chữ có sẵn
QLLLength, chiều dàitạo chữ mới tại điểm bạn chỉ
QAArea, diện tíchghi đè vào một chữ có sẵn
QAAArea, diện tíchtạo chữ mới tại điểm bạn chỉ
QMMeasurement, trị số kích thướcghi đè vào một chữ có sẵn
QMMMeasurement, trị số kích thướctạo chữ mới tại điểm bạn chỉ

Chi tiết đáng tiền nằm trong chuỗi định dạng của hai lệnh diện tích. Chúng kèm hệ số quy đổi 0,000001 và hậu tố m2. Nghĩa là gói này được đặt sẵn cho bản vẽ đơn vị milimét: kết quả ra thẳng mét vuông, lấy năm chữ số thập phân. Vẽ theo mét thì bạn phải sửa hệ số, nếu không số sẽ bé đi một triệu lần.

Hai lệnh chiều dài thì ngược lại, không có hệ số quy đổi và lấy tròn không chữ số thập phân. Chiều dài giữ nguyên đơn vị bản vẽ.

Tải về

Lisp gắn Field nhanh, sáu lệnh QA QAA QL QLL QM QMM

Chèn Field chiều dài, diện tích hoặc trị số kích thước vào chữ trên bản vẽ.

  • Tệp trong gói QA_QM_QL_link nhanh.lsp, 17.335 byte
  • Dung lượng tải 83.467 byte
Tải lisp Field nhanh

Mật khẩu giải nén: autocad123. Hướng dẫn dùng ở bài lisp đo chiều dài Line và Pline.

GB, tính diện tích một miền kín

Gõ GB rồi bấm một điểm vào giữa miền cần tính. Lisp mượn lệnh BOUNDARY để dò biên, cộng diện tích, rồi xoá đường biên tạm đi trước khi kết thúc.

Vì dựa vào BOUNDARY nên yêu cầu duy nhất là miền phải thật sự kín trong vùng nhìn thấy. Biên hở một khe nhỏ là lệnh không dò ra. Bẫy ít người biết: nếu bạn nhấn ESC giữa chừng, dòng lệnh xoá biên tạm ở cuối mã không kịp chạy. Các đường biên vừa sinh ra sẽ nằm lại trên bản vẽ. Gõ U vài lần để lùi cho sạch.

Tải về

Lisp tính diện tích hình kín, lệnh GB

Bấm một điểm vào giữa hình, lisp tự dò biên rồi báo diện tích.

  • Tệp trong gói gb.lsp, 875 byte
  • Dung lượng tải 78.555 byte
Tải lisp lệnh GB

Mật khẩu giải nén: xaydungso.vn. Hướng dẫn dùng ở bài lisp tính diện tích trong CAD.

S2A, cộng dồn diện tích nhiều hình

Bộ này khác sáu bộ còn lại ở một điểm: ruột gói không phải tệp lsp mà là tệp fas, tức mã đã biên dịch. Không đọc được, không sửa được. Tài liệu Autodesk nói rõ chuỗi và tên hàm bị mã hoá khi biên dịch, nên không có cách nào xem bên trong.

Đổi lại, tệp fas nạp bình thường trên AutoCAD 2026 và cả trên AutoCAD LT bản Windows từ 2024. Cái LT không làm được là tự biên dịch ra tệp fas mới.

Tải về

Lisp cộng dồn diện tích nhiều hình, lệnh S2A

Chọn một loạt hình kín, lisp cộng diện tích rồi ghi kết quả thành chữ.

  • Tệp trong gói Tong dien tich.fas, 21.032 byte
  • Dung lượng tải 89.996 byte
Tải lisp lệnh S2A

Mật khẩu giải nén: xaydungso.vn. Hướng dẫn dùng ở bài lisp tính tổng diện tích các hình trong CAD.

TINH, cộng trừ nhân chia các chữ số

Gõ TINH, chọn phép tính, chọn các chữ số cần tính, rồi chọn một chữ nữa để ghi kết quả vào đó. Phép cộng và phép nhân cho chọn nhiều đối tượng một lượt. Phép trừ và phép chia chỉ nhận đúng hai đối tượng, chọn lần lượt.

Hai hạn chế nằm trong mã. Thứ nhất, bộ lọc chọn chỉ nhận đối tượng kiểu TEXT. Chữ kiểu MTEXT và thuộc tính trong block đều bị bỏ qua. Thứ hai, hàm đổi chữ thành số của AutoLISP chỉ hiểu dấu chấm thập phân. Bản vẽ nào ghi số kiểu 12,5 theo lối Việt Nam thì lisp đọc thành 12 và âm thầm tính sai.

Tải về

Lisp cộng trừ nhân chia text, lệnh TINH

Tính trực tiếp trên các chữ số có sẵn rồi ghi kết quả đè lên một chữ.

  • Tệp trong gói TINH-cong tru nhan chia text.lsp, 1.617 byte
  • Dung lượng tải 74.327 byte
Tải lisp lệnh TINH

Mật khẩu giải nén: xaydungso.vn. Hướng dẫn dùng ở bài lisp cộng tổng text trong AutoCAD.

DB, đếm và thống kê block

Gõ DB, quét chọn vùng bản vẽ, chọn chỗ lưu tệp txt. Lisp gom tên từng block, đếm số lần xuất hiện rồi mở Notepad cho bạn xem kết quả.

Có một chỗ dễ hiểu nhầm. Mã đếm theo tên định nghĩa block. Block động sau khi bạn kéo thông số cho ra biến thể khác thì AutoCAD sinh một định nghĩa ẩn danh, tên bắt đầu bằng dấu sao. Bảng kết quả sẽ hiện những dòng tên lạ kiểu đó thay vì gộp chung về block gốc. Bấm Cancel ở hộp thoại chọn nơi lưu cũng làm lisp báo lỗi thay vì thoát êm.

Gói này hỏi mật khẩu hai lần, khác sáu gói còn lại. Lần thứ nhất gõ autocad123, lần thứ hai gõ xaydungso.vn. Không biết trước thì rất dễ tưởng tệp hỏng.

Tải về

Lisp đếm block, lệnh DB

Quét chọn một vùng, lisp xuất bảng thống kê số lượng từng loại block ra tệp txt.

  • Tệp trong gói db_dem block.lsp, 1.046 byte
  • Dung lượng tải 204.786 byte
Tải lisp lệnh DB

Mật khẩu giải nén: autocad123 ở lần hỏi thứ nhất, xaydungso.vn ở lần thứ hai. Hướng dẫn dùng ở bài lisp thống kê nhiều loại block.

VV, chia đôi màn hình để đối chiếu

Bộ này không đo gì cả nhưng rất hợp lúc bóc khối lượng. Gõ VV, bấm điểm chia, chọn phương Ngang hoặc Doc. Màn hình Model tách thành hai khung nhìn, mỗi khung phóng tới một chỗ khác nhau. Bạn vừa nhìn mặt bằng vừa nhìn chi tiết mà không phải kéo qua kéo lại. Gõ VV lần nữa là gộp về một khung.

Lưu ý là lisp thao tác trên khung nhìn kiểu tiled của Model, không phải viewport trong Layout. Nó tạo một cấu hình khung nhìn riêng và xoá đúng cấu hình đó khi bạn gộp lại.

Tải về

Lisp chia đôi màn hình, lệnh VV

Tách Model thành hai khung nhìn theo phương ngang hoặc dọc, gõ lại để gộp.

  • Tệp trong gói VV_tao viewport.lsp, 1.971 byte
  • Dung lượng tải 73.458 byte
Tải lisp lệnh VV

Mật khẩu giải nén: autocad123. Hướng dẫn dùng ở bài lisp chia đôi màn hình CAD.

Nạp xong mà gõ lệnh không thấy gì

Đây là câu hỏi phổ biến nhất khi dùng lisp bóc tách khối lượng trên bản mới. Nguyên nhân gần như luôn nằm ở bộ lọc bảo mật, không phải tệp hỏng.

Vì sao nạp lisp xong không thấy gì Nạp tệp lsp hoặc fas từ thư mục Downloads Thư mục có trong TRUSTEDPATHS không biến này mặc định rỗng, nên câu trả lời là không SECURELOAD = 1 hiện hộp thoại hỏi bấm Load Once là chạy SECURELOAD = 2 bỏ qua im lặng không báo một chữ nào Cách chữa: chép tệp vào một thư mục riêng rồi thêm thư mục đó vào TRUSTEDPATHS

Biến SECURELOAD và danh sách thư mục tin cậy

Trên AutoCAD 2026, biến SECURELOAD mặc định bằng 1 và biến TRUSTEDPATHS mặc định rỗng. Chỉ thư mục cài đặt trong Program Files được tin cậy ngầm. Tệp để ở Downloads luôn bị hỏi lại.

Hộp thoại Security - Unsigned Executable File khi nạp lisp bóc tách khối lượng trên AutoCAD 2026

Hộp thoại hiện lên khi SECURELOAD bằng 1. Ba nút là Always Load, Load Once và Do Not Load.

Ba mức của biến này ứng với ba lựa chọn Low, Medium, High trong hộp thoại SECURITYOPTIONS. Mức cao nhất là mức đáng sợ nhất khi chẩn đoán: phần mềm bỏ qua tệp mà không báo gì cả. Người dùng gõ lệnh, dòng lệnh trả về Unknown command, và ai cũng tưởng tải thiếu tệp.

Đuôi tệp nào bị kiểm

Danh sách của Autodesk gồm LSP, FAS, VLX, MNL, ARX, DBX, SCR, DVB và vài loại khác. Nghĩa là cả bảy gói trên trang này đều đi qua bộ lọc đó. Cách làm gọn nhất là gom hết tệp lisp vào một thư mục cố định rồi khai báo thư mục ấy một lần. Các bước bấm cụ thể nằm ở bài cách load lisp vào AutoCAD.

Hai giới hạn khác cần biết

Tệp fas và vlx chỉ nạp được trên Windows. AutoCAD LT có chạy AutoLISP từ bản 2024, nhưng LT không có Express Tools. Lisp nào gọi hàm nhóm acet thì LT vẫn chịu. Sáu tệp lsp trên trang này đều không gọi hàm nhóm đó, còn tệp fas thì không mở ra kiểm được.

Việc AutoCAD 2026 đã tự làm được

Bài gốc viết năm 2018. Từ đó tới nay phần mềm đã nuốt mất kha khá việc của lisp. Biết chỗ nào không cần tệp ngoài giúp bạn đỡ phải cài đặt lung tung.

Cộng diện tích không cần lisp

Lệnh AREA có sẵn tuỳ chọn Add area. Tài liệu 2026 mô tả tuỳ chọn này bật chế độ cộng và hiển thị tổng dồn của các vùng bạn chỉ tiếp theo. Còn có Subtract area để trừ phần khoét. Lệnh MEASUREGEOM cũng có đủ hai chế độ. Câu quen thuộc rằng AREA chỉ tính được từng hình một là sai.

Đếm block không cần lisp

AutoCAD nay có lệnh COUNT cùng bảng Count palette. Nó đếm block và cả đối tượng hình học như line, circle, arc, rồi tô sáng những cái vừa đếm. Trên bảng đó có nút Create Table để chèn thẳng bảng thống kê vào bản vẽ. Tài liệu cũng nói rõ một số kiểu đối tượng không được hỗ trợ nên bị loại khỏi kết quả.

Xuất bảng khối lượng không cần lisp

Lệnh DATAEXTRACTION mở trình rút dữ liệu từ đối tượng, block và thuộc tính, làm được trên nhiều bản vẽ một lượt. Bản dòng lệnh xuất ra csv, txt, xlsx hoặc mdb. So với tệp txt của lệnh DB thì kết quả gọn hơn hẳn cho hồ sơ dự toán.

Vậy còn cần lisp không

Vẫn cần, ở ba chỗ. Tổng chiều dài của một mớ đường rời rạc thì TL vẫn nhanh nhất. Gắn số bám theo hình thì QA và QL vẫn tiện hơn thao tác hộp thoại Field. Và tính nhẩm trên các chữ số đã có sẵn thì TINH không có đối thủ trong bộ lệnh gốc.

Video hướng dẫn bóc khối lượng bằng lisp đo chiều dài

Đoạn ghi hình dưới đây đi theo bài gốc và vẫn xem được. Nội dung là thao tác đo chiều dài rồi cộng thành khối lượng.

Trước khi tin con số. Bất kỳ lisp đo đạc nào cũng nên hiệu chuẩn một lần. Vẽ một hình chữ nhật kích thước bạn biết trước, chạy lệnh lên nó, xem kết quả có khớp không. Mất ba mươi giây và tránh được cả buổi bóc nhầm đơn vị.

Nếu bạn đang học nghề dự toán một cách bài bản, phần đo đạc chỉ là một mắt xích. Cách lập mã hiệu, tra định mức và ghép đơn giá mới là phần quyết định hồ sơ. Nội dung đó nằm trong khóa học lập dự toán công trình.