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

        ?

        基于OpenCASCADE 內核與OpenSceneGraph 渲染引擎的三維網格劃分平臺研究

        2021-11-15 09:03:32譚鳳
        魅力中國 2021年44期
        關鍵詞:二次開發(fā)內核開源

        譚鳳

        (湖南科技職業(yè)學院,湖南 長沙 410004)

        一、前言

        目前的主流 CAD 軟件都是建立在造型內核的基礎上開發(fā)的,例如AutoCAD、CATIA 采用的內核是 ACIS,UG、SolidWorks、SolidEdge 和ANSYS 的內核是 Parasolid,而國內的 CAXA 系統(tǒng)對上述兩種內核都有應用[1]。OpenCASCADE(簡稱OCC)也是一種造型內核,其實際上就是一個類庫,定義了圖形數據的存儲格式以及大量的圖形算法。OCC 是法國MDTV(Matra Datavision)公司開發(fā)的開源 3D 幾何造型引擎,是一個先進的、三維的、邊界表示(B-Rep)為主的幾何造型工具包,是由 C++開發(fā)設計基于OpenGL 的專用快速開發(fā)的 CAD 類庫[2]。

        OCC 主要用于開發(fā)二維和三維幾何建模應用程序,包括通用的或專業(yè)的計算機輔助設計CAD 系統(tǒng)、制造或分析領域的應用程序、仿真應用程序或圖形演示工具。OCC 通過有機組織的C++庫文件提供了六個模塊,可視化模塊作為OCC 的核心部分,是可視化技術的具體體現(xiàn)。OCC 源代碼完全開放,所以無版權問題,適合課題研究使用,并且擁有持續(xù)的維護團隊,在應用中具有較大的優(yōu)勢。OpenCASCADE 技術可以用于包括 CAD/CAM/CAE等方面的眾多三維應用程序的開發(fā)。從九十年代中期開始,己經被許多不同領域的商業(yè)公司用來開發(fā)自己的軟件產品[3]。

        OpenSceneGraph(簡稱OSG)是一個開源的高性能三維圖像渲染工具包,其完全是由標準C++程序和OpenGL 編寫,充分利用STL 和設計模式,發(fā)揮開源開發(fā)模型的優(yōu)勢來提供一個免費的開發(fā)庫,并且重點集中在用戶的需求上,一般用于視覺仿真、游戲、虛擬現(xiàn)實、科學可視化和建模等領域[4]。隨著使用一個全特性的場景圖OSG的關鍵優(yōu)勢在于它的性能、可擴展性、可移植性和快速開發(fā),目前已經有很多成功的基于OSG 的應用,比如景區(qū)模擬系統(tǒng)[5]、衛(wèi)星可視化仿真系統(tǒng)[6]、林地可視化系統(tǒng)[7]、校園可視化系統(tǒng)[8]等,效果不亞于商業(yè)視景渲染軟件。

        CAD/CAE 平臺在國內更多的是基于二次開發(fā),比如AutoCAD 二次開發(fā),UG 二次開發(fā),REVIT 二次開發(fā)等,這些開發(fā)都是依賴于特定的平臺,受限很多。而且CAD/CAE 軟件售價高昂,成套的CAD/CAE 軟件動輒就是百萬價格,很多軟件使用者無力承擔,如果能夠針對中小企業(yè)提供一個精簡高效的CAD/CAE 軟件,并根據具體需求增加特定功能,這有利于節(jié)省成本,提高工作效率。

        OCC 是一個開源的幾何建模庫,利用這個幾何建模庫不僅能建立復雜的幾何模型而且該庫還支持大多數的主流3D 文件格式,直接使用OCC 開源內核能快速的實現(xiàn)高效建模和模型文件的解析;而OSG 是一個開源的三維渲染引擎,具備高性能、跨平臺、快速開發(fā)等特點,對于大規(guī)模渲染來說,OSG 有比較優(yōu)勢;在三維網格劃分算法的選擇上,采用了Netgen 與Gmsh開源網格算法,二者皆是在三角形和四面體劃分領域具備極高的價格,其網格質量能夠達到商業(yè)水準,因此通過對Netgen 與Gmsh 增加部分接口能快速的實現(xiàn)網格劃分。

        二、系統(tǒng)實現(xiàn)設計流程

        本系統(tǒng)主要分為四個大類:數據驅動采用OCC,對讀取的模型文件數據用OCC 解析并保存;模型渲染與交互采用OSG,通過對OCC 數據進行三角化轉換為OSG 幾何數據,進而在OSG 中可視化;系統(tǒng)界面使用QT5,通過將OSG 嵌入QT 中實現(xiàn)一個可視化、可交互的三維空間;網格采用Netgen 與Gmsh,通過將Netgen 與Gmsh 配合OCC 進行重新編譯,并且新增以OCC 數據支持類型的接口,方便直接對模型進行劃分。系統(tǒng)設計流程如下圖1 所示:

        通過讀取STEP、IGS 文件,利用OCC 的OCAF 進行解析,能獲得模型文件的裝配體結構,系統(tǒng)將這些數據進行存儲;利用OSG 對這些存儲的數據進行三角化處理后,用OSG 進行顯示;在網格劃分階段,通過交互方式選中一個或者多個模型零件后,設置網格參數后對這些零件進行網格劃分,并用OSG 顯示結果。

        三、系統(tǒng)詳細設計

        (一)OCC 數據驅動

        本系統(tǒng)利用OCC 接口直接讀取STEP、IGS 文件后獲取模型數據,這些數據主要包括:

        表1 模型數據類型說明

        (二)OSG 顯示與交互

        OSG 顯示模型主要是通過三角化操作實現(xiàn)的,然后獲取所有的三角形即可,因此OSG 接口數據主要有:

        表2 接口數據類型說明

        (三)網格劃分與顯示

        劃分網格采用Netgen 與Gmsh 開源網格劃分算法,對其進行集成時需要新增或者修改接口,例如在Netgen 就沒有直接以模型數據為接口參數的API,因此需要自行新增以模型數據為參數的接口設計,Gmsh 也是類似的,本系統(tǒng)新增了2 個接口,通過將TopoDS_Shape 數據傳作為參數輸入,得到網格劃分結果,接口描述如下:

        表3 接口函數說明

        Netgen 網格劃分參數設置如下:

        表4 Netgen 網格劃分參數說明

        Gmsh 網格劃分參數設置如下:

        表5 Gmsh 網格劃分參數說明

        四、系統(tǒng)實現(xiàn)效果

        本系統(tǒng)命名為OCCAD,采用QT 多文檔的設計框架,初始化效果如下圖:

        (一)讀取模型文件的效果如下:

        讀取文件格式目前支持STEP、IGS 格式,模型顯示在OSG 場景中,左側的模型裝配體結構利用OCC 的XCAF 框架解析,通過遍歷方式將零件按照樹形結構存儲,再利用qt 樹形控件顯示出來。

        (二)模型裝配體樹顯示

        利用OCC 的XCAF 實現(xiàn)對模型文件的裝配遍歷,并根據模型裝配直接的相互關系,構建一顆樹,效果如下圖所示:

        (三)視角切換與模式切換

        具備基本的視角切換,支持六視圖操作與手勢操作,支持三種模型顯示模型切換:線框模式、實體模式、實體線框模式。效果如下圖:

        (四)Netgen 網格劃分

        編譯帶OCC 選項的Netgen C++動態(tài)庫,同時新增一個以模型為參數的接口Ng_OCC_Load_Shape(TopoDS_Shape &shape)實現(xiàn)針對交互選擇的特定子模型進行網格劃分,通過設置參數實現(xiàn)自動劃分,效果如下所示:

        (五)Gmsh 網格劃分

        編譯帶OCC 選項的Gmsh C++動態(tài)庫,新增一個以模型為參數的接口:import Shapes Native Pointer(Topo DS_Shape&shape,gmsh::vectorpair &out Dim Tags,const bool highest Dim Only=true)實現(xiàn)交互選擇子模型進行網格劃分,效果如下圖所示:

        五、結語

        本文實現(xiàn)了一個基于QT 框架下,OCC 與OSG 相結合的三維網格劃分系統(tǒng),通過集成、修改Netgen 與Gmsh 網格接口實現(xiàn)了對STEP、IGS 模型能進行高質量的劃分并快速顯示,從底層內核開發(fā)系統(tǒng)的方式,改變了以往基于商業(yè)平臺進行二次開發(fā)的環(huán)境需求,利用開源的內核、顯示引擎與開源算法集成,結合了OCC 與OSG 各自領域的優(yōu)勢,以及Netgen 與Gmsh 在網格劃分領域內的高質量效果,通過集成的方式實現(xiàn)自主可控,為CAD/CAE 系統(tǒng)的自主研發(fā)提供了思路。

        猜你喜歡
        二次開發(fā)內核開源
        萬物皆可IP的時代,我們當夯實的IP內核是什么?
        強化『高新』內核 打造農業(yè)『硅谷』
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        五毛錢能買多少頭牛
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        基于嵌入式Linux內核的自恢復設計
        Linux內核mmap保護機制研究
        西門子Easy Screen對倒棱機床界面二次開發(fā)
        大家說:開源、人工智能及創(chuàng)新
        開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網+創(chuàng)新2.0
        国产亚洲精品久久久ai换| 色偷偷亚洲精品一区二区| 在教室轮流澡到高潮h免费视| 97se狠狠狠狠狼鲁亚洲综合色| 四房播播在线电影| 91精品日本久久久久久牛牛| 亚洲精品国产av成拍色拍| 极品老师腿张开粉嫩小泬| 夜夜欢性恔免费视频| 亚洲国产精品久久久性色av| 国产一区二区白浆在线观看| 国产乱人无码伦av在线a| 亚洲精品欧美二区三区中文字幕| 日韩精品久久久中文字幕人妻| 国产精品麻豆一区二区三区 | 激情亚洲一区国产精品| 久久国产精品岛国搬运工| 极品尤物在线精品一区二区三区| 和黑人邻居中文字幕在线 | 免费一级毛片麻豆精品| 一级午夜理论片日本中文在线| 久久天堂精品一区二区三区四区 | 亚洲国产精品激情综合色婷婷| 热re99久久精品国99热| 亚洲综合无码一区二区| 中文字幕一区二区人妻痴汉电车| 国产一区二区三免费视频| 亚洲熟妇少妇任你躁在线观看无码| 欧美色精品91av| 中文字幕一区二区区免| 日本xxxx色视频在线观看| 亚洲av无码1区2区久久| 亚洲av中文aⅴ无码av不卡| 加勒比婷婷色综合久久| 亚洲日韩一区二区一无码 | 国产一区二区长腿丝袜高跟鞋| 免费人成网ww555kkk在线| 无码一区二区三区AV免费换脸| 国产一区二区美女主播| 99无码精品二区在线视频| 国内精品视频一区二区三区|