Chung-Hua University Repository:主頁

156

Transcript of Chung-Hua University Repository:主頁

Page 1: Chung-Hua University Repository:主頁
Page 2: Chung-Hua University Repository:主頁
Page 3: Chung-Hua University Repository:主頁
Page 4: Chung-Hua University Repository:主頁
Page 5: Chung-Hua University Repository:主頁
Page 6: Chung-Hua University Repository:主頁

中文摘要

國內隧道工程積極探討及引進新技術的同時,僅部分單位針對

施工中隧道之方向及高程控制、開挖斷面收方、絕對變位量測與其它

相關測量工作進行探討,為了設計出更快速、更符合於現地要求,所

以進行此視窗程式之開發與研究。

本研究內容包含隧道斷面收方的量測技術、隧道斷面收方的測量

原理,以及Visual Basic程式語言應用於工程技術等探討。另外在

可視化程式撰寫方面,使用以視覺化為主體的程式語言 Microsoft

Visual Basic 6,使用者可看到即時執行的資料畫面。本研究之視窗

程式內容包含隧道斷面收方資料處理、隧道斷面收方繪圖等。

本研究成果為利用傳統隧道斷面收方的方法結合 Visual

Basic 程式語言撰寫成一套視窗程式,並藉由實際隧道斷面收方資

料測試視窗程式之可行性。且撰寫完成之視窗程式經測試後可使用在

實際隧道的斷面收方上。本研究所完成之視窗化表單包含工程基本資

料系統、隧道斷面收方資料處理系統、隧道收方繪圖系統。結合測量原

理與程式編輯撰寫適合隧道斷面收方之程式,期能提昇國內隧道工

程測量之多元化。

關鍵字: 隧道斷面收方、測量、後方交會法、Visual Basic 視窗程式設

計、可視化

I

Page 7: Chung-Hua University Repository:主頁

ABSTRACT

While the domestic tunnel engineering is enthusiastically discussed and instilled into new techniques, merely few organizations proceed to make studies - the direction, the control of elevation, the profile survey of the excavation, the absolute variation and any other factors relative to the measurement of the tunnel - to design more efficiently correspondent with the request of the field and therefore this windows programming has being developed and researched.

This research includes the measurement of resection method, the principle of profile survey of tunnel and the application of Visual Basic programming language to engineering techniques. According to the coding of visualization programming, Microsoft Visual Basic 6, using visualization as a principal part, makes it possible for users to immediately see data frames executed in progress. The content of programming design in this research consists of the data processing and illustration of the profile survey of tunnels, etc.

Combined traditional profile survey of tunnels with Visual Basic programming, a set of windows programming whose feasibility has been tested by actual data of the profile survey of tunnels and thus is proven to be usable is the product of this research. The form is composed of data system of the construction, the data processing system of the profile survey of tunnels and the illustration system of the survey of tunnels. Joining the rule of measurement in the coding of the programming language to create a set of the windows programming adapted to profile survey of tunnels contributes to the expectation of raising the diversity of the measurement of domestic tunnels.

Key word: profile survey, measurement, Resection Method, Visual Basic

Programming Design, Visualization.

II

Page 8: Chung-Hua University Repository:主頁

致 謝

研究撰寫期間,承蒙恩師 李煜舲博士熱心指導、疑難解說、圖文

斧正,使學生能順利完成學業,特致崇上敬意與謝意。

另感謝宜蘭大學 趙紹錚博士於口試期間不吝指導使學生受益良

多,另感謝本校 楊朝平老師在學生組內及組外口試時之用心指導。

同時亦感謝 呂志宗老師對於學生在課業上之解惑及 吳淵旬老師在

學生在學期間用心的教學與指教,學生至感銘謝。

在校期間,由衷感謝吳俊傑、許榮達等專班學長及一起奮鬥的同

儕們,皆讓學生無論在專業知識或為人處事方面所得甚多。

最後,感謝我的家人爸爸、媽媽及親愛老婆的全心支持,讓我無

後顧之優,能順利完成學業。

謹此,獻上我深深的感謝給那些幫助我、協助我的家人、師長、好

友們。

謹識

民國九十五年一月十七日 於新竹

III

Page 9: Chung-Hua University Repository:主頁

目 錄

中文摘要 ......................................................................................................................... I ABSTRACT .................................................................................................................. II 致 謝 .......................................................................................................................... III

目 錄 .......................................................................................................................... IV

表 目 錄 ...................................................................................................................... VI

圖 目 錄 .................................................................................................................... VII

第一章 緒論 ................................................................................................................... 1 1.1 研究背景 .......................................................................................................... 1 1.2 研究動機與目的 .............................................................................................. 1 1.3 研究內容 .......................................................................................................... 2 1.4 研究流程 .......................................................................................................... 3

第二章 文獻回顧 ........................................................................................................... 4 2.1 前言 .................................................................................................................. 4 2.2 隧道斷面收方之量測技術 .............................................................................. 4

2.2.1 全自動隧道斷面收方系統- Profiler4000 量測技術 .......................... 4 2.2.2 三維變形光學量測技術 ....................................................................... 6

2.3 隧道斷面收方之測量原理 .............................................................................. 8 2.3.1 前方交會法 ........................................................................................... 9 2.3.2 後方交會法 ......................................................................................... 12 2.3.3 綜合式後方交會法 ............................................................................. 13

2.4 Microsoft Visual Basic 視窗程式語言之原理與相關應用 .......................... 14 第三章 隧道斷面收方技術與相關作業流程 ............................................................. 21

3.1 前言 ................................................................................................................ 21 3.2 隧道斷面收方基本資料蒐集 ........................................................................ 21

3.2.1 隧道線形曲線資料 ............................................................................. 21 3.2.2 隧道支撐型式 ..................................................................................... 22 3.2.3 隧道豎曲線資料 ................................................................................. 22

3.3 隧道斷面量測方法 ........................................................................................ 22 3.4 隧道斷面收方之時機 .................................................................................... 23 3.5 斷面收方作業流程與步驟之建立 ................................................................ 24

第四章 隧道斷面收方視窗程式之撰寫與設計 ......................................................... 29

4.1 前言 ................................................................................................................ 29 4.2 Visual Basic 6.0 程式語言 ............................................................................ 30 4.3 資料庫系統 .................................................................................................... 32 4.4 隧道斷面收方處理程序與視窗程式設計 .................................................... 33

IV

Page 10: Chung-Hua University Repository:主頁

4.4.1 主要繪圖之視窗介面設計 ................................................................. 33 4.4.2 工程資訊系統之視窗設計 ................................................................. 33 4.4.3 資料處理系統之視窗設計 ................................................................. 33 4.4.4 成果顯示系統之視窗設計 ................................................................. 34 4.4.5 技術支援系統之視窗設計 ................................................................. 34

第五章 隧道斷面收方視窗程式實測 ......................................................................... 43

5.1 前言 ................................................................................................................ 43 5.2 玉長公路隧道 ................................................................................................ 43

5.2.1 工程概述 ............................................................................................. 43 5.2.2 隧道斷面收方基本資料 ..................................................................... 43 5.2.3 收方步驟 ............................................................................................. 44 5.2.4 隧道斷面收方視窗程式之應用與成果顯示 ..................................... 45

5.3 汐止山岳鐵路隧道 ........................................................................................ 46 5.3.1 工程概述 ............................................................................................. 46 5.3.2 隧道收方基本資料 ............................................................................. 46 5.3.3 應用隧道斷面收方程式之結果 ......................................................... 47

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

6.1 結論 ................................................................................................................ 71 6.2 建議 ................................................................................................................ 71

參考文獻 ...................................................................................................................... 72

附 錄 ....................................................................................................................... 74

V

Page 11: Chung-Hua University Repository:主頁

表 目 錄

表 2.1 三維變形量測與傳統收歛量測之整理比較...................................................15表 2.2 三維變形量測系統之優缺點整理...................................................................16表 5.1 玉長公路隧道工程控制樁資料.......................................................................48表 5.2 玉長公路隧道工程中線資料...........................................................................49表 5.3 玉長公路隧道工程標準斷面資料...................................................................50表 5.4 汐止山岳鐵路隧道控制樁資料.......................................................................52表 5.5 汐止山岳鐵路隧道中線資料...........................................................................53表 5.6 汐止山岳鐵路隧道標準斷面資料...................................................................54

VI

Page 12: Chung-Hua University Repository:主頁

圖 目 錄

圖 2.1 Profiler 4000 設備............................................................................................18圖 2.2 測量之原理.......................................................................................................19圖 2.3 前方交會法圖形...............................................................................................20圖 2.4 後方交會法圖形...............................................................................................20圖 3.1 緩和曲線各部名稱...........................................................................................26圖 3.2 單曲線各部名稱...............................................................................................26圖 3.3 豎曲線各部名稱...............................................................................................27圖 3.4 架設在隧道內任一點上...................................................................................27圖 3.5 架設在已知點上...............................................................................................27圖 3.6 Leica TCR 307 收方儀器..................................................................................28圖 3.7 隧道斷面收方圖...............................................................................................29圖 4.1 專案建立選擇圖示...........................................................................................35圖 4.2 Visual Basic 視窗設計介面..............................................................................35圖 4.3 視窗程式設計...................................................................................................36圖 4.4 Excel 之 csv 檔案形式.....................................................................................37圖 4.5 Asscess 2000 資料庫介面................................................................................37圖 4.6 隧道斷面收方資料匯入 Asscess 2000 資料庫...............................................38圖 4.7 主要繪圖視窗介面設計...................................................................................38圖 4.8 工程資訊系統視窗設計...................................................................................39圖 4.9 資料處理系統之視窗設計...............................................................................40圖 4.10 成果顯示系統之視窗設計.............................................................................41圖 4.11 技術支援系統之視窗設計.............................................................................42圖 5.1 玉長公路位置圖...............................................................................................57圖 5.2 隧道斷面收方程式主畫面(玉長公路隧道)...............................................58圖 5.3 開啟新檔畫面(玉長公路隧道)...................................................................59圖 5.4 收方資料 Excel 檔(玉長公路隧道).............................................................60圖 5.5 隧道斷面收方程式資料處理系統(玉長公路隧道)...................................61圖 5.6 經隧道斷面收方程式資料處理系統後(玉長公路隧道)...........................62圖 5.7 玉長公路隧道斷面收方程式之成果顯示.......................................................63圖 5.8 玉長公路隧道斷面收方繪圖結果...................................................................64圖 5.9 Excel 版本之收方形式(玉長公路隧道).....................................................65圖 5.10 汐止山岳鐵路隧道位置圖.............................................................................66圖 5.11 隧道斷面收方程式新建檔案畫面(汐止山岳鐵路隧道).........................67圖 5.12 隧道斷面收方程式資料處理系統(汐止山岳鐵路隧道).........................68圖 5.13 汐止山岳鐵路隧道斷面收方繪圖結果.........................................................69

VII

Page 13: Chung-Hua University Repository:主頁

圖 5.14 Excel 版本之收方形式(汐止山岳鐵路隧道)...........................................70

VIII

Page 14: Chung-Hua University Repository:主頁

第一章 緒論

1.1 研究背景

隧道工程由於面臨地質條件難以事先探查完全掌握、施工環境惡

劣及設計理論未臻完善等狀況,為具高危險性之地下工程,而監測

作業即是確保其施工安全之最大保障。地下開挖施工方法進展至以新

奧工法(NATM)理念施工後,監測即為 NATM 設計及施工之重要

一環。面對台灣山多、地形險峻且地質複雜多變甚或驟變,在不可避

免須興建隧道時,其工期、成本與品質均是一大挑戰。為盡量減少隧

道災變發生,應盡可能掌握地質及以施工技術、管理克服,而監測作

業亦須配合,甚或不可或缺。蓋因施工監測可彌補設計時地質資料之

不足,回饋設計以適時調整施工支撐,達到有效、經濟,使施工順利,

進而防止災害發生,確保施工安全。一般山岳隧道所面對的大地材料,

仍有許多現實條件尚未能有效掌握地質狀況,尤其台灣位處板塊衝

撞帶,地質複雜且多變,雖設計分析縝密周詳及處理工法進步,但

仍無法完全解決上述種種未知的條件。

1.2 研究動機與目的

隧道斷面的開挖,無論是使用鑽炸或機械工法,其開挖範圍之

管理值完全由隧道斷面收方(survey of profile)所控制。然而,在

1991年以前之測量儀器僅少部分具備雷射測距及雷射光功能,且單

價非常高,更遑論收方程式設計。在毫無軟硬體設備,又需量測隧道

淨空斷面之下,完全依靠傳統測量工具,如經緯儀、測距儀、稜鏡、皮

尺或鋼尺及標竿或箱尺,量測角度與距離。並經由人工計算繪製收方

圖比對設計斷面,或使用設計半徑比對法,判讀斷面是否侵建築界

1

Page 15: Chung-Hua University Repository:主頁

線或符合設計斷面。本研究延續許榮達(2004)之研究成果,包含:

隧道現場的收方經驗及量測方法,應用測量儀器、隧道斷面收方儀之

現場操作為基礎架構,自行研發編輯合適的視窗程式以實際應用於

隧道收方,期盼提昇隧道收方工程品質與水準。以安全、經濟及快速

的量測方法,達成開挖符合設計斷面的目標,並藉由相關資料之彙

整、檢討分析與實際應用,提供具體方法乃本研究的主要目的。

1.3 研究內容

第一章 緒論:闡述研究背景、研究動機、研究目的、論文架構等

內容,並針對本論文進行初步性的介紹。

第二章 文獻回顧:針對論文所包含之前人所研究內容進行回顧,

其包含隧道斷面收方量測的技術、隧道斷面收方量測的

原理、視窗程式語言的原理與應用進行介紹。

第三章 隧道斷面收方作業:針對隧道斷面收方作業進行介紹與

說明。

第四章 隧道斷面收方視窗程式撰寫與設計:針對視窗程式設計

架構進行說明,包含程式撰寫方式,另將程式碼以附

錄 方式展示。

第五章 實際案例應用與探討:於本章節中將針對所撰寫之程式,

藉由現地實際案例進行分析及討論。

第六章 結論與建議:在本章中將針對論文部分的成果作一簡述

並提出建議期望能對後續研究者有所幫助。

2

Page 16: Chung-Hua University Repository:主頁

1.4 研究流程

緒 論

文獻回顧第二章

前言 隧道斷面收方之測

量原理

視窗程式語言之原

理與相關應用

隧道斷面收方之量

測技術

第三章 隧道斷面收方作業

隧道斷面收方之基本資

料蒐集

隧道斷面收方之時機 隧道斷面收方作

業流程

第四章隧道斷面收方視窗程式之撰寫與設計

資料庫系統 隧道斷面收方處理程序

與視窗程式設計Visual Basic 6.0

第五章隧道收方視窗程式之測試及應用

玉長公路隧道 汐止山岳鐵路隧道前言

結論與建議第六章

隧道斷面量測

方法

3

Page 17: Chung-Hua University Repository:主頁

第二章 文獻回顧

2.1 前言

本章節中將針對前人所研究之成果如隧道斷面收方之量測技

術、隧道斷面收方之量測原理及 Microsoft Visual Basic 程式設計之原

理與相關應用技術,並引述國內、外專家學者之相關研究做一介紹及

回顧。

2.2 隧道斷面收方之量測技術

由鑽炸施工後之隧道斷面需測定是否符合設計。如欲求得縱向線

型或橫斷面等,大多在接近開挖面的附近進行測定,不僅危險性高,

且測量時阻礙通路,導致影響施工作業進度甚大,為了改善此ㄧ狀

況乃可發展自動化收方測量系統以提高施工安全性。

蔡茂生(1998)於研究中提出可利用一組旋轉之發射器及攝影

機以光波,如紅外線等介質方式射向隧道壁面,自攝影機的反射影

像之時間進行距離估計,當掃描隧道壁面ㄧ週後即可自動描繪出隧

道之斷面。以下針對所收集之收方測量做ㄧ技術回顧。

2.2.1 全自動隧道斷面收方系統-Profiler4000 量測技術

係由瑞士公司 Aemberg Measuring Technique 所發展出的一套全

自動隧道斷面收方系統。以 Leica DIOR3002S免稜鏡測距儀加上伺服

馬達驅動的定位裝置,並配合該公司所研發的後置軟體組合而成,

於國內工程應用部份,該系統曾使用於東工處新觀音隧道工程段進

行測試,以下針對此ㄧ系統所包含之儀器設備、規格與功能及效益的

評估進行介紹。

4

Page 18: Chung-Hua University Repository:主頁

(一) 儀器設備

斷面收方儀器之組成包括自動隧道斷面收方儀、PC9500 資料處

理器、雷射光波測距儀 (如圖 2.1 所示)、後置處理軟體、筆記型電腦

及附屬設備。

(二) 規格與功能

(1) 儀器具有伺服馬達,可於水平及垂直向作 360度自動旋轉。

(2) 設定水平及垂直方向之最小旋轉度在 10″以內。

(3) 具後級處理軟體,所有量測資料與原始設計資料,均可

利用電腦運算,比較及分析、並以圖形顯示。

(4) 於隧道直徑 1.5倍距離內能自動量測不同距離之隧道斷面。

(5) 可於隧道內現場直接顯示量測點與設計斷面值之差異。

(6) 每一隧道斷面之最多量測點數可達 10,000點以上。

(7) 可自動記錄及儲存量測資料。

(8) 自動計算顯示實際量測範圍與設計斷面之挖、填方數量及

量測面積,設計面積,坡度比等功能。

(9) AMT Profile4000全自動隧道斷面收方儀可與現有之 Leica

DIOR3002S 測距儀結合使用。

(三) 效益評估

啟發研究收方之機制,源自於全自動隧道斷面收方儀,從收方

過程了解設備要求與原理,目前市售測量儀器皆具備免稜鏡測距功

能,自行收方程式設計,同樣可以達到比對斷面圖區域偏差量效果,

差別在於功能上無法自動化,造價卻只有十分之一(約 45萬),根

據實際收方之經驗,符合收方精度要求,提供隧道界一套簡單又便

宜收方選擇(許榮達,2004)。

5

Page 19: Chung-Hua University Repository:主頁

2.2.2 三維變形光學量測技術

交通部鐵路改建工程局東部工程處(以下簡稱東工處)為配合

國內三維變形光學量測技術之引進與研發,於民國 85年 12月特購

置一套自動辨識照準全測儀(型號 TCA1800)於北迴新觀音隧道,

即台灣最長之鐵路隧道內進行測試,觀測並記錄變形量,配合內政

部營建署營建自動化專案計畫研發進行軟體程式之開發與研究,以

下針對三維變型光學量測技術所包含之設備儀器、功能及規格、測量

步驟、優缺點及效益評估進行介紹。

(一) 儀器設備

