Biên dịch:<br />
Hiệu đính:<br />
<br />
Lê Quỳnh Mai (chủ biên)<br />
Trương Thanh Hoàng<br />
Hoàng Thuỳ Linh<br />
Bùi Công Độ<br />
<br />
Phát triển<br />
<br />
AutoCAD bằng<br />
<br />
ActiveX & VBA<br />
<br />
Autodesk®<br />
<br />
Biên dịch:<br />
Hiệu đính:<br />
<br />
Lê Quỳnh Mai (chủ biên)<br />
Trương Thanh Hoàng<br />
Hoàng Thuỳ Linh<br />
Bùi Công Độ<br />
<br />
Phát triển AutoCAD bằng<br />
<br />
ActiveX & VBA<br />
<br />
LỜI MỞ ĐẦU<br />
<br />
Sự quen thuộc với AutoCAD của người làm công tác thiết kế là hiển nhiên bởi<br />
khả năng hỗ trợ tạo bản vẽ kỹ thuật tuyệt vời cùng tính dễ dùng của nó. Tuy<br />
vậy, với đòi hỏi ngày càng cao của công việc, AutoCAD đang dần phát triển,<br />
từ một môi trường hỗ trợ tạo bản vẽ, đã biến thành một môi trường tích hợp,<br />
mà ở đó người dùng có thể lấy AutoCAD làm nền để xây dựng cho mình<br />
những công cụ làm việc có khả năng tùy biến cao, vượt ra khỏi giới hạn là<br />
công cụ tạo bản vẽ thông thường. Nắm bắt được nhu cầu này, cùng với mục<br />
tiêu đào tạo của bộ môn Tự động hóa thiết kế cầu đường, trường Đại học Giao<br />
thông vận tải, chúng tôi đã nghiên cứu các công cụ phát triển AutoCAD và<br />
thấy rằng VBA thực sự thích hợp. Thứ nhất, nó được tích hợp sẵn trong<br />
AutoCAD và có thể khai thác mọi khả năng sẵn có trong AutoCAD. Thứ hai,<br />
ngôn ngữ lập trình VB rất phổ biến bởi tính dễ sử dụng và nhiều tài liệu tham<br />
khảo, điều này rất hữu ích cho người lập trình bằng VBA. Hơn nữa, tài liệu<br />
bằng tiếng Việt về lĩnh vực này hiện nay rất hiếm và không đầy đủ. Chính vì<br />
vậy, sau khi xem xét và cân nhắc kỹ lưỡng các loại tài liệu tham khảo cho việc<br />
phát triển AutoCAD bằng VBA, chúng tôi đã quyết định dịch cuốn sách này<br />
sang tiếng Việt với mong muốn đóng góp cho người sử dụng AutoCAD ở Việt<br />
Nam một tài liệu tham khảo đầy đủ và hữu dụng.<br />
Cuốn sách này, với nội dung chính là hướng dẫn phát triển AutoCAD bằng<br />
VBA do chính hãng Autodesk xuất bản, đã thể hiện được đầy đủ nhất tất cả các<br />
kiến thức, từ cơ bản đến nâng cao, trong lĩnh vực xây dựng các ứng dụng trên<br />
AutoCAD. Hy vọng rằng, với sự am hiểu về AutoCAD, về lập trình hướng đối<br />
tượng và sự cố gắng của bản thân, chúng tôi sẽ mang lại cho người đọc một tài<br />
liệu tham khảo thiết thực.<br />
<br />
MỤC LỤC<br />
<br />
Đ<br />
<br />
ỨNG DỤNG MẪU................................................................................. 9<br />
<br />
Tà<br />
BM i l<br />
iệ<br />
Tự u t<br />
h<br />
độ am<br />
ng k<br />
ho hả<br />
o<br />
á<br />
TK<br />
C<br />
<br />
1. Vẽ bãi đỗ xe.................................................................................................10<br />
2. Chuyển từ toạ độ bản đồ sang toạ độ địa cầu.............................................11<br />
3. Liên kết cơ sở dữ liệu ..................................................................................13<br />
4. Tính toán cần trục tháp ...............................................................................14<br />
5. Xuất thuộc tính ...........................................................................................16<br />
6. Xây dựng dầm chữ I....................................................................................17<br />
<br />
MỞ ĐẦU............................................................................................... 19<br />
1. Tổng quan về công nghệ AutoCAD ActiveX.................................................20<br />
1.1. Tổng quan về các đối tượng AutoCAD ActiveX ..............................................20<br />
2. Tổng quan về giao diện AutoCAD Visual Basic for Applications (VBA) .......21<br />
2.1. Cách thức thực thi của VBA trong AutoCAD ..................................................21<br />
2.2. Phụ thuộc và hạn chế khi sử dụng AutoCAD VBA ..........................................22<br />
3. Ưu điểm của sự kết hợp AutoCAD ActiveX và VBA......................................22<br />
4. Tổ chức của cuốn sách ................................................................................23<br />
5. Tìm mã lệnh ví dụ........................................................................................23<br />
5.1. Thực thi các ứng dụng mẫu.........................................................................23<br />
5.2. Xem các ứng dụng mẫu ..............................................................................24<br />
<br />
CHƯƠNG 1: LÀM QUEN VỚI VBA ............................................... 27<br />
1. Khái niệm về dự án VBA nhúng và độc lập..................................................28<br />
2. Tổ chức Dự án bằng VBA Manager..............................................................28<br />
2.1. Tải một dự án đã có ...................................................................................29<br />
2.2. Dỡ bỏ dự án ..............................................................................................30<br />
2.3. Nhúng dự án vào bản vẽ.............................................................................30<br />
2.4. Tách dự án VBA ra khỏi bản vẽ....................................................................30<br />
2.5. Tạo dự án mới ...........................................................................................31<br />
2.6. Lưu dự án..................................................................................................31<br />
3. Xử lý Macro .................................................................................................31<br />
3.1. Thực thi Macro...........................................................................................32<br />
3.2. Hiệu chỉnh Macro .......................................................................................32<br />
3.3. Truy cập vào Macro ....................................................................................32<br />
<br />
Phát triển AutoCAD bằng ActiveX và VBA | i<br />
<br />
3.4. Tạo mới Macro .......................................................................................... 33<br />
3.5. Xóa Macro................................................................................................. 33<br />
3.6. Thiết lập các tùy chọn trong dự án .............................................................. 33<br />
4. Hiệu chỉnh dự án bằng VBA IDE ................................................................. 34<br />
4.1. Mở VBA IDE .............................................................................................. 34<br />
4.2. Xem thông tin về dự án.............................................................................. 34<br />
4.3. Định nghĩa các thành phần trong một dự án ................................................ 35<br />
4.4. Nhập những thành phần đã có.................................................................... 36<br />
4.5. Hiệu chỉnh các thành phần ......................................................................... 36<br />
4.6. Thực thi Macro .......................................................................................... 38<br />
4.7. Đặt tên dự án............................................................................................ 38<br />
4.8. Lưu Dự án................................................................................................. 39<br />
4.9. Tham chiếu dự án VBA khác ....................................................................... 39<br />
4.10. Thiết lập các tùy chọn trong VBA IDE ........................................................ 40<br />
<br />
Đ<br />
<br />
5. Bài tập mở đầu ........................................................................................... 42<br />
<br />
Tà<br />
BM i l<br />
iệ<br />
Tự u t<br />
h<br />
độ am<br />
ng k<br />
ho hả<br />
o<br />
á<br />
TK<br />
C<br />
<br />
6. Thông tin thêm ........................................................................................... 42<br />
7. Nhắc lại các thuật ngữ về dự án AutoCAD VBA .......................................... 43<br />
8. Nhắc lại về lệnh AutoCAD VBA ................................................................... 43<br />
<br />
CHƯƠNG 2: CÁC KHÁI NIỆM CƠ BẢN VỀ ActiveX Automation<br />
............................................................................................................... 45<br />
1. Tìm hiểu mô hình đối tượng trong AutoCAD .............................................. 46<br />
1.1. Sơ lược về đối tượng Application ................................................................. 48<br />
1.2. Sơ lược về đối tượng Document .................................................................. 48<br />
1.3. Sơ lược về tập đối tượng ............................................................................ 50<br />
1.4. Sơ lược về các đối tượng Đồ họa và Phi đồ hoạ............................................ 50<br />
1.5. Sơ lược về đối tượng Preferences, Plot và Utility........................................... 50<br />
2. Truy xuất cây phân cấp đối tượng.............................................................. 51<br />
2.1. Tham chiếu đối tượng trong Cấu trúc cây phân cấp đối tượng ....................... 52<br />
2.2. Truy xuất đối tượng Application .................................................................. 52<br />
3. Làm việc với Tập đối tượng ........................................................................ 52<br />
3.1. Truy xuất Tập đối tượng............................................................................. 53<br />
3.2. Thêm đối tượng mới vào Tập đối tượng....................................................... 54<br />
3.3. Duyệt Tập đối tượng .................................................................................. 54<br />
3.4. Xoá một đối tượng khỏi Tập đối tượng ........................................................ 54<br />
4. Tìm hiểu Phương thức và Thuộc tính ......................................................... 55<br />
5. Tìm hiểu Đối tượng gốc .............................................................................. 55<br />
6. Thư viện kiểu .............................................................................................. 55<br />
7. Gọi lại Thực Thể Đầu Tiên trong CSDL........................................................ 56<br />
8. Sử dụng Variant trong phương thức và thuộc tính .................................... 56<br />
8.1. Variant là gì? ............................................................................................. 56<br />
8.2. Sử dụng biến Variant trong dữ liệu mảng..................................................... 56<br />
8.3. Chuyển Mảng thành Variant........................................................................ 57<br />
8.4. Mảng Variant............................................................................................. 57<br />
9. Sử dụng các ngôn ngữ lập trình khác......................................................... 58<br />
9.1. Chuyển đổi từ mã VBA sang VB................................................................... 58<br />
9.2. Đoạn mã ví dụ so sánh VBA và VB............................................................... 59<br />
<br />
ii | Mục lục<br />
<br />