Full text

(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)

目錄

誌謝 ... I 摘要 ... II 英文摘要 ...III 目錄 ...IV 表目錄 ...VI 圖目錄 ... VII

第一章 緒論 ...1

1-1 前言...1

1-2 研究動機...1

1-3 研究目的...2

1-4 研究貢獻...2

第二章 文獻回顧 ...4

2-1 前言...4

2-2 物件導向技術...4

2-3 圖形化操作介面在商業界以及學術界上的發展 ...6

2-3-1 商業界上的發展 ...7

2-3-2 學術界上的發展 ...8

2-4 結論...9

第三章 研究方法 ...10

3-1 前言...10

3-2 研究問題...10

3-3 系統分析與設計...13

3-4 軟體開發工具的運用與測試 ...16

第四章 AutoRC 的開發...17

4-1 前言...17

(10)

4-2 系統分析與設計...17

4-2-1 功能觀點分析 ...18

4-2-2 靜態觀點分析與設計 ...19

4-2-3 動態觀點分析與設計 ...23

4-3 程式撰寫...31

4-3-1 介面設計 ...32

4-3-2 演算法 ...42

第五章 AutoRC 操作介紹與案例測試 ...48

5-1 前言...48

5-2 AutoRC 操作方法 ...49

5-3 案例測試...62

5-4 測試結果與探討...69

第六章 結論與建議 ...77

參考文獻 ...81

(11)

表目錄

表一 A 組結構型式資料表 ...63

表二 B 組結構型式資料表 ...64

表三 C 組結構型式資料表 ...65

表四 D 組結構型式資料表 ...66

表五 E 組結構型式資料表 ...66

表六 案例設計參數表...68

表七 A 組案例測試結果資料表 ...70

表八 B 組案例測試結果資料表 ...71

表九 C 組案例測試結果資料表 ...72

表十 D 組案例測試結果資料表 ...73

表十一 E 組案例測試結果資料表 ...74

表十二 ETABS 與 AutoRC 之操作比較表 ...76

(12)

圖目錄

圖 3-1 使用案例圖符號意義說明圖 ...14

圖 3-2 靜態觀點圖形說明圖...15

圖 3-3 動態觀點圖形說明圖...15

圖 4-1 前處理系統使用案例圖...18

圖 4-2 前處理系統完整使用案例圖 ...19

圖 4-3 結構物基本組成要素示意圖 ...19

圖 4-4 資料結構類別圖...21

圖 4-5 資料結構物件圖...22

圖 4-6 資料設定活動圖...23

圖 4-7 資料設定順序圖...24

圖 4-8 模型顯示順序圖...26

圖 4-9 模型操作活動圖...27

圖 4-10 模型構件選取合作圖...29

圖 4-11 模型編輯狀態圖...29

圖 4-12 結構物件產生示意圖...30

圖 4-13 載重分配順序圖...31

圖 4-14 AutoRC 主視窗介面 ...32

圖 4-15 結構基本資料設定視窗介面 ...33

圖 4-16 材料設定視窗介面...34

圖 4-17 結構平面設定視窗介面 ...35

圖 4-18 跨距調整視窗介面...35

圖 4-19 樓層高度調整視窗介面 ...36

圖 4-20 牆/板設定視窗介面 ...37

圖 4-21 載重設定視窗介面...38

圖 4-22 地震力參數設定視窗介面 ...38

(13)

圖 4-23 斷面設定視窗介面...39

圖 4-24 模型顯示視窗介面...40

圖 4-25 模型顯示設定視窗介面 ...41

圖 4-26 設計結果檢視視窗介面 ...41

圖 4-27 立體座標系統一...43

圖 4-28 立體座標系統二...43

圖 4-29 立體座標系統三...43

圖 5-1 新增結構物...49

圖 5-2 設定結構基本資料...50

圖 5-3 設定材料性質...51

圖 5-4 設定模形構架示意圖...52

圖 5-5 設定牆以及樓板的參數...53

圖 5-6 設定載重...54

圖 5-7 設定斷面設計參數...55

圖 5-8 產生結構資料...56

圖 5-9 檢視結構模型...56

圖 5-10 模型編輯與控制的功能下拉選單 ...57

圖 5-11 旋轉結構模型...58

圖 5-12 All 以及 Single 選取模式 ...59

圖 5-13 編輯結構模型示意圖...60

圖 5-14 自動產生結構設計資料與檢視設計結果 ...62

圖 5-15 A 組案例結構平面圖...63

圖 5-16 B 組案例結構平面圖...64

圖 5-17 C 組案例結構平面圖...65

圖 5-18 D 組案例結構平面圖...66

圖 5-19 E 組案例結構平面圖 ...67

(14)
(15)

論文摘要

以往土木領域的工程師在從事結構分析與設計相關工作時,大多 憑藉著經驗與深厚的結構知識來進行分析與設計工作,隨著時代的進 步,電腦使用的普及,在現今來說,大多數的土木結構分析與設計工 作都交由電腦程式來進行運算,如何讓這些結構分析與設計軟體的操 作變的更加簡易以及聰明,儼然成為土木領域的程式設計師開始重視 的一環。

本研究的主要目的是利用物件導向技術發展一套自動化鋼筋混 凝土結構分析前置處理程式 AutoRC,藉由簡化介面的設計,以及提 供自動化模型產生、載重分配以及斷面概算功能,幫助土木工程師能 夠花很少的時間就能夠完成結構分析前置處理作業,並且不需要花費 許多時間來學習軟體的操作,有效的提高工作效率,降低軟體的使用 門檻。

關鍵詞:前置處理、結構分析、使用者圖形化介面、介面設計、物件 導向、物件導向分析、物件導向設計

(16)

第一章 緒論

1-1 前言

隨著軟體開發技術的進步,以及電腦使用的需求增加,為了讓眾 多的使用者能夠更容易的使用,軟體設計公司在設計應用程式時,程 式發展重心逐漸的由運算流程轉移到使用者介面。而使用者圖形化介 面(Graphics User Interface,GUI)的產生,改善了以往使用者在操 作應用軟體時運用文字格式的指令輸入來執行各種功能的不便,讓使 用者僅需運用滑鼠在圖形介面上點選,即可執行應用軟體所提供的功 能,藉由統一的操作方式,讓使用者可以在有限的學習過程中即可熟 悉軟體的操作。

目前在軟體開發的領域上,使用者圖形化介面的發展已趨於成 熟,土木工程界所經常使用的結構分析與設計程式,也由傳統的指令 操作轉換為圖形介面,在擁有圖形化操作介面的優勢下,如何讓應用 程式更聰明,使用更容易,操作步驟更簡易,讓工程師僅需運用滑鼠 做簡單的點選即可解決更多複雜的問題,將有效的提升工程師的工作 效率。

1-2 研究動機

目前許多商業化結構分析與設計軟體提供了強大的圖形化操作 介面來取代以往的文字指令操作模式,土木工程師可以透過簡單的滑 鼠移動、點擊以及拖曳的方式完成以往繁瑣的結構分析與設計工作,

雖然如此,大多數結構分析與設計軟體的使用門檻仍然很高,使用者 仍然需要擁有足夠的結構知識,經過繁瑣複雜的輸入步驟,才能完成 一個案例,對於未來以及即將要投入土木工程領域的人來說,除了結 構設計經驗上的不足之外,並需花上一段時間去學習以及熟悉程式運

(17)

作。有鑑於此,如果能夠發展一套快速、簡易而且具有足夠結構知識 的前置處理程式,讓從事結構分析與設計的工程師能用一個簡單且直 接的方式來操作軟體,不但可以減少程式學習的時間,降低軟體的使 用門檻,並且可以提高工作效率。

1-3 研究目的

