Fillets

Occt category icon with logo interpretation

Intro

Fillets create roundings on the edges of shapes. They are used to create smooth transitions between two or more surfaces on the shells and solids. Fillets can also be applied to create roundings between two or more edges in a wire. Fillets are used in many different industries to give a more organic look to the shapes and avoid sharp edges.

Image showing how fillets on a 3D solid look like

Fillets on a 3D solid

How fillets can be done on a solid?

In bitbybit we allow few ways to create fillets. If the shape is solid, you can simply apply a rounding of the given radius to all the edges of the solid. In case you want to apply a fillet to a single edge or few edges, you have to use indexes of the edges.

Fillet all edges of a solid

First let's see how to apply a fillet on all edges of the solid in the TypeScript, Rete and Blockly. This is quite simple, you'll just use the "fillet edges" command. Here are the examples:

TypeScript

Fillet all edges of solid

Blockly

Fillet all edges of solid

Rete

Fillet all edges of solid

How to know which index applies to which edge on the solid?

When you do not want to apply a single radius to all the edges of your shape, you must provide edge indexes and the list of radiuses in two separate arrays to a fillet edge command. You should first figure out which index applies to which edge on the solid. Index is an address of the edge on the particular shape. Indexes on edges, due to some legacy issues related to blockly, are starting with 1, not 0.

When using a drawAnyAsync command with occt shape entity, you can use OCCT shape options and turn on the "draw edge indexes" option. With this option turned on, you will see the indexes of the edges on the solid in 3D space. Keep in mind that after you apply the fillet, the number of edges on your shape will increase and old index values will not be valid anymore.

Below you will find the TypeScript, Rete and Blockly code examples that create a solid box and enable the drawing of edge indexes:

TypeScript

Draw edge indexes

Blockly

Draw edge indexes

Rete

Draw edge indexes

Applying variable radius on specific edges

When you know edge indexes you can apply a fillet with different radiuses on different edges. Below you will find the TypeScript, Rete and Blockly code examples that create a solid box and apply a fillet with different radiuses on different edges:

TypeScript

Fillet specific edges of solid

Blockly

Fillet specific edges of solid

Rete

Fillet specific edges of solid

Applying fillets on 2D wires

Fillets can also be applied to create roundings between two or more edges in a wire. As with shapes, you can apply a fillet either globally to all of the corners of the wire or to specific corners. Below you will find the TypeScript, Rete and Blockly code examples that create a wire and apply a fillet with the same radius to all corners.

TypeScript

Fillet all corners of wire

Blockly

Fillet all corners of wire

Rete

Fillet all corners of wire

Applying fillets on specific corners of 2D wires

Image showing how fillets on a 2D wire look like

Fillets on a 2D wire

While it is often required to simply round all the corners of the wire with the same radius, it is also possible to apply different radiuses to different corners. Below you will find the TypeScript, Rete and Blockly code examples that create a wire and apply a fillet with different radiuses to different corners.

TypeScript

Fillet specific corners of wire

Blockly

Fillet specific corners of wire

Rete

Fillet specific corners of wire