三維變形光學量測系統之儀器設備大致可分為儀器部分及其附

屬設備,分述如下(陳堯中等人,1995):

(1)三維變形量測儀器

三維變形量測儀器是ㄧ部高度精密的自動記錄儀器,具經緯儀,

可同時量測水平角、垂直角和斜距,該儀器系統又稱全測站與一般測

距經緯儀有些不同,含有內藏 IC卡記錄器,採同軸式光學系統,亦

即電子經緯儀與光波測距儀之發射,接地軸向均在同一望遠鏡上等

特性。

近年 Leica公司推出新一型全測站系統 TCA1800,內裝伺服馬

達及自動辨識照準目標系統,可自動搜尋對準反光覘標,不需人工

對點,若配合軟體控制,可進行自動化之監測。

(2) 岩釘、反光覘標

岩釘為長 25 至 60公分之鋼製桿,頂部螺牙供安裝反光覘標之

用,與一般收斂釘相同。反光覘標為鐵氟龍製品,有兩種形式ㄧ為反

光板,構造簡單,價格較低廉,可提供雙面照準用,反光有效距離

在 12 至 140米之間;另一為迷你型之三角稜鏡,精度高、價格高,

6

Page 20: Chung-Hua University Repository:主頁

反光有效距離在 0.3 至 600米之間。

(二)功能及特色介紹

三維變形光學量測系統能精確的分析位移資料,並廣泛運用於

大地工程之變位量測,具下列功能及特色:

(1)測量作業期間,不需中斷前進之施工作業,對於施工作業之干

擾可降至最低程度。

(2)測量時間短,監測斷面之距離可縮短,可迅速測得隧道初期變

形量及掌握隧道三維空間應力重新分配過程。

(3)反光覘標不需借助任何電力或照明設備。

(4)讀數精度決定於測站及測點間之幾何形狀,反光覘標及儀器和

經度等,一般而言誤差在正負 0.7-1.5mm。

(5)取得量測點絕對位移量後,可換算兩點間的相對位移量進行傳

統監測數據之分析及安全管理作業。

(6)利用各點之三維絕對位移資料,可整理隧道斷面位移向量分佈

圖、影響線圖、沉陷趨勢圖、縱向位移發展圖等,除可了解隧道開

挖過程之力學行為外,亦可預測開挖面前方之弱帶。

(三)優缺點及效益評估

使用三維變形光學量測系統與一般傳統收斂之比較如表 2.1 所示,

另整理三維變形量測系統之優缺點如表 2.2 所示。除了初期儀器設備

之投資成本較高外,在人力時間、施工影響度、資料處理及資料完整

性等方面皆優於傳統收斂監測,特別是量測斷面越多,效益越高

(陳堯中等人,1998)。

7

Page 21: Chung-Hua University Repository:主頁

2.3 隧道斷面收方之測量原理

測量之意義為測定地球表面上及其附近各點間之相關位置,故

測量之基本原理在於應用各種方法以求得「點」之關係位置,通常皆

由地面上已設立且經確定相關位置之點,此些點稱基點(base

station) 以測定出新點之位置,此等新點復可作為定出其他新點之

基點,如此不僅可求得欲測各點之相關位置,且可標示於圖上,由

圖上各點連成線面,並繪成所需之圖籍。以下將各種定出新點之方法

歸納為七種,分述如下(如圖 2.2 所示) (葉怡成,1991):

(a) 導線法

若A、B兩點為基點,求新點 C 之位置,可測量角 CAB 之角度

及量 AC 之距離,定出 C點,此法即為導線測量中所用之法。

(b) 偏角法

以 A、B兩點為基點,C 為新點,AC點間之距離無法量時,可

測角 CAB 之角度,量 BC距離亦可定出 C點之位置,但此法可能產

生 C 與 C’兩種結果,應參考實地情形,選擇適用之ㄧ種,此法因有

此顧慮,於測量上較少應用,僅見於細部測量及曲線測設之偏角法。

(c) 支距法

以 A、B兩點為基點,欲求新點 C 之位置,可由 C點做垂直於

AB線之直線 CD 並量其距離,稱為支距(Offset),再量 AD 或 BD

之距離,即可定出 C點之位置。此法常用於細部測量。

(d) 前方交會法

以 A、B兩點為基點,C 為新點,亦可測量角 CAB角 CBA兩角

度,而定得 C點之位置。倘 B點或 A點不能架設儀器,則可測量角

CAB、角ACB、角CBA 或角 BCA 等組角度,求得 C點位置。此法即

為三角測量中所使用之法。

8

Page 22: Chung-Hua University Repository:主頁

(e) 後方交會法

以 A、B、D三點為基點,C 為新點,可測 α、β兩角。即可求得 C

點。此法應用於三角測量及平板儀測量之後方交會法。

(f) 距離交會法

以 A、B兩點為基點,C 為新點,欲求 C 與 A、B兩點於平面上之

相關位置,可測量 AC 與 BC兩段距離,求得 AC 與 BC 之交點,即

為 C點之位置。此法即為三邊測量中所用之法。

(g) 直線交會法

以 A、B、E、F四點為基點,欲求新點 C(即交點)之位置,可以

AE 及 BF線連結之,定出點之位置。此法常用於定樁測量及工程測量

之直線焦點測設。

測量之基本資料為水平距、垂直角、水平角、斜距及高程差,其原

理是量測基本資料,因時、因地使用不同之測量方法,以下章節僅對

就本研究使用之前方交會法、後方交會法及綜合前述測量原理之綜合

式後方交會法原理理論進行介紹。

2.3.1 前方交會法

經緯儀先後在A、B測站上照準P點測得 α,β角,(如圖 2.3 所

示),其交角 γ=180˚-(α+β)。惟一般規定 γ角不可小於 30˚,或

大於 120˚,故交會點P應與已知點作適當配合,交會點P之座標計

算法如下(管晏如,1990):

(一) 直接按三角形計算:

(1)AB邊、AP邊及 BP邊的方位角計算:

AB邊方位角ψAB:

9

Page 23: Chung-Hua University Repository:主頁

Α Β

ΑΒ

Α Β

ΑΒ −=−=Α Βϕϕ cossinyyxx

φA B = tan-1 (2-1)

AP邊及 BP邊方位角ψAP、ψBP:

(2-2)

(2) 計算AB、AP、BP各邊的邊長:

(2-3)

(2-4)

(3) 計算測點 P 之座標:

         (2-5)

(二) 角度法:

在已知點A、B 測站上,觀測得 α、β角,可按下列所推演的公式,

直接求得交會點P的座標,(如圖 2.3 所示)。由(2-5)知:

                      

(2-6)

. (2-7)

AB

AB

yyxx

