999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

三維線框模型生成全參數化模型方法研究

2021-03-23 10:40:36崔進舉何麗絲王德禹
實驗室研究與探索 2021年2期
關鍵詞:定義模型

曹 榮,崔進舉,何麗絲,王德禹

(上海交通大學船舶海洋與建筑工程學院,上海 200240)

0 引言

在船舶行業數字化設計與數字化制造的研究熱潮,船舶行業逐漸引入三維設計手段,相比傳統的二維平面設計,三維手段在總體布置設計過程中更加直觀[1-3],無論是早期的方案論證,還是工廠的生產設計,國內外開展了大量的應用研究和實踐[4-5]。船舶設計技術以及船舶CAD/ CAM/PLM 軟件系統的深入應用,直接關系到船舶設計水平、建造水平的提高,也關系到整個造船行業競爭力的提高[6]。其中的代表如Tribon、NAPA、CATIA(Computer Aided Tri-Dimensional Interface Application)、SPD(Ship Product Design)等,已經在船舶領域廣泛被應用[7]。CATIA作為一款在航空、汽車領域運用非常廣泛的產品全生命周期平臺[8],目前船舶制造領域也已經廣泛使用該軟件[9]。船舶設計院和各大船廠對CATIA 平臺的研究仍處于探索與初步運用階段。原先基于線框模型創建的母型船的模型如何轉化到三維全參數化模型,實現原先結構知識儲備的復用,成了亟待解決的問題。由于構成線框模型的主要元素是幾何相關的點線面,而全參數模型是由參數規格書所驅動的模型,兩類平臺數據性質截然不同。然而無論哪個平臺在進行船體結構建模過程中,都需要定義板及筋的厚度/規格、材質、位置及邊界信息等屬性。CATIA 平臺為了滿足用戶個性化的功能定制需求,開放了大量二次開發接口[10],為用戶功能定制提供了良好的理論基礎和二次開發環境[11]。因此基于SPD的線框模型及屬性數據,具備了高效構建CATIA全參數化模型的條件。

CATIA 是法國達索公司的產品開發旗艦解決方案,廣泛應用于航空航天、汽車制造、造船、機械制造等行業,但在船舶行業的引用起步較晚[12]。在船舶詳細設計過程中主要用到CATIA V6 SFD(Structure Function Design)基本結構設計模塊。SFD模塊運用的是全參數化建模方法,即在創建零件時,將零件的幾何信息、屬性信息,以參數的形式在交互界面中定義完善,CATIA平臺即可通過這些參數形成三維模型。另外除了交互界面定義參數的方法,還可利用CAA(Component Application Architecture)二次開發工具來讀寫參數。其中的CATISfdUseFunctionFactory 工廠類中的CreatePanel()方法可以創建SFD模塊中的板架;CATIStrUseStiffenerMngt類中的AddStiffener()方法可以創建板架上的筋;CATIStrUseOpeningMngt 類中的AddOpening()方法可以創建板架上的開孔。因此CAA接口可以滿足高效構建船體結構模型的先決條件。

SPD作為國內自主開發的船舶設計軟件,在國內以滬東中華為代表的船舶企業中廣泛使用,系統模塊涵蓋船體、管系、風管、電氣、支架、鐵舾裝等各專業[13]。SPD系統是基于OpenGL 圖形庫進行開發的造船CAD設計軟件,能滿足船體結構、管系、風管、電氣、鐵舾件、涂裝等專業三維全數字化設計的需求。通過三維模型對船舶產品進行性能、結構強度、工藝合理性和制造可行性分析[14]。SPD 平臺中的三維模型正是線框模型[15]。線框模型是用直線、圓、圓弧等空間棱線表達三維物體。SPD的模型以DXF的格式導出。DXF文件是CAD軟件交換數據的一種文件格式,在各大CAD平臺普遍使用。SPD模型屬性以XML的格式導出。XML 文件易于在任何應用程序中讀寫數據,XML是目前各程序間數據交換的公共語言[16]。本文基于滬東中華SPD 設計軟件輸出的數據,利用CAA二次開發技術,實現了高效的船體結構三維線框模型到全參數化模型轉化。

1 導入及讀取數據方法

SPD平臺幾何模型支持導出dxf 格式,因此需要基于dxf中的三角面片模型重構幾何面片模型,再以面片模型為支持面,構建Catia 平臺SFD 模型。各零件所需的屬性參數基于SPD平臺輸出的xml文件,因此需要逐個匹配每個零件的片面模型和屬性文件。不同零件的創建方法不同,本文利用CAA 二次開發手段,分別自動構建了板、開孔及型鋼等模型,其主要流程如圖1 所示。

圖1 模型轉化流程圖

1.1 導入線框模型