在結構分析與設計軟體中與使用者關係最密切者為前置處理程 式,因此本研究將專注於自動化鋼筋混凝土結構設計前置處理程式介 面的開發與設計之研究。讓使用者透過一個簡單而直接的前置處理操 作介面完成結構分析前置處理作業。為了完成此一目的,本研究採用 實作方式,運用Microsoft Visual C# .NET 開發一個自動化鋼筋混凝土 結構設計前置處理程式 Automatic Reinforced Concrete Structural Preprocessor (AutoRC)。利用簡化的程式介面,以及自動化的操作,

讓使用者能有效的提昇結構分析與設計前置處理作業的效率。

1-4 研究貢獻

成功的完成本研究之自動化鋼筋混凝土結構設計前置處理程 式AutoRC 的開發,讓使用者透過 AutoRC 所提供整合的基本資料設 定功能,快速的設定結構分析與設計相關的基本參數,使用者無須從 複雜的下拉選單以及工具方塊列上去尋找相關設定。藉由自動化結構 分析與設計資料的產生,可以幫助工程師完成大部分結構模型的建立 工作,減少使用者建構模型的時間以及錯誤,最後利用 AutoRC 所提 供的資料匯出功能,讓使用者在 AutoRC 上所建立的結構分析與設計 資料能夠直接匯入到 ETABS 商業軟體進行結構分析與設計。本研究 依據物件導向概念提供了一個結構分析與設計的前置處理作業的簡

(18)

化構想,並藉由AutoRC 的開發實現這個想法,未來若能繼續朝著這 個方向前進,從事結構分析與設計工作的相關人員,未來將能享有一 套最簡便易學的前置處理程式,而對於沒有使用過結構分析與設計 相關軟體的人員,也能用最短的時間去學習並且熟悉軟體的使用。

(19)

第二章 文獻回顧

2-1 前言

為了有效降低軟體操作的門檻,以及在操作上的效率與便利,現 今不管商業界或者學術界在軟體開發上都已經逐漸重視操作介面的 研究與改良,例如,商業結構分析設計軟體中的 ETABS、SAP2000

【1】以及 STAAD【2】分別利用圖形化操作介面建構結構模型進行 分析設計。在學術界有台灣大學的莊明介,針對文字操作介面的 PISA3D 結構分析軟體設計了一套圖性化操作介面 GISA3D【3】,以 及成功大學林漢昇所研發的有線元素使用者介面【4】。相對於以往的 文字介面,圖形化操作介面能讓使用者更自由且有效率的操作軟體。

由於圖形化操作方式所伴隨而來的是複雜且沒有一定流程的程式運 作,而物件導向的程式開發技術正是發展圖形化介面軟體的最佳途 徑。因此本章首先將針對物件導向技術作簡單的介紹,並且對於圖形 化操作介面在商業界以及學術界結構分析軟體上的應用做一個回 顧,以其作為本研究的參考。

2-2 物件導向技術

物件導向不僅是一種開發程式的技術,同時也是一種思考與解決 問題的方法。一個問題如果透過程序導向的方式來分析,會將解決問 題的方法拆解成許多步驟,並經由一個流程來完成這些步驟以解決問 題。而如果利用物件導向技術的方法來分析,則是思考這個問題有那 些組成要素,並將這些組成要素物件化,透過物件之間彼此的訊息傳 遞以解決問題。物件導向的思考模式與圖形化操作軟體的運作模式十 分相似,由於開發圖形化操作介面軟體,其資料處理不再如以往開發 文字介面程式有一定的流程,所面對的是資料與資料間透過操作所產

(20)

生的訊息而運作,因此為了構築圖形化操作介面軟體,可以利用物件 導向技術所具備的以下特性【5】:

(1)抽象化(Abstraction):

在思考物件時,往往是以抽象化的概念來進行,而不是以物件 實體來思考。例如:在分析實際房屋結構中的梁構件時,我們可以將 其視為一個物件,而梁構件的重量為梁物件的一個屬性,將梁物件屬 性BeamWeight 看成是實際梁構件的重量來處理,而不是以變數 a、b 這種無意義的變數型式來進行資料的運算處理。

(2)封裝(Encapsulation):

封裝對於物件來說就代表物件所擁有的隱私資料,這些隱私資 料的其他物件無法透過直接的方式來進行存取,因為物件隱私資料透 過其他物件以直接方式來進行存取有可能導致物件的損壞,因此在設 計物件的時候,程式設計師會將物件資料中具有隱私的部份保護起 來,也就是物件的封裝,如果要對這些隱私部份進行存取則必須透過 一定的方式或合理的機制來達成,以維護物件正常運作。

(3)繼承(Inheritance):

在開發程式的過程中常常可以發現,許多物件的功能以及特性 都是十分類似的,對於比較繁複的物件,程式設計師不需要重新製作 一個完整的新物件,只需要利用承接父系物件功能與特性的方式,針 對不一樣功能的部份進行設計,即可創造出功能更強大的物件。在以 往的結構化程式設計中,當程式設計師要對原有的程式作功能上的增 加,就必須修改原始碼並重新編譯程式。在物件導向程式設計中,程 式設計師只需要設計一個類別並繼承舊有的類別,就可以在不更動原

(21)

始程式碼的情況下增加物件的功能。

(4)多形(Polymorphism):

許多不同的物件擁有相同的功能名稱,但是卻有不同的演算法 就叫做多形。物件有了多形的特性,可以簡化很多物件處理的過程,

例如:程式要取得結構物所有每一個桿件的重量,只需要呼叫程式中 取得重量(GetWeight)的功能,那麼程式就可以得到所有桿件的重 量資料,雖然各個桿件形式的不同,當然每種桿件計算重量的方式也 都不盡相同,但是利用多形都可以達到取得桿件重量的目的。

(5)動態聯繫(Dynamic binding):

所謂的動態聯繫,即是編譯器在程式編譯的階段並不將物件與 方法(Function)聯繫在一起,而是將物件方法的位址製作成一個虛 擬表格(Virtual Table),在執行階段時,由虛擬表格中判斷該呼 叫那一個方法,因此可以達到物件多形的目標。

利用上述物件導向所具備的特性,可以將其資料結構物件化,藉 由操作介面與物件之間訊息的傳遞,並透過多形、動態聯繫等特性 時,使得在圖形化操作介面下的物件功能可以順運作,以完成任務。

2-3 圖形化操作介面在商業界以及學術界上的發展

早期工程界所使用的結構分析程式大多是採用 Fortran 或者 C 語 言所撰寫而成的,礙於程式語言所能提供的技術與功能,其輸入輸出 介面皆為文字介面。隨著程式開發技術的提升,以及運用電腦進行結 構分析的需求增加,製作良好的操作介面成為開發結構分析程式中不 可忽視的一環。從商業結構分析軟體的版本演進來看,不難發現其軟

(22)

體操作介面的趨勢都朝向親切的圖形化操作介面邁進,而從學術單位 的研究也可以發現,有越來越多研究都開始重視其軟體操作介面的研 發。本節將針對圖形化操作介面在商業以及學術結構分析軟體的應 用做一個簡單的介紹。

2-3-1 商業界上的發展

目前工程界常用的結構分析軟體應屬於美國 CSI 公司所開發的 SAP2000 以及 ETABS 兩套軟體。早期這兩套商業軟體的操作方式並 不相同,以ETABS 為例,早期 ETABS 6.0 的版本提供了視覺化的圖 形展示,在結構模型的建立是採用文字檔的輸入方式,並以柱線為基 礎建立結構模型,這與有限元素為基礎的 SAP2000 截然不同。隨著 版本的不斷更新以及結構建模方式的趨勢所致,使得這兩套軟體的操 作介面在新版軟體中已經十分近似。ETABS 與 SAP 2000 其都是透過 一套強大圖形化操作介面來進行前置處理作業,在模型建構部分,

