Tải bản đầy đủ (.pdf) (7 trang)

Phát triển AutoCAD bằng ActiveX & VBA - Chương mở đầu pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (728.14 KB, 7 trang )



Phát triển AutoCAD bằng ActiveX và VBA

|
|


1
1
9
9
M
M




Đ
Đ


U
U





































Trong chương này

 Tổng quan về công nghệ
AutoCAD ActiveX

Chương này trình bày các khái niệm nhằm làm rõ
các đối tượng AutoCAD thông qua giao diện
ActiveX và lập trình trên các đối tượng đó thông qua
môi trường phát triển ứng dụng Visual Basic for
Application (VBA). Ngoài ra, chương này còn có
phần giới thiệu về các loại tài liệu và mã ví dụ dùng
trong AutoCAD ActiveX và VBA.
 Tổ chức của cuốn sách
 Tìm mã lệnh ví dụ
 Ưu điểm của sự kết hợp
AutoCAD ActiveX và VBA
 Tổng quan về giao diện
AutoCAD VBA

2
2
0
0


|
| Mở đầu
1. Tổng quan về công nghệ AutoCAD ActiveX
AutoCAD ActiveX đưa ra cơ cấu để lập trình điều khiển AutoCAD từ cả trong và
bên ngoài AutoCAD. Quá trình này được thực hiện bằng cách “trưng bày” tất cả các
đối tượng AutoCAD với “thế giới bên ngoài”. Khi đó, các đối tượng trong
AutoCAD có thể được truy cập thông qua nhiều ngôn ngữ lập trình và các chương

trình khác như Microsoft
®
Word VBA hoặc Excel VBA.

Có hai ưu điểm nổi bật khi sử dụng giao tiếp ActiveX cho AutoCAD:
 Khả năng lập trình truy cập vào bản vẽ AutoCAD được mở rộng cho nhiều
môi trường lập trình khác nhau. Trước khi có ActiveX Automation, người
lập trình bị giới hạn chỉ trong môi trường AutoLISP hoặc C++.
 Khả năng chia sẻ dữ liệu với các ứng dụng Windows® khác, chẳng hạn như
Microsoft Excel
®
và Word
®
, được thực hiện dễ dàng hơn rất nhiều.
1.1. Tổng quan về các đối tượng AutoCAD ActiveX
Đối tượng chính là nền tảng xây dựng nên ứng dụng ActiveX. Mỗi đối tượng trong
AutoCAD ActiveX là hiện thân một phần của AutoCAD. Có rất nhiều loại đối
tượng khác nhau trong 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 về đị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ị bản vẽ: view, viewport,…
 Và ngay cả bản vẽ và bản thân chương trình AutoCAD cũng được xem là
đối tượng.


Phát triển AutoCAD bằng ActiveX và VBA

|
|



2
2
1
1

2. Tổng quan về giao diện AutoCAD Visual Basic
for Applications (VBA)
Microsoft VBA là một môi trường lập trình hướng đối tượng có khả năng phát triển
ứng dụng mạnh mẽ với những tính năng phong phú tương tự như của Visual Basic
(VB). Điểm khác biệt chính giữa VBA và VB là VBA thực thi cùng trong tiến trình
của ứng dụng AutoCAD và đưa ra một môi trường phát triển ứng dụng thông minh
và rất nhanh chóng ngay bên trong AutoCAD.
VBA cũng có khả năng tích hợp với các ứng dụng có khả năng lập trình VBA khác.
Điều đó có nghĩa là khi sử dụng thư viện đối tượng của các ứng dụng khác,
AutoCAD có thể là Automation Controller
1
cho các ứng dụng khác như Microsoft
Word và Excel.
Có bốn ưu điểm chính khi sử dụng VBA trong AutoCAD:
 Ngôn ngữ lập trình Visual Basic rất dễ học và dễ sử dụng.
 VBA thực thi cùng tiến trình với AutoCAD, vì vậy chương trình có tốc độ
thực thi rất nhanh.
 Xây dựng giao diện hộp thoại nhanh chóng và hiệu quả. Điều này cho phép
người lập trình tạo mẫu thử chương trình và nhận được phản hồi nhanh
chóng ngay trong quá trình thiết kế.
 Dự án có thể được phân phối riêng hoặc nhúng trong các bản vẽ. Khả năng