通過CATIA軟件自帶的導入功能,將線框模型數據dxf文件導入CATIA 平臺,可得到初步的三維線框模型。此模型由三角面片構成,且僅僅保留了原模型的幾何屬性,正確地表達了各零件的空間位置和幾何形狀。導入線框模型后進行了一系列操作,首先需要處理的問題是線框模型是立體幾何零件,即零件是有厚度的,而CATIA 平臺SFG 模型是無厚度的面片模型,因此僅僅需要保留各零件理論面上的面片,去除其他面片。通過輸入零件理論面,例如肋位及各平臺位置,運用二次開發的工具,計算面片到理論面的距離,若距離小于1 mm 即可判定此面片為零件的理論面,刪除非理論面上的面片。其次運用二次開發的工具,通過合并同一平面內且相交的三角面片,得到一整塊面片模型。最后去除面片上的開孔,提取面片的輪廓線,通過填充得到無開孔的零件面片,面片處理效果如圖2 所示。

圖2 面片處理效果

1.2 讀取屬性數據

全參數化模型構建時所需要定義的零件屬性數據是來源于xml文件。通過讀取xml 文件,獲取零件的名稱、材質、類型,板厚或規格等信息。在CAITA平臺上運用CAA接口中的CATIDOMDocument()類庫中的成員函數,可高效地讀取xml 文件中的屬性數據。圖3 是模型中一個零件的屬性xml文件。

圖中:主要關鍵字分別代表以下含義:“belong”,零件所屬板架;“Side”,零件所在整船的空間位置,M表示靠近CL的位置;“weight”,質量,單位g;“COG”,重心位置;“material”,材質;“category”,零件類型;“thickness”,厚度;“section”,型鋼規格。

圖3 xml文件中的零件屬性

1.3 匹配模型與屬性數據

轉化參數化模型的前提是將導入的線寬模型和參數數據相匹配。本文的方法是通過獲取線框模型組成的零件重量重心數據,與屬性文件中的重量重心屬性相匹配。

實施方法:

(1)運用CATIPartRequest 類庫的成員函數GetDirectBodies()獲得模型中所有零件模型列表。再遍歷面片列表,運用CATIMeasurableInContext 類庫的成員函數GetCOG(),獲取各模型的重心坐標數據,例如X=211 685.1,Y=-6 549.9,Z=8 312.1。

(2)運用CATIDOMElement 類庫中的成員函數GetElementsByTagName()獲取ATTRIBUTE標簽,再利用函數GetNodeValue()獲得COG節點下得重心數據,例如獲取VALUE=“211 685.0,-6 550.0,831 3.0”,即X=211 685.0,Y=-6 550.0,Z=8 313.0。

遍歷模型中所有零件重心數據與屬性數據,進行一一比較。若X,Y,Z 3 個數據相差都小于20 mm,判斷為匹配成功,可以確定該零件模型所需要賦予的屬性。在匹配過程中會存在部分面片沒有合適的數據匹配,特別是型鋼,因為端切影響了零件面片的重心位置,但輸出的屬性數據卻未考慮其影響。所以我們在用較小的差值20 進行第1 輪匹配后,放大差值到50或100 對未匹配成功的面片進行第2 輪或第3 輪匹配。由于船舶上的絕大部分型材間的重心距離都在300 mm 以上,這樣的匹配方法可以保證一定的準確率。

2 轉化生成板模型方法

2.1 轉化生成板模型

在構建船體板架模型時,主要是定義板的類型、位置、邊界、板厚、材質等信息,CATIA 3DE 平臺也不例外。本文在轉化板的過程中,基于已導入的三維線框模型及匹配所得的零件屬性數據,利用CAA接口生成板的參數化模型,并逐步定義類型、定位、邊界信息、板厚材質等屬性。板模型轉化效果如圖4 所示。

圖4 板模型轉化效果

實施方法:

(1)生成板對象。首先需要在CATIA 平臺中的新建參數化的板架模型對象。運用CAA 接口在SFG模塊中創建一個新對象,運用CATISfdUseFunctionFactory->CreatePanel()即可新建板架對象。

(2)生成板的屬性。①零件類型信息:板架的類型一般可分為內底板、甲板、平臺板、肋板、橫艙壁、縱艙壁等。本文中通過判斷幾何的空間位置,將面區分為X、Y、Z 3 個方向,分別對應的零件類型為“TransversePanel”“LongitudinalPanel”“DeckPanel”。運用CAA 接口CATIStrUseCategoryMngt->SetCategory(),即可定義零件類型信息。

②支持面信息:通常構建板是以無限大的平面為支持面,通過定義邊界條件,圍出一個有限大的面。本文的構建技術是以導入的面片為支持面,在不定義邊界信息的情況下,即可得到一個等同于面片大小的板模型。運用CAA 接口CATIStrUsePanelSurf->SetSupport(),即可定義板的支持面信息。

