倒角在我的理解是使一条边变成一个拥有角度的平面
示例如下图所示:
代码如下:
#include <BRepFilletAPI_MakeChamfer.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopExp_Explorer.hxx>
#include <BRepPrimAPI_MakeBox.hxx>
//创建一个以原点为起点的正方形
gp_Pnt pt(0, 0, 0);
TopoDS_Shape aTopoBox = BRepPrimAPI_MakeBox(pt, 5, 5, 5).Shape();
//把所有的面和他们的边装进map中
TopTools_IndexedDataMapOfShapeListOfShape aEdgeFaceMap;
TopExp::MapShapesAndAncestors(aTopoBox, TopAbs_EDGE, TopAbs_FACE, aEdgeFaceMap);
//我们要处理的边
TopoDS_Edge edge = getEdge();
//找到这个边的所属面
TopTools_ListOfShape faces = edgeFaceMap.FindFromKey(edge);
TopoDS_Face face = TopoDS::Face(faces.First());
//倒角的距离
double distance = 1;
//倒角的核心构造类
BRepFilletAPI_MakeChamfer makeChamfer;
makeChamfer.Add(distance , distance , edge, face);
makeChamfer.Build();