Bài giảng Tin học xây dựng

1. TỔNG QUAN

Hiện nay, máy tính đóng một vai trò quan trọng trong quá trình thiết kế cũng như thi công công trình.

Với vai trò là một công cụ làm việc, nó có thể giúp kỹ sư thiết kế lập bản vẽ nhanh chóng và chính xác

bằng phần mềm AutoCAD, có thể giúp cho việc tính toán mặt cắt và trình bày hồ sơ thiết kế một cách

hiệu quả bằng phần mềm Excel, có thể giúp tính toán kết cấu cầu, cống, nhà cửa, cột tháp rất nhanh

chóng và chính xác bằng phần mềm MIDAS, có thể tính toán kết cấu nền đường, mái dốc bằng phần

mềm GeoSlope hoặc Plaxis, có thể giúp thiết kế đường ô tô bằng phần mềm Nova-TDN, ADS-Road hay

Civil 3D. Đối với kỹ sư thi công, máy tính có thể hỗ trợ việc quản lý dự án bằng phần mềm Project hay

CSM, có thể hỗ trợ tính toán chi phí xây dựng bằng phần mềm dự toán G8 hoặc CE.

Như vậy, để có thể nhanh chóng hoàn thành với chất lượng cao: bài tập lớn, thiết kế môn học, đồ án tốt

nghiệp hay dự án thiết kế hoặc thi công thực tế, bạn cần tận dụng sức mạnh của máy tính thông qua việc

khai thác các phần mềm thay vì vẽ hoặc tính toán thủ công.

Với sự đa dạng của thực tế thiết kế, thi công hay chính trong các bài tập lớn của các bạn khi đang học,

không có một phần mềm nào có thể đáp ứng hay giải quyết được hết mọi vấn đề, do đó, bên trong nhiều

phần mềm, ngoài những tính năng có sẵn giúp bạn giải quyết ngay lập tức các vấn đề chính, chúng còn

cho phép bạn tự xây dựng những tính năng mới với công sức lập trình ít nhất, hiệu quả cao nhất, để giải

quyết các vấn đề phát sinh mà bạn gặp phải trong quá trình làm việc và học tập của cá nhân. Điển hình

là phần mềm AutoCAD và Excel, đây là 2 phần mềm được sử dụng phổ biến nhất trong giới kỹ thuật,

ngoài các tính năng chính như hỗ trợ lập bản vẽ và tính toán như đã biết, chúng còn tích hợp sẵn công

cụ lập trình đơn giản, dễ sử dụng nhưng hiệu quả cao, được biết đến với cái tên đơn giản là VBA, nhằm

mục đích giúp người dùng có thể tự xây dựng những chương trình, chạy trên nền của chúng, để giải

quyết các bài toán hay những vấn đề phát sinh trong thực tế công tác và học tập.

pdf 94 trang yennguyen 9320
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học xây dựng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học xây dựng