này cho phép người lập trình phân phối ứng dụng một cách linh hoạt.
2.1. Cách thức thực thi của VBA trong 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 và cung cấp khả năng lập trình điều khiển AutoCAD thông qua giao tiếp
ActiveX Automation. Bộ đôi này của AutoCAD, ActiveX Automation và VBA, tạo
ra giao diện lập trình mạnh mẽ không chỉ trong quá trình xử lý các đối tượng
AutoCAD mà còn trong quá trình gửi dữ liệu và nhận dữ liệu từ các ứng dụng khác.
Có ba yếu tố cơ bản cấu thành giao diện lập trình ActiveX và VBA trong
AutoCAD. Yếu tố đầu tiên chính là bản thân AutoCAD với tập đối tượng vô cùng
phong phú, đóng gói tất cả các thực thể, dữ liệu và dòng lệnh AutoCAD. Do
AutoCAD là ứng dụng được thiết kế với cấu trúc mở, với nhiều tầng giao diện khác
nhau nên một khi đã quen thuộc với những khả năng của AutoCAD, ta sẽ lập trình
VBA hiệu quả hơn nhiều. Người đã từng lập trình với AutoLISP
®
thường hiểu rất
rõ cấu trúc của AutoCAD. Tuy nhiên, lập trình hướng đối tượng của VBA vẫn có
nhiều điểm khác so với AutoLISP
®
.

1
Automation Controller: là ngôn ngữ lập trình, chẳng hạn như VBA, có khả năng hỗ trợ công nghệ
Automation của Microsoft. Một ứng dụng khi được lập trình sử dụng Automation Controller có thể
tham khảo đến bất kỳ một thư viện đối tượng nào và có thể cập nhật đến từng đối tượng trong các
thư viện đó chỉ từ một chương trình duy nhất.

2
2
2
2



|
| Mở đầu
Yếu tố thứ hai của giao tiếp AutoCAD ActiveX Automation là quá trình hình thành
các thông điệp (hay các giao tiếp) với các đối tượng AutoCAD. Người lập trình
VBA cần phải có những kiến thức cơ bản về ActiveX Automation. Ta có thể tìm
hiểu thêm về giao tiếp AutoCAD ActiveX Automation trong cuốn “ActiveX and
VBA Reference”. Ngay cả những người lập trình VB kinh nghiệm cũng nhận thấy
rằng những kiến thức về giao tiếp AutoCAD ActiveX Automation là vô giá để có
thể hiểu rõ và phát triển ứng dụng AutoCAD VBA.
Yếu tố thứ ba chính là môi trường lập trình VBA với hệ thống các đối tượng, từ
khóa, hằng số,… cung cấp khả năng lập trình, điều khiển, gỡ lỗi và thực thi ứng
dụng. Microsoft cũng cung cấp công cụ trợ giúp cho VBA ngay bên trong
AutoCAD VBA và có thể truy cập trực tiếp trong VBA IDE bằng một trong các
cách sau:
 Nhấn phím F1 trên bàn phím
 Chọn mục Help từ trình đơn của VBA IDE
 Bấm chuột vào biểu tượng dấu hỏi trên thanh công cụ của VBA IDE
2.2. Phụ thuộc và hạn chế khi sử dụng AutoCAD VBA
Để đảm bảo sự làm việc bình thường của ứng dụng AutoCAD Active và VBA cần
phải đảm bảo hệ thống có các điều kiện sau:
Windows NT® 4.0
Yêu cầu phải có Windows NT4.0 Service Pack 3 để có thể
chạy được AutoCAD ActiveX và VBA
Windows® 95 hoặc Windows 98
Không có yêu cầu đặc biệt nào
Cài đặt, Cài đặt lại hoặc Dỡ bỏ Microsoft Office hoặc các ứng dụng VBA khác
Nếu ta cài đặt, cài đặt lại hoặc dỡ bỏ Microsoft Office hoặc các
ứng dụng VBA khác sau khi cài đặt AutoCAD, thì cần phải cài
đặt lại AutoCAD. Đương nhiên, sau khi 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 và
VBA
Giao tiếp AutoCAD ActiveX/VBA thể hiện nhiều điểm nổi bật so với các môi
trường lập trình AutoCAD API khác:
 Tốc độ
