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.
Tóm tắt nội dung tài liệu: 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:
bai_giang_tin_hoc_xay_dung.pdf