−−

)sin()sin(

sinsin αφβαβφ −

+Α Β+=Α Ρ+= Α ΒΑΑ ΡΑΡ xxx

)sin(/)cos(sincos βααφβφ +−Α Β+=Α Ρ+= Α ΒΑΑ ΡΑΡ yyx

+=

+=

αβα

ββα

sin)sin(

sin)sin(

ABBP

ABAP

Β Ρ+=+=+=+=

Β ΡΒΑ ΡΑΡ

Β ΡΒΑ ΡΑΡ

φφφφ

coscossinsin

yAPyyBPxAPxx

++=

=

βφφαφφ

180

-

ABBP

ABAP

10

Page 24: Chung-Hua University Repository:主頁

(2-8)

(2-8)式代入(2-7)式得:

                       

(2-9)

同理可得:

                        (2-10)

2.3.2 後方交會法

後方交會法又稱三點法,經緯儀整置在求點P,(如圖 2.4 所

示)。照準三已知點A、M、B觀測其間夾角 α、β,按幾何圖形推算

ω、ψ角及 γ角再由三已知點座標,按前方交會計算法計算所求點P

的座標值。但所求點 P 的觀測位置,不可與三已知點位於同一圓周上,

否則計算結果不準確,或不能解算(管晏如,1990)。

ω、ψ角的計算公式為:

(2-11)

αααφαφαφ sincossincoscossin)sin(Α Β

−−Α Β

−=−=− ΑΒΑΒΑ ΒΑ ΒΑ Β

yyxx

βααβ

βαβαα

βαβα

βααβ

cotcotcotcot)(

)(cotcot

1)(cotcot

cot

)()sin(

sinsin)()sin(

cossin

+++−=

−+

−−+

+=

−+

−−+

+=

ΒΑΑΒΡ

ΑΒΑΒΑ

ΑΒΑΒΑΡ

xxxxx

yyxxx

yyxxxx

βααβ

cotcotcotcot)(

+++−= ΒΑΑΒ

Ρyyxxy

ωφγβα

ωγβαφγβαφω

-=     

 

Η∴Η=++−°

−++−°=∴°=++++

)(360)(360

360

設己知值:

11

Page 25: Chung-Hua University Repository:主頁

(2-12)

(2-13)

求得 ω角後,則由(2-11)式可計算得ψ角。後方交會點 P 的

座標,可按(2-6)式及(2-7)式計算而得。

2.3.3綜合式後方交會法

根據許榮達(2004)之研究中指出,當後方交會法測站角度限

制介於 30°~120 時,容易產生誤差。為兼顧架設儀器站多種方法選

擇,發展「綜合式後方交會法」,當測站與稜鏡站皆為已知點時,於

後置處理虛擬另一位觀測點,距離設定為 0.1mm,將方向偏差量控

制在半徑 0.1mm 以內,若條件角度符合 30°~120°則使用後方交會法。

然後依其定出測站測量方法不同,其步驟分別敘述如下:

(1) 架設在隧道內任一點上:採用此方法測量儀器需經過特殊處

理,於儀器上有安裝稜鏡桿之孔位,以利觀測儀器之位置,其

方法為另外一台儀器架設在已知點,後視另一已知點稜鏡,觀

測收方斷面位置儀器上稜鏡之水平角、距離、高程差,計算平面

座標及高程。

(2) 架設在已知點:針對斷面收方位置進行放樣作業,有兩種狀

況:其一為按已知中心線里程座標資料,放樣到現場並觀測高

程差計算高程;其二為按現場需要定出觀測斷面位置,計算架

設儀器位置之平面座標與高程,此兩種狀況皆為事先將架設儀

HHK

HH  

HHba

sincoscot

coscotsinsin

sincoscossinsin

)sin(sinsin

sinsin

sinsin

+=

−=

−=−Η==Κ

Κ==∴

ω

ωω

ωωω

ωωφ

ωφ

αβ

12

Page 26: Chung-Hua University Repository:主頁

器位置點位定出,並求出高程資料。

(3)後方交會法又稱三點法:利用現場已知控制點,將儀器架設

在收方斷面不妨害通行之位置,觀測兩處已知點,計算儀器位

置平面座標與高程。

(4)綜合式後方交會法:作業同架設在已知點,進行後置處理,

一點為實測值,另一點為虛擬現場已知點距離設定為 0.1mm,

使誤差值控制在 0.1mm 以內。

2.4 Microsoft Visual Basic 視窗程式語言之原理與相關應用

視窗化動作亦可視為將程式以圖形使用者介面 (Graphics User

Interface,簡稱GUI)顯現,圖形使用者介面是一種以圖形化為基礎

的使用者介面,利用統一的圖形與操作方式,如可移動的視窗、選項

與滑鼠游標,作為使用者與作業系統之間的翻譯。視窗化動作最重要

的優勢在於讓不會使用命令行的使用者對作業系統進行指令輸入,

不僅可以調整對話框尺寸,還能改變樣式與尺寸。此外,設計得當的

圖形畫面得以幫助使用者快速了解與尋找功能,且透過統一的操作

方式,讓使用者在學習使用一次後,即可快速熟悉其他程式的操作。

Visual Basic 程式語言即是一個符合製作圖形使用者介面的編寫

軟體,以視覺化為主的基礎程式語言,由一開始的外觀介面設計、基

本物件建立、表單的配置到內部撰寫程式等。

在程式語言撰寫方面,Visual Basic繼承了 Basic 語法,國內目

前有許多學者,將視窗化程式所賦予的便利性應用於工程上,以下

以現行 Visual Basic 應用之近況做一回顧。

楊道昌與游保杉(2002)使用 Microsoft Visual Basic 6 程式語言

設計,為中文視窗介面設計與運算分析使用,供使用者更為便利之

13

Page 27: Chung-Hua University Repository:主頁

操作,有益於未來擴充新增模組之功能。

楊森閔(2002)則在其研發之系統中,利用 Microsoft 所發行之

軟體程式 Visual Basic 為工具進行程式設計,並以 Access2000 進行資

料庫結合,以回歸分析模式作為主要程式架構進行視窗化分析。

陳聖彥(2004)以 Microsoft Visual Basic 6 程式語言編寫,以回

歸分析方式,並採用外顯式收斂圍束法之反算分析,結合前述兩種

方法,用於視窗化程式之開發。

王銘鋒(2005)採用外顯式收斂圍束法的反算分析模式,以

Microsoft Visual Basic 6 程式語言改寫視窗程式,並輔以模組化方式

連結各運算及繪圖等系統,撰寫隧道分析視窗軟體。

14

Page 28: Chung-Hua University Repository:主頁

表 2.1 三維變形量測與傳統收歛量測之整理比較

(陳堯中等人,1991)

項目 三維量測 收斂量測

設備 光學測距經偉儀、反光稜鏡 反光板、

岩釘。

水準儀、收斂尺及岩釘。

車輛 視情況需要高空作業車之支援。 每次測量均需高空作業

車。

現場量測

1.初讀量測

須轉點至參考點,所需時間約 70分鐘。

沉陷點量測需選點 約 15分鐘。

2.後續斷面量

於可見光板之視界距離內,均可量

測,所需時間約 30 分鐘(以三個

斷面計) 。

每一個斷面量測需 30 分

鐘,三個則需 90 分鐘。

量測人員 1 至 2 人。 2 至 3 人。

資料判讀 現場測值全自動記錄經電腦軟體運

算至圖形顯示皆可自動化,可繪製

各測點之垂直沉陷、水平及軸向變

位等三度空間絕對位移收斂圖表等。

資料可較完整。

現場測值經人工紀錄及

鍵入電腦,可能產生人

為輸入錯誤。

註:1.表列作業時間不含相關作業之現場等待時間。

2.量側時間以通視距離 150 公尺為依據。

15

Page 29: Chung-Hua University Repository:主頁

表 2.2 三維變形量測系統之優缺點整理(陳堯中等人,1991)

優點 缺點

安全性 可降低高空作業量測之危險性及

減少對施工之影響。

經濟性 1.所需測量人員少,即可進行測

量動作。

2.於監測區域內,可隨意架設儀

器即可測量,減少環境影響因素、

機動性強。

1.反光稜鏡和反光板因施工

過程易受損,更換費時。

2.國內隧道工程因通風較差,粉

塵及濕氣較重,常造成視界不良,

而需增加測站。

操作性 1.可得三維絕對位移之量測值,

並據以進行各項隧道力學行為之

分析和研判,非傳統收斂監測所

能比擬。

2.除隧道內之變形監測外,也可

應用於隧道洞口邊坡穩定之監測。

操作此系統須具測量及電腦應用

能力,經驗豐富之人員。

16

Page 30: Chung-Hua University Repository:主頁

圖 2.1 Profiler 4000 設備(許榮達,2004)

17

Page 31: Chung-Hua University Repository:主頁

圖 2.2 測量之原理: (a)導線法 (b)偏角法 (c)支距法 (d)前方交會法 (e)後方交會法 (f)距離交會法 (g)直線交會法

(葉怡成,1991)

18

Page 32: Chung-Hua University Repository:主頁

B

P

αβ

γ

∮AP∮AB

∮AP

∮BP

(XP,YP)

(XA,YA)A (XB,YB)

圖 2.3 前方交會法圖形(管晏如,1990)

圖 2.4 後方交會法圖形(管晏如,1990)

19

Page 33: Chung-Hua University Repository:主頁

第三章 隧道斷面收方技術與相關作業流程

3.1 前言

隧道內收方技術及方法必須因應當時工作階段而有所對策,收

方測量工作與一般外面測量環境差異性大。其時機必須選擇工作空檔,

在不妨害工進為原則及通視良好情況進行。進行收方工作時,其步驟

與操作愈臻熟練,可縮短量測時間與避免錯誤發生。

進行隧道斷面收方過程,因功能需求而有不同幾何線形、坡度及

設計斷面。此基本資料為建立隧道標準斷面之依據,作為設計與實際

收方斷面之比對,以了解實際開挖情況,是否有超挖或淨空斷面不

足現象,作為修挖之參考及計價之依據。

3.2 隧道斷面收方基本資料蒐集

3.2.1 隧道線形曲線資料

根據黃水木(1999)之著作中所描述,在不同功能之隧道線形

其曲線規定亦不同,將國內常使用之路線種類介紹如下:

(1) 緩和曲線

路線由直線進入圓弧曲線時,在圓弧曲線之前,另加一段曲線,

此加入之曲線其曲度為漸漸增加藉以緩和車輛之方向,則此加入之

曲線稱之為緩和曲線(Transition Curve),因緩和曲線係介於直線

與單曲線或兩單曲線之間,故又稱之為介曲線,其曲率半徑 ρ自無

限大而後漸漸減短,直線至與圓弧相接時,其 ρ值恰等於圓曲線 R

值,目前國內公路系統採用克羅梭曲線,鐵路系統採用三次拋物線。

(如圖 3.1 所示)

20

Page 34: Chung-Hua University Repository:主頁

(2) 單曲線:

不同方向之直線間插入一曲線而連結之,俾利車輛於行駛中,

得以緩慢變換其方向,該曲線為切於兩直線之一圓弧,稱之為單曲

線。(如圖 3.2 所示)

3.2.2 隧道支撐型式

隧道施工方法採機械或開炸,階梯開挖區分為上半、下半及仰拱

三個階段,其步驟皆為開挖、出碴、支保組立、噴凝土(單層網或雙層

網),收方斷面區分為開挖完成面、單層網噴漿面或雙層網噴漿面、

襯砌前斷面。

3.2.3 隧道豎曲線資料

在路線上有兩種不同之縱坡度相連接時,兩縱坡線間必成一立

面角度,凡縱坡度之差數大於某一定值時,其間必須用一立面曲線

連絡之,以防坡度急驟變化,產生各種不良後果,此立面曲線即稱

之為豎曲線,(如圖 3.3 所示)。

3.3 隧道斷面量測方法

本研究係採許榮達(2004)所提出之量測方法,另在其研究中

指出隧道收方量測過程的不同處,在於定出隧道測站的位置,方法

簡單介紹如下:

(a) 架設在隧道內任一點上(Prism Method)(如圖 3.4 所示)。

(b) 架設在已知點(On Point Method)(如圖 3.5 所示)。

(c) 後方交會法(Resce Method),使用方法詳見第二章介紹。

21

Page 35: Chung-Hua University Repository:主頁

(d) 綜合式的後方交會法,依其定出測站測量方法不同,其步驟

分別敘述如下:

(1) 架設在隧道內任一點上,採用此方法測量儀器需經過特殊

處理,於儀器上有安裝稜鏡桿之孔位,以利觀測儀器之位置

其方法為另外一台儀器架設在已知點,後視另一已知點稜鏡

觀測收方斷面位置儀器上稜鏡之水平角、距離、高程差,計算

平面座標及高程。

(2) 架設在已知點:針對斷面收方位置進行放樣作業,有兩種

狀況:其一為按已知中心線里程座標資料,放樣到現場並觀

測高程差計算高程;其二為按現場需要定出觀測斷面位置,

計算架設儀器位置之平面座標與高程,此兩種狀況皆為事先

將架設儀器位置點位定出,並求出高程資料。

(3) 後方交會法又稱三點法:利用現場已知控制點,將儀器架

設在收方斷面不妨害通行之位置,觀測兩處已知點,計算儀

器位置平面座標與高程。

(4) 綜合式後方交會法:作業同架設在已知點,在後置處理,

一點為實測值,另一點為虛擬現場已知點距離設定為

0.1mm,使誤差值控制在 ± 0.1mm 以內。

3.4 隧道斷面收方之時機

國內隧道斷面收方之時機,受限於人力與素質無法全面性收方,

僅針對舖設防水模或永久襯砌前,進行實際斷面與設計斷面收方比

對,檢視是否符合設計斷面之最小要求,作為計價之依據。本研究內

容隧道斷面收方為全性面,收方其時效性各異,依其經驗彙整出最

佳時機,以下分別敘述之:

(a) 開挖面收方:由於機具與人員等待開挖成果,建議採後方交

22

Page 36: Chung-Hua University Repository:主頁

會法可於最短時間完成收方工作,另一重要因在支撐完成面下進

行開挖面收方,避免儀器與人員暴露於未支撐危險環境下作業。

(b) 上半噴凝土面:施工廠商為了解淨空及預估變形量數據,收

方時效無迫切性,選定開挖面施打岩栓、前進支撐、機械保養或停

工,建議採用架設在已知點。

(c) 下半噴凝土面:檢視下半噴凝土面有其必要性,依其從事隧

道工程經驗,由於隧道上、下斷面設計半徑不同,隧道測量對於

下半開挖大部分沿用上半開挖斷面向下延伸,容易產生下半支保

腳入侵,更需要進行收方工作。建議採用架設在已知點。

(d) 舖設防水膜或襯砌前:施工廠商於襯砌前必須進行完成面收

方檢送收方圖交業主檢核襯砌厚度是否符合最小厚度設計要求,

作為襯砌鋼模定位前之準備工作,業主、承攬廠商及協力廠商三

方面按規定每 10m整樁里程(視現場需要調整)必須進行斷面

收方圖檢核,由於針對特定斷面收方,此時已遠離開挖面仰拱亦

澆置完成,收方時機同上半噴凝土面收方,建議採用架設在已知

點,可量測相同斷面之資料,避免因架設測站位置不同而產生爭

議。

3.5 斷面收方作業流程與步驟之建立

介紹完定出測站位置的架設方法與應用時機後,接著敘述斷面

收方流程與步驟。本研究使用測量儀器廠牌型號 Leica TCR307(如圖

3.6 所示),雷射免稜鏡測距功能、免稜鏡測距精度 5mm ± 1mm、稜鏡

測距 3mm ± 1mm、測角精度 7秒,使用於收方量測精度已符合要求,

針對收方作業流程與步驟,分為三個部份敘述如下。

(1) 儀器站:架好儀器將氣泡居中,求心器對準地上已知點,儀

23

Page 37: Chung-Hua University Repository:主頁

器內部儀器高及稜鏡高設定為零。

(2) 後視站:架設稜鏡於已知控制點

(3) 收方流程:

(a) 採用綜合式後方交會法,綜合架設已知點與後方交會法。

(b) 手簿記錄控制點編號、起訖點流水編號、日期、支保編號、完

成階段(例單層網、雙層網噴漿及防水膜或開挖面等)。

(c) 完成架設儀器定心定平及後視稜鏡動作,旋轉儀器將視準

軸位於法線上開始觀測斷面測點(如圖 3.7 所示)並記錄資

料於儀器記錄器內,視精度要求調整點距。

24

Page 38: Chung-Hua University Repository:主頁

圖 3.1緩和曲線各部名稱(黃水木,1999)

圖 3.2 單曲線各部名稱(黃水木,1999)

25

Page 39: Chung-Hua University Repository:主頁

圖 3.3豎曲線各部名稱(黃水木,1999)

圖 3.4架設在隧道內任一點上(黃水木,1999)

圖 3.5架設在已知點上(黃水木,1999)

26

Page 40: Chung-Hua University Repository:主頁

圖 3.6 Leica TCR 307 收方儀器(許榮達,2004)

27

Page 41: Chung-Hua University Repository:主頁

圖 3.7 隧道斷面收方圖

28

Page 42: Chung-Hua University Repository:主頁

第四章 隧道斷面收方視窗程式之撰寫與設計

4.1 前言

現行隧道工程界應用之隧道斷面收方之後處理方式,係以計算

隧道設計斷面與實際斷面半徑差值比較法。傳統收方技術雖然可以達

到斷面收方之效果,但缺點在於無法自動繪製隧道斷面收方圖,僅

比對收方斷面點位之偏差量。

本章將針對自行研發之隧道斷面收方後置處理視窗軟體所使用

之方法進行說明,研發分析軟體方法包含軟體程式撰寫工具之

Microsoft Visual Basic 6.0 程式語言、用於資料儲存之 Access2000 資料

庫系統等,使隧道斷面收方軟體具自動繪製收方斷面圖形比對設計

斷面圖等功能。

4.2 Visual Basic 6.0 程式語言

  BASIC 是屬於高階程式語言的一種,英文名稱的全名是

"Beginner's All-Purpose Symbolic Instruction Code",取其首字字母簡

稱 "BASIC",就名稱的含意來看,是「適用於初學者的多功能符號

指令碼」,是一種在計算機發展史上應用最為廣泛的程式語言。

  BASIC 語言是由 Dartmouth 學院 John G. Kemeny 與 Thomas E.

Kurtz 兩位教授於 1960年代中期所創。由於立意甚佳,BASIC 語言簡

單、易學的基本特性,很快地就普遍流行起來,幾乎所有小型、微型

以家用電腦,甚至部分大型電腦,都有提供使用者以此種語言撰寫

程式。在微電腦方面,則因為 BASIC 語言可配合微電腦操作功能的

充分發揮,使得 BASIC 早已成為微電腦的主要語言之一。

  一般人類自然語言有標準語言,也有方言,電腦語言亦是如此。

29

Page 43: Chung-Hua University Repository:主頁

許多種電腦都有 BASIC 語言,但其語法、規則、功能並不盡然相同,

而同一種電腦所使用的 BASIC 語言也可能有不同版本或由不同的

軟體開發公司製作的不同品牌 BASIC 語言,只是大家一致地承繼

了 BASIC 創始者所設計的基本型態與精神,而分別賦予獨特的設

計手法與增添一些功能。

  依照電腦語言的規定撰寫的程式,稱為原始程式(source

program),原始程式中的各個敘述必須逐一翻譯為機器語言,電腦

才能執行。這項翻譯工作有兩種類型的工具程式,一個稱為編譯程式

(compilers),另一個稱為直譯程式(interpreters)。所謂編譯程式,

事實上是一套程式,其作用是將原始程式的每一個敘述全部一次翻

譯為機器語言的指令,而產生一個目的程式(object program),所

謂目的程式,也是一套程式,是整個程式都是使用機器語言指令所

組成的程式,可以交由電腦執行的程式。所謂直譯程式,事實上也是

一套程式,其作用是將原始程式的每一個敘述逐一翻譯為機器語言

的指令,並立即執行,並不產生目的程式,但是每一個敘述在每次

執行之前都需透過這個翻譯的程序,不因前次已曾翻譯而省略。

  BASIC 語言早期是以直譯程式的方式創始,也演化出許多不同

名稱的版本,如:BASICA, GW-BASIC, MBASIC, TBASIC, ...。

 Visual 指的是開發圖形使用者介面的方法。您不需撰寫大量程式碼

來描述介面元件的外觀和配置,而只要把預先建立的物件添加到螢

幕上的某一點即可。

  Visual Basic 以原來的 BASIC 語言為基礎,做了更進一步的發

展,至今包含了數百個陳述式、函數及關鍵字,其中有很多都和

Windows GUI 有直接關係。專業人員可以使用 Visual Basic 製作出任

何其它 Windows 程式語言所能做到的功能,而初學者則只要掌握幾

30

Page 44: Chung-Hua University Repository:主頁

個基本要領,就可以建立實用的應用程式了。

  Visual Basic 程式語言不僅只能用於 Visual Basic, 包含在

Microsoft Excel、 Microsoft Access 及許多其它的 Windows 應用程式

中的 Visual Basic Applications (VBA),也使用了與 Visual Basic 同

樣的語言。Visual Basic Scripting Edition (VBScript) 是一廣泛使用

的 scripting 語言,而它也是 Visual Basic 語言的子集合。

本研究在執行軟體時,是以建立專案方式編輯(如圖 4.1 所示),

ㄧ般程式撰寫選擇標準執行檔型式,即可於表單內編輯程式碼。如需

特殊表單形式亦可由 Visual Basic 6.0 內建之輔助精靈選擇所需求之

形式,Visual Basic 6.0有著相當多的功能可供程式設計者使用,開

啟 Visual Basic 6.0 後介面(如圖 4.2 所示),主要可分為五個部分,

分別為功能表、工具盒及視窗開發的主要控制視窗。包含:專案總管

視窗、屬性視窗及表單設計視窗,另外圖形化介面程式製作亦是以這

五個部份進行編寫。

在圖形介面化程式設計中,程式碼撰寫的工具為程式碼編輯視

窗(如圖 4.3 所示)。在此視窗內使用者可編寫物件類別、表單等程

式碼,其使用方式與多數文字編輯器相似。連續點擊物件表單即可在

物件裡面撰寫程式碼,且此視窗也提供許多支援程式開發的功能,

其中包含程式碼拖放編輯、色彩區別關鍵字、程式碼輔助查詢、程式碼

快速查詢及關鍵字自動完成等。

4.3 資料庫系統

資料庫在軟體研發中所佔的角色為提供資料進行放置,在回饋

分析中,計測資料藉由介面進行讀入後,需要藉由欄位加以儲存,

31

Page 45: Chung-Hua University Repository:主頁

但因計測資料數量可能因現地所需而有相當多筆,因此若要有效針

對所儲存之資料進行管理,使用資料庫連結軟體則為較佳之方法。

本研究的資料儲存係以 Excel 之.csv檔型式,(如圖 4.4 所示)

及存取於 Access 2000 資料庫檔案內兩種方式,在此針對 Access

2000 資料庫內容進行介紹,Access 2000 資料庫軟體包含資料表、查

詢、表單、報表、巨集及模組等。資料表是Access 2000 資料庫中實際進

行使用者資料儲存的地方,也是資料庫其他延伸物件的資料來源基

礎,而在使用上資料表的建立除了利用資料表精靈外,使用者也可

以在軟體所提供之設計檢視工具中個別輸入資料,(如圖 4.5 所示)。

資料庫在軟體研發中所佔的角色為提供資料進行放置,(如圖

4.6 所示),在隧道斷面收方過程中,由收方所獲得原始資料計可藉

由介面進行匯入後,經視窗程式運算儲存收方之成果資料。

4.4 隧道斷面收方處理程序與視窗程式設計

4.4.1 主要繪圖之視窗介面設計

在此部份中,主要針對使用者輸入介面進行分析與設計,以及

如何提供使用者簡易且快速的資料輸入環境。簡單地說,此部份即是

由繪圖視窗表單連結其他表單的方式進行撰寫,在隧道設計斷面形

式包含有隧道斷面的混凝土面、完成面、避車(左)完成面、避車(右)

完成面、避車(左)噴凝土面、避車(右)噴凝土面,使用者可選擇

1 至 6種的隧道斷面形式與所獲得之收方資料進行繪圖比對,(如圖

4.7 所示),詳細程式編輯方法附於文後之程式碼附錄中,附錄中程

式碼部分亦加註處理動作之標示,提供後續研究學習及便於除錯與

新增動作。

32

Page 46: Chung-Hua University Repository:主頁

4.4.2 工程資訊系統之視窗設計

在輸入區中,將隧道工程相關之資訊資料鍵入輸入區中,包含

工程名稱、監造單位、施工單位、施工日期、隧道斷面設計高等資料,

(如圖 4.8 所示)。

4.4.3 資料處理系統之視窗設計

在隧道原始收方資料處理區中,為方便使用者輸入資料,資料

處理部份採匯入檔案方式,經匯入 Excel 程式之.crv檔後進行資料處

理,或可由視窗程式內之手動輸入區中自行鍵入數值。

匯入隧道斷面收方資料後,程式內部即進行下列運算,例如角

度、勁度轉換,再以後方交會法等測量原理進行座標轉換等動作,各

運算動作的撰寫及設計,(如圖 4.9 所示)。

4.4.4 成果顯示系統之視窗設計

軟體研發之目標為提供使用者快速取得所需之分析參數與分

析結果,因此在內部程式建立過程中,需具備程式最佳化、簡單化等

要素。其目的除使程式的快速無誤執行外,也方便日後程式的修改與

功能添增。

當使用者匯入隧道斷面收方資料時,經相對計算後顯示在成果

顯示區域,此區乃顯示相關計算數據,此部分可以視為一般軟體運

算之中間運算部分,(如圖 4.10 所示)。經由運算後,資料確定無

誤後,斷面收方結果即傳至主要的繪圖區域,完成斷面收方的程序。

4.4.5 技術支援系統之視窗設計

此部份乃是針對本研究相關視窗程式的操作內容進行教學,在

本視窗程式中(如圖 4.11 所示),點擊視窗系統名稱後,表單上列

的顯示區即以圖片播放方式進行視窗程式使用教學。

33

Page 47: Chung-Hua University Repository:主頁

圖 4.1 專案建立選擇圖示

34

Page 48: Chung-Hua University Repository:主頁

圖 4.2 Visual Basic 視窗設計介面

圖 4.3 視窗程式設計

35

Page 49: Chung-Hua University Repository:主頁

圖 4.4 Excel 之 csv檔案形式

圖 4.5 Asscess 2000 資料庫介面

36

Page 50: Chung-Hua University Repository:主頁

圖 4.6 隧道斷面收方資料匯入Asscess 2000 資料庫

37

Page 51: Chung-Hua University Repository:主頁

圖 4.7 主要繪圖視窗介面設計

38

Page 52: Chung-Hua University Repository:主頁

圖 4.8 工程資訊系統視窗設計

39

Page 53: Chung-Hua University Repository:主頁

圖 4.9 資料處理系統之視窗設計

40

Page 54: Chung-Hua University Repository:主頁

圖 4.10 成果顯示系統之視窗設計

41

Page 55: Chung-Hua University Repository:主頁

圖 4.11 技術支援系統之視窗設計

42

Page 56: Chung-Hua University Repository:主頁

第五章 隧道斷面收方視窗程式實測

5.1 前言

在此章節中以南港專案汐止山岳隧道及玉長公路工程之案例,

代入本研究的隧道收方視窗程式進行實際地測試。

5.2 玉長公路隧道

5.2.1 工程概述

玉長公路西起台九線玉里鎮安通橋附近,東迄台東縣長濱鄉白

桑安,全長約十六公里,總經費計新台幣二十七億七千餘萬元,開

工的新建隧道工程,全長 2660公尺,設計為單孔雙車道,淨寬 10

公尺、高 4.6公尺,隧道內左右兩側各設置二處避車道(如圖 5.1 所

示)。

  玉長公路角色功能有如台灣西部的東西向快速道路,完工通車

後將只有目前繞道距離的四分之一,可大幅縮短花東縱谷與東海岸

之間往返距離。

5.2.2 隧道斷面收方基本資料

隧道斷面收方圖的建立,首先需包含:測量的控制樁、隧道的中

線資料及隧道設計時的標準設計斷面,接著將測量後所獲得的數據

資料,匯入本研究的視窗化隧道斷面程式以進行比對,隧道斷面收

方所需之資料如下:

43

Page 57: Chung-Hua University Repository:主頁

(1)建立工區已知控制點座標及高程資料(如表 5.1 所示)。

(2)中線資料(如表 5.2 所示)。

(3)支撐型式分類建立標準斷面(如表 5.3 所示)。

5.2.3 收方步驟

本研究乃以玉長公路隧道工程,使用綜合式後方交會法,係綜

合量測方法之儀器架設在已知點及後方交會法,克服狹窄空間之限

制、提高收方量測之精度,以下分別敘述工地作業過程之步驟:

(1)在收方里程附近之已知點架設儀器及稜鏡,計算收方斷面中線

里程之夾角與距離,放樣定出現場之點位並求出高程,作為斷面

收方架設儀器之位置。

(2)儀器架設於事先已定點之收方斷面位置,量測儀器高度單位至

公釐,儀器內部儀器高及稜鏡高皆設定為零,後視稜鏡為圓形稜

鏡。

(3)架設稜鏡在已知點,量稜鏡高度單位至公釐。

(4)儀器基本設定完成後,後視稜鏡並紀錄,儀器旋轉 90度將視

準軸對準法線方向,手簿記錄儀器高及稜鏡高、測站及稜鏡站編

號、斷面起訖點流水編號、日期、支保編號、完成階段(例如單層網、

雙層網噴漿面、防水膜或開挖面等),作為後置之資料處理,逐

一測量斷面點位,每一斷面點位設定 50點以內(視現場需要調

整程式之限定點數)。

(5)若設站量測多斷面時,儀器視準軸則必須照準收方斷面,沿著

法線方向量測。

44

Page 58: Chung-Hua University Repository:主頁

5.2.4 隧道斷面收方視窗程式之應用與成果顯示

應用隧道斷面收方程式進行後置收方繪圖後置程序,以下分別

敘述隧道斷面收方程式使用過程之步驟:

(1) 視窗程式執行後,出現執行後之主畫面,(如圖 5.2 所示)。

其中主畫面中包含,在畫面上方的檔案選項、隧道斷面收方資料

處理選項、說明選項、右上方的工程資訊資料部分及右下方的繪圖

區。另外主程式畫面亦是收方繪圖的主畫面,首先可選擇上方目錄中

的檔案,以新建檔案方式開啟新檔,或點選隧道收方資料處理選項

直接進行後置收方作業處理。以玉長公路隧道為例,選擇上方目錄中

的檔案開啟新檔,(如圖 5.3 所示)。輸入完基本資料後按下一步繼

續。

(2) 工程基本資料輸入完成後,下一步動作即是處理現場收方之

測量數據,將現場測量儀器所測量之數據資料,連接至個人電腦匯

出,經整理後製成 Excel檔案(如圖 5.4 所示),於工程資訊系統鍵

入資料後,下ㄧ步的動作則為資料處理視窗操作(如圖 5.5 所示) 。

資料處理視窗係進行隧道斷面收方的原始資料匯入,資料匯入

鈕位畫面右下方處,亦可在此視窗的下方部份手動ㄧ筆ㄧ筆鍵入資

料。另外依測量的後方交會法理論,需兩個已知的控制樁點資料,在

此視窗輸入兩個已知的控制樁點資料,確定輸入資料無誤後則按下

一步進行內部計算,經上述動作以後,匯入完成及運算完畢後之畫

面(如圖 5.6 所示)。

(3) 接著可看到經視窗程式運算後之成果(如圖 5.7 所示),在圖

中的正中央為已知的中線資料,圖右側為運算後之成果資料,如確

認無誤後可按確定鈕進行收方繪圖。

45

Page 59: Chung-Hua University Repository:主頁

(4)資料傳回主畫面後,即可進行隧道斷面收方繪圖動作,(如圖

5.8 所示),畫面中的設計斷面形式可鍵入斷面形式的編號,或按上

下鈕擇想要進行比對的隧道斷面設計形式。

最後以圖示方式與許榮達(2004)所提出之收方方式(如圖 5.9

所示),並進行收方數值及收方圖對照,經對照後接近實際用於現

地收方情形。

5.3汐止山岳鐵路隧道

5.3.1 工程概述

汐止段山岳鐵路隧道及引道工程為台北市區鐵路地下化東延南

港工程簡稱「南港專案」中之工程分標,本工程係為配合南港車站地

下化,路線需穿越大坑溪后爬昇至地面,由於路線行經山區,故以

山岳隧道方式施工。

工程範圍東起自台北縣汐止市新台五線處(里程

UK16+160),西至台北市大坑溪東側(工程里程 UK17 +800),全

長 1.64公里(如圖 5.10 所示),主隧道係採新奧工法施工,鑽掘隧

道:UK16+350 起至 UK17+776,約 1426公尺。

5.3.2 隧道收方基本資料

隧道斷面收方所需之資料如下:

(1)建立工區已知控制點座標及高程資料如(如表 5.4 所示)。

(2)中線資料(如表 5.5 所示)。

(3)支撐型式分門別類建立標準斷面(如表 5.6 所示)。

46

Page 60: Chung-Hua University Repository:主頁

5.3.3 應用隧道斷面收方程式之結果

應用隧道斷面收方程式進行後置收方繪圖後置動作,以下分別

敘述隧道斷面收方程式使用過程之步驟:

(1) 視窗程式執行後,出現執行後之主畫面,(如圖 5.11 所示),

主畫面中包含,在畫面上方的檔案選項選擇上方目錄中的檔案,以

新建檔案方式開啟新檔,或點選隧道收方資料處理選項直接進行後

置收方作業處理,輸入完基本資料後按下一步繼續。

(2) 工程基本資料輸入完成後,下一步動作即是處理現場收方之

測量數據,將現場測量儀器所測量之數據資料,連接至個人電腦匯

出後將原始收方的資料匯入,確定兩個已知的控制樁點資料,確定

輸入資料無誤後則按下一步進行內部計算,經上述動作以後,資料

匯入完成及運算完畢後之畫面(如圖 5.12 所示)。

(3)資料傳回主畫面後,即可進行隧道斷面收方繪圖動作,(如圖

5.13 所示),畫面中的設計斷面形式可鍵入斷面形式的編號,或按

上下鈕選擇想要進行比對的隧道斷面設計形式。

最後與許榮達(2004)所提出之收方方式(如圖 5.14 所示),

進行收方數值比對,經比對後接近實際用於現地收方情形,證明視

窗程式可用於實際隧道收方上。

47

Page 61: Chung-Hua University Repository:主頁

表 5.1 玉長公路隧道工程控制樁資料

A 2573799.9610 288663.0170 367.7250

2 2573665.8300 288701.1220 383.6870

A-1 2573842.0484 288520.4215 372.4230

A-2 2573903.4244 288382.4120 375.3350

KS12 2573788.6890 288696.8940 372.8250

KS14 2573686.0910 288768.2080 370.6610

KS15 2573621.4410 288774.3580 371.1640

Q1 2573942.1618 288227.8483 379.7830

BM1     382.7780

940528 2573983.4138 288070.0928 382.9030

LC9190 2573949.1936 288214.3106 380.0000

LC9200 2573946.7335 288224.0147 379.8860

LC9210 2573944.1889 288233.6739 379.5700

LC9220 2573941.6077 288243.3010 379.2810

LC9230 2573938.9570 288252.9779 378.9790

LC9240 2573936.2425 288262.6021 378.3760

LC9250 2573933.4329 288272.1839 377.9120

LC9260 2573930.5875 288281.7893 377.3780

LC9270 2573927.6710 288291.3681 377.2120

LC9280 2573924.6766 288300.8996 377.1630

LC9290 2573921.6226 288310.4258 376.9630

LC9300 2573918.5176 288319.9221 376.6680

LC9310 2573915.3944 288329.4202 376.3470

LC9320 2573912.2030 288338.8975 376.1040

LC9330 2573908.9870 288348.3561 375.8500

LC9340 2573905.7353 288357.8308 375.8470

LC9350 2573902.4799 288367.2770 375.8160

LC9360 2573899.1725 288376.7139 375.4640

LC9370 2573895.8674 288386.1477 375.2880

LC9380 2573892.5511 288395.5934 375.0160

LC9390 2573889.2378 288405.0325 374.9340

LC9400 2573885.9614 288414.4650 374.5380

48

Page 62: Chung-Hua University Repository:主頁

表 5.2 玉長公路隧道工程中線資料

里程 中心N 中心 E 高程 法線 N 法線 E9190 2573949.194 288214.304 378.3201 2573968.593 288219.1739

9190 2573949.1930 288214.3100 378.3200 2573968.5910 288219.1800

9185 2573950.4020 288209.4590 378.4200 2573969.8170 288214.2630

8200 2574096.4030 287235.5750 398.1200 2574116.2060 287238.3780

8205 2574095.7020 287240.5260 398.0200 2574115.5050 287243.3290

8210 2574095.0020 287245.4770 397.9200 2574114.8040 287248.2800

8215 2574094.3010 287250.4270 397.8200 2574114.1040 287253.2300

8220 2574093.6000 287255.3780 397.7200 2574113.4030 287258.1810

8225 2574092.9000 287260.3290 397.6200 2574112.7020 287263.1320

8230 2574092.1990 287265.2790 397.5200 2574112.0010 287268.0820

8235 2574091.4980 287270.2300 397.4200 2574111.3010 287273.0330

8240 2574090.7970 287275.1810 397.3200 2574110.6000 287277.9840

8245 2574090.0970 287280.1310 397.2200 2574109.8990 287282.9340

8250 2574089.3960 287285.0820 397.1200 2574109.1990 287287.8850

8255 2574088.6950 287290.0330 397.0200 2574108.4980 287292.8360

8260 2574087.9950 287294.9830 396.9200 2574107.7970 287297.7860

8265 2574087.2940 287299.9340 396.8200 2574107.0960 287302.7370

8270 2574086.5930 287304.8850 396.7200 2574106.3960 287307.6880

8275 2574085.8920 287309.8350 396.6200 2574105.6950 287312.6380

8280 2574085.1920 287314.7860 396.5200 2574104.9940 287317.5890

8285 2574084.4910 287319.7370 396.4200 2574104.2930 287322.5400

8290 2574083.7900 287324.6870 396.3200 2574103.5930 287327.4900

8295 2574083.0890 287329.6380 396.2200 2574102.8920 287332.4410

8300 2574082.3890 287334.5890 396.1200 2574102.1910 287337.3910

8305 2574081.6880 287339.5390 396.0200 2574101.4910 287342.3420

8310 2574080.9870 287344.4900 395.9200 2574100.7900 287347.2930

8315 2574080.2870 287349.4410 395.8200 2574100.0890 287352.2430

8320 2574079.5860 287354.3910 395.7200 2574099.3880 287357.1940

8325 2574078.8850 287359.3420 395.6200 2574098.6880 287362.1450

8330 2574078.1840 287364.2930 395.5200 2574097.9870 287367.0950

8335 2574077.4840 287369.2430 395.4200 2574097.2860 287372.0460

8340 2574076.7830 287374.1940 395.3200 2574096.5850 287376.9970

8345 2574076.0820 287379.1440 395.2200 2574095.8850 287381.9470

8350 2574075.3810 287384.0950 395.1200 2574095.1840 287386.8980

8355 2574074.6810 287389.0460 395.0200 2574094.4830 287391.8490

49

Page 63: Chung-Hua University Repository:主頁

表 5.3 玉長公路隧道工程標準斷面資料

噴凝土

  完成面   避車

(左)

噴凝土

  避車

(左)

完成面

 

0.0000 7.2000 0.0000 6.8000 0.0000 7.4542 0.0000 6.8000

-0.8854 7.1453 -0.8362 6.7484 -0.2833 7.4504 -0.2833 6.8000

-1.7574 6.9822 -1.6598 6.5943 -0.7944 7.4239 -0.7944 6.8000

-2.6028 6.7131 -2.4582 6.3401 -1.3102 7.3714 -1.3055 6.7998

-3.4086 6.3421 -3.2192 5.9897 -1.8586 7.2868 -1.8160 6.7764

-4.1626 5.8747 -3.9314 5.5484 -2.3967 7.1743 -2.3232 6.7148

-4.8535 5.3182 -4.5839 5.0228 -2.9242 7.0347 -2.8244 6.6152

-5.2987 4.8748 -5.0043 4.6040 -3.4412 6.8684 -3.3167 6.4783

-5.4727 4.6777 -5.1659 4.4202 -3.9473 6.6760 -3.7973 6.3048

-5.7514 4.3238 -5.4226 4.0889 -4.4409 6.4543 -4.2636 6.0958

-6.0046 3.9508 -5.6527 3.7387 -4.9165 6.1965 -4.7128 5.8523

-6.2311 3.5601 -5.8549 3.3716 -5.3715 5.9037 -5.1425 5.5757

-6.4298 3.1535 -6.0279 2.9899 -5.8031 5.5775 -5.5502 5.2677

-6.5996 2.7327 -6.1707 2.5959 -6.2091 5.2199 -5.9336 4.9299

-6.7393 2.2993 -6.2824 2.1920 -6.5487 4.8748 -6.2905 4.5642

-6.8481 1.8554 -6.3623 1.7806 -6.9378 4.4092 -6.6143 4.1690

-6.9251 1.4029 -6.4099 1.3642 -7.2505 3.9573 -6.8991 3.7448

-6.9694 0.9438 -6.4250 0.9454 -7.5236 3.4791 -7.1423 3.2955

-6.9803 0.4803 -6.4074 0.5267 -7.7550 2.9777 -7.3419 2.8252

-6.9573 0.0146 -6.3573 0.1106 -7.9426 2.4563 -7.4959 2.3381

-6.8998 -0.4510 -6.2750 -0.3003 -8.0848 1.9181 -7.6030 1.8385

-6.7614 -0.9574 -6.1552 -0.7015 -8.1798 1.3667 -7.6623 1.3310

-6.4022 -1.4721 -5.9324 -1.0544 -8.2262 0.8057 -7.6732 0.8202

-5.8887 -1.8113 -5.6080 -1.3169 -8.2226 0.2392 -7.6355 0.3107

-5.3104 -1.9527 -5.2164 -1.4610 -8.1682 -0.3288 -7.5497 -0.1929

-4.8775 -2.0214 -4.8024 -1.5271 -8.0273 -0.9239 -7.4130 -0.6850

-4.4561 -2.0826 -4.3876 -1.5873 -7.6265 -1.5310 -7.1510 -1.1209

-4.0341 -2.1382 -3.9720 -1.6420 -7.0337 -1.9270 -6.7583 -1.4442

-3.6113 -2.1883 -3.5557 -1.6913 -6.4171 -2.1062 -6.2819 -1.6248

-3.1879 -2.2328 -3.1388 -1.7352 -5.9129 -2.2418 -5.7884 -1.7576

-2.7639 -2.2718 -2.7214 -1.7736 -5.4058 -2.3663 -5.2920 -1.8794

-2.3395 -2.3052 -2.3035 -1.8065 -4.8962 -2.4795 -4.7931 -1.9903

-1.9147 -2.3331 -1.8852 -1.8339 -4.3842 -2.5816 -4.2918 -2.0902

-1.4896 -2.3554 -1.4666 -1.8559 -3.8700 -2.6723 -3.7885 -2.1790

50

Page 64: Chung-Hua University Repository:主頁

-1.0642 -2.3721 -1.0478 -1.8724 -3.3540 -2.7518 -3.2834 -2.2568

-0.6386 -2.3833 -0.6287 -1.8834 -2.8364 -2.8198 -2.7767 -2.3234

-0.2129 -2.3888 -0.2096 -1.8888 -2.3174 -2.8765 -2.2686 -2.3789

0.2129 -2.3888 0.2096 -1.8888 -1.7973 -2.9218 -1.7594 -2.4232

0.6386 -2.3833 0.6287 -1.8834 -1.2763 -2.9556 -1.2494 -2.4563

1.0642 -2.3721 1.0478 -1.8724 -0.7547 -2.9779 -0.7388 -2.4781

1.4896 -2.3554 1.4666 -1.8559 0.0000 -2.9899 -0.2278 -2.4888

1.9147 -2.3331 1.8852 -1.8339 0.2894 -2.9881 0.2833 -2.4882

2.3395 -2.3052 2.3035 -1.8065 0.8113 -2.9760 0.7943 -2.4763

2.7639 -2.2718 2.7214 -1.7736 1.3329 -2.9524 1.3048 -2.4532

3.1879 -2.2328 3.1388 -1.7352 1.8538 -2.9174 1.8148 -2.4189

3.6113 -2.1883 3.5557 -1.6913 2.3738 -2.8709 2.3238 -2.3734

4.0341 -2.1382 3.9720 -1.6420 2.8927 -2.8130 2.8318 -2.3167

4.4561 -2.0826 4.3876 -1.5873 3.4102 -2.7437 3.3383 -2.2489

4.8775 -2.0214 4.8024 -1.5271 3.9260 -2.6630 3.8433 -2.1699

5.3104 -1.9527 5.2164 -1.4610 4.4399 -2.5710 4.3464 -2.0799

5.8887 -1.8113 5.6080 -1.3169 4.9517 -2.4678 4.8474 -1.9788

6.4022 -1.4721 5.9324 -1.0544 5.4610 -2.3533 5.3460 -1.8667

6.7614 -0.9574 6.1552 -0.7015 5.9678 -2.2276 5.8421 -1.7437

6.8998 -0.4510 6.2750 -0.3003 6.4716 -2.0908 6.3353 -1.6098

6.9573 0.0146 6.3573 0.1106 7.1041 -1.8961 6.8060 -1.4158

6.9803 0.4803 6.4074 0.5267 7.6811 -1.4739 7.1864 -1.0782

6.9694 0.9438 6.4250 0.9454 8.0555 -0.8491 7.4322 -0.6329

6.9251 1.4029 6.4099 1.3642 8.1766 -0.2672 7.5614 -0.1386

6.8481 1.8554 6.3623 1.7806 8.2255 0.3009 7.6420 0.3659

6.7393 2.2993 6.2824 2.1920 8.2235 0.8670 7.6743 0.8757

6.5996 2.7327 6.1707 2.5959 8.1718 1.4271 7.6582 1.3864

6.4298 3.1535 6.0279 2.9899 8.0716 1.9773 7.5937 1.8932

6.2311 3.5601 5.8549 3.3716 7.9244 2.5138 7.4814 2.3916

6.0046 3.9508 5.6527 3.7387 7.7319 3.0332 7.3224 2.8772

5.7514 4.3238 5.4226 4.0889 7.4959 3.5322 7.1180 3.3454

5.4727 4.6777 5.1659 4.4202 7.2184 4.0077 6.8701 3.7922

5.2987 4.8748 5.0043 4.6040 6.9015 4.4566 6.5809 4.2134

4.8535 5.3182 4.5839 5.0228 6.5487 4.8748 6.2532 4.6053

4.1626 5.8747 3.9314 5.5484 6.1663 5.2602 5.8932 4.9680

3.4086 6.3421 3.2192 5.9897 5.7575 5.6145 5.5070 5.3026

2.6028 6.7131 2.4582 6.3401 5.3231 5.9371 5.0968 5.6073

1.7574 6.9822 1.6598 6.5943 4.8658 6.2262 4.6649 5.8803

0.8854 7.1453 0.8362 6.7484 4.3881 6.4802 4.2137 6.1202

0.0000 7.2000 0.0000 6.8000 3.8929 6.6982 3.7458 6.3254

        3.3855 6.8878 3.2638 6.4950

51

Page 65: Chung-Hua University Repository:主頁

        2.8674 7.0511 2.7703 6.6279

表 5.4 汐止山岳鐵路隧道控制樁資料

點號 縱座標N 橫座標 E 高程 Z

AL01 2772015.5962 312784.5089 2.7725

AR01 2772021.8542 312785.6959 2.8804

BR01 2772004.6254 312660.8776 1.4646

TPS1 2772095.0045 312718.1885 -

TPS2 2772003.8868 312719.8460 0.0444

BM1 - - 0.0141

BL02 2771995.8356 312545.2996 0.7420

BR02 2772001.5586 312544.5945 0.7779

AR02 2772037.3812 312854.7120 3.6106

BL02-1 2772000.9465 312521.4961 2.3534

AR02-1 2772055.5887 312914.9306 5.4367

BL02A 2771998.5174 312470.0264 1.4819

BL02B 2772004.7210 312449.0941 1.4698

AR03 2772067.3525 312960.7819 4.8561

AL03 2772065.0329 312964.8282 4.9386

AR03A 2772047.0979 312915.5739 5.4708

TPS3A 2772199.2981 313225.6928 8.7698

TPS3 2772213.3100 313261.7800 14.0720

52

Page 66: Chung-Hua University Repository:主頁

表 5.5汐止山岳鐵路隧道中線資料

里程 中心N 中心 E 高程 法線 N 法線 E16845 2772014.655 312773.9914 1.434728 2771999.879 312776.5709

16845 2772014.6647 312774.0464 1.4353 2771999.8882 312776.6266

16850 2772013.8147 312769.1192 1.3885 2771999.0279 312771.6392

16365 2772191.3322 313216.6826 6.3655 2772178.4353 313224.3422

16370 2772188.7821 313212.3818 6.3110 2772175.8753 313220.0248

16375 2772186.2369 313208.0781 6.2565 2772173.3229 313215.7089

16380 2772183.6949 313203.7725 6.2020 2772170.7762 313211.3954

16385 2772181.1550 313199.4657 6.1475 2772168.2340 313207.0846

16390 2772178.6156 313195.1585 6.0930 2772165.6942 313202.7767

16395 2772176.0762 313190.8514 6.0385 2772163.1547 313198.4695

16400 2772173.5369 313186.5442 5.9840 2772160.6154 313194.1622

16405 2772170.9975 313182.2370 5.9295 2772158.0760 313189.8550

16410 2772168.4582 313177.9299 5.8750 2772155.5365 313185.5477

16415 2772165.9190 313173.6226 5.8205 2772152.9961 313181.2383

16420 2772163.3810 313169.3146 5.7660 2772150.4551 313176.9251

16425 2772160.8453 313165.0053 5.7115 2772147.9143 313172.6071

16430 2772158.3131 313160.6939 5.6570 2772145.3750 313168.2837

16435 2772155.7854 313156.3799 5.6025 2772142.8383 313163.9543

16440 2772153.2635 313152.0625 5.5480 2772140.3052 313159.6179

16445 2772150.7485 313147.7411 5.4935 2772137.7773 313155.2742

16450 2772148.2414 313143.4150 5.4390 2772135.2553 313150.9224

16455 2772145.7436 313139.0837 5.3845 2772132.7406 313146.5617

16460 2772143.2561 313134.7464 5.3300 2772130.2343 313142.1918

16465 2772140.7800 313130.4025 5.2755 2772127.7375 313137.8116

16470 2772138.3167 313126.0514 5.2210 2772125.2518 313133.4208

16475 2772135.8671 313121.6926 5.1665 2772122.7779 313129.0188

16480 2772133.4326 313117.3253 5.1120 2772120.3173 313124.6047

16485 2772131.0142 313112.9491 5.0575 2772117.8711 313120.1782

16490 2772128.6132 313108.5633 5.0030 2772115.4406 313115.7386

16495 2772126.2307 313104.1674 4.9485 2772113.0270 313111.2852

16500 2772123.8680 313099.7609 4.8940 2772110.6316 313106.8177

16505 2772121.5262 313095.3432 4.8395 2772108.2557 313102.3356

16510 2772119.2064 313090.9139 4.7850 2772105.9012 313097.8402

16515 2772116.9087 313086.4731 4.7305 2772103.5691 313093.3328

16520 2772114.6333 313082.0209 4.6760 2772101.2595 313088.8137

16525 2772112.3802 313077.5573 4.6215 2772098.9726 313084.2832

53

Page 67: Chung-Hua University Repository:主頁

16530 2772110.1494 313073.0826 4.5670 2772096.7084 313079.7415

16535 2772107.9410 313068.5967 4.5125 2772094.4669 313075.1883

16540 2772105.7550 313064.0999 4.4580 2772092.2481 313070.6240

16545 2772103.5916 313059.5921 4.4038 2772090.0522 313066.0485

16550 2772101.4508 313055.0737 4.3495 2772087.8793 313061.4624

16555 2772099.3325 313050.5445 4.2953 2772085.7292 313056.8652

16560 2772097.2370 313046.0049 4.2410 2772083.6023 313052.2576

表 5.6汐止山岳鐵路隧道標準斷面資料

開挖面   鋼支保

  雙層網   完成面  

0.0000 6.0300 0.0000 5.8300 0.0000 5.7800 0.0000 5.3800

-0.5255 6.0071 -0.5081 5.8078 -0.5038 5.7580 -0.4689 5.3595

-1.0471 5.9384 -1.0124 5.7414 -1.0037 5.6922 -0.9342 5.2983

-1.5607 5.8245 -1.5089 5.6313 -1.4960 5.5831 -1.3924 5.1967

-2.0624 5.6663 -1.9940 5.4784 -1.9769 5.4314 -1.8401 5.0555

-2.5484 5.4650 -2.4639 5.2838 -2.4427 5.2385 -2.2737 4.8759

-3.0150 5.2221 -2.9150 5.0489 -2.8900 5.0056 -2.6900 4.6592

-3.4587 4.9395 -3.3440 4.7757 -3.3153 4.7347 -3.0858 4.4070

-3.8760 4.6192 -3.7475 4.4660 -3.7153 4.4277 -3.4582 4.1213

-4.2639 4.2639 -4.1224 4.1224 -4.0871 4.0871 -3.8042 3.8042

-4.6192 3.8760 -4.4660 3.7475 -4.4277 3.7153 -4.1213 3.4582

-4.9395 3.4587 -4.7757 3.3440 -4.7347 3.3153 -4.4070 3.0858

-5.2221 3.0150 -5.0489 2.9150 -5.0056 2.8900 -4.6592 2.6900

-5.4650 2.5484 -5.2838 2.4639 -5.2385 2.4427 -4.8759 2.2737

-5.6663 2.0624 -5.4784 1.9940 -5.4314 1.9769 -5.0555 1.8401

-5.8245 1.5607 -5.6313 1.5089 -5.5831 1.4960 -5.1967 1.3924

-5.9384 1.0471 -5.7414 1.0124 -5.6922 1.0037 -5.2983 0.9342

-6.0154 0.5263 -5.8161 0.5088 -5.7662 0.5045 -5.3633 0.4692

-6.0635 0.0000 -5.8631 0.0000 -5.8130 0.0000 -5.3950 0.0000

-6.0823 -0.5321 -5.8821 -0.5146 -5.8321 -0.5102 -5.3930 -0.4718

-6.0709 -1.0705 -5.8723 -1.0355 -5.8227 -1.0267 -5.3570 -0.9446

-6.0281 -1.6152 -5.8325 -1.5628 -5.7836 -1.5497 -5.2865 -1.4165

-5.9524 -2.1665 -5.7612 -2.0969 -5.7727 -1.6497 -5.1389 -2.0385

-5.9201 -2.3484 -5.7306 -2.2733 -5.7612 -2.0969 -5.0920 -2.1932

-5.7551 -2.6836 -5.5728 -2.5986 -5.7317 -2.2670 -4.1100 -3.1389

-5.4144 -3.1260 -5.2350 -3.0224 -5.5728 -2.5986 -3.8165 -3.2024

-4.9706 -3.4805 -4.7907 -3.3545 -5.2350 -3.0224 -3.6480 -3.2367

-4.4375 -3.7235 -4.2519 -3.5678 -4.7907 -3.3545 -3.3020 -3.3020

-4.2525 -3.7731 -4.0677 -3.6091 -4.2519 -3.5678 -2.8356 -3.3794

54

Page 68: Chung-Hua University Repository:主頁

-3.8576 -3.8576 -3.6875 -3.6875 -4.0677 -3.6091 -2.4085 -3.4397

-3.3216 -3.9585 -3.1727 -3.7811 -3.6875 -3.6875 -2.0131 -3.4867

-2.8274 -4.0379 -2.6989 -3.8544 -3.1727 -3.7811 -1.6428 -3.5230

-2.3672 -4.1001 -2.2585 -3.9118 -2.6989 -3.8544 -1.2923 -3.5505

-1.9344 -4.1484 -1.8448 -3.9563 -2.2585 -3.9118 -0.9568 -3.5707

-1.5233 -4.1852 -1.4523 -3.9901 -1.8448 -3.9563 -0.6320 -3.5845

-1.1287 -4.2123 -1.0758 -4.0150 -1.4523 -3.9901 -0.3143 -3.5925

-0.7460 -4.2308 -0.7109 -4.0320 -1.0758 -4.0150 0.0000 -3.5951

-0.3711 -4.2416 -0.3536 -4.0419 -0.7109 -4.0320 0.3143 -3.5925

0.0000 -4.2451 0.0000 -4.0451 -0.3536 -4.0419 0.6320 -3.5845

0.3711 -4.2416 0.3536 -4.0419 0.0000 -4.0451 0.9568 -3.5707

0.7460 -4.2308 0.7109 -4.0320 0.3536 -4.0419 1.2923 -3.5505

1.1287 -4.2123 1.0758 -4.0150 0.7109 -4.0320 1.6428 -3.5230

1.5233 -4.1852 1.4523 -3.9901 1.0758 -4.0150 2.0131 -3.4867

1.9344 -4.1484 1.8448 -3.9563 1.4523 -3.9901 2.4085 -3.4397

2.3672 -4.1001 2.2585 -3.9118 1.8448 -3.9563 2.8356 -3.3794

2.8274 -4.0379 2.6989 -3.8544 2.2585 -3.9118 3.3020 -3.3020

3.3216 -3.9585 3.1727 -3.7811 2.6989 -3.8544 3.6480 -3.2367

3.8576 -3.8576 3.6875 -3.6875 3.1727 -3.7811 3.8165 -3.2024

4.2525 -3.7731 4.0677 -3.6091 3.6875 -3.6875 4.1100 -3.1389

4.4375 -3.7235 4.2519 -3.5678 4.0677 -3.6091 5.0920 -2.1932

4.9706 -3.4805 4.7907 -3.3545 4.2087 -3.5780 5.1389 -2.0385

5.4144 -3.1260 5.2350 -3.0224 4.7907 -3.3545 5.1811 -1.8858

5.7551 -2.6836 5.5728 -2.5986 5.2350 -3.0224 5.2865 -1.4165

5.9201 -2.3484 5.7306 -2.2733 5.5728 -2.5986 5.3570 -0.9446

5.9524 -2.1665 5.7612 -2.0969 5.7306 -2.2733 5.3930 -0.4718

6.0281 -1.6152 5.8325 -1.5628 5.7612 -2.0969 5.3950 0.0000

6.0709 -1.0705 5.8723 -1.0355 5.7727 -1.6497 5.3633 0.4692

6.0823 -0.5321 5.8821 -0.5146 5.7836 -1.5497 5.2983 0.9342

6.0635 0.0000 5.8631 0.0000 5.8227 -1.0267 5.1967 1.3924

6.0154 0.5263 5.8161 0.5088 5.8321 -0.5102 5.0555 1.8401

5.9384 1.0471 5.7414 1.0124 5.8130 0.0000 4.8759 2.2737

5.8245 1.5607 5.6313 1.5089 5.7662 0.5045 4.6592 2.6900

5.6663 2.0624 5.4784 1.9940 5.6922 1.0037 4.4070 3.0858

5.4650 2.5484 5.2838 2.4639 5.5831 1.4960 4.1213 3.4582

5.2221 3.0150 5.0489 2.9150 5.4314 1.9769 3.8042 3.8042

4.9395 3.4587 4.7757 3.3440 5.2385 2.4427 3.4582 4.1213

4.6192 3.8760 4.4660 3.7475 5.0056 2.8900 3.0858 4.4070

4.2639 4.2639 4.1224 4.1224 4.7347 3.3153 2.6900 4.6592

3.8760 4.6192 3.7475 4.4660 4.4277 3.7153 2.2737 4.8759

3.4587 4.9395 3.3440 4.7757 4.0871 4.0871 1.8401 5.0555

3.0150 5.2221 2.9150 5.0489 3.7153 4.4277 1.3924 5.1967

55

Page 69: Chung-Hua University Repository:主頁

2.5484 5.4650 2.4639 5.2838 3.3153 4.7347 0.9342 5.2983

2.0624 5.6663 1.9940 5.4784 2.8900 5.0056 0.4689 5.3595

1.5607 5.8245 1.5089 5.6313 2.4427 5.2385 0.0000 5.3800

1.0471 5.9384 1.0124 5.7414 1.9769 5.4314    

0.5255 6.0071 0.5081 5.8078 1.4960 5.5831    

0.0000 6.0300 0.0000 5.8300 1.0037 5.6922    

        0.5038 5.7580    

        0.0000 5.7800    

56

Page 70: Chung-Hua University Repository:主頁

圖 5.1玉長公路位置圖

57

Page 71: Chung-Hua University Repository:主頁

圖 5.2 隧道斷面收方程式主畫面(玉長公路隧道)

58

Page 72: Chung-Hua University Repository:主頁

圖 5.3 開啟新檔畫面(玉長公路隧道)

59

Page 73: Chung-Hua University Repository:主頁

圖 5.4 收方資料 Excel檔(玉長公路隧道)

60

Page 74: Chung-Hua University Repository:主頁

圖 5.5 隧道斷面收方程式資料處理系統(玉長公路隧道)

61

Page 75: Chung-Hua University Repository:主頁

圖 5.6 經隧道斷面收方程式資料處理系統後(玉長公路隧道)

62

Page 76: Chung-Hua University Repository:主頁

圖 5.7玉長公路隧道斷面收方程式之成果顯示

63

Page 77: Chung-Hua University Repository:主頁

圖 5.8玉長公路隧道斷面收方繪圖結果

64

Page 78: Chung-Hua University Repository:主頁

圖 5.9 Excel版本之收方形式(玉長公路隧道)

65

Page 79: Chung-Hua University Repository:主頁

圖 5.10汐止山岳鐵路隧道位置圖

66

Page 80: Chung-Hua University Repository:主頁

圖 5.11 隧道斷面收方程式新建檔案畫面(汐止山岳鐵路隧道)

67

Page 81: Chung-Hua University Repository:主頁

圖 5.12 隧道斷面收方程式資料處理系統(汐止山岳鐵路隧道)

68

Page 82: Chung-Hua University Repository:主頁

圖 5.13汐止山岳鐵路隧道斷面收方繪圖結果

69

Page 83: Chung-Hua University Repository:主頁

圖 5.14 Excel版本之收方形式(汐止山岳鐵路隧道)

70

Page 84: Chung-Hua University Repository:主頁

第六章 結論與建議

在整個論文的撰寫過程中,經研究動機、目的、文獻蒐集、方法確

認,實際撰寫後得到成果,以下即針對論文研究過程所遇到之問題

與想法提出以下結論與建議。

6.1 結論

(a)本研究以 Visual Basic 視窗程式語言撰寫可視化程式,所

獲得之結果可具體呈現程式的視窗化,視窗程式撰寫結果如文

後之程式碼附錄所示。

(b)本研究之隧道斷面收方視窗程式結合工程資訊系統、隧道

斷面收方資料處理系統、主要繪圖系統進行撰寫。以綜合式後方

交會法與後方交會法理論編輯而成,並導入玉長公路隧道及汐

止山岳鐵路隧道收方資料,與實際隧道收方數據比對,發現與

實際收方圖資料無誤,可用於現地收方。

(c)使用本視窗化程式可達到收方的目的,以收方方式比對隧

道斷面,以預判隧道開挖面是否為內傾或超挖等情形。

6.2建議

(a)隧道斷面收方最大功能係作為回饋下一輪開挖之依據,應

從合約制定,視隧道線型、地質開挖方式,按實際需要,由施工

者提出收方間距及時機的施工計畫,經由業主與監造單位審核。

(b)如欲推廣隧道斷面收方之視窗化程式,未來可朝更接近人

性化、視窗程式介面美化及程式包裝為方向進行發展。

71

Page 85: Chung-Hua University Repository:主頁

參考文獻

(1)王銘鋒(2005),「可視化收斂圍束法在隧道工程之應用」,碩

論文,中華大學土木工程系,新竹。

(2)陳聖彥(2004),「視窗化收斂圍束法在隧道工程之研究與應

用」,碩士論文,中華大學土木工程系,新竹。

(3)陳堯中,吳俊傑,傅子仁 (1998),「隧道變形量測及斷面收

方之自動化技術」,地工技術雜誌,第 65 期,第 43~52頁。

(4)陳堯中,翁世樑,張文城 (1995),「隧道工程監測自動化技

術引進及推廣」,內政部營建署營建自動化專業計畫成果報告,

共 123頁。

(5)陳堯中,姚錫齡,魏錦銘(1991),「隧道斷面自動量測儀之

研製」, 內政部建築研究所籌備處專題研究計畫成果報告,共

63頁。

(6)許榮達(2004),「隧道斷面收方技術開發與工程應用之研究」,

碩士論文,中華大學土木工程系,新竹。

(7)黃水木(1999),「路線測量與土石方計算」,茂榮圖書有限公

司。

(8)葉怡成(1991) ,「測量學-21世紀觀點」,東華書局,台灣台

北。

(9)蔡茂生(1998),「山岳隧道施工自動化」,地工技術雜誌,第

6

期,第 5~18頁。

72

Page 86: Chung-Hua University Repository:主頁

(10)楊道昌,游保杉(2002),「區域連續行降雨-逕流模式視窗

軟體之發展與應用」, 土木水利第二十八卷第四期

pp.106~117。

(11)楊森閔(2002),「由現地基樁試驗資料歸納土壤 P-Y曲線」,

碩士論文,國立台灣大學土木工程研究所,台北。

(12)管晏如(1990),「測量學」,有寧出版有限公司,台灣台北。

(13)管晏如(1991),「電子測距」,國立編譯館出版,台灣台北。

(14).Leica Profiler 4000 PRO-SYS 6.0 Software Manual

(15) Leica TCR307操作手冊

(16).Leica TCR1101操作手冊

73

Page 87: Chung-Hua University Repository:主頁

附 錄

74

Page 88: Chung-Hua University Repository:主頁

附錄 程式碼

Dim minX As Long

Dim minY As Long

Dim maxX As Long

Dim maxY As Long

Dim design_data() As MYDATA

Dim measure_data() As MYDATA

Dim cx, cy, pi

Dim fname

Dim connectionText As String

Dim con As New ADODB.Connection

Dim cmd As New ADODB.Command

Dim rs As New ADODB.Recordset

Private Declare Function OSWinHelp% Lib "user32" Alias "WinHelpA"

(ByVal hwnd&, ByVal HelpFile$, ByVal wCommand%, dwData As

Any)

Private Sub Initialize()

75

Page 89: Chung-Hua University Repository:主頁

Db = App.Path & "\" & "ouvd.mdb"

connectiontxt = "Provider=Microsoft.Jet.OLEDB.4.0;Persist

Security Info=False;Data Source=" & App.Path & "\" & "ouvd.mdb"

con.Open connectiontxt

cmd.ActiveConnection = con '初始化選單資訊

End Sub

Private Sub Command1_Click()

End Sub

Private Sub Command2_Click()

Dim n As Integer, i As Integer, a As Integer

Dim c As Single, length As Single

n = 90

For i = 1 To n

c = Int(Rnd() * 16)

length = (Rnd() * 20) + 1

Next

For a = 0 To 639 Step length

pic1.Line (a, 0)-(639 - a, 479), QBColor(c)

76

Page 90: Chung-Hua University Repository:主頁

Next

For a = 0 To 479 Step length

pic1.Line (639, a)-(0, 479 - a), QBColor(c)

Next

End Sub

Private Sub DrawPic()

On Error GoTo fxxx

Dim n As Integer

n = 0

cmd.CommandText = "select * from design_xy where mode=" &

Text24

Set rs = cmd.Execute

'rs.MoveFirst

While rs.EOF = False

ReDim Preserve design_data(n)

design_data(n).X = rs.Fields(2) * 1000

design_data(n).Y = (rs.Fields(3) * 1000) +

(CSng(Text102.Text) * 1000) + 0.1 * 1000

'Print d(n).y

n = n + 1

rs.MoveNext

77

Page 91: Chung-Hua University Repository:主頁

Wend

' 找最大範圍

For i = 0 To n - 1

If i = 0 Then

maxX = GetMaxRange(design_data(i).X)

maxY = GetMaxRange(design_data(i).Y)

minX = GetMinRange(design_data(i).X)

minY = GetMinRange(design_data(i).Y)

Else

If design_data(i).X > maxX Then maxX =

GetMaxRange(design_data(i).X)

If design_data(i).Y > maxY Then maxY =

GetMaxRange(design_data(i).Y)

If design_data(i).X < minX Then minX =

GetMinRange(design_data(i).X)

If design_data(i).Y < minY Then minY =

GetMinRange(design_data(i).Y)

End If

Next

'================================================

========

'抓取測量斷面資料

n = 0

78

Page 92: Chung-Hua University Repository:主頁

For i = 0 To MSFlexGrid1.rows - 1

ReDim Preserve measure_data(n)

MSFlexGrid1.row = i

MSFlexGrid1.col = 0

measure_data(n).X = CSng(MSFlexGrid1.Text) * 1000

MSFlexGrid1.row = i

MSFlexGrid1.col = 1

measure_data(n).Y = CSng(MSFlexGrid1.Text) * 1000

n = n + 1

Next

' 找最大範圍

For i = 0 To n - 1

If measure_data(i).X > maxX Then maxX =

GetMaxRange(measure_data(i).X)

If measure_data(i).Y > maxY Then maxY =

GetMaxRange(measure_data(i).Y)

If measure_data(i).X < minX Then minX =

GetMinRange(measure_data(i).X)

If measure_data(i).Y < minY Then minY =

GetMinRange(measure_data(i).Y)

Next

'================================================

79

Page 93: Chung-Hua University Repository:主頁

=======================

'定義繪圖物件

Dim DrawMaxX As Long

Dim DrawMinX As Long

Dim DrawMaxY As Long

Dim DrawMinY As Long

DrawMaxX = maxX + 1000

DrawMinX = minX - 1000

DrawMaxY = maxY + 1000

DrawMinY = minY - 1000

Picture7.Cls

Picture7.Scale (DrawMaxX, DrawMaxY)-(DrawMinX - 100,

DrawMinY - 100)

Picture7.DrawWidth = 1

Picture7.DrawStyle = 2

For i = DrawMaxX To DrawMinX Step -1000

Picture7.Line (i, DrawMaxY)-(i, DrawMinY)

Next

For i = DrawMaxY To DrawMinY Step -1000

Picture7.Line (DrawMaxX, i)-(DrawMinX, i)

Next

80

Page 94: Chung-Hua University Repository:主頁

design_exy

measure_xy

Exit Sub

fxxx:

MsgBox "資料不完整 如遺漏設計斷面高等 請檢查後 再行操作"

End Sub

Private Sub Command4_Click()

Form9.Show 'Form9 GASIO NO.2

End Sub

Private Sub Command9_Click()

dlgcommon1.Filter = "TXT (*.txt;*,csv) |*.txt;*.csv"

dlgcommon1.InitDir = "\"

dlgcommon1.DialogTitle = "選取所要匯入的檔案"

81

Page 95: Chung-Hua University Repository:主頁

dlgcommon1.ShowOpen

showTxt = dlgcommon1.FileName

txt = dlgcommon1.FileName

If Len(txt) <= 0 Or IsNull(txt) Then Exit Sub

Dim inputFile As Integer

inputFile = FreeFile

Open txt For Input As #inputFile

Do While Not EOF(inputFile)

Line Input #inputFile, aline

temp = Split(aline, ",")

Me.MSFlexGrid1.rows = Me.MSFlexGrid1.rows + 1

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 0)

