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自學教程?

TAG:CATIA | 二次開發 |