ETABS 及 SAP 2000 提供了數種方便的模型建構功能,利用類似繪圖 的方式或者滑鼠的點擊來建立結構物的每一個構件,在參數設定部 份,透過下拉選單以及對話視窗設定其分析設計所需要的各項參數

【1】。

另一套工程界常用的結構分析軟體則為STAAD III,該軟體是美 國 REI 公司在結構工程軟體界二十年辛勤工作的結晶,雖然其軟體 介面為圖形化介面,但在模型建構方面卻為文字格式輸入,每一個模 型編號、節點座標、以及分析設計參數都透過固定格式以下指令的模 式建立在文字檔裡,使用者對於所要模擬的結構物必須在分析前先自 行規劃出每一個節點的編排方式以及計算各節點座標。面對大型規則 性結構物,STAAD III 提供了類似迴圈的指令,使用者可以透過此一

(23)

指令建立重複且規則性的構件。在新的版本STAAD Pro 中,更提供 了更親切的圖形操作介面取代了以往文字檔編輯輸入的方式,使用者 透過視窗化的資料輸入介面來建立結構模型資料【2】。

2-3-3 學術界上的發展

台灣大學研究生莊明介在結構分析程式物件導向使用者圖形介 面之研發的研究中,對非分線性動靜態結構分析程式PISA3D 所開發 的一套圖形化操作介面 GISA3D。分別利用物件導向技術及 MVC

(Model,View,Controller)三元架構並使用 Borland C++ Builder 6.0 開發工具完成此操作介面。GISA3D 是一種著重於視覺化前處理功能 的技術研發,其不僅提供類似 ETABS 與 SAP2000 的繪圖方式建立結 構模型,並也提供了智慧型判斷功能以及防呆機制,大大彰顯了結 構分析程式GUI 系統的存在價值【3】。

成功大學研究生林漢昇,在有限元素使用者介面的設計研究中,

利用 C++電腦語言、OpenGL 電腦繪圖函式庫以及 MFC 視窗基本函 式庫,結合另外兩位研究生所撰寫的應力應變分析程式以及自動網格 化圖形運算程式,並自行加入梁及桁架有線元素分析,整合而成一套 完整的有線元素分析圖形介面。其介面內容包含圖形建立工具列、下 拉選單、引導視窗以及樹狀結構選單。其中引導視窗的建立方式,可 以讓使用者決定所要分析的型態,並根據所選擇的型態引導使用者設 定其幾何圖形、材料參數以及邊界條件等參數。使用者不須為了相關 設定而煩惱,也讓分析流程簡化許多【4】。

(24)

2-4 結論

由以上文獻可以發現,不論在商業結構分析軟體或者學術單位所 開發的結構分析軟體,其操作介面皆採用支援物件導向技術的程式語 言所開發而成的圖形化操作介面,而所有操作介面的開發,其共同目 標都是為了使軟體的操作使用上能夠更便利且更有效率。在軟體的操 作介面演化的過程中,圖形化操作介面的開發不僅改善了以往軟體的 操作方式,也增加了軟體所能提供的功能。由於商業軟體在操作介面 的不斷改進,以至於在軟體介面設計方面一直處於領先地位,而學術 研究所開發的軟體介面也大多跟隨著商業軟體的腳步前進。目前在商 業化結構分析與設計軟體ETABS 與 SAP 中,為了讓其程式能夠處理 各種不同形式的結構案例,因此提供了許多不同的功能以應付不同的 需求,而這些功能的加入也增加圖形介面與操作的複雜度,如果所要 模擬的結構物並非特殊且複雜型式的時候,這些複雜的圖型介面與操 作介面仍然是如影如隨無法取捨,然而對於一般常用的建築結構物而 言,結構物本身就具有極高的規律以及重複性,只要抓住這個重點相 信可以運用更簡便的方式建立結構模型資料,而這也是本研究的重 點。

(25)

第三章 研究方法

3-1 前言

為了有效而快速的開發結構分析與設計前置處理程式,本研究採 用一般軟體開發程序的步驟作為程式發展的流程:1.定義研究問題的 內容與範圍,透過問題的研究與思考問題解決的方式,可以了解軟體 開發所要具備的功能以及需求;2.從事前置處理程式的系統分析與系 統設計、將此一功能需求經由流程合理性加以設計整理程式所需求的 特定規格與流程,以完成系統分析部份。在系統設計部分,則為將分 析資料流程轉述為程式流程以提供程式開發人員參考的依據;3.依據 系統分析與設計結果撰寫前置處理應用程式;4.測試本研究所開發的 應用程式,在完成程式撰寫後並進行程式的案例測試,即完成整個 程式的開發。

3-2 研究問題

本研究所開發的 AutoRC 所運用的範圍在於進行結構分析與設計 前所要執行的作業,其作業內容包模型的建立、設定材料性質、設定 載重以及設定支承邊界條件。而所能處理的目標結構物為七層樓以下 的鋼筋混凝土住宅結構物,結構物型式為一般規則性建築。本研究在 定義問題內容的部分,參考常用結構分析軟體前置處理操作方式並整 理出可能所發生的問題,根據所整理的問題內容思考解決的方案,並 以這些方案作為程式開發的主軸。其所整理出的問題如下:

(1)介面逐漸趨於複雜:

由於結構分析軟體不斷的更新中,所能提供的功能也越來越 多,對於一個結構分析與設計軟體來說,越複雜的介面越能顯示出此

(26)

軟體的專業性。但是對於一個使用者來說,複雜的操作介面可能會提 高軟體的使用門檻並降低使用者的使用意願。在土木界來說大多數工 程師對於電腦軟體的使用並不是相當熟析,複雜的介面在某些時候反 而會降低執行工作的效率,工作量大時也容易在操作上出錯或者疏忽 某個設定。

(2)結構模擬資料的除錯不易:

在某些情況下,使用者分析設計結構物時,當分析設計結果出 現不合理的情況時,大多都是因為在前置處理作業時漏掉某些設定或 者設定錯誤,亦或者是模型建構時並未正確將構件建立在正確的位置 上,例如利用繪圖模式來建構模型。面對這樣的情況,如果只是單純 資料設定錯誤可以藉由逐步檢查各項設定數值來改正,但是在模型建 構的錯誤情況下,除錯的部份就變成比較不容易,使用者必須詳細檢 閱模型圖形的每一個部份,面對複雜結構就得必須花費更多時間。

(3)前置處理作業的繁雜:

在進行結構分析設計的處理作業上,往往不只是軟體的操作而 已,分析前的前置處理工作,與分析後的資料判讀以及後續處理都遠 比分析軟體的操作來的繁複。以分前置處理工作來說,必須得計算結 構形的式詳細尺寸、斷面假設以及載重計算等,實際操作分析軟體時 再依照所準備的分析參數一一加以設定。對於複雜的結構物來說繁瑣 的前置處理作業是不可避免的,但面對構造單純的結構物是否也必須 完成每一個前置處理作業步驟?在一般的商用結構分析軟體裡答案 是肯定的。如此一來,工程師花費了許多時間用於沒有必要的前置處 理步驟。

(27)

本研究利用以下兩個方案來解決上述介面複雜、前置處理作業設 定繁雜以及結構模擬資料除錯不易的三大問題。

(1)簡化介面和操作的方式:

以往結構模型的建立與結構分析設計參數資料的設定是分開 的,使用者在定義完參數資料後,必須再以繪圖方式建立結構模型。

此一方法雖然可以模擬各種不同的結構形式,但也因為如此可能會造 成參數設定的複雜化以及在模型建構上出錯率的提高,對於一些構造 單純的結構物來說如此統一的複雜操作並不一定有效率。本研究採取 的改善方式為先輸入完模型建構資料與分析設計參數後再由程式自 動判斷並產生結構分析設計資料。在參數設定方面也不如以往的複 雜,透過基本資料的設定讓程式自動判斷其各項參數,例如:假設要 輸入的參數有A、B、C、D、E,但是在知道 A 的情況下就可以計算 出 B,而知道 B 跟 D 情況下可以計算出 E,所以可以將其所要輸入 的參數簡化為只有 A、C、D。如此一來,即可簡化參數設定,並簡 化其操作方式及介面,使用者也較不容易出錯。