= IIf(temp(0) = "", 0, temp(0))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 1)

= IIf(temp(1) = "", 0, temp(1))

Loop

Me.MSFlexGrid1.RemoveItem (Me.MSFlexGrid1.row)

Close #inputFile 'Excel檔 匯入

MsgBox "匯入結束"

82

Page 96: Chung-Hua University Repository:主頁

End Sub

Private Sub mnuData_Click()

Form4.Show

End Sub

Private Sub mnuopennew_Click()

Form2.Show '資訊視窗

End Sub

Private Sub mnusupport_Click(Index As Integer)

Form6.Show

End Sub

Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As

Integer, X As Single, Y As Single)

OldX = MSFlexGrid1.col

OldY = MSFlexGrid1.row '定義滑鼠座標

83

Page 97: Chung-Hua University Repository:主頁

End Sub

Private Sub Form_Load()

Dim i As Integer, j As Integer, k As Integer

MSFlexGrid1.ColWidth(0) = 950

MSFlexGrid1.ColWidth(1) = 1000

MSFlexGrid2.ColWidth(0) = 800

MSFlexGrid2.ColWidth(1) = 1100

MSFlexGrid2.ColWidth(2) = 1100

MSFlexGrid2.ColWidth(3) = 700 '設定Grid1 的格子寬度

