SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
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
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
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:
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
ð 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

Más contenido relacionado

Similar a Gioi Thieu Ve Autolisp

4autocadchotudonghoathietke1744 101103233741-phpapp01
4autocadchotudonghoathietke1744 101103233741-phpapp014autocadchotudonghoathietke1744 101103233741-phpapp01
4autocadchotudonghoathietke1744 101103233741-phpapp01
lekytho
 
4autocadchotudonghoathietke1744 101103233741-phpapp01
4autocadchotudonghoathietke1744 101103233741-phpapp014autocadchotudonghoathietke1744 101103233741-phpapp01
4autocadchotudonghoathietke1744 101103233741-phpapp01
lekytho
 
620.0.The ABC's of AutoLISP - Omura, George.pdf
620.0.The ABC's of AutoLISP - Omura, George.pdf620.0.The ABC's of AutoLISP - Omura, George.pdf
620.0.The ABC's of AutoLISP - Omura, George.pdf
CESARSILVIOPILACAIZA
 
620.0.The ABC's of AutoLISP - Omura, George.pdf
620.0.The ABC's of AutoLISP - Omura, George.pdf620.0.The ABC's of AutoLISP - Omura, George.pdf
620.0.The ABC's of AutoLISP - Omura, George.pdf
CESARSILVIOPILACAIZA
 
qdoc.tips_oracle-dba-interview-questions.pdf
qdoc.tips_oracle-dba-interview-questions.pdfqdoc.tips_oracle-dba-interview-questions.pdf
qdoc.tips_oracle-dba-interview-questions.pdf
OsamaQahtan
 
Technical_Report_on_ML_Library
Technical_Report_on_ML_LibraryTechnical_Report_on_ML_Library
Technical_Report_on_ML_Library
Saurabh Chauhan
 
Reducing Redundancies in Multi-Revision Code Analysis
Reducing Redundancies in Multi-Revision Code AnalysisReducing Redundancies in Multi-Revision Code Analysis
Reducing Redundancies in Multi-Revision Code Analysis
Sebastiano Panichella
 

Similar a Gioi Thieu Ve Autolisp (20)

Full Stack Online Course in Marathahalli| AchieversIT
Full Stack Online Course in Marathahalli| AchieversITFull Stack Online Course in Marathahalli| AchieversIT
Full Stack Online Course in Marathahalli| AchieversIT
 
4autocadchotudonghoathietke1744 101103233741-phpapp01
4autocadchotudonghoathietke1744 101103233741-phpapp014autocadchotudonghoathietke1744 101103233741-phpapp01
4autocadchotudonghoathietke1744 101103233741-phpapp01
 
4autocadchotudonghoathietke1744 101103233741-phpapp01
4autocadchotudonghoathietke1744 101103233741-phpapp014autocadchotudonghoathietke1744 101103233741-phpapp01
4autocadchotudonghoathietke1744 101103233741-phpapp01
 
620.0.The ABC's of AutoLISP - Omura, George.pdf
620.0.The ABC's of AutoLISP - Omura, George.pdf620.0.The ABC's of AutoLISP - Omura, George.pdf
620.0.The ABC's of AutoLISP - Omura, George.pdf
 
620.0.The ABC's of AutoLISP - Omura, George.pdf
620.0.The ABC's of AutoLISP - Omura, George.pdf620.0.The ABC's of AutoLISP - Omura, George.pdf
620.0.The ABC's of AutoLISP - Omura, George.pdf
 
nullcon 2011 - Memory analysis – Looking into the eye of the bits
nullcon 2011 - Memory analysis – Looking into the eye of the bitsnullcon 2011 - Memory analysis – Looking into the eye of the bits
nullcon 2011 - Memory analysis – Looking into the eye of the bits
 
Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...
 
qdoc.tips_oracle-dba-interview-questions.pdf
qdoc.tips_oracle-dba-interview-questions.pdfqdoc.tips_oracle-dba-interview-questions.pdf
qdoc.tips_oracle-dba-interview-questions.pdf
 
Gráficas en python
Gráficas en python Gráficas en python
Gráficas en python
 
Open and Automated Machine Learning
Open and Automated Machine LearningOpen and Automated Machine Learning
Open and Automated Machine Learning
 
Implementing the Genetic Algorithm in XSLT: PoC
Implementing the Genetic Algorithm in XSLT: PoCImplementing the Genetic Algorithm in XSLT: PoC
Implementing the Genetic Algorithm in XSLT: PoC
 
DB Conan 1.0
DB Conan 1.0DB Conan 1.0
DB Conan 1.0
 
Beholding the giant pyramid of application development; why Ajax applications...
Beholding the giant pyramid of application development; why Ajax applications...Beholding the giant pyramid of application development; why Ajax applications...
Beholding the giant pyramid of application development; why Ajax applications...
 
Machine learning For Smarter Manufacturing & its Fundamentals
Machine learning For Smarter Manufacturing & its FundamentalsMachine learning For Smarter Manufacturing & its Fundamentals
Machine learning For Smarter Manufacturing & its Fundamentals
 
Technical_Report_on_ML_Library
Technical_Report_on_ML_LibraryTechnical_Report_on_ML_Library
Technical_Report_on_ML_Library
 
Reducing Redundancies in Multi-Revision Code Analysis
Reducing Redundancies in Multi-Revision Code AnalysisReducing Redundancies in Multi-Revision Code Analysis
Reducing Redundancies in Multi-Revision Code Analysis
 
Project00
Project00Project00
Project00
 
The Why and What of Pattern Lab
The Why and What of Pattern LabThe Why and What of Pattern Lab
The Why and What of Pattern Lab
 
Acm aleppo cpc training introduction 1
Acm aleppo cpc training introduction 1Acm aleppo cpc training introduction 1
Acm aleppo cpc training introduction 1
 
An Experiment with Checking the glibc Library
An Experiment with Checking the glibc LibraryAn Experiment with Checking the glibc Library
An Experiment with Checking the glibc Library
 

Más de Mio Class

Más de Mio Class (14)

Primavera Cost Res Vn
Primavera Cost Res VnPrimavera Cost Res Vn
Primavera Cost Res Vn
 
van de chung excel
van de chung excelvan de chung excel
van de chung excel
 
staad pro
staad prostaad pro
staad pro
 
SEISMIC_DESIGN
SEISMIC_DESIGNSEISMIC_DESIGN
SEISMIC_DESIGN
 
PLOT MS PROJECT
PLOT MS  PROJECTPLOT MS  PROJECT
PLOT MS PROJECT
 
[Construction E Book]
[Construction E Book][Construction E Book]
[Construction E Book]
 
Hdsd Dutoan Hitosoft
Hdsd Dutoan HitosoftHdsd Dutoan Hitosoft
Hdsd Dutoan Hitosoft
 
Bai3-Entry for Gantt
Bai3-Entry for GanttBai3-Entry for Gantt
Bai3-Entry for Gantt
 
Bai2-Tao du an
Bai2-Tao du anBai2-Tao du an
Bai2-Tao du an
 
bai1-gioithieu
bai1-gioithieubai1-gioithieu
bai1-gioithieu
 
v20
v20v20
v20
 
Shile
ShileShile
Shile
 
Shile
ShileShile
Shile
 
Shile
ShileShile
Shile
 

Último

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Gioi Thieu Ve Autolisp

  • 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