Trước đây, muốn có một lệnh LISP tùy biến, bạn phải tự học lập trình hoặc thuê người viết. Từ khi các AI assistant như ChatGPT, Claude hay GitHub Copilot trở nên phổ biến, dùng AI viết LISP đã xóa gần hết rào cản đó: kỹ sư mô tả bài toán bằng tiếng Việt, AI trả về code LISP, và vì ZWCAD tương thích AutoLISP nên code đó chạy được ngay trên ZWCAD. Bài viết dành cho kỹ sư đang dùng ZWCAD muốn tự tạo lệnh riêng mà không cần biết lập trình, dựa trên quy trình chúng tôi áp dụng khi hỗ trợ khách hàng doanh nghiệp.
Bạn sẽ nắm được:
- Vì sao LISP + AI là cặp đôi hiệu quả nhất với ZWCAD
- Công thức prompt 5 thành phần cho kết quả tốt
- Ví dụ trọn vẹn: prompt → code AI sinh ra → kết quả trên ZWCAD
- Giới hạn của AI và checklist kiểm thử bắt buộc
- Nguyên tắc an toàn: luôn thử trên bản sao
Vì sao AI viết LISP cho ZWCAD hiệu quả nhất?
Ba lý do khiến chúng tôi khuyên khách hàng bắt đầu với LISP thay vì VBA hay .NET khi làm việc cùng AI:
- Kho dữ liệu huấn luyện khổng lồ: AutoLISP tồn tại từ thập niên 1980, hàng triệu dòng code mẫu công khai trên các diễn đàn CAD. Các mô hình AI viết AutoLISP rất “trúng”. Vì ZWCAD thiết kế giao diện LISP nhất quán với AutoCAD (theo LISP FAQ chính thức của ZWSOFT), code AutoLISP do AI sinh ra hầu hết chạy thẳng trên ZWCAD.
- Không cần môi trường phát triển: chỉ cần Notepad và lệnh
APPLOAD. Sửa code, nạp lại, thử ngay — vòng lặp chỉnh sửa với AI rất nhanh. - Phạm vi phá hoại hẹp: LISP chạy trong phiên bản vẽ, không đụng hệ điều hành, dễ kiểm soát hơn macro hệ thống.
Hướng tiếp cận này không mới trên thế giới — các hãng đào tạo CAD như IMAGINiT đã có loạt bài hướng dẫn dùng ChatGPT viết AutoLISP từ 2023 — nhưng với ZWCAD, lợi thế chi phí bản quyền cộng với AI miễn phí tạo ra mức đầu tư gần như bằng 0.
Công thức prompt 5 thành phần
Chất lượng code AI phụ thuộc gần như hoàn toàn vào prompt. Qua nhiều lần thử nghiệm, chúng tôi chốt công thức 5 thành phần:
| Thành phần | Nội dung cần nêu | Ví dụ |
|---|---|---|
| 1. Bối cảnh | Phần mềm + chuẩn tương thích | “Viết AutoLISP chạy trên ZWCAD (tương thích AutoCAD)” |
| 2. Tên lệnh | Tên command muốn tạo | “Tên lệnh: DANHSO” |
| 3. Hành vi | Mô tả từng bước thao tác | “Hỏi tiền tố, hỏi số bắt đầu, click điểm nào chèn text số thứ tự tăng dần tại đó” |
| 4. Ràng buộc | Layer, chiều cao chữ, đơn vị, xử lý lỗi | “Text cao 2.5, đặt trên layer hiện hành, Enter để kết thúc” |
| 5. Yêu cầu chất lượng | Comment, thông báo, không treo lệnh | “Thêm comment tiếng Việt không dấu, kết thúc bằng (princ)” |
Prompt mơ hồ kiểu “viết lisp đánh số bản vẽ” sẽ cho code mỗi lần một kiểu và thường thiếu xử lý lỗi. Theo kinh nghiệm của chúng tôi, prompt đủ 5 thành phần thường cho code dùng được ngay hoặc chỉ cần sửa nhỏ.
Ví dụ trọn vẹn: lệnh đánh số thứ tự DANHSO
Bước 1 — Prompt gửi cho AI (ChatGPT hoặc Claude)
Viết một chương trình AutoLISP chạy trên ZWCAD (tương thích AutoCAD), tạo lệnh tên DANHSO. Hành vi: hỏi người dùng tiền tố (ví dụ “BV-”), hỏi số bắt đầu (mặc định 1). Sau đó mỗi lần người dùng click một điểm trên bản vẽ, chèn một TEXT cao 2.5 tại điểm đó với nội dung tiền tố + số thứ tự, số tự tăng dần sau mỗi lần click. Nhấn Enter để kết thúc lệnh. Dùng entmake thay vì command để chèn text. Thêm comment tiếng Việt không dấu, kết thúc sạch bằng (princ).
Bước 2 — Code AI sinh ra
;; DANHSO.lsp - Chen so thu tu tang dan tai cac diem click
(defun c:DANHSO (/ prefix start num pt)
;; Hoi tien to va so bat dau
(setq prefix (getstring T "\nNhap tien to (vi du BV-): "))
(setq start (getint "\nSo bat dau <1>: "))
(if (null start) (setq start 1))
(setq num start)
;; Lap: moi lan click mot diem thi chen text, Enter de thoat
(while (setq pt (getpoint
(strcat "\nDiem dat \"" prefix (itoa num)
"\" (Enter de ket thuc): ")))
(entmake (list '(0 . "TEXT")
(cons 10 pt) ; diem chen
(cons 40 2.5) ; chieu cao chu
(cons 1 (strcat prefix (itoa num))) ; noi dung
))
(setq num (1+ num))
)
(princ (strcat "\nDa chen " (itoa (- num start)) " nhan so."))
(princ)
)
Bước 3 — Nạp và chạy trên ZWCAD
Lưu thành danhso.lsp, gõ APPLOAD → Load, rồi gõ DANHSO. Nhập tiền tố BV-, số bắt đầu 1, click lần lượt vào các khung tên: ZWCAD chèn BV-1, BV-2, BV-3… Việc đánh số 40 bản vẽ từ 10 phút thủ công còn dưới 1 phút. Toàn bộ chu trình prompt → code → chạy thử mất chưa đến 5 phút — đó là ý nghĩa thật của “tăng tốc gấp 10”.
Muốn nâng cấp? Gửi tiếp cho AI: “Sửa để text luôn nằm trên layer KT-SOHIEU màu đỏ, tạo layer nếu chưa có” — AI sẽ vá đúng chỗ. Cách làm việc lặp từng bước nhỏ này hiệu quả hơn nhiều so với yêu cầu một chương trình lớn ngay từ đầu.
Giới hạn của AI và checklist kiểm thử
AI không thay được hiểu biết CAD của bạn. Các lỗi chúng tôi gặp thường xuyên nhất khi duyệt code AI cho khách hàng:
| Lỗi AI hay mắc | Dấu hiệu | Cách xử lý |
|---|---|---|
Gọi hàm Visual LISP ít dùng (vlax-...) không có trong ZWCAD | Lỗi “no function definition” | Yêu cầu AI viết lại bằng hàm AutoLISP thuần (entget/entmod) |
| Dùng biến hệ thống không tồn tại trong ZWCAD | Lệnh dừng giữa chừng | Bỏ hoặc thay biến; tra LISP FAQ của ZWSOFT |
Quên khai báo biến cục bộ sau dấu / | Lệnh chạy sai từ lần thứ hai | Yêu cầu AI “khai bao toan bo bien cuc bo” |
command thiếu/thừa Enter | Command line trôi lệnh | Chạy từng bước bằng tay để đối chiếu số lần Enter |
Checklist bắt buộc trước khi dùng thật:
- Đọc lướt code — dù không biết lập trình, hãy nhìn xem có lệnh đáng ngờ (xóa, ghi file) ngoài mô tả không.
- Chạy trên bản vẽ trống trước, rồi mới đến bản sao của bản vẽ thật.
- Thử trường hợp biên: bản vẽ không có đối tượng nào khớp, người dùng nhấn Esc giữa chừng, nhập số âm.
- Kiểm tra bằng
UNDO— một lệnh LISP tốt phải undo được gọn trong một bước.
Nguyên tắc an toàn: luôn làm việc trên bản sao
Quy tắc chúng tôi khuyến nghị mỗi khi bàn giao tiện ích LISP:
- Không bao giờ chạy code AI lần đầu trên file sản xuất. Copy file (hoặc cả thư mục) sang khu vực thử nghiệm.
- Bật backup tự động của ZWCAD (biến
ISAVEBAK) và giữ file.bak. - Code AI tải từ chat không chứa bảo hành: với tiện ích ảnh hưởng hồ sơ pháp lý (khối lượng, dự toán), cần người có chuyên môn thẩm định — đội kỹ thuật của chúng tôi có dịch vụ review này cho khách hàng bản quyền.
- Khi chia sẻ bản vẽ cho AI để “debug”, xóa thông tin dự án nhạy cảm trước. Tốt nhất chỉ gửi mô tả lỗi và đoạn code, không gửi file DWG.
Bước tiếp theo
Nắm vững LISP do AI viết rồi, bạn có thể tiến xa hơn: script .scr chạy hàng loạt file, VBA kết nối Excel, hay .NET cho công cụ toàn công ty — xem bài Tự động hóa ZWCAD từ A–Z. Và đừng bỏ qua những tính năng thông minh ZWSOFT đã tích hợp sẵn trong ZWCAD 2026 — nhiều việc không cần viết code nữa. Đang có sẵn kho LISP từ AutoCAD? Xem hướng dẫn chuyển từ AutoCAD sang ZWCAD.
Câu hỏi thường gặp về AI viết LISP (FAQ)
Nên dùng ChatGPT hay Claude để viết LISP cho ZWCAD? Cả hai đều viết AutoLISP tốt; bản trả phí cho code dài và ổn định hơn. Quan trọng là prompt đủ 5 thành phần và luôn ghi rõ “chạy trên ZWCAD, tương thích AutoCAD” để AI tránh các hàm đặc thù.
Code LISP do AI viết có hợp pháp để dùng thương mại không? Theo điều khoản sử dụng hiện hành của các nhà cung cấp lớn như OpenAI và Anthropic, người dùng được quyền sử dụng nội dung đầu ra; hãy kiểm tra điều khoản của đúng gói dịch vụ bạn dùng. Lưu ý ngược lại: đừng dán code LISP có bản quyền của bên thứ ba vào AI để “chế lại”.
Tôi không biết tiếng Anh, prompt tiếng Việt được không? Được. Các mô hình hiện nay hiểu tiếng Việt tốt; chỉ nên giữ tên lệnh, tên layer bằng ký tự không dấu để tránh lỗi hiển thị trên command line.
AI có viết được chương trình lớn như quản lý cả bộ hồ sơ không? Được nhưng rủi ro cao nếu làm một lần. Hãy chia thành các lệnh nhỏ độc lập, kiểm thử từng phần rồi ghép lại — hoặc chuyển sang .NET với sự hỗ trợ của lập trình viên khi quy mô vượt vài trăm dòng code.
Dùng thử ZWCAD bản quyền kèm hỗ trợ kỹ thuật
Khách hàng mua ZWCAD tại ZWCAD Vietnam được hỗ trợ cài đặt, tư vấn tự động hóa và review tiện ích LISP miễn phí. Tham khảo bảng giá hoặc liên hệ hotline 0977 893 681, hoặc tải ZWCAD 2026 dùng thử miễn phí 30 ngày.
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:
- ZWSOFT — ZWCAD LISP Migration FAQ 2025 (PDF): dl.zwsoft.com/support/ZWCAD/2025/LISP/Migration_Manual/ZWCAD_Lisp_FAQ_enu_2025.pdf
- ZWSOFT — ZWCAD Developer Documentation: zwsoft.com/support/zwcad-devdoc
- IMAGINiT — Using ChatGPT to Write AutoLISP Routines for AutoCAD and Civil 3D: resources.imaginit.com/support-blog/using-chatgpt-to-write-autolisp-routines-for-autocad-and-civil-3d