Mục lục
Lời mở đầu…………………………………………………………………………………………..2
PHẦN 1:XÂY DỰNG MÔ HÌNH 3D BẰNG VBA-AUTOCAD:
Chương 1:TỔNG QUAN
1.Các nghiên cứu về xây dựng mô hình 3D qua VBA-AutoCad………..…………3
2. Ưu và nhược điểm của các nghiên cứu này………………………………………….3
Chương 2: CƠ SỞ DỮ LIỆU AUTOCAD VÀ VBA-AUTOCAD
1. Tổng quan về cơ sở dữ liệu AutoCad……………………………………….………….5
2. Những đối tượng cơ sở dữ liệu quan trọng…..………………………….………….6
3. Tạo ra đối tuợng trong AutoCad………..……………………………………………….6
4. Tổng quan về VBA-AutoCad…… ………..……………………………………………….8
Chương 3: THUẬT TOÁN TẠO MÔ HÌNH 3D CHO ĐƯỜNG ĐỒNG MỨC
1.Lấy dữ liệu từ bản vẽ AutoCad…………………………………………………………..10
a.Thuật toán tìm cao độ cho 1 điểm bất kỳ thuộc đường đồng mức….….11
b.Thuật toán tìm cao độ của các điểm thuộc lưới….……………………….…...11
b1.Thuật toán chia lưới……………………………………………………………………….11
b2. Thuật toán lấy cao độ của 1 điểm bất kỳ có tọa độ (X,Y)……..……….…12
2.Tạo mô hình 3D……………..…………………………………………………………..…...12
Chương 4: THUẬT TOÁN VẼ MẶT CẮT DỌC TUYẾN………………………...14
PHẦN 2:CỤ THỂ HÓA MÔ HÌNH 3D BẰNG MATHLAB……………………...16
Tài liệu tham khảo…………………..…………………….…………………………………...18
Phụ lục……………………………………………………………………………………………..19
1
LỜI MỞ ĐẦU
Ngày nay môi trường AutoCad đã trở nên quen thuộc trong công việc
thiết kế của người kỹ sư xây dựng . Những ứng dụng ngay trên môi trường
AutoCad sẽ là rất hiệu quả và dễ sử dụng cho người kỹ sư trong quá trình
thiết kế.
Việc phát triển ứng dụng trên môi trường AutoCad đã được các công ty
tin học xây dựng khai thác và ứng dụng có hiệu quả trên thực tế.Trong thiết
kế thủy lợi và cầu đường,NovaCad của Hài Hòa đã trở nên hữu ích và tiện
dụng trong quá trình tính toán và thiết kế.
Với yêu cầu đặt ra là chỉ bằng những macro đơn giản viết bằng VBA-
Autocad,chương trình sẽ tự động xây dựng mô hình 3D từ những đường đồng
mức,và vẽ mặt cắt dọc tuyến.Qua đó,người sinh viên khi làm đồ án có thể dễ
dàng nắm bắt được địa hình nơi mình thiết kế công trình,và nhanh chóng
chọn lựa tuyến công trình hợp lý.
Nội dung cơ bản của nghiên cứu sẽ gồm các phần chính như sau:
Phần 1:Nghiên cứu VBA-AutoCad của Nguyễn Hữu Hân
-Nghiên cứu về cơ sở dữ liệu của AutoCad.
-Nghiên cứu về VBA trong môi trường AutoCad.
-Xây dựng thuật toán tạo mô hình 3D từ các đường đồng mức.
-Xây dựng thuật toán vẽ mặt cắt dọc tuyến.
Phần 2:Nghiên cứu MathLab của Nguyễn Minh Thương
-Sử dụng MathLab để cụ thể hóa mô hình 3D.
Đề tài có tham khảo và sử dụng thuật toán chia lưới của đề tài khoa
học sinh viên 2000 “Xây dựng bản đồ số”-Thư viện trường ĐHXD.
Ngoài ra, quá trình nghiên cứu của nhóm còn được sự giúp đỡ và
hướng dẫn tận tình của hai thầy hướng dẫn:GS.TS Huỳnh Bá Kỹ Thuật và
Th.S Hoàng Chí Nhân.
2
PHẦN 1:
XÂY DỰNG MÔ HÌNH 3D BẰNG VBA-AUTOCAD
CHƯƠNG 1:TỔNG QUAN
1.CÁC NGHIÊN CỨU VỀ XÂY DỰNG MÔ HÌNH 3D QUA VBA-AUTOCAD
Xây dựng mô hình 3D từ đường đồng mức là một trong những ứng
dụng về GIS(Geographic Information System), đây là một hướng đi rất phổ
biến của các nhà lập trình chuyên nghiệp trong lĩnh vực kỹ thuật.Các ứng
dụng về GIS đã phổ biến trên thế giới và ở nước ta có thể nói đến là: ứng
dụng về bản đồ số,hệ thống thông tin định vị toàn cầu GMS…vv…
Ở nước ta,các ứng dụng về GIS được phát triển khá đa dạng.Nhiều
công ty phần mềm đã đi theo hướng này và đạt được những thành công đáng
kể trên thị trường.Có thể nói đến là:VietCad,Hài Hòa,Trung tâm phần mềm
thủy lợi….vv
Trong đó,Hài Hòa chủ yếu nghiên cứu và sản xuất các phần mềm tự
động hóa thiết kế trong xây dựng bao gồm xử lý số liệu khâu khảo sát địa
hình, địa chất,xử lý đồ họa ba chiều ,thiết kế đường bộ….vv.Công ty đã xây
dựng và phát triển nhiều module chương trình cho các công ty nước ngoài
như ViaNova(công ty chuyên phát triển các phần mềm trong thiết kế đường
và cầu),trong đó có chương trình thiết kế đường NovaCad
Trong nghiên cứu khoa học của sinh viên,các nghiên cứu về vấn đề
này cũng rất đa dạng. Đó là các chương trình về xây dựng bản đồ số,hay
chương trình tự động thiết kế đường…vv.Về VBA-AutoCad có những nghiên
cứu về xây dựng chương trình tính toán bê tông cốt thép trên môi trường
AutoCAD…vv
2. ƯU VÀ NHƯỢC ĐIỂM CỦA CÁC NGHIÊN CỨU NÀY:
a.Ưu điểm:
-Các chương trình của các công ty chuyên nghiệp rất hoàn thiện trong việc
tính toán và xử lý số liệu,kết xuất bản vẽ.Uy tín của các chương trình này
được đảm bảo bởi số lượng khách hành sử dụng các sản phẩm này.
-Các nghiên cứu của sinh viên rất hay trong việc đưa ra những ý tưởng
mới.Chương trình thường nhỏ gọn, dễ dùng,tiện cho việc nghiên cứu,học tập
trong môi trường sinh viên.
b.Nhược điểm:
-Các chương trình của các công ty về lĩnh vực này thường là những module
chương trình lớn,có bản quyền. Ứng dụng trong thực tế cao nhưng ứng dụng
3
trong môi trường học tập của sinh viên là chưa thực tế,hoặc là khó đến tay
người sinh viên một cách hợp pháp.Các công ty không cho phép chế độ mã
nguồn mở,không thích ứng với sự khám phá và ham hiểu biết của sinh
viên.Những đồ án trong phạm vi nhà trường không cần dùng đến những ứng
dụng phức tạp của các công ty phần mềm.
-Các nghiên cứu của sinh viên về lĩnh vực này chỉ giới hạn ở việc load dữ liệu
từ file text,không trực quan và không thực tế trong quá trình làm đồ án(trong
quá trình làm đồ án,người sinh viên được giao bình đồ khu vực qua bản vẽ
AutoCad).
4
CHƯƠNG 2:CƠ SỞ DỮ LIỆU AUTOCAD
1.TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU AUTOCAD
Một bản vẽ AutoCAD là một tập hợp những đối tượng cất giữ trong cơ sở
dữ liệu. Một vài đối tượng cơ sở dữ liệu cơ bản là những thực thể, bảng
symbol và từ điển. Những thực thể là một loại đối tượng cơ sở dữ liệu của
một đối tượng đồ họa trong một bản vẽ AutoCAD. Những đối tượng line,
circle, arc, text, solid, regions, splines và ellipses là những ví dụ của những
thực thể. Nguời dùng có thể nhìn thấy thực thể trên màn ảnh và có thể thao
tác nó.
Những bảng symbol và từ điển là những nơi chứa dùng để lưu trữ những
cơ sở dữ liệu của đối tượng. Cả hai đối tượng chứa này đều quản lý các tên
symbol dưới dạng một chuỗi văn bản trong cơ sở dữ liệu của đối tượng. Một
cơ sở dữ liệu AutoCAD bao gồm những bảng symbol cố định, mà mỗi bản ghi
của nó bao gồm những instances của một lớp riêng biệt. Bạn không thể thêm
một bảng symbol mới vào cơ sở dữ liệu. Chẳng hạn như những bảng symbol
là bảng layer (AcDbLayerTable) và block (AcDbBlockTable). Tất cả các thực
thể AutoCAD đều được chứa trong những bản ghi block.
Những từ điển cung cấp một khả năng quản lý đối tượng linh hoạt hơn
bảng symbol. Một từ điển có thể chứa đựng bất kỳ đối tượng nào của kiểu
AcDbObject hoặc phân lớp của nó. Cở sở dữ liệu AutoCAD tự động tạo ra một
từ điển dùng để quản lý tên đối tượng khi nó tạo ra một bản vẽ mới. Từ điển
này có thể được xem như quản lý "mục lục" cho tất cả các từ điển liên kết với
cơ sở dữ liệu. Bạn có thể tạo ra những từ điển mới bên trong từ điển này và
thêm những đối tượng cơ sở dữ liệu mới vào chúng.
5
AutoCAD có thể nạp nhiều cơ sở dữ liệu trong một phiên chạy riêng lẻ. Mỗi
đối tượng trong một phiên chạy có một handles và một đối tượng ID. Một
handles duy nhất xác định đối tượng bên trong phạm vi của một cơ sở dữ liệu
riêng biệt, ngược lại một đối tượng ID duy nhất xác định đối tượng trong tất
cả các cơ sở dữ liệu đuợc nạp. Một đối tượng ID vẫn chỉ tồn tại trong thời
gian nó được sử dụng, nhưng một handles luôn được lưu giữ với bản vẽ. Trái
ngược với đối tượng ID, một handles không chắc chắn là duy nhất khi nhiều
cơ sở dữ liệu được nạp trong một phiên chạy của AutoCAD.
2. NHỮNG ĐỐi TƯỢNG CƠ SỞ DỮ LIỆU QUAN TRỌNG
Khi những đối tượng được tạo ra trong AutoCAD, chúng được thêm
vào đối tượng chưa thích hợp của chúng trong cơ sở dữ liệu. Những thực thể
được thêm vào những bản ghi trong bảng block. Những bản ghi bảng symbol
được thêm vào những bảng symbol thích hợp. Tất cả các đối tượng khác đều
được thêm vào từ điển quản lý tên đối tượng hoặc được quản lý bởi đối
tượng khác (và cuối cùng vẫn thêm vào từ điển quản lý tên đối tượng), hoặc
vào một từ điển mở rộng.
3. TẠO RA ĐỐi TƯỢNG TRONG AUTOCAD
Mục này mô tả cách tạo ra đối tượng line, circle, layer và group trong
AutoCAD và chỉ ra cách AutoCAD thêm những đối tượng này vào cơ sở dữ
liệu. Trước hết, đòi hỏi người dùng tạo ra một đối tượng line trong không gian
mô hình với lệnh sau :
line 4,2 10,7
Trong cơ sơ dữ liệu, AutoCAD tạo ra một instance của lớp AcDbLine và sau đó
cất giữ nó trong bản ghi bảng block trong không gian mô hình và nó được thể
hiện trong minh họa sau:
Khi bạn kích hoạt AutoCAD lần đầu thì cơ sở dữ liệu trong trạng thái
mặc định của nó, những thực thể được thêm vào không gian mô hình (không
gian chính trong AutoCAD), được sử dụng cho hình học và đồ họa. Không
gian giấy vẽ được dùng để hỗ trợ trình bày bản vẽ như sheet outlines, khung
tiêu đề và văn bản annotational. Những lệnh tạo thành thực thể trong
6
AutoCAD (trong trường hợp này là line) sẽ thêm thực thể vào cơ sở dữ liệu
hiện thời cũng như vào khối không gian mô hình.
Tiếp theo, giả sử người dùng tạo ra một đối tượng circle với lệnh sau:
circle 9,3 2
Một lần nữa, AutoCAD tạo ra một instance của thực thể thích hợp
(AcDbCircle) và thêm nó vào bản ghi bảng block trong không gian mô hình.
Tiếp theo, người dùng tạo ra một lớp: layer _make mylayer
AutoCAD tạo ra một bản ghi layer mới để lưu giữ lớp và sau đó thêm nó vào
bảng layer.
7
Cuối cùng, người dùng nhóm tất cả các thực thể lại với nhau: group
3,2 9,3
AutoCAD tạo ra một nhóm đối tượng mới và thêm nó vào từ điển Group, mà
được chứa trong từ điển quản lý tên đối tượng.Nhóm mới này chứa một danh
sách các đối tượng IDs của những đối tượng mà được tạo nên nhóm.
4.TỔNG QUAN VỀ VBA-AUTOCAD:
Một đề án AutoCad Vba là một tập hợp của module mã lệnh,module
lớp và form ,chúng cùng nhau làm việc để thực hiện nhiệm vụ được giao. Đề
án có thể được lưu giữ ngay bên trong của bản vẽ Cad ,hay là file độc lập.
“Embedded projects” là những đề án được lưu giữ ngay trong bản vẽ
Cad.Những đề án kiểu này được nạp một cách tự động mỗi khi mở bản vẽ.Vì
thế ,việc phân bổ các đề án dạng này là vô cùng thuận tiện.“Embedded
projects” bị giới hạn và không thể mở hay đóng bản vẽ Cad bởi vì chúng chỉ
thực hiện chức năng trong bản vẽ mà chúng cư trú.Người dùng các
“Embedded projects” không thể yêu cầu tìm và đọc những file đề án trước khi
chúng chạy chương trình.Tất nhiên người sử dụng không cần phải nhớ để nạp
đề án trước khi mở bản vẽ,vì đơn giản nó đã được nạp tự động rồi.
“Global projects“được lưu giữ trong những file độc lập và linh hoạt
hơn bởi vì chúng có thể làm việc trong bản vẽ,mở và đóng bất kỳ một bản vẽ
nào,nhưng không thể tự động nạp khi bản vẽ được mở. Người sử dụng phải
biết được file đề án bao gồm macro mà họ cần và sao đó nạp file đề án này
trước khi chúng có thể chạy macro.Tuy nhiên,”global projects” dễ dàng hơn
trong việc chia sẻ với những người dùng khác,và chúng tạo thành các thư
viện phong phú cho những macro dùng chung.
Bạn có thể nhìn thấy tất cả các đề án VBA được nạp trong phiên làm
việc hiện thời của AutoCad bằng việc sử dụng công cụ VBA Manager.Nó là
một công cụ của AutoCad cho phép bạn nạp,không nạp,ghi,tạo các đề án VBA
8
9
Duyệt các đường polyline
và Spline trong bản vẽ
Tương ứng với khoảng cách
nhỏ nhất là Text cần tìm
( giá trị cao độ)