pi = 3.14159

cx = 320

cy = 240

pic1.ScaleMode = 3

pic1.Scale (0, 0)-(640, 480)

set_color

For i = 0 To 47

Pic2(i).BackColor = color(i)

Next '初始設定

Initialize

84

Page 98: Chung-Hua University Repository:主頁

Text3 = ""

Text4 = ""

Text5 = ""

Text7 = ""

Text8 = ""

Text9 = ""

Text10 = ""

Text11 = ""

Text12 = ""

Text13 = ""

Text14 = ""

Text15 = ""

Text16 = ""

Text17 = ""

Text18 = ""

Text19 = ""

Text20 = ""

Text21 = ""

End Sub

85

Page 99: Chung-Hua University Repository:主頁

Private Sub Command7_Click()

Dim d() As MYDATA

Dim n As Integer

Dim RowSel As Integer

Dim ColSel As Integer

RowSel = MSFlexGrid1.RowSel

ColSel = MSFlexGrid1.ColSel

Dim i As Long

For i = OldY To RowSel

ReDim Preserve d(n)

MSFlexGrid1.row = i

MSFlexGrid1.col = OldX

d(n).X = CSng(MSFlexGrid1.Text) * 1000

MSFlexGrid1.row = i

MSFlexGrid1.col = OldX + 1