Bài giảng Tin học xây dựng
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Mục lục 
i 
MỤC LỤC 
MỞ ĐẦU................................................................................................................................................... 1 
1. TỔNG QUAN ................................................................................................................................... 1 
2. EXCEL .............................................................................................................................................. 2 
3. AUTOCAD ....................................................................................................................................... 3 
4. VBA .................................................................................................................................................. 4 
DỰ ÁN I: XÂY DỰNG CHƯƠNG TRÌNH TÍNH ĐẶC TRƯNG HÌNH HỌC CỦA MỘT SỐ LOẠI 
MẶT CẮT CƠ BẢN HAY DÙNG TRONG KẾT CẤU CẦU ................................................................ 5 
1. NỘI DUNG DỰ ÁN ......................................................................................................................... 5 
1.1. Mô tả yêu cầu ............................................................................................................................. 5 
1.2. Cấu trúc dự án ............................................................................................................................ 6 
1.3. Nội dung kiến thức VBA liên quan đến dự án ........................................................................... 7 
1.4. Nội dung kiến thức lập trình trên Excel liên quan đến dự án .................................................... 7 
1.5. Những lưu ý khác ....................................................................................................................... 7 
2. TRÌNH TỰ THỰC HIỆN DỰ ÁN ................................................................................................... 7 
2.1. Tạo file Excel mới và lưu lại thành dạng *.xlsm ....................................................................... 7 
2.2. Chạy VBA IDE và tạo Userform ............................................................................................... 8 
2.3. Xây dựng giao diện người sử dụng ............................................................................................ 9 
2.4. Viết mã lệnh chi tiết cho chương trình ..................................................................................... 12 
2.5. Chạy thử chương trình và kiểm tra kết quả .............................................................................. 19 
3. BÀI TẬP ......................................................................................................................................... 19 
3.1. Bài tập 1 ................................................................................................................................... 19 
3.2. Bài tập 2 ................................................................................................................................... 20 
3.3. Lưu ý khi làm lại dự án mẫu .................................................................................................... 21 
DỰ ÁN II: CHƯƠNG TRÌNH LẬP BẢNG TỔNG HỢP VẬT TƯ ...................................................... 22 
1. NỘI DUNG DỰ ÁN ....................................................................................................................... 22 
1.1. Mô tả yêu cầu ........................................................................................................................... 22 
1.2. Cấu trúc dự án .......................................................................................................................... 23 
1.3. Nội dung kiến thức VBA liên quan đến dự án ......................................................................... 25 
1.4. Những lưu ý khác ..................................................................................................................... 26 
2. TRÌNH TỰ THỰC HIỆN DỰ ÁN ................................................................................................. 26 
2.1. Lưu file dữ liệu sang dạng xlsm ............................................................................................... 26 
2.2. Tạo sheet “Tong hop vat tu” .................................................................................................... 27 
2.3. Chạy VBA IDE và tạo Module ................................................................................................ 27 
2.4. Xây dựng giao diện người sử dụng .......................................................................................... 27 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Mục lục 
ii 
2.5. Xây dựng khối chương trình dạng khung ................................................................................ 27 
2.6. Viết mã lệnh chi tiết cho chương trình con .............................................................................. 28 
2.7. Chạy thử chương trình và kiểm tra kết quả .............................................................................. 36 
3. BÀI TẬP ......................................................................................................................................... 38 
3.1. Bài tập 1 ................................................................................................................................... 38 
3.2. Bài tập 2 ................................................................................................................................... 41 
3.3. Bài tập 3 ................................................................................................................................... 42 
DỰ ÁN III: XÂY DỰNG CHƯƠNG TRÌNH NHẬP DỮ LIỆU VÀ TỰ ĐỘNG TẠO BẢN VẼ BỐ TRÍ 
CHUNG TRỤ CẦU THÂN ĐẶC TRONG AUTOCAD ....................................................................... 44 
1. NỘI DUNG DỰ ÁN ....................................................................................................................... 44 
1.1. Mô tả yêu cầu ........................................................................................................................... 44 
1.2. Kịch bản sử dụng và kết quả chương trình .............................................................................. 44 
1.3. Cấu trúc dự án .......................................................................................................................... 44 
1.4. Nội dung kiến thức VBA liên quan đến dự án ......................................................................... 45 
1.5. Những lưu ý khác ..................................................................................................................... 46 
2. TRÌNH TỰ THỰC HIỆN DỰ ÁN ................................................................................................. 46 
2.1. Tạo và lưu bản vẽ mẫu xuất phát ............................................................................................. 46 
2.2. Tạo và lưu dự án VBA ............................................................................................................. 46 
2.3. Xây dựng giao diện người sử dụng .......................................................................................... 46 
2.4. Xây dựng khối chương trình dạng khung ................................................................................ 47 
2.5. Viết mã lệnh chi tiết ................................................................................................................. 49 
2.6. Chạy thử chương trình và kiểm tra kết quả .............................................................................. 54 
3. BÀI TẬP ......................................................................................................................................... 54 
3.1. Bài tập thực hành ..................................................................................................................... 54 
3.2. Câu hỏi ôn tập .......................................................................................................................... 55 
DỰ ÁN IV: CHƯƠNG TRÌNH VẼ TRẮC DỌC TỰ NHIÊN TRÊN AUTOCAD VỚI SỐ LIỆU ĐỌC 
TỪ FILE EXCEL .................................................................................................................................... 56 
1. NỘI DUNG DỰ ÁN ....................................................................................................................... 56 
1.1. Mô tả yêu cầu ........................................................................................................................... 56 
1.2. Cấu trúc dự án .......................................................................................................................... 57 
1.3. Nội dung kiến thức VBA liên quan đến dự án ......................................................................... 58 
1.4. Những lưu ý khác ..................................................................................................................... 58 
2. TRÌNH TỰ THỰC HIỆN DỰ ÁN ................................................................................................. 58 
2.1. Chạy VBA IDE và tạo Module ................................................................................................ 58 
2.2. Lưu trữ dự án dạng DVB ......................................................................................................... 59 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Mục lục 
iii 
2.3. Khai báo tham chiếu hệ thống đối tượng của Excel trong AutoCAD ..................................... 59 
2.4. Xây dựng giao diện người sử dụng .......................................................................................... 59 
2.5. Xây dựng khối chương trình dạng khung ................................................................................ 59 
2.6. Mã lệnh toàn bộ của chương trình ........................................................................................... 66 
2.7. Chạy thử chương trình và kiểm tra kết quả .............................................................................. 69 
3. BÀI TẬP ......................................................................................................................................... 70 
3.1. Bài tập 1 ................................................................................................................................... 70 
3.2. Bài tập 2 ................................................................................................................................... 71 
DỰ ÁN V: CHƯƠNG TRÌNH CHUYỂN ĐỔI SỐ LIỆU TỪ BẢN VẼ KHẢO SÁT ĐỊA HÌNH TRÊN 
AUTOCAD SANG SỐ LIỆU DẠNG TỌA ĐỘ ĐIỂM TRÊN EXCEL ĐỂ LÀM DỮ LIỆU CHO CÁC 
PHẦN MỀM THIẾT KẾ ĐƯỜNG ......................................................................................................... 72 
1. NỘI DUNG DỰ ÁN ....................................................................................................................... 72 
1.1. Mô tả yêu cầu ........................................................................................................................... 72 
1.2. Cấu trúc dự án .......................................................................................................................... 73 
1.3. Nội dung kiến thức VBA liên quan đến dự án ......................................................................... 75 
1.4. Những lưu ý khác ..................................................................................................................... 75 
2. TRÌNH TỰ THỰC HIỆN DỰ ÁN ................................................................................................. 76 
2.1. Mở file KS1.dwg ...................................................................................................................... 76 
2.2. Chạy VBA IDE và tạo Module ................................................................................................ 76 
2.3. Xây dựng giao diện người sử dụng .......................................................................................... 77 
2.4. Xây dựng khối chương trình dạng khung ................................................................................ 77 
2.5. Viết mã lệnh chi tiết cho chương trình chuyển đổi dữ liệu ...................................................... 77 
2.6. Chạy thử chương trình chuyển đổi dữ liệu .............................................................................. 86 
2.7. Viết mã lệnh cho chương trình kiểm tra sơ bộ dữ liệu trong Excel ......................................... 86 
3. BÀI TẬP ......................................................................................................................................... 88 
3.1. Bài tập 1 ................................................................................................................................... 88 
3.2. Bài tập 2 ................................................................................................................................... 89 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Mở đầu 
1 
MỞ ĐẦU 
1. TỔNG QUAN 
Hiện nay, máy tính đóng một vai trò quan trọng trong quá trình thiết kế cũng như thi công công trình. 
Với vai trò là một công cụ làm việc, nó có thể giúp kỹ sư thiết kế lập bản vẽ nhanh chóng và chính xác 
bằng phần mềm AutoCAD, có thể giúp cho việc tính toán mặt cắt và trình bày hồ sơ thiết kế một cách 
hiệu quả bằng phần mềm Excel, có thể giúp tính toán kết cấu cầu, cống, nhà cửa, cột tháp  rất nhanh 
chóng và chính xác bằng phần mềm MIDAS, có thể tính toán kết cấu nền đường, mái dốc bằng phần 
mềm GeoSlope hoặc Plaxis, có thể giúp thiết kế đường ô tô bằng phần mềm Nova-TDN, ADS-Road hay 
Civil 3D. Đối với kỹ sư thi công, máy tính có thể hỗ trợ việc quản lý dự án bằng phần mềm Project hay 
CSM, có thể hỗ trợ tính toán chi phí xây dựng bằng phần mềm dự toán G8 hoặc CE. 
Như vậy, để có thể nhanh chóng hoàn thành với chất lượng cao: bài tập lớn, thiết kế môn học, đồ án tốt 
nghiệp hay dự án thiết kế hoặc thi công thực tế, bạn cần tận dụng sức mạnh của máy tính thông qua việc 
khai thác các phần mềm thay vì vẽ hoặc tính toán thủ công. 
Với sự đa dạng của thực tế thiết kế, thi công hay chính trong các bài tập lớn của các bạn khi đang học, 
không có một phần mềm nào có thể đáp ứng hay giải quyết được hết mọi vấn đề, do đó, bên trong nhiều 
phần mềm, ngoài những tính năng có sẵn giúp bạn giải quyết ngay lập tức các vấn đề chính, chúng còn 
cho phép bạn tự xây dựng những tính năng mới với công sức lập trình ít nhất, hiệu quả cao nhất, để giải 
quyết các vấn đề phát sinh mà bạn gặp phải trong quá trình làm việc và học tập của cá nhân. Điển hình 
là phần mềm AutoCAD và Excel, đây là 2 phần mềm được sử dụng phổ biến nhất trong giới kỹ thuật, 
ngoài các tính năng chính như hỗ trợ lập bản vẽ và tính toán như đã biết, chúng còn tích hợp sẵn công 
 ... NG TIN HỌC XÂY DỰNG Dự án 5 
