Skip to main content

OCCT Chamfers: Applying to Circular and Curved Edges

Chamfering operations in OpenCascade Technology (OCCT) are not restricted to straight, linear edges. They can also be successfully applied to non-linear edges, including:

  • Circular edges (e.g., the edge of a cylindrical hole or a rounded boss).
  • Elliptical edges.
  • Even more complex free-form (spline-based) edges.

This capability allows for the creation of beveled transitions around curved features, which is common in mechanical design and for aesthetic detailing.

A 3D solid box with a cylindrical hole, where the circular edges of the hole have been chamfered, creating a beveled entry. Circular edge chamfer on a 3D solid.

The examples below demonstrate creating a box with a cylindrical hole through its middle. Then, a chamfer operation is applied to the circular edges formed by this hole.

Bitbybit Platform

Chamfer Circular Edge of a Hole in Rete

rete logoRete
Script Source (rete)
{
"id": "rete-v2-json",
"nodes": {
"465a6cff04eeb4c7": {
"id": "465a6cff04eeb4c7",
"name": "bitbybit.occt.fillets.chamferEdges",
"customName": "chamfer edges",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"distance": 0.5
},
"inputs": {
"shape": {
"connections": [
{
"node": "134db198c978e5a5",
"output": "result",
"data": {}
}
]
}
},
"position": [
25.869618545988516,
850.4317699140497
]
},
"b19bb772deab47ce": {
"id": "b19bb772deab47ce",
"name": "bitbybit.occt.shapes.solid.createCylinder",
"customName": "cylinder",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": true,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"radius": 2,
"height": 8,
"center": [
0,
0,
0
],
"direction": [
0,
1,
0
],
"angle": 360,
"originOnCenter": false
},
"inputs": {
"direction": {
"connections": [
{
"node": "28b22e6329a3febd",
"output": "result",
"data": {}
}
]
},
"center": {
"connections": [
{
"node": "36c94019c8ee49cf",
"output": "result",
"data": {}
}
]
}
},
"position": [
-905.7708007163599,
967.4837207911903
]
},
"28b22e6329a3febd": {
"id": "28b22e6329a3febd",
"name": "bitbybit.vector.vectorXYZ",
"customName": "vector xyz",
"async": false,
"drawable": true,
"data": {
"genericNodeData": {
"hide": true,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"x": 1,
"y": 0,
"z": 0
},
"inputs": {},
"position": [
-1270.401024117951,
1308.0223750907223
]
},
"3cc824a676577242": {
"id": "3cc824a676577242",
"name": "bitbybit.lists.createList",
"customName": "create list",
"data": {},
"inputs": {
"listElements": {
"connections": [
{
"node": "b19bb772deab47ce",
"output": "result",
"data": {}
}
]
}
},
"position": [
-548.0110127318145,
1114.6413541651573
]
},
"134db198c978e5a5": {
"id": "134db198c978e5a5",
"name": "bitbybit.occt.booleans.difference",
"customName": "difference",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": true,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"keepEdges": false
},
"inputs": {
"shapes": {
"connections": [
{
"node": "3cc824a676577242",
"output": "list",
"data": {}
}
]
},
"shape": {
"connections": [
{
"node": "d3846c69e45faeee",
"output": "result",
"data": {}
}
]
}
},
"position": [
-334.28492550210524,
727.5800438660185
]
},
"d3846c69e45faeee": {
"id": "d3846c69e45faeee",
"name": "bitbybit.occt.shapes.solid.createBox",
"customName": "box",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": true,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"width": 5,
"length": 8,
"height": 11,
"center": [
0,
0,
0
],
"originOnCenter": true
},
"inputs": {},
"position": [
-1099.250222686699,
476.74125056103367
]
},
"36c94019c8ee49cf": {
"id": "36c94019c8ee49cf",
"name": "bitbybit.vector.vectorXYZ",
"customName": "vector xyz",
"async": false,
"drawable": true,
"data": {
"genericNodeData": {
"hide": true,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"x": -4,
"y": 0,
"z": 0
},
"inputs": {},
"position": [
-1295.6103092286526,
922.9426725145504
]
}
}
}

Being able to chamfer curved edges is essential for achieving a wide range of design intents, from functional deburring of holes to specific aesthetic finishes on complex parts. The underlying principles of selecting edges (often by index if not chamfering all) and specifying chamfer distances remain similar to chamfering straight edges.