Tìm hiểu ngôn ngữ AutoLISP Và Ứng dụng trong AutoCAD

Link tải luận văn miễn phí cho ae Kết Nối

Phần 1: Giới thiệu 5
1 Tên và mục đích của đề tài 5
2 Giới thiệu vài nét về cơ quan thực tập 5
Phần 2: Nội dung 6
Lời mở đầu 6
1. Khái quát về lập trình trong AutoCAD 8
1.1 Kỹ thuật tự động ActiveX (ActiveX Automation) 8
1.2 AutoCAD VBA 8
1.3 AutoLISP và Visual LISP 9
1.4 ObjectARX 9
2. Giới thiệu chung 10
2.1 Vài nét sơ lược về LISP 10
2.2 Lịch sử phát triển AutoLisp 10
2.3 Ưu nhược điểm của AutoLisp 11
3.Ngôn ngữ lập trình AutoLISP 12
3.1. Căn bản về AutoLisp 12
3.1.1 Xây dựng biểu thức AutoLISP 12
3.1.2 Cách nhập biểu thức AutoLISP: 13
3.1.3 Các hàm số học 13
3.2. Biến và ký hiệu trong AutoLISP 14
3.2.1 Gán giá trị cho biến 14
3.2.2 Giá trị trả về của hàm AutoLISP 14
3.2.3 Sử dụng các biến tại dòng lệnh AutoCAD 14
3.2.4 Các quy định về đặt tên biến 14
3.2.5 Nhập giá trị cho tham số 14
3.2.6 Phạm vi các biến trong AutoLISP 15
3.3. File chương trình AutoLISP 16
3.3.1 Tên file AutoLISP 16
3.3.2 Tạo file chương trình 16
3.3.3 Gọi file chương trình AutoLISP 17
3.3.4 Chú thích 17
3.3.5 Các hàm tự tạo 17
3.3.6 Biến toàn cục và biến cục bộ 18
3.3.7 Tạo các lệnh AutoCAD mới 18
3.4. Nhập dữ liệu 19
3.4.1 Nhập số nguyên 19
3.4.2 Nhập số thực 19
3.4.3 Nhập chuỗi 19
3.4.5 Tham số không rỗng 19
3.4.6 Kiểm soát dữ liệu nhập vào 19
3.4.7 Biến hệ thống 19
3.5. Một số hàm cơ bản 20
3.5.1 Hàm chuyển kiểu dữ liệu từ chuỗi thành số và ngược lại 20
3.5.2. Các hàm số học 21
3.5.3. Các hàm về chuỗi 23
3.6. Xử lý danh sách 25
3.6.1 Phân loại : 25
3.6.2 Tạo danh sách 25
3.6.3 Các hàm xử lý danh sách cơ bản 25
3.6.4 Các hàm xử lý danh sách nâng cao 26
3.7. Biểu thức điều kiện 28
3.7.1. Biểu thức điều kiện 28
3.7.2. Rẽ nhánh chương trình 29
3.7.3 Các hàm logic 30
3.8. Vòng lặp 31
3.8.1 Hàm Repeat 31
3.8.2 Hàm While 31
3.8.3 Hàm Append 31
3.8.4 Hàm 1+ 32
3.8.5 Hàm 1- 32
3.8.6 Truy xuất từng phần tử trong danh sách 32
3.9. Tạo hộp thoại 33
3.9.1 Khái niệm về file .DCL và các thành phần của hộp thoại 33
3.9.2. Phân loại các ttile 34
3.9.3 Các thuộc tính của tile 40
3.9.4 Các hàm điều khiển hộp thoại 41
3.9.5 Các hàm điều khiển các tile 42
3.9.6 Một số chú ý khi thiết kế hộp thoại 42
3.10. Các hàm xử lý màn hình đồ hoạ và thiết bị nhập 44
3.10.1 Màn hình đồ họa 44
3.10.2 Gọi hiển thị các menu 45
3.10.3 Các hàm truy xuất màn hình đồ họa và thiết bị nhập 46
4. Chương trình minh hoạ 48
4.1 Lỗ Gujong 48
4.2 Dầm chữ I 51
5 Kết luận 55
6 Các tài liệu tham khảo 56

Phần 1: Giới thiệu
1 Tên và mục đích của đề tài
 Tên đề tài: Tìm hiểu ngôn ngữ AutoLISP và ứng dụng trong AutoCAD
 Mục đích của đề tài: tìm hiểu AutoLISP và cách lập trình các tiện ích cho phần