(2)自動化產生結構設計資料:

一般來說在進行房屋結構分析設計時,工程師必須在電腦程式 分析運算之前假設所有構件的斷面尺寸,並計算此結構物的各項設計 載重,然後再進行電腦分析,針對分析結果檢核是否符合需求以完成 設計。這些前置作業通常十分繁瑣,本研究之自動化鋼筋混凝土結構 設計前置處理程式所開發的前置處理程式在完成上述結構基本資料 的輸入後,即可自動產生結構分析設計資料。自動化過程如下:

(28)

(a)結構模型自動產生:

根據使用者所提供的結構物基本尺寸資料,自動產生結構物模 型所需構件,而不再像以往使用繪圖方式建立結構模型,程式會根據 使用者所輸入的結構資料產生結構模型,減少使用者在模型建立上的 出錯。

(b)載重分配:

以自動產生的結構形式判斷各個構件連接關係,並依據基本資 料所輸入的材料性質與各種載重的參數,計算構件的自重、活載重以 及地震力。在靜載重與活載重的情況下,根據樓板分配到梁,梁分配 到柱的原則下進行載重分配。在地震力載重情況下,首先計算出每層 樓的水平地震總力,並平均分配給該樓層的柱構件,再由柱構件分配 到梁構件,以完成載重分配。

(c)斷面概估:

由載重分配的結果,利用鋼筋混凝土梁、柱設計經驗公式【6】

概算所有梁柱構件所需之斷面尺寸,以完成斷面概估。

3-3 系統分析與設計

從前軟體的開發,每個軟體工程師都有自己獨特的系統分析設計 方法,每個系統分析設計方式都是各有千秋,但卻無一致性,在開發 大型程式時子系統與子系統之間的整合與溝通變的十分不容易。直到 統一塑模語言(Unified Modeling Language, UML)的出現,制定了一 套標準的系統規劃方式,不同的軟體工程師可以藉由UML 統一的格 式在系統分析設計上進行溝通與討論。本研究之自動化鋼筋混凝土結 構設計前置處理程式所開發的AutoRC 對於完整的結構分析軟體來說

(29)

只屬於前置處理的部份,為了利於以後本研究的延伸以及功能上的改 進與擴充在系統分析設計方面本研究採用UML 來進行,並透過以下 三種不同的觀點的組合來描述整個系統架構【7】:

(1)功能觀點:

在功能觀點中,常利用使用案例圖及活動圖來表示,重點在描 述該系統運作的目標以及被期待要完成的目的,透過功能觀點可以先 大略模塑出系統大略雛形爾後才針對各個部份進行詳細描述。其功能 觀點相關圖形意義如下圖所示:

3-1 使用案例圖符號意義說明圖

(2)靜態觀點:

靜態觀點包含所有可以用來描述系統元素的圖表,但是在靜態 觀點中並不會去加以敘述各個元素之間的溝通、運作以及合作的關 係,靜態觀點像是一個系統的藍圖,描述的只是系統的外觀,這裡通 常會利用類別圖以及物件圖來加以表示。其靜態觀點相關圖形意義如 下圖所示:

(30)

3-2 靜態觀點圖形說明圖

(3)動態觀點:

在動態觀點中,包含說明物件與物件之間如何運作以及如何相 互回應,並加以詳細描述。透過動態觀點就可以清楚明白程式內部物 件之間的合作關係(合作圖)、物件如何隨著時間的改變以回應環境 的變化(循序圖)以及描述在進行某一操作流程時物件是如何運作(活 動圖)。其動態觀點相關圖形意義如下圖所示:

3-3 動態觀點圖形說明圖

(31)

3-4 軟體開發工具的運用與測試

軟體系統的規劃建置,必須針對不同的作業平台、程式語言以及 軟體技術來進行整合,這樣的整合往往費力且耗時,也為軟體的開發 增加了許多複雜度以及成本。針對這樣的問題,必須得在眾多的軟體 開發方案中找尋最佳的解決途徑,微軟所提出的『.NET』遠景中,

透過『.NET Framework』開發環境,在這個架構下,不論使用何種作 業平台或哪一種程式語言,軟體開發工程師都可以享有一致的軟體開 發方式,利用相同的開發方式與相同的語法,可以在不同的平台下移 轉或開發軟體,大大的提升軟體開發工程師的生產力。有鑑於此,本 研究為了後續系統開發與整合的考量,採用微軟『.NET Framework』

架構,並在Visual Studio .NET 2003 開發工具下利用 C# .NET 程式語 言 , 開 發 本 研 究 之 自 動 化 鋼 筋 混 凝 土 結 構 設 計 前 置 處 理介面。

為了使系統開發完成後能使其正確應用在鋼筋混凝土結構分析 設計前置處理作業上,程式開發過程必須經過不斷的測試、除錯以及 驗證,透過測試案例的執行,找出程式可能發生的錯誤以及問題,經 過修改以要求程式能夠更加穩定。因此本研究以數種不同樓層與結構 形式的鋼筋混凝土結構物作為測試案例,由本研究所開發的 AutoRC 自動產生結構設計資料,並利用商業軟體 ETABS 檢核其所產生的結 構設計資料之可靠性。最後將以一個相同條件的測試案例分別利用本 研究所開發的 AutoRC 與商業軟體 ETABS 的前置處理操作上作一個 比較,以印證本研究之AutoRC 是否比一般商業軟體在前置處理的操 作上能夠更有效率。

(32)

第四章 AutoRC 的開發

4-1 前言

在開發 AutoRC 中包含了兩個個重要的部分,首先進行整體系統 的分析與設計,其次為程式碼的撰寫。在系統分析與設計部份,本研 究先透過功能觀點,將上述章節所擬定出問題內容的解決方式作為構 思AutoRC 的功能依據。再透過靜態觀點來觀看實際的房屋結構,將 實際房屋結構的組成要素物件化。在物件的動態行為分析部分,在此 必須思考其物件與物件之間該如何去合作與溝通。在完成系統分析與 設 計 的 部 份 後 , 本 研 究 使 用 Vi s u a l s t u d i o . N E T 2 0 0 3 程 式 開發工具,並利用C# .NET 語言撰寫本研究之 AutoRC。

4-2 系統分析與設計

本研究所採用的系統分析與設計方式是利用 UML 所提供的三個 觀點來進行,利用功能觀點中的使用案例圖來描述整體系統的目標與 所要提供的功能。利用物件導向技術中抽象化的概念將實際房屋結構 的每個組成要素轉換成物件,再依據每個組成要素之間的關係來建立 物件與物件之間的組合關係,並思考其物件所需定義的屬性,以完成 物件的靜態結構分析。為了完成所規劃的功能與目標,使用者透過程 式介面與結構資料溝通,使其能新增、刪除、編輯、顯示以及運算其 結構資料,並利用 UML 中動態觀點所提供圖形加以詳細的描繪出 來,確定其物件動態行為的合理性,以完成物件動態行為的分析部 分。其三個觀點的系統分析與設計如下所述:

(33)

4-2-1 功能觀點分析

由於本研究之主要目標為研究出一個更簡單且直接的前置處理 操作方式,透過第三章的研究問題一節中所提到的簡化介面和操作的 方式以及自動化產生結構設計資料兩個方式來思考其AutoRC 所要提 供的功能,並且確定所要達成的目標。本研究所開發的 AutoRC 主要 功能可分為三個部分,其為輸入基本資料、顯示結構模型以及產生結 構設計資料(如圖4-1),在輸入基本資料部份,可分為結構基本資料、

