盧宇坤 王梓榆
(常州固高智能裝備技術研究院有限公司,江蘇常州 213000)
彎管作為大多數氣體、液體的輸送結構,在許多領域都擁有著廣泛的應用,如汽車工業、航天航空等,隨著彎管應用市場進一步擴大,傳統的繞彎式彎管機,壓彎式彎管機等已經不能夠滿足工業上的應用要求,因此發展出了最新的三維矢量彎管機,這種彎管機的工作原理比傳統彎管機更為復雜,因此需要在進行彎制前,能夠實現對于管材模型的顯示,便于技術人員更好的加工管材。
本文旨在基于Open CASCADE Technology這一開源的幾何內核,研究開發出一款專門針對三維矢量彎管機的小型軟件平臺[1]。通過該軟件能夠便捷地導入外部管材的STEP模型,實現STEP模型的整體展示,并能夠對于模型進行操作。開源幾何內核再實際的開發應用中具有許多優勢,并且針對三維矢量彎管開發相應的軟件平臺,能夠大大降低成本,同時還能夠保證后續加工的穩定性,這無疑有著廣闊的前景和市場。
Open CASCADE Technology簡稱OCCT,是基于C++開發出的一個幾何內核,提供了多種C++的類,旨在快速生成復雜的特定領域CAD/CAM/CAE應用程序。使用OCCT開發的典型應用程序處理通用或專用計算機輔助設計(CAD)系統、制造或分析應用程序、模擬應用程序甚至插圖工具中的二維或三維(2D或3D)幾何建模。利用OCCT開發特定領域CAD/CAM/CAE應用程序,具有功能模塊化和可擴展性高的優點,以下各項為OCCT所提供主要C++類:
基本數據結構(幾何建模、可視化、交互式選擇和特定于應用程序的服務);建模算法;網格數據處理算法;IGES、STEP格式的數據互操作性。
Open CASCADE 采用C++11中的新特性智能指針來管理引用,這種管理機制利用句柄來實現。Open CASCADE中的句柄由Standard_Transient(臨時)類或Standard_Persistent(持久類)類派生。同時Open CASCADE提供了一個宏預處理函數Handle()。通過聲明句柄的方式來創建出需要處理的對象,并采用new操作符初始化句柄。在本文的研究與開發中,常需要利用到該特點[2]。
基于Open CASCADE Technology平臺,采用Visual Studio 2019編程平臺和C++編語言來開發。開發出一款具有可視化界面,能夠實現三維矢量管材STEP文件導入以及對于管材模型操作的軟件平臺[3-4]。
可視化界面的開發是整體軟件平臺的框架,選用Qt作為可視化界面開發框架具有較好的可操作性。Open CASCAS CADE與程序的交互環境接口通過AIS_Interactive-Context類實現,該類通過接受一個高級的API信號控制顯示過程。本文選擇在文檔類中實現對象的創建與初始化,在視圖類中設置程序交互環境界面背景。部分實現代碼如下:
其可視化界面的初始化界面如圖1所示。
圖1 可視化界面的初始化界
OCCT中,模型是使用B-rep(邊界表示法)描述的。所以STEP文件導入是實現將STEO文件表示的模型,轉換為OCCT使用的B-rep表示的模型。
描述一個物體的方法有許多,而在實體建模中,經常使用物體的一個封閉的邊界來描述一個物體,這個方法就叫作邊界表示法。因為通常情況下來說,一組面的集合可以組成一個完全封閉的邊界,所以說邊界表示法是高效且準確的描述出整個模型的。在OCCT中,有一個總的拓撲類叫作TopoDS_Shape,以此類作為父類,派生出許多的子類,這些子類能夠基本上概括出組成模型的所有基本拓撲類型,其中與邊界表示法最為相關的的幾大子類分別如下:
TopoDS_Vertex是最基本的拓撲類型,也就是我們常說的頂點;2個頂點可以構成一條線,那么這條線相對應的拓撲類型叫作TopoDS_Edge;當許多條TopoDS_Edge連接起來,就能夠構成一個面,也就是TopoDS_Face;將多個TopoDS_Face拼接,就會獲得一個新的拓撲類型,叫作體,也就是TopoDS_Solid。但我們把多條TopoDS_Edge組成一個集合時,這個集合對應的拓撲類型也就是TopoDS_Wire;把多個TopoDS_Face組成一個集合時,這個由TopoDS_Face組成的集合對應的拓撲類型就是TopoDS_Shell。當我們擁有一個包含了各種拓撲類型的集合時,這個集合稱之為TopoDS_Compound。所有拓撲結構的關系如圖2所示。
圖2 各拓撲之間的結構關系
在OCCT中,有STEPAPI_Reader類,我們可以運用此類來讀取STEP格式的文件,每一個STEP文件中,都包含了自己的網格信息。因為在OCCT中,是采用B-rep表示法來表示一個模型,想獲取STEP模型,就需要將STEP模型里的數據全部轉換為B-rep表示的模型,這個操作我們同時調用STEPAPI_Reader類和STEP Mesh_Mesh類就可以完成。在讀取STEP文件的同時,會獲得該STEP文件中所有的三角面片的信息,這些信息會保存到STEP Mesh_Mesh類中的網格信息中,根據所有獲得的網格信息,就可以生成只擁有單個拓撲結構的TopoDS_Shell模型中,也可以生成擁有多種拓撲結構的TopoDS_Compound模型中。
為了將生成的TopoDS_Shell模型或者是TopoDS_Compound模型顯示出來,OCCT 也提供了相應的顯示模塊,這個模塊叫作AIS(Application Interactive Services)模塊。AIS模塊提供了多種的顯示有關的功能,通過合理的組合使用這些功能,就能夠實現幾何和拓樸對象的顯示、選擇和管理。其中對象的顯示可以顯示出對象的顏色,也可以自己指定顯示模式。對于對象的選擇而言,如果被選中那么就將此對象進行高亮顯示。實現讀取STEP文件的部分關鍵代碼如下:
外部管材STEP文件在本軟件平臺中的顯示效果如圖3所示。
圖3 STEP模型顯示效果
通過AIS模塊可以讀取三維模型文件中的特征,并將三維模型在程序視圖框架中顯示出來,而無法對模型實現旋轉、放縮、移動等基本的交互操作。OCCT提供了V3d_View類,在這個類中有豐富的圖形操作函數,通過枚舉CurAction3d能及時響應渲染模型表面、場景、紋理等,想要完成對于模型的旋轉、平移、縮放等交互。STEP 模型操作顯示如圖4所示。
圖4 STEP模型操作顯示
本文基于Open CASCADE Technology這一開源幾何內核,研究并開發出了一款三維模型軟件,并且該軟件應用到三維矢量彎管技術中,從而能夠實現管材STEP文件的顯示,以及對于STEP模型操作的功能,能夠讓工程技術人員更好地了解管材的數據結構,以便于后續的開發。如今,在CADCAM系統中,對于STEP文件進行數據交互在整體的協同工作中占據了重要的地位,但是相比于現較成熟的三維軟件,利用Open CASCADE Technology這一幾何內核,針對性的對于三維矢量彎管開發軟件,并對STEP模型進行處理,在能夠確保降低成本的同時也能獲得較好的穩定性,這無疑能夠給管材加工帶來極大的便利。本文研究的軟件,能夠進一步的再借助Open CASCADE Technology,開發出具有更多功能的軟件平臺,這無疑對有十分重大的意義和更加廣闊的市場前景。