d(n).Y = CSng(MSFlexGrid1.Text) * 1000

n = n + 1

Next

For i = 0 To n - 1

86

Page 100: Chung-Hua University Repository:主頁

If i = 0 Then

minX = d(i).X

minY = d(i).Y

maxX = d(i).X

maxY = d(i).Y

Else

If d(i).X > maxX Then maxX = d(i).X

If d(i).Y > maxY Then maxY = d(i).Y

If d(i).X < minX Then minX = d(i).X

If d(i).Y < minY Then minY = d(i).Y

End If

Next

Picture7.Scale (maxX + 1000, maxY + 1000)-(minX - 1000,

minY - 1000)

Picture7.DrawWidth = 1

Picture7.DrawStyle = 2

Picture7.DrawWidth = 3

Picture7.DrawStyle = 0

For i = 0 To n - 1

Picture7.PSet (d(i).X, d(i).Y)

87

Page 101: Chung-Hua University Repository:主頁

Next

Picture7.DrawWidth = 1

For i = 0 To n - 1

If i = 0 Then

Picture7.PSet (d(i).X, d(i).Y)

Else

Picture7.Line -(d(i).X, d(i).Y), vbBlue

End If

Next

End Sub

Private Sub mmufileend_Click()

End '結束程式

End Sub

Private Sub Pic2_Click(Index As Integer)

pic1.ForeColor = color(Index)

pic3.BackColor = color(Index)

End Sub

Sub design_exy()

88

Page 102: Chung-Hua University Repository:主頁

Dim OldX As Single

Dim OldY As Single

Dim n As Integer

n = UBound(design_data)

Picture7.DrawWidth = 3

Picture7.DrawStyle = 0

For i = 0 To n - 1

Picture7.PSet (design_data(i).X, design_data(i).Y),

vbRed

Next

Picture7.DrawWidth = 1

For i = 0 To n - 1

If i = 0 Then Picture7.PSet (design_data(i).X,

design_data(i).Y)

Next

'設計段面線

Picture7.DrawWidth = 5

Picture7.PSet (0, (Val(Text102) + 0.1) * 1000), vbBlack

'設計中心點

89

Page 103: Chung-Hua University Repository:主頁

Picture7.DrawWidth = 2

Picture7.Line (-1000, Val(Text102) * 1000)-(1000,

Val(Text102) * 1000), vbRed

'設計高程線

Picture7.DrawWidth = 2

End Sub

Sub measure_xy()

Dim OldX As Single

Dim OldY As Single

Dim d() As MYDATA

Dim n As Integer

n = UBound(measure_data)

Picture7.DrawWidth = 3

Picture7.DrawStyle = 0

For i = 0 To n - 1

Picture7.PSet (measure_data(i).X, measure_data(i).Y)

Next

Picture7.DrawWidth = 1

90

Page 104: Chung-Hua University Repository:主頁

For i = 0 To n - 1

If i = 0 Then

Picture7.PSet (measure_data(i).X,

measure_data(i).Y)

Else

Picture7.Line -(measure_data(i).X,

measure_data(i).Y), vbBlue

End If

Next

End Sub

Private Sub VScroll2_Change()

Text24.Text = VScroll2.Value

End Sub

Private Sub Text24_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then Text24_LostFocus

End Sub

Private Sub Text24_Change()

Select Case Text24

Case "0"

Picture7.Cls

91

Page 105: Chung-Hua University Repository:主頁

Text25 = "選擇斷面形式(1~6)"

Exit Sub

Case "1"

Text25 = "混凝土面"

Label2 = "隧道斷面測量圖"

Picture1.Visible = True

Case "2"

Text25 = "完成面"

Label2 = "隧道斷面測量圖"

Case "3"

Text25 = "避車(左)完成面"

Label2 = "隧道斷面測量圖"

Case "4"

Text25 = "避車(右)完成面"

Label2 = "隧道斷面測量圖"

Case "5"

Text25 = "避車(左)噴凝土面"

Label2 = "隧道斷面測量圖"

Case "6"

Text25 = "避車(右)噴凝土面"

Label2 = "隧道斷面測量圖"

92

Page 106: Chung-Hua University Repository:主頁

Case Else

Text24 = "0"

Exit Sub

End Select

DrawPic

End Sub

Private Sub Text24_LostFocus()

If IsNumeric(Text24.Text) = False Then

MsgBox "必需是輸入數值才可以", 16

Text24.Text = VScroll2.Max - VScroll2.Value

End If

If Val(Text24.Text) > VScroll2.Max Or Val(Text24.Text) < 0

Then

MsgBox "數值範圍是 0 ~ " & VScroll2.Max, 16

Text24.Text = VScroll2.Max - VScroll2.Value

End If

End Sub

Function GetMaxRange(d As Single) As Long

93

Page 107: Chung-Hua University Repository:主頁

Dim tmp As Long

tmp = d / 1000

tmp = tmp + 1

GetMaxRange = tmp * 1000

End Function

Function GetMinRange(d As Single) As Long

Dim tmp As Long

tmp = d / 1000

tmp = tmp - 1

GetMinRange = tmp * 1000

End Function

Private Sub Combo1_Click()

Dim r As String

r = Combo1.Text

If r = "混凝土面" Then Text15 = "1"

If r = "完成面" Then Text15 = "2"

If r = "避車(左)完成面" Then Text15 = "3"

If r = "避車(右)完成面" Then Text15 = "4"

If r = "避車(左)混凝土面" Then Text15 = "5"

If r = "避車(右)混凝土面" Then Text15 = "6"

End Sub

94

Page 108: Chung-Hua University Repository:主頁

Private Sub Command1_Click()

Form4.Text105 = Text105

Form4.Text101 = Text101

Form4.Text102 = Text102

Form4.Text103 = Text103

Form4.Text104 = Text104

Form4.Text150 = Text15

Form4.Show

Me.Hide

End Sub

Private Sub Form_Load()

Combo1.AddItem "混凝土面"

Combo1.AddItem "完成面"

Combo1.AddItem "避車(左)完成面"

Combo1.AddItem "避車(右)完成面"

Combo1.AddItem "避車(左)混凝土面"

95

Page 109: Chung-Hua University Repository:主頁

Combo1.AddItem "避車(右)混凝土面"

Combo1.SelText = "混凝土面"

End Sub

Dim connectionText As String

Dim con As New ADODB.Connection

Dim cmd As New ADODB.Command

Dim rs As New ADODB.Recordset

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As

Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long,

ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long,

ByVal ySrc As Long, ByVal dwRop As Long) As Long

Private Declare Function GetDC Lib "user32" (ByVal hwnd As

Long) As Long

Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As

Long, ByVal hdc As Long) As Long

Private Declare Function GetDesktopWindow Lib "user32" ()

As Long '以上為宣告區

Function Round1(num As Variant, n As Long) As String

Round1 = Format(num, IIf(n > 0, "0." & String(n, "0"),

"0"))

End Function

Function Asin(ByVal X As Single) As Double

96

Page 110: Chung-Hua University Repository:主頁

If (1 - X ^ 2) <= 0 Then

Asin = 0

Else

Asin = Atn(X / Sqr(1 - X ^ 2)) / 0.0174532925

End If

'Asin 求法

End Function

Function Comp(obj As MSFlexGrid, col As Integer, ByVal mode As

Integer)

Dim tmp, row As Integer

For row = 0 To obj.rows - 1

If row = 0 Then

tmp = Val(obj.TextMatrix(row, col))

Else

Select Case mode

Case 1

tmp = GetMax(tmp, Val(obj.TextMatrix(row,

col)))

Case 2

tmp = GetMin(tmp, Val(obj.TextMatrix(row,

col)))

End Select

End If

Next

Comp = tmp

97

Page 111: Chung-Hua University Repository:主頁

End Function

Function GetMax(ByVal data1 As Integer, ByVal data2 As Integer)

As Integer

If data1 > data2 Then

GetMax = data1

Else

GetMax = data2

End If

End Function

Function GetMin(ByVal data1 As Integer, ByVal data2 As Integer) As

Integer

If data1 < data2 Then

GetMin = data1

Else

GetMin = data2

End If

End Function

Function Comp2(obj As MSFlexGrid, col As Integer) As Integer ' 取

次大直

Dim tmp(2), row As Integer

For row = 0 To obj.rows - 1

' tmp(0) 第一大 tmp(1) 第二大

98

Page 112: Chung-Hua University Repository:主頁

For i = 0 To 1

If tmp(i) < Val(obj.TextMatrix(row, col)) Then

If i = 0 Then

tmp(i + 1) = tmp(i)

End If

tmp(i) = Val(obj.TextMatrix(row, col))

Exit For

End If

Next

Next

Comp2 = tmp(1)

End Function

Function Comp3(obj As MSFlexGrid, col As Integer) As Integer ' 取

次小直

Dim tmp(2), row As Integer

tmp(0) = Comp2(MSFlexGrid4, 0)

tmp(1) = Comp(MSFlexGrid4, 0, 1)

For row = 0 To obj.rows - 1

' tmp(0) 第一小 tmp(1) 第二小

For i = 0 To 1

If tmp(i) > Val(obj.TextMatrix(row, col)) Then

If i = 0 Then

tmp(i + 1) = tmp(i)

End If

99

Page 113: Chung-Hua University Repository:主頁

tmp(i) = Val(obj.TextMatrix(row, col))

Exit For

End If

Next

Next

Comp3 = tmp(1)

End Function

Function GetAvg(obj As MSFlexGrid, col As Integer) As Double ' 取

平均值

Dim sum As Double

Dim row As Integer

For row = 0 To obj.rows - 1

sum = sum + Val(obj.TextMatrix(row, col))

Next

GetAvg = sum / (row)

End Function

Private Sub Command1_Click()

'新增中線資料鈕

Me.MSFlexGrid1.rows = Me.MSFlexGrid1.rows + 1

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 0) =

100

Page 114: Chung-Hua University Repository:主頁

IIf(Text1(0) = "", 0, Text1(0))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 1) =

IIf(Text1(1) = "", 0, Text1(1))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 2) =

IIf(Text1(2) = "", 0, Text1(2))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 3) =

IIf(Text1(3) = "", 0, Text1(3))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 4) =

IIf(Text1(4) = "", 0, Text1(4))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 5) =

IIf(Text1(5) = "", 0, Text1(5))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 6) =

IIf(Text1(6) = "", 0, Text1(6))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 7) =

IIf(Text1(7) = "", 0, Text1(7))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 8) =

IIf(Text1(8) = "", 0, Text1(8))

End Sub

Private Sub Command10_Click()

'開啟 EXCEL

Dim xls As Excel.Application

Set xls = Excel.Application

Dim book As Excel.Workbook

Set book = xls.Workbooks.Open("c:\150k.xls")

101

Page 115: Chung-Hua University Repository:主頁

Dim sheet As Excel.Worksheet

Set sheet = xls.Sheets(1)

Dim rows As Integer, cols As Integer

Dim i As Integer, j As Integer

Dim k As Integer, l As Integer

For i = 45 To 71

For j = 1 To 27

sheet.Cells(i, 2) = MSFlexGrid1.TextMatrix(j, 1)

sheet.Cells(i, 3) = MSFlexGrid1.TextMatrix(j, 2)

sheet.Cells(i, 4) = MSFlexGrid1.TextMatrix(j, 3)

sheet.Cells(i, 5) = MSFlexGrid1.TextMatrix(j, 4)

sheet.Cells(i, 6) = MSFlexGrid1.TextMatrix(j, 5)

sheet.Cells(i, 7) = MSFlexGrid1.TextMatrix(j, 6)

sheet.Cells(i, 8) = MSFlexGrid1.TextMatrix(j, 7)

sheet.Cells(i, 9) = MSFlexGrid1.TextMatrix(j, 8)

Next

Next

'Print sheet.Cells(1, 3)

'Print sheet.Cells(2, 3)

'sheet.PrintOut print 用

102

Page 116: Chung-Hua University Repository:主頁

xls.DisplayAlerts = True

xls.Quit

End Sub

Sub c1()

'計算距離高差

Dim n As Integer

For i = 1 To MSFlexGrid1.rows - 1

n = n + 1

If n >= fg3.rows Then

fg3.AddItem ""

fg3.col = 0

