Nếu mỗi ngày bạn mất 1–2 giờ cho những thao tác lặp đi lặp lại trong ZWCAD — đổi layer hàng loạt, in từng bản vẽ một, đánh số khung tên bằng tay — thì tự động hóa ZWCAD là việc nên làm ngay. Đây là hướng dẫn tổng hợp dành cho kỹ sư thiết kế, trưởng nhóm CAD và quản trị hệ thống ở các công ty thiết kế Việt Nam, đúc kết từ các dự án tự động hóa mà chúng tôi đã triển khai cho khách hàng dùng ZWCAD trong ngành xây dựng, cơ khí và hạ tầng.

Nội dung chính:

Bốn tầng tự động hóa ZWCAD

ZWCAD kế thừa gần như nguyên vẹn hệ sinh thái lập trình của AutoCAD, vì vậy kiến thức và code sẵn có trên mạng phần lớn dùng lại được. Theo tài liệu dành cho lập trình viên của ZWSOFT, ZWCAD hỗ trợ các API sau:

1. Script (.scr) — tầng đơn giản nhất

File script là một file văn bản chứa chuỗi lệnh ZWCAD, mỗi dòng một lệnh, chạy bằng lệnh SCRIPT. Không cần biết lập trình: nếu bạn gõ được lệnh trên command line, bạn viết được script. Nhược điểm là script không có điều kiện rẽ nhánh, không có vòng lặp — nó chỉ “phát lại” thao tác.

2. LISP — con dao đa năng của dân CAD

ZWCAD tích hợp sẵn trình thông dịch LISP tương thích AutoLISP. Theo tài liệu LISP Migration FAQ chính thức của ZWSOFT, giao diện hàm LISP của ZWCAD được thiết kế nhất quán với AutoCAD, nên phần lớn chương trình AutoLISP có sẵn chạy được trên ZWCAD mà không cần sửa. ZWCAD 2025 trở lên còn nạp trực tiếp được file biên dịch .vlx/.fas. Bạn nạp file .lsp bằng lệnh APPLOAD, hoặc thêm vào Startup Suite để tự nạp mỗi khi mở ZWCAD.

3. VBA — khi cần giao diện hộp thoại

ZWCAD (bản Professional) tích hợp môi trường VBA với mô hình đối tượng ActiveX/COM quen thuộc. VBA phù hợp khi bạn cần form nhập liệu, kết nối Excel (đọc bảng thống kê thép, xuất bảng khối lượng) hoặc khi đội ngũ đã quen Excel VBA.

4. ZRX và .NET API — tầng chuyên nghiệp

