+
+ public static TopoDS_Shape makeFillet(TopoDS_Shape shape, double r) {
+ BRepFilletAPI_MakeFillet fillet = new BRepFilletAPI_MakeFillet(shape);
+
+ TopExp_Explorer exp = new TopExp_Explorer(shape, TopAbs_ShapeEnum.EDGE);
+ while (exp.more()) {
+ TopoDS_Edge e = (TopoDS_Edge) exp.current();
+ fillet.add(r, e);
+ e.delete();
+ exp.next();
+ }
+ TopoDS_Shape result = fillet.shape();
+ exp.delete();
+ shape.delete();
+ fillet.delete();
+ return result;
+
+ }
+
+ public static TopoDS_Shape makeChamfer(TopoDS_Shape shape, double d) {
+ BRepFilletAPI_MakeChamfer fillet = new BRepFilletAPI_MakeChamfer(shape);
+
+ TopExp_Explorer exp = new TopExp_Explorer(shape, TopAbs_ShapeEnum.FACE);
+ while (exp.more()) {
+ TopoDS_Face f = (TopoDS_Face) exp.current();
+ TopExp_Explorer exp2 = new TopExp_Explorer(f, TopAbs_ShapeEnum.EDGE);
+ while (exp2.more()) {
+ TopoDS_Edge e = (TopoDS_Edge) exp2.current();
+ fillet.add(d, e, f);
+ exp2.next();
+ e.delete();
+ }
+ exp2.delete();
+ f.delete();
+ exp.next();
+ }
+ TopoDS_Shape result = fillet.shape();
+ exp.delete();
+ shape.delete();
+ fillet.delete();
+ return result;
+
+ }