材料設定、結構模型設定、樓板以及牆設定、載重設定以及斷面設定,

使用者可以經由這五種基本資料的輸入產生初步結構模型,並以電腦 繪 圖 技 術 將 其 所 產 生 之 結 構 模 型 顯 示 於 模 型 檢 視 視 窗 (Mo d e l View),模型檢視視窗提供模型修改功能。使用者可以在此修改結構 模型,以致使模型符合實際所要模擬結構的結構形式,接下來透過 AutoRC 所提供的載重分配、斷面概算功能完成整個結構設計資料的 產生。如上所述,其完整功能分析如使用案例圖(如圖 4-2)所示。

USER

ETABS

* *

*

*

<<extends>>

4-1 前置處理系統使用案例圖

(34)

設定材料

載重設定

產生結構模型

載重分配

斷面估算

計算地震力

圖形顯示

調整模型構件

產生結構設計資料 基本資料設定

4-2 前置處理系統完整使用案例圖

4-2-2 靜態觀點分析與設計

一個鋼筋混凝土房屋結構基本上是由梁、柱、樓板以及牆等數種 構件所組成的(如圖4-3):

4-3 結構物基本組成要素示意圖

(35)

而就一個構件來說,其所包含了斷面尺寸以及構件材料等資料。除了 房屋結構的外觀資料以外,則還必須考慮其載重資料,例如:靜載重、

活載重以及地震力。最後則是房屋結構的邊界條件資料,例如:房屋 的地基支承等。在整理出所有鋼筋混凝土房屋結構的基本資料後,還 必須找出這些資料相互間的關係。由於一個房屋結構(class Structure)

至少擁有一個以上樓層(class Floor),且每一個樓層又含了四個以上 的門架(class Frame)、一個以上的樓板(class Slab)以及四面以上 的牆(class Wall),每個門架則有梁(class Beam)、柱(class Column)

等構件。在載重(class Load)資料方面,每一個構件都包含所必須 承受的靜載重、活載重以及地震力資料,而結構物最底層構件則包含 地基支承資料。透過以上的組合關係可以明確地將各個構件以及所包 含的資料組合成一個完整的結構物。透過靜態觀點,可以將上述構件 資料繪製成類別圖(如圖 4-4),並在類別圖中詳細描繪各個類別之間 的組合關係。再將上述類別圖繪製成物件圖(如圖4-5)以驗證所規 劃資料結構的是否合理。

透過資料結構分析,可以繪製出房屋結構大略的類別圖,但這只 是說明了結構物中包含了那些類別以及這些類別之間的關係。而每個 類別都還只是個空殼,實際撰寫程式時,必須得詳細定義每個類別的 屬性資料與操作。以梁(Beam)類別來說,除了上述所談到的斷面 尺寸(Section)、材料(Material)以及載重資料(Load)屬性外,詳 細設計梁類別時,梁類別還必須包含起始節點(StartNode)、終點節 點(EndNode)、梁編號(No)、梁長度(Length)以及梁重量(Weight)

等屬性資料,根據物件導向中的物件封裝原則,這些梁構件屬性資料 皆屬於內部資訊不應隨便更動,故這些屬性資料皆設定為私有的

(private),即便往後需要針對梁物件的屬性資料進行修改設定,在

(36)

為了不破壞梁物件運作的正確性情況下,必須得透過特定的操作機制 來進行修改設定。在定義類別操作部分,由於靜態觀點主要功能只是 描述一個系統在靜態時的架構,上述所定義的類別皆屬於結構物的靜 態構架資料,此時並無法得知這些類別有哪些操作的部分,其類別操 作部分將在下面結構資料的操作一節中透過動態觀點來詳細定義。每 個類別在經過詳細設計其屬性資料後即完成結構物的資料結構靜態 模型部份。

4-4 資料結構類別圖

(37)

4-5資料結構物件圖

(38)

4-2-3 動態觀點分析與設計

如上系統的靜態分析所述,將實際的結構物裡的每一個構件透過 物件導向技術的抽象化轉換成物件,利用物件與物件之間的組合關係 塑模而成。但這只是結構物件的靜態藍圖,而程式所提供的功能,還 必須仰賴結構物件之間的動態行為來加以完成。當使用者透過操作介 面執行某些功能時,每一個操作都代表一個事件(Event)的發生,

每一個事件的發生都會傳遞訊息給相關的物件,這些物件接收到訊息 時,可能會執行某些物件的操作(Function),或者是狀態(State)的 改變,這樣的一個程序即為物件的動態行為。利用動態觀點所提供的 圖形,可以將這些動態行為透過以時間為基準或者運作先後順序的 方式加以分析描述。

當使用者利用 AutoRC 進行結構分析前置處理作業時,首先面臨 的第一個操作就是資料的設定,其資料設定方式是採用對話視窗設定 的方式來進行。如圖4-6(資料設定活動圖)所示:

4-6 資料設定活動圖

(39)

當使用者按下設定結構基本資料設定視窗,並且開啟資料設定對 話視窗,輸入或者修改所要設定的資料,然後按下關閉按鈕完成設 定。將上述使用者透過介面與結構資料的互動情況對映到物件來表示

(如圖4-7,資料設定順序圖)。

4-7 資料設定順序圖

在 AutoRC 執行時,使用者按下設定結構基本資料按鈕即代表 AutoRC 主視窗(ETBSMain Object , C# .NET 裡的每一個視窗介面都 是一個物件)裡SetStrButton_OnClick()事件的發生,此時 ETBSMain 呼叫CerateStrInfo()函式產生 StrInfo 類別的物件(StrInfo 即為結構基 本資料設定視窗),並傳入 Str 物件參照(Str Object 為 Class Structure

(40)

所產生的物件),StrInfo 類別內部也宣告了 Structure 型別的物件參照 Str,當 StrInfo 類別的物件產成時,透過建構子將傳入的 Str 參照與 StrInfo 類別所產生的物件內部的 Str 參照作一個動態聯繫,使得結構 基本資料設定視窗可以取得 Str 物件的屬性資料以及操作。利用 StrInfo_OnLoad()事件的觸發,將 Str 物件的屬性資料結構物名稱、結 構物形式、結構物用途、結構物所在地、樓層數以及總高度資料載入 StrInfo 裡的控制項。由於在資料結構分析設計時,其屬性資料皆定義 為私有的(Private),為了讓 StrInfo 類別所產生物件內的控制項可以 存取Str 物件內的屬性資料,則必須得在 Structure 類別內定義這些屬 性資料的Get 以及 Set 操作函式,最後當使用者設定完畢按下關閉按 鈕時則會觸發 StrInfo 類別所產生的物件內 CloseButton 控制項的 OnClick 事件,將所有設定值透過 Structure 類別所定義的 Set 操 作機制設定其屬性值,並且關閉結構基本資料設定視窗以完成操作。

在使用者輸入完基本資料之後,AutoRC 就會依照使用者所設定 的資料產生初始結構資料,其包含 Str 物件裡的所有 Beam、Column、

Slab 等等物件,在初始結構資料產生完畢時 ETBSMain 就會將這些結 構資料交給 DrawForm 物件繪製結構模型並且顯示。DrawFrom 物件 主要功能除了顯示平面以及立體模型之外,也提供了模型的控制與編 輯的功能。

模型顯示的部份,為了讓使用者可以檢視 AutoRC 根據基本資料 所自動產生的結構模型,以及進行結構模型的編輯,AutoRC 在 DrawForm 物件中提供了結構模型繪製的功能。如圖 4-8(模型顯示 順序圖)所示,DrawForm 物件透過 DrawStructure()函式繪製整個結 構物(Str 物件),Str 物件透過 DrawFloor()函式繪製底下每一樓層

(Floor 物件),而 Floor 物件透過 DrawElement()將底下的每一個

(41)

