fabex.joinery.finger#
Functions#
|
Create a joint shape based on the specified diameter and stem. |
|
Create a specified number of fingers for a joint tool. |
|
Calculates the amount of fingers needed from the available space vs the size of the finger |
|
Creates a duplicate set of fingers. |
|
Generates an interlocking horizontal finger pair _wfa and _wfb. |
|
Generates an interlocking horizontal finger pair _vfa and _vfb. |
|
distributes mortises of a fixed distance. Dynamically changes the finger tolerance with the angle differences |
|
Distributes mortises of a fixed distance. Dynamically changes the finger tolerance with the angle differences |
Module Contents#
- finger(diameter, stem=2)[source]#
Create a joint shape based on the specified diameter and stem.
This function generates a 3D joint shape using Blender’s curve operations. It calculates the dimensions of a rectangle and an ellipse based on the provided diameter and stem parameters. The function then creates these shapes, duplicates and mirrors them, and performs boolean operations to form the final joint shape. The resulting object is named and cleaned up to ensure no overlapping vertices remain.
- Parameters:
diameter (float) – The diameter of the tool for joint creation.
stem (float?) – The amount of radius the stem or neck of the joint will have. Defaults to 2.
- Returns:
This function does not return any value.
- Return type:
None
- fingers(diameter, inside, amount=1, stem=1)[source]#
Create a specified number of fingers for a joint tool.
This function generates a set of fingers based on the provided diameter and tolerance values. It calculates the necessary translations for positioning the fingers and duplicates them if more than one is required. Additionally, it creates a receptacle using a silhouette offset from the fingers, allowing for precise joint creation.
- Parameters:
diameter (float) – The diameter of the tool used for joint creation.
inside (float) – The tolerance in the joint receptacle.
amount (int?) – The number of fingers to create. Defaults to 1.
stem (float?) – The amount of radius the stem or neck of the joint will have. Defaults to 1.
- finger_amount(space, size)[source]#
Calculates the amount of fingers needed from the available space vs the size of the finger
- Parameters:
space (float) – available distance to cover
size (float) – size of the finger
- finger_pair(name, dx=0, dy=0)[source]#
Creates a duplicate set of fingers.
- Parameters:
name (str) – name of original finger
dx (float) – x offset
dy (float) – y offset
- horizontal_finger(length, thickness, finger_play, amount, center=True)[source]#
Generates an interlocking horizontal finger pair _wfa and _wfb.
_wfa is centered at 0,0 _wfb is _wfa offset by one length
- Parameters:
length (float) – Length of mortise
thickness (float) – thickness of material
amount (int) – quantity of fingers
finger_play (float) – tolerance for proper fit
center (bool) – centered of not
- vertical_finger(length, thickness, finger_play, amount)[source]#
Generates an interlocking horizontal finger pair _vfa and _vfb.
_vfa is starts at 0,0 _vfb is _vfa offset by one length
- Parameters:
length (float) – Length of mortise
thickness (float) – thickness of material
amount (int) – quantity of fingers
finger_play (float) – tolerance for proper fit
- fixed_finger(loop, loop_length, finger_size, finger_thick, finger_tolerance, base=False)[source]#
distributes mortises of a fixed distance. Dynamically changes the finger tolerance with the angle differences
- Parameters:
loop (list of tuples) – takes in a shapely shape
loop_length (float) – length of loop
finger_size (float) – size of the mortise
finger_thick (float) – thickness of the material
finger_tolerance (float) – minimum finger tolerance
base (bool) – if base exists, it will join with it
- variable_finger(loop, loop_length, min_finger, finger_size, finger_thick, finger_tolerance, adaptive, base=False, double_adaptive=False)[source]#
Distributes mortises of a fixed distance. Dynamically changes the finger tolerance with the angle differences
- Parameters:
loop (list of tuples) – takes in a shapely shape
loop_length (float) – length of loop
finger_size (float) – size of the mortise
finger_thick (float) – thickness of the material
min_finger (float) – minimum finger size
finger_tolerance (float) – minimum finger tolerance
adaptive (float) – angle threshold to reduce finger size
base (bool) – join with base if true
double_adaptive (bool) – uses double adaptive algorithm if true