1. Giới thiệu chung:
LISP là chữ viết tắt của cụm từ tiếng Anh: LISt Processor (Xử lý danh sách)
AutoLisp là một ứng dụng của ngôn ngữ Lisp được sử dụng trong môi trường AutoCad. LISP là ngôn ngữ lập trình thuộc nhóm trí tuệ nhân tạo do MacCarthy soạn thảo cuối những năm 50. Với AutoLisp người dùng có thể mở rộng và tuỳ biến các chức năng của AutoCad.
Hiện nay AutoLisp đã được hãng Autodesk phát triển theo các số hiệu phát hành của AutoCad. Về căn bản những phiên bản sau vẫn sử dụng được những chương trình lập bằng phiên bản trước, ngược lại thì không được do có một số biến hệ thống và lệnh của AutoCad giữa các phiên bản không giống nhau nên việc dùng chung có gặp một số trở ngại. Do vậy yêu cầu người lập trình AutoLisp phải nắm thật vững AutoCad để sử dụng AutoLisp một cách hiệu quả.
AutoLisp là một ngôn ngữ lập trình thông dịch, nghĩa là dịch đến dòng nào thực hiện dòng đó và cho kết quả, không có trình biên dịch riêng. Một tập hợp các câu lệnh của AutoLisp được gọi là hàm Lisp và tệp (file) chứa các hàm gọi là tệp (file) Lisp có phần mở rộng là *.Lsp.
Với AutoLisp, người dùng có thể dễ dàng truy cập đến dữ liệu của AutoCad, có thể thay đổi, tạo mới, xoá bỏ các đối tượng, thêm các thông tin vào bản vẽ thực hiện các công việc Tự động hoá trong thiết kế...
2. Các qui ước của AutoLisp:
a) Cách viết chương trình của AutoLisp
Có 2 cách viết chương trình AutoLisp:
- Viết trực tiếp:
Tại dòng nhắc Command: của AutoCad ta có thể gõ các câu lệnh theo cú pháp của AutoLisp. Lệnh này sẽ được thực thi ngay và cho kết quả trên màm hình tại vùng dòng lệnh, nhưng lệnh này không lưu trữ được.
- Viết thành chương trình:
Dùng chương trình soạn thảo (dạng mã ASCII) bất kỳ hoặc Visual LISP, viết thành chương trình như một tạp tin nguồn có phần mở rộng *.lsp
Tên tệp tuân thủ theo qui ước của hệ điều hành, thường không quá 8 ký tự, giữa các ký tự không có khoảng trống.
b) Tải và chạy chương trình ứng dụng AutoLisp
Từ VLISP: Tools\ Load Text in Editor
Từ AutoCad: Tool\ Load Application hoặc trên dòng lệnh Command: ap
Để AutoCad tự động tải ngay từ khi khởi động hoặc mở bản vẽ có 2 cách:
- Đặt tên tệp là ACAD.LSP và đặt trong thư mục Support của AutoCad
- Khi tải file lần đầu sử dụng Startup Suite\ Contents và chọn đường dẫn cho file
c) Các hàm trong AutoLisp
AutoCad nhận và xử lý các lệnh trong hàm của AutoLisp theo cú pháp sau:
- Tên hàm do người dùng định nghĩa gồm các chữ cái và con số trừ các ký tự đặc biệt: như: ? < > , . * & ^ % $ # @ ! ~ \ | { } [ ] ..., tên hàm không nên quá dài và phải dễ quản lý.
- Hàm và câu lệnh của AutoLisp phải được đặt trong cặp dấu ngoặc đơn, bắt đầu bằng “(“ và kết thúc bằng “)”
- Hàm được viết từ trái qua phải theo kiểu Ba-lan, nghĩa là phần tử đầu tiên sau dấu mở ngoặc phải là tên hàm (có sẵn hay do người lập trình tự định nghĩa) hay toán tử. Các phần tử đứng sau là các tham số cần thiết để thực hiện hàm hay toán tử đó.
- Phân cách giữa tên hàm (hay toán tử) với các tham số, giữa các tham số với nhau phải có ít nhất một dấu cách ( dấu Space).
- Một câu lệnh có thể viết trên nhiều dòng. Các dòng chữ có thể viết thụt vào tuỳ ý theo cấu trúc đoạn lệnh cho dễ hiểu.
- Không phân biệt chữ hoa và chữ thường, thường thì tên hàm nên viết bằng chữ thường, tên các lệnh và các biến hệ thống của AutoCad viết bằng chữ hoa cho dễ đọc và chương trình sáng sủa hơn.
- Bất kỳ một hàm nào cũng trả về một giá trị nào đó, nếu không có giá trị trả về trị số mặc định là nil.
- Lời chú thích ghi trong chương trình AutoLisp được ghi sau dấu “ ; ” và không được thực thi trong chương trình.
d) Các biến trong AutoLisp
- Các biến của chương trình AutoLisp hoạt động tương tự như các biến của chương trình khác.
- Tên biến gồm các chữ cái và các con số (trừ các ký tự đặc biệt: như: ? < > , . * & ^ % $ # @ ! ~ \ | { } [ ] ...), nếu chữ số đứng đầu thì tiếp sau phải là chữ cái để tránh nhầm với các hằng số. Tên biến không nên quá dài
- Tên biến không phân biệt chữ hoa và chữ thường.
- Có 2 loại biến:
+ Biến chung: là biến tồn tại trong suốt quá trình làm việc của AutoCad. Để kiểm tra giá trị cuả biến trong dòm Command của AutoCad gõ “!ten_biến”.
+ Biến riêng: Là biến chỉ tồn tại bên trong một hàm. Kết thúc hàm biến này nhận giá trị “Nil”
Chú ý: Các biến tham gia vào các biểu thức phải được gán giá trị hoặc định nghĩa nếu không ứng dụng sẽ bị lỗi.