NGHIÊN CỨU XÂY DỰNG CHƯƠNG TRÌNH TỰ ĐỘNG HÓA THIẾT KẾ CẦU DẦM GIẢN ĐƠN BTCT DƯL
Nghiên cứu khoa học sinh viên 2010 Nguyễn Ngọc Sơn-Cầu đƣờng bộ A K46 & Nguyễn Hải Anh-Cầu đƣờng anh K47 1 BÁO CÁO NGHIÊN CỨU KHOA HỌC SINH VIÊN KHOA CÔNG TRÌNH Tên đề tài: NGHIÊN CỨU XÂY DỰNG CHƢƠNG TRÌNH TỰ ĐỘNG HÓA THIẾT KẾ CẦU DẦM GIẢN ĐƠN BTCT DƢL Sinh viên thực hiện: Nguyễn Ngọc Sơn – Lớp Cầu đƣờng bộ A K46. Nguyễn Hải Anh – Lớp Cầu đƣờng Anh K47. Giáo viên hƣớng dẫn: KS. Lê Đắc Hiền. Bộ môn Tự động hóa thiết kế cầu đƣờng. Nghiên cứu khoa học sinh viên 2010 Nguyễn Ngọc Sơn-Cầu đƣờng bộ A K46 & Nguyễn Hải Anh-Cầu đƣờng anh K47 2 MỤC LỤC CHƢƠNG I: ĐẶT VẤN ĐỀ 3 CHƢƠNG II: NỘI DUNG ĐỀ TÀI 4 2.1. Mục đích, yêu cầu đề tài 4 2.1.1. Mục đích 4 2.1.2. Nội dung của đề tài 4 2.1.3. Ngôn ngữ thực hiện 4 2.2. Công nghệ thực hiện, phân tích và lựa chọn 4 2.3. Khảo sát thực tế 5 2.4. Mô hình thiết kế chức năng 5 2.4.1. Tổng quan về Component Object Model (COM) 6 2.4.2. Hệ thống file dữ liệu của chƣơng trình 10 2.4.3. Chức năng của chƣơng trình (Module) 11 2.4.4. Lý thuyết tính toán. 13 CHƢƠNG III: GIỚI THIỆU CHƢƠNG TRÌNH 17 3.1.Sơ đồ khối: 17 3.2. Giao diện chƣơng trình: 19 CHƢƠNG IV: KẾT LUẬN VÀ KIẾN NGHỊ 21 TÀI LIỆU THAM KHẢO 22 Nghiên cứu khoa học sinh viên 2010 Nguyễn Ngọc Sơn-Cầu đƣờng bộ A K46 & Nguyễn Hải Anh-Cầu đƣờng anh K47 3 CHƢƠNG I ĐẶT VẤN ĐỀ VBA là ngôn ngữ lập trình hƣớng đối tƣợng với có khả năng phát triển ứng dụng mạnh mẽ với nhiều tính năng phong phú. VBA - Visual Basic for Application là một ngôn ngữ lập trình, ngôn ngữ của nó là Visual Basic nhƣng nó đƣợc tích hợp vào trong ứng dụng (Application) và sử dụng các đối tƣợng trong ứng dụng đó, những ứng dụng này phải đƣợc thiết kế kiểu Automation Server, hiện nay có các chƣơng trình trong bộ MS Office, OpenOffice, AutoCAD,… Trong lập trình, các đối tƣợng đƣợc viết trong ứng dụng kiểu Automation Server ngƣời ta gọi là COM (Component Object Model): là một kiến trúc lập trình đƣợc thiết kế bởi Microsoft. Mục đích của công nghệ này là tạo ra một chuẩn công nghệ trong lập trình, mà ở đó cho phép xây dựng chƣơng trình theo mô hình lắp ghép hay sử dụng lại các sản phẩm đã đƣợc hoàn thiện từ trƣớc theo chuẩn COM. Nhƣ vậy từ bất kỳ một ứng dụng hay môi trƣờng lập trình nào ngƣời ta có thể can thiệp vào các đối tƣợng này, dù nó đang chạy. Ví dụ nhƣ có thể điều khiển Excel từ Word hay AutoCad (và ngƣợc lại) giống nhƣ thực hiện trực tiếp trên ứng dụng đó. Việc điều khiển Excel hay AutoCad từ các ngôn ngữ lập trình VB6, C#, VB.Net,…bằng công nghệ COM đã đƣợc ứng dụng khá nhiều, còn giữa Excel với AutoCad rất ít đề cập đến. Tại sao chỉ để cập việc trao đổi dữ liệu giữa Excel và AutoCad? Bởi Excel là phần mềm tính toán, xử lý số liệu và biểu đồ rất hiệu quả. AutoCAD đƣợc biết đến với khả năng tạo bản vẽ rất mạnh nhƣng khả năng tính toán hạn chế. Cả hai phần mềm đều hỗ trợ khả năng mở rộng tính năng bằng công cụ VBA. Trên cơ sở đó bài báo trình bày cơ sở tự động hóa trao đổi dữ liệu giữa Excel và AutoCad đƣợc áp dụng trong chƣơng trình “Chƣơng trình tự động hóa thiết kế cầu dầm giản đơn BTCT DƢL”. Nghiên cứu khoa học sinh viên 2010 Nguyễn Ngọc Sơn-Cầu đƣờng bộ A K46 & Nguyễn Hải Anh-Cầu đƣờng anh K47 4 CHƢƠNG II NỘI DUNG ĐỀ TÀI 2.1. Mục đích, yêu cầu đề tài: 2.1.1. Mục đích: - Xây dựng chƣơng trình “Tự động hóa thiết kế cầu dầm giản đơn BTCT DƢL” theo tiêu chuẩn TCN 272-05. - Chƣơng trình có khả năng tự động hóa thiết kế kết cấu cầu trên cơ sở số liệu tính toán thiết kế, kiểm toán và xuất ra bản vẽ kết cấu. 2.1.2. Nội dung của đề tài: - Nghiên cứu tiêu chuẩn thiết kế và kiểm toán cầu 22TCN-272-05. - Nghiên cứu công cụ VBA trong Excel và AutoCad với tính năng kết nối kiểu COM để xây dựng chƣơng trình có chức năng sau: + Tính duyệt kết cấu => Xuất ra bảng tính toán trên Excel + Xuất bản vẽ kết cấu . 2.1.3. Ngôn ngữ thực hiện: - Chƣơng trình đƣợc viết dựa trên công cụ VBA đƣợc tích hợp sãn trong bộ phần mềm AutoCad và Excel - 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. 2.2. Công nghệ thực hiện, phân tích và lựa chọn: Chƣơng trình đƣợc đƣợc hoàn thành trên ngôn ngữ VBA, một tính năng hƣớng đối tƣợng Automation Server. Tại sao lại lựa chọn VBA ? - VBA đƣợc tích hợp sẵn trong MS Office và AutoCad với các tính năng nổi trội : + 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. Nghiên cứu khoa học sinh viên 2010 Nguyễn Ngọc Sơn-Cầu đƣờng bộ A K46 & Nguyễn Hải Anh-Cầu đƣờng anh K47 5 - 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 (project) 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. + Ƣu điểm chính khi sử dụng VBA trong Excel: - Xây dựng hàm mới theo yêu cầu sử dụng. - Lập trình kết nối với các phần mềm chuyên dụng. 2.3. Khảo sát thực tế: - Hiện nay bộ môn đang giảng dạy môn “Tự động hóa” với ngôn ngữ chính là VBA, trên cơ sở đó tác giả muốn nghiên cứu sâu hơn về việc kết nối thế mạnh của Excel và AutoCad. - Quá trình làm thiết kế môn học của sinh viên chƣa có mục đích và hiệu quả cao: thiếu kiến thức chuyên ngành, tính toán Excel, và sử dụng AutoCad hạn chế. - Quá trình tính toán thiết kế chƣa có sự kết nối giữa 2 công cụ sử dụng chủ yếu là Excel và AutoCad, tài liệu về vấn đề này không nhiều. - Việc tính toán và xuất bản vẽ kết cấu mất khá nhiều thởi gian, do đó việc có một chƣơng trình tự động hóa giúp rút ngắn và tiết kiệm công sức với độ chính xác cao. 2.4. Mô hình thiết kế chức năng: Nghiên cứu khoa học sinh viên 2010 Nguyễn Ngọc Sơn-Cầu đƣờng bộ A K46 & Nguyễn Hải Anh-Cầu đƣờng anh K47 6 2.4.1. TỔNG QUAN VỀ Component Object Model (COM) 2.4.1.1. Khái niệm cơ bản về COM COM (Mô hình đối tượng thành phần hay mô hình cấu kiện phần mềm) đƣợc tạo ra với mục đích định nghĩa một chuẩn độc lập, phân tán và hƣớng đối tƣợng nhằm mục đích tạo ra các cấu kiện phần mềm hoàn chỉnh có thể tƣơng tác đƣợc với nhau. Các cấu kiện tƣơng tác với nhau thông qua giao diện COM. Trong một hệ thống COM, các cấu kiện phần mềm hay các khối phần mềm gọi là các COM Object (đối tƣợng COM). Các đối tƣợng này đóng vai trò nhƣ là các thƣ viện trong lập trình COM. Vì là chuẩn nhị phân nên COM cho phép các COM Ọbject có thể kết nối với nhau mà không phụ thuộc vào ngôn ngữ lập trình. Nhƣ vậy, việc tạo ra COM cho phép tạo ra các gói phần mềm hoàn thiện- đƣợc lập trình từ các ngôn ngữ khác nhau có thể đƣợc tích hợp vào trong cùng một hệ thống. Đồng thời, giao thức kết nối của COM còn cho phép phân tán tức là các cấu kiện phần mềm có thể đƣợc đặt ở các nơi khác nhau có thể tƣơng tác, làm việc với nhau. Nghiên cứu khoa học sinh viên 2010 Nguyễn Ngọc Sơn-Cầu đƣờng bộ A K46 & Nguyễn Hải Anh-Cầu đƣờng anh K47 7 Cấu trúc cơ bản của một COM Object Cấu trúc cơ bản của một COM Object bao gồm các giao diện COM và các lớp thực thi giao diện. Trong cấu trúc COM có sự tách biệt giữa phần giao diện và phần thực thi. Điều này cho phép việc sử dụng các thƣ viện COM rất dễ dàng: việc sử dụng các thƣ viện thông qua các giao diện, ngƣời sử dụng không cần quan tâm tới sự phức tạp của cơ chế thực thi bên trong. 2.4.1.2. Các dạng đối tƣợng COM Trong lập trình COM, các cấu kiện phần mềm đƣợc sử dụng nhƣ những thƣ viện. Khi một ứng dụng sử dụng thƣ viện COM nhằm thực hiện một chức năng nào đó (mà thƣ viện COM có khả năng đáp ứng, nó kết nối với COM Object thông qua việc gửi thông điệp (yêu cầu thực hiện chức năng) tới giao diện COM. Các yêu cầu thực hiện sẽ đƣợc đáp ứng thông qua việc thực thi các phƣơng thức của các lớp bên trong đối tƣợng COM (lớp thực thi). Nhƣ vậy trình ứng dụng làm việc nhƣ các ứng dụng khách (Client Application), các COM Object làm việc nhƣ các ứng dụng chủ (Server Application) ActiveX Control Các ActiveX Control đƣợc tạo ra và đƣợc sử dụng nhƣ một thành phần điều khiển của giao diện ngƣời dùng. Các ActiveX Control chính là các thành phần điều khiển mở rộng. Class B Class A Class C COM Object Interface 1 Interface 2 Interface 3 Interface 4 Nghiên cứu khoa học sinh viên 2010 Nguyễn Ngọc Sơn-Cầu đƣờng bộ A K46 & Nguyễn Hải Anh-Cầu đƣờng anh K47 8 In Process Các đối tƣợng COM đƣợc sử dụng nhƣ các thƣ viện liên kết động (.DLL). Khi một chƣơng trình sử dụng thƣ viện COM, thƣ viện đó sẽ đƣợc nạp và chạy trong tuyến trình (process) của ứng dụng (Server chạy trong cùng tuyến trình với Client). Out of Process Các đối tƣợng COM hoạt động nhƣ các ứng dụng độc lập (.EXE) trong một tuyến trình riêng với tuyến trình của ứng dụng khách. (Server chạy khác tuyến trình với Client). Các thƣ viện COM có thể hoạt động trong cùng một hệ thống với ứng dụng chủ (khi đó các ứng dụng COM đƣợc gọi là Local Server Application) hoặc nằm ở một hệ thống khác (khi đó các ứng dụng COM đƣợc gọi là Remote Server Application). Client App COM Object (Server.dll) Client App ActiveX Container COM Object (Server.ocx) Nghiên cứu khoa học sinh viên 2010 Nguyễn Ngọc Sơn-Cầu đƣờng bộ A K46 & Nguyễn Hải Anh-Cầu đƣờng anh K47 9 Ví dụ: Đối tƣợng AutoCAD, MS Excel đƣợc tham chiếu trong VB là dạng Out of Process. 2.4.1.3. Quản lý các đối tượng COM trong hệ thống Để một thƣ viện COM hoạt động trong một hệ thống, nó phải đƣợc đăng ký và quản lý trong registry của hệ thống đó bằng CLSID (Class Identifier). Thông qua CLSID, các ứng dụng khách có thể xác định và nạp các mã thực thi trong thƣ viện COM - ứng dụng chủ. Trong Windows, việc đăng ký các ứng dụng COM có thể đƣợc thực hiện bằng chƣơng trình regsvr32.exe (thƣờng nằm trong thƣ mụ“C:\WINDOWS\system32”). Usage: regsvr32 [/u][/s][/n][/i[:cmdline]] dllname /u – Unregister server /s – Silent display no message boxes /i – Call DllInstall passing it an optional [cmdline]; when used with /u calls dll uninstall /n – do not call DllRegisterServer, this option must be used with /i Với đối tƣợng COM của AutoCAD và Excel thì trong quá trình cài đặt đã đƣợc tự động đăng ký với registry. Vậy nên ta chỉ việc tham chiếu và sử dụng. COM Object (Server.EXE) Client App Nghiên cứu khoa học sinh viên 2010 Nguyễn Ngọc Sơn-Cầu đƣờng bộ A K46 & Nguyễn Hải Anh-Cầu đƣờng anh K47 10 2.4.1.4. Sử dụng các đối tượng COM Sau khi đăng ký với hệ thống, lập trình sử dụng thƣ viện COM theo các bƣớc sau: Tham chiếu tới thƣ viện COM đã đăng ký Viết mã lệnh kết nối với thƣ viện đã tham chiếu. Có 2 hình thức kết nối: Kết nối sớm (early – binding): chƣơng trình đã biết kiểu đối tƣợng trƣớc khi kết nối (link). Ƣu điểm của kết nối sớm là kiểu dữ liệu đƣợc kiểm tra chặt chẽ, tốc độ chạy của chƣơng trình cao.Tuy nhiên khi đối tƣợng liên kết bị thay đổi (ví dụ một phiên bản khác của thƣ viện), chƣơng trình có thể không thực thi. Ví dụ: Dim obj as clsBeam „kiểu của đối tượng obj là clsBeam obj = New clsBeam „hoặc obj = CreateObject (“MyCOMApp.clsBeam”) Kết nối muộn (late – binding): chƣơng trình chƣa biết kiểu đối tƣợng trƣớc khi kết nối (link). Với kiểu kết nối này, kiểu dữ liệu không không đƣợc kiểm tra chặt chẽ, tốc độ chạy thấp nhƣng chƣơng trình vẫn có thể thực thi khi đối tƣợng liên kết bị thay đổi. Dim obj as Object „kiểu của đối tượng obj chưa rõ ràng obj = New clsBeam „ hoặc obj = CreateObject (“MyCOMApp.clsBeam”) „kiểu của đối tượng chỉ được xác định khi liên kết. 2.4.2. Hệ thống file dữ liệu của chƣơng trình: - File dữ liệu đầu vào lƣu dạng .xls đã đƣợc chuẩn bị sẵn. - File dữ liệu dạng .dwt bao gồm layer, dimstyle, textstyle, blocks đã đƣợc định dạng trƣớc. [...]... khoa hc sinh viờn 2010 CHNG III GII THIU CHNG TRèNH 3.1.S khi: S liu thit k 1 Tiêu chuẩn thiết kế 2 Hoạt tải thiết kế 3 Tải trọng ngời đi bộ 4 Mác/Cờng độ BT dầm chủ (MPa) 5 Bề rộng phần xe chạy 6 Bề rộng lề đi bộ 7 Chiều dài dầm 8 Mặt cắt ngang dầm chủ 9 Dầm ngang 10 Công nghệ tạo DƯL cho dầm chủ 11 Loại cốt thép DƯL Trờn c s chiu di nhp v khong cỏch gia cỏc dm => xỏc nh s b kớch thc MCN dm Tớnh toỏn... cụng ngh NET (WebService) Vi module ny ngi dựng cú th chy chng trỡnh qua web, upload cỏc file u vo v nhn v file ó tớnh toỏn - Phỏt trin module t ng gi ý da trờn cỏc d liu u vo v d liu kim toỏn - Thờm cỏc module cho nhiu nh dng file u vo cng nh u ra khỏc nhau Vớ d u vo SAP, RM, cỏc nh dng file: Acrobat, word - Thờm tớnh nng cho chng trỡnh, phỏt trin giao din ngi dựng Nguyn Ngc Sn-Cu ng b A K46 & Nguyn... cỏnh tit din quy i c xỏc nh tng ng vi din tớch phn bn np ca tit din hp 3) Tớnh i thộp v bờ tụng Khi tớnh i c trng mt ct ca thộp thnh cỏc c trng tng ng ca bờ tụng i vi cỏc trng thỏi gii hn s dng, ngi ta dựng t s mụ un n, c nh ngha nh sau: n Trong ú Es Ec Es l mụ un n hi ca thộp 1 Ec l mụ un n hi ca bờ tụng Ec 0.043 c 5 f ' c T ú ta cú din tớch thộp qui i: Fq = n * Fthộp 4) Kim toỏn theo tiờu chun... ct thộp chu kộo (mm) Nguyn Ngc Sn-Cu ng b A K46 & Nguyn Hi Anh-Cu ng anh K47 15 Nghiờn cu khoa hc sinh viờn 2010 Nu Phng trỡnh 1 khụng tho món, mt ct s b coi l quỏ nhiu thộp Mt ct quỏ nhiu thộp cú th c dựng trong cỏc cu kin d ng lc hay d ng lcmt phn ch khi phõn tớch v thc nghim chng t cú th thc hin c do y ca kt cu Khụng cho phộp cỏc mt ct bờ tụng ct thộp quỏ nhiu thộp Vi mc ớch ca iu quy nh ny, cỏc . báo trình bày cơ sở tự động hóa trao đổi dữ liệu giữa Excel và AutoCad đƣợc áp dụng trong chƣơng trình “Chƣơng trình tự động hóa thiết kế cầu dầm giản đơn BTCT DƢL”. Nghiên cứu khoa. tài: NGHIÊN CỨU XÂY DỰNG CHƢƠNG TRÌNH TỰ ĐỘNG HÓA THIẾT KẾ CẦU DẦM GIẢN ĐƠN BTCT DƢL Sinh viên thực hiện: Nguyễn Ngọc Sơn – Lớp Cầu đƣờng bộ A K46. Nguyễn Hải Anh – Lớp Cầu đƣờng. cầu dầm giản đơn BTCT DƢL” theo tiêu chuẩn TCN 272-05. - Chƣơng trình có khả năng tự động hóa thiết kế kết cấu cầu trên cơ sở số liệu tính toán thiết kế, kiểm toán và xuất ra bản vẽ kết cấu.