gridfinity_build123d package

gridfinity_build123d.base module

gridfinity_build123d.baseplate module

gridfinity_build123d.bin module

gridfinity_build123d.constants module

Gridfinity standard constants.

class gridfinity_build123d.constants.gf_bin(inner_wall: float = 0.95, inner_radius_v: float = 2.8, inner_radius: float = 1.2)[source]

Bases: object

Bin constants.

inner_radius: float = 1.2
inner_radius_v: float = 2.8
inner_wall: float = 0.95
class label(width: float = 12, angle: float = 36)[source]

Bases: object

Label constants.

angle: float = 36
width: float = 12
class scoop(radius: float = 5)[source]

Bases: object

Scoop contants.

radius: float = 5
class gridfinity_build123d.constants.gridfinity_standard[source]

Bases: object

Gridfinity standard constants.

class bottom(platform_height: float = 2.8, hole_from_side: float = 8)[source]

Bases: object

Bottom constants.

hole_from_side: float = 8
platform_height: float = 2.8
class grid(size: float = 42, radius: float = 4, tollerance: float = 0.5)[source]

Bases: object

Grid constants.

radius: float = 4
size: float = 42
tollerance: float = 0.5
class magnet(radius: float = 3.25, thickness: float = 2.4)[source]

Bases: object

Magnet constants.

radius: float = 3.25
thickness: float = 2.4
class screw(radius: float = 1.5, depth: float = 6)[source]

Bases: object

Screw constants.

depth: float = 6
radius: float = 1.5
class stacking_lip(height_1: float = 0.7, height_2: float = 1.8, height_3_bin: float = 1.9, height_3_base_plate: float = 2.15, offset: float = 0.25)[source]

Bases: object

Stacking lip constants.

height_1: float = 0.7
height_2: float = 1.8
height_3_base_plate: float = 2.15
height_3_bin: float = 1.9
offset: float = 0.25

gridfinity_build123d.features module

gridfinity_build123d.utils module

Utiity module.

class gridfinity_build123d.utils.Attach(value)[source]

Bases: Enum

Attach.

Enum for indicating a direction when attaching objects

BACK = 5
BOTTOM = 2
FRONT = 6
LEFT = 3
RIGHT = 4
TOP = 1
class gridfinity_build123d.utils.Direction(value)[source]

Bases: Enum

Direction Enum.

Direction can be converted to a tuple.

BACK = 5
BOT = 2
FRONT = 6
LEFT = 4
RIGHT = 3
TOP = 1
static to_tuple(direction: Direction) tuple[int, int, int][source]

Convert Direction to tuple.

Parameters:

direction (Direction) – Direction to convert.

Raises:

ValueError – Unkonw Direction.

Returns:

Output tupple.

Return type:

Tuple[int, int, int]

class gridfinity_build123d.utils.ObjectCreate[source]

Bases: ABC

Interface for object forcing to implement create_obj.

abstract create_obj(rotation: ~build123d.geometry.Rotation | tuple[float, float, float] = (0, 0, 0), align: ~build123d.build_enums.Align | tuple[~build123d.build_enums.Align, ~build123d.build_enums.Align, ~build123d.build_enums.Align] | None = None, mode: ~build123d.build_enums.Mode = <Mode.ADD>) BasePartObject[source]

Create the build123d 3d object.

Parameters:
  • rotation (RotationLike, optional) – Angels to rotate around axes. Defaults to (0, 0, 0).

  • align (Union[Align, tuple[Align, Align, Align]], optional) – Align min center of max of object. Defaults to None.

  • mode (Mode, optional) – Combination mode. Defaults to Mode.ADD.

Raises:

NotImplementedError – Child class does not have an implementation

Returns:

The build123d 3d object

Return type:

BasePartObject

class gridfinity_build123d.utils.StackProfile(stack_type: ProfileType, rotation: float = 0, align: Align | tuple[Align, Align] | None = None, mode: Mode = <Mode.ADD>)[source]

Bases: BaseSketchObject

StackProfile.

Create a profile of the gridfinity stacking system. Usualy used in the sweep function.

Parameters:
  • stack_type (ProfileType) – Type of stacking lip (Bin vs Plate).

  • rotation (float, optional) – angles to rotate objects. Defaults to 0.

  • align (Union[Align, tuple[Align, Align, Align]], optional) – Align min center of max of object. Defaults to None.

  • mode (Mode, optional) – Combination mode. Defaults to Mode.ADD.

class ProfileType(value)[source]

Bases: Enum

Profile Type.

BIN = 1
PLATE = 2
exception gridfinity_build123d.utils.UnsuportedEnumValueError(enum_var: Enum)[source]

Bases: Exception

Construct Enum exception.

Parameters:

enum_var (Enum) – Enum value

class gridfinity_build123d.utils.Utils[source]

Bases: object

Utils.

Class wrapping utility functions

static attach(context: BuildPart, part: Part, attach: Attach, offset_value: float = 0) None[source]

Attach.

Attaches other object acording to “attach”.

Parameters:
  • context (BuildPart) – context were attach should be executed.

  • part (Part) – the part to be attached

  • attach (Attach) – Direction to attach

  • offset_value (float, optional) – offset. Defaults to 0.

Raises:

UnsuportedEnumValueError – Unsuported Enum value

