專利名稱:在gocad軟件中建立二維工作面的輔助建模方法
技術(shù)領(lǐng)域:
本發(fā)明涉及水電水利工程地質(zhì)三維建模技術(shù),具體的說,是涉及一種在GOCAD軟件中建立二維工作面的輔助建模方法。
背景技術(shù):
隨著計算機技術(shù)的發(fā)展,計算機三維技術(shù)應(yīng)用已擴展至各行各業(yè)。在這種趨勢下,工程設(shè)計領(lǐng)域也在逐步推進計算機三維技術(shù),水電設(shè)計的三維化工作也勢在必行。水電工程設(shè)計是一個跨越多專業(yè)、涉及多領(lǐng)域的協(xié)同過程。GOCAD軟件是地質(zhì)領(lǐng)域的三維軟件,能很好地支持地質(zhì)專業(yè)數(shù)據(jù)的三維化分析、顯示和編輯并構(gòu)建三維地質(zhì)模型,是水電工程地質(zhì)三維工作較為理想的基礎(chǔ)平臺。
·
在水電工程地質(zhì)三維工作過程中,一方面,需要在三維環(huán)境下對地質(zhì)體及其屬性展布規(guī)律進行宏觀的總結(jié)概化,另一方面,也需要結(jié)合勘探資料和水工建筑物設(shè)計進行精確的定位,對地質(zhì)對象的特定位置進行精準編輯、修改,以準確表達相關(guān)區(qū)域的地質(zhì)對象特征。由于三維軟件系統(tǒng)是在二維的計算機顯示屏上虛擬顯示三維景象,直接在三維環(huán)境中對點(或?qū)ο?進行拾取、參照移動、平面量測等操作時都不夠直觀、方便,因此很多情況下需要二維化,在某個特定二維面上,對操作對象的輪廓進行精確調(diào)整,GOCAD對此缺乏有效的手段。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是作為GOCAD三維建模手段的補充,提出一種在GOCAD軟件中建立二維工作面的輔助建模方法,在三維空間中靈活、快捷地構(gòu)建合適的二維操作平面作為參照工作面,通過在二維工作面上準確、直觀、方便地編輯修改點\線的方式,來實現(xiàn)對地質(zhì)對象的精確定位和調(diào)整。本發(fā)明解決上述技術(shù)問題所采用的方案是在GOCAD軟件中建立二維工作面的輔助建模方法,包括以下步驟a.在被調(diào)整對象附近定義一個空間平面;b.在GOCAD軟件中生成這個平面作為二維工作面;c.計算該工作面與地質(zhì)對象的交切線;d.在二維工作面中參照并修改交切線;e.對地質(zhì)對象進行調(diào)整。進一步,步驟a中,根據(jù)被調(diào)整對象的實際情況,選取以下方式之一在被調(diào)整對象附近定義一個合適的空間平面提供一個中心點、空間平面的傾向和傾角;或者,提供一個中心點、空間平面的法向矢量;或者,提供不共線的三個點;
另外,提供半徑以定義平面的范圍——指定工作面的大小。進一步,步驟b中,通過步驟a中所述工作面的各個參數(shù)來生成工作面,具體方法為首先把空間平面的多種定義格式用統(tǒng)一的中心點及平面法向矢量方式來表達;如果平面參數(shù)中含有地質(zhì)產(chǎn)狀格式的傾向dip、傾角ang,轉(zhuǎn)換為法向即V (sin (ang) *sin (dip),sin(ang)*cos(dip), cos (ang));如果提供的是三個點 pi (xl, yl, zl)p2(x2, y2, z2)和p3(x3, y3, z3),則以三點為頂點的三角形重心作為中心點,并計算三點決定的平面法向矢量;進而,通過中心點、平面法向、半徑等參數(shù),在GOCAD中構(gòu)建一個平面作為二維工作面。進一步,步驟c中,求該工作面與地質(zhì)對象的交切線的具體方法是在GOCAD軟件中調(diào)用 Gocad: :PLineAPI:: create from tsurf intersection,求得工作面與地質(zhì)對象的交切線。進一步,步驟d中,對所述交切線進行修改的方法為在二維工作面內(nèi),對所述交切線進行編輯修改,或者參照原交切線重新畫一條新的跡線作為交切線。
進一步,步驟e中,對地質(zhì)對象進行修改的方法為以新的交切線上作為約束,對地質(zhì)對象進行DSI插值,從而調(diào)整其形態(tài)。本發(fā)明的有益效果是在三維空間中指定的位置靈活地構(gòu)建指定工作面,并在計算機中顯示為二維視窗,將三維坐標自動轉(zhuǎn)換為該指定工作面上的二維坐標;相關(guān)對象的編輯、修改操作可在這個面上直觀方便地完成,從而解決了二、三維空間定位相互轉(zhuǎn)換問題,給對象細部的精確調(diào)整工作帶來極大的便利。
具體實施例方式本發(fā)明中的在GOCAD軟件中建立二維工作面的輔助建模方法,包括以下步驟( I)在被調(diào)整對象附近定義一個空間平面;(2)在GOCAD軟件中生成這個平面作為二維工作面;(3)計算該工作面與地質(zhì)對象的交切線;(4)在二維工作面中參照并修改交切線;( 5 )對地質(zhì)對象進行修改。在步驟(I)中,定義一個工作面有三種方法提供一個中心點、空間平面的傾向、傾角;或者,提供一個中心點、空間平面的法向矢量;或者,提供不共線的三個點。另外,提供半徑以定義平面的范圍——指定工作面的大小。在步驟(2)中,根據(jù)步驟(I)輸入的參數(shù)生成工作面,具體方法如下把面的定義用點、法向的表不方法來統(tǒng)一表不和使用。如果步驟(I)中的平面是用中心點以及面的傾向dip、傾角ang來表示的,那么需要將產(chǎn)狀格式轉(zhuǎn)換為法向,即 V (sin (ang) *sin(dip), sin (ang) *cos (dip), cos (ang))。如果工作面是用三個點pi (xl, yl, zl)p2(x2, y2, z2)和p3 (x3, y3, z3),則既需要計算平面法向,也需要求中心點(以此三點為頂點的三角形的重心)。其算法如下算法I由面上的三點求面的法向Vector3vl (pi. x (), pi. y (), pi. z ());
Vector3v2 (p2. x (), p2. y (), p2. z ());Vector3v3 (p3. x (), p3. y (), p3. z ());Vector3v=(v2-vl)&(v3-vl);算法2 求 pi (xl, yl, zl)、p2(x2, y2, z2)和 p3 (x3, y3, z3)為頂點的三角形的重心Pt. X= (xl+x2+x3) /3 ;Pt. y=(yl+y2+y3)/3 ; Pt. z= (zl+z2+z3)/3 ;然后由工作面上的一點、工作面法向和工作面半徑生成工作面,算法如下算法3由面上的一點p(x, y, z)、工作面法向norm(nx, ny, nz)生成半徑為L的面,
VSet^vs= (VSet*)CieobaseIJh: : i nslance O->create ("skdj ΓI sadj—temp—(則'
Set:: id ());
SuhVSeI* subvs = vs—>create—element ();for ( int I = 0; i < vlJ si. count () ; i++)i
APoi nt3iJ p(vList, item(i)->x(), vList, item(i)->y (), fList, item(i)->z{)); Point 3d pO = hcs^>transform_into (lies, p);
Atom* a = subvs->create_atom(pO);
subvs->add—atoii(a> ;
I
vs-XipdaU;();
TSurf# ts = TSurfAPI::create_from_atoralc_group(nameI vs, false,
VectorSd (norm, x (), norm, γ (), norm, z ()), fal se);在步驟(3)中,求該工作面與地質(zhì)對象的交切線的具體方法是在GPCAD軟件中調(diào)用 Gocad: :PLineAPI: : create_from_tsurf_intersection,求得工作面與地質(zhì)對象的交切線。在步驟(4)中,有兩種方式對所述交切線進行修改,其一是拖拽交切線上的點,修改原有交切線,其二是重新劃一條新的交切線,在GOCAD中如果拖拽和畫線時都是以工作面為背景的,就能確保點都落在工作面上。在步驟(5)中,以新(或修改后)的交線上的點為約束點,對地質(zhì)對象(面)進行DSI插值,從而修改其形態(tài)。需要指定新交線、被約束面、約束影響范圍和迭代步數(shù),插值過程由程序完成。算法如下算法4指定約束線、被約束面、約束影響范圍和迭代步數(shù)運行DSI插值if (靈個 IiiI Wifi)
{
(k)cad: : TSurHlPI: : run__ i sot rap i c_ds i_geo (s, n i I rld i I—Mext () · iolnl () smooihChec
kBax->isChecked () s false,2, Of); }
else
{
ilouhIc ciis 二 dislanco_to_roRion_Kdi(). KiDouhIe()
irCluslDisl-dis)
{
deiete^region(s, ^region)t
_rvgum = crcatc___regic>n (s, Ji s, (I1Unc^) cc^ntrol lers, tcm(O) s ^shooter) ;//新建—·個I^jrm
JastDis = dis·’
}
AtomicGroup^ atomic^ = dynamic___cast<Atomi eGroup^> (s);
for( PtrList<Atomio>:: iterator I (atomicg->atoraics ()) i i, raore() ; i. next() ) IAiuiiiic* current^utomic = i. cur ();
AtnmicAPl::run_dsi_in_region(eurrent^atomic^ _rogion. IhI nI ()fniirFMi i->iext O , toIntO, smoothCheckBox->isCheckcci()) %
)
權(quán)利要求
1.在GOCAD軟件中建立二維工作面的輔助建模方法,其特征在于,包括以下步驟 a.在被調(diào)整對象附近定義一個空間平面; b.在GOCAD軟件中生成這個平面作為二維工作面; c.計算該工作面與地質(zhì)對象的交切線; d.在二維工作面中參照并修改交切線; e.對地質(zhì)對象進行調(diào)整。
2.如權(quán)利要求I所述的在GOCAD軟件中建立二維工作面的輔助建模方法,其特征在于, 步驟a中,根據(jù)被調(diào)整對象的實際情況,選取以下方式之一在被調(diào)整對象附近定義一個合適的空間平面 提供一個中心點、空間平面的傾向和傾角;或者, 提供一個中心點、空間平面的法向矢量;或者, 提供不共線的三個點; 另外,提供半徑以定義平面的范圍,指定工作面的大小。
3.如權(quán)利要求2所述的在GOCAD軟件中建立二維工作面的輔助建模方法,其特征在于,步驟b中,通過步驟a中所述工作面的各個參數(shù)來生成工作面,具體方法為首先把空間平面的多種定義格式用統(tǒng)一的中心點及平面法向矢量方式來表達;如果平面參數(shù)中含有地質(zhì)產(chǎn)狀格式的傾向dip、傾角ang,轉(zhuǎn)換為法向即v (sin (ang) *sin (dip),sin (ang) *cos (dip), cos (ang));如果提供的是三個點 pi (xl, yl, zl)p2(x2, y2, z2)和 p3 (x3, y3, z3),則以三點為頂點的三角形重心作為中心點,并計算三點決定的平面法向矢量;進而,通過中心點、平面法向、半徑等參數(shù),在GOCAD中構(gòu)建一個平面作為二維工作面。
4.如權(quán)利要求1-3任意一項所述的在GOCAD軟件中建立二維工作面的輔助建模方法,其特征在于,步驟c中,求該工作面與地質(zhì)對象的交切線的具體方法是在GOCAD軟件中調(diào)用 Gocad: :PLineAPI: : create_from_tsurf_intersection,求得工作面與地質(zhì)對象的交切線。
5.如權(quán)利要求1-3任意一項所述的在GOCAD軟件中建立二維工作面的輔助建模方法,其特征在于,步驟d中,對所述交切線進行修改的方法為在二維工作面內(nèi),對所述交切線進行編輯修改,或者參照原交切線重新畫一條新的跡線作為交切線。
6.如權(quán)利要求5所述的在GOCAD軟件中建立二維工作面的輔助建模方法,其特征在于,步驟e中,對地質(zhì)對象進行修改的方法為以新的交切線上作為約束,對地質(zhì)對象進行DSI插值,從而調(diào)整其形態(tài)。
全文摘要
本發(fā)明涉及水電水利工程地質(zhì)三維建模技術(shù),其公開了一種在GOCAD軟件中建立二維工作面的輔助建模方法,在三維空間中準確構(gòu)建任意指定的二維操作平面,以此實現(xiàn)精確定位和對象編輯。該方法包括以下步驟a.確定一個工作面;b.在GOCAD軟件中生成這個工作面;c.求該工作面與地質(zhì)對象的交切線;d.對所述交切線進行修改;e.對地質(zhì)對象進行修改。本發(fā)明在三維空間中某個指定的位置構(gòu)建任意指定面,并在計算機中顯示為二維視窗,將三維坐標自動轉(zhuǎn)換為該指定面上的二維坐標;相關(guān)對象的編輯、修改操作可在這個面上進行,從而解決了二、三維空間定位相互轉(zhuǎn)換問題,給對象細部編輯、修改工作帶來極大的便利,適用于三維建模軟件中對相應(yīng)對象的編輯。
文檔編號G06F17/50GK102831281SQ201210339518
公開日2012年12月19日 申請日期2012年9月14日 優(yōu)先權(quán)日2012年9月14日
發(fā)明者田華兵, 劉仕勇, 王剛, 李攀峰, 石偉民, 吉云, 黃嘯鷹 申請人:中國水電顧問集團成都勘測設(shè)計研究院