Những ví dụ này giúp ta hình dung được cách thức để kết hợp tính đa năng của môi trường lập trình Visual Basic for Applications với sức mạnh của giao tiếp AutoCAD ActiveX để tạo ra nhữ[r]
(1)M
MỞỞ ĐĐẦẦUU
Trong chương này
Tổng quan công nghệ AutoCAD ActiveX
Chương trình bày khái niệm nhằm làm rõ đối tượng AutoCAD thông qua giao diện ActiveX lập trình đối tượng thơng qua môi trường phát triển ứng dụng Visual Basic for Application (VBA) Ngồi ra, chương cịn có phần giới thiệu loại tài liệu mã ví dụ dùng AutoCAD ActiveX VBA
Tổ chức sách Tìm mã lệnh ví dụ
Ưu điểm kết hợp AutoCAD ActiveX VBA Tổng quan giao diện
(2)1 Tổng quan về công nghệ AutoCAD ActiveX
AutoCAD ActiveX đưa cấu để lập trình điều khiển AutoCAD từ bên ngồi AutoCAD Q trình thực cách “trưng bày” tất đối tượng AutoCAD với “thế giới bên ngồi” Khi đó, đối tượng AutoCAD truy cập thơng qua nhiều ngơn ngữ lập trình chương trình khác Microsoft® Word VBA Excel VBA
Có hai ưu điểm bật sử dụng giao tiếp ActiveX cho AutoCAD:
Khả lập trình truy cập vào vẽ AutoCAD mở rộng cho nhiều môi trường lập trình khác Trước có ActiveX Automation, người lập trình bị giới hạn mơi trường AutoLISP C++
Khả chia sẻ liệu với ứng dụng Windows® khác, chẳng hạn Microsoft Excel® Word®, thực dễ dàng nhiều
1.1 Tổng quan về đối tượng AutoCAD ActiveX
Đối tượng tảng xây dựng nên ứng dụng ActiveX Mỗi đối tượng AutoCAD ActiveX thân phần AutoCAD Có nhiều loại đối tượng khác giao tiếp AutoCAD ActiveX Chẳng hạn như:
Các đối tượng đồ họa: line, arc, text, dimension…
Thiết lập định dạng: linetype, dimension style…
Cấu trúc tổ chức: layer, group, block…
Đối tượng liên quan đến hiển thị vẽ: view, viewport,…
(3)
2 Tổng quan về giao diện AutoCAD Visual Basic for Applications (VBA)
Microsoft VBA mơi trường lập trình hướng đối tượng có khả phát triển ứng dụng mạnh mẽ với tính phong phú tương tự Visual Basic (VB) Điểm khác biệt VBA VB VBA thực thi tiến trình ứng dụng AutoCAD đưa môi trường phát triển ứng dụng thơng minh nhanh chóng bên AutoCAD
VBA có khả tích hợp với ứng dụng có khả lập trình VBA khác Điều có nghĩa sử dụng thư viện đối tượng ứng dụng khác, AutoCAD Automation Controller1 cho ứng dụng khác Microsoft Word Excel
Có bốn ưu điểm sử dụng VBA AutoCAD:
Ngơn ngữ lập trình Visual Basic dễ học dễ sử dụng
VBA thực thi tiến trình với AutoCAD, chương trình có tốc độ thực thi nhanh
Xây dựng giao diện hộp thoại nhanh chóng hiệu Điều cho phép người lập trình tạo mẫu thử chương trình nhận phản hồi nhanh chóng q trình thiết kế
Dự án phân phối riêng nhúng vẽ Khả cho phép người lập trình phân phối ứng dụng cách linh hoạt
2.1 Cách thức thực thi của VBA AutoCAD
VBA gửi thông điệp cho AutoCAD thông qua giao tiếp AutoCAD ActiveX Automation AutoCAD VBA cho phép môi trường VBA thực thi đồng thời với AutoCAD cung cấp khả lập trình điều khiển AutoCAD thông qua giao tiếp ActiveX Automation Bộ đôi AutoCAD, ActiveX Automation VBA, tạo giao diện lập trình mạnh mẽ khơng q trình xử lý đối tượng AutoCAD mà trình gửi liệu nhận liệu từ ứng dụng khác Có ba yếu tố cấu thành giao diện lập trình ActiveX VBA AutoCAD Yếu tố thân AutoCAD với tập đối tượng vơ phong phú, đóng gói tất thực thể, liệu dòng lệnh AutoCAD Do AutoCAD ứng dụng thiết kế với cấu trúc mở, với nhiều tầng giao diện khác nên quen thuộc với khả AutoCAD, ta lập trình VBA hiệu nhiều Người lập trình với AutoLISP® thường hiểu
rõ cấu trúc AutoCAD Tuy nhiên, lập trình hướng đối tượng VBA có nhiều điểm khác so với AutoLISP®
1Automation Controller: ngơn ngữ lập trình, chẳng hạn như VBA, có khả năng hỗ trợ công nghệ
Automation Microsoft Một ứng dụng lập trình sử dụng Automation Controller
(4)Yếu tố thứ hai giao tiếp AutoCAD ActiveX Automation trình hình thành thông điệp (hay giao tiếp) với đối tượng AutoCAD Người lập trình VBA cần phải có kiến thức ActiveX Automation Ta tìm hiểu thêm giao tiếp AutoCAD ActiveX Automation “ActiveX and
VBA Reference” Ngay người lập trình VB kinh nghiệm nhận thấy
rằng kiến thức giao tiếp AutoCAD ActiveX Automation vơ giá để hiểu rõ phát triển ứng dụng AutoCAD VBA
Yếu tố thứ ba mơi trường lập trình VBA với hệ thống đối tượng, từ khóa, số,… cung cấp khả lập trình, điều khiển, gỡ lỗi thực thi ứng dụng Microsoft cung cấp công cụ trợ giúp cho VBA bên AutoCAD VBA truy cập trực tiếp VBA IDE cách sau:
Nhấn phím F1 bàn phím
Chọn mục Help từ trình đơn VBA IDE
Bấm chuột vào biểu tượng dấu hỏi công cụ VBA IDE 2.2 Phụ thuộc hạn chế sử dụng AutoCAD VBA
Để đảm bảo làm việc bình thường ứng dụng AutoCAD Active VBA cần phải đảm bảo hệ thống có điều kiện sau:
Windows NT® 4.0
Yêu cầu phải có Windows NT4.0 Service Pack để chạy AutoCAD ActiveX VBA
Windows® 95 Windows 98
Khơng có u cầu đặc biệt
Cài đặt, Cài đặt lại Dỡ bỏ Microsoft Office ứng dụng VBA khác
Nếu ta cài đặt, cài đặt lại dỡ bỏ Microsoft Office ứng dụng VBA khác sau cài đặt AutoCAD, cần phải cài đặt lại AutoCAD Đương nhiên, sau cài đặt AutoCAD, cần phải khởi động lại hệ thống
3 Ưu điểm của sự kết hợp AutoCAD ActiveX VBA
Giao tiếp AutoCAD ActiveX/VBA thể nhiều điểm bật so với mơi trường lập trình AutoCAD API khác:
Tốc độ
Do thực thi tiến trình với VBA nên ứng dụng ActiveX nhanh so với ứng dụng AutoLISP ADS
Dễ sử dụng
(5) Khả hoạt động liên thông với Windows
ActiveX VBA thiết kế để sử dụng với ứng dụng Windows khác cung cấp khả giao tiếp thông tin với ứng dụng khác
Tạo mẫu nhanh
Khả xây dựng giao diện nhanh VBA mơi trường hồn hảo để xây dựng ứng dụng mẫu, ứng dụng phát triển ngôn ngữ khác
Cơ sở lập trình
Trên khắp giới có hàng triệu lập trình viên Visual Basic Cơng nghệ AutoCAD ActiveX VBA mở khả tùy biến phát triển ứng dụng AutoCAD cho lập trình viên học Visual Basic tương lai
4 Tổ chức của cuốn sách
Cuốn sách cung cấp thông tin cách phát triển ứng dụng ActiveX VBA cho AutoCAD 2000 Thông tin chi tiết ứng dụng phát triển sử dụng VBA đề cập chương - “LÀM QUEN VỚI VBA” chương 11 –
“PHÁT TRIỂN ỨNG DỤNG BẰNG VBA” Các lập trình viên sử dụng ActiveX từ
một mơi trường phát triển khác với VBA bỏ qua hai chương Tuy nhiên, lưu ý mã ví dụ sách trình bày mơi trường VBA Bài tập thực hành trình bày chương 13 – “THIẾT KẾ ĐƯỜNG ĐI DẠO
TRONG VƯỜN - MỘT VÍ DỤ VỀ ActiveX/VBA” Bài tập hướng đến
người học thông qua việc tạo chương trình vẽ đường dạo vườn AutoCAD sử dụng ActiveX VBA
Phụ lục B – “CHUYỂN ĐỔI TỪ AutoCAD PHIÊN BẢN 14.01” tổng kết thay đổi AutoCAD ActiveX VBA kể từ AutoCAD phiên 14.01
5 Tìm mã lệnh ví dụ
Có 800 chương trình VBA sách tài liệu “ActiveX and VBA
Reference” minh họa cách sử dụng phương thức, thuộc tính kiện
ActiveX
Rất nhiều ứng dụng mẫu lưu thư mục Sample AutoCAD Các ứng dụng minh họa nhiều tính khác nhau, từ việc xuất liệu vẽ AutoCAD sang bảng tính Excel tới việc vẽ thực phép phân tích phức tạp cần trục tháp Những ví dụ giúp ta hình dung cách thức để kết hợp tính đa mơi trường lập trình Visual Basic for Applications với sức mạnh giao tiếp AutoCAD ActiveX để tạo ứng dụng có tính tùy biến cao 5.1 Thực thi ứng dụng mẫu
Tất mã lệnh ví dụ sách “ActiveX and VBA
Reference” chép trực tiếp từ tệp trợ giúp sang môi trường
(6)AutoCAD phải vẽ trống khơng gian mơ hình Ngồi ra, mã sách có tệp SampleCode.dvb Events.dvb thư mục Sample
Thực thi ví dụ
1 Sao chép ví dụ từ tệp trợ giúp sang mơ-đun mã lệnh VBA cịn trống
2 Chắc chắn AutoCAD có vẽ trống mở chế độ khơng gian mơ hình
3 Mở hộp thoại Macros cách gõ lệnh VBARUN
4 Lựa chọn Macro nhấn Run
Thông tin thêm việc thực thi Macro1 hộp thoại Macro thể phần “Thực thi Macro” trang 32
5.2 Xem ứng dụng mẫu
Có 21 ứng dụng mẫu thư mục Sample Bảng sau trình bày tên, mơ tả vị trí tệp mã nguồn cho ứng dụng Rất nhiều ứng dụng có thêm tệp hỗ trợ, chứa thư mục với tệp mã nguồn Ngồi cịn có tệp readme.txt mơ tả ứng dụng cách thực thi
Ứng dụng mẫu ActiveX VBA
Tên Mô tả Đường dẫn
Dầm chữ I
3D Tthay ạo mđổi kích thột hình chước mữ I 3D ột cách linh đặc hoạt
/Sample/VBA/ibeam3d.dvb
Từ đồ
sang khối cầu
Tạo hình nhiều đường 3D khối cầu từ đường 2D ban đầu
/Sample/VBA/Map2Globe.dwg
Tuỳ biến
trình đơn Dùng MenuGroup MenuBar đối tượng /Sample/VBA/Menu.dvb Theo dõi đối
tượng Stheo dõi sử dụng khự thay ối liđổệu mi rđốộng i để tượng
/Sample/VBA/ObjectTracker.dvb
Lưu thành phiên 12
Lưu tệp đồ hoạ
AutoCAD2000 vào AutoCAD phiên 12
/Sample/VBA/SaveAsR12.dvb
Tháp Vẽ cần trục tháp thực /Sample/VBA/Tower.dwg
1Macro: một loại chương trình VBA được nạp vào AutoCAD, chi tiết vềMacro xem
(7)Ứng dụng mẫu ActiveX VBA
Tên Mô tả Đường dẫn
các phép phân tích Chiều cao
chữ đốThay i vớđổi tấi toàn bt chộữ chi bều cao cản vủẽa ch ữ /Sample/VBA/ Lệnh gọi
ngoài Visual Basic Một Macro VBA gọi mởộ DLL t chứđc nã ăng
đăng kí
/Sample/ActiveX/ExtrnCall/ExternalCall.dvb
Tiện ích Thực kết nối AutoCAD với
một sở liệu /Sample/ActiveX/Facility/Setup/Setup.exe Tuỳ biến
VBA IDE TVBA IDE cho phép bạo công cạn tụ mải ột dự
án mang tới VBA Manager, VBA Macros hộp thoại VBA Options từ IDE
/Sample/VBA/VBAIDEMenu/acad.dvb
Xuất thuộc tính
Xuất khối liệu AutoCAD đưa
vào bảng tính /Sample/ActiveX/ExtAttr/ExtAttr.xls
Xuất thuộc tính tệp văn
Chuyển liệu đặc thù thành văn Microsoft Word, bảng tính Excel biểu đồ
/Sample/VBA/attext.dvb
Liên kết với Excel
Chỉ cách chuyển liệu từ
AutoCAD sang Excel ngược lại /Sample/VBA/ExcelLink.dvb Thay
khối
Thay khối chèn
trong vẽ với quy định khác /Sample/VBA/BlockReplace.dvb Thay đổi độ
rộng Thay đường bđổi độ rộảng cn vẽủ a toàn /Sample/VBA/chplywid.dvb Vẽđường
tâm Velip hình trịn ẽđường trục cho hình cung, /Sample/VBA/cntrline.dvb Vẽđường Chỉ cách vẽ đường từ
cửa sổ VBA /Sample/VBA/drawline.dvb
Mã ví dụ Tất mã nguồn mẫu, trừ
kiện ví dụ, sách hướng dẫn tài liệu tham khảo ActiveX and VBA Reference
/Sample/VBA/Example_Code.dvb
Sự kiện ví dụ Các kiện ví dụ ActiveX
and VBA Referene /Sample/VBA/Example_Events.dvb
Các đặc tính khác
Minh họa hàm API Automation