static create_bin_platform(grid: list[list[bool]], rotation: ~build123d.geometry.Rotation | tuple[float, float, float] = (0, 0, 0), align: ~build123d.build_enums.Align | tuple[~build123d.build_enums.Align, ~build123d.build_enums.Align, ~build123d.build_enums.Align] | None = None, mode: ~build123d.build_enums.Mode = <Mode.ADD>) BasePartObject[source]

Create the platform for the bin.

This function considers that the bins have a different dimension than the base elements (41.5mm instead of 42mm). This is to allow for certain tolerance for the bins. Therefore the size of the grid is set to the gridfinity standard grid size instead of the size of the sketch.

Parameters:
  • grid (list[list[bool]]) – grid

  • rotation (RotationLike, optional) – Angels to rotate around axes. Defaults to (0, 0, 0).

  • align (Union[Align, tuple[Align, Align, Align]], optional) – Align min center of max of object. Defaults to Align.CENTER.

  • mode (Mode, optional) – Combination mode. Defaults to Mode.ADD.

Returns:

the upper part of the bin.

Return type:

BasePartObject

static create_profile_block(profile_type: ~gridfinity_build123d.utils.StackProfile.ProfileType, offset_value: float = 0, rotation: ~build123d.geometry.Rotation | tuple[float, float, float] = (0, 0, 0), align: ~build123d.build_enums.Align | tuple[~build123d.build_enums.Align, ~build123d.build_enums.Align, ~build123d.build_enums.Align] | None = None, mode: ~build123d.build_enums.Mode = <Mode.ADD>) BasePartObject[source]

Create block with stacing profile.

Parameters:
  • profile_type (StackProfile.ProfileType) – Profile type

  • offset_value (float, optional) – Offset of profile sweep. Defaults to 0.

  • rotation (RotationLike, optional) – Angels to rotate around axes. Defaults to (0, 0, 0).

  • align (Union[Align, tuple[Align, Align, Align]], optional) – Align min center of max of object. Defaults to None.

  • mode (Mode, optional) – Combination mode. Defaults to Mode.ADD.

Returns:

_description_

Return type:

BasePartObject

static get_face_by_direction(context: BuildPart, direction: Direction) Face[source]

Get face by direction.

Parameters:
  • context (BuildPart) – context were attach should be executed.

  • direction (Direction) – Direction of face

Returns:

face

Return type:

Face

static get_subclasses(class_name: type) list[type][source]

Get subclasses of a base class recursively.

Parameters:

class_name (Any) – class type to get subcalsses from

Returns:

list of child class types

Return type:

Any

static locate_grid(grid: list[list[bool]], width: float, length: float) list[Location][source]

Generate locations for a grid with given spacing in x and y directions.

Parameters:
  • grid (list[list[bool]]) – grid

  • width (float) – spacing of the grid in the x-direction.

  • length (float) – spacing of the grid in the y-direction.

Returns:

the locations for the grid.

Return type:

list[Location]

static place_by_grid(obj: ~build123d.objects_part.BasePartObject, grid: list[list[bool]], width: float | None = None, length: float | None = None, rotation: ~build123d.geometry.Rotation | tuple[float, float, float] = (0, 0, 0), align: ~build123d.build_enums.Align | tuple[~build123d.build_enums.Align, ~build123d.build_enums.Align, ~build123d.build_enums.Align] = <Align.CENTER>, mode: ~build123d.build_enums.Mode = <Mode.ADD>) BasePartObject[source]

Place multiple instances of object according to grid.

Parameters:
  • obj (BasePartObject) – object to be copied

  • grid (list[list[bool]]) – grid

  • width (float | None) – spacing of the grid in the x-direction. Defaults to None.

  • length (float | None) – spacing of the grid in the y-direction. Defaults to None.

  • rotation (RotationLike, optional) – Angels to rotate around axes. Defaults to (0, 0, 0).

  • align (Union[Align, tuple[Align, Align, Align]], optional) – Align min center of max of object. Defaults to Align.CENTER.

  • mode (Mode, optional) – Combination mode. Defaults to Mode.ADD.

Raises:

ValueError – grid does not reasemble locations

Returns:

gridlike object

Return type:

BasePartObject

static place_sketch_by_grid(obj: ~build123d.topology.composite.Sketch, grid: list[list[bool]], width: float | None = None, length: float | None = None, rotation: float = 0, align: ~build123d.build_enums.Align | tuple[~build123d.build_enums.Align, ~build123d.build_enums.Align] = <Align.CENTER>, mode: ~build123d.build_enums.Mode = <Mode.ADD>) BaseSketchObject[source]

Place multiple instances of a sketch according to a grid.

Parameters:
  • obj (BaseSketchObject) – sketch to be copied

  • grid (list[list[bool]]) – grid

  • width (float | None) – spacing of the grid in the x-direction. Defaults to None.

  • length (float | None) – spacing of the grid in the y-direction. Defaults to None.

  • rotation (RotationLike, optional) – Angels to rotate around axes. Defaults to (0, 0, 0).

  • align (Union[Align, tuple[Align, Align, Align]], optional) – Align min center of max of object. Defaults to Align.CENTER.

  • mode (Mode, optional) – Combination mode. Defaults to Mode.ADD.

Returns:

gridlike sketch

Return type:

BaseSketchObject