78 
 Do số lượng điểm đo là không thể xác định từ trước nên danh sách các điểm đo không thể cố 
định, vì thế phải sử dụng mảng động. 
 Các điểm đo được chọn từ bản vẽ AutoCAD nên cần đến đối tượng SelectionSet (tên đầy đủ là 
AcadSelectionSet) để chứa tạm thời các Text được chọn. 
 Tọa độ (X, Y) của điểm đo trên bản vẽ là một điểm (point) gồm 2 thành phần là X và Y. Ở đây 
sử dụng biến kiểu Variant để chứa point này, tuy nhiên có nhiều cách khác để thực hiện nhiệm 
vụ này. 
 Kiến thức tham khảo 
 Khai báo biến cơ bản: mục 6.2 trang 37. 
 Khai báo biến kiểu tự định nghĩa: mục 5.8 trang 31 và mục 6.3 trang 37. 
 Khai báo mảng động: mục 6.5 trang 38 
 Dữ liệu kiểu Variant: mục 5.7 trang 30 
 Khai báo kiểu đối tượng hình học của AutoCAD: mục 5.2.2 trang 224 và mục 5.2.6 trang 232 về khai báo đối 
tượng AcadText 
 Khai báo kiểu đối tượng SelectionSet: mục 5.3.1 trang 234 