Với ứng dụng lớn, hiệu năng cao, ZWSOFT cung cấp ZRXSDK (C++, tương đương ObjectARX) và .NET API (C#, VB.NET). Đây là lựa chọn của các đơn vị phát triển phần mềm chạy trên nền ZWCAD — ví dụ các app kết cấu, hạ tầng, M&E thương mại. SDK và tài liệu tải tại trang ZWCAD Developer Documentation của ZWSOFT.

Bảng so sánh: chọn công cụ nào?

Tiêu chíScript (.scr)LISPVBAZRX / .NET
Độ khó họcRất dễTrung bìnhTrung bìnhKhó
Cần cài thêmKhôngKhôngKhông (bản Pro)Visual Studio + SDK
Logic điều kiện, vòng lặpKhôngCóCóCó
Giao diện người dùngKhôngCơ bản (DCL)Form đầy đủWPF/WinForms
Hiệu năng xử lý lớn—KháKháRất cao
Phù hợp nhất vớiThao tác lặp cố định, chạy hàng loạt fileLệnh tùy biến hằng ngàyKết nối Excel, form nhập liệuSản phẩm thương mại, xử lý nặng

Kinh nghiệm triển khai của chúng tôi: phần lớn nhu cầu tự động hóa ở các văn phòng thiết kế giải quyết được bằng LISP + Script, không cần đụng tới .NET.

Ví dụ 1: LISP chuẩn hóa layer (chạy được ngay)

Bài toán kinh điển: bản vẽ nhận từ thầu phụ có text nằm rải rác trên hàng chục layer khác nhau, cần gom toàn bộ TEXT/MTEXT về layer chuẩn KT-TEXT màu xanh lá. Lưu đoạn sau thành file chuanlayer.lsp:

;; CHUANLAYER.lsp - Gom toan bo TEXT/MTEXT ve layer KT-TEXT
(defun c:CHUANLAYER (/ ss i ent)
  ;; Tao layer KT-TEXT (mau 3 - xanh la) neu chua co
  (if (null (tblsearch "LAYER" "KT-TEXT"))
    (command "_.-LAYER" "_New" "KT-TEXT" "_Color" "3" "KT-TEXT" "")
  )
  ;; Chon toan bo TEXT va MTEXT trong ban ve
  (setq ss (ssget "_X" '((0 . "TEXT,MTEXT"))))
  (if ss
    (progn
      (setq i 0)
      (repeat (sslength ss)
        (setq ent (entget (ssname ss i)))
        (entmod (subst (cons 8 "KT-TEXT") (assoc 8 ent) ent))
        (setq i (1+ i))
      )
      (princ (strcat "\nDa chuyen " (itoa (sslength ss))
                     " doi tuong ve layer KT-TEXT."))
    )
    (princ "\nKhong tim thay TEXT/MTEXT nao.")
  )
  (princ)
)

Cách dùng: gõ APPLOAD, chọn file, bấm Load, rồi gõ lệnh CHUANLAYER. Chương trình dùng ssget "_X" để quét toàn bộ bản vẽ, entmod để sửa mã DXF 8 (layer) của từng đối tượng — kỹ thuật nền tảng mà bạn có thể biến tấu cho mọi bài toán chuẩn hóa khác (đổi màu, đổi linetype, đổi text style).

Ví dụ 2: Script dọn dẹp và lưu bản vẽ hàng loạt

Tạo file don-dep.scr với nội dung:

_.-PURGE _All * _No
_.AUDIT _Yes
_.ZOOM _Extents
_.QSAVE

Script này purge toàn bộ đối tượng thừa, kiểm tra lỗi database, zoom về toàn cảnh rồi lưu. Để chạy cho hàng trăm file DWG cùng lúc, kết hợp với file batch của Windows (sửa lại đường dẫn cài đặt theo máy bạn):

for %%f in ("D:\DuAn\*.dwg") do start /wait "" ^
  "C:\Program Files\ZWSOFT\ZWCAD 2026\ZWCAD.exe" "%%f" /b "D:\Scripts\don-dep.scr"

Tham số /b yêu cầu ZWCAD mở từng bản vẽ và chạy script ngay khi khởi động. Với bộ hồ sơ hàng trăm file DWG cần làm sạch trước khi bàn giao, quy trình này biến việc mở từng file bằng tay thành một lượt máy chạy không cần người ngồi canh. Lưu ý: luôn chạy thử trên bản sao thư mục trước.

Ba bài toán thực tế hay gặp nhất

Batch plot — in hàng loạt

Trước khi viết code, hãy thử công cụ có sẵn: lệnh SMARTPLOT (Smart Batch Plot) của ZWCAD tự nhận diện khung tên theo layer hoặc block và in hàng loạt bản vẽ trong một lần chạy — ZWCAD 2026 còn tự động khớp khổ giấy. Chỉ khi cần logic đặc thù (đặt tên file PDF theo thuộc tính block khung tên chẳng hạn) mới cần đến LISP/.NET.

Chuẩn hóa layer theo tiêu chuẩn công ty

Mở rộng ví dụ CHUANLAYER ở trên thành bảng ánh xạ “layer cũ → layer chuẩn” đọc từ file CSV. Với các doanh nghiệp áp dụng TCVN hoặc chuẩn layer nội bộ, một lệnh LISP chạy 5 giây thay cho 30 phút rà soát tay là khoản đầu tư hời nhất.

Đánh số bản vẽ, khung tên tự động

Dùng LISP đọc/ghi thuộc tính (attribute) của block khung tên: tự điền số hiệu bản vẽ tăng dần, ngày phát hành, tên người vẽ cho cả bộ hồ sơ. Nếu muốn để AI viết giúp đoạn LISP này, xem bài AI viết LISP cho ZWCAD — chúng tôi trình bày quy trình prompt → code → kiểm thử đầy đủ.

Lộ trình học cho người mới

  1. Tuần 1: Thành thạo script .scr + batch file — tự động hóa được ngay việc purge, in, xuất bản.
  2. Tuần 2–4: Học AutoLISP cơ bản (defun, ssget, entget/entmod, command). Tài liệu AutoLISP nào cũng áp dụng được cho ZWCAD.
  3. Khi có nhu cầu: VBA cho form + Excel; .NET khi xây công cụ dùng chung toàn công ty.

Và đừng quên các tính năng tự động hóa không cần code đã có sẵn trong ZWCAD 2026 như Smart Match, Smart Select hay Smart Dimension — xem chi tiết tại bài tính năng AI ZWCAD 2026. Nếu bạn đang chuyển tool từ AutoCAD sang, đọc thêm hướng dẫn chuyển từ AutoCAD sang ZWCAD.

Câu hỏi thường gặp về tự động hóa ZWCAD (FAQ)

LISP viết cho AutoCAD có chạy được trên ZWCAD không? Phần lớn là có. ZWSOFT thiết kế giao diện LISP nhất quán với AutoCAD; các trường hợp lỗi thường do hàm ít dùng chưa được hỗ trợ hoặc biến hệ thống không tồn tại — khi đó chỉ cần sửa nhỏ. ZWCAD 2025+ nạp được cả file .vlx/.fas đã biên dịch.

Bản ZWCAD nào hỗ trợ lập trình? Có tốn thêm phí không? LISP và Script có trong mọi bản ZWCAD Full. VBA, ZRX và .NET API có trong bản Professional và MFG (xem so sánh phiên bản). SDK và tài liệu tải từ trang developer của ZWSOFT.

Làm sao để LISP tự nạp mỗi khi mở ZWCAD? Gõ APPLOAD, mở mục Startup Suite, thêm file .lsp vào danh sách. ZWCAD hỗ trợ tự nạp các định dạng lsp/zel/dll/zvb/mnl/drx.

Công ty tôi không có ai biết lập trình thì sao? Bắt đầu với script .scr (chỉ là chuỗi lệnh gõ phím) và các công cụ Smart có sẵn. Với nhu cầu phức tạp hơn, đội kỹ thuật ZWCAD Vietnam hỗ trợ khách hàng bản quyền viết các tiện ích LISP cơ bản trong quá trình triển khai.

Bạn muốn triển khai cho doanh nghiệp?

Chúng tôi tư vấn miễn phí kịch bản tự động hóa phù hợp với quy trình của bạn khi mua bản quyền ZWCAD. Xem bảng giá ZWCAD mới nhất, tải ZWCAD 2026 dùng thử 30 ngày hoặc liên hệ đội kỹ thuật — hotline 0977 893 681 (Zalo) để được demo trực tiếp.


Biên soạn từ tài liệu ZWSOFT được dẫn bên dưới. Mã minh họa cần được kiểm thử trên bản sao bản vẽ trước khi áp dụng.

Nguồn tham khảo:

← Tất cả tin tức