③厚度信息:讀取xml屬性文件中的”Thickness”節點,可以快速準確的獲取厚度信息。利用CAA接口CATIStrUsePlateExtrusionMngt-> GetThickness()->ValuateReal(),即可定義板的厚度信息。

④板厚朝向信息:船體結構板架厚度朝向有一定的設計要求,例如外板一律朝外,甲板一律朝上,但橫艙壁、縱艙壁的朝向就需要依據船型而定。本文根據本船型的理論線數據圖,將各個橫向縱向位置上的板厚朝向做了數據統計。例如X=FR95,FR100,FR105…或X=100 800,104 800,108 800…的橫艙壁,厚度方向朝首,其余的朝尾。所以在定義橫艙壁的時候,將其支持面的坐標數據與之做比較,即可得到該橫艙壁的板厚朝向信息。

⑤材質信息:讀取xml 屬性文件中的”Material”節點,可以快速準確的獲取厚度信息。利用CAA接口CATIStrUseMaterialMngt->SetMaterial(),即可快捷的定義板的材質信息。

⑥邊界信息:在零件屬性文件中并不包含板的邊界信息,因此采用通過判斷面片間的幾何關系來篩選板的邊界信息。本文的方法是遍歷所有不在同一方向上的零件,例如遍歷X 方向上的零件,再遍歷Y、Z 方向上的零件,使其兩兩相交,判斷相交結果是否是線,若得到交線,則量取交線的長度,當交線長度大于500 mm時,即可確定此面片為板的邊界條件。運用CATIStrUsePanelLimitMngt->SetLimitingObject()接口將其定義為邊界對象。若其返回值是True,說明可作為邊界,則繼續遍歷尋找下一個邊界。

⑦替換支持面:通常板的支持面是一個平面plane,整檔位置上板的支持面是源自坐標系中的平面,而上述方法中基于導入線框模型所創建的板,它的支持面是導入的面片surface,我們需要將位于整檔位置上板的支持面片替換成為坐標系中的平面。具體方法是運用CAASfdNavigationServices::GetSRSPlane()方法獲取坐標系中的XYZ 平面列表。通過CATISfdUsePanel->GetCanonicSupport()獲取板的支持面,判斷平面間的距離,若距離小于1 cm,通過CATIStrUsePanelSurf->SetSupport()方法將板的支持面替換為平面。

2.2 轉化生成開孔特征

CATIA平臺上構建結構開孔有3 種方式:①標準數據(Standard)開孔。選擇開孔類型,定義開孔特征及幾何位置;②草圖(Sketch)開孔。利用草圖功能畫出開孔樣式,形成開孔;③貫穿對象(3D Object)開孔。以貫穿板的對象作為輸入,生成相貫線用于開孔。

本文采用第3 種方法,貫穿對象(3D Object)開孔。生成開孔效果如圖5 所示。基于輸入數據結合CAA開發,可以實現自動化高效創建開孔。3D Object開孔需要一個前提,即獲取貫穿對象。本文的方法是從線框模型中提取開孔線,將開孔線沿垂直面片方向拉伸,可得到所需的3D Object。

圖5 開孔轉化效果圖

手工操作的方法是運用Extract功能,點選孔的邊緣,選擇Point Continuity選項,可得到一條封閉的開孔線,再運用Extrude 功能,Direction 為面片本身,Dimension=50mm,便可得到一個貫穿面片的3D Object。一個分段有幾十或上百個開孔,手工操作效率低。利用CAA二次開發相關的接口可以實現批量處理。

實施方法:

(1)通過接口CATIGSMUseFactory->CreateBoundary()獲取面片上所有閉合的連續曲線,利用CATIGSMUseFactory-> CreateExtractSolide()提取得到特征曲線,結果至少會有一根,因為板的輪廓線也是一條閉合的連續曲線。

(2)運用CATIMeasurableCurve->GetLength()獲得曲線的長度,去除周長最大的曲線(因為周長最大的閉合曲線是輪廓線),其余的便是開孔線。

(3)CATIGSMUseFactory->CreateExtrude()拉伸開孔線得到所需的3D Object。

(4)運用CAA 接口CATIStrUseOpeningMngt->AddOpening()命令在板架上新建開孔,再運用接口CATIStrUseOpening3DObject-> SetIntersectingElement()定義貫穿對象,即可實現批量開孔。

3 轉化生成型鋼模型

CATIA平臺構建型鋼模型時,需要選擇對應的安裝板架,定義其類型,支持面信息,邊界信息及規格、材質等屬性信息。生成的型鋼其支持面與對應的板架相交,生成筋的軌跡線(Unlimited Trace Line),定義兩個邊界信息將軌跡線框定出特定長度的軌跡線(Limited Trace Line),即型鋼的設計長度。若選擇的支持面與板架無法相交形成交線,則無法創建此型材。因此創建型材關鍵是定義支持面和定義邊界信息。本模型構建技術基于型材屬性數據,構建繼承原型材模型的屬性。型材轉化效果如圖6 所示。