mềm AutoCAD.
2 Giới thiệu vài nét về cơ quan thực tập
Công ty CP Điện Tử Tin Học Viễn Thông có tiền thân là Công Ty Đầu Tư và
Phát Triển Kỹ Thuật Phát Thanh Truyền Hình Hải Phòng được thành lập năm 1993.
Đến năm 1996 công ty đổi tên thành Công ty dịch vụ tin học Hải Phòng (quyết định số
25/4QĐ-UB) trên cơ sở hợp nhất hai đơn vị: Công Ty Đầu Tư và Phát Triển Kỹ Thuật
Phát Thanh Truyền và Công ty điện tử tin học Hải Phòng. Năm 2004, thực hiện nghị
quyết TW3, công ty chuyển thành Công ty cổ phần điện tử tin học Viễn Thông (Cty cổ
phần có sự góp vốn của Nhà Nước. Giấy chứng nhận đăng ký kinh doanh Cty cổ phần
số 0203000819-Quyết định số 1869/QĐ-UB ngày 22/4/2004 của ủy Ban Nhân Dân
thành phố Hải Phòng).
Ngày 01/5/2004 Cty Cổ Phần Điện Tử Tin Học Viễn Thông chính thức đi vào
hoạt động với tổng vốn điều lệ là 3 tỷ VN đồng, tên giao dịch quốc tế là Electronic
Telecommunication Informatic Joint.
Trụ sở chính của Cty: số 18 Trần Hưng Đạo, phường Hoàng Văn Thụ, quận
Hồng Bàng, thành phố Hải Phòng
Công ty Cổ Phần Điện Tử Tin Học Viễn thông kinh doanh các ngành nghề
sau:
- Kinh doanh và dịch vụ hàng điện tử, điện lạnh, điện máy, vật tư, thiết bị và
các đồ dùng dân dụng. Đại lý hàng điện máy.
- Sửa chữa bảo hành, lắp giáp các thiết bị truyền thanh, truyền hình, tin học.
- Sản xuất máy thu thanh FM, máy tăng âm và ăng ten thu phát vô tuyến.
- Vận tải và dịch vụ vận tải hàng hóa.
- Dịch vụ văn hóa thể thao.
- Lắp đặt bảo dưỡng sửa chữa cung ứng vật tư thiết bị truyền hình cáp -
MMDS.
- Kinh doanh khách sạn nhà nghỉ và cho thuê văn phòng .
- Kinh doanh các thiết bị tin học và đào tạo tin học .
- Sản xuất bao bì và bảng kẽm.
- Xây dựng công trình dân dụng, công nghiệp, giao thông thủy lợi, thương
mại và đường ống cấp thoát nước.
- Kinh doanh vận tải hành khách bằng xe taxi. Phần 2: Nội dung
Lời mở đầu
Khi mới ra đời, công nghệ thông tin không có nhiều ứng dụng trong cuộc sống
mà chủ yếu phục vụ cho ngành khoa học cơ bản nhằm giải quyết các bài toán lớn, mất
nhiều thời gian tính toán hay những bài toán đòi hỏi sự chính xác gần như tuyệt đối.
Trước kia, để thiết kế ra các công trình xây dựng hay chế tạo ra chi tiết máy
mới, các kỹ sư thiết kế phải tốn rất nhiều thời gian để thiết kế và tính toán các thông số
kỹ thuật sao cho chính xác. Trong quá trình thiết kế các bản vẽ bằng tay họ phải lặp đi
lặp lại một số chi tiết hay khi vẽ sai phải thực hiện bản vẽ đó lại từ đầu. Điều này
khiến cho người thiết kế mất rất nhiều thời gian và làm giảm chất lượng bản vẽ. Từ
thực tế đó, rất nhiều kỹ sư thiết kế mong muốn có được công cụ hỗ trợ mình trong
công việc thiết kế nhằm nâng cao chất lượng bản vẽ. Nắm bắt nhu cầu này, các công ty
phần mềm đã cho ra đời một loạt các phần mềm hỗ trợ như AutoCAD, SAP,
AutoCAD Mechanical…
Tuy nhiên, trên thực tế các phần mềm hỗ trợ cũng chỉ đáp ứng được các yêu
cầu chung nhất, tổng quát nhất của các kỹ sư thiết kế. Ví dụ như trong ngành thiết kế
công trình nhà ở, cầu đường…, Việt Nam có những tiêu chuẩn riêng do bộ Công
Nghiệp đặt ra đối với các bản vẽ này mà không theo tiêu chuẩn chung của thế giới.
Trong khi đó, các phần mềm hỗ trợ công việc thiết kế lại tuân theo những tiêu chuẩn
chung của thế giới. Do đó bắt buộc người kỹ sư thiết kế phải tự mình thực hiện các
thao tác để vẽ các chi tiết tuân theo các tiêu chuẩn của riêng nước mình dù đôi khi việc
này tốn khá nhiều thời gian hay các chi tiết này lặp đi lặp lại qua từng bản vẽ.
Có thể nói trong số các phần mềm của hệ thống CAD/CAM thì AutoCAD của
hãng Autodesk là một công cụ tuyệt vời của kỹ sư mọi ngành nghề từ điện tử, vi mạch
tới chế tạo máy, từ vô tuyến tới xây dựng. Có nhiều chương trình vẽ kĩ thuật tiện ích
khác ra đời như ArchiCAD, COMPAS 3D, Turbo CAD... nhưng có thể nói trong lĩnh
vực vẽ 2D, AutoCAD là ông “trùm”.
Điều ấy sở dĩ tồn tại được là bởi 2 lí do[6]: 1- AutoCAD không ngừng hoàn
thiện mình, 2- AutoCAD để ngỏ cho người sử dụng cách tự hoàn thiện theo nhu cầu
riêng một cách dễ dàng. Trong AutoCAD có tồn tại ít nhất là 3 ngôn ngữ lập trình lớn
VisualLisp, VisualBasic và Visual C.
Vậy thành thạo ngôn ngữ lập trình trong AutoCAD để làm gì?
Việc viết code trong AutoCAD nói riêng và việc lập trình thường chiếm thời
gian rất lâu đối với người không chuyên. Trong ba ngôn ngữ kể trên thì Visual LISP
được yêu thích hơn cả bởi câu lệnh đơn giản lại có thể sử dụng sẵn các câu lệnh của
AutoCAD một cách tiện lợi. Ít câu lệnh và ít thuật toán rắc rối, dễ học, dễ viết. Chính
vì thế Visual LISP trong đại đa số người sử dụng là một phương pháp hoàn thiện, tích
hợp các lệnh vẽ có sẵn của AutoCAD theo yêu cầu của từng cá nhân.
Visual Studio trong AutoCAD là công cụ phát triển nhất giúp đột phá các giới hạn
của các câu lệnh AutoCAD cho người sử dụng. Ví dụ như khi vẽ cầu thang cuốn, các mặt phức tạp bậc cao, nếu không muốn bị hiện rõ chỗ gấp khúc khi phóng đại tỉ lệ thì
chỉ có lựa chọn duy nhất là VS (trong AutoCAD 2007 đã hỗ trợ helix). VS cũng là
công cụ lập trình dùng cho các đề bài lớn như tự động hóa tính toán ổn định cho đập
bê tông, tự động hóa thiết kế nhà máy thủy điện, chuyển dữ liệu excel thành địa
hình 3D....
VBA không mạnh như VS, không tiện như Visual LISP, bởi thế người học
VBA thường là người có căn bản về VB và muốn tiết kiệm thời gian.
Nói đến VisualLISP (Visual List Processor) thì trước hết nên nói đến
AutoLISP. AutoLisp, tập con ngôn ngữ LISP, là ngôn ngữ lập trình bậc cao thích hợp
với các ứng dụng đồ hoạ. AutoLISP là một ngôn ngữ thông dịch, được viết theo cú
pháp và thủ tục chặt chẽ như ngôn ngữ LISP. Tuy nhiên, nó được bổ sung thêm các
hàm để phù hợp với AutoCAD.
Sử dụng AutoLISP ta có thể viết các chương trình marco để tạo lệnh mới cho
AutoCAD hay các chương trình tự động thiết kế bản vẽ được sử dụng thường xuyên,
thực hiện với các lệnh có sẵn của AutoCAD để góp phần tăng năng suất thiết kế. Bạn
có thể sử dụng bất kỳ trình soạn thảo văn bản nào để tạo các chương trình AutoLISP
và gọi chúng vào trong CAD để kiểm tra và thực hiện.
Có thể nói, để làm chủ lập trình AutoCAD thì AutoLISP chính là cánh cửa đầu
tiên mà bạn cần vượt qua. 3.8.4 Hàm 1+
 Cú pháp: (1+ num)
