專利名稱:基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割及切片方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種三維空間結(jié)構(gòu)圖形切割及切片方法,特別是涉及ー種基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割及切片方法。(ニ)背景技術(shù):
目前,三維空間結(jié)構(gòu)的數(shù)值模擬主要采用連續(xù)介質(zhì)計(jì)算方法(FEM)或非連續(xù)介質(zhì)的數(shù)值計(jì)算方法(如DDA、EDM、NMM),由于計(jì)算方法解題過(guò)程精度控制的不同,對(duì)網(wǎng)格的要求也有所不同。傳統(tǒng)的數(shù)值模擬網(wǎng)格構(gòu)建一般采用直接建模方式,按照控
制點(diǎn)--控制線--控制區(qū)域--單兀網(wǎng)格的過(guò)程來(lái)構(gòu)建。但是,這種建模方式需要較聞
水平的人員,按照從單元到局部再到整體的方式,在網(wǎng)格剖分前需進(jìn)行頻繁的交互,尋求封閉區(qū)域和獨(dú)立封閉空間等等。傳統(tǒng)的從單元到局部再到整體的網(wǎng)格構(gòu)建方式,使整個(gè)過(guò)程實(shí)現(xiàn)復(fù)雜化,同時(shí)容易生成畸形網(wǎng)格,存在整體建模效率不高、自動(dòng)化程度低等問(wèn)題?,F(xiàn)實(shí)世界的物體常常是三維的,即立體的,如工程設(shè)計(jì)中產(chǎn)品幾何模型、實(shí)際景物的幾何外觀等等,用立體的圖形去描述它們當(dāng)然是最合適的了,三維建模技術(shù)的發(fā)展已經(jīng)能夠創(chuàng)建出滿足要求的模型。但有時(shí)我們?cè)诿枋龊陀^察圖形時(shí)卻常常只能在ニ維介質(zhì)中(即平面物體上)來(lái)進(jìn)行,比如工程圖紙的剖面圖等等。有時(shí),我們也需要先將三維零件的一層層的ニ維截面輪廓信息獲得,然后采用特定的エ藝方法將原材料制成多個(gè)與截面形狀相同的薄片,再逐層累加,直至生成三維零件的實(shí)體模型。在以上兩種情況下,都需要進(jìn)行三維模型的切片處理,即情況I :在工程詳圖生成技術(shù)中進(jìn)行切片處理,情況2 :在快速成型技術(shù)中進(jìn)行切片處理。情況I中的切片處理主要是基于三維實(shí)體模型的投影變換處理或基于模板的處理,該方法對(duì)于處理剖切面問(wèn)題以及自動(dòng)標(biāo)注問(wèn)題很難解決。情況2中的切片處理主要由兩類方法ー類是基于STL數(shù)據(jù)模型的切片,STL數(shù)據(jù)格式因其格式簡(jiǎn)單,實(shí)現(xiàn)方便,已成為快速成型領(lǐng)域的エ業(yè)標(biāo)準(zhǔn)。但它還存在許多缺點(diǎn),如數(shù)據(jù)高度冗余、文件尺寸大、模型誤差大等。另ー類是基于CAD精確模型的直接切片,處理對(duì)象是來(lái)自CAD系統(tǒng)的三維精確模型,它不僅避免了 STL文件的種種缺點(diǎn),而且可提高表面精度和質(zhì)量,但是,此類方法正處在研究設(shè)想之中,還沒(méi)有形成成熟的技木。因此,針對(duì)目前三維空間切片的應(yīng)用,無(wú)疑需要ー種更為簡(jiǎn)單、有效的三維空間結(jié)構(gòu)的切片方法,以滿足三維空間結(jié)構(gòu)對(duì)于切片的應(yīng)用需求。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是克服現(xiàn)有技術(shù)的缺陷,提供基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割及切片方法;其中的圖形切割方法是ー種三維空間結(jié)構(gòu)網(wǎng)格生成的方法,該方法可解決現(xiàn)有三維空間網(wǎng)格構(gòu)建方法實(shí)現(xiàn)過(guò)程復(fù)雜化、整體效率不高、自動(dòng)化程度低的問(wèn)題;其中的圖形切片方法簡(jiǎn)單有效、精度高。本發(fā)明的技術(shù)方案
為了實(shí)現(xiàn)本發(fā)明目的,完成三維空間結(jié)構(gòu)圖形的切割和切片,首先要了解三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法,該方法具體為(參見(jiàn)圖I 圖11):在計(jì)算機(jī)虛擬空間里,用圖形這ー載體介質(zhì)模擬自然界的物理實(shí)體的真實(shí)自然狀態(tài),根據(jù)計(jì)算機(jī)圖形學(xué)方法,用圖形表達(dá)自然界的物理實(shí)體的外觀,該圖形具有可視的外形、相應(yīng)的角點(diǎn)、邊、面和體的構(gòu)造和拓?fù)潢P(guān)系,用數(shù)字化、參數(shù)化方式對(duì)圖形進(jìn)行語(yǔ)言描述,形成數(shù)字化圖形,自然界的物理實(shí)體的幾何屬性和物理屬性也一并存入數(shù)字化圖形的圖形元素之間,將數(shù)字化圖形作為ー種具有幾何屬性和物理屬性的載體,數(shù)據(jù)附著于數(shù)字化圖形,而數(shù)字化圖形中又隱含有數(shù)據(jù),同時(shí)以自然界的物理方程來(lái)控制數(shù)字化圖形的動(dòng)作和相應(yīng)的變化,各數(shù)字化圖形之間的相互作用基于物理定律,反映真實(shí)自然界的運(yùn)動(dòng)規(guī)律和結(jié)果,數(shù)字化圖形具備完善的定義、構(gòu)造和表達(dá)方式、數(shù)據(jù)存儲(chǔ)方法,因而是行之有效的模擬真實(shí)自然狀態(tài)的全新方法手段。
利用計(jì)算機(jī)圖形學(xué)方法產(chǎn)生數(shù)字圖形介質(zhì)模型文件,將數(shù)字圖形介質(zhì)模型文件均存儲(chǔ)成統(tǒng)ー的Model-XML數(shù)據(jù)格式;
采用復(fù)雜結(jié)構(gòu)圖形的截面關(guān)鍵點(diǎn)模型、關(guān)鍵點(diǎn)連線的骨骼網(wǎng)架模型建模方法,這樣易于獲得實(shí)體輪廓,克服了由于實(shí)體模型數(shù)據(jù)過(guò)于臃腫帶來(lái)的數(shù)據(jù)存儲(chǔ)問(wèn)題,還可方便地判斷多段線與指定的空間平面的交點(diǎn),為判斷實(shí)體的幾何位置提供了方便,將復(fù)雜圖形結(jié)構(gòu)的拓?fù)溆?jì)算簡(jiǎn)單化;
通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)傳遞數(shù)字圖形介質(zhì)模型文件,數(shù)字圖形介質(zhì)模型文件含有圖形數(shù)據(jù)信息和基于OOP技術(shù)的圖形數(shù)據(jù)模板庫(kù);
利用復(fù)雜結(jié)構(gòu)圖形的截面關(guān)鍵點(diǎn)模型、關(guān)鍵點(diǎn)連線的骨骼網(wǎng)架模型和模型的存儲(chǔ)方法將圖形結(jié)構(gòu)簡(jiǎn)單化,用直線包絡(luò)線控制圖形結(jié)構(gòu)的形狀與延伸的位置,將復(fù)雜的拓?fù)溆?jì)算變?yōu)橹本€與平面的交點(diǎn)計(jì)算;加快了計(jì)算速度,提高了精度,加大了圖形處理能力,可保證獲得數(shù)字圖形所有屬性和信息,為圖形數(shù)據(jù)之間的無(wú)縫集成提供了強(qiáng)有力的保障,提供了復(fù)雜物體空間剖面的簡(jiǎn)捷可靠的圖形數(shù)字方法。Model-XML數(shù)據(jù)格式的骨骼網(wǎng)架模型的具體規(guī)則為
命名名稱_實(shí)體句柄_控制點(diǎn)個(gè)數(shù)_控制點(diǎn)連接形式
_{_Pntl_Pnt2_......._Pntl’ _Pnt2’ _........j_{_ 放樣形式 _ 路徑控制點(diǎn)個(gè)數(shù) _
UCS原點(diǎn)_UCSX軸矢量_UCSY軸矢量_PPntl_PPnt2_......j_剖面類型_剖面名稱_參
數(shù)1_參數(shù)I值_......_參數(shù)n_參數(shù)η值j
例如表I所示
表I
#1_(類型
命名名稱代表的實(shí)體名稱,字符串
實(shí)體句柄代表實(shí)體在CAD空間的唯一標(biāo)識(shí),由CAD空間產(chǎn)生字符串
控制點(diǎn)個(gè)數(shù)代表剖面控制點(diǎn)個(gè)數(shù)正數(shù).
控制點(diǎn)連接形式代表剖面控制點(diǎn)之間的連接關(guān)系字符串.
Pntl…代表剖面控制點(diǎn)的世界坐標(biāo)字符串
放樣形式代表實(shí)體放樣方式字符串.
路徑控制點(diǎn)個(gè)數(shù)代表實(shí)體放樣路徑控制點(diǎn)數(shù)正數(shù).
UCS原點(diǎn)_代表實(shí)體局部坐標(biāo)系原點(diǎn)坐標(biāo)字符串
UCSX軸矢量 :代表實(shí)體局部坐標(biāo)糸X軸方向矢量字符串
UCSY軸矢量代表實(shí)體局部坐標(biāo)糸Y軸方向矢量字符串
PPntl…_代表路徑控制點(diǎn)的世界坐標(biāo)字符串
剖面類型代表截面所屬截面分類字符串
剖面名稱代表實(shí)體放樣截面的名稱字符串.
參數(shù)I···..代表剖面控制參數(shù)名稱字符串.
參數(shù)I值….. Γ代表剖面控制參數(shù)值_1字符串采用統(tǒng)一的XML方式對(duì)數(shù)字圖形介質(zhì)模型中的各分模型的定義、屬性、分類、延續(xù)、遺傳和關(guān)聯(lián)這些內(nèi)容進(jìn)行規(guī)定與表述,采用XML方式標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,使同一工程的不同部門(mén)、不同專業(yè)、不同時(shí)段內(nèi)的工程信息具有統(tǒng)ー的表達(dá)方式;
采用 XML方式的數(shù)據(jù)構(gòu)件不受軟件平臺(tái)的限制,適合在計(jì)算機(jī)網(wǎng)絡(luò)上傳輸以及協(xié)同管理。將復(fù)雜工程中的各個(gè)構(gòu)件和部位實(shí)體圖形的可視特征與非圖形屬性融為一體,采用圖形的擴(kuò)展數(shù)據(jù)方法將各專業(yè)所需的屬性和標(biāo)識(shí)符附加于圖形之中,通過(guò)超鏈接或開(kāi)發(fā)的專用程序加以調(diào)用修改,使圖形本身包括了空間坐標(biāo)、時(shí)間坐標(biāo)、非幾何信息的五維空間
信息;
以VB. Net程序?yàn)槔驍?shù)字圖形介質(zhì)對(duì)象添加或修改擴(kuò)展數(shù)據(jù)可以使用SetDGMxdata方法,其定義為
DGMObject. SetDGMxdata DgmXDataType, DgmXData
其中,DgmXDataType是ー個(gè)short類型變量數(shù)組,數(shù)組中的姆ー個(gè)元素說(shuō)明擴(kuò)展數(shù)據(jù)的類型;DgmXData是ー個(gè)Variant類型的數(shù)組,數(shù)組中的每個(gè)元素包含了擴(kuò)展數(shù)據(jù)的內(nèi)容。DgmXDataType和DgmXData的維數(shù)必須一致,DgmXDataType中的元素一一對(duì)應(yīng)地說(shuō)明DgmXData中元素的類型,其具體含義可以參考下面的代碼
Dim DgmXDataType (O To 7) as IntegerDim DgmXData (O To 7) as Variant
DgmXDataType (0)=1001: DgmXData (0) ニ” Test—Application”
DgmXDataType (1)=1000: DgmXData (I)=”This is a test for Exdata”DgmXDataType (2)=1003: DgmXData (2)=”0”
DgmXDataType (3)=1040: DgmXData (3)=1. 2347913748413E+40
DgmXDataType (4)=1041: DgmXData (4)=1237324938
DgmXDataType (5)=1070: DgmXData (5)=32767
DgmXDataType (6)=1071: DgmXData (6)=32767
DgmXDataType (7)=1042: DgmXData (7)=10
-向數(shù)字圖形介質(zhì)對(duì)象實(shí)體中添加擴(kuò)展數(shù)據(jù)
DGMlineObj. SetDGMxdata DgmXDataType, DgmXData
獲得數(shù)字圖形介質(zhì)對(duì)象的擴(kuò)展數(shù)據(jù)可以使用GetDGMXData方法,其定義為
DGMObject.GetDGMXData AppName, DgmXDataType, DgmXDataValue其中,AppName指定添加擴(kuò)展數(shù)據(jù)的應(yīng)用程序名稱(多個(gè)應(yīng)用程序可以向同一個(gè)對(duì)象添加擴(kuò)展數(shù)據(jù)),如果輸入ー個(gè)空字符串表示要獲得所有應(yīng)用程序添加的擴(kuò)展數(shù)據(jù);DgmXDataType返回ー個(gè)short類型的數(shù)組,包含對(duì)象擴(kuò)展數(shù)據(jù)類型信息;DgmXDataValue返回ー個(gè)Variant類型的數(shù)組,包含了對(duì)象的擴(kuò)展數(shù)據(jù)。獲得對(duì)象擴(kuò)展數(shù)據(jù)的基本方法為Dim Dgmxdata As VariantDim DgmxtypeOut As Variant
DGMlineObj. GetDGMXData “”,DgmxtypeOut, DgmxdataOut
采用數(shù)字圖形與數(shù)值計(jì)算相結(jié)合的方法,直接將數(shù)值計(jì)算的結(jié)果應(yīng)用于數(shù)字圖形之中,得到數(shù)字圖形的運(yùn)動(dòng)、變形和碰撞這些復(fù)雜問(wèn)題,數(shù)據(jù)圖形的運(yùn)動(dòng)信息存儲(chǔ)為統(tǒng)ー的Action-XML 格式。圖形數(shù)據(jù)信息包括兩部分內(nèi)容剖面屬性數(shù)據(jù)和路徑數(shù)據(jù),剖面屬性數(shù)據(jù)用來(lái)記錄實(shí)體設(shè)計(jì)的形狀信息和相應(yīng)的物理屬性參數(shù),剖面屬性數(shù)據(jù)含有控制剖面形狀的數(shù)據(jù)信息;路徑數(shù)據(jù)用來(lái)記錄實(shí)體的幾何信息,幾何信息含有起始點(diǎn)、結(jié)束點(diǎn)和局部坐標(biāo)系,或者,幾何信息含有拉伸路徑;通過(guò)規(guī)定各剖面控制點(diǎn)的存儲(chǔ)順序,依次存入各空間位置的控制點(diǎn)坐標(biāo),從而保存三維控制點(diǎn)的網(wǎng)絡(luò)骨架?;贠OP技術(shù)的圖形數(shù)據(jù)模板庫(kù)含有關(guān)鍵點(diǎn)圖形框架和控制參數(shù)體系,基于OOP技術(shù)的圖形數(shù)據(jù)模板庫(kù)為創(chuàng)建數(shù)字圖形介質(zhì)模型的基礎(chǔ)數(shù)據(jù)源。關(guān)鍵點(diǎn)圖形框架包括AISC截面類型、國(guó)標(biāo)型鋼、帶參數(shù)截面、緊固件、水エ結(jié)構(gòu)和橋梁工程這些結(jié)構(gòu)類型的關(guān)鍵點(diǎn)圖形框架,有4萬(wàn)多種。
自然界中對(duì)介質(zhì)的定義為當(dāng)一種物質(zhì)存在于另ー種物質(zhì)內(nèi)部時(shí),后者就是前者的介質(zhì)。數(shù)字圖形介質(zhì)是具有幾何屬性和物理屬性的載體和目標(biāo)實(shí)體,并具有質(zhì)量、速度、壓強(qiáng)、溫度以及空間和時(shí)間等宏觀物理信息。本發(fā)明的三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法以自然界的物理方程來(lái)控制圖形體的動(dòng)作和相應(yīng)的變化,具有獨(dú)特的三維骨骼網(wǎng)架建模方法和XML數(shù)據(jù)存儲(chǔ)方式,采用點(diǎn)、線、面、體、環(huán)等基本元素來(lái)模擬三維空間結(jié)構(gòu),用直線與平面來(lái)代替復(fù)雜的拓?fù)溆?jì)算。與數(shù)字圖形介質(zhì)相似的概念
(I)隨著計(jì)算機(jī)技術(shù)的發(fā)展,工程界已有數(shù)字圖形的提法,但這些研究?jī)H僅表現(xiàn)的是圖形本身的幾何屬性,要么是將圖形作為最終計(jì)算結(jié)果的顯示形式。沒(méi)有將數(shù)字圖形作為ー種載體或介質(zhì),即除了擁有幾何屬性之外,還具有非幾何屬性等信息。更沒(méi)有實(shí)現(xiàn)用自然界中的物理方程來(lái)驅(qū)動(dòng)圖形的動(dòng)作和變化。(2)數(shù)字圖形處理的概念,是指用電子計(jì)算機(jī)對(duì)圖形進(jìn)行分析、分類、編輯、校正、更新以及圖形輸出等的工作。一般用于測(cè)繪學(xué)以及地圖制圖學(xué)中。(3)數(shù)字圖形推理的概念,根據(jù)數(shù)字和圖形的規(guī)律,推理出圖形中空缺位置的圖形或數(shù)字。現(xiàn)多見(jiàn)于公務(wù)員資格考題中。(4)數(shù)字圖形圖像技術(shù)的概念,伴隨著流行文化的滲透與商業(yè)性影視節(jié)目的普及,藝術(shù)家和設(shè)計(jì)師們開(kāi)始對(duì)圖像化的視覺(jué)接受方式和創(chuàng)作方式進(jìn)行探討,數(shù)字圖形圖像技術(shù)的介入使這種思考和創(chuàng)作進(jìn)入了嶄新的時(shí)代。其中多用于包括集科技性、藝術(shù)性、娛樂(lè)性、競(jìng)技性、仿真性等諸多要素于一體的計(jì)算機(jī)網(wǎng)絡(luò)游戲,也包括被稱為“大眾藝木”的電影樣式。本發(fā)明計(jì)算機(jī)圖形學(xué)方法為基礎(chǔ)下產(chǎn)生的所有文件均存儲(chǔ)成統(tǒng)ー的Model-XML數(shù)據(jù)格式,Model-XML數(shù)據(jù)格式具有如下的優(yōu)點(diǎn)
(I)該格式可通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)有效傳遞幾何模型信息的結(jié)構(gòu)。(2)該格式定義表示XML中的三維幾何圖形和圖形的常用詞匯表。這樣建立的格式數(shù)據(jù)內(nèi)容獨(dú)立于表達(dá)形式,可讀性強(qiáng),具有更大的柔性和適應(yīng)性,且便于捜索。 (3)該格式可標(biāo)注ニ進(jìn)制文件,如圖像、聲音等,適應(yīng)工程項(xiàng)目信息系統(tǒng)可視化的需要。(4)該格式提供不同軟件和不同應(yīng)用系統(tǒng)之間的數(shù)據(jù)表示和交換功能。用Model-XML文檔表示的各種工程數(shù)據(jù)可以在計(jì)算機(jī)網(wǎng)絡(luò)上方便地傳遞和共享,實(shí)現(xiàn)建設(shè)項(xiàng)目參與各方信息的無(wú)縫搭接。(5)該格式元素類型由用戶自己定義,可以方便的擴(kuò)展。(6)該格式可以與數(shù)據(jù)庫(kù)良好地集成,可以方便地把由STEP表示的建筑產(chǎn)品數(shù)據(jù)轉(zhuǎn)化為Model-XML文檔,同時(shí),Model-XML到STEP的逆向轉(zhuǎn)換也十分便利。這種不同參與方、組織之間的信息橫向的有序連接,以及后續(xù)工作的參與者與前階段參與者的縱向有序搭接,為實(shí)現(xiàn)項(xiàng)目全壽命期內(nèi)各參與方的信息共享與合作提供了必須的條件。本發(fā)明基于三維圖形建模中截面關(guān)鍵點(diǎn)及骨骼網(wǎng)架創(chuàng)建數(shù)據(jù)圖形模板庫(kù)以及多源數(shù)據(jù)耦合的地質(zhì)數(shù)據(jù)模板庫(kù),可為工程設(shè)計(jì)開(kāi)發(fā)軟件系統(tǒng),以及為虛擬現(xiàn)實(shí)和基于物理的工程動(dòng)畫(huà)提供了強(qiáng)大的技術(shù)支持。為實(shí)現(xiàn)大型復(fù)雜三維空間結(jié)構(gòu)的可視化仿真建模,并為工程界更易接受和推廣,本發(fā)明采用基于OOP編程技術(shù)的圖形數(shù)據(jù)模板庫(kù),吸納各種編程語(yǔ)言的優(yōu)點(diǎn),構(gòu)建符合 CIS/2和IFC在內(nèi)的廣泛通用的參數(shù)化圖形數(shù)據(jù)模板庫(kù),該圖形數(shù)據(jù)模板庫(kù)簡(jiǎn)便易行,可生成ニ維或三維圖形和統(tǒng)計(jì)表格。本發(fā)明在引入和發(fā)展CIS/2和IFC兩個(gè)ISO國(guó)際標(biāo)準(zhǔn)的基礎(chǔ)上,提出了“數(shù)據(jù)附著于圖形,圖形蘊(yùn)含數(shù)據(jù)”的方法及圖形五維空間(X I Z t V)的方法,使數(shù)字圖形成為反映工程結(jié)構(gòu)實(shí)時(shí)動(dòng)態(tài)和關(guān)聯(lián)信息的載體,具有唯一標(biāo)識(shí)的各個(gè)圖形元素也與龐大的工程數(shù)據(jù)庫(kù)雙向動(dòng)態(tài)關(guān)聯(lián),這種新型的數(shù)字圖形信息工程體系提出了數(shù)字圖形介質(zhì)圖形獨(dú)特的數(shù)據(jù)存儲(chǔ)關(guān)聯(lián)技術(shù)和數(shù)據(jù)交換格式,為當(dāng)前日益發(fā)展的三維設(shè)計(jì)平臺(tái)提供了具有重要意義的關(guān)鍵技術(shù)。一種基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法,具體為按照從整體到局部,再?gòu)木植康絽g元的化整為零的方法進(jìn)行三維空間結(jié)構(gòu)圖形切割,具體含有以下步驟
步驟I、根據(jù)三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法生成具有幾何屬性和物理屬性的目標(biāo)實(shí)體,該目標(biāo)實(shí)體的幾何構(gòu)造采用三維骨骼網(wǎng)架模型和模型的存儲(chǔ)方法;
步驟2、切割控制參數(shù)的輸入,切割控制參數(shù)包括切割位置的定位坐標(biāo)P (x,y,z)、傾向角、走向角,通過(guò)定位坐標(biāo)P (x,y,z)、傾向角、走向角這三個(gè)參數(shù)確定切割面,獲得切割面的基本控制參數(shù),確定切割面方程ax + by +cz + d=0 ;
步驟3、根據(jù)切割控制參數(shù)確定切割面的単位法線矢量,由此得到切割平面,
切割平面由切割平面方程ax + by + cz + d=0定義;
步驟4、確定切割檢索條件下切割對(duì)象的集合,切割檢索條件為目標(biāo)實(shí)體的類型為數(shù)字圖形介質(zhì)模型;
具體采用下列算法實(shí)現(xiàn)
首先,判斷切割對(duì)象集合“SSetOb jCut”是否存在,如存在刪除原有集合對(duì)象;
If Not IsDBNull(DObject. SelectionSets. Item("SSetObjCut")) ThenSSet = DObject. SelectionSets. Item(^SSetObjCutSSet. Delete ()
End If
其次,定義當(dāng)前的切割對(duì)象集合“ SSetOb jCut”;
SSet = DObject. SelectionSets. Add("SSetObjCut ")最后,根據(jù)切割檢索條件,將切割對(duì)象添加到切割對(duì)象集合作為公有變量,為下一歩切割運(yùn)算準(zhǔn)備。
FilterType (O) = OFilterData (O) = 〃*3DSolid*"
SSet. Select(AcSelect. acSelectionSetAll, , , FilterType, FilterData)
步驟5、根據(jù)切割平面對(duì)切割對(duì)象集合中的目標(biāo)實(shí)體進(jìn)行切割運(yùn)算,用直接的數(shù)學(xué)計(jì)算代替復(fù)雜的圖形拓?fù)溥\(yùn)算;
步驟6、進(jìn)行切割運(yùn)算后切割生成實(shí)體的處理,包括切割判斷、ID轉(zhuǎn)移生成、鏈表生
成;
步驟7、根據(jù)切割控制參數(shù)判斷切割是否完成?如沒(méi)有完成,轉(zhuǎn)到步驟3 ;如完成,轉(zhuǎn)到步驟8 ;
步驟8、結(jié)束。在步驟I中三維骨骼網(wǎng)架模型和模型的存儲(chǔ)方法可直接將三維實(shí)體模型、表面模型或混合模型與數(shù)據(jù)庫(kù)直接關(guān)聯(lián)起來(lái),三維空間結(jié)構(gòu)的切割對(duì)象數(shù)據(jù)可從三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法產(chǎn)生的數(shù)字圖形介質(zhì)模型獲取。在步驟2中在每次切割完成后輸入下一次的切割控制參數(shù);或者,在切割開(kāi)始前輸入所有切割控制參數(shù),然后完成所有切割。在步驟3中切割面的単位法線矢量采用待定系數(shù)法求解,具體步驟如下
步驟3. I :建立三維直角坐標(biāo)系;
步驟3. 2 :設(shè)置切割面的法線向量N= (a,b, c);
步驟3.3 :在切割面內(nèi)找出兩個(gè)不共線的向量,記為NI= (al,a2,a3),N2= (bl, b2,
b3);
步驟3. 4 :根據(jù)法線向量的定義建立方程組①N*N1=0,②N*N2=0 ;
步驟3. 5 :解方程組,取其中一組解即可。三維平面的法線是垂直于該平面的三維向量,用方程ax + by + cz +d=0表示的平面,向量(a, b, c)就是其法線。在步驟5中進(jìn)行切割運(yùn)算時(shí),利用步驟3中的切割平面方程ax + by + cz + d=0分別與步驟I中的三維骨骼網(wǎng)架模型的各控制線I-V '2-2^3-3^4-4^5-57進(jìn)行平面與線的求交點(diǎn)計(jì)算;
平面與線的求交點(diǎn)計(jì)算依照點(diǎn)乘與叉乘的定理,平面的已知條件為其法向量N及其上任意一點(diǎn)Pon,直線的已知條件為其上兩頂點(diǎn)Pl,P2,具體求解方法如下
設(shè)矢量 Pt = Pl + t(P2 - Pl);
因?yàn)槭噶縋t也是平面上的頂點(diǎn),則矢量Pt、Pon與法向量N的點(diǎn)乘為O,可列方程 (Pt - Pon) · N = O ;
(Pl - Pon) · N + t(P2 - Pl) · N = O ;
貝Ij t = - (PI -Pon). N /(P2 - Pl) · N ;
若分母(P2 -Pl)* N = 0,則說(shuō)明直線垂直于法向量,與平面是平行的,將無(wú)交點(diǎn)。若分子(PI -Pon)· N = 0,則說(shuō)明直線上的頂點(diǎn)與平面上頂點(diǎn)構(gòu)成的向量垂直于法向量,SP此頂點(diǎn)為交點(diǎn)或這個(gè)直線位于平面上。
切割運(yùn)算可用下列算法實(shí)現(xiàn)
//輸入直線上的兩個(gè)頂點(diǎn)pi,p2 ;平面的法向量和其上任意ー頂點(diǎn) pNormalofPlane
Il輸出若存在的話,輸出直線與平面的交點(diǎn)*10
Il Return: O代表沒(méi)有交點(diǎn) // I代表存在唯一的交點(diǎn)*10
// 2代表直線上頂點(diǎn)為交點(diǎn)或整個(gè)直線位于平面上
int CDEMAlgorithm::Intersect3D_LinePlane( XYZ pl, XYZ p2, XYZ
pNormalofPlane, XYZ pOnPlane, XYZ* I )
{ Vector u = p2 - pl;
Vector w = pl - pOnPlane;
double D = Dot(pNormalofPlane, u);//點(diǎn)乘
double N = -Dot(pNormalofPlane, w);//點(diǎn)乘
if (fabs (D) < EPS) {//直線與平面平行
if (N == 0)//頂點(diǎn)為交點(diǎn)或這個(gè)直線位于平面上
return 2;
else
return 0;//交點(diǎn)不存在
}
double t = N / D;
氺I = pl + t*φ2 - pl);H compute segment intersect point
return I;
}
在步驟6中切割判斷是指由切割控制參數(shù)確定的切割平面對(duì)切割對(duì)象集合中的目標(biāo)實(shí)體進(jìn)行切割運(yùn)算后是否產(chǎn)生交集的判斷;切割判斷的實(shí)現(xiàn)方法是定義ー個(gè)布爾型變量SecRst代表切割結(jié)果,其中,布爾型變量為真時(shí)(SeCRSt=true),代表產(chǎn)生交集,布爾型變量為假時(shí)(SecRSt=falSe),代表未產(chǎn)生交集,根據(jù)切割運(yùn)算結(jié)果,確定布爾型變量SecRst的值,判斷是否產(chǎn)生交集,如產(chǎn)生了交集,則表明產(chǎn)生了切割;
ID轉(zhuǎn)移生成是指對(duì)切割產(chǎn)生的新的目標(biāo)實(shí)體的ID轉(zhuǎn)移生成,ID轉(zhuǎn)移生成的實(shí)現(xiàn)方法是在切割對(duì)象被切割平面切割后,初始的目標(biāo)實(shí)體會(huì)生成為N個(gè)新的目標(biāo)實(shí)體,新的目標(biāo)實(shí)體的ID繼承初始的目標(biāo)實(shí)體的ID,ID為目標(biāo)實(shí)體在三維空間的唯一標(biāo)識(shí),如切割前初始的目標(biāo)實(shí)體的ID為a20334,切割后新的目標(biāo)實(shí)體的ID為a20334,a20335。N為大于等于2的自然數(shù);
鏈表生成是指對(duì)切割產(chǎn)生的新的目標(biāo)實(shí)體的數(shù)據(jù)結(jié)構(gòu)的生成。N為2,或?yàn)?,或?yàn)?。切割運(yùn)算后切割生成實(shí)體的處理利用CAD環(huán)境中強(qiáng)大的內(nèi)置檢索功能、
CAD圖形存儲(chǔ)的特性,將圍繞任ー塊體某ー給定距離內(nèi)的所有塊體尋找出來(lái),井形成連結(jié)鏈。切割后的塊體單元具備如下數(shù)據(jù)結(jié)構(gòu)
Public Struct Element{
Public String ElementName;// 單兀名稱
Public String ElementID;// 單兀 ID
Public Double ElementVolume;// 單兀體積 Public Vector3 ElementCentrePoint;// 單兀中心
Public ArrayList ElementBoundary ;// 單兀的邊界組成
Public ArrayList ElementNear ;// 單兀的臨接關(guān)系
Public ArrayList ElementPoints ;// 單兀的結(jié)點(diǎn)集合
}一種用于工程詳圖剖面圖的三維空間結(jié)構(gòu)圖形切片方法,含有以下步驟
步驟I、采用計(jì)算機(jī)圖形學(xué)方法視ロ處理技術(shù)確定視口內(nèi)的三維空間結(jié)構(gòu)實(shí)體集合; 步驟2、采用計(jì)算機(jī)圖形學(xué)方法的圖層處理技術(shù)進(jìn)行布局空間圖層的凍結(jié)操作;
步驟3、添加視ロ到布局空間;
步驟4、通過(guò)三維空間內(nèi)任意三點(diǎn)或者剖切線兩點(diǎn)或者默認(rèn)確定當(dāng)前視圖的方向矢
量;
步驟5、確定當(dāng)前視圖目標(biāo)和中心;
步驟6、添加視圖并定義為當(dāng)前視 步驟7、剖切投影基于數(shù)字圖形介質(zhì)建模方法的三維空間結(jié)構(gòu)的實(shí)體模型;
步驟8、坐標(biāo)變換I :將剖切投影的三維空間結(jié)構(gòu)的實(shí)體模型變換到當(dāng)前視圖坐標(biāo);步驟9、坐標(biāo)變換2 :將剖切投影的三維空間結(jié)構(gòu)的實(shí)體模型的當(dāng)前視圖坐標(biāo)變換到布局空間坐標(biāo)。從三維空間結(jié)構(gòu)模型自動(dòng)生成ニ維視圖的方法為三維空間結(jié)構(gòu)實(shí)體模型在某一個(gè)觀察方向上經(jīng)過(guò)剖切和投影變換后,轉(zhuǎn)換到ニ維視圖坐標(biāo)中,再將ニ維視圖坐標(biāo)變換到布局空間坐標(biāo),進(jìn)行圖紙信息設(shè)置及相應(yīng)的尺寸標(biāo)注設(shè)置。一種用于快速成型的三維空間結(jié)構(gòu)圖形切片方法,對(duì)三維空間結(jié)構(gòu)實(shí)體模型進(jìn)行切片處理,用ー組平行的剖切平面對(duì)三維空間結(jié)構(gòu)實(shí)體模型進(jìn)行剖切,將實(shí)體模型分層,使剖切平面與實(shí)體模型求交,同時(shí)記錄下交線數(shù)據(jù),也就是ニ維輪廓切片;在確定一定的切片方向后,根據(jù)剖切基準(zhǔn)線及剖分平面確定相關(guān)尺寸,然后開(kāi)始循環(huán)切片,直至剖切完畢;具體含有以下步驟
步驟I、讀取三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法生成的三維空間結(jié)構(gòu)模型文件,提取其幾何拓?fù)湫畔⒉⒅貥?gòu)內(nèi)部幾何模型;
步驟2、用戶選擇零件的制作方向,并輸入分層厚度,分層厚度記為d ;
步驟3、切片平面所在高度記為Z,切片平面所在高度的最小值記為Zmin,切片平面所在高度的最大值記為Zmax,令Z=Zmin ;
步驟4、判斷Z〈Zmax 如是,轉(zhuǎn)入步驟5 ;如不是,轉(zhuǎn)入步驟8 ;
步驟5、調(diào)用分層函數(shù)進(jìn)行分層;
步驟6、將當(dāng)前層所有交線排序形成交線環(huán),得到當(dāng)前層輪廓;
步驟7、令Z=Z+d,然后轉(zhuǎn)入步驟4 ;
步驟8、將分層結(jié)果寫(xiě)入SLC文件輸出。
相關(guān)尺寸為實(shí)體厚度、切層厚度和程序自動(dòng)計(jì)算出的層數(shù),程序自動(dòng)計(jì)算出的層數(shù)作為剖切循環(huán)的次數(shù)。
在切片過(guò)程中,每切一次都保存ニ維輪廓數(shù)據(jù),以便后置編程軟件讀取,后置編程軟件將讀取的ニ維輪廓數(shù)據(jù)生成掃描路徑或進(jìn)行數(shù)控編程處理,最終傳送到RP成型系統(tǒng)中進(jìn)行輪廓加工。本發(fā)明的有益效果
I、本發(fā)明的三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法以數(shù)字圖形作為具有幾何屬性和物理屬性的載體和目標(biāo)實(shí)體,在計(jì)算機(jī)空間將其視為自然界的真實(shí)物體,可對(duì)其賦予宏觀的物理量如質(zhì)量、速度、壓強(qiáng)、溫度等,同時(shí)還可以賦予空間和時(shí)間的信息,并以自然界的物理方程來(lái)控制圖形體的動(dòng)作和相應(yīng)的變化。本發(fā)明能很好地應(yīng)用于大型水利水電工程、土木工程及其相關(guān)領(lǐng)域的三維空間結(jié)構(gòu)的分析和計(jì)算,是真正在虛擬的空間里用圖形這一載體介質(zhì)詮釋真實(shí)的自然狀態(tài)的全新方法。2、本發(fā)明的三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法具有的建模功能、數(shù) 據(jù)存儲(chǔ)功能、圖形拓?fù)溥\(yùn)算功能及三維實(shí)體圖形運(yùn)算功能,可直接實(shí)現(xiàn)設(shè)計(jì)、施工、安
裝等階段詳圖的自動(dòng)生成,可以迅速準(zhǔn)確地將鋼結(jié)構(gòu)構(gòu)件在三維空間的位置、連接形式、焊接方式及各種特殊的處理實(shí)時(shí)地顯示出來(lái)。3、本發(fā)明的基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法按照從整體
到局部,再?gòu)木植康絽g元的化整為零的方法進(jìn)行三維空間結(jié)構(gòu)圖形切割,快速、準(zhǔn)確地構(gòu)建三維空間塊體結(jié)構(gòu),以切割塊體網(wǎng)格為載體,附著幾何特性及拓?fù)潢P(guān)系與力學(xué)特性,該方法不僅解決現(xiàn)有三維空間網(wǎng)格構(gòu)建方法實(shí)現(xiàn)過(guò)程復(fù)雜化、整體效率不高、自動(dòng)化程度低的問(wèn)題,還為工程各類數(shù)值計(jì)算方法的網(wǎng)格生成提供了最基本通用的圖形數(shù)據(jù),也為后續(xù)単元的網(wǎng)格劃分以及虛擬仿真實(shí)現(xiàn)提供了完善的數(shù)據(jù)資源。4、本發(fā)明的基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切片方法以數(shù)字圖
形介質(zhì)模擬方法為基礎(chǔ),提出一種基于數(shù)字圖形介質(zhì)建模數(shù)據(jù)標(biāo)準(zhǔn)的實(shí)體信息模型直接切片方法,通過(guò)提取實(shí)體模型的幾何、拓?fù)湫畔?,確定切片空間位置后,任意切片出復(fù)雜模型的輪廓數(shù)據(jù)信息,具有快速準(zhǔn)確地處理圖形剖切功能,可以應(yīng)用在工程詳圖生成技術(shù)和快速成型技術(shù)中。
圖I為Model-XML數(shù)據(jù)格式組成結(jié)構(gòu)示意 圖2為Model-XML數(shù)據(jù)格式組成層次結(jié)構(gòu)示意 圖3為Model-XML數(shù)據(jù)格式Dgmdb Line的數(shù)據(jù)結(jié)構(gòu)關(guān)系示意 圖4為Model-XML數(shù)據(jù)格式Dgmdb =Line的XML標(biāo)準(zhǔn)形式 圖5為截面關(guān)鍵點(diǎn)模型示意 圖6為直線型骨骼網(wǎng)架模型控制點(diǎn)示意 圖7為折線型骨骼網(wǎng)架模型示意 圖8為直線與平面的交點(diǎn)計(jì)算示意 圖9為基于OOP技術(shù)的圖形數(shù)據(jù)模板庫(kù)分類示意 圖10為基于OOP技術(shù)的圖形數(shù)據(jù)模板庫(kù)的CIS/2中三個(gè)模型的相互關(guān)系示意 圖11為基于OOP技術(shù)的圖形數(shù)據(jù)模板庫(kù)的CIS/2邏輯產(chǎn)品模型示意圖。
圖12為基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法的流程 圖13為三維骨骼網(wǎng)架模型的示意 圖14為三維骨骼網(wǎng)架模型的切割的示意 圖15為三維空間平面及其法線的示意 圖16為切割運(yùn)算的不意 圖17為三維空間下直線與平面的交點(diǎn)的示意 圖18為ID轉(zhuǎn)移生成的不意 圖19為用于工程詳圖剖面圖的三維空間結(jié)構(gòu)圖形切片方法的流程圖;
圖20為用于快速成型的三維空間結(jié)構(gòu)圖形切片方法的流程圖。具體實(shí)施例方式 參見(jiàn)圖12 圖18,其中圖I 3、圖I 4、圖16、圖18中的I-Iy、2_2丨、
3-3^4-4^5-57為三維骨骼網(wǎng)架模型的控制線,圖I 4、圖16中的P為切割平面,圖I5中的Plane為三維空間平面,Normal為法線。基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法為按照從整體到局部,
再?gòu)木植康絽g元的化整為零的方法進(jìn)行三維空間結(jié)構(gòu)圖形切割,具體含有以下步驟 步驟I、根據(jù)三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法生成具有幾何屬性和物 理屬性的目標(biāo)實(shí)體,該目標(biāo)實(shí)體的幾何構(gòu)造采用三維骨骼網(wǎng)架模型和模型的存儲(chǔ)方
法;
步驟2、切割控制參數(shù)的輸入,切割控制參數(shù)包括切割位置的定位坐標(biāo)P (x,y,z)、傾向角、走向角,通過(guò)定位坐標(biāo)P (x,y,z)、傾向角、走向角這三個(gè)參數(shù)確定切割面,獲得切割面的基本控制參數(shù),確定切割面方程ax + by +cz + d=0 ;
步驟3、根據(jù)切割控制參數(shù)確定切割面的単位法線矢量,由此得到切割平面,
切割平面由切割平面方程ax + by + cz + d=0定義;
步驟4、確定切割檢索條件下切割對(duì)象的集合,切割檢索條件為目標(biāo)實(shí)體的類型為數(shù)字圖形介質(zhì)模型;
具體采用下列算法實(shí)現(xiàn)
首先,判斷切割對(duì)象集合“SSetObjCut”是否存在,如存在刪除原有集合對(duì)象;
If Not IsDBNull(DObject. SelectionSets. Item("SSetObjCut")) ThenSSet = DObject. SelectionSets. Item(^SSetObjCutSSet. Delete ()
End If
其次,定義當(dāng)前的切割對(duì)象集合“ SSetOb jCut”;
SSet = DObject. SelectionSets. Add("SSetObjCut ")
最后,根據(jù)切割檢索條件,將切割對(duì)象添加到切割對(duì)象集合作為公有變量,為下一歩切割運(yùn)算準(zhǔn)備。FilterType (O) = OFilterData(O) = 〃*3DSolid*"
SSet. Select (AcSelect. acSelectionSetAll, , , FilterType, FilterData)
步驟5、根據(jù)切割平面對(duì)切割對(duì)象集合中的目標(biāo)實(shí)體進(jìn)行切割運(yùn)算,用直接的數(shù)學(xué)計(jì)算代替復(fù)雜的圖形拓?fù)溥\(yùn)算;
步驟6、進(jìn)行切割運(yùn)算后切割生成實(shí)體的處理,包括切割判斷、ID轉(zhuǎn)移生成、鏈表生
成;
步驟7、根據(jù)切割控制參數(shù)判斷切割是否完成?如沒(méi)有完成,轉(zhuǎn)到步驟3 ;如完成,轉(zhuǎn)到步驟8 ; 步驟8、結(jié)束。在步驟I中三維骨骼網(wǎng)架模型和模型的存儲(chǔ)方法可直接將三維實(shí)體模型、表面模型或混合模型與數(shù)據(jù)庫(kù)直接關(guān)聯(lián)起來(lái),三維空間結(jié)構(gòu)的切割對(duì)象數(shù)據(jù)可從三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法產(chǎn)生的數(shù)字圖形介質(zhì)模型獲取。在步驟2中在每次切割完成后輸入下一次的切割控制參數(shù);或者,在切割開(kāi)始前輸入所有切割控制參數(shù),然后完成所有切割。在步驟3中切割面的単位法線矢量采用待定系數(shù)法求解,具體步驟如下
步驟3. I :建立三維直角坐標(biāo)系;
步驟3. 2 :設(shè)置切割面的法線向量N= (a,b, c);
步驟3.3 :在切割面內(nèi)找出兩個(gè)不共線的向量,記為NI= (al,a2,a3),N2= (bl, b2,
b3);
步驟3. 4 :根據(jù)法線向量的定義建立方程組①N*N1=0,②N*N2=0 ;
步驟3. 5 :解方程組,取其中一組解即可。三維平面的法線是垂直于該平面的三維向量,用方程ax + by + cz +d=0表示的平面,向量(a, b, c)就是其法線。在步驟5中進(jìn)行切割運(yùn)算時(shí),利用步驟3中的切割平面方程ax + by + cz + d=0分別與步驟I中的三維骨骼網(wǎng)架模型的各控制線I-V '2-2^3-3^4-4^5-57進(jìn)行平面與線的求交點(diǎn)計(jì)算;
平面與線的求交點(diǎn)計(jì)算依照點(diǎn)乘與叉乘的定理(參見(jiàn)圖17),平面的已知條件為其法向量N及其上任意一點(diǎn)Pon,直線的已知條件為其上兩頂點(diǎn)Pl, P2,具體求解方法如下設(shè)矢量 Pt = Pl + t(P2 - Pl);
因?yàn)槭噶縋t也是平面上的頂點(diǎn),則矢量Pt、Pon與法向量N的點(diǎn)乘為O,可列方程 (Pt - Pon) · N = O ;
(Pl - Pon) · N + t(P2 - Pl) · N = O ;
貝Ij t = - (Pl -Pon). N /(P2 - Pl) · N ;
若分母(P2 -Pl)* N = 0,則說(shuō)明直線垂直于法向量,與平面是平行的,將無(wú)交點(diǎn)。若分子(Pl -Pon)· N = 0,則說(shuō)明直線上的頂點(diǎn)與平面上頂點(diǎn)構(gòu)成的向量垂直于法向量,SP此頂點(diǎn)為交點(diǎn)或這個(gè)直線位于平面上。切割運(yùn)算可用下列算法實(shí)現(xiàn)
//輸入直線上的兩個(gè)頂點(diǎn)pi,p2 ;平面的法向量和其上任意ー頂點(diǎn) pNormalofPlane
Il輸出若存在的話,輸出直線與平面的交點(diǎn)*10 Il Return: O代表沒(méi)有交點(diǎn) // I代表存在唯一的交點(diǎn)*10Il 2代表直線上頂點(diǎn) 為交點(diǎn)或整個(gè)直線位于平面上
int CDEMAlgorithm::Intersect3D_LinePlane( XYZ pl, XYZ p2, XYZ
pNormalofPlane, XYZ pOnPlane, XYZ* I )
{ Vector u = ρ2 - pl;
Vector w = pl - pOnPlane;
double D = Dot(pNormalofPlane, u);//點(diǎn)乘
double N = -Dot(pNormalofPlane, w);//點(diǎn)乘
if (fabs (D) < EPS) {//直線與平面平行
if (N == 0)//頂點(diǎn)為交點(diǎn)或這個(gè)直線位于平面上
return 2;
else
return O;//交點(diǎn)不存在
}
double t = N / D;
氺I = pl + t*φ2 - pl);H compute segment intersect point
return I;
}
在步驟6中切割判斷是指由切割控制參數(shù)確定的切割平面對(duì)切割對(duì)象集合中的目標(biāo)實(shí)體進(jìn)行切割運(yùn)算后是否產(chǎn)生交集的判斷;切割判斷的實(shí)現(xiàn)方法是定義ー個(gè)布爾型變量SecRst代表切割結(jié)果,其中,布爾型變量為真時(shí)(SeCRSt=true),代表產(chǎn)生交集,布爾型變量為假時(shí)(SecRSt=falSe),代表未產(chǎn)生交集,根據(jù)切割運(yùn)算結(jié)果,確定布爾型變量SecRst的值,判斷是否產(chǎn)生交集,如產(chǎn)生了交集,則表明產(chǎn)生了切割;
ID轉(zhuǎn)移生成是指對(duì)切割產(chǎn)生的新的目標(biāo)實(shí)體的ID轉(zhuǎn)移生成,ID轉(zhuǎn)移生成的實(shí)現(xiàn)方法是在切割對(duì)象被切割平面切割后,初始的目標(biāo)實(shí)體會(huì)生成為N個(gè)新的目標(biāo)實(shí)體,新的目標(biāo)實(shí)體的ID繼承初始的目標(biāo)實(shí)體的ID,ID為目標(biāo)實(shí)體在三維空間的唯一標(biāo)識(shí),如切割前初始的目標(biāo)實(shí)體的ID為a20334,切割后新的目標(biāo)實(shí)體的ID為a20334,a20335。N為大于等于2的自然數(shù);
鏈表生成是指對(duì)切割產(chǎn)生的新的目標(biāo)實(shí)體的數(shù)據(jù)結(jié)構(gòu)的生成。N為2,或?yàn)?,或?yàn)?。切割運(yùn)算后切割生成實(shí)體的處理利用CAD環(huán)境中強(qiáng)大的內(nèi)置檢索功能、
CAD圖形存儲(chǔ)的特性,將圍繞任ー塊體某ー給定距離內(nèi)的所有塊體尋找出來(lái),井形成連結(jié)鏈。切割后的塊體單元具備如下數(shù)據(jù)結(jié)構(gòu)
Public Struct Element
{
Public String ElementName;// 單兀名稱
Public String ElementID;// 單兀 ID
Public Double ElementVolume;// 單兀體積
Public Vector3 ElementCentrePoint;// 單兀中心
Public ArrayList ElementBoundary ;// 單兀的邊界組成Public ArrayList ElementNear ;// 單兀的臨接關(guān)系
Public ArrayList E lementPoints ;// 單兀的結(jié)點(diǎn)集合
}參見(jiàn)圖19,用于工程詳圖剖面圖的三維空間結(jié)構(gòu)圖形切片方法含有以下步 驟
步驟I、采用計(jì)算機(jī)圖形學(xué)方法視ロ處理技術(shù)確定視口內(nèi)的三維空間結(jié)構(gòu)實(shí)體集合; 步驟2、采用計(jì)算機(jī)圖形學(xué)方法的圖層處理技術(shù)進(jìn)行布局空間圖層的凍結(jié)操作;
步驟3、添加視ロ到布局空間;
步驟4、通過(guò)三維空間內(nèi)任意三點(diǎn)或者剖切線兩點(diǎn)或者默認(rèn)確定當(dāng)前視圖的方向矢
量;
步驟5、確定當(dāng)前視圖目標(biāo)和中心;
步驟6、添加視圖并定義為當(dāng)前視 步驟7、剖切投影基于數(shù)字圖形介質(zhì)建模方法的三維空間結(jié)構(gòu)的實(shí)體模型;
步驟8、坐標(biāo)變換I :將剖切投影的三維空間結(jié)構(gòu)的實(shí)體模型變換到當(dāng)前視圖坐標(biāo);步驟9、坐標(biāo)變換2 :將剖切投影的三維空間結(jié)構(gòu)的實(shí)體模型的當(dāng)前視圖坐標(biāo)變換到布局空間坐標(biāo)。從三維空間結(jié)構(gòu)模型自動(dòng)生成ニ維視圖的方法為三維空間結(jié)構(gòu)實(shí)體模型在某一個(gè)觀察方向上經(jīng)過(guò)剖切和投影變換后,轉(zhuǎn)換到ニ維視圖坐標(biāo)中,再將ニ維視圖坐標(biāo)變換到布局空間坐標(biāo),進(jìn)行圖紙信息設(shè)置及相應(yīng)的尺寸標(biāo)注設(shè)置。參見(jiàn)圖20,用于快速成型的三維空間結(jié)構(gòu)圖形切片方法為對(duì)三維空間結(jié)構(gòu)實(shí)體模型進(jìn)行切片處理,用ー組平行的剖切平面對(duì)三維空間結(jié)構(gòu)實(shí)體模型進(jìn)行剖切,將實(shí)體模型分層,使剖切平面與實(shí)體模型求交,同時(shí)記錄下交線數(shù)據(jù),也就是ニ維輪廓切片;在確定一定的切片方向后,根據(jù)剖切基準(zhǔn)線及剖分平面確定相關(guān)尺寸,然后開(kāi)始循環(huán)切片,直至剖切完畢;具體含有以下步驟
步驟I、讀取三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法生成的三維空間結(jié)構(gòu)模型文件,提取其幾何拓?fù)湫畔⒉⒅貥?gòu)內(nèi)部幾何模型;
步驟2、用戶選擇零件的制作方向,并輸入分層厚度,分層厚度記為d ;
步驟3、切片平面所在高度記為Z,切片平面所在高度的最小值記為Zmin,切片平面所在高度的最大值記為Zmax,令Z=Zmin ;
步驟4、判斷Z〈Zmax 如是,轉(zhuǎn)入步驟5 ;如不是,轉(zhuǎn)入步驟8 ;
步驟5、調(diào)用分層函數(shù)進(jìn)行分層;
步驟6、將當(dāng)前層所有交線排序形成交線環(huán),得到當(dāng)前層輪廓;
步驟7、令Z=Z+d,然后轉(zhuǎn)入步驟4 ;
步驟8、將分層結(jié)果寫(xiě)入SLC文件輸出。相關(guān)尺寸為實(shí)體厚度、切層厚度和程序自動(dòng)計(jì)算出的層數(shù),程序自動(dòng)計(jì)算出的層數(shù)作為剖切循環(huán)的次數(shù)。在切片過(guò)程中,每切一次都保存ニ維輪廓數(shù)據(jù),以便后置編程軟件讀取,后置編程軟件將讀取的ニ維輪廓數(shù)據(jù)生成掃描路徑或進(jìn)行數(shù)控編程處理,最終傳送到RP成型系統(tǒng)中進(jìn)行輪廓加工。
權(quán)利要求
1.一種基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法,其特征是按照從整體到局部,再?gòu)木植康絾卧幕麨榱愕姆椒ㄟM(jìn)行三維空間結(jié)構(gòu)圖形切割,具體含有以下步驟 步驟I、根據(jù)三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法生成具有幾何屬性和物 理屬性的目標(biāo)實(shí)體,該目標(biāo)實(shí)體的幾何構(gòu)造采用三維骨骼網(wǎng)架模型和模型的存儲(chǔ)方法; 步驟2、切割控制參數(shù)的輸入,切割控制參數(shù)包括切割位置的定位坐標(biāo)、傾向角、走向角,通過(guò)定位坐標(biāo)、傾向角、走向角這三個(gè)參數(shù)確定切割面,獲得切割面的基本控制參數(shù),確定切割面方程; 步驟3、根據(jù)切割控制參數(shù)確定切割面的單位法線矢量,由此得到切割平面,切割平面由切割平面方程定義; 步驟4、確定切割檢索條件下切割對(duì)象的集合,切割檢索條件為目標(biāo)實(shí)體的類型為數(shù)字圖形介質(zhì)模型; 步驟5、根據(jù)切割平面對(duì)切割對(duì)象集合中的目標(biāo)實(shí)體進(jìn)行切割運(yùn)算; 步驟6、進(jìn)行切割運(yùn)算后切割生成實(shí)體的處理,包括切割判斷、ID轉(zhuǎn)移生成、鏈表生成; 步驟7、根據(jù)切割控制參數(shù)判斷切割是否完成?如沒(méi)有完成,轉(zhuǎn)到步驟3 ;如完成,轉(zhuǎn)到步驟8 ; 步驟8、結(jié)束。
2.根據(jù)權(quán)利要求I所述的基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法,其特征是在所述步驟I中三維骨骼網(wǎng)架模型和模型的存儲(chǔ)方法可直接將三維實(shí)體模型、表面模型或混合模型與數(shù)據(jù)庫(kù)直接關(guān)聯(lián)起來(lái),三維空間結(jié)構(gòu)的切割對(duì)象數(shù)據(jù)可從三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法產(chǎn)生的數(shù)字圖形介質(zhì)模型獲取。
3.根據(jù)權(quán)利要求I所述的基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法,其特征是在所述步驟2中在每次切割完成后輸入下一次的切割控制參數(shù);或者,在切割開(kāi)始前輸入所有切割控制參數(shù),然后完成所有切割。
4.根據(jù)權(quán)利要求I所述的基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法,其特征是在所述步驟3中切割面的單位法線矢量采用待定系數(shù)法求解,具體步驟如下 步驟3. I :建立三維直角坐標(biāo)系; 步驟3. 2 :設(shè)置切割面的法線向量N ; 步驟3.3 :在切割面內(nèi)找出兩個(gè)不共線的向量,記為向量NI、向量N2 ; 步驟3. 4 :根據(jù)法線向量的定義建立方程組①N*N1=0,②N*N2=0 ; 步驟3. 5 :解方程組,取其中一組解即可。
5.根據(jù)權(quán)利要求I所述的基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法,其特征是在所述步驟5中進(jìn)行切割運(yùn)算時(shí),利用步驟3中的切割平面方程分別與步驟I中的三維骨骼網(wǎng)架模型的各控制線進(jìn)行平面與線的求交點(diǎn)計(jì)算。
6.根據(jù)權(quán)利要求I所述的基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法,其特征是在所述步驟6中切割判斷是指由切割控制參數(shù)確定的切割平面對(duì)切割對(duì)象集合中的目標(biāo)實(shí)體進(jìn)行切割運(yùn)算后是否產(chǎn)生交集的判斷;切割判斷的實(shí)現(xiàn)方法是定義一個(gè)布爾型變量代表切割結(jié)果,其中,布爾型變量為真時(shí),代表產(chǎn)生交集,布爾型變量為假時(shí),代表未產(chǎn)生交集,根據(jù)切割運(yùn)算結(jié)果,確定布爾型變量的值,判斷是否產(chǎn)生交集,如產(chǎn)生了交集,則表明產(chǎn)生了切割; ID轉(zhuǎn)移生成是指對(duì)切割產(chǎn)生的新的目標(biāo)實(shí)體的ID轉(zhuǎn)移生成,ID轉(zhuǎn)移生成的實(shí)現(xiàn)方法是在切割對(duì)象被切割平面切割后,初始的目標(biāo)實(shí)體會(huì)生成為N個(gè)新的目標(biāo)實(shí)體,新的目標(biāo)實(shí)體的ID繼承初始的目標(biāo)實(shí)體的ID,ID為目標(biāo)實(shí)體在三維空間的唯一標(biāo)識(shí),N為大于等于2的自然數(shù); 鏈表生成是指對(duì)切割產(chǎn)生的新的目標(biāo)實(shí)體的數(shù)據(jù)結(jié)構(gòu)的生成。
7.一種用于工程詳圖剖面圖的三維空間結(jié)構(gòu)圖形切片方法,其特征是 含有以下步驟 步驟I、采用計(jì)算機(jī)圖形學(xué)方法視口處理技術(shù)確定視口內(nèi)的三維空間結(jié)構(gòu)實(shí)體集合; 步驟2、采用計(jì)算機(jī)圖形學(xué)方法的圖層處理技術(shù)進(jìn)行布局空間圖層的凍結(jié)操作; 步驟3、添加視口到布局空間; 步驟4、通過(guò)三維空間內(nèi)任意三點(diǎn)或者剖切線兩點(diǎn)或者默認(rèn)確定當(dāng)前視圖的方向矢量; 步驟5、確定當(dāng)前視圖目標(biāo)和中心; 步驟6、添加視圖并定義為當(dāng)前視圖; 步驟7、剖切投影基于數(shù)字圖形介質(zhì)建模方法的三維空間結(jié)構(gòu)的實(shí)體模型; 步驟8、坐標(biāo)變換I :將剖切投影的三維空間結(jié)構(gòu)的實(shí)體模型變換到當(dāng)前視圖坐標(biāo);步驟9、坐標(biāo)變換2 :將剖切投影的三維空間結(jié)構(gòu)的實(shí)體模型的當(dāng)前視圖坐標(biāo)變換到布局空間坐標(biāo)。
8.一種用于快速成型的三維空間結(jié)構(gòu)圖形切片方法,其特征是對(duì)三維空間結(jié)構(gòu)實(shí)體模型進(jìn)行切片處理,用一組平行的剖切平面對(duì)三維空間結(jié)構(gòu)實(shí)體模型進(jìn)行剖切,將實(shí)體模型分層,使剖切平面與實(shí)體模型求交,同時(shí)記錄下交線數(shù)據(jù),也就是二維輪廓切片;在確定一定的切片方向后,根據(jù)剖切基準(zhǔn)線及剖分平面確定相關(guān)尺寸,然后開(kāi)始循環(huán)切片,直至剖切完畢;具體含有以下步驟 步驟I、讀取三維空間結(jié)構(gòu)的數(shù)字圖形介質(zhì)模擬方法生成的三維空間結(jié)構(gòu)模型文件,提取其幾何拓?fù)湫畔⒉⒅貥?gòu)內(nèi)部幾何模型; 步驟2、用戶選擇零件的制作方向,并輸入分層厚度,分層厚度記為d ; 步驟3、切片平面所在高度記為Z,切片平面所在高度的最小值記為Zmin,切片平面所在高度的最大值記為Zmax,令Z=Zmin ; 步驟4、判斷Z〈Zmax 如是,轉(zhuǎn)入步驟5 ;如不是,轉(zhuǎn)入步驟8 ; 步驟5、調(diào)用分層函數(shù)進(jìn)行分層; 步驟6、將當(dāng)前層所有交線排序形成交線環(huán),得到當(dāng)前層輪廓; 步驟7、令Z=Z+d,然后轉(zhuǎn)入步驟4 ; 步驟8、將分層結(jié)果寫(xiě)入SLC文件輸出。
9.根據(jù)權(quán)利要求8所述的用于快速成型的三維空間結(jié)構(gòu)圖形切片方法,其特征是所述相關(guān)尺寸為實(shí)體厚度、切層厚度和程序自動(dòng)計(jì)算出的層數(shù),程序自動(dòng)計(jì)算出的層數(shù)作為剖切循環(huán)的次數(shù)。
10.根據(jù)權(quán)利要求8所述的用于快速成型的三維空間結(jié)構(gòu)圖形切片方法,其特征是在所述切片過(guò)程中,每切一次都保存二維輪廓數(shù)據(jù),以便后置編程軟件讀取 。
全文摘要
本發(fā)明涉及一種基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割及切片方法;基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法按照從整體到局部,再?gòu)木植康絾卧幕麨榱愕姆椒ㄟM(jìn)行三維空間結(jié)構(gòu)圖形切割;基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切片方法分為工程詳圖剖面圖的三維空間結(jié)構(gòu)圖形切片方法和用于快速成型的三維空間結(jié)構(gòu)圖形切片方法;本發(fā)明的基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切割方法是一種三維空間結(jié)構(gòu)網(wǎng)格生成的方法,該方法可解決現(xiàn)有三維空間網(wǎng)格構(gòu)建方法實(shí)現(xiàn)過(guò)程復(fù)雜化、整體效率不高、自動(dòng)化程度低的問(wèn)題;基于數(shù)字圖形介質(zhì)的三維空間結(jié)構(gòu)圖形切片方法簡(jiǎn)單有效、精度高。
文檔編號(hào)G06T17/20GK102629391SQ201210047748
公開(kāi)日2012年8月8日 申請(qǐng)日期2012年2月28日 優(yōu)先權(quán)日2012年2月28日
發(fā)明者劉尚蔚, 葉曉楓, 孫凱, 張俊紅, 張國(guó)新, 惠延波, 王宗敏, 王穎, 魏群, 魏魯雙 申請(qǐng)人:華北水利水電學(xué)院