Diễn đàn giao thông
 
Trang ChínhTrang Chính  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Thành viênThành viên  NhómNhóm  Đăng NhậpĐăng Nhập  
Đăng Nhập
Tên truy cập:
Mật khẩu:
Đăng nhập tự động mỗi khi truy cập: 
:: Quên mật khẩu
Top posters
Admin
 
xhung0602
 
sonmk2008
 
philipdn
 
TRANHOC2008
 
vinhtg
 
CIC.com
 
vu hien
 
moclantim
 
cd2k44
 
Latest topics
Statistics
Diễn Đàn hiện có 10071 thành viên
Chúng ta cùng chào mừng thành viên mới đăng ký: nickjin

Tổng số bài viết đã gửi vào diễn đàn là 18482 in 3413 subjects
Keywords
nova alpha duong win7 download patch dpsurvey crack hitosoft civil 2017 acitt FAST SANNEN2005 full road HHMAPS toan huong rdsuite topo bravo cack d600 thiet group
Social bookmarking
Social bookmarking digg  Social bookmarking delicious  Social bookmarking reddit  Social bookmarking stumbleupon  Social bookmarking slashdot  Social bookmarking yahoo  Social bookmarking google  Social bookmarking blogmarks  Social bookmarking live      

Bookmark and share the address of ZIZU on your social bookmarking website
LIÊN KẾT




TỔNG LƯỢT TRUY CẬP

Share | 
 

 VIẾT AUTOLIT CHO CAD

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
t3pubt
Thành viên năng động
Thành viên năng động
avatar

Tổng số bài gửi : 75
Nghề nghiệp: : kĩ sư thủy lợi
Ngày đăng ký : 22/07/2008

Bài gửiTiêu đề: VIẾT AUTOLIT CHO CAD   Tue Sep 15, 2009 5:56 pm

CÓ BẠN NÀO BIẾT VIẾT AUTOLIT KO.CHIA SẼ VỚI A E DI
Về Đầu Trang Go down
Xem lý lịch thành viên
philipdn
Moderator
Moderator
avatar

Nam Tổng số bài gửi : 320
Age : 33
Đến từ: : Việt Nam
Nghề nghiệp: : Xây dựng cầu đường
Sở thích : Học tập, nghiên cứu và vi tính
Ngày đăng ký : 16/11/2008

Bài gửiTiêu đề: Re: VIẾT AUTOLIT CHO CAD   Wed Sep 16, 2009 12:15 pm

AUTOLIT là cái gì bạn. Có phải bạn nói về lập trình Autolisp ko?


Được sửa bởi philipdn ngày Wed Sep 16, 2009 12:18 pm; sửa lần 1.
Về Đầu Trang Go down
Xem lý lịch thành viên http://vn.myblog.yahoo.com/alonestar.cafe
philipdn
Moderator
Moderator
avatar

Nam Tổng số bài gửi : 320
Age : 33
Đến từ: : Việt Nam
Nghề nghiệp: : Xây dựng cầu đường
Sở thích : Học tập, nghiên cứu và vi tính
Ngày đăng ký : 16/11/2008

Bài gửiTiêu đề: Re: VIẾT AUTOLIT CHO CAD   Wed Sep 16, 2009 12:16 pm

Tổng quan về AutoLisp - Ngôn ngữ lập trình trong Tự động hóa thiết kế

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 "Tecco 533")
(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 "Tecco 533")
(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 "Tecco 533")
(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 . ) (0 . "LINE") (5 . "22") (100 . "AcDbEntity") (67 . 0) (8 . "0") (62 . 4) (100 . "AcDbLine") (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 ("TECCO533" (1000 . "Tim tuyen"))))

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>


)
(cond
( )
( )
...
( )
)

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 >

)
(repeat

)

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.
Về Đầu Trang Go down
Xem lý lịch thành viên http://vn.myblog.yahoo.com/alonestar.cafe
Sponsored content




Bài gửiTiêu đề: Re: VIẾT AUTOLIT CHO CAD   

Về Đầu Trang Go down
 
VIẾT AUTOLIT CHO CAD
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
ZIZU :: DOWNLOAD & UPLOAD PHẦN MỀN CHUYÊN NGÀNH :: Soft xây dựng - kiến trúc-
Chuyển đến