2.5.2. Loại bỏ đối tượng SelectionSet cũ 
 AutoCAD có thể chứa cùng lúc nhiều đối tượng SelectionSet. 
 Đối tượng SelectionSet dùng để chứa các Text (các điểm đo) dự kiến đặt tên là MySSet, tuy 
nhiên việc đặt tên này sẽ bị lỗi khiến cho chương trình không thể chạy được khi trong AutoCAD 
(vì một lý do nào đó) đã có sẵn một tập đối tượng có tên như vậy. 
 Có vài cách thức khác nhau để tránh được lỗi này (tham khảo mục 5.3.1 trang 234) 
 Đoạn mã lệnh sau sẽ loại bỏ đối tượng SelectionSet có tên là MySSet (nếu có): 
 Kiến thức tham khảo 
 Đối tượng SelectionSet: mục 5.3 trang 233 
 Đối tượng ThisDrawing: mục 4.2.2 trang 202 
2.5.3. Khởi tạo đối tượng SelectionSet 
 Thêm vào một đối tượng SelectionSet có tên là MySSet dùng để lưu trữ tạm thời các Text (điểm 
đo) khi thực hiện việc lựa chọn (select) trên bản vẽ. 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
79 
 Kiến thức tham khảo 
 Khởi tạo đối tượng SelectionSet: mục 5.3.1 trang 234 
2.5.4. Nhập dữ liệu 
 Dữ liệu được nhập vào bằng hình thức chọn đối tượng thông dụng của AutoCAD. Giao diện là 
