網路城邦
上一篇 回創作列表 下一篇   字體:
從外部檔案讀入數據資料繪製點、曲線、曲面
2012/06/18 21:49:25瀏覽1237|回應0|推薦1

談到 3D 的幾何造型,其中若是牽涉到不規則的曲面,往往令人感到不知從何下手。 所謂「不規則的曲面」,其實指的是必須以參數方程式表示的曲面,一般統稱為參數曲面 Parametric Surface,而目前的 CAD/CAM 系統幾乎皆採 NURBSNon-Uniform Rational Basis Spline)函數作為曲面的塑形核心。

再從另一個角度來說,不規則曲面也可以指的是不能以解析方程式來表示的曲面,例如平面、柱面、錐面、環面、球面等,即所謂的解析曲面 Analytic Surface。 若從幾何塑形的操作實務來看,一個必須以參數曲面方能正確表達的 3D 幾何造型,在設計思考的過程中和 CAD 建構塑形時所採用的指令與方法,必然會有別於一般較為規則方正的幾何物件。

任何一位具有相當經驗的設計人員一定會告訴你,想要正確地建構出含有參數曲面造型的 3D 模型,其關鍵在於是否能夠「在正確的位置定義出正確的曲線」。 這也就是為什麼我們可以在 KeyCreator 當中,找到非常多用於繪製不規則參數曲線的指令的原因。 至 KeyCreator V10 版為止,在 建構>任意曲線建構>高階曲線 功能下共計有 26 個與參數曲線相關的指令,日後將為大家擇要介紹。

今天就先來為大家說明 建構>任意曲線>讀入點資料產生 NURBS 曲線 指令,該功能可自外部的 ASCII 文字檔案中依序讀入點座標資料,並可自動將其繪製成 NURBS 參數曲線。 該檔案可能源自逆向工程量測或其他工具程式,而其中的點座標資料則允許有多種排列格式,接下來將以幾個範例來為各位說明如何使用這個功能。

範例 1:本範例的點座標資料檔案如下,不過為了便於解說內容及限於版面空間,本文中各範例皆僅節錄出其中一小部分的資料,而在原始檔案之中的點座標數量通常是遠多於此的。

首先我們看到該檔案中的資料分成四個段落,段落之間則以一空行分隔,各段落內各有五個點,而每個點的資料則又各自單獨列成一行,同時每個段落中紀錄點座標資料的書寫格式也各不相同。

仍然要再次提醒各位,此處的段落數量和段落內之點數亦僅為局部示意而已,而在原始檔案中的段落數量和點座標數量通常也不止於此數。

段落 1 的格式為每一行都有以 N 開頭之序列行號,後面為 X Y Z 座標數值,最後跟著三個整數。段落 2 的格式為座標數值之前皆標示有 X Y Z 字元。 段落 3 的格式為每一行開頭都有字元 Point,且 X Y Z 座標數值之間僅以空格區分而無逗號分隔。 段落 4 的格式則是非常簡單地直接列出 X Y Z 座標數值。 但通常上述的資料格式並不會同時出現在一個檔案中,不過無論如何當 KeyCreator 在讀入混合有以上格式的資料時,若無特別的指定則會忽略其中所有的字元及符號,而只處理數值資料,所以 N、X、Y、Z、Point 及逗號都將被略過不計。

當您選用了 讀入點資料產生 NURBS 曲線 指令後,系統將出現如下左圖的操作對話框,請在 輸入檔案名稱 後面的欄位內輸入點座標資料檔案的路徑及名稱,或按下右側的【瀏覽…】鍵來選擇欲開啟的檔案。 該對話框中另外還有十餘個選項可供勾選,而其中大部分的選項皆與點座標資料的格式有關,接下來會在各範例中逐一說明。 當檔案及選項皆已設定好之後,只要按下確定…】鍵即可開始將點座標資料讀入。 本範例中我們所勾選的選項如下左圖所示,依據這些選項來讀入上述的原始檔案,將繪製出如下右圖的點圖素及 NURBS 參數曲線。

其中相關選項之說明如下:

Ÿ   將所有讀入的點資料以點圖素顯示:系統會將讀入的 X Y Z 座標數值直接繪製成點圖素。

Ÿ   將所有讀入的點資料以多重線顯示:系統會將讀入的 X Y Z 座標數值視為多重線的頂點,並繪製出該多重線。

Ÿ 將所有讀入的點資料以參數曲線顯示:系統會將讀入的 X Y Z 座標數值視為參數曲線的節點,並繪製出該曲線