fg3.col = 1

fg3.col = 2

fg3.row = n

fg3.TextMatrix(n - 1, 0) =

Round(MSFlexGrid1.TextMatrix(i, 1) +

MSFlexGrid1.TextMatrix(i, 2) / 60 + MSFlexGrid1.TextMatrix(i,

3) / 3600, 2)

fg3.TextMatrix(n - 1, 1) =

Round((MSFlexGrid1.TextMatrix(i, 7) / 1000) *

Sin((MSFlexGrid1.TextMatrix(i, 4) +

MSFlexGrid1.TextMatrix(i, 5) / 60 + MSFlexGrid1.TextMatrix(i,

6) / 3600) * 3.1415926 / 180), 3)

103

Page 117: Chung-Hua University Repository:主頁

fg3.TextMatrix(n - 1, 2) =

Round((MSFlexGrid1.TextMatrix(i, 7) / 1000) *

Cos((MSFlexGrid1.TextMatrix(i, 4) +

MSFlexGrid1.TextMatrix(i, 5) / 60 + MSFlexGrid1.TextMatrix(i,

6) / 3600) * 3.1415926 / 180), 3)

'高程 mm*弧度

End If

Next

'計算距離高差

Text15 = Round(Sqr((Val(Text7) - Val(Text3)) ^ 2 +

(Val(Text8) - Val(Text4)) ^ 2), 3) '已知測點距離

If Abs(Val(fg3.TextMatrix(1, 0)) - Val(fg3.TextMatrix(0,

0))) > 180 Then

Text16 = Round(360 - Abs(fg3.TextMatrix(1, 0) -

fg3.TextMatrix(0, 0)), 3)

Else

Text16 = Round(Abs(fg3.TextMatrix(1, 0) -

fg3.TextMatrix(0, 0)), 3)

End If '量測夾角

104

Page 118: Chung-Hua University Repository:主頁

If Val(fg3.TextMatrix(1, 1)) > Val(fg3.TextMatrix(0, 1))

And Val(fg3.TextMatrix(1, 1)) > Val(Text15) Then

Text19 = Round((180 - (Val(Text16) * 3.1415926 /

180)) * (fg3.TextMatrix(1, 1) / Val(Text15) * 3.1415926 /

180), 3)

Else

Text19 = Round((Val(Text16) * 3.1415926 / 180) *

(fg3.TextMatrix(1, 1) / Val(Text15) * 3.1415926 / 180), 3)

End If '

If Val(fg3.TextMatrix(0, 1)) > Val(fg3.TextMatrix(1, 1)) Or

Val(fg3.TextMatrix(0, 1)) > Val(Text15) Then

Text20 = Round(180 - (Val(Text16) / 180 * 3.1415926) *

(fg3.TextMatrix(0, 1) / Val(Text15) / 3.1415926 * 180), 3)

Else

Text20 = Round((Val(Text16) / 180 * 3.1415926) *

fg3.TextMatrix(0, 1) / Val(Text15) / 3.1415926 * 180, 3)

End If '

If Val(Text19) > Val(Text20) Then

Text17 = Round(180 - Val(Text16) - Val(Text20), 3)

Else

Text17 = Text19

105

Page 119: Chung-Hua University Repository:主頁

End If '計算距離高差 已知點 1 內角計算 worng

If Val(Text20) > Val(Text19) Then

Text18 = Round(180 - Val(Text16) - Val(Text19), 3)

Else

Text18 = Text20

End If '計算距離高差 已知點 2 內角計算

Text21 = Round(((Val(Text16) + fg3.TextMatrix(0, 0))

/ 360 - Int((Val(Text16) + fg3.TextMatrix(0, 0)) / 360)) *

360, 3)

Text22 = Round(fg3.TextMatrix(1, 0), 3)

End Sub

Sub c2()

'計算過程

Text37 = Round(Abs(Atn((Val(Text8) - Val(Text4)) /

(Val(Text7) - Val(Text3))) * 180 / 3.1415926), 3) '數學

方位角

If (Val(Text8) - Val(Text4)) >= 0 And (Val(Text7) -

Val(Text3)) >= 0 Then Text38 = Text37

If (Val(Text8) - Val(Text4)) >= 0 And (Val(Text7) -

Val(Text3)) < 0 Then Text38 = 180 - Val(Text37)

If (Val(Text8) - Val(Text4)) < 0 And (Val(Text7) -

Val(Text3)) >= 0 Then Text38 = 360 - Val(Text37)

106

Page 120: Chung-Hua University Repository:主頁

If (Val(Text8) - Val(Text4)) < 0 And (Val(Text7) -

Val(Text3)) < 0 Then Text38 = 180 + Val(Text37) '基線方位角

'計算過程

If Val(Text21) = Val(Text22) Then

Text24 = Round(Val(Text3) + (fg3.TextMatrix(0, 1) *

Sin((90 - (Val(Text38) + Val(Text17))) / 180 *

3.1415926)), 3) '測站一算未知點N

Text27 = Round(Val(Text4) + (fg3.TextMatrix(0, 1) *

Cos((90 - (Val(Text38) + Val(Text17))) / 180 *

3.1415926)), 3) '測站一算未知點 E

Text25 = Round(Val(Text7) + (fg3.TextMatrix(1, 1) *

Sin((90 - (Val(Text38) - 180 - Val(Text18))) / 180 *

3.1415926)), 3) '測站二算未知點N

Text28 = Round(Val(Text8) + (fg3.TextMatrix(1, 1) *

Cos((90 - (Val(Text38) - 180 - Val(Text18))) / 180 *

3.1415926)), 3) '測站二算未知點 E

Else

Text24 = Round(Val(Text3) + (fg3.TextMatrix(0, 1) *

Sin((90 - (Val(Text38) - Val(Text17))) / 180 *

3.1415926)), 3) '測站一算未知點N

Text27 = Round(Val(Text4) + (fg3.TextMatrix(0, 1) *

Cos((90 - (Val(Text38) - Val(Text17))) / 180 *

3.1415926)), 3) '測站一算未知點 E

Text25 = Round(Val(Text7) + (fg3.TextMatrix(1, 1) *

107

Page 121: Chung-Hua University Repository:主頁

Sin((90 - (Val(Text38) - 180 + Val(Text18))) / 180 *

3.1415926)), 3) '測站二算未知點N

Text28 = Round(Val(Text8) + (fg3.TextMatrix(1, 1) *

Cos((90 - (Val(Text38) - 180 + Val(Text18))) / 180 *

3.1415926)), 3) '測站二算未知點 E

End If

If Val(Text5) = 0 Then

Text30 = 0

Else

Text30 = Round(Val(Text5) + MSFlexGrid1.TextMatrix(1,

8) - fg3.TextMatrix(0, 2), 3)

End If '測站一算未知點高程

If Val(Text9) = 0 Then

Text31 = 0

Else

Text31 = Round(Val(Text9) + MSFlexGrid1.TextMatrix(2,

8) - fg3.TextMatrix(1, 2), 3)

End If '測站二算未知點高程

Text26 = Round(0.5 * (Val(Text24) + Val(Text25)), 3)

Text29 = Round(0.5 * (Val(Text27) + Val(Text28)), 3)

Text32 = Round(0.5 * (Val(Text30) + Val(Text31)), 3)

'平均值

108

Page 122: Chung-Hua University Repository:主頁

If Val(fg3.TextArray(4)) > Val(fg3.TextArray(1)) Then

Text34 = Round(Val(Text7) - Val(Text26), 3)

Text35 = Round(Val(Text8) - Val(Text29), 3)

Else

Text34 = Round(Val(Text3) - Val(Text26), 3)

Text35 = Round(Val(Text4) - Val(Text29), 3)

End If

Text33 = Round(Abs(Atn(Val(Text35) / Val(Text34))

* 180 / 3.1415926), 3)

If Val(Text35) >= 0 And Val(Text34) >= 0 Then Text36 =

Round(Val(Text33), 3)

If Val(Text35) >= 0 And Val(Text34) < 0 Then Text36 =

Round(180 - Val(Text33), 3)

If Val(Text35) < 0 And Val(Text34) >= 0 Then Text36 =

Round(360 - Val(Text33), 3)

If Val(Text35) < 0 And Val(Text34) < 0 Then Text36 =

Round(180 + Val(Text33), 3)

If Val(fg3.TextMatrix(1, 1)) > Val(fg3.TextMatrix(0, 1))

Then

Text39 = Round(Val(Text36) - Val(fg3.TextMatrix(1,

0)), 1)

Else

109

Page 123: Chung-Hua University Repository:主頁

Text39 = Round(Val(Text36) - Val(fg3.TextMatrix(0,

0)), 1)

End If

End Sub

Sub c3()

'成果資料 c3

Text43 = Text3

Text44 = Text4

Text45 = Text5

Text47 = Text7

Text48 = Text8

Text49 = Text9

Dim i As Integer

Dim j As Integer

For i = 3 To MSFlexGrid1.rows - 1 ' ROWS 改變

If fg4.rows <= i - 3 Then

fg4.AddItem ""

End If

If Val(MSFlexGrid1.TextMatrix(i, 1)) = 0 Then

fg4.TextMatrix(i - 3, 0) = 0

fg4.TextMatrix(i - 3, 1) = 0

fg4.TextMatrix(i - 3, 2) = 0

110

Page 124: Chung-Hua University Repository:主頁

Else

fg4.TextMatrix(i - 3, 0) = Round(Val(Text26) +

Val(fg3.TextMatrix(i - 1, 1)) * Sin((90 - (Val(Text39) +

Val(fg3.TextMatrix(i - 1, 0)))) / 180 * 3.1415926), 3)

fg4.TextMatrix(i - 3, 1) = Round(Val(Text29) +

Val(fg3.TextMatrix(i - 1, 1)) * Cos((90 - (Val(Text39) +

Val(fg3.TextMatrix(i - 1, 0)))) / 180 * 3.1415926), 3)

fg4.TextMatrix(i - 3, 2) = Round(Val(Text32) +

Val(fg3.TextMatrix(i - 1, 2)), 3)

End If

Next

Text51 = Round(GetAvg(fg4, 0), 2)

Text53 = Round(GetAvg(fg4, 1), 2)

If Text10 = 0 Then

Text55 = Round(fg4.TextMatrix(0, 2), 2)

Else

Text55 = Text10

End If

End Sub

111

Page 125: Chung-Hua University Repository:主頁

Sub c4()

'中心座標資料 c4

'執行於 fg4 之後

Text50 = Text70

Text52 = Text71

Text54 = Text72

If Text73 = 0 Then

Text56 = Round(GetAvg(fg4, 0), 2)

Else

Text56 = Text73

End If

Text57 = Text56

For i = 0 To fg4.rows - 1 ' ROWS 改變

If fg5.rows <= i Then

fg5.AddItem ""

End If

112

Page 126: Chung-Hua University Repository:主頁

Text100 = Round(Sqr((Val(Text74) - Val(Text71)) ^ 2

+ (Val(Text75) - Val(Text72)) ^ 2), 2)

If Val(fg4.TextMatrix(i, 0)) = 0 Then

fg5.TextMatrix(i, 0) = 0

Else

fg5.TextMatrix(i, 0) = Round(Sqr((Val(Text52) -

Val(fg4.TextMatrix(i, 0))) ^ 2 + (Val(Text54) -

Val(fg4.TextMatrix(i, 1))) ^ 2), 2)

End If

Text200 = Round(Abs(Atn((Val(Text72) -

Val(Text75)) / (Val(Text71) - Val(Text74))) * 180 /

3.1415926), 2)

If Val(fg4.TextMatrix(i, 0)) = 0 Then

fg5.TextMatrix(i, 2) = 0

Else

fg5.TextMatrix(i, 2) =

Round(Abs(Atn((Val(fg4.TextMatrix(i, 1)) -

Val(Text54)) / (Val(fg4.TextMatrix(i, 0)) -

Val(Text52))) * 180 / 3.1415926), 2)

113

Page 127: Chung-Hua University Repository:主頁

End If

If (Val(Text72) - Val(Text75)) >= 0 And (Val(Text71) -

Val(Text74)) >= 0 Then Text300 = Val(fg5.TextMatrix(0, 2))

If (Val(Text72) - Val(Text75)) >= 0 And (Val(Text71) -

Val(Text74)) < 0 Then Text300 = 180 - Val(fg5.TextMatrix(0,

2))

If (Val(Text72) - Val(Text75)) < 0 And (Val(Text71) -

Val(Text74)) >= 0 Then Text300 = 360 - Val(fg5.TextMatrix(0,

2))

If (Val(Text72) - Val(Text75)) < 0 And (Val(Text71) -

Val(Text74)) < 0 Then Text300 = 180 + Val(fg5.TextMatrix(0,

2))

fg5.TextMatrix(i, 1) = fg5.TextMatrix(0, 3)

fg5.TextMatrix(0, 1) = fg5.TextMatrix(0, 3)

If Val(fg4.TextMatrix(i, 0)) = 0 Then

fg5.TextMatrix(i, 3) = 0

Else: GoTo 12

End If

12:

114

Page 128: Chung-Hua University Repository:主頁

If (Val(fg4.TextMatrix(i, 1)) - Val(Text54)) >= 0 And

(Val(fg4.TextMatrix(i, 0)) - Val(Text52)) >= 0 Then

fg5.TextMatrix(i, 3) = Val(fg5.TextMatrix(i, 2))

If (Val(fg4.TextMatrix(i, 1)) - Val(Text54)) >= 0 And

(Val(fg4.TextMatrix(i, 0)) - Val(Text52)) < 0 Then

fg5.TextMatrix(i, 3) = 180 - Val(fg5.TextMatrix(i, 2))

If (Val(fg4.TextMatrix(i, 1)) - Val(Text54)) < 0 And

(Val(fg4.TextMatrix(i, 0)) - Val(Text52)) >= 0 Then

fg5.TextMatrix(i, 3) = 360 - Val(fg5.TextMatrix(i, 2))

If (Val(fg4.TextMatrix(i, 1)) - Val(Text54)) < 0 And

(Val(fg4.TextMatrix(i, 0)) - Val(Text52)) < 0 Then

fg5.TextMatrix(i, 3) = 180 + Val(fg5.TextMatrix(i, 2))

Next

End Sub

Sub c5()

Text76 = Round(Sqr((Val(Text59) - Val(Text65)) ^ 2

+ (Val(Text60) - Val(Text66)) ^ 2), 3)

Text77 = Comp(MSFlexGrid4, 0, 2)

Text78 = Comp3(MSFlexGrid4, 0) '測試

Text70 = Round(Val(Text64) - (Val(Text64) -

Val(Text58)) / Val(Text76) * ((Val(Text78) ^ 2 +

Val(Text76) ^ 2 - Val(Text77) ^ 2) / 2 / Val(Text76)), 3)

115

Page 129: Chung-Hua University Repository:主頁

Text71 = Round(Text65 - (Text65 - Text59) / Text76 *

((Text78 ^ 2 + Text76 ^ 2 - Text77 ^ 2) / 2 / Text76), 3)

Text72 = Round(Text66 - (Text66 - Text60) / Text76 *

((Text78 ^ 2 + Text76 ^ 2 - Text77 ^ 2) / 2 / Text76), 3)

Text73 = Round(Text67 - (Text67 - Text61) / Text76 *

((Text78 ^ 2 + Text76 ^ 2 - Text77 ^ 2) / 2 / Text76), 3)

Text74 = Round(Text68 - (Text68 - Text62) / Text76 *

((Text78 ^ 2 + Text76 ^ 2 - Text77 ^ 2) / 2 / Text76), 3)

Text75 = Round(Text69 - (Text69 - Text63) / Text76 *

((Text78 ^ 2 + Text76 ^ 2 - Text77 ^ 2) / 2 / Text76), 3)

End Sub

Sub c7()

For i = 0 To fg5.rows - 1 ' ROWS 改變

If fg7.rows <= i Then

fg7.AddItem ""

End If

'斷面測量線X軸

If Val(fg4.TextMatrix(0, 0)) = 0 Then

fg7.TextMatrix(i, 0) = Text51

Else

fg7.TextMatrix(i, 0) = Round(Val(fg5.TextMatrix(i, 0))

* Sin((90 - (Val(fg5.TextMatrix(i, 1)) -

Val(fg5.TextMatrix(i, 3)))) / 180 * 3.1415926) - 0, 2) 'e=-

116

Page 130: Chung-Hua University Repository:主頁

1*s

End If

'斷面測量線Y軸

If Val(fg4.TextMatrix(0, 0)) = 0 Then

fg7.TextMatrix(i, 1) = "s"

Else

fg7.TextMatrix(i, 1) = Round(fg4.TextMatrix(i, 2), 2)

End If

'If Val(fg4.TextMatrix(0, 0)) = 0 Then

'fg7.TextMatrix(i, 2) = 0

'Else

'fg7.TextMatrix(i, 2) = Round(Val(fg5.TextMatrix(i, 0)) *

Cos((90 - (Val(fg5.TextMatrix(i, 1)) -

Val(fg5.TextMatrix(i, 3)))) / 180 * 3.1415926) - 0, 2) 'e=-

1*s

'End If

Next

End Sub

Sub centerdata_from_db()

117

Page 131: Chung-Hua University Repository:主頁

'中線資料從資料庫匯入

Dim n As Integer

Dim X As String

Dim Y As String

Adodc7.Refresh

Adodc7.Recordset.MoveFirst

While Adodc7.Recordset.EOF = False

n = n + 1

If n >= MSFlexGrid3.rows Then

MSFlexGrid3.AddItem ""

End If

MSFlexGrid3.row = n

MSFlexGrid3.col = 0

MSFlexGrid3.Text = Adodc7.Recordset.Fields(1)

MSFlexGrid3.row = n

MSFlexGrid3.col = 1

MSFlexGrid3.Text = Adodc7.Recordset.Fields(2)

MSFlexGrid3.row = n

MSFlexGrid3.col = 2

MSFlexGrid3.Text = Adodc7.Recordset.Fields(3)

MSFlexGrid3.row = n

MSFlexGrid3.col = 3

118

Page 132: Chung-Hua University Repository:主頁

MSFlexGrid3.Text = Adodc7.Recordset.Fields(4)

MSFlexGrid3.row = n

MSFlexGrid3.col = 4

MSFlexGrid3.Text = Adodc7.Recordset.Fields(5)

MSFlexGrid3.row = n

MSFlexGrid3.col = 5

MSFlexGrid3.Text = Adodc7.Recordset.Fields(6)

Adodc7.Recordset.MoveNext

Wend

End Sub

Sub centerdata_cal()

'中線資料計算部份

For i = 1 To MSFlexGrid3.rows - 1

If MSFlexGrid4.rows <= i - 1 Then

MSFlexGrid4.AddItem ""

End If

MSFlexGrid4.TextMatrix(i - 1, 0) =

