OpenCASCADE(OCC)读取STEP模型文件到XDE中
生活随笔
收集整理的這篇文章主要介紹了
OpenCASCADE(OCC)读取STEP模型文件到XDE中
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
運(yùn)行結(jié)果圖》》
首先:
XDE使用TDocStd_Documents作為起點(diǎn)。XDE的一般用途是:
檢查現(xiàn)有文檔是否適合XDE;
獲取應(yīng)用程序和初始化文件;
初始化文檔以適合XDE;
添加、設(shè)置和查找數(shù)據(jù);
查詢(xún)和管理形狀;
將屬性附加到形狀。
XDE使用的Document通常以TDocStd_Document開(kāi)頭。
前期檢查:
在處理形狀、屬性和其他類(lèi)型的信息之前,要確定現(xiàn)有文檔是否實(shí)際上是為與XDE一起使用而構(gòu)建的。
就是要確定現(xiàn)有的TDocStd_Document是否適合XDE:
如果文檔適用于XDE,可以直接執(zhí)行上述操作。但是,如果一個(gè)Document不是或者不完全是為XDE構(gòu)建的,則必須對(duì)其進(jìn)行初始化。
具體初始化如下:
//創(chuàng)建文檔Handle(TDocStd_Document) doc;XCAFApp_Application::GetApplication()->NewDocument("MDTV-XCAF", doc);下面進(jìn)行STEP文件的完整讀取:
void COCCmfcMDIDoc::ReadSTEP() {//創(chuàng)建文檔Handle(TDocStd_Document) doc;XCAFApp_Application::GetApplication()->NewDocument("MDTV-XCAF", doc);//裝載文件(.step)STEPCAFControl_Reader myReader;myReader.ReadFile("hezi.STEP");myReader.SetColorMode(true);myReader.SetNameMode(true);myReader.SetLayerMode(true);myReader.Transfer(doc);TDF_Label mainLabel = doc->Main();//要從XDE結(jié)構(gòu)獲取被視為程序集的節(jié)點(diǎn),可以使用節(jié)點(diǎn)的Label(shape)Handle(XCAFDoc_ShapeTool) myShapeTool = XCAFDoc_DocumentTool::ShapeTool(mainLabel);//查詢(xún)、編輯或初始化文檔以處理XCAF的顏色(OCCT不再使用此方法渲染模型)Handle(XCAFDoc_ColorTool) myColors = XCAFDoc_DocumentTool::ColorTool(mainLabel);TDF_LabelSequence FreeShape;myShapeTool->GetFreeShapes(FreeShape);//使用GetFreeShapes解決裝配體和組件顯示錯(cuò)亂問(wèn)題//myShapeTool->GetShapes(FreeShape); //獲取裝配體和組件對(duì)應(yīng)名稱(chēng)(不適用)int Roots = FreeShape.Length();for (int index = 1; index <= Roots; index++){TDF_Label label = FreeShape.Value(index);// 用XCAFPrs_AISObject 來(lái)顯示Handle(XCAFPrs_AISObject) displayedShape = new XCAFPrs_AISObject(label);myAISContext->Display(displayedShape, true);} }調(diào)用函數(shù),點(diǎn)擊運(yùn)行》》
!!!!!!!!!
總結(jié)
以上是生活随笔為你收集整理的OpenCASCADE(OCC)读取STEP模型文件到XDE中的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Git】查看改动文件清单
- 下一篇: WebApp实时开源框架Clouda入门