Do thực thi cùng tiến trình với VBA nên ứng dụng ActiveX nhanh hơn so
với ứng dụng AutoLISP và ADS.
 Dễ sử dụng
Ngôn ngữ lập trình và môi trường phát triển ứng dụng rất dễ sử dụng và
được cài đặt sẵn trong AutoCAD.


Phát triển AutoCAD bằng ActiveX và VBA

|
|


2
2
3
3
 Khả năng hoạt động liên thông với Windows
ActiveX và VBA được thiết kế để sử dụng với các ứng dụng Windows khác
và được cung cấp khả năng giao tiếp thông tin với các ứng dụng khác.
 Tạo mẫu nhanh
Khả năng xây dựng giao diện nhanh của VBA là môi trường hoàn hảo để
xây dựng ứng dụng mẫu, ngay cả khi các ứng dụng đó được phát triển bằng
ngôn ngữ khác.

 Cơ sở lập trình
Trên khắp thế giới hiện nay có hàng triệu lập trình viên Visual Basic. Công
nghệ AutoCAD ActiveX và VBA mở ra sự khả năng tùy biến và phát triển
ứng dụng AutoCAD cho những lập trình viên này và những ai sẽ học Visual
Basic trong tương lai.
4. Tổ chức của cuốn sách
Cuốn sách này cung cấp thông tin về cách phát triển ứng dụng ActiveX và VBA
cho AutoCAD 2000. Thông tin chi tiết về các ứng dụng đang phát triển sử dụng
VBA được đề cập trong chương 1 - “LÀM QUEN VỚI VBA” và 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 có thể bỏ qua hai chương này. Tuy nhiên,
hãy lưu ý rằng các mã ví dụ trong sách được trình bày trong môi trường VBA.
Bài tập thực hành được trình bày trong chương 13 – “THIẾT KẾ ĐƯỜNG ĐI DẠO
TRONG VƯỜN - MỘT VÍ DỤ VỀ ActiveX/VBA”. Bài tập này hướng đến những
người mới học thông qua việc tạo chương trình vẽ đường đi dạo trong vườn trong
AutoCAD sử dụng ActiveX và VBA.
Phụ lục B – “CHUYỂN ĐỔI TỪ AutoCAD PHIÊN BẢN 14.01” tổng kết những
thay đổi của AutoCAD ActiveX và VBA kể từ AutoCAD phiên bản 14.01.
5. Tìm mã lệnh ví dụ
Có trên 800 chương trình VBA trong cuốn sách này và tài liệu “ActiveX and VBA
Reference” minh họa cách sử dụng các phương thức, thuộc tính và sự kiện trong
ActiveX.
Rất nhiều những ứng dụng mẫu lưu trong thư mục Sample của AutoCAD. Các ứng
dụng này minh họa rất nhiều tính năng khác nhau, từ việc xuất dữ liệu của bản vẽ
AutoCAD sang bảng tính Excel tới việc vẽ và thực hiện các phép phân tích phức tạp
trên cần trục tháp. 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ững ứng dụng có tính tùy biến cao.
5.1. Thực thi các ứng dụng mẫu
Tất cả các mã lệnh ví dụ trong cuốn sách này và trong “ActiveX and VBA

Reference” có thể được sao chép trực tiếp từ tệp trợ giúp sang môi trường
AutoCAD VBA, sau đó được thực thi với một yêu cầu: bản vẽ hiện hành trong

2
2
4
4


|
| Mở đầu
AutoCAD phải là bản vẽ trống và đang ở trong không gian mô hình. Ngoài ra, mã
trong những cuốn sách có trong tệp SampleCode.dvb và Events.dvb trong 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 rằng AutoCAD có một bản vẽ trống được mở ở chế độ không gian
mô hình.
3 Mở hộp thoại Macros bằng cách gõ lệnh VBARUN.
4 Lựa chọn Macro và nhấn Run.
Thông tin thêm về việc thực thi Macro
1
và hộp thoại Macro được thể hiện trong
phần “Thực thi Macro” trang 32.
5.2. Xem các ứng dụng mẫu
Có 21 ứng dụng mẫu trong thư mục Sample. Bảng sau trình bày tên, mô tả và vị trí
của tệp mã nguồn chính cho mỗi ứng dụng. Rất nhiều ứng dụng có thêm các tệp hỗ
trợ, chứa trong cùng thư mục với tệp mã nguồn chính. Ngoài ra còn có tệp
readme.txt mô tả ứng dụng và cách thực thi.
Ứng dụng mẫu ActiveX và VBA

