網頁

2010年9月9日 星期四

Civil 3D 土方計算程式的討論 - 大家來找碴!(2/2)

(接續前篇 Civil 3D 土方計算程式的討論 - 大家來找碴!(1/2) 的內容)

若朋友們有自行以網格邊長20m、15m、10m 三種情境去測試三種不同該 dvb 外掛程式所提供的計算方法,是否有順利重建"失事現場"?

筆者雖然在前篇中所貼附的截圖均是在 Civil 3D 2008 環境之下的情形,但該"麻煩"狀況可是有"遺傳"至 Civil 3D 2009/2010 版的該 dvb 外掛程式 (EarthworkConstructDrawing.dvb )。如以15m網格、三角稜柱法、"bird" border 向內偏移距離 5 為範圍作土方計算,在 C3D 2008 環境下的結果如右圖所示,而在 C3D 2009、2010 環境下的使用計算結果則分別如下圖左 (2009版) 及下圖右 (2010版)所示。








而 C3D 2008版之下所發生的溢位錯誤(如右圖),也順利地在 C3D 2009 /2010 版環境下發生。以15m網格、三角稜柱法、"bird" border 為範圍作土方計算,則C3D 2009 狀況如下圖左,C3D 2010 狀況如下圖右。










這些麻煩狀況特別容易在該 dvb 土方計算程式的手工算法選項(三角稜柱法 or 四角稜柱法)之下發生,至於精確算法選項則問題不大。例如以三角稜柱法、"bird" border 向內偏移距離 5 為範圍作土方計算,網格邊長分別採 20m、15m、10m 的計算結果分別如右圖 (20m)、下圖左(15m)、下圖右(10m)。其未計算網格均僅發生在右側的幾個邊際網格。









-----------------------------------------------------------------------------
接著請朋友們將 FG 地形物件昇高 1m,再依次重複以上的各種計算測試。結果如何?是不是很奇妙呀! (怎麼個奇妙法,就請朋友們自行經歷了。)
-----------------------------------------------------------------------------

其實要遇上這樣的麻煩狀況,原則上都算是挺幸運的。只是"狀況總是發生在最不希望它發生狀況的時候",而有時候事後想要重建情境卻不見得能順利辦到。結果可能造成"程式開發人員認為是使用者操作問題,所開發程式本身沒問題(犯了"自己生的孩子不會有問題"的專業傲慢錯誤),而使用者則誤認為該程式因原開發者根本無心解決而最終將之打入無用程式之池(未能有效提出問題)。

筆者在執行工作案時所遇上的狀況,是於花時間辛苦地依測量資料及設計資料建塑"品質不壞"的 EG 及 FG 地形物件後,要利用該 dvb 程式作網格計算及圖面繪製時,於手工算法模式下遇上圖面有"未計算網格"的情況。當下也著實嚇了一大跳。後續因工作案的計畫範圍調整且設計地形亦有不同方案,以及 Civil 3D 檔案壞了(可開啟,但無法往下作操作,一操作則程式關閉。C3D 2008 下見怪不怪!),陸續重建許多不同方案版本的 EG 及 FG 地形物件。但那些圖面有"未計算網格"的情況,可是一路"形影相隨"地陪著我,不管上午、下午、夜晚、或是子夜之後至清晨6點都看得到它們,真是 7-11、11-7 般的"好伙伴"!

這篇文章原本只是要貼附一些發生"未計算網格"的麻煩報告而已,但以 bird 地形資料作不同測試時卻意外地遇上該"四角稜柱法"的溢位錯誤狀況。若朋友亦夠好奇,在溢位錯誤回報視窗中點按偵錯 (不懂 VBA也無仿,筆者目前也不懂但還是點按"偵錯"),則會進入 MS Virtul Basic 的編輯視窗,程式行則落於四角稜柱法函數 FourPrismNearArithmetic 的 Case 3狀況之中。再檢視其中的程式行內容,還原其數學式原型之後,反而引起深入探究的好奇心!自行推導於不同假設條件之下的三角稜柱公式及四角稜柱公式之後,發現這個 dvb 程式有很大的改善空間。其中的數學推導,有機會再另文分享。到訪的朋友,有興趣的話也可以自行依不同假設條件推導看看,即會發現其中的部分問題。

至此,朋友可否明白本篇的標題為何要"大家來找碴"?在這個Civil 3D 土方計算 dvb 外掛程式,您是否有發現筆者未發現的其它麻煩狀況?若有,請好心、耐心地詳細描述問題,這樣子程式好手才能目標清楚地處理問題。

沒有留言: