• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Open CASCADE平臺的CAD系統(tǒng)開發(fā)研究

      2014-07-18 02:00:14丁華王忠
      西南科技大學學報 2014年2期
      關鍵詞:類庫曲面可視化

      丁華王忠

      (西南科技大學制造科學與工程學院 四川綿陽 621010)

      隨著科學技術的飛躍發(fā)展,CAD/CAM技術在沖壓工業(yè)中的應用將愈加廣泛,而我國目前幾乎還沒有專用于沖壓行業(yè)的商用CAD/CAM軟件。因而對該領域的CAD/CAM研究仍舊具有十分重要的意義。大部分CAD/CAM軟件都是在幾何內核的基礎上開發(fā)的[1]。目前,可用于開發(fā)CAD系統(tǒng)的底層幾何內核平臺有美國Spatial technology公司的ACIS、英國EDS公司的Parasolid平臺以及法國Matra Datavision公司的Open CASCADE等。如著名的Auto CAD軟件使用的開發(fā)平臺是ACIS,Unigraphics,Solid Works使用的是 Parasolid[2]。Open CASCADE 作為一款開源開發(fā)工具包,因其功能上的全面和強大,在業(yè)內也頗受好評,如HeeksCAD,MIDAS FX+等軟件均選用Open CASCADE作為開發(fā)平臺[3]??紤]到開源庫在開發(fā)研究中具有更大的優(yōu)越性,故選擇Open CASCADE作為底層開發(fā)工具。

      1 Open CASCADE平臺

      1.1 Open CASCADE 平臺簡介

      Open CASCADE是一款功能強大的軟件開發(fā)平臺,它包括3D曲面和實體建模組件、可視化組件、數(shù)據(jù)交換組件和適合快速開發(fā)的應用程序開發(fā)框架(OCAF-Open CASCADE Application Framework)。Open CASCADE技術可以用于數(shù)字仿真軟件的開發(fā),包括CAD,CAM,CAE,PDM 等應用程序。該技術是20世紀90年代中期出現(xiàn)的,已經被許多不同領域的商業(yè)客戶用來開發(fā)自己的軟件產品。

      Open CASCADE提供了一個巨大的類庫,可以幫助用戶進行快速開發(fā)。類庫實際上就是幾何內核,定義了圖形數(shù)據(jù)的存儲格式以及大量的圖形算法,包含了許多方便快速設計面向對象的功能類?;贠pen CASCADE的應用程序可以開發(fā)處理二維、三維幾何模型等其他目的的CAD系統(tǒng),如:制造、分析應用和仿真應用等。

      1.2 Open CASCADE 功能特點

      作為一款底層開發(fā)平臺,Open CASCADE提供了全面而強大的圖形運算類、快速開發(fā)應用框架OCAF、圖形顯示操作功能包等[4]。主要功能特點有:(1)支持多系統(tǒng)平臺開發(fā)。Open CASCADE支持Linux,Windows NT和 Sun Solaris等 3種操作系統(tǒng)[5]。(2)提供快速軟件應用框架,簡化用戶CAD應用的開發(fā)[6]。(3)提供基于建模數(shù)據(jù)分離可視化操作服務,便于圖形顯示的選擇和管理。(4)使用Open CASCADE平臺獨有的組件定義語言(CDLComponent Definition Language),既方便用戶使用,又為用戶自定義功能開發(fā)提供了規(guī)范。(5)提供豐富、全面的幾何運算功能,主要如下:支持幾何實體創(chuàng)建,如創(chuàng)建六面體、柱體、錐體等;支持自由曲面造型,如Bezier曲面、NURBS曲面等;支持幾何實體布爾操作,提供與、或、交集運算;支持基于特征的幾何運算,如倒角、偏置、脫殼、拔模等;支持常用幾何運算,如求相貫線、投影、曲面縫合等。

      1.3 Open CASCADE 幾何類庫

      Open CASCADE提供了由大量C++類文件構成的幾何類庫[7],不僅功能豐富,而且便于使用和開發(fā)。功能相關的類被組織成包,相關的包被歸類成不同的模塊。Open CASCADE類庫共包括六大模塊[8],如表 1 所示。

      表1 類庫的模塊和功能Table 1 Class library modules and their functions

      在六大類模塊中,與CAD系統(tǒng)幾何功能開發(fā)和數(shù)據(jù)處理關系尤為密切的模塊為基礎類、造型數(shù)據(jù)類、造型算法類以及數(shù)據(jù)轉換類等4個模塊。

      1.3.1 基礎類模塊

      基礎類模塊提供一系列基礎服務,如定義基本實體類型、根類、內存管理、異常處理、數(shù)組操作、數(shù)據(jù)文件保存基礎服務等。例如gp_Pnt類定義幾何點,gp_Dir類定義空間向量,TColgp_Array2OfPnt定義一維點數(shù)組,gp_Ax3定義三維坐標系,Materials_Color定義顏色屬性等等。

      1.3.2 造型數(shù)據(jù)類模塊

      該模塊提供了各類二維、三維幾何模型的數(shù)據(jù)結構定義。其中Geom2d類包集合了各種二維模型數(shù)據(jù)結構類,每種數(shù)據(jù)類名前冠以前綴Geom2d_,如Geom2d_BSplineCurve表示二維B樣條曲線;Geom類包中集合了各種三維模型數(shù)據(jù)結構類,每種數(shù)據(jù)類名前冠以前綴Geom_,如Geom_Curve定義了三維曲線,并提供各種相應的運算方法,包括求參數(shù)空間值范圍、曲線連續(xù)性、周期性等運算,其子類涵蓋圓錐、Bezier、B樣條、剪裁線等各種類型曲線;Geom_Surface類及其子類則定義了各種類型的空間曲面及相關運算方法;TopoDS_Shape類及其子類則定義了各種拓撲數(shù)據(jù)結構和運算方法。

      1.3.3 造型算法類模塊

      造型算法類模塊集合了大量的用于建模和幾何運算的邏輯算法類,按功能主要分為以下幾個部分:(1)幾何工具。提供二維曲線之間、三維曲線與曲面以及曲面與曲面之間的求交運算,點到曲線、點到曲面及曲線到曲面的投影計算,各類曲線、曲面基于約束的構造運算,曲線、曲面的插值運算等。主要類文件集中在 TKGeomAlgo,GeomAPI,GeomInt等類包中。(2)拓撲工具。提供拓撲型體局部和全局特性定義、幾何變換操作以及拓撲型體到NURBS幾何表達的轉換等運算。主要類文件集中在BRepBuilderAPI,GeomConvert,MAT 等類包中。(3)基本幾何構造。主要包括棱柱體、圓柱體、圓錐體和圓環(huán)體等拓撲模型的構造。該部分功能主要位于BRepPrimAPI類包中。(4)特征運算。提供基于已有拓撲型體上的形狀和機械特征運算,如增加圓柱體、拔模、拉伸、特征旋轉、管體等。主要的類包有BRep-Fill,BRepFeat,LocOpe等。(5)其他運算。造型算法模塊還提供有布爾操作、消除隱藏線、偏置面、脫殼、縫合、掃略、拓撲型體修補等運算。主要包括BRepAlgoAPI,HLRBRep,BRepOffsetAPI,ShapeFix 等類包。

      1.3.4 數(shù)據(jù)轉換類模塊

      該模塊為基于Open CASCADE平臺的軟件與各種其他CAD軟件之間的數(shù)據(jù)交換提供了轉換接口,確保軟件具有較好的協(xié)同工作能力。能夠實現(xiàn)對 IGES,STEP,STL,VRML等通用數(shù)據(jù)格式的兼容和相互轉換[9]。

      2 三維CAD系統(tǒng)的開發(fā)

      基于Open CASCADE平臺的CAD系統(tǒng)采用Visual Studio 2010編程平臺和C++編程語言來開發(fā)。軟件實現(xiàn)分為可視化界面搭建和CAD基礎功能開發(fā)兩個部分。

      2.1 可視化界面開發(fā)

      軟件框架和可視化窗口為用戶使用軟件提供了方便和直觀感受,是CAD系統(tǒng)很重要的一部分。Open CASCADE提供了MFC和Qt兩款GUI應用范例,可以直接作為軟件可視化開發(fā)基礎。Qt是一款基于C++程序設計語言的開源圖形用戶界面開發(fā)框架,它具有優(yōu)越的圖形視覺效果、豐富的應用接口、良好的封裝性和可擴展性,支持跨平臺開發(fā)。因此,選用Qt作為可視化界面開發(fā)框架具有較好的可操作性。

      在開發(fā)過程中,當程序調用了類庫的功能,就應該將相應的庫文件連接到工程屬性的附加依賴項中??梢暬缑婵蚣荛_發(fā)的部分重要原代碼如下:

      在可視化圖形界面開發(fā)的過程中,還會用到幾個重要的類??梢暬K的類AIS_InteractiveContext,V3d_View用來控制幾何對象的顯示模式、狀態(tài)、控制圖形視窗的尺寸,基礎模塊中的Quantity_Color用來設置幾何模型的顯示顏色。創(chuàng)建后的軟件界面如圖1所示。

      圖1 軟件可視化界面Fig.1 Software GUI

      2.2 基本幾何功能開發(fā)

      基本幾何功能是CAD軟件的核心模塊,它提供了必要的幾何模型生成和幾何運算操作。通過Open CASCADE類庫所提供的相關類和函數(shù)不僅能夠建立各種幾何形狀,還可以對這些幾何模型進行布爾運算、求相貫線以及投影等基本運算操作。

      2.2.1 輸入輸出(IO)設計

      IO接口可以使不同CAD/CAM軟件之間進行數(shù)據(jù)交換,為軟件間的協(xié)同工作提供可能。Open CASCADE在數(shù)據(jù)交換功能模塊提供了對STEP,IGES,STL,VRML等通用標準數(shù)據(jù)格式的輸入輸出支持及各數(shù)據(jù)格式之間的轉換功能。

      數(shù)據(jù)轉換模塊中,類IGESCAFControl_Reader,IGESCAFControl_Writer用于IGES文件和 Open CASCADE模型之間的轉換[10],實現(xiàn) CAD系統(tǒng)對IGES格式數(shù)據(jù)文件的輸入輸出功能;STEPCAFControl_Reader,STEPCAFControl_Writer類則用于實現(xiàn)STEP數(shù)據(jù)與Open CASCADE模型之間的轉換,實現(xiàn)CAD軟件對STEP格式數(shù)據(jù)文件的輸入輸出功能;類StlAPI_Reader和StlAPI_Writer用于實現(xiàn)STL數(shù)據(jù)與OCC模型之間的轉換,實現(xiàn)CAD軟件對STL格式數(shù)據(jù)文件的輸入輸出功能。

      此外,類BRepTools中的Read和Write函數(shù)可以實現(xiàn)對BREP格式數(shù)據(jù)的輸入輸出;類VrmlAPI_Writer可以實現(xiàn)OCC模型數(shù)據(jù)向VRML數(shù)據(jù)格式的轉換。

      2.2.2 構造功能開發(fā)

      Open CASCADE提供了非常豐富的幾何構造功能類,用于實現(xiàn)不同類型的曲線、曲面構造功能。例如,類包 Geom,GC,gce,GeomAPI,BRepPrimAPI 提供了數(shù)10種幾何構造功能函數(shù)。下面是部分構造類使用介紹:

      類 Geom_Circle,GC_MakeCircle,gce_MakeCirc均可用于繪制圓;Geom_Hyperbola,GC_MakeHyperbola用于繪制雙曲線;Geom_OffsetCurve用于繪制偏置于某一曲線一定距離的偏置曲線;Geom_TrimmedCurve用于繪制某一曲線的特定參數(shù)區(qū)域的一段剪裁曲線;Geom_BezierCurve,Geom_BezierCurve分別用于繪制 Bezier曲線,曲面;Geom_BsplineCurve,Geom_BSplineSurface則分別用于繪制有理B樣條曲線曲面;GeomAPI_PointsToBSpline用于離散點擬合B樣條曲面;BRepPrimAPI_MakeBox用于創(chuàng)建箱體。

      例如,可以用類GeomAPI_PointsToBSpline提供的功能構建一個B樣條曲面:

      TColgp_Array2OfPnt&Points;//用于構建B樣條曲面的型值點

      GeomAPI_PointsToBSplineSurface

      *PntToBSurf=new

      GeomAPI_PointsToBSplineSurface();//定義一個GeomAPI_PointsToBSplineSurface類型指針

      PntToBSurf- > Interpolate(Points);//將型值點賦給PntToBSurf進行擬合運算

      Handle(Geom_BSplineSurface)BSurf=Pnt-ToBSurf->Surface();//構建出一個 B樣條曲面BSurf

      圖2所示即為用上述方法構造出的一個B樣條曲面。

      此外,該部分還進行了掃略曲面、旋轉曲面等功能的開發(fā)工作。圖3為曲線曲面構造功能應用的幾個實例。

      圖2 構造B樣條曲面Fig.2 Modeling of B-spline surface

      圖3 幾何建模應用實例Fig.3 The examples of geometry modeling

      2.2.3 幾何運算功能開發(fā)

      幾何運算功能主要是基于幾何實體的運算操作,也是CAD軟件不可或缺的功能模塊之一。Open CASCADE也提供許多功能類用于實現(xiàn)幾何運算操作,比如求交、投影等。以下是對部分幾何運算類的開發(fā)使用介紹:

      GeomAPI_IntCS,GeomAPI_IntSS用來實現(xiàn)曲線與曲面之間以及曲面與曲面之間的求交運算,可以得到交點或者交線;GeomAPI_ProjectPointOnC_urve,GeomAPI_ProjectPointOnSurf可以用來計算點到曲面以及點到曲面的投影運算,得到相應的投影點;類BRepAlgoAPI_BooleanOperation及其子類提供了幾何體間的與集、或集、交集等布爾運算功能;BRep-FilletAPI_MakeFillet,BRepFilletAPI_Ma_keChamfer提供了倒直角和倒圓角功能;gp_Trsf提供了旋轉、鏡像、縮放、比例變換等功能。類Rep_Tool可以用于實現(xiàn)不同數(shù)據(jù)類型之間的轉換操作。

      圖4所示,為幾何運算功能的幾個應用實例。通過對幾何功能模塊以及可視化界面的集成和優(yōu)化,完成CAD軟件的整體開發(fā)。圖5為通過該方法開發(fā)出的CAD系統(tǒng)的部分應用實例,上圖為使用旋轉、雙線性曲面等三維構造功能生成的導彈模型,下圖為使用旋轉、倒角等三維造型和求余布爾運算等功能繪制的階梯軸零件。

      圖4 幾何運算應用實例Fig.4 The examples of geometric algorithms

      圖5 應用實例Fig.5 Application demonstrations

      3 結論

      本文基于開源幾何內核庫Open CASCADE,主要做了以下幾點研究:(1)研究了該開源幾何內核庫的體系結構、功能特點以及功能庫的使用方法;(2)探討了基于該平臺開發(fā)CAD軟件的一般方法和重要步驟,并著重介紹了標準數(shù)據(jù)格式文件的輸入輸出、三維幾何模型的構建、求交和投影等幾何運算等功能實現(xiàn),為同類開發(fā)提供了參考;(3)通過VC++編程開發(fā)了一款CAD軟件,使用該軟件可以實現(xiàn)復雜幾何模型的構建、圖形顯示、輸入輸出等功能,驗證了基于該平臺開發(fā)CAD系統(tǒng)的可行性。

      [1]鄭盈盈,周來水,孫金虎.基于Open CASADE的 DXF接口研究[J].中國制造業(yè)信息化,2010,(1):45-47.

      [2]苑國強,張淵.采用open CASCADE的三維建模平臺的開發(fā)研究[J].工程圖學學報,2008,(4):146-149.

      [3]Open CASCADE TECKNOLOGY.Screenshots[EB/OL].http://www.opencascade.org/showroom/screenshots,2013.

      [4]王玥,付梅艷,陳再高,等.用于全電磁粒子模擬的復雜建模及網格生成技術[J].強激光與粒子束,2011,23(11):2994-2996.

      [5]馬鐵利.機械CAD幾何建模核心技術及其發(fā)展趨勢[J].計算機工程,2003,(11):2-3.

      [6]Open CASCADE TECKNOLOGY.Object Libraries Application Framework User’s Guide[EB/OL].http://www.opencascade.org,2013.

      [7]MOUNIR H,NIZAR A,ABDELMAJID B.CAD model simplification using a removing details and merging faces technique for a FEM simulation[J].Journal of Mechanical ScienceandTechnology ,2012,26(11):3539-3548.

      [8]李紹珍,張淵.基于Open CASCADE的虛擬三維建模平臺的開發(fā)研究[J].第一屆中國圖形大會,2007,(8):267-268.

      [9]張淵.基于Open CASCADE的虛擬三維建模平臺的開發(fā)[M].濟南:山東大學,2007.61-62.

      [10]陳宏宇,劉子建,艾彥迪.基于Open CASCADE的“一元四體”模型實現(xiàn)技術研究[J].計算機工程與應用,2012,34(3):102 -104.

      猜你喜歡
      類庫曲面可視化
      基于CiteSpace的足三里穴研究可視化分析
      基于Power BI的油田注水運行動態(tài)分析與可視化展示
      云南化工(2021年8期)2021-12-21 06:37:54
      基于CGAL和OpenGL的海底地形三維可視化
      用Java編寫客戶機/服務器端應用程序
      “融評”:黨媒評論的可視化創(chuàng)新
      傳媒評論(2019年4期)2019-07-13 05:49:14
      相交移動超曲面的亞純映射的唯一性
      Python在數(shù)據(jù)可視化中的應用
      圓環(huán)上的覆蓋曲面不等式及其應用
      數(shù)據(jù)結構課程教學改革方案和應用效果
      軟件工程(2017年12期)2018-01-29 17:35:55
      數(shù)據(jù)結構可視化類庫的設計與實現(xiàn)
      洪湖市| 内江市| 新邵县| 枣庄市| 平定县| 徐水县| 赤峰市| 陵水| 图木舒克市| 汝南县| 鄯善县| 通渭县| 海原县| 定西市| 华池县| 福安市| 宽城| 南溪县| 乌鲁木齐市| 邻水| 辽阳市| 濮阳县| 宜君县| 宁波市| 琼海市| 赤城县| 伊宁县| 滁州市| 桃源县| 德庆县| 阿克陶县| 西藏| 三门峡市| 乐陵市| 平安县| 交城县| 本溪市| 东方市| 屏南县| 信丰县| 本溪|