Tên Mô tả Đường dẫn
Dầm chữ I
3D
Tạo ra một hình chữ I 3D đặc và
thay đổi kích thước một cách linh
hoạt.
/Sample/VBA/ibeam3d.dvb
Từ bản đồ
sang khối
cầu
Tạo ra hình nhiều đường 3D trên
một khối cầu từ các đường 2D
ban đầu.
/Sample/VBA/Map2Globe.dwg
Tuỳ biến
trình đơn
Dùng các đối tượng của
MenuGroup và MenuBar.
/Sample/VBA/Menu.dvb

Theo dõi đối
tượng
Sử dụng khối dữ liệu mở rộng để
theo dõi sự thay đổi của đối
tượng.
/Sample/VBA/ObjectTracker.dvb
Lưu thành
phiên bản
12
Lưu một tệp đồ hoạ của

AutoCAD2000 vào AutoCAD phiên
bản 12.
/Sample/VBA/SaveAsR12.dvb

Tháp Vẽ một cần trục tháp và thực hiện
/Sample/VBA/Tower.dwg

1
Macro: là một loại chương trình VBA được nạp vào trong AutoCAD, chi tiết về Macro xem trong
chương 1 mục “Xử lý Macro”. Trong bản dịch này, do chưa có từ chuyên môn tương đương trong
tiếng Việt, cho nên chúng tôi dùng từ gốc tiếng Anh.


Phát triển AutoCAD bằng ActiveX và VBA

|
|


2
2
5
5
Ứng dụng mẫu ActiveX và VBA
Tên Mô tả Đường dẫn
các phép phân tích.
Chiều cao
chữ
Thay đổi toàn bộ chiều cao của chữ
đối với tất cả chữ trong bản vẽ.

/Sample/VBA/
Lệnh gọi
ngoài
Một Macro VBA gọi một chức năng
ngoài Visual Basic 6 ở DLL đã
đăng kí.
/Sample/ActiveX/ExtrnCall/ExternalCall.dvb
Tiện ích Thực hiện kết nối AutoCAD với
một cơ sở dữ liệu.
/Sample/ActiveX/Facility/Setup/Setup.exe
Tuỳ biến
VBA IDE
Tạo một thanh công cụ mới trong
VBA IDE cho phép bạn tải một dự
án và mang tới VBA Manager, VBA
Macros và hộp thoại VBA Options
từ IDE.
/Sample/VBA/VBAIDEMenu/acad.dvb
Xuất thuộc
tính
Xuất khối dữ liệu AutoCAD và đưa
vào bảng tính.
/Sample/ActiveX/ExtAttr/ExtAttr.xls
Xuất thuộc
tính ra tệp
văn bản
Chuyển các dữ liệu đặc thù thành
văn bản Microsoft Word, bảng tính
Excel và biểu đồ.
/Sample/VBA/attext.dvb


Liên kết với
Excel
Chỉ ra cách chuyển dữ liệu từ
AutoCAD sang Excel và ngược lại.
/Sample/VBA/ExcelLink.dvb
Thay thế
khối
Thay thế các khối đã được chèn
trong bản vẽ với quy định khác.
/Sample/VBA/BlockReplace.dvb
Thay đổi độ
rộng
Thay đổi độ rộng của toàn bộ các
đường trong bản vẽ.
/Sample/VBA/chplywid.dvb
Vẽ đường
tâm
Vẽ đường trục cho các hình cung,
elip và hình tròn.
/Sample/VBA/cntrline.dvb
Vẽ đường Chỉ ra cách vẽ một đường từ một
cửa sổ VBA.
/Sample/VBA/drawline.dvb
Mã ví dụ Tất cả mã nguồn mẫu, trừ các sự
kiện ví dụ, trong sách hướng dẫn
này và tài liệu tham khảo ActiveX
and VBA Reference.
/Sample/VBA/Example_Code.dvb


Sự kiện ví dụ Các sự kiện ví dụ trong ActiveX
and VBA Referene.
/Sample/VBA/Example_Events.dvb
Các đặc tính
khác
Minh họa các hàm API Automation
sử dụng giao diện hộp thoại.
/Sample/VBA/acad_cg.dvb

×