網頁

2009年12月23日 星期三

Civil 3D 中讓設計縱斷面隨定線反轉而反轉的解決方案

這是一個筆者自己想出來的半吊子解決方案,不是"one click solution"。算是一種動腦筋的頭腦體操吧,還頗有趣的。若各位有這方面的困擾的話,這標題一看就明白。

緣起是於 2009.12.15日在Civil 3D 的研討會上與Andy Chen 及昌漢科技的志昌兄請益過這個問題:如右圖所示,為一個定線及現況縱斷面、設計縱斷面。若使用"定線反轉方向"互換樁號起終點位置的話,現況縱斷面當然會隨之改變,但此時設計縱斷面卻未能隨之"翻轉",該如何是好?志昌兄允諾會試著寫個小 plugins 去處理看看,那應該是較符合一般使用者的解決方案。

不過在好奇之餘,將該定線及縱斷面以xml滙出後,研究一下其中的內容,意外地發現可以用半吊子的方式去解決問題:用試算表工具,筆者使用 OpenOffice.org 的 Calc。

整個程序如下:
1. 以 Notepad 開啟由Civil 3D 滙出含該定線及設計縱斷面的XML檔。找到關於設計縱斷描述的那幾行內容,如下圖所示。藍框區內即為該設計縱斷面的描述資料內容,其中紅色的文字即為PVI 的樁號植,必須將其轉換為定線反轉後的樁號值。

2. 僅需將該縱斷面描述內容中有含樁號資訊的那幾行(此例中僅有四行)複製,並貼附至試算表中,如下圖的B3~B6欄位內容。
3. 接著利用 Find、Mid、Value、Substitute函數將各樁號取出、計算定線反向後的樁號值後作取代。最重要的是別忘了要作一次排序,將逐行依樁號漸增的方式排列,如下圖所示。

4. 將轉換好的內容,貼附回該xml 檔內容,可以直接取代原本那縱斷面描述內容。若要保留原縱斷面內容作後續可能又定線反轉回來時用的話,則可以仿照筆者新增一個設計縱斷面描述內容,如下圖所示的結構。完成後,將修正好的xml檔存檔。

5. 最後在 Civil 3D 中滙入前述修正過的xml檔,在探勘器的定線內容之下是否如下圖般新增了一個"中心線 - (1)設計縱坡 (2)"的反轉縱斷面。一旦定線方向反轉後,即可快速的在縱斷視圖中將原設計縱斷面隱藏不顯示,而將反轉後的設計縱斷面勾選顯示,達成如下圖的目的。

希望各位朋友明白我到底在玩什麼半吊子把戲。沒看懂的話,得等志昌兄完成那個小程式了!

沒有留言: