Nhiều kỹ sư thiết kế dành hàng giờ mỗi tuần để lặp lại cùng một chuỗi thao tác: đổi layer hàng loạt, đặt tên block, xuất danh sách chi tiết hay chỉnh kích thước theo một quy chuẩn cố định. Với những việc lặp đi lặp lại như vậy, AutoLISP thường là công cụ giúp tự động hóa nhanh nhất ngay bên trong AutoCAD, mà không cần học một ngôn ngữ lập trình lớn.
Bài viết này giải thích AutoLISP là gì, dùng để làm gì, cú pháp cơ bản kèm ví dụ, cách nạp và chạy chương trình, giới hạn trên từng phiên bản AutoCAD, vấn đề bảo mật và khả năng tái sử dụng chương trình LISP khi doanh nghiệp chuyển sang phần mềm CAD khác.

1. AutoLISP là gì?
AutoLISP là ngôn ngữ lập trình dùng để tùy biến và tự động hóa AutoCAD, được xây dựng dựa trên ngôn ngữ LISP. Chương trình AutoLISP thường được lưu trong tệp văn bản có đuôi .lsp, cho phép người dùng tạo lệnh mới, xử lý dữ liệu bản vẽ và thực hiện hàng loạt thao tác bằng mã thay vì thao tác tay.
AutoLISP đã xuất hiện trong AutoCAD từ giữa thập niên 1980 và vẫn được duy trì đến nay, vì vậy trong nhiều doanh nghiệp thiết kế đã có sẵn thư viện chương trình LISP được xây dựng qua nhiều năm. Đây cũng là lý do câu hỏi về khả năng chạy lại chương trình LISP luôn xuất hiện khi doanh nghiệp cân nhắc đổi phần mềm CAD.
2. AutoLISP dùng để làm gì?
Giá trị lớn nhất của AutoLISP nằm ở việc biến chuỗi thao tác lặp lại thành một lệnh duy nhất. Những ứng dụng phổ biến gồm:
- Tạo lệnh tùy chỉnh để rút gọn chuỗi thao tác thường dùng, ví dụ vẽ nhanh một chi tiết theo thông số nhập vào
- Chuẩn hóa bản vẽ như tạo layer, kiểu nét, kiểu kích thước theo quy chuẩn của doanh nghiệp
- Xử lý hàng loạt đối tượng, như đổi layer, đổi màu hoặc căn chỉnh theo điều kiện
- Trích xuất dữ liệu từ bản vẽ, ví dụ thuộc tính block hoặc chiều dài đối tượng, để lập bảng thống kê
- Hỗ trợ kiểm tra bản vẽ trước khi phát hành, như tìm đối tượng sai layer hoặc trùng lặp