lời nhắc (prompt) của AutoCAD sẽ xuất hiện trên màn hình (phiên bản từ AutoCAD 2007 được 
cài mặc định) hoặc trên cửa sổ dòng lệnh (Command Window) đối với các phiên bản AutoCAD 
thấp hơn hoặc có những thiết lập riêng (xem trong tài liệu hướng dẫn sử dụng AutoCAD, lệnh 
Options). 
 Mã lệnh: 
 Việc nhập dữ liệu sẽ kết thúc khi người dùng bấm Enter. 
 Câu lệnh trên cho phép chọn mọi loại đối tượng (Line, Pline, Cirle, Text, ) mà bạn có thể nhìn 
thấy được trong ban vẽ (đối tượng hình học). 
 Kiến thức tham khảo 
 Các phương thức của đối tượng SelectionSet: mục 5.3.2 trang 235 
2.5.5. Lấy số đối tượng đã được chọn 
 Sau khi người dùng bấm phím Enter thì việc lựa chọn kết thúc, trong đối tượng SelectionSet (tên 
là MySSet) đã chứa danh sách các đối tượng được chọn. 
 Trong số các đối tượng được chọn trong danh sách trên có thể có những đối tượng không phải là 
Text. Do đó cần duyệt toàn bộ danh sách và chỉ thực hiện chuyển đổi với những đối tượng Text. 
 Mã lệnh: 
 Kiến thức tham khảo 
 Các phương thức của đối tượng SelectionSet: mục 5.3.2 trang 235 
2.5.6. Lập danh sách các điểm đo 
 Danh sách các điểm đo chứa trong mảng động đã khai báo ở trên dưới dạng một mảng động 
(mảng chưa biết có bao nhiêu phần tử, chỉ biết tên và kiểu dữ liệu khi khai báo biến). 
 Chỉ số đầu tiên của danh sách là 0 (gán ở dòng lệnh 38). 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
80 
 Thực hiện lệnh For  To  để duyệt toàn bộ các đối tượng được chọn có trong đối tượng 
SelectionSet (tên là MySSet). Sẽ có 2 trường hợp xảy ra khi duyệt từng đối tượng được chọn: 
o Đối tượng được chọn không phải là Text. 
o Đối tượng được chọn là Text (và được coi là dữ liệu điểm đo trong chương trình này) 
 Mã lệnh duyệt từng đối tượng trong MySSet: 
 Kiểm tra xem từng đối tượng được chọn trong MySSet có phải là Text không: 
o Nếu không phải thì không thực hiện việc chuyển đổi dữ liệu (không làm gì cả!) 
o Nếu là Text thì lấy thông tin về tọa độ (X,Y) và cao độ (Z). 
 Lấy thông tin về đối tượng chứa trong đối tượng SelectionSet: mục 5.3.2 trang 235 
 Loại đối tượng trong AutoCAD thường có tên bắt đầu bằng AcDb 
 Nếu đối tượng được chọn thứ i trong đối tượng MySSet là Text thì: 
o Gán nó cho biến đối tượng kiểu Text để tiện cho việc xử lý (dòng lệnh 41). 
o Thực hiện bẫy lỗi do khả năng chọn phải đối tượng Text nhưng không phải là điểm đo 
trên bản vẽ (ví dụ chọn nhầm vào phần ghi chú địa hình: Nhà cấp 4) nên giá trị của Text 
không thể chuyển sang dạng số được (Text có giá trị “Nhà cấp 4” không thể chuyển sang 
dạng số được). Điều này sẽ gây lỗi làm chương trình bị dừng lại, do đó cần loại trừ lỗi 
này bằng cách bẫy lỗi. 
 Bẫy lỗi: mục 14.3 trang 94 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
81 
o Bật chế độ bẫy lỗi (dòng lệnh 43) trước khi thực hiện việc lấy cao độ của điểm đo (dòng 
lệnh 44): 
o Nếu lỗi xảy ra (gặp phải tình huống: Text không phải điểm đo) thì do đã bật chế độ bẫy 
lỗi nên chương trình sẽ không bị dừng lại, mà nó tiếp tục chạy với giá trị của biến Elev 
không xác định, đồng thời đối tượng Err (xem mục 14.3.2 trang 95) sẽ chứa mã lỗi. Trong 
trường hợp gặp lỗi này, do Text không phải là điểm đo nên sẽ không thực hiện việc 
chuyển đổi (tức là không gán giá trị cho mảng chứa danh sách các điểm đo) mà chỉ thực 
hiện xóa bỏ việc bẫy lỗi đối với vòng lặp thứ i này (vòng lặp thứ i+1 sẽ tiếp tục đi qua 
dòng lệnh 43 nên việc bẫy lỗi sẽ được thiết lập lại) 
o Nếu không xảy ra lỗi (giả định đó là điểm đo), lúc này giá trị Err.Number = 0, thì thực 
hiện việc chuyển đối dữ liệu như sau: 
 Cấp phát mảng động (dòng lệnh 46). 
 Cao độ của điểm đo (Z) được lấy bằng giá trị của biến Elev tại dòng lệnh 52 (biến 
này nhận giá trị của Text, được chuyển đổi ở dòng lệnh 44). 
 Thứ tự của điểm đo (cũng được xem là tên của điểm đo) được lấy bằng thứ tự của nó 