Ÿ   讀入之數據若為整數時則將其忽略:若讀入的數值資料為整數時系統會將其略過不計,所以本範例資料檔案段落 1 中的 001、002、003…等行號及 4, 0, 1 等整數數值將會被略過。

Ÿ   讀入資料時若遇到空行則將點分群:若在讀入的資料中遇到空行,系統於繪製多重線或參數曲線時將會自動分段,故在本範例中每一段落的資料會被繪製成一段獨立的多重線或參數曲線。

Ÿ   讀入的每行資料僅可以表示一個點:表示被讀入檔案的排列格式為每個點的座標資料各自獨立地列成一行。

 

範例 2:本範例讀入的點座標資料檔案與範例 1 完全相同,不過我們所勾選的選項則如下左圖所示,和範例 1 的差異在於我們多勾選並設定了一個選項,使得系統每讀入一個段落的資料便略過下一個段落的資料,並重複此模式至讀完所有資料為止。 最後將繪製出如下右圖的點圖素及 NURBS 參數曲線,和範例 1 的結果比較起來,就像是刪除了每隔一列的點圖素及參數曲線。

相關選項之說明如下:

Ÿ   刪除整列的點或列上的某些連續點:勾選本選項時會出現如下圖之對話框,可讓我們設定欲刪除(略過)的資料數量,刪除列上的點 一欄可指定每讀入一點就刪除相鄰緊接的點數目,而 刪除整列的點 一欄則可指定每讀入一條曲線就刪除相鄰緊接的曲線數目。 本範例中我們分別設定為 0 和 1,故系統會讀入每一個點,但每繪製出一條曲線就刪除相鄰緊接的下一條曲線,並反複至讀完所有資料為止。 假設分別設定的是 1 和 2,系統則會每讀入一個點就刪除相鄰緊接的下一點,且每繪製出一條曲線就刪除相鄰緊接的下兩條曲線。
請注意! 不論如何設定,資料中的第一和最後一條曲線,以及曲線上的第一和最後一點是固定會被讀入的

 

Ÿ   每一截斷面所欲讀入的點資料數目:勾選本選項時會出現如下圖之對話框,可讓我們設定系統每讀入多少點就自動分段建構成一條曲線,通常可應用於原始資料中未以空行分段且每段的點數皆相同時。

 

範例 3:本範例的點座標資料檔案如下,其特點為每個段落前都有一標題行(以紅框標明部分),且各段落內的點座標資料並未依各點單獨分行,而是從頭到尾成串連續的。

此處我們所勾選的選項如下左圖所示,其中有一個選項可以令系統在讀到含有 Curve 文字的標題行時,會將該整行視為空行來處理。 同時這次也僅要求系統繪製出如下右圖的 NURBS 參數曲線而不顯示點圖素。

該選項之說明如下:

Ÿ   每行資料中若含有字母則視為空行如果在讀入的資料中含有字母,系統會將該行資料視為空行。

 

範例 4:本範例的點座標資料檔案如下,其特點為整組資料中完全沒有任何標示及區分段落,同時各點座標資料也未單獨分行,同樣是從頭到尾成串連續。 但仔細觀察其中的 Z 座標數值(以紅框標明部分),可以發現成有規則的增量狀態(-124、-118、-112、-108),我們則可運用此一特性令 KeyCreator 於讀入資料時將其自動分段。

此處所勾選的選項如下左圖所示,其中額外勾選並設定了一個選項,其內容說明如下:

Ÿ   相鄰兩點間的 X、Y、Z 增量,若超過設定值則將點分群:勾選本選項時會出現如下右圖之對話框,可讓我們設定系統於讀入點座標資料時,如果指定軸向上的增量數值超過我們所設定的條件,就會自動於該處將資料分段。 這裡我們設定當 Z 軸向上的增量數值超過 1 時(前後兩點 Z 座標數值的差異大於 1),就會分段建成下一條參數曲線。

此外還有一個選項可令系統略過資料中的 Z 座標數值,其意義說明如下:

Ÿ   將所讀入之點資料的 Z 值予以忽略:本選項會令系統將讀入的 Z 座標數值全部以 0 取代,故執行的結果將如下圖所示,所有的圖形都將繪製在 World 座標系統的 XY 平面上,看起來就像是被壓縮了一般。

最後再作一個補充說明,如果外部檔案中的點座標資料是來自於某曲面,而我們又希望能重建該曲面的話,此時可用 建構>基礎曲面>截面線曲面 指令,進一步將已讀入的 NURBS 參數曲線建構成如下圖之曲面模型。

( 知識學習科學百科 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=cadkey&aid=6485610