B e a m 、 C o l u m n 以 及 S l a b 類 別 所 產 生 物 件 的 節 點 座 標 利 用 Trans3DPoint()函式轉換成平面座標並且產成繪圖物件(GraphicsPath)

回傳至DrawForm 物件,再由 DrawForm 物件的 ReDraw()函式將所有 繪圖物件繪製在視窗上。在此,為了取得每一個構件在平面座標系統 的位置以及產生繪圖物件,其 Beam、Column 以及 Slab 類別所產生 的物件內必須定義 Trans3DPoint()函式以及 DrawElement()函式,

Trans3DPoint()函式用於轉換其立體座標系統的節點座標,而 DrawElement()函式則是用於將轉換過的座標產生其繪圖物件。

4-8 模型顯示順序圖

控制功能部分,DrawFrom 提供了模型的縮放以及旋轉的功能。

以結構模型縮放為例,如圖 4-9(模型操作活動圖)所示,當使用者 在模型顯示視窗內按下右鍵下拉功能選單並點選縮放功能時,則觸發 DrawForm 物件裡的 Menu_OnClick()事件以及 MenuItem_OnClick()事

(42)

件,此時 DrawForm 物件內的 SizeChange 變數變為 True,即表示為 縮放功能開啟,而視窗所顯示的結構模型由靜態展示狀態變為可以改 變大小的狀態,結構模型隨著滑鼠的上下移動即觸發了Mouse_Move() 事件,透過Compute_SizeChange()將滑鼠移動的距離換算成要改變的 大小,並利用 ReDraw()函式來重新繪製結構模型,當使用者再次點 選縮放功能選項,即 SizeChange 變為 False 代表縮放功能關閉,

並回復到靜態模型展示狀態。

Model SizeChange Model Rotate

ComputeSizeChange

ReDraw

ComputeRotateAngle Menu_OnClick( )

MenuItem_OnClick( ) [ SizeChange == true]

MenuItem_OnClick( ) [ isRotate == true]

Mouse_Move( ) Mouse_Move( )

MenuItem_OnClick( ) [

SizeChange == false] MenuItem_OnClick( ) [ isRotate==false]

[SizeChange==false && isRotat==false]

DrawElement DrawElement

Mouse_up( ) Mouse_up( )

4-9 模型操作活動圖

編輯功能部分,其包含兩個動作,首先為選取所要編輯的構件,其次 為執行編輯的動作,如新增或者刪除構件。在選取構件的部份,如圖 4-10(模型構件選取合作圖)所示,DrawForm 物件呼叫本身的 DrawStructure()函式,透過階層的方式由 Str 物件到 Floor 物件再到

(43)

Beam、Columnu 以及 Slab 物件去產生所有模型構件的繪圖物件,並 回傳至 DrawForm 物件,其繪圖物件定義了 ID 屬性,使之能與其構 件相對應,透過 ReDraw()函式將所有繪圖物件繪製在模型顯示視窗 上。當使用者進行構件選取而觸發滑鼠事件時,DrawForm 可以擷取 到滑鼠點選或者框選的範圍並利用 CheckElement()函式判斷其範圍 包含哪些構件的繪圖物件,並回傳其 ID 屬性。DrawForm 物件經由 SelectElement()函式,搜尋 Str 物件內其 ID 屬性相對應之 Beam、

Column 以及 Slab 物件,變更其相對應物件的 Select 屬性為 true,即 代表此構件已被選取。在編輯構件的部份,其構件狀態的改變如圖 4 - 1 1 ( 模 型 編 輯 狀 態 圖 ), 當 使 用 者 按 下 刪 除 的 功 能 而 觸 發 MenuItem_OnClick 事件時,則 DrawForm 會執行所有的 Select 屬性為 true 之 Beam、Column 以及 Slab 類別所產生物件裡的 DelElement()函 式,變更其 Enable 屬性為 false,即代表此構件已無作用並且不顯示 在結構模型上,而往後所有的運算也不會考慮此構件。

自動化結構設計資料的產生包含三個部份,依序為自動化產生結 構模型、自動化載重分配以及自動化斷面概算。其自動化結構模型建 構部分,透過階層的方式,由Str 物件呼叫 CreatFloor()函式產生各樓 層Floor 物件,而所產生 Floor 物件再呼叫本身所定義的 CreatNode()、

CreatBeam()以及 CreaSlab()來產生節點(Node)、梁以及樓板物件,

由於柱物件的節點屬性必須等待所有樓層的節點物件產生完畢後才 能建立,故在產生完每一樓層的節點、梁、樓板物件後才依序產生每 一樓層的柱物件(如圖4-12 所示)。

(44)

DrawElement( ): gd_object: SelectElement( ):

DrawFloor( ): gd_object: SelectElement(ID):

4-10 模型構件選取合作圖

4-11 模型編輯狀態圖

(45)

4-12 結構物件產生示意圖

在自動化載重分配的部份,其分配原則為樓板分配給梁、梁再分 配給柱。所以在樓板 Slab 物件傳遞載重給梁 Beam 物件的流程如圖 4-13(載重分配順序圖)所示,首先呼叫 Slab 物件的 ComputeBoundary ()函式計算樓板四邊邊長,並利用 Compare()函式依據 45 度切割原則 計算每個邊長所分配到的載重,最後透過 PassLoadToBeam()函式將計 算好的載重傳遞給Beam 物件,而 Beam 物件再呼叫 PassLoadToCol() 函式將載重傳遞給Column 物件,完成載重分配。

(46)

4-13 載重分配順序圖

在自動化斷面概算的部份,在完成載重自動分配的部份後,每一 個梁、柱物件都已經設定好其所要承受的載重屬性,其梁、柱物件再 呼叫本身所定義的 DesignSection()函式計算出初始斷面大小,完成 斷面概算。

4-3 程式撰寫

在完成 AutoRC 的系統分析與設計之後,即可進行程式碼的撰 寫。首先利用上述系統分析中的功能觀點為依據,設計 AutoRC 的操 作介面,在根據靜態與動態觀點的分析與設計結果進行程式碼撰寫。

以下將介紹AutoRC 介面設計的部份以及程式內部中較為複雜的演算 法。

(47)

4-3-1 介面設計

軟體的操作介面是使用者與應用程式溝通的一個重要橋樑,透過 設計良好的軟體操作介面,使用者更能有效率的執行應用程式所提供 的功能。

(1)AutoRC 主視窗:

AutoRC 主視窗配置如圖 4-14,其主視窗主要功能在於引導使 用者在最短的時間內可以完成前置處理作業,主視窗左邊為基本資料 設定區塊,在這個區塊內配置了六個資料設定按鈕,使用者可以依序 從上而下設定結構基本資料、材料設定、結構模型設定、樓板以及牆 設定、載重設定以及斷面設定,以完成全部的參數設定。視窗中間部 分則提供了展示模型視窗的區域,可以同時顯示平面以及立體模型構 架,為了達到簡化介面的目的,主視窗的功能下拉選單以及功能方塊 列並未如商業軟體般的將所有功能置入,而只提供模型在產生完畢後 所要使用的功能,例如:功能方塊列只提供開檔、存檔、新增結構以 及選擇結構平面等功能,而下拉選單則提供了視窗顯示相關設定以及 模型資料的計算功能。

4-14 AutoRC 主視窗介面

(48)

(2)結構基本資料設定視窗:

結構基本資料設定視窗(如圖 4-15)的主要功能在於設定屬於 整體結構物的基本資料,從資料結構分析所規劃的類別圖中可以得 知,其將所要模擬的結構物視為一個物件,此物件包含了整體結構物 的基本屬性與組成物件,透過結構基本資料設定視窗,使用者可以設 定在資料結構中 Structure 物件內所定義的基本屬性,其為結構物名 稱、結構物形式、結構物用途、結構物所在地、結構物樓層數以及結 構物總高度。

4-15 結構基本資料設定視窗介面

(3)材料設定視窗:

材料設定視窗配置(如圖 4-16),其主要目的在於設定結構物 中所要使用的混凝土材料,由材料設定視窗左邊可知,在 AutoRC 中 已經內建四種強度的混凝土材料供使用者選擇,除此之外,使用者可 以透過此介面自行定義、修改或刪除混凝土材料。

(49)

4-16 材料設定視窗介面

(4)結構模型設定視窗:

結構模型設定視窗主要提供兩個功能,其為設定結構平面尺寸 以及調整每一層樓高度,在設定結構平面尺寸的部份(如圖 4-17),

使用者可以設定結構平面的X、Y 向的跨數以及長度,預設情況程式 會將使用者輸入的長度除以跨數即為每一跨的長度,大部分情況來 說,結構平面的每一跨長度不一定會相同,所以在設定結構平面尺寸 視窗也提供了每一跨個別調整長度的功能方便使用者針對實際結構 形式進行調整(如圖 4-18)。在調整每一層樓高度的部份來說(如圖 4-19),使用者可以透過此介面各別調整每一層樓的高度。在各別調 整部分,介面會即時顯示調整後的模型,方便使用者比對結構模型是 否符合要模擬的形式。

(50)

4-17 結構平面設定視窗介面

4-18 跨距調整視窗介面

(51)

4-19 樓層高度調整視窗介面

(5)樓板 / 牆設定視窗:

樓板 / 牆設定視窗(如圖 4-20)的主要功能在於設定結構物樓 板以及牆的屬性資料,一般結構物的牆有許多種類,例如:磚牆、水 泥牆、輕質隔間牆等等,AutoRC 裡所定義的牆元素,其目的在於計 算靜載重所需並非結構計算用,故在此介面提供了設定牆的厚度尺寸 以及牆的單位重量以便計算牆的自重。在樓板的部份,由於鋼筋混凝 土結構物所使用的都是混凝土材料的樓板,故在樓板設定除了設定厚 度尺寸外也提供了混凝土材料供使用者選擇,在此所有可以選擇的 混凝土皆為上述材料設定時所定義的混凝土材料。

(52)

4-20 牆/板設定視窗介面

(6)載重設定視窗:

由於 AutoRC 自動計算載重部分只會計算模擬的構件部分,如 梁、柱、牆以及樓板的重量,其所計算的載重總合會小於實際結構物 載重,會引響網後計算地震力以及斷面概估時的結果,所以載重設定 視窗介面(如圖4-21)中提供了靜載重與活載重的倍率設定供使用者 調整,當倍率大於 1 時即為放大載重,反之小於 1 時則為縮小載重,

在此程式預設值為1。地震力設定部份,介面提供了兩個功能,其為 程式自動概估地震力以及自行詳細設定地震力。在程式自動概估部 份,AutoRC 內建了一組地震力設計參數作為內定值,若使用者需要 自行定義地震力設計參數,可以選擇自行詳細設定地震力的選項,將 建築技術規範所定義的參數鍵入(如圖 4-22),程式會依據參數自 動計算結構物所承受的地震力大小。

(53)

4-21 載重設定視窗介面 圖 4-22 地震力參數設定視窗介面

(7)斷面設定視窗:

斷面設定視窗(如圖 4-23)的主要目的在於設定斷面概算時所 需要的斷面設計參數,AutoRC 在進行結構前置處理作業時不需要一 一去設定每一根梁、柱的斷面尺寸,透過斷面概算方式,AutoRC 可 以計算出結構物中每一根梁、柱構件的斷面尺寸。在梁斷面參數設定 部份,需設定的參數為梁的寬深比以及鋼筋比。柱斷面參數設定的部 份,由於柱的斷面形式程式內定為方柱,故不需要去設定寬深比,與 梁斷面相彷,柱斷面也需要設定其鋼筋比。最後則是設定梁、柱斷面 所使用的混凝土材料,其混凝土材料為之前材料設定中所定義的。一 般情況而言,建築師為了結構物空間的利用以及美觀的需求,在建築 平面圖上都會根據設計需求標註樑、柱斷面尺寸。為了滿足此一需 求,在符合安全性的條件下,使用者可以透過最大梁深以及最大柱寬 的設定來限制AutoRC 所概算出的樑柱斷面尺寸。

(54)

4-23 斷面設定視窗介面

(8)模型顯示視窗:

模型顯示視窗(如圖 4-24)的主要功能在於完成了所有基本資 料設定後,透過 AutoRC 自動產生結構模型功能產生模擬結構物的所 有構件,並利用電腦繪圖技術將結構模型以 2D 或者 3D 模式顯示在 模型顯示視窗上,由於所自動產生的結構模型不一定符合所要模擬的 結構形式,故在模型顯示視窗內提供了編輯以及調整結構模型的功 能。使用者對著模型顯示視窗按下右鍵即可出現功能表,提供使用者 旋轉、縮放、移動模型的控制功能。在調整模型方面,若使用者在自 動產生完模型之後還想再對模型進行跨距或者樓高的調整,可以藉由 右鍵功能表所提供的調整功能進行修改。在模型構件的選取部份,右 鍵功能表提供兩種選取模式,為點選以及框選模式,並且使用者可以 設定單一(single)樓層構件的選取或者是全部(all)樓層構件的選 取。在單一樓層選取模式下,使用者可以依照不同的需求選取所要編 輯的構件,在全部樓層構件的選取模式下,使用者在任一樓層所選取

(55)

的構件,其他樓層相同位置編號的構件也會被選取。在構件編輯的部 份,右鍵功能表提供了新增以及刪除的功能,使用者可以新增或刪 除所選擇的構件。

4-24 模型顯示視窗介面

(9)模型顯示設定視窗:

模型顯示設定視窗(如圖 4-25)的主要功能在於提供使用者設 定關於模型外觀顯示資訊的設定,其設定內容包含節點、梁、柱、樓 板的顯示與否、顯示顏色、構件編號以及顯示視窗的背景顏色。使用 者可以透過設定調整最佳的顯示狀況,在構件選取時,使用者亦可利 用此設定介面隱藏不需要的構件,避免在選取時發生選取錯誤的情 形。

(56)

4-25 模型顯示設定視窗介面

(10)結構設計結果顯示視窗:

結構設計結果顯示視窗(如圖 4-26)的主要功能為提供使用者 檢視AutoRC 所自動產生的結構設計資料。其功能包含檢視梁、柱的 靜、活載重、地震力計算結果以及斷面概算結果,其結果以表格方式 呈 現 , 使 用 者 可 以 透 過 此 介 面 了 解 結 構 物 載 重 分 配 情 況 以 及 梁、柱斷面預估的大小尺寸。

4-26 設計結果檢視視窗介面

(57)

4-3-2 演算法

為了更詳細描述 AutoRC 程式撰寫過程與內容,在此將針對開發 AutoRC 中較複雜之演算法加以說明。

(1)電腦 3D 繪圖演算法:

本研究自動化鋼筋混凝土結構設計前置處理程式提供一個模 型檢視與操作的功能,在立體模型的呈現方面,一般都是運用3D 電 腦繪圖技術將立體空間資料呈現在電腦螢幕的平面上。目前常用的 3D 繪圖技術有 OpenGL 以及 DirectX 3D 等等,由於本研究之模型檢 視功能的目的單純,故本研究並未採用上述兩種方法,而是參考資訊 月刊98’11 裡的淺談 3D 繪圖原理一文【8】中所提到的座標轉換技術,

並將裡面所談到的座標轉換部分自行撰寫成一個函式庫,以便模擬 3D 圖形資料在 2D 平面上顯示,其座標轉換方法如下所述。首先,

假設三度空間的座標系統用(X,Y,Z)來表示(如圖 4-27),矩形區域 代表螢幕平面,假設眼睛是看著座標原點0,θ 表示對 X 軸的旋轉角 度,Ψ 表示對 Z 軸的旋轉角度,Rho 為眼睛到原點的距離,P(θ, Ψ, Rho)

