创建圆角类似于把一条边变成一个圆弧形状
代码如下:
#include <BRepFilletAPI_MakeFillet.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopExp_Explorer.hxx>
//把边和面的关系装进map中,为后续判断使用
TopTools_IndexedDataMapOfShapeListOfShape aEdgeFaceMap;
TopExp::MapShapesAndAncestors(*shape, TopAbs_EDGE, TopAbs_FACE, aEdgeFaceMap);
//假设getIndexEdget函数获取到我们想要操作的边
TopoDS_Edge edge = getIndexEdget(shape, index);
//找到这个边所对应的面
TopTools_ListOfShape faces = edgeFaceMap.FindFromKey(edge);
//如果这个边不是两个面的交界边,无法操作返回
if (faces.Size() < 2) {
return;
}
//设置圆角半径
double radius = 1;
//创建圆角得操作类
BRepFilletAPI_MakeFillet builder;
builder.Add(radius , edge);
builder.Build();
//获得结果
TopoDS_Shape resShape = builder.Shape();