Autolisp is a scripting language for AutoCAD that was developed from LISP. It allows users to automate tasks and customize AutoCAD functionality. Some key points about Autolisp include:
- It has both advantages like being easy to use and interact with CAD objects, as well as disadvantages like having an unfamiliar syntax and being an interpreted language.
- Learning Autolisp requires knowledge of programming, AutoCAD, and geometry. It is best learned by using it to solve real problems in a user's work.
- Programs are defined with functions using DEFUN. Important data types include strings, integers, reals, and lists for representing CAD objects.
- Objects in AutoCAD
08448380779 Call Girls In Friends Colony Women Seeking Men
Giới thiệu về ngôn ngữ lập trình AutoLisp trên AutoCAD
1. 1. Gi i thi u v Autolisp
1.1. Sơ lư c v LISP
LISP – List Processing là m t chu n ngôn ng l p trình ñư c John McCarthy phát tri n
vào năm 1956 trong d án nghiên c u AI (Artificial Intelligence). Phiên b n ñ u tiên LISP
1.5 ñư c gi i thi u vào ñ u th p niên 60 và phát tri n v i nhi u bi n th như: BBNLisp,
Interlisp, MacLisp, NIL (New Implementation of Lisp), Franz Lisp…Vào th p niên 70 và ñ u
nh ng năm 80 ñã có máy tính chuyên d ng như Lisp Machines ñư c thi t riêng ñ ch y
nh ng chương trình LISP. ð n năm 1981 ñ chu n hóa LISP các nhà l p trình ñã t p h p
và chu n hóa thành chu n Common LISP. Năm 1984 Golden Common LISP tr thành
chu n chính th c cho máy tính IBM và sau này phát tri n thành XLISP- ti n thân c a
Autolisp ngày nay.
1.2. L ch s phát tri n c a Autolisp
AutoLisp ñư c phát tri n t XLISP là ngôn ng l p trình trên môi trư ng AutoCAD và
ñư c công b phiên b n ñ u tiên 2.18 vào tháng 01 năm 1986. Cùng v i s phát tri n c a
AutoCAD các phiên b n c a Autolisp ngày càng ñư c hoàn thi n v i nhi u tính năng m i,
có th k ñ n m t vài phiên b n tiêu bi u như sau:
- Chính th c gi i thi u phiên b n 2.5 tích h p vào AutoCAD R7 v i m t s tính tăng cơ
b n v các tương tác v i ñ i tư ng trong b n v
- Phiên b n 2.6 tích h p vào AutoCAD R7 v i ch c năng 3D và m t s hàm m i getcorner,
getkword, và initget.
- Phiên b n tích h p vào AutoCAD R12 gi i thi u m t s hàm GUI (Graphic User Interface)
và ngôn ng ñi u khi n h p tho i DCL (Dialog Control Language).
- Phiên b n Visual LISP™ gi i thi u cùng v i AutoCAD R14 là m t môi trư ng phát tri n
Autolisp ñ c l p, tr c quan v i s h tr c a các công c g r i.
- Visual LISP™ ñư c chính th c tích h p vào AutoCAD 2000 và t ñó ñ n nay ñư c b
sung nhi u tích năng m i.
1.3. Ưu và như c ñi m c a Autolisp
1.3.1. Ưu ñi m
Làm vi c r t t t và d dàng v i ñi m và các y u t hình h c.
R t m m d o, không kh t khe.
Không c n trình d ch - l p trình và th c hi n l nh.
Ch y ñư c trên t t các các h ñi u hành v i cùng 1 file Lisp.
Qu n lý ñ i tư ng v i List - m t ki u d li u v i nhi u ưu ñi m vư t tr i trong qu n lý t a
ñ ñi m.
Mã ngu n m và c ng ñ ng phát tri n Autolisp r t r ng l n.
1.3.2 Như c ñi m
Hình th c bên ngoài không h p d n.
Cú pháp khó hi u.
H n ch , không có trình biên d ch.
Ngôn ng trung gian nên th c thi ch m.
H u như không th tương tác v i h th ng.
2. Nh ng khó khăn khi ti p c n v i Autolisp
Có th kh ng ñ nh ch c ch n m t ñi u là Autolisp là m t ngôn ng r t d ti p c n so v i
m t s ngôn ng l p trình khác vì nó là ngôn ng l p trình theo k ch b n (Script). Tuy
nhiên, ñ ti p c n ñư c v i Autolisp yêu c u ngư i h c ph i có ki n th c n n v l p trình
và n m v ng v AutoCAD, ñ ng th i ph i có ki n th c nh t ñ nh v hình h c. Chương
trình Autolisp là m t t h p nh ng k ch b n ñư c ñ nh trư c n m ñi u khi n AutoCAD
th c thi theo suy nghĩ c a ngư i thi t k .
ða s m i ngư i mu n h c Autolisp là ñ gi i quy t nh ng bài toán trong lĩnh v c chuyên
môn c a mình. ð ti p c n và ng d ng t t Autolisp trong công vi c yêu c u ngư i l p
trình ph i có s liên h v i nhu c u công vi c th c t , ñi u này ph thu c r t l n vào s
2. trư ng c a m i ngư i. B n ñang th c hi n m t vài thao tác ñ hoàn thi n b n v c a
mình và b n ch t nh n ra nó c l p l i liên t c. M t ý tư ng n y ra là b n c n th c hi n
m t ño n chương trình Autolisp ñ t ñ ng th c hi n các thao tác này và chương trình
Autolisp ñư c hoàn thành. ði u này có th gi i thích ñư c vì sao m t s ngư i l i c m
th y khó khăn khi ti p c n v i Autolisp m t dù kh năng tư duy v l p trình c a h khá t t.
3. M t s khái ni m và cú pháp l p trình
3.1. Gi i thi u
M t chương trình Autolisp luôn b t ñ u b ng d u “(“ và k t thúc b ng d u “)”. M t
chương trình Autolisp ñơn gi n như sau:
Code:
(defun myProg()
(princ quot;Tecco 533quot;)
(princ)
)
Autolisp là ngôn ng tr v giá tr sau khi th c thi l nh. B n có th ki m tra ñi u này b ng
cách m AutoCAD và g dòng l nh sau: (+ 1 2)
K t qu tr v là 3.
3.2. Bi n
ð gán giá tr trong Autolisp b n c n s d ng t khóa setq v i cú pháp: (setq a 1)
ð ki m tra giá tr c a bi n dùng t khóa ! v i cú pháp: !a
Gi ng m t s ngôn ng l p trình khác Autolisp cũng qui ñ nh cách ñ t tên bi n như sau:
- Không dùng các ký t ñ c bi t: *, &, ^, $...
- Không dùng các t khóa c a AutoCAD: LINE, PLINE, MIRROR…
- Tên bi n không phân bi t ch hoa và ch thư ng
3.3. Hàm
Autolisp qui ñ nh t khóa defun ñ ñ nh nghĩa hàm th c thi v i cú pháp:
Code:
(defun myProg()
(princ quot;Tecco 533quot;)
(princ)
)
Ngoài ra Autolisp còn s d ng t khóa C: s khai báo v i AutoCAD là chương trình s
th c thi b ng l nh t i d u nh c l nh Command v i cú pháp:
Code:
(defun C:myProg()
(princ quot;Tecco 533quot;)
(princ)
)
V i hàm ñ u tiên ñ th c thi b n ph i gõ Command: (myProg) t i dòng nh c l nh còn v i
hàm th hai b n ch c n g Command: myProg gi ng như m t l nh trong AutoCAD.
3.4. Ki u d li u
M t s ki u d li u thông d ng trong Autolisp như sau:
String: Chu i g m các ký t và s
Integers: S t nhiên
Real: S th c
List: Ki u d li u ñ c trưng và cũng là th m nh c a LISP so v i các ngôn ng l p trình
3. khác.
Associated List: ðây là ki u d li u ñ nh nghĩa các ñ i tư ng trong AutoCAD.
D a trên các ki u d li u trên Autolisp phân lo i các nhóm hàm d ng s n như sau:
- Hàm x lý chu i: substr, strlen, strcase, strcat
- Hàm x lý s : abs, atof, atoi, fix, float, itoa
- Hàm x lý List: car, cdr, cadr, caddr, caar, cddr, foreach, list, cons, nth
- Hàm chuy n ñ i: fix, float, itoa, atoi, atof, rtos, angtos
- Hàm toán h c: +, -, *, /, +1, -1, cos, atan, sin, sqrt, expt
Hàm l a ch n th c th : entsel, ssget
Hàm x lý t p ch n: ssadd, ssdel, sslength, ssname
Hàm x lý ñ i tư ng: entget, entlast, entnext, entdel, entmod, entupd
Hàm x lý file: pen, close, read-line, write-line
3.5. B ng mã DXF
AutoCAD ñ nh nghĩa m t ñ i tư ng trên b n v theo ki u d li u Associated List như sau:
((-1 . <Entity name: 30a0510>) (0 . quot;LINEquot;) (5 . quot;22quot;) (100 . quot;AcDbEntityquot;) (67 . 0) (8 . quot;0quot;) (62
. 4) (100 . quot;AcDbLinequot;) (10 3.39219 5.3243 0.0) (11 8.72878 3.10374 0.0) (210 0.0 0.0 1.0))
ðây là m t t p h p các c p ñôi (mã s . d li u) ñư c qui ñ nh trư c. Tùy theo ñ i tư ng
và thu c tính ñ i tư ng mà Associated List s có nh ng tham s khác nhau. Các mã s
này tuân theo m t qui ñ nh trong b ng ñ nh nghĩa cho trư c g i là b ng mã DXF. ð có
th ñ u khi n ñư c các ñ i tư ng trong b n v AutoCAD yêu c u ngư i l p trình ph i
hi u r t rõ v b ng mã DXF này.
3.6. D li u m r ng
AutoCAD dùng các mã s t 1000 ñ n 1042 ñ bi u di n các d li u m r ng. V i d li u
m r ng ngư i l p trình có th ñánh d u ñ i tư ng trên AutoCAD ñ th c hi n các thao
tác ti p theo. M t ng d ng ñi n hình trên AutoCAD s d ng d li u m r ng này là
chương trình Nova-TDN c a Công ty tin h c Hài Hòa. Thông qua d li u m r ng chương
trình có th phân bi t ñư c ñâu là tim tuy n, ñâu là tr c d c, c t ngang…Toàn b d li u
m r ng ñư c ñ nh nghĩa trong Associated List v i mã s -3.
Ví d :
Code:
((-3 (quot;TECCO533quot; (1000 . quot;Tim tuyenquot;))))
3.7. ði u ki n
Cũng gi ng v i m t s ngôn ng l p trình khác Autolisp h tr ngư i l p trình 02 cú pháp
ñi u ki n là ñi u ki n xác ñ nh If và ñi u ki n l a ch n Cond v i cú pháp như sau:
Code:
(if <ñi u ki n>
<th c thi khi ñi u ki n ñúng>
<th c thi khi ñi u ki n sau>
)
(cond
(<th1> <th c thi th1>)
(<th2> <th c thi th2>)
...
(<thN> <th c thi thN>)
)
3.8. Vòng l p
Autolisp không h tr vòng l p For mà ch h tr 02 vòng l p Repeat và While v i cú pháp
như sau:
4. Code:
(while < ñi u ki n >
<th c thi>
)
(repeat <s l n l p>
<th c thi>
)
3.9. Ngôn ng ñi u khi n h p tho i DCL
Autolisp cung c p cho ngư i l p trình m t ngôn ng ñi u khi n h p tho i DCL ñ gi i
quy t v giao di n tương tác v i ngư i s d ng. Thông qua ngôn ng DCL ngư i l p
trình có th thi t k các Form nh p li u tr c quan giúp cho chương trình tr nên thân
thi n hơn.
3.10. Hư ng ñ i tư ng
B n thân Autolisp không ph i là ngôn ng l p trình hư ng ñ i tư ng, nhưng cùng v i xu
hư ng phát tri n c a l p trình hư ng ñ i tư ng b t ñ u t Visual LISP™ cho AutoCAD
R14 hãng AutoDesk ñã tích h p vào AutoCAD công ngh ActiveX v i k thu t l p trình
hư ng ñ i tư ng VLA (Visual LISP ActiveX). Thông qua công ngh ActiveX ngư i l p
trình có th di u khi n t t các các ñ i tư ng trên b n v qua các thu c tính và phương
th c c a nó. ði u ñ c bi t là ngư i l p trình có th can thi p ñ n m t s ch c năng như
in n, ñ nh d ng h th ng AutoCAD mà trư c ñây Autolisp không can thi p ñư c. Các
chương trình s d ng công ngh ActiveX ph i ñư c d ch qua chu n ARX m i th c thi
ñư c trên AutoCAD.
4. K t lu n
Autolisp là m t ngôn ng l p trình ñơn gi n, d ti p c n và hi u qu công vi c nó ñem l i
là ñáng k . Hãy b t ñ u Autolisp v i nh ng công vi c thư ng ngày. Nh ng ño n chương
trình Autolisp ñơn nhưng có th gi m ñư c th i gian ñáng k trong vi c hoàn thi n các
b n v . M t chương trình Autolisp thành công không ph i là chương trình có qui mô l n
ñ n vài ch c ngàn dòng l nh mà ñó là chương hi u qu , gi i quy t ñư c các yêu c u c a
ngư i thi t k và ti t ki m ñư c th i gian th c hi n công vi c.
5. Gi i thi u m t s ñ a ch tham kh o
5.1. Website hư ng d n h c Autolisp
http://www.jefferypsanders.com/autolisp.html
B n ñ c có th tham kh o các tài li u gi i thi u chi ti t v các hàm d ng s n trong
Autolisp cũng như các tài li u gi i thi u v b ng DXF t i ñây. Ngoài ra t i website này b n
có th download mi n phí nhi u chương trình Autolisp r t hay.
http://www.afralisp.com/lispa/lisp.htm
Website hư ng d n h c Autolisp khá chi ti t và ñ y ñ . B n có th tham kh o b t kỳ n i
dung gì liên quan ñ n Autolisp t i ñây
5.2. Download các chương trình Autolisp
http://xarch.tu-graz.ac.at/autocad/lisp/
http://home.pacifier.com/~nemi/
http://www.autolisppage.com
http://www.caddigest.com
http://www.autolisp.co.uk/
http://www.simplecad.com
5. ð s d ng lisp ph c v cho v b n v CAD ta th c hi n các bư c sau.
1. Command: AP
2. Hi n c a s Load/Unload Applications, l a ch n t t c c các lisp c n dùng. Nh n và nút
Load.
3. Sau khi load xong. Cad s ñưa ra thông báo Load thành công.
ð s d ng m t l nh Lisp lâu dài, nghĩa là mu n AutoCad t ñ ng load các file lisp khi
kh i ñ ng, th c hi n g i c a s mà Jikibo ñã nói trên (Tools -> Load Application).
Nhưng b n ko th c hi n Load b ng select file như trên, mà hãy s d ng button Contents