Open CASCADE基础介绍(2)

本文详细介绍了Open CASCADE中的体类,包括BRepBuilderAPI_MakeEdge、BRepBuilderAPI_MakeWire和BRepBuilderAPI_MakeFace等,用于创建几何形状。此外,还探讨了布尔操作如BRepAlgoAPI_BooleanOperation和BRepFilletAPI_MakeFillet,用于实体的修改和组合。内容适合Open CASCADE初学者,旨在帮助理解如何构建和修改3D几何模型。
摘要由CSDN通过智能技术生成

Open CASCADE基础介绍(2

一些OCC的基础知识,愿与各位OCC爱好者共同学习;mail: tongabcd@yeah.net

 

一:关于体的类

BRepBuilderAPI_MakeVertex

创建点;

 

BRepBuilderAPI_MakeEdge

此类用来创建边;

比如,由直线生成边:

gp_Lin line(gp_Ax1(gp_Pnt(10,10,10),gp_Dir(1,0,0)));

       WhiteEdge = BRepBuilderAPI_MakeEdge(line,-20,10);

下面为生成四分之一园边:

gp_Elips Elips(gp_Ax2(gp_Pnt(10,0,0),gp_Dir(1,1,1)),60,30);

       RedEdge = BRepBuilderAPI_MakeEdge(Elips,0,PI/2);

下面是由曲线生成边:

Handle (Geom_BezierCurve) curve = new Geom_BezierCurve(array);

BRepBuilderAPI_MakeEdge ME (curve);

GreenEdge = ME;

V3 = ME.Vertex1();

V4 = ME.Vertex2();

 

BRepBuilderAPI_MakeWire

用来创建一个Wire类;

 

用一个Wire和一个边来生成一个新的Wire

ExistingWire = BRepBuilderAPI_MakeWire(Edge2);

       Edge3 = BRepBuilderAPI_MakeEdge(gp_Pnt(-300,0,-80),gp_Pnt(-90,20,-30));

       BRepBuilderAPI_MakeWire MW1(ExistingWire,Edge3);

       if (MW1.IsDone()) {YellowWire = MW1;}

用一个Wire和添加边的方法来生成Wire

BRepBuilderAPI_MakeWire MW;

       MW.Add(ExistingWire2);

       MW.Add(Edge5);

       MW.Add(Edge6);

       MW.Add(Edge7);

       if (MW.IsDone()) {

              WhiteWire = MW.Wire();

              LastEdge = MW.Edge();

              LastVertex = MW.Vertex();

       }

 

BRepBuilderAPI_MakeFace

生成一个面;有多种生成面的方法;

--通过一个封闭曲线生成面:

BRepBuilderAPI_MakeFace(curve);

--通过一个Wire生成面:

BrownFace = BRepBuilderAPI_MakeFace(YellowWire);

Bnd_Box2d:

定义一个二维空间的边界盒,可以得出边界盒各个点的值,有时,在某个方向是无限大,这种情况下,称为在此方向上是开放的;

示例:

Bnd_Box2d aCBox;                                                   

Geom2dAdaptor_Curve GACC (C);                                      

BndLib_Add2dCurve::Add (GACC,Precision::Approximation(),aCBox);

 

Bnd_Box:

定义一个三维空间的边界盒,可以扩大或缩小边界盒,也可以合并两个轴对齐边界盒;

BRepPrimAPI_MakeBox

用来生成一个立方体;

构造一个立方体可以是两个对角点,一个角点及三个方向长度,可以是非轴对称的:

TopoDS_Shape B2 = BRepPrimAPI_MakeBox (gp_Ax2(gp_Pnt(-200.,-80.,-70.), gp_Dir(1.,2.,1.)),       80.,90.,120.);

使用方法

TopoDS_Face& BottomFace() ;.可以得到立方体的底面;同样,用其它类似的方法可以获得顶面等;

方法TopoDS_Solid& Solid() ;可以将box转化为一个Solid;

方法TopoDS_Shell& Shell() ;可以将box转化为一个shell;

 

BRepPrimAPI_MakeCylinder

用来生成一个园柱体或园柱体的一部分;

比如:   

TopoDS_Shape C2 = BRepPrimAPI_MakeCylinder (gp_Ax2(gp_Pnt(200.,0.,200.), gp_Dir(0.,1.,0.)),40.,110.,210.*PI180);

 

BRepPrimAPI_MakeCone

生成一个园锥或园锥的一部分;

 

BRepPrimAPI_MakeSphere

生成球体或球体的一部分,可以是U方向切

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值