Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/misc/brepsamples/filleted_cube.cpp
3196 views
1
// compilation: just include all occ-headers and link against all occ-libs
2
3
#include "occheaders.h"
4
5
int main()
6
{
7
// set points:
8
gp_Pnt p1(-1, -1, -1);
9
gp_Pnt p2(+1, -1, -1);
10
gp_Pnt p3(+1, +1, -1);
11
gp_Pnt p4(-1, +1, -1);
12
13
// make edges from points:
14
TopoDS_Edge e1 = BRepBuilderAPI_MakeEdge(p1, p2);
15
TopoDS_Edge e2 = BRepBuilderAPI_MakeEdge(p2, p3);
16
TopoDS_Edge e3 = BRepBuilderAPI_MakeEdge(p3, p4);
17
TopoDS_Edge e4 = BRepBuilderAPI_MakeEdge(p4, p1);
18
19
// make wire frame from edges:
20
TopoDS_Wire wire = BRepBuilderAPI_MakeWire(e1, e2, e3, e4);
21
22
// make face from wire frame:
23
TopoDS_Face face = BRepBuilderAPI_MakeFace(wire);
24
25
// make cube from face (extrude):
26
gp_Vec vec(0 , 0 , +2);
27
TopoDS_Shape cube = BRepPrimAPI_MakePrism(face , vec);
28
29
// fillet edges of cube:
30
BRepFilletAPI_MakeFillet fillet(cube);
31
32
TopExp_Explorer explorer(cube, TopAbs_EDGE);
33
while(explorer.More())
34
{
35
TopoDS_Edge edge = TopoDS::Edge(explorer.Current());
36
fillet.Add(0.1, edge);
37
explorer.Next();
38
}
39
40
cube = fillet.Shape();
41
42
// write filleted cube to brep file:
43
BRepTools::Write(cube, "filleted_cube.brep");
44
45
return 0;
46
}
47
48