trong danh sách (biến Order, dòng lệnh 47). 
 Tọa độ (X, Y) của điểm đo lấy bằng tọa độ điểm chèn của Text (dòng lệnh 49 51). 
 Đổi màu Text được coi là điểm đo sang màu Green (dòng lệnh 48) 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
82 
 Tăng chỉ số của mảng động lên 1 (dòng lệnh 53) 
 Hiệu chỉnh đối tượng Text: mục 5.4.4 trang 258 
 Sử dụng các phương thức và thuộc tính của đối tượng hình học: mục 5.4.1 trang 245 và mục 5.4.2 trang 252 
 Sử dụng đối tượng Err: mục 14.3.2 trang 95 
2.5.7. Xóa bỏ đối tượng MySSet sau khi sử dụng 
 Việc xóa đối tượng này sẽ không gây mất dữ liệu trên bản vẽ vì nó chỉ lưu trữ danh sách các đối 
tượng được chọn. 
2.5.8. Kết nối với Excel và xuất dữ liệu sau khi chuyển đổi 
 Chạy Excel (dòng lệnh 63 65) Tạo mới một file Excel (dòng lệnh 67) Tạo mới sheet có 
tên là “SoLieu” (dòng lệnh 68, 69): 
 Làm việc với Workbook: mục 7.2 trang 154 
 Làm việc với Worksheet: mục 7.3 trang 155 
 Ghi dữ liệu từ mảng chứa thông tin về điểm đo ra Excel: 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
83 
 Làm việc với Cells: mục 7.4 trang 156 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
84 
2.5.9. Mã lệnh của toàn bộ chương trình 
1 
2 
3 
4 
5 
6 
7 
8 
Option Explicit 
Type DiemDo 
 TT As Long 
 X As Double 
 Y As Double 
 Z As Double 
End Type 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
' Lay toa do cua cac diem do tren ban ve cu de chuyen thanh du lieu thiet ke cho Nova-TDN và Civil 3D 
Public Sub Convert() 
 Dim DD() As DiemDo ' Mang dong chua cac diem do 
 Dim TextObj As AcadText ' Doi tuong Text cua AutoCAD 
 Dim SsetObj As AcadSelectionSet ' Tap doi tuong SelectionSet de lam viec voi cac doi tuong cua AutoCAD 
 Dim Elev As Double ' Cao do cua diem do 
 Dim Order As Long ' thu tu cua diem do 
 Dim InsPoint As Variant ' Toa do x, y cua diem do 
 Dim N As Long ' So doi tuong duoc chon trong ban ve AutoCAD 
 Dim i As Long ' Duyet doi tuong 
 'Tim trong ban ve AutoCAD xem da co tap doi tuong MySSet nao khong, neu co thi xoa no di 
 For Each SsetObj In ThisDrawing.SelectionSets 
 If SsetObj.Name = "MySSet" Then 
 SsetObj.Delete 
 Exit For 
 End If 
 Next 
 ' Khoi tao tap doi tuong moi de chua cac doi tuong AutoCAD 
 Set SsetObj = ThisDrawing.SelectionSets.Add("MySSet") 
 ' Dung Mouse de chon cac diem do can chuyen doi 
 SsetObj.SelectOnScreen 
 ' Lay so doi tuong da chon duoc 
 N = SsetObj.Count 
 ' Khoi tao so thu tu cua cac diem do 
 Order = 0 
 For i = 0 To (N - 1) 
 If SsetObj.Item(i).ObjectName = "AcDbText" Then ' Chi lam viec voi cac doi tuong dang TEXT 
 Set TextObj = SsetObj.Item(i) 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
