Open CASCADE有現成的模型,包括立方體、圓柱、球、圓錐和圓環等,現製作點擊按鈕生成以上模型。
一、立方體
1.構造
通過OCC的 BRepPrimAPI_MakeBox 類去描述構建平行六面體盒的函數,它提供了四個構造函數:
- 通過兩個位置確定立方體,一個爲(0,0,0),另一個爲(dx dy dz)
BRepPrimAPI_MakeBox::BRepPrimAPI_MakeBox(const Standard_Real dx, const Standard_Real dy, const Standard_Real dz )
- 通過位置P 和大小 dx, dy, dz 確定立方體
BRepPrimAPI_MakeBox::BRepPrimAPI_MakeBox(const gp_Pnt& P, const Standard_Real dx, const Standard_Real dy, const Standard_Real dz )
- 通過P1和P2的位置
BRepPrimAPI_MakeBox::BRepPrimAPI_MakeBox(const gp_Pnt& P1, const gp_Pnt& P2 )
- 通過座標軸Ax2構造一個框,使其邊平行於Ax2
BRepPrimAPI_MakeBox::BRepPrimAPI_MakeBox(const gp_Ax2& Axes, const Standard_Real dx, const Standard_Real dy, const Standard_Real dz )
2.實例
頭文件
//! 生成立方體
void make_cube(Standard_Real _dx = 1.0, Standard_Real _dy = 1.0, Standard_Real _dz = 1.0);
實現
void C3DWidget::make_cube(Standard_Real _dx, Standard_Real _dy, Standard_Real _dz)
{
TopoDS_Shape t_topo_box = BRepPrimAPI_MakeBox(_dx, _dy, _dz).Shape();
Handle(AIS_Shape) t_ais_box = new AIS_Shape(t_topo_box);
m_context->Display(t_ais_box, Standard_True);
m_view->FitAll();
}
二、圓柱
1.構造
BRepPrimAPI_MakeCylinder 提供圓柱模型的構造:
- 通過半徑R和高度H構造圓柱
BRepPrimAPI_MakeCylinder::BRepPrimAPI_MakeCylinder(const Standard_Real R, const Standard_Real H )
2.實例
頭文件
//! 生成圓柱
void make_cylinder(Standard_Real _R = 0.5, Standard_Real _H = 2.0);
實現
void C3DWidget::make_cylinder(Standard_Real _R, Standard_Real _H)
{
TopoDS_Shape t_topo_cylinder = BRepPrimAPI_MakeCylinder(_R , _H).Shape();
Handle(AIS_Shape) t_ais_cylinder = new AIS_Shape(t_topo_cylinder);
m_context->Display(t_ais_cylinder, Standard_True);
m_view->FitAll();
}
三、球
1.構造
BRepPrim_Sphere 提供球體模型的構造:
- 在原點創建一個半徑爲Radius的球體
BRepPrim_Sphere::BRepPrim_Sphere(const Standard_Real Radius)
- 創建圓心爲Center 半徑爲 Radius 的球體
BRepPrim_Sphere::BRepPrim_Sphere(const gp_Pnt& Center, const Standard_Real Radius )
2.實例
頭文件
//! 球體
void make_sphere(Standard_Real _R = 1.0);
實現
void C3DWidget::make_sphere(Standard_Real _R)
{
TopoDS_Shape t_topo_sphere = BRepPrimAPI_MakeSphere(_R).Shape();
Handle(AIS_Shape) t_ais_sphere = new AIS_Shape(t_topo_sphere);
m_context->Display(t_ais_sphere, Standard_True);
m_view->FitAll();
}
四、圓錐
1.構造
BRepPrimAPI_MakeCone 提供圓錐模型的構造:
- 構造一個圓錐,高度爲H,在Z=0的平面上半徑爲R1,在Z=H平面上,半徑爲R2,且R1和R2可以爲零
BRepPrimAPI_MakeCone::BRepPrimAPI_MakeCone(const Standard_Real R1, const Standard_Real R2, const Standard_Real H )
2.實例
頭文件
//! 生成圓錐
void make_cone(Standard_Real _R1 = 1.0, Standard_Real _R2 = 0.0, Standard_Real _H = 2.0);
實現
void C3DWidget::make_cone(Standard_Real _R1, Standard_Real _R2, Standard_Real _H)
{
TopoDS_Shape t_topo_cone = BRepPrimAPI_MakeCone(_R1,_R2,_H).Shape();
Handle(AIS_Shape) t_ais_cone = new AIS_Shape(t_topo_cone);
m_context->Display(t_ais_cone, Standard_True);
m_view->FitAll();
}
五、圓環
1.構造
BRepPrimAPI_MakeTorus 提供圓環模型的構造:
- 通過半徑R1和R2構造圓環
BRepPrimAPI_MakeTorus::BRepPrimAPI_MakeTorus(const Standard_Real R1, const Standard_Real R2 )
2.實例
頭文件
//! 生成圓環體
void make_torus(Standard_Real _R1 =2.0, Standard_Real _R2 = 0.5);
實現
void C3DWidget::make_torus(Standard_Real _R1, Standard_Real _R2)
{
TopoDS_Shape t_topo_torus = BRepPrimAPI_MakeTorus(_R1 ,_R2).Shape();
Handle(AIS_Shape) t_ais_torus = new AIS_Shape(t_topo_torus);
m_context->Display(t_ais_torus, Standard_True);
m_view->FitAll();
}