實施方法:

(1)創建型材。需要選擇型材所在的板架用于創建型材。通過接口CATIStrUseStiffenerMngt ->AddStiffener(),即可新建型材對象。

圖6 型鋼轉化效果圖

(2)定義支持面。SPD 輸出的筋的幾何面,由于原模型定義了端切,面片幾何含有開孔或者是留空削斜的幾何特征。若直接利用面片與板架相交,所得的交線會比實際設計型鋼模型短,導致模型錯誤。因此本文采用的方法將原幾何面以重心為基點放大1.2~1.4 倍,以放大的面片與板架的交線為型鋼支持面,通過接口CATIStrUseProfileSurfSurf->SetSecondSurface(),將其設置為型材支持面。

(3)定義邊界。通過交互式操作定義型材的邊界是輕而易舉的。若運用CAA 高效的為筋定義邊界需要程序篩選出其邊界對象。本文將型材的邊界對象分為兩類。一類是自身所在板架上的筋,另一類是其他板架。分別遍歷這個兩類對象,通過幾何關系比較計算,篩選出合適的邊界對象,利用接口CATIStrUseProfileLimitMngt->SetLimitingObject()將其定義為型材邊界對象。

4 結語

本文基于SPD設計平臺中的輸出的dxf模型文件及xml屬性數據,運用CATIA CAA 二次開發工具,高效處理三角面片等到面片模型,讀取xml屬性文件,將面片模型與屬性文件相匹配,利用軟件工具自動轉化生成板架、型材及開孔,最終生成了CATIA 3DE 平臺中的全參數化模型。以橫艙壁分段為例,驗證上述模型構建技術與二次開發工具的有效性。運用此技術方法,實現原有線框模型數據到CATIA 平臺的轉移,新模型繼承了原模型屬性及幾何信息,節省了大量的重新建模工作,也規避了二次建模造成的數據差錯。

猜你喜歡
定義模型
一半模型
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
重要模型『一線三等角』
定義“風格”
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
山的定義
公務員文萃(2013年5期)2013-03-11 16:08:37
主站蜘蛛池模板: 国产乱论视频| 亚洲综合极品香蕉久久网| 99精品免费欧美成人小视频| 久久香蕉国产线| 色偷偷av男人的天堂不卡| 97久久超碰极品视觉盛宴| 亚洲最新网址| 91一级片| 99精品在线看| 久久中文字幕2021精品| 又大又硬又爽免费视频| 国产精品久久久久久搜索| 又大又硬又爽免费视频| 国产精品第5页| 人妻一本久道久久综合久久鬼色| 亚洲码一区二区三区| 成人免费视频一区| 欧美三级不卡在线观看视频| 精品91视频| 综1合AV在线播放| 91娇喘视频| 国内精品久久久久久久久久影视 | 2021国产v亚洲v天堂无码| 国产欧美日韩va另类在线播放| 日韩精品亚洲一区中文字幕| 老司机精品一区在线视频 | 91亚洲视频下载| 亚洲一区二区在线无码| 亚洲国产中文精品va在线播放 | 午夜精品福利影院| 久久伊人久久亚洲综合| 欧美一级高清视频在线播放| 怡春院欧美一区二区三区免费| 欧美视频在线观看第一页| 国产精品hd在线播放| 成人在线天堂| 日韩无码真实干出血视频| 在线播放国产一区| 五月激情婷婷综合| av在线手机播放| 免费国产在线精品一区| 久热这里只有精品6| 无码精品一区二区久久久| 国内丰满少妇猛烈精品播| 毛片网站在线看| 国产网站在线看| 色综合综合网| 国产成人精品亚洲日本对白优播| 青青青视频蜜桃一区二区| 国产精品毛片一区视频播| 国产人人干| 99国产精品免费观看视频| 在线永久免费观看的毛片| 久久精品人人做人人综合试看| 在线观看亚洲人成网站| 成人精品午夜福利在线播放| 97超级碰碰碰碰精品| 99这里精品| 国产免费人成视频网| 99视频在线看| 国产精品性| 97国产成人无码精品久久久| 国产在线欧美| 在线人成精品免费视频| 国产精品七七在线播放| 国产欧美日韩视频怡春院| 国产激情无码一区二区APP | 国产综合欧美| 日日噜噜夜夜狠狠视频| 91无码国产视频| 日本一本在线视频| 日韩高清成人| 成人小视频网| 十八禁美女裸体网站| 色婷婷色丁香| 欧美日韩亚洲国产主播第一区| 国产成人无码综合亚洲日韩不卡| 无码内射在线| 欧美精品色视频| 国产第一页屁屁影院| 91美女视频在线观看| 尤物国产在线|