基于OpenCASCADE自制三维建模软件(七)立方体、圆柱、球、圆锥、圆环


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();
}

在这里插入图片描述

项目仓库

https://github.com/Jelatine/JellyCAD

  • 9
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于 OpenCASCADE 的三维显示开发,您可以使用 OpenCASCADE 提供的 Visualization 层进行操作。OpenCASCADE 是一个用于 CAD/CAE 应用开发的开源几何建模核心库,它提供了一套丰富的工具和功能,包括三维模型创建、编辑、分析和可视化等。 要进行三维显示开发,您可以按照以下步骤进行操作: 1. 导入 OpenCASCADE 库:首先,您需要将 OpenCASCADE 库导入到您的开发环境中。您可以从 OpenCASCADE 的官方网站或 GitHub 上获取最新的库文件。 2. 创建场景和视窗:使用 OpenCASCADE 的 Visualization 层,您可以创建一个场景和一个视窗来显示您的三维模型。场景是一个容器,用于存储模型和其他对象,而视窗是显示模型的图形界面。 3. 加载和显示模型:使用 OpenCASCADE 提供的功能,您可以加载和显示各种不同格式的三维模型文件,如 STEP、IGES、BREP 等。您可以使用适当的函数将模型加载到场景中,并在视窗中显示出来。 4. 进行交互操作:通过结合 OpenCASCADE 的几何操作和可视化功能,您可以实现各种交互式操作,如旋转、缩放、平移等。这样用户就可以在视窗中对模型进行实时操作和浏览。 5. 添加附加功能:根据您的需求,您还可以添加其他功能,如选择、标注、剖切等。OpenCASCADE 提供了一系列的工具和函数,使您能够根据自己的需求定制和扩展应用程序的功能。 请注意,这只是简要介绍了 OpenCASCADE 的三维显示开发的基本步骤。具体的实现细节和代码示例可以参考 OpenCASCADE 的官方文档和示例代码。希望这对您有所帮助!如果您有更多问题,我会很乐意为您解答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值