3.8.5 Hàm 1-
 Cú pháp: (1- num)
 Ví dụ: (1- 4) ; trả về 3
3.8.6 Truy xuất từng phần tử trong danh sách
a. Hàm FOREACH
 Hàm Foreach duyệt từng phần tử trong danh sách. Tại mỗi thời điểm, giá trị
của từng phần tử trong danh sách được gán tạm thời cho biến name. Sau đó
các biểu thức expr được định giá trị. Nếu trong các biểu thức có chứa biến
name, thì giá trị biến name trong từng thời điểm sẽ khác nhau. Nếu danh
sách rỗng thì hàm trả về nil.
 Cú pháp: (Foreach name list expr)
 Ví dụ: in ra màn hình từ 1 đến 5
(foreach dsach (list “1” “2” “3” “4” “5”)
princ (strcat “\n” dsach))(princ)
b. Hàm SET
 Hàm set rất có ich khi làm việc với biến và tên biến trong hàm foreach.
 Cú pháp: (Set sym expr)
 Sym phải là kiểu biến không định giá trị. Hàm set gán giá trị của expr
cho biến chứa trong tham số sym.
 So sánh hàm setq và set
 Hàm setq gán giá trị cho một biến mà không định giá trị cho biến
này.
 Hàm set trước tiên định giá trị của biến sym, sau đó mới gán giá trị
cho biến tìm được.
 Setq = set + quote
c. Hàm EVAL
 Hàm eval trả về kết quả của việc định giá trị biểu thức expr.
 Biểu thức expr được định giá trị cho đến mức cuối cùng, loại bỏ các kết quả
ở mức trung gian.
 Ví dụ:
(setq X “yes” Y 15 Z „Y w Z)
(eval X) ;trả về “yes”
(eval Y) ;trả về 15

Xem link download tại Blog Kết nối!
Music ♫

Copyright: Tài liệu đại học ©