CHƯƠNG V: LẬP TRÌNH TRÊN AUTOCAD
2. Quản lý dự án VBA trong AutoCAD
2.1. Dự án VBA trong AutoCAD
Không giống như trong Excel, chỉ có một loại dự án VBA nhúng ngay trong tệp bảng tính XLS, các dự án VBA trong AutoCAD được phân thành 2 loại sau:
Dự án nhúng (Embedded Project): là dự án VBA được lưu trữ trong tệp DWG cùng với các thông tin khác của bản vẽ trong AutoCAD. Dự án nhúng có một số đặc điểm sau:
Không thể đóng hoặc mở các bản vẽ AutoCAD bởi dự án loại này được thiết lập là chỉ làm việc bên trong bản vẽ chứa nó.
Khi sử dụng dự án nhúng, người dùng không cần phải nhớ nơi lưu trữ dự án, không cần phải thực hiện tải dự án vào AutoCAD mỗi khi cần sử dụng các chức năng có trong dự án bởi tất cả các thao tác đó đều được thực hiện tự động khi mở bản vẽ có chứa dự án nhúng.
Các chức năng được lập trình trong dự án VBA nhúng chỉ có hiệu lực đối với bản vẽ chứa nó, và như vậy, khi muốn sử dụng các chức năng này cho những bản vẽ khác, người sử dụng buộc phải sao chép dự án VBA đó sang các tệp bản vẽ này.
Dự án độc lập (Global Project): là dự án được lưu tách biệt trong một tệp có phần mở rộng là *.DVB và không phụ thuộc vào một bản vẽ nào cả. Dự án VBA đọc lập có một số đặc điêm sau:
Để sử dụng một tính năng nào đó trong dự án VBA độc lập, người sử dụng phải tải dự án đó vào AutoCAD.
Dự án VBA độc lập có khả năng làm việc linh hoạt hơn, có khả năng đóng hoặc mở bản vẽ bất kỳ hay có thể tác động lên tất cả các bản vẽ đang mở trong phiên làm việc của AutoCAD. Với dự án độc lập, việc phân phối và chia sẻ mã lệnh được thực hiện dễ dàng hơn so với loại dự án nhúng. Dự án độc lập cũng rất thích hợp để lưu trữ, tập hợp thành bộ thư viện để sử dụng trong tất cả các bản vẽ.
Lợi điểm lớn nhất của dự án nhúng là khả năng tự động tải dự án mỗi khi mở bản vẽ. Tuy nhiên, việc sử dụng dự án nhúng cũng Nn chứa nhiều điểm bất lợi, chẳng hạn như kích thước của tệp bản vẽ có chứa dự án nhúng sẽ tăng lên do phải chứa thêm cả phần dự án VBA; hoặc khi muốn hiệu chỉnh dự án VBA, người lập trình phải tìm lại tất cả các tệp bản vẽ có chứa dự án nhúng để thay đổi cho từng tệp một, một công việc nhàm chán!
Tuy không có được khả năng tự động tải vào như dự án nhúng, nhưng loại dự án độc lập thường được sử dụng nhiều hơn bởi các thao tác tải một dự án VBA vào trong AutoCAD thường rất đơn giản và nhanh chóng. Chỉ có một điểm lưu ý là khi làm việc với bản vẽ ở nhiều máy tính khác nhau thì cần phải mang theo cả tệp bản vẽ lẫn tệp dự án VBA độc lập, còn với dự án VBA nhúng thì ta chỉ cần mang theo tệp bản vẽ là đủ.
Cấu trúc của một dự án VBA trong AutoCAD cũng tương tự như trong Excel. Ngoài các thành phần như UserForm, mô-đun chuNn, mô-đun lớp, dự án VBA trong AutoCAD còn có một thành phần khác là: AutoCAD Objects – Các đối tượng của AutoCAD. Trong thành phần này có chứa mô-đun ThisDrawing, đây chính là một đối tượng đại diện cho bản vẽ hiện hành của AutoCAD. Như vậy trong một dự án VBA của AutoCAD có 4 thành phần có thể chứa mã lệnh là: Userform, mô-đun chuNn, mô-đun ThisDrawing và mô-đun lớp.
Hình II-73: Thành phần AutoCAD Objects và mô-đun ThisDrawing của dự án VBA trong AutoCAD
2.2. Trình quản lý dự án VBA
Với AutoCAD, quá trình quản lý các dự án VBA được thực hiện rất dễ dàng thông qua trình quản lý dự án VBA – VBA Manager. Để hiển thị cửa sổ VBA Manager, chọn trình đơn ToolMacroVBA Manager…(hoặc gọi lệnhVBAMAN từ dòng lệnh của AutoCAD).
http://www.ebook.edu.vn
Hình II-74: Trình quản lý dự án VBA – VBA Manager.
Ý nghĩa của từng thành phần trong cửa sổ VBA Manager:
1. Danh sách các bản vẽ hiện có trong AutoCAD (sử dụng đến danh sách này khi muốn nhúng một dự án nào đó vào trong một bản vẽ hoặc tách dự án ra khỏi bản vẽ đó).
2. Danh sách các dự án VBA hiện đang được tải trong VBAIDE. Các dự án VBA, khi đã được tải vào VBAIDE (các dự án có trong danh sách) thì người dùng có thể sử dụng các tính năng có trong dự án, hiệu chỉnh dự án và tạo thêm các tính năng mới khi cần.
3. Tạo một dự án VBA mới, mặc định, dự án VBA mới được tạo là dự án độc lập
4. Lưu dự án VBA với tên khác (chỉ có hiệu lực với các dự án độc lập). Dự án được lưu với tên khác này là dự án được chọn trong danh sách .
5. Tải một dự án độc lập vào VBAIDE. Người dùng sẽ được yêu cầu chọn một tệp dự án VBA (*.DVB) để tải vào VBAIDE.
6. Đóng dự án độc lập khỏi VBAIDE. Người dùng không thể truy cập đến các thành phần trong dự án nữa (tuy nhiên tệp chứa dự án đó vẫn còn tồn tại trong máy tính).
7. Nhúng một dự án VBA vào một bản vẽ định trước. Bản vẽ được định trước chính là bản vẽ được lựa chọn trong danh sách .
8. Tách dự án nhúng ra khỏi bản vẽ được lựa chọn trong danh sách (chỉ có hiệu lực khi bản vẽ có chứa dự án nhúng). Khi chọn nút này, người dùng sẽ được yêu cầu lưu dự án được tách ra thành một dự án độc lập. Nếu không lưu, dự án sẽ được xoá khỏi tệp bản vẽ.
9. Hiển thị trình quản lý Macro trong AutoCAD.
10. Hiển thị VBAIDE, là nơi sẽ thực hiện quá trình thiết kế mã lệnh và giao diện của chương trình.
2.2.1. Tạo mới, Mở và Lưu dự án VBA
to mi d" án VBA 1. Mở cửa sổVBA Manager.
2. Chọn nút lệnhNew.
Mặc định, dự án mới được tạo sẽ là một dự án độc lập, có tên là ACADProject.
Sau khi tạo mới dự án, ta có thể nhúng dự án vào một bản vẽ nào đó hoặc có thể lưu ra một tệp riêng thành dự án độc lập tuỳ thuộc vào mục đích sử dụng.
Ngoài ra người dùng có thể sử dụng lệnhVBANEW từ dòng lệnh của AutoCAD để tạo mới dự án VBA.
m?/ti d" án VBA 1. Mở cửa sổVBA Manager.
2. Chọn nút lệnhLoadHiển thị hộp thoại mở dự án VBA
Hình II-75: Hộp thoại mở dự án VBA.
3. Chọn dự án cần mở và chọnOpen.
Ngoài ra người dùng có thể sử dụng lệnh VBALOAD từ dòng lệnh của AutoCAD để tải dự án VBA.
lu d" án VBA