為極座標表示法,現在利用矩陣座標轉換,將(圖 4-27)的座標變成

(圖 4-28)的座標,以 Z 為軸,旋轉 -(90-θ) 度,再以 X 為軸旋轉 (180-Ψ),然後將 X 反向,因此若點 A 在(圖 4-27)中為(X0,Y0,Z0),

則到(圖4-28)後則變成以下式子:

(58)

4-27 立體座標系統一 圖 4-28 立體座標系統二

⎥⎥

⎢⎢

×

⎥⎥

⎢⎢

×

⎥⎥

⎢⎢

×

⎥⎥

⎢⎢

⎡−

0 0 0

1 0

0

0 ) 90 cos(

) 90 sin(

0 ) 90 sin(

) 90 cos(

) 180 cos(

) 180 sin(

0

) 180 sin(

) 180 cos(

0

0 0

1

1 0 0

0 1 0

0 0 1

Z Y X θ

θ

θ θ

ψ ψ

ψ ψ

⎥⎥

⎢⎢

×

⎥⎥

⎢⎢

=

0 0 0

cos cos

sin sin

cos

sin cos

sin cos

cos

0 cos

sin

Z Y X ψ ψ

θ ψ

θ

ψ ψ

θ ψ

θ

θ θ

最後,把眼睛作為原點,如(圖4-29),再做一次座標轉換,並令成 新座標(Xe,Ye,Ze):

4-29 立體座標系統三

(59)

⎥⎥

⎢⎢

⎡ +

⎥⎥

⎢⎢

×

⎥⎥

⎢⎢

=

⎥⎥

⎢⎢

Rho Z

Y X

Ze Ye Xe

0 0

0 0 0

cos cos

sin sin

cos

sin cos

sin cos

cos

0 cos

sin

ψ ψ

θ ψ

θ

ψ ψ

θ ψ

θ

θ θ

接下來利用等比例的關係計算出真正螢幕的解析度,調整座標以符合 螢幕解析度:

Ye cx d Xe

SX ⎟+

⎜ ⎞

= ⎛

⎟⎠

⎜ ⎞

− ⎛

= Ze

d Ye cy SY

利用上述方法可以將一個三度空間座標轉換成二度座標顯示在螢幕 上,改變 θ 或 Ψ 的值就可以讓使用者觀看的視角改變,如同螢幕內 的模型在旋轉一樣,同理,可以利用 Rho 以及 d 來控制螢幕內模型 的遠近。

(2)載重分配演算法:

在上述結構物件的動態分析中所提到,自動化載重分配原則為 樓板分配給梁、梁再分配給柱,故可以利用靜態觀點中物件與物件之 間的連結關係來進行載重傳遞與分配。在樓板物件的連接關係中,一 個樓板是由四根梁所承接著,故本研究在樓板物件中定義四個梁物件 的參照,這四個參照指向與樓板位置相鄰的四個梁物件來表示此承接 關係,樓板基本屬性裡定義了四個節點物件的參照,而在同一樓層所 有梁物件中會有其中一個梁物件所定義的兩個節點物件的參照跟樓 板物件中的其中兩個節點物件的參照是指向同一個節點物件,透過這 樣的關係就可以利用迴圈來搜尋並找出相鄰的梁物件。在梁的連結關 係中,一根梁的兩端各由一根柱子所承接,故在每一個梁物件中定義

(60)

了兩個柱物件的參照,這兩個參照分別指向與梁位置兩端所相鄰的柱 物件,由於柱的編號與節點編號的方式是一樣的,所以可以透過梁兩 端的節點編號找到所連結的柱構件。在柱的連結關係中,由於柱需要 承受相鄰的梁所傳遞的載重,所以在柱物件中必須定義梁物件的參照 來指向柱位置相鄰的梁物件。如上所述,柱的編號與節點的編號方式 一樣,故利用柱的編號可以在同一樓層中搜尋到四根相鄰的梁,其梁 結點編號與柱的編號一致的。透過上述的演算法將所有構件之間的連 結關係建立起來後,當程式在計算樓板的載重時就可以輕易傳遞給要 承接的梁構件,同樣的梁或者柱在計算載重或彎舉時也能輕易的傳遞 給要承接的構件。

(3)斷面概估演算法:

一般而言,土木工程師在進行結構分析設計前,需要針對所要 模擬之結構物進行構件的斷面概估,這方面往往需要有經驗的結構工 程師來進行評估,以便建構模型時將所概估的初始斷面設定到程式中 以進行分析。本研究所開發的 AutoRC 為了簡化前置處理作業的程 序,在初始斷面概估的部分將經由程式自動計算出來,利用靜力學以 及上述的載重分配演算法,在結構物進行分析前先計算出每個梁、柱 構件所需要承受的載重,其包含靜載重、活載重以及地震力,最後透 過鋼筋混凝土設計的經驗公式【6】估算出梁柱構件的初始分析斷 面,其估算之演算法如下:

(1)梁構件概估:

首先假設一合理的梁斷面鋼筋比 ρ 值,並符合規範所定義,為:

max

min

ρ ρ

ρ

其中最小鋼筋比如下所示:

(61)

fy fy

c f' 14 8

. 0

min = ≥

ρ

假設

d

t =

d

,最大鋼筋比如下所示:

fy c

85

f '

. 0 7 3

1

max

β

ρ

=

當公式中的混凝土強度

f

'

c

280kgf/cm2時,則

β

1 =0.85反之,當

2時,則

kgf/cm 280

'

c

>

f

0.65

70 280 05 '

. 0 85 .

1 0

=

f c

β

一般而言 ρ 值會

假設在0.3

ρ

min ~0.5

ρ

max之間,因此在 AutoRC 斷面設定視窗中提供了鋼 筋比係數讓使用者設定,其設定範圍為0.3~0.5 之間。在假設完鋼筋 比之後,接下來就是計算梁的設計彎矩強度

φ

u

n

M

=

M

(假設為張力控

制斷面,故折減因子

φ

=0.9),以及計算強度抗力係 ⎟

⎜ ⎞

⎝⎛ −

= fy m

Rn

ρ ρ

2

1 1 ,

f c m fy

' 85 .

=0 ,則可得到斷面係數

n n

R

bd2 = M 。最後選定一組適當的 b、

d 組合使其滿足在斷面設定視窗中所設定的梁的寬深比,即可求得梁 的斷面大小。

(2)柱構件概估:

根據ACI Code之規定,一般將柱的設計分為三類,第一類為當柱構 件僅承受很小或者可忽略不計之橈曲彎矩時,此時柱的強度由最大軸 向壓力所控制。第二類柱為混凝土壓碎控制,此類柱達到破壞時張力 鋼筋未達到降服,而壓力側之混凝土先被壓碎。第三類柱為張力筋降 伏控制,此類柱其彎矩作用影響較大。在進行柱斷面概估前,程式首 先要判斷其所要概估柱構件是第幾類柱,判斷的方式為先計算出柱在 承受軸壓時所需要的斷面積Ag,假設保護層厚度d = 5,再計算出平衡 狀態下的偏心距eb,在此之前,程式已經透過載重分配計算出柱構件

(62)

所要承受的靜載重、活載重以及地震力並計算其標稱軸向荷重及橈曲 彎矩,假設柱構件為橫向箍筋壓力控制,其強度折減係數Φ為 0.65,

則可計算出其設計載重Pn以及彎矩Mn,實際柱構件之偏心距e為

n n

P

M 。 根 據 柱 的 強 度 交 互 影 響 圖 , 當

e

<

e

b 時 , 概 估 方 式 採 用

第二類柱的方式設計,當

e

>

e

b則採用第三類柱的方式設計。

Figure

Updating...

References

Related subjects :