85 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
 ' Bay loi de loai bo cac doi tuong Text khong phai la so 
 On Error Resume Next 
 Elev = TextObj.TextString ' Lay noi dung cua Text lam cao do diem do 
 If Err.Number = 0 Then ' Neu doi tuong Text la so 
 ReDim Preserve DD(Order) ' Cap phat bo nho cho mang dong 
 DD(Order).TT = Order 
 TextObj.Color = acGreen ' Danh dau diem do duoc chuyen doi trong ban ve AutoCAD 
 InsPoint = TextObj.InsertionPoint ' Lay toa do X, Y cho diem do 
 DD(Order).X = InsPoint(0) 
 DD(Order).Y = InsPoint(1) 
 DD(Order).Z = Elev 
 Order = Order + 1 
 Else ' Neu doi tuong Text khong phai la so 
 Err.Clear 
 End If 
 End If 
 Next i 
 ' Xoa bo tap doi tuong sau khi dung 
 SsetObj.Delete 
 ' Ket noi voi Excel 
 Dim App As Excel.Application 
 Set App = Excel.Application 
 App.Visible = True 
 Dim WBook As Workbook, WSheet As Worksheet 
 Set WBook = App.Workbooks.Add 
 Set WSheet = WBook.Worksheets(1) 
 WSheet.Name = "DuLieu" 
 For i = LBound(DD) To UBound(DD) 
 WBook.Worksheets("DuLieu").Cells(i + 1, 1) = DD(i).TT 
 WBook.Worksheets("DuLieu").Cells(i + 1, 2) = DD(i).X 
 WBook.Worksheets("DuLieu").Cells(i + 1, 3) = DD(i).Y 
 WBook.Worksheets("DuLieu").Cells(i + 1, 4) = DD(i).Z 
 Next i 
 App.Caption = "Ket Thuc" 
End Sub 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
86 
2.6. Chạy thử chương trình chuyển đổi dữ liệu 
2.6.1. Chạy thử chương trình 
 Đặt con trỏ bên trong chương trình con Convert Bấm chọn nút Run (như hình dưới): 
 Chọn các đối tượng, có thể chọn bất kỳ loại đối tượng nào hoặc toàn bộ đối tượng hiện có trong 
bản vẽ (nếu như cần chuyển đổi toàn bộ các điểm đo có trong bản vẽ) Bấm Enter để kết thúc 
việc chọn đối tượng chuyển đổi: 
 Kết quả: chương trình sẽ tự động chạy Excel và chuyển kết quả sang, cột A là thứ tự (hay tên 
điểm đo), cột B, C, D là tọa độ X, Y, Z: 
2.7. Viết mã lệnh cho chương trình kiểm tra sơ bộ dữ liệu trong Excel 
 Kết quả sau khi được chuyển sang Excel, cần kiểm tra lại một cách sơ bộ để phát hiện những lỗi 
do người vẽ bản vẽ khảo sát vô tình gây ra, ví dụ như nhập dữ liệu sai. 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
87 
 Giả định đã biết cao độ của vùng này không quá 10.00m, do đó sẽ tiến hành kiểm tra xem có 
điểm đo nào có cao độ quá 10m không, nếu có thì đánh dấu bằng cách đổi màu chữ của điểm đó 
thành màu đỏ đậm. 
2.7.1. Tạo mô-đun để viết mã lệnh 
 Trong file kết quả do chương trình chuyển đổi xuất sang Excel Gọi VBA IDE (có thể bấm 
Alt+F11) Tạo Module1: 
2.7.2. Tạo chương trình con 
 Chương trình con dạng Sub: 
2.7.3. Mã lệnh kiểm tra cao độ 
 Chương trình sẽ tự động xác định vùng có dữ liệu trong Excel bằng cách sử dụng đối tượng 
UsedRange. 
 Do chỉ quan tâm đến cao độ của các điểm đo, nên chỉ cần duyệt các Cells trong cột D (tức là cột 
số 4): 
 Biến r (kiểu Range) sẽ chứa thông tin đọc được trong các Cells thuộc cột 4 (là cột chứa giá trị 
cao độ của điểm đo). Kiểm tra giá trị trong biến r (r.Value), nếu nó lớn hơn 10 thì thực hiện việc 
đổi chữ sang màu đỏ đậm. 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
88 
 Đối tượng UsedRange: mục 7.4.3 trang 157 
 Thay đổi định dạng trong Cells: mục 2.2.2 trang 108 