3. Cú pháp AutoLISP cơ bản
AutoLISP dùng cú pháp tiền tố: mọi lệnh và biểu thức đều nằm trong cặp dấu ngoặc, tên hàm đứng trước và các đối số đứng sau. Việc nắm vài khái niệm nền tảng là đủ để đọc hiểu và chỉnh sửa phần lớn chương trình đơn giản.
| Thành phần | Công dụng | Ví dụ ý nghĩa |
| defun | Định nghĩa một hàm | Tạo hàm hoặc lệnh mới |
| Tiền tố c: trước tên hàm | Biến hàm thành lệnh gõ được trong AutoCAD | c:HELLO tạo lệnh HELLO |
| setq | Gán giá trị cho biến | Lưu điểm hoặc số người dùng nhập |
| getpoint, getreal, getstring | Nhận dữ liệu từ người dùng | Yêu cầu chọn điểm, nhập bán kính, nhập chuỗi |
| command | Gọi một lệnh AutoCAD | Vẽ đường tròn, đổi layer |
| if, cond, while, repeat, foreach | Điều kiện và vòng lặp | Chạy theo điều kiện hoặc lặp qua danh sách |
| ssget, entget, entmod | Chọn và đọc, sửa dữ liệu đối tượng | Xử lý hàng loạt đối tượng |
| princ | In thông báo hoặc kết thúc êm | Tránh in giá trị thừa ra dòng lệnh |
3.1. Ví dụ đầu tiên: tạo lệnh đơn giản
Ví dụ sau định nghĩa lệnh HELLO, khi gõ trong AutoCAD sẽ in một dòng thông báo. Chuỗi hiển thị được viết không dấu để tránh vấn đề mã hóa ký tự khi nạp tệp.
(defun c:HELLO ()
(princ “\nXin chao tu AutoLISP”)
(princ)
)
3.2. Ví dụ thứ hai: vẽ đường tròn theo dữ liệu nhập
Ví dụ này yêu cầu người dùng chọn tâm và nhập bán kính, sau đó gọi lệnh CIRCLE. Biến cục bộ được khai báo sau dấu gạch chéo để không ảnh hưởng đến các chương trình khác.
(defun c:VONGTRON ( / pt r)
(setq pt (getpoint “\nChon tam: “))
(setq r (getreal “\nNhap ban kinh: “))
(if (and pt r)
(command “_.CIRCLE” pt r)
)
(princ)
)
Từ hai ví dụ nhỏ này có thể mở rộng thành những công cụ phức tạp hơn, bằng cách thêm kiểm tra dữ liệu nhập, vòng lặp và xử lý lỗi.
4. Cách nạp và chạy chương trình AutoLISP
Một tệp .lsp chỉ có tác dụng sau khi được nạp vào phiên làm việc. Có một số cách phổ biến:
- Dùng lệnh APPLOAD để chọn và nạp tệp .lsp thủ công cho phiên làm việc hiện tại
- Dùng hàm load trong dòng lệnh hoặc trong một tệp LISP khác để nạp tệp theo đường dẫn
- Thêm tệp vào danh sách khởi động (Startup Suite) trong APPLOAD để tự nạp mỗi khi mở AutoCAD
- Dùng tệp tự nạp theo từng bản vẽ như acaddoc.lsp để chuẩn bị môi trường mỗi lần mở bản vẽ
Sau khi nạp, gõ tên lệnh đã định nghĩa, ví dụ HELLO hoặc VONGTRON, để chạy chương trình. Doanh nghiệp nên đặt các tệp LISP dùng chung ở một thư mục tập trung, quản lý phiên bản và giới hạn quyền ghi, để mọi người dùng cùng một bản chương trình.
5. Công cụ soạn thảo và gỡ lỗi AutoLISP
Về nguyên tắc, tệp .lsp là văn bản thuần nên có thể soạn bằng bất kỳ trình soạn thảo nào. Tuy nhiên, môi trường soạn thảo chuyên dụng giúp tô màu cú pháp, kiểm tra ngoặc và gỡ lỗi dễ hơn nhiều.
Theo tài liệu của Autodesk, Visual LISP IDE trên AutoCAD for Windows đã được thông báo ngừng sử dụng và sẽ bị loại bỏ trong một bản phát hành tương lai. Autodesk khuyến nghị dùng tiện ích AutoLISP cho Visual Studio Code để soạn thảo và gỡ lỗi chương trình, hoạt động trên Windows và macOS. Khi gỡ lỗi bằng tiện ích này, biến hệ thống LISPSYS cần đặt ở giá trị 1 hoặc 2, còn giá trị 0 dùng cho động cơ AutoLISP cũ và Visual LISP IDE.

6. Khả năng chạy chương trình LISP trên phần mềm CAD khác
Khi cân nhắc chuyển sang một phần mềm CAD thay thế AutoCAD khác, thư viện LISP đã tích lũy thường là mối quan tâm hàng đầu. Một số phần mềm CAD tương thích AutoCAD hỗ trợ LISP ở các mức độ khác nhau
Mức độ tương thích không phải là có hoặc không, mà phụ thuộc vào từng nhóm hàm. Thông thường, các hàm AutoLISP cơ bản như xử lý danh sách, nhập dữ liệu và gọi lệnh dễ chạy lại hơn. Các phần dễ gặp vấn đề hơn gồm hàm Visual LISP và ActiveX, hộp thoại DCL, hàm do ObjectARX hoặc .NET cung cấp và các tệp đã biên dịch.
Quy trình kiểm tra nên thực hiện trước khi chuyển đổi:
- Thống kê toàn bộ tệp .lsp, .fas, .vlx và DCL doanh nghiệp đang dùng, phân loại theo mức độ sử dụng
- Ưu tiên kiểm tra các chương trình quan trọng nhất, ví dụ công cụ chuẩn hóa bản vẽ hoặc xuất dữ liệu
- Nạp từng chương trình vào bản dùng thử của phần mềm mới và chạy trên bản vẽ thật
- Ghi lại chương trình nào chạy đúng, chạy lỗi một phần hoặc không chạy được
- Lập kế hoạch viết lại hoặc thay thế các chương trình không tương thích trước khi triển khai đại trà
Với GreenCAD, người dùng có thể sử dụng AutoLISP nhờ khả năng tích hợp hỗ trợ AutoLISP, giúp chạy các chương trình và công cụ được viết bằng ngôn ngữ này để hỗ trợ tự động hóa công việc thiết kế.

