亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于AutoCAD自由曲面的開發(fā)與應(yīng)用①

        2018-06-28 07:22:32,,,
        關(guān)鍵詞:分點弦長樣條

        , , ,

        (武漢大學(xué)土木建筑工程學(xué)院,湖北 武漢 430072)

        0 引 言

        隨著建筑美學(xué)與建筑力學(xué)的融合,復(fù)雜曲面在建筑行業(yè)的應(yīng)用越來越廣泛。曲面不再局限于傳統(tǒng)的能用函數(shù)表達(dá)的解析曲面,出現(xiàn)造型多變、富有動感的自由曲面,網(wǎng)格劃分美觀流暢,具有強大的視覺效果。而AutoCAD是目前國內(nèi)外廣泛使用的計算機輔助設(shè)計圖形處理軟件,具有開放的結(jié)構(gòu)體系,用戶可以結(jié)合AutoCAD二次開發(fā)的特點和自身需求,開發(fā)屬于自己的CAD系統(tǒng)[1]。ObjectARX是基于C++語言為基礎(chǔ),支持面向?qū)ο筮M(jìn)行編程,是使用最為廣泛一項AutoCAD二次開發(fā)工具。袁文輝[2]在AutoCAD中實現(xiàn)對實體邊界曲面數(shù)據(jù)的訪問,用于在數(shù)控加工中生成和驗證刀具路徑。許俊等[3]基于以AutoCAD2007開發(fā)平臺的鋼結(jié)構(gòu)設(shè)計軟件USSCAD,實現(xiàn)了空間復(fù)雜曲面結(jié)構(gòu)的參數(shù)化建模。

        本文基于AutoCAD2007進(jìn)行二次開發(fā),使用ObjectARX技術(shù),對自由曲面進(jìn)行數(shù)據(jù)訪問,針對獲取曲面上的曲線和由點生成曲面兩個方面進(jìn)行研究,實現(xiàn)了對自由曲面的邊界曲線的提取、曲面分解成曲線、曲線投影到曲面上和通過三維點陣擬合自由曲面等功能。

        1 NURBS曲面

        用NURBS方法來表示曲線和曲面具有顯著的優(yōu)越性[4],在形狀定義方面有很強大的功能,同時能為自由曲線、曲面的精確表達(dá)提供統(tǒng)一的數(shù)學(xué)形式。AutoCAD系統(tǒng)中的自由曲面就是采用三次NURBS方法表示的[5]。NURBS通過控制點、權(quán)因子、基函數(shù)三個因素,就可精確表示任意自由曲面和曲線,控制著曲線曲面的形狀[6]。

        NURBS曲面的有理分式表達(dá)如下:

        式中,pi,j為呈拓?fù)湫嘘嚵械膍×n雙向網(wǎng)格中的第i行第j個點;i為控制點u方向的編號及u向B樣條的基函數(shù)編號,i=0,1,……m;j為控制點v方向的編號及v向B樣條的基函數(shù)編號,j=0,1,……n;wi,j為與點pi,j對應(yīng)的權(quán)數(shù),控制各點對構(gòu)型的影響程度;Ni,3(u)為u向三次B樣條基函數(shù);Nj,3(v)為v向三次B樣條基函數(shù)。Ni,3(u)和Nj,3(v)分別是由u向和v向的節(jié)點矢量按三次德布爾遞推公式計算得到。

        AutoCAD已經(jīng)將用NURBS方法創(chuàng)建自由曲面的函數(shù)封裝在ObjectARX函數(shù)包中,用B-rep方法儲存供用戶讀取和編輯操作。

        2 曲面定向生成曲線

        2.1 提取邊界曲線

        對于由AutoCAD自生成的曲面或者從外部導(dǎo)入的可識別的曲面,通過函數(shù)判定是否為AcDbSuface類,判定成功后即可通過調(diào)用thicken()函數(shù)加厚形成實體并添加至模型空間。利用實體類的getSubentPathsAtGSMaker函數(shù)獲得該實體的子實體(曲面)。通過AcBrFace類對象創(chuàng)建與實體相關(guān)的AcGeSurface曲面對象,調(diào)用getEnvelope函數(shù)獲得該曲面拓?fù)渚匦螀?shù)區(qū)間范圍[7]。相關(guān)操作函數(shù)如下:

        對于四邊形邊界的自由曲面,其四條邊界分別對應(yīng)的是u=0、u=1,v=0、v=1。將這四種情況下對應(yīng)的相關(guān)參數(shù)(param值)通過evalPoint函數(shù)反射到曲面得到一系列的點,利用這一系列的點可生成三次樣條曲線,即為自由曲面的邊界。

        對于圓形邊界類曲面,在某條邊界上所有參數(shù)點映射得到均為同一點,即第四條邊界曲線為一個點。對于圓環(huán)類曲面,當(dāng)u或v中只有一向閉合時,只有三條邊界曲線(存在兩條邊界曲線重合);當(dāng)u、v向均閉合時,只存在兩條邊界曲線(邊界曲線兩兩重合)。

        //getSubentPathsAtGSMaker: 獲得實體對象的子實體函數(shù)

        //lowerBound: 獲得曲面參數(shù)域的下邊界函數(shù)

        //upBound: 獲得曲面參數(shù)域的上邊界函數(shù)

        //isClosedInU: 判斷曲面是否在u向閉合

        //isClosedInV: 判斷曲面是否在v向閉合

        //evalPoint: 根據(jù)拓?fù)鋮?shù)反射得到曲面上對應(yīng)點的函數(shù)

        2.2 曲面生成等分線

        2.2.1 曲線等分

        如圖1所示,將曲線按弦長進(jìn)行等分,曲線等分后各段的弧長基本一致。按等弦長劃分曲線,其基本流程如圖2所示。

        以一條曲線等分成10份為例,其基本步驟如下:

        1)通過將曲線等分成一定數(shù)量的點,求出相鄰兩點的距離值,將所有距離值相加即可得到曲線的近似長度。將曲線的近似長度除以10,即可得到初始桿件長L。考慮到后期修改桿件長度,同時求出將曲線分為9段和11段的初始桿件長,分別記做Lmax與Lmin。

        2)將參數(shù)域值等分成10份,作為△u=0.1,用以調(diào)整參數(shù)值。初始點Pt1為參數(shù)值等于0的點,Pt2點的參數(shù)值初始設(shè)為0.1,并將其參數(shù)域范圍設(shè)置為(umin,umax),umin=0,umax=0.1。

        3)求出Pt2與Pt1之間桿件的長度l。若l>L,則保證umin=0,umax=0.1;若l

        4)求出Pt2的正確坐標(biāo)后,將Pt2作為初始點,尋找Pt3,使其滿足兩點的距離等于L。

        圖1 曲線弦等分

        圖2 曲線弦等分流程

        5)當(dāng)?shù)戤吅?,求出最后一個節(jié)點與曲線的終點的距離。若若共有n+1個等分點,且最后一段的長度小于允許的長度誤差?,則將最后一個等分點替換成曲線終點,曲線等分完成。若是等分點數(shù)目小于n+1,則說明L取大了,需要減小,L的新范圍為(L,Lmin);若是等分點數(shù)目大于n+1或者等分點數(shù)目等于n+1但最后一段的長度超出誤差范圍,則說明L取小了,L的新范圍為(Lmax,L)。同樣采用二分法不斷的確定新的L,直至滿足判斷2。

        按等弦長劃分可以將曲線均勻的等分,每段的弦長均相等。但是按弦長等分時,若是曲線的曲率變化太大,所有等分點連接形成的新曲線與原有的曲線存在一定的偏差,可按等分u向值來劃分曲線,但每段的弦長長度有差異。

        2.2.2 曲面分解成曲線

        將曲面分解形成一系列的等分曲線,通過操作曲線組可以達(dá)到將曲面劃分網(wǎng)格的目的??蓪崿F(xiàn)沿曲面的u或v向生成等分曲線,以生成u向曲線為例,假設(shè)生成n條曲線:

        1)將AcDbSurface轉(zhuǎn)換成AcGeSurface,獲得該曲面拓?fù)渚匦螀?shù)區(qū)間范圍。

        2)根據(jù)曲面參數(shù)域的上下邊界,分別生成v=0,v=1/(n-1)…v=1所對應(yīng)的n條曲線。

        3)將所有曲線按弦長等分成n-1段,將每條曲線對應(yīng)的n個等分點存入相應(yīng)的數(shù)組之中。

        4)按順序提取每個數(shù)組之中的第k個值,存入一個新的數(shù)組之中,構(gòu)成第k條NURBS曲線。

        為生成u向的曲線,首先在程序內(nèi)部生成v向的曲線,然后按弦等分獲得等分點,通過等分點構(gòu)造新的曲線。通過這一過程可使得生成的曲線在v向的間隔相對比較均勻,若是將u向的曲線也按弦長等分,即可形成比較均勻的網(wǎng)格。圖3為一自由曲面生成曲線的實例。

        圖3 自由曲面分解實例

        2.3 曲線投影

        ObjectARX提供的AcGeCurveSurfInt類是用來存儲一條3d曲線與曲面表面交集的數(shù)據(jù)。利用AcGeCurveSurfInt類的intPoint函數(shù)可以方便的返回AcGeSurface曲面與曲線的交點。將曲線分解成一系列的點,構(gòu)造新的曲線與曲面相交,得到一系列的交點構(gòu)造新的曲線,即可實現(xiàn)曲線投影至曲面。曲線投影的基本流程如下:

        1)選擇相應(yīng)的目標(biāo)曲線與曲面。將曲面轉(zhuǎn)換成可操作的AcGeSurface曲面。

        2)指定投影方向的向量a。

        3)將目標(biāo)曲線按u值等分成300個點。構(gòu)造通過等分點且方向向量為a的直線(AcGeLine3d類)。

        4)求出每條構(gòu)造直線與曲面的交點,將這些點按順序存入數(shù)組之中,生成一條樣條曲線,即為曲線在曲面上的投影曲線。

        當(dāng)需要的投影的目標(biāo)曲線相對較短時,在曲面上的投影曲線無法與曲面邊界相交。在進(jìn)行投影過程中,可選擇延長目標(biāo)曲線,保證投影的曲線與曲面邊界有交點。曲線延長的算法如下:

        1)將曲線等分成100點,并按順序存入數(shù)組ptarry。

        2)獲取曲線首尾兩點的切線斜率。曲線兩端沿切向方向往外延伸L/20(L為曲線的長度),生成新點pt1、pt2,分別存入數(shù)組ptarry1、ptarry2。

        3)將pt1、pt2投影至曲面。如果存在投影點則繼續(xù)(2)步驟。如果不存在投影點則停止延伸。

        4)假設(shè)最后停止延伸時的pt1= ptarry1[n],則上一點為ptarry1[n-1]。采用二分法不斷縮小兩點之間的區(qū)間,即可得到邊界交點pt1。同理可得到末端與邊界的交點pt2。

        5)通過曲線點的順序,將數(shù)組ptarry、ptarry1、ptarry2合并,構(gòu)造新的曲線投影至曲面。

        將投影至曲面上的第一條曲線分解為100個點,沿平移方向平移指定距離(平移方向為該點的切線方向與投影方向的叉積),構(gòu)成新的目標(biāo)曲線,投影至曲面。以新生成的曲線為目標(biāo)曲線,重復(fù)上述平移投影操作,可生成覆蓋整個曲面的一系列曲線。以一條直線為投影曲線,投影至一封閉曲面,將得到如圖4所示的曲線組。

        圖4 曲線投影至曲面

        3 網(wǎng)格劃分應(yīng)用

        一般自由曲面的網(wǎng)格劃分都是采用映射法。映射法原理簡單,將參數(shù)域的網(wǎng)格映射回物理空間,在曲面上生成網(wǎng)格。映射法雖然運算速度快,但易出現(xiàn)網(wǎng)格失真[8],如圖4所示。而獲得曲面上的曲線,將曲線按弦長等分,將所有的等分點按一定順序連接形成網(wǎng)格,包括形成三角形網(wǎng)格和四邊形網(wǎng)格,如圖5~圖7所示。

        圖6 曲線按弦等分生成三角形網(wǎng)格

        當(dāng)曲面尺寸發(fā)生較大的變化時,可以將曲線分成幾組,生成網(wǎng)格。各組曲線之間通過更改網(wǎng)格形式和拓?fù)潢P(guān)系進(jìn)行過渡,使網(wǎng)格劃分更均勻,如圖8所示。

        4 點陣形成曲面

        4.1 生成機制

        AutoCAD中只要提供一系列的控制元素,包括邊界曲線、邊界點、中部控制曲線和點,就可以通過旋轉(zhuǎn)、掃掠或放樣的方式生成自由曲面。其中放樣曲面的控制元素是經(jīng)向曲線和緯向曲線。通過合理的點陣即可形成一系列的曲線作為放樣曲面的控制元素,生成自由曲面?;玖鞒倘缦拢?/p>

        1)讀入控制點坐標(biāo),每行的控制點形成曲面經(jīng)線。將每條曲面經(jīng)線的首尾控制點分別存儲在對象標(biāo)識符容器。利用曲面經(jīng)線的首尾點,形成兩條曲面緯線并存入對象標(biāo)識符容器中。

        圖7 球面沿兩正交投影線投影形成網(wǎng)格

        圖8 曲面分段劃分網(wǎng)格

        2)聲明AcDbLoftedSurface類(放樣曲面類)對象。根據(jù)給定的經(jīng)向曲線與緯向曲線調(diào)用createLoftedSurface()函數(shù)形成空間放樣曲面。

        3)加厚曲面形成三維實體AcDb3dSolid,用getSubentPathsAtGsMarker()函數(shù)獲得子實體路徑。

        4)聲明AcBrFace類對象,調(diào)用set()函數(shù)指向子實體所代表的曲面。實體的第一個曲面即為用于擬合的曲面。

        5)調(diào)用getSurface()函數(shù)獲得實體相關(guān)的曲面對象,并對其進(jìn)行操作。

        通過三維點陣生成曲面,可以通過修改點陣中的具體點的數(shù)值來修改曲面的形狀。與手動繪制多條樣條曲線然后放樣形成曲面相比,要更加快捷,便于修改。

        4.2 風(fēng)荷載擬合

        在工程中,異形屋面的風(fēng)壓無法按荷載規(guī)范計算,需要進(jìn)行風(fēng)洞試驗。但風(fēng)洞試驗無法得到屋面所有節(jié)點的風(fēng)壓,一般假設(shè)風(fēng)壓測點處周圍節(jié)點的風(fēng)壓數(shù)值與該測點一致,或者使用三維插值[10]來擬合風(fēng)壓分布。

        自由曲面是通過三次樣條曲線擬合而成,三次樣條曲線又是通過一系列的點擬合而成。使用三維點陣生成自由曲面,利用其三次樣條插值的特性,可以用來模擬風(fēng)壓分布。以風(fēng)洞試驗的結(jié)果形成三維點陣(點的X、Y坐標(biāo)表示位置,Z坐標(biāo)表示風(fēng)壓大小),生成覆蓋整個屋面結(jié)構(gòu)自由曲面來擬合風(fēng)壓分布,得到所有節(jié)點的風(fēng)壓值。

        5 結(jié) 論

        基于AutoCAD2007開發(fā)平臺,使用ObjectARX技術(shù)對NURBS曲面進(jìn)行了二次開發(fā),主要結(jié)論如下:

        1)實現(xiàn)了提取自由曲面邊界線、生成自由曲面等分線、曲線投影至曲面等功能。

        2)實現(xiàn)了曲線按弦長等分功能,通過操作生成的覆蓋自由曲面的曲線組,可劃分出較好的網(wǎng)格。

        3)通過三維點陣生成自由曲面,不僅提高了自由曲面建模和修改的效率,也可用于處理風(fēng)洞試驗數(shù)據(jù)。

        參考文獻(xiàn):

        [1] 方貴勝, 王建軍.AutoCAD二次開發(fā)技術(shù)及其應(yīng)用研究[J].機床與液壓, 2007, 35(6): 186-212.

        [2] 袁文輝.AutoCAD中實體曲面邊界數(shù)據(jù)的提取及應(yīng)用[J].機械研究與應(yīng)用, 2001, 14(3): 44-48.

        [3] 許俊, 杜新喜, 孟仲永, 等.基于AutoCAD的空間復(fù)雜曲面結(jié)構(gòu)參數(shù)化建模[J].工業(yè)建筑, 2014, 44(S): 383-387.

        [4] Gao B, Hao C, Li T, et al.Grid Generation on Free-form Surface Using Guide Line Advancing and Surface Flattening Method [J].Advances in Engineering Software, 2017, 110(C):98-109.

        [5] 杜新喜.大跨空間結(jié)構(gòu)設(shè)計與分析[M].北京, 中國建筑工業(yè)出版社, 2014.

        [6] 施法中.計算機輔助幾何設(shè)計與非均勻有理B樣條[M].北京: 高等教育出版社, 2001.

        [7] 屈振生, 何恒利.ObjectARx應(yīng)用程序開發(fā)AcBr與AcGe類庫的應(yīng)用[J].計算機應(yīng)用, 2001(7), 66-67.

        [8] 丁慧.自由形態(tài)空間網(wǎng)格結(jié)構(gòu)的網(wǎng)格設(shè)計方法研究與實現(xiàn)[D].浙江大學(xué),2014.

        [9] 丁慧, 羅堯治.自由形態(tài)網(wǎng)殼結(jié)構(gòu)網(wǎng)格生成的等參線分割法[J].浙江大學(xué)學(xué)報(工學(xué)版), 2014, 48(10): 1795-1801, 1834.

        [10] 張慎, 陳興, 李霆.計算機技術(shù)在大跨度屋蓋結(jié)構(gòu)風(fēng)洞試驗數(shù)據(jù)處理中的應(yīng)用[J].建筑結(jié)構(gòu), 2011, 41(7): 106-110.

        猜你喜歡
        分點弦長樣條
        一元五次B樣條擬插值研究
        淺談圓錐曲線三類弦長問題
        來自低谷的你
        青年生活(2020年13期)2020-05-26 01:51:33
        定比分點之換底分點伸縮法
        弦長積分的極限性質(zhì)與不等式
        五禽戲“動作節(jié)分點”劃分與學(xué)練建議(三)
        健身氣功(2018年2期)2018-06-04 06:51:02
        弦長積分的極限性質(zhì)與不等式
        三次參數(shù)樣條在機床高速高精加工中的應(yīng)用
        三次樣條和二次刪除相輔助的WASD神經(jīng)網(wǎng)絡(luò)與日本人口預(yù)測
        軟件(2017年6期)2017-09-23 20:56:27
        基于樣條函數(shù)的高精度電子秤設(shè)計
        日韩精品一区二区亚洲专区| 91麻豆国产香蕉久久精品 | 亚洲国产欧美日韩欧美特级| 国产精品户露av在线户外直播 | 无遮高潮国产免费观看| 亚洲日本国产乱码va在线观看| 少妇人妻无一区二区三区| 国产婷婷色一区二区三区 | 久久综合狠狠综合久久综合88| 无码少妇一区二区三区芒果| 亚洲Va中文字幕无码毛片下载| 天堂网av在线免费看| 人妻丰满熟av无码区hd| 小sao货水好多真紧h视频 | 亚洲白白色无码在线观看| 水蜜桃视频在线观看免费18| 国产一区二区丰满熟女人妻| 精品人妻一区二区视频| 亚洲一区精品无码| 成全高清在线播放电视剧| 国产精品美女黄色av| av在线一区二区精品| 国产尤物精品视频| 国产精品女同一区二区| 国产一区二区三区av免费观看| 青青草视频在线观看网| 亚洲综合激情另类小说区| 日日噜噜夜夜狠狠久久无码区| 国产极品喷水视频| 亚洲成年国产一区二区| 99视频30精品视频在线观看 | 久久亚洲精彩无码天堂| 国产剧情av麻豆香蕉精品| 777精品久无码人妻蜜桃| 亚洲视频99| 美女狂喷白浆网站视频在线观看| 亚洲一区二区三区四区五区黄| 国产亚洲av人片在线观看| 亚洲伊人久久综合精品| 久久久亚洲熟妇熟女av| 无套内射蜜桃小视频|