Round(Sqr((Val(Text51) - Val(MSFlexGrid3.TextMatrix(i,

1))) ^ 2 + (Val(Text53) - Val(MSFlexGrid3.TextMatrix(i,

2))) ^ 2), 3)

119

Page 133: Chung-Hua University Repository:主頁

Next

End Sub

Private Sub Command12_Click()

SSTab2.Tab = 1

'換頁動作

End Sub

Private Sub Command14_Click()

'MSFlexGrid3 表單清除

MSFlexGrid3.Clear

End Sub

Private Sub Command3_Click()

On Error GoTo fxxx

dlgcommon2.Filter = "TXT (*.txt;*,csv) |*.txt;*.csv"

120

Page 134: Chung-Hua University Repository:主頁

dlgcommon2.InitDir = "\"

dlgcommon2.DialogTitle = "選取所要匯入的檔案"

dlgcommon2.ShowOpen

showTxt = dlgcommon2.FileName

txt = dlgcommon2.FileName

If Len(txt) <= 0 Or IsNull(txt) Then Exit Sub

Dim inputFile As Integer

inputFile = FreeFile

Open txt For Input As #inputFile

Do While Not EOF(inputFile)

Line Input #inputFile, aline

temp = Split(aline, ",")

Me.MSFlexGrid1.rows = Me.MSFlexGrid1.rows + 1

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 0)

= IIf(temp(0) = "", 0, temp(0))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 1)

= IIf(temp(1) = "", 0, temp(1))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 2)

= IIf(temp(2) = "", 0, temp(2))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 3)

= IIf(temp(3) = "", 0, temp(3))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 4)

121

Page 135: Chung-Hua University Repository:主頁

= IIf(temp(4) = "", 0, temp(4))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 5)

= IIf(temp(5) = "", 0, temp(5))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 6)

= IIf(temp(6) = "", 0, temp(6))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 7)

= IIf(temp(7) = "", 0, temp(7))

Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.rows - 1, 8)

= IIf(temp(8) = "", 0, temp(8))

Loop

Close #inputFile

MsgBox "匯入結束"

centerdata_from_db

'程式測試用

Text2 = "A-2"

Text3 = 2573903.424

Text4 = 288382.421

Text5 = 375.335

Text6 = "LC9190"

122

Page 136: Chung-Hua University Repository:主頁

Text7 = 2573949.194

Text8 = 288214.311

Text9 = 380

Text58 = 9190

Text59 = 2573949.193

Text60 = 288214.31

Text61 = 378.32

Text62 = 2573968.591

Text63 = 288219.18

Text64 = 9185

Text65 = 2573950.402

Text66 = 288209.459

Text67 = 378.42

Text68 = 2573969.817

Text69 = 288214.263

'====================

'==========================================

c1

'

c2

'

c3

'

123

Page 137: Chung-Hua University Repository:主頁

centerdata_cal

'

c5

'

c4

'

c7

'

'內部動作==================================

'==========================================

Close #inputFile

Exit Sub

fxxx:

MsgBox "資料不完整 請檢查後 再行操作"

'錯誤提示===================================

End Sub

Private Sub Command4_Click()

Form1.Show

124

Page 138: Chung-Hua University Repository:主頁

Form1.Text2 = Text2

Form1.Text3 = Text3

Form1.Text4 = Text4

Form1.Text5 = Text5

'控制樁點 1

Form1.Text6 = Text6

Form1.Text7 = Text7

Form1.Text8 = Text8

Form1.Text9 = Text9

'控制樁點 2

Form1.Text10 = Val(Text24) - Val(Text25)

Form1.Text11 = Val(Text27) - Val(Text28)

Form1.Text12 = Val(Text30) - Val(Text31)

Form1.Text13 = Val(Text26)

Form1.Text14 = Val(Text29)

Form1.Text15 = Val(Text36)

Form1.Text16 = Val(Text71)

Form1.Text17 = Val(Text72)

Form1.Text18 = Val(Text73)

Form1.Text19 = Val(Text74)

Form1.Text20 = Val(Text75)

Form1.Text21 = Val(Text10)

125

Page 139: Chung-Hua University Repository:主頁

For i = 0 To fg7.rows - 1 ' ROWS 改變

If Form1.MSFlexGrid1.rows <= i Then

Form1.MSFlexGrid1.AddItem ""

End If

Form1.MSFlexGrid1.TextMatrix(i, 0) = fg7.TextMatrix(i, 0)

Form1.MSFlexGrid1.TextMatrix(i, 1) = fg7.TextMatrix(i, 1)

Next

For i = 0 To fg4.rows - 1 ' ROWS 改變

If Form1.MSFlexGrid2.rows <= i Then

Form1.MSFlexGrid2.AddItem ""

End If

Form1.MSFlexGrid2.TextMatrix(i, 0) = i + 1

Form1.MSFlexGrid2.TextMatrix(i, 1) = fg4.TextMatrix(i, 0)

Form1.MSFlexGrid2.TextMatrix(i, 2) = fg4.TextMatrix(i, 1)

Form1.MSFlexGrid2.TextMatrix(i, 3) = fg4.TextMatrix(i, 2)

Next

Form1.Text105 = Text105

Form1.Text101 = Text101

Form1.Text102 = Text102

Form1.Text103 = Text103

Form1.Text104 = Text104

Form1.Text24 = Text150

Me.Hide

126

Page 140: Chung-Hua University Repository:主頁

End Sub

Private Sub Command6_Click()

Static MyFun As Integer

Select Case MyFun

Case 0

Label3 = "手動鍵入新增資料或點選左欄選擇控制樁點 "

MyFun = 1

Case 1

Label3 = " "

MyFun = 2

Case 2

Label3 = " "

MyFun = 0

End Select

End Sub

Private Sub Command7_Click()

Dim n As Integer

Dim X As String

Dim Y As String

Adodc4.Refresh

Adodc4.Recordset.MoveFirst

127

Page 141: Chung-Hua University Repository:主頁

While Adodc4.Recordset.EOF = False

n = n + 1

If n >= MSFlexGrid2.rows Then

MSFlexGrid2.AddItem ""

End If

MSFlexGrid2.row = n

MSFlexGrid2.col = 0

MSFlexGrid2.Text = Adodc4.Recordset.Fields(1)

MSFlexGrid2.row = n

MSFlexGrid2.col = 1

MSFlexGrid2.Text = Adodc4.Recordset.Fields(2)

MSFlexGrid2.row = n

MSFlexGrid2.col = 2

MSFlexGrid2.Text = Adodc4.Recordset.Fields(3)

MSFlexGrid2.row = n

MSFlexGrid2.col = 3

MSFlexGrid2.Text = Adodc4.Recordset.Fields(4)

Adodc4.Recordset.MoveNext

Wend

End Sub

Private Sub Initialize()

Db = App.Path & "\" & "ouvd.mdb"

connectiontxt = "Provider=Microsoft.Jet.OLEDB.4.0;Persist

128

Page 142: Chung-Hua University Repository:主頁

Security Info=False;Data Source=" & App.Path & "\" & "ouvd.mdb"

con.Open connectiontxt

cmd.ActiveConnection = con

'初始化選單資訊

End Sub

Private Sub Command8_Click()

MSFlexGrid3.Clear

dlgcommon2.Filter = "TXT (*.txt;*,csv) |*.txt;*.csv"

dlgcommon2.InitDir = "\"

dlgcommon2.DialogTitle = "選取所要匯入的檔案"

dlgcommon2.ShowOpen

showTxt = dlgcommon2.FileName

txt = dlgcommon2.FileName

If Len(txt) <= 0 Or IsNull(txt) Then Exit Sub

Dim inputFile As Integer

129

Page 143: Chung-Hua University Repository:主頁

inputFile = FreeFile

Open txt For Input As #inputFile

Do While Not EOF(inputFile)

Line Input #inputFile, aline

temp = Split(aline, ",")

Me.MSFlexGrid3.rows = Me.MSFlexGrid3.rows + 1

Me.MSFlexGrid3.TextMatrix(Me.MSFlexGrid3.rows - 1, 0)

= IIf(temp(0) = "", 0, temp(0))

Me.MSFlexGrid3.TextMatrix(Me.MSFlexGrid3.rows - 1, 1)

= IIf(temp(1) = "", 0, temp(1))

Me.MSFlexGrid3.TextMatrix(Me.MSFlexGrid3.rows - 1, 2)

= IIf(temp(2) = "", 0, temp(2))

Me.MSFlexGrid3.TextMatrix(Me.MSFlexGrid3.rows - 1, 3)

= IIf(temp(3) = "", 0, temp(3))

Me.MSFlexGrid3.TextMatrix(Me.MSFlexGrid3.rows - 1, 4)

= IIf(temp(4) = "", 0, temp(4))

Me.MSFlexGrid3.TextMatrix(Me.MSFlexGrid3.rows - 1, 5)

= IIf(temp(5) = "", 0, temp(5))

Loop

Close #inputFile

130

Page 144: Chung-Hua University Repository:主頁

End Sub

Private Sub Form_Load()

Dim i As Integer

For i = 0 To 2

MSFlexGrid2.ColWidth(i) = 1000

Next

MSFlexGrid2.TextArray(0) = "點號"

MSFlexGrid2.TextArray(1) = "縱座標N"

MSFlexGrid2.TextArray(2) = "橫座標 E"

MSFlexGrid2.TextArray(3) = "高程 Z"

MSFlexGrid1.TextArray(0) = "控制樁點號"

MSFlexGrid1.TextArray(1) = "水平角 度"

MSFlexGrid1.TextArray(2) = "水平角 分"

MSFlexGrid1.TextArray(3) = "水平角 秒"

MSFlexGrid1.TextArray(4) = "垂直角 度"

MSFlexGrid1.TextArray(5) = "垂直角 分"

131

Page 145: Chung-Hua University Repository:主頁

MSFlexGrid1.TextArray(6) = "垂直角 秒"

MSFlexGrid1.TextArray(7) = "斜距 mm"

MSFlexGrid1.TextArray(8) = "高度"

MSFlexGrid3.TextArray(0) = "里程"

MSFlexGrid3.TextArray(1) = "中心 N"

MSFlexGrid3.TextArray(2) = "中心 E"

MSFlexGrid3.TextArray(3) = "高程"

MSFlexGrid3.TextArray(4) = "法線N"

MSFlexGrid3.TextArray(5) = "法線 E"

Initialize

Text43 = ""

Text44 = ""

Text45 = ""

Text47 = ""

Text48 = ""

Text49 = ""

End Sub

Private Sub Label12_Click()

132

Page 146: Chung-Hua University Repository:主頁

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As

Integer)

con.Close

End Sub

Private Sub MSFlexGrid1_Click()

MsgBox "(" & MSFlexGrid1.col & "," & MSFlexGrid1.row &

")=" & MSFlexGrid1.Text

End Sub

Private Sub MSFlexGrid2_Click()

MsgBox "(" & MSFlexGrid2.col & "," & MSFlexGrid2.row &

")=" & MSFlexGrid2.Text

End Sub

Private Sub MSFlexGrid3_Click()

MsgBox "(" & MSFlexGrid3.col & "," & MSFlexGrid3.row &

")=" & MSFlexGrid3.Text

End Sub

Private Sub MSFlexGrid4_Click()

MsgBox "(" & MSFlexGrid4.col & "," & MSFlexGrid4.row &

")=" & MSFlexGrid4.Text

End Sub

Private Sub fg3_Click()

MsgBox "(" & fg3.col & "," & fg3.row & ")=" & fg3.Text

133

Page 147: Chung-Hua University Repository:主頁

End Sub

Private Sub fg4_Click()

MsgBox "(" & fg4.col & "," & fg4.row & ")=" & fg4.Text

End Sub

Private Sub fg5_Click()

MsgBox "(" & fg5.col & "," & fg5.row & ")=" & fg5.Text

End Sub

Private Sub Command11_Click()

c1

c2

c3

End Sub

Private Sub Command2_Click()

centerdata_cal

End Sub

Private Sub Command9_Click()

c5

End Sub

Private Sub Command13_Click()

c4 '中心座標資料

End Sub

Private Sub Command17_Click()

134

Page 148: Chung-Hua University Repository:主頁

c7

End Sub

Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X

As Single, Y As Single)

Label1.ForeColor = vbRed

End Sub

Private Sub Label2_MouseDown(Button As Integer, Shift As Integer, X

As Single, Y As Single)

Label2.ForeColor = vbRed

End Sub

Private Sub Label3_MouseDown(Button As Integer, Shift As Integer, X

As Single, Y As Single)

Label3.ForeColor = vbRed

End Sub

Private Sub Label4_MouseDown(Button As Integer, Shift As Integer, X

As Single, Y As Single)

Label4.ForeColor = vbRed

End Sub

Private Sub Label11_Click()

End

End Sub

Private Sub Label1_Click()

135

Page 149: Chung-Hua University Repository:主頁

Static MyByt As Byte

MyByt = MyByt + 1

Picture2.Picture = ImageList1.ListImages(MyByt).Picture

If MyByt = 3 Then MyByt = 0

'因為圖只有 5張,所以 Index值也只到 5,所以要做歸零。

'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^以

更換圖片形式進行程式說明,以下方式亦同。

Label5 = " 點擊新增檔案新增資料,或直接執行隧道收方資料處

理系統,如需技術性指導可點選說明選項裡的技術支援進行學習.

開啟新檔後,首先輸入基本資料,接著按下ㄧ步繼續動作."

End Sub

Private Sub Label2_Click()

Static MyByt As Byte

MyByt = MyByt + 1

Picture2.Picture = ImageList2.ListImages(MyByt).Picture

If MyByt = 2 Then MyByt = 0

Label5 = " 將隧道斷面收方資料整理,匯入至原始隧道收方資料

處理系統中進行處理"

End Sub

Private Sub Label3_Click()

Static MyByt As Byte

MyByt = MyByt + 1

Picture2.Picture = ImageList3.ListImages(MyByt).Picture

136

Page 150: Chung-Hua University Repository:主頁

If MyByt = 4 Then MyByt = 0

Label5 = " 進行收方資料時請先輸入控制樁資料.

於收方資料處理部份,點擊原始收方資料匯入鈕後匯入資料

接著確認中線資料,於隧道中線資料部份,點擊匯入隧道中線資料,或

手動鍵入"

End Sub

Private Sub Label4_Click()

Static MyByt As Byte

MyByt = MyByt + 1

Picture2.Picture = ImageList4.ListImages(MyByt).Picture

If MyByt = 7 Then MyByt = 0

Label5 = " 各隧道斷面形式之收收方情形 1 至 6種"

End Sub

Private Sub Label7_Click()

End

End Sub

Private Sub Label8_MouseMove(Button As Integer, Shift As Integer, X

As Single, Y As Single)

Label8.ForeColor = vbYellow

End Sub

137

Page 151: Chung-Hua University Repository:主頁

Option Explicit

Private Declare Function GetWindowsDirectory Lib "kernel32" Alias

"GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As

Long) As Long

Private Declare Function GetTempPath Lib "kernel32" Alias

"GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As

String) As Long

Private Declare Function GetSystemDirectory Lib "kernel32" Alias

"GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As

Long) As Long

Private Declare Function GetComputerName Lib "kernel32" Alias

"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long)

As Long

Private Declare Function GetUserName Lib "advapi32.dll" Alias

"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As

Long

Private Declare Function SetComputerName Lib "kernel32" Alias

"SetComputerNameA" (ByVal lpComputerName As String) As Long

Private Declare Function GetVersionEx Lib "kernel32" Alias

"GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As

Long

Private Type OSVERSIONINFO

dwOSVersionInfoSize As Long

138

Page 152: Chung-Hua University Repository:主頁

dwMajorVersion As Long

dwMinorVersion As Long

dwBuildNumber As Long

dwPlatformId As Long

szCSDVersion As String * 128 ' Maintenance string for PSS

usage

End Type

Private Sub Command2_Click()

Unload Me

End Sub

Private Sub Form_Load()

Dim StrTemp As String * 255

Dim WordLength As Long

Dim WinV As OSVERSIONINFO

WordLength = GetComputerName(StrTemp, 255)

TxtComName = StrTemp

WordLength = GetUserName(StrTemp, 255)

Label2.Caption = Label2.Caption & StrTemp

139

Page 153: Chung-Hua University Repository:主頁

WinV.dwOSVersionInfoSize = Len(WinV)

GetVersionEx WinV

Label7.Caption = Label7.Caption & WinV.dwMajorVersion & "." &

WinV.dwMinorVersion & "." & (WinV.dwBuildNumber And &HFFF)

Select Case WinV.dwPlatformId

Case 0

Label5.Caption = Label5.Caption & "Windows 3.1"

Case 2

Label5.Caption = Label5.Caption & "Windows NT"

Case 1

Select Case WinV.dwMinorVersion

Case 0

Label5.Caption = Label5.Caption & "Windows

95"

Case Else

Label5.Caption = Label5.Caption & "Windows

98/Windows 98 SE/Windows ME"

End Select

Case Else

Label5.Caption = Label5.Caption & "無法識別作業系統"

End Select

End Sub

140

Page 154: Chung-Hua University Repository:主頁

Private Sub Label2_Click()

End Sub

Private Sub Command1_Click()

Form8.Show

End Sub

Private Sub OKButton_Click()

Unload Me

End Sub

Private Sub Command1_Click()

Text8.Text = ""

End Sub

Private Sub Command11_Click()

Text8 = "1" & vbCrLf

End Sub

Private Sub Command12_Click()

Text8 = "2" + vbCrLf

End Sub

141

Page 155: Chung-Hua University Repository:主頁

Private Sub Command2_Click()

Unload Me

End Sub

Private Sub Command21_Click()

WebBrowser1.Navigate "about:<html><body><div

id=""rtvl""></div><script language=""vbscript"">rtvl.innerText =

Eval(""" & Text8.Text & """)</script></body></html>"

'把計算內容轉成 HTML 與 VBScript,然後丟給WebBrowser

End Sub

Private Sub Command3_Click()

Static MyFun As Integer

Select Case MyFun

Case 0

Command3.Caption = "怎麼玩?? "

MyFun = 1

Case 1

Command3.Caption = " 用心去玩 !! "

MyFun = 2

Case 2

Command3.Caption = "鍵盤輸入運算式 對 就跟 Excel 一樣!!"

MyFun = 0

End Select

142

Page 156: Chung-Hua University Repository:主頁

End Sub

Private Sub Command30_Click()

Text8.Text = ""

End Sub

Private Sub Command31_Click()

WebBrowser1.Navigate "about:<html><body><div

id=""rtvl""></div><script language=""vbscript"">rtvl.innerText =

Eval(""" & Text8.Text & """)</script></body></html>"

'把計算內容轉成 HTML 與 VBScript,然後丟給WebBrowser

143