7. Bảo mật khi dùng AutoLISP
Vì AutoLISP có thể đọc, ghi tệp và gọi lệnh hệ thống, một tệp .lsp không rõ nguồn gốc có thể gây hại. Trường hợp điển hình là ACAD/Medre.A, sâu được viết bằng AutoLISP, được hãng bảo mật ESET công bố năm 2012. Sâu này lây qua các tệp bản vẽ và tệp LISP bị nhiễm và gửi hàng chục nghìn bản vẽ ra ngoài.
Để giảm rủi ro, doanh nghiệp nên áp dụng các nguyên tắc sau:
- Chỉ nạp tệp .lsp từ nguồn tin cậy, kiểm tra mã trước khi chạy khi nhận từ bên ngoài
- Đặt thư mục chứa mã vào các đường dẫn tin cậy của AutoCAD và giới hạn quyền ghi vào thư mục này
- Cân nhắc dùng các biến hệ thống kiểm soát nạp mã như TRUSTEDPATHS và SECURELOAD
- Không dùng các bộ LISP, plugin hoặc công cụ kích hoạt tải từ nguồn không rõ nguồn gốc
- Giữ phần mềm diệt virus hoạt động và sao lưu bản vẽ định kỳ
8. Câu hỏi thường gặp về AutoLISP
Học AutoLISP có khó không?
Cú pháp tiền tố với nhiều dấu ngoặc có thể lạ lúc đầu, nhưng số khái niệm cốt lõi không nhiều. Người đã quen dùng AutoCAD thường bắt đầu từ việc đọc và chỉnh sửa các chương trình có sẵn, rồi dần tự viết các lệnh nhỏ cho công việc của mình.
Phần mềm CAD khác có chạy được file .lsp của AutoCAD không?
Tùy phần mềm và tùy chương trình. Một số phần mềm CAD tương thích AutoCAD hỗ trợ LISP, nhưng mức độ tương thích khác nhau theo từng nhóm hàm. Cách chắc chắn nhất là chạy thử từng chương trình quan trọng trên bản dùng thử.
Visual LISP IDE còn dùng được không?
Autodesk đã thông báo Visual LISP IDE sẽ bị loại bỏ trong một bản phát hành tương lai và khuyến nghị dùng tiện ích AutoLISP cho Visual Studio Code. Doanh nghiệp nên chuyển dần thói quen soạn thảo và gỡ lỗi sang môi trường này.
Tệp .lsp tải từ internet có an toàn không?
Không thể mặc định là an toàn. Tệp LISP có thể chứa mã gây hại, vì vậy chỉ nên nạp tệp từ nguồn tin cậy, kiểm tra nội dung trước và dùng cơ chế đường dẫn tin cậy của AutoCAD.
AutoLISP là công cụ tự động hóa giúp kỹ sư tiết kiệm đáng kể thời gian cho các thao tác lặp lại trong AutoCAD, đồng thời tạo ra thư viện chương trình có giá trị lâu dài cho doanh nghiệp. Hiểu rõ cú pháp cơ bản, cách nạp, giới hạn theo từng phiên bản và nguyên tắc bảo mật giúp doanh nghiệp khai thác hiệu quả mà không gặp rủi ro không đáng có.
Với doanh nghiệp đang cân nhắc chuyển từ AutoCAD sang phần mềm bản quyền vĩnh viễn như GreenCAD, bước kiểm kê và chạy thử thư viện LISP hiện có trên bản dùng thử là việc nên làm sớm. SDE TECH sẵn sàng trao đổi và cung cấp bản dùng thử để doanh nghiệp tự đánh giá. Liên hệ:
- Website: sde.vn
- Email: sales@sde.vn
- Hotline/Zalo: 085 256 2615 – 0909 107 719
English
日本語
한국어