3. BÀI TẬP 
3.1. Bài tập 1 
 Lập chương trình tính tổng chiều dài của các đoạn thẳng (đối tượng kiểu Line) được chọn trên 
bản vẽ AutoCAD. 
 Chương trình sẽ thực hiện như sau: 
o Yêu cầu người dùng chọn các đối tượng trên bản vẽ. Có thể chọn từng đối tượng, chọn 
một nhóm hoặc chọn toàn bộ. 
o Lọc lấy những đối tượng kiểu AcDbLine và tính tổng chiều dài của những đối tượng này. 
o Yêu cầu người dùng chọn 1 điểm (point) trên bản vẽ và ghi kết quả (tổng chiều dài các 
đoạn thẳng được chọn) lên bản vẽ tại điểm (point) vừa chọn. 
 Hướng dẫn cơ bản: 
o Tên đối tượng hình học của AutoCAD được chứa trong thuộc tính ObjectName. Đoạn 
chương trình sau sẽ hiển thị tên của mọi loại đối tượng hình học trong cửa sổ Immediate 
khi được chọn: 
Public Sub TenDT() 
 Dim Obj As AcadObject 
 Dim Pnt As Variant 
 ThisDrawing.Utility.GetEntity Obj, Pnt, "Chon doi tuong:" 
 Debug.Print Obj.ObjectName 
End Sub 
o Tên một số đối tượng hình học hay sử dụng: 
Loại đối tượng Tên 
Line AcDbLine 
LWPolyLine AcDbPolyline 
Text AcDbText 
o Chiều dài của đối tượng dạng đường (Line, LWPolyLine) được chứa trong thuộc tính 
Length. Đoạn mã lệnh sau sẽ hiển thị chiều dài của đối tượng dạng đường khi được chọn: 
Public Sub TenDT() 
 Dim Obj As AcadObject 
 Dim Pnt As Variant 
 ThisDrawing.Utility.GetEntity Obj, Pnt, "Chon doi tuong:" 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
89 
 Debug.Print Obj.Length 
End Sub 
o Tạo đối tượng Text: mục 5.2.6 trang 232 
3.2. Bài tập 2 
 Lập chương trình đánh dấu các dòng chứa dữ liệu cần tìm trong bảng Excel 
 Chương trình thực hiện nội dung sau: 
o Yêu cầu người dùng chọn mã vật liệu cần tìm 
o Tự động duyệt toàn bộ vùng dữ liệu hiện có và đánh dấu tất cả các dòng chứa loại vật 
liệu đó trong các công việc khác nhau. 
 Hướng dẫn cơ bản: 
o Mở file “Phan tich vat tu.xlsx” trong thư mục dự án 
o Khởi động VBA IDE trong Excel. 
o Tạo ra Module1 để viết mã lệnh. 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
90 
o Dùng hàm InputBox của đối tượng Application để nhập dữ liệu, lưu ý là chỉ chọn 1 Cell 
chứa mã số tật tư của loại vật liệu cần đánh dấu (trong hình dưới là ô C11, loại vật liệu là 
Xi măng PC30) 
o Viết mã lệnh để đánh dấu các dòng có loại vật liệu được chọn 
 Bộ môn Tự động hóa thiết kế cầu đường  
BÀI GIẢNG TIN HỌC XÂY DỰNG Dự án 5 
91 
o Sử dụng UsedRange để xác định vùng dữ liệu tự động hoặc yêu cầu người dùng nhập 
vùng dữ liệu bằng hàm Application.InputBox 
o Mã lệnh đánh dấu 1 dòng: 
Public Sub Test() 
 Dim R As Range 
 Set R = Application.InputBox("Chon ma so vat tu (MSVT)", Type:=8) 
 Dim n As Long 
 n = R.Row ‘ Số thứ tự dòng của Cell được chọn 
 ThisWorkbook.ActiveSheet.Rows(n).Interior.Color = RGB(255, 0, 0) 
End Sub 

File đính kèm:

  • pdfbai_giang_tin_hoc_xay_dung.pdf