3D預覽的顯示
功能:本文闡述3D視圖的顯示,可做顯示part和product模型預覽顯示的基礎
3D預覽的顯示
1)創建視圖
視圖的構建的介面主要是CATNavigation3DViewer介面,通過該介面的參數,可以實現視圖大小、樣式、背景顏色和視圖控制項的歸屬的設置。
void CAAVisBasicWindow::CreateViewer(){ _p3DViewer = new CATNavigation3DViewer(this,"3DViewerId",CATDlgFraNoTitle, 800, 450); _p3DViewer->SetBackgroundColor(0.2f,0.2f,0.6f); Attach4Sides(_p3DViewer);}
視圖構建的介面:
public CATNavigation3DViewer( CATDialog* iFather, const CATString&iName, CATDlgStyle iStyle =NULL, const int iWidth = 800, const int iHeight = 500, const CATViewerStyle iViewerStyle =NULL)
參數說明:
iFather:視圖所插入的對話框對象,可以是Frame,也可以是label控制項
iName:視圖的名稱 iStyle:視圖的樣式,包括是否有標題、菜單等樣式 iWidth:視圖的寬度iHeight:視圖的長度
iViewerStyle:標記物呈現的樣式2)創建內容
內容表現為Representation,通過打包形成一個Bag,將Bag添加到視圖,便可實現視圖內容的呈現。因而,首先創建一個空的Representation Bag,代碼如下所示:
void CAAVisBasicWindow::CreateModelRepresentation(){ _pTheModelToDisplay = new CAT3DBagRep();...
將待顯示的對象轉化形成多個Representation,可讀取CATPart、CATProduct、Cgr格式(::CATReadCgr方法)進行構建,或自己進行創建,本節中選擇後者來創建,形成一個立方體。
CATMathPointf Corner (-20.f, -20.f,0.f); //立方體的角點CATMathVectorf FirstVector (20.f, 0.f,0.f); //向量1 CATMathVectorf SecondVector(0.f, 20.f,0.f); //向量2CATMathVectorf ThirdVector (0.f, 0.f, 20.f); //向量3CAT3DCuboidRep * pCuboid = new CAT3DCuboidRep(Corner,FirstVector,SecondVector, ThirdVector); ...
也可以對該Representation進行顏色的設置
pCuboid->SetColor(YELLOW);
將Presentation添加到Bag中
_pTheModelToDisplay->AddChild(*pCuboid);
3)顯示對象
顯示對象的代碼如下所示:
void CAAVisBasicWindow::VisualizeModel(){ if ( (NULL != _p3DViewer) && ( NULL != _pTheModelToDisplay) ){ _p3DViewer->AddRep((CAT3DRep*)_pTheModelToDisplay); _p3DViewer->Draw();//繪製出來 }}
歡迎關註:CAA二次開發(微信公眾號)
開發深似海、疑義相與析!
推薦閱讀:
※CATIA版本之簡述【附CATIA R19開發包】
※下載那個catia比較好?最近想學學
※CAA文件結構說明
※CATIA V6 2017x及CAA安裝
※可以可以推薦一些CATIA自學教程?