Skip to main content

b3dkit

Utilities for build123d parts that have to be printed and assembled: splitting parts too big for the bed, snapping them together, fastening them, and venting them.

All linear dimensions are in millimeters and all angles are in degrees, matching build123d.

Installation

pip install b3dkit

Requires Python 3.11+ and build123d 0.11+. To run the __main__ demo in each module, which previews parts in VS Code, install the viewer extra:

pip install b3dkit[viewer]

What's in it

dovetail Splits a Part into two that slide together with tight tolerances, for parts larger than your build volume. Includes a "snugtail" style suited to 3D printing, which wraps three sides for a large friction and glue surface.
click_fit A tapered divot that prints and assembles better than a half sphere, letting parts click into place.
twist_snap A connector and socket that lock with a twist, for joints meant to be opened repeatedly.
ball_socket A ball mount and matching socket.
bolt_fittings Bolt holes, countersinks, nut traps and heat-set insert recesses, sized for M3 by default.
hexwall A honeycomb of hexagonal holes, flat or wrapped around a cone or cylinder, for venting and lightening.
basic_shapes Rounded, polygonal, diamond and teardrop cylinders, plus the trigonometry helpers that place them.
antichamfer Extends a face outward with a taper, like a foot or flat crown moulding.
slide_box, high_top_slide_box Boxes with sliding lids.
Point A lightweight 2D point with the geometry helpers the rest of the library needs.

Example

from build123d import Align, Box, BuildPart, Mode
from b3dkit import DovetailStyle, Point, dovetail_split

with BuildPart(mode=Mode.PRIVATE) as oversized:
    Box(50, 40, 50, align=(Align.CENTER, Align.CENTER, Align.MIN))

# split it into a mating pair that fits the bed
tail, socket = dovetail_split(
    oversized.part,
    Point(0, -20),
    Point(0, 20),
    style=DovetailStyle.SNUGTAIL,
)

Documentation

Full documentation, including a generated API reference, is at b3dkit.readthedocs.io.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

History

b3dkit began as fb-library, a way to isolate common utilities from Fender-Bender. It outgrew that project, and was renamed during a rewrite that reworked names and usage to feel closer to native build123d.

License

Licensed under the terms of the MIT license.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

b3dkit-0.5.0.tar.gz (255.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

b3dkit-0.5.0-py3-none-any.whl (38.4 kB view details)

Uploaded Python 3

File details

Details for the file b3dkit-0.5.0.tar.gz.

File metadata

  • Download URL: b3dkit-0.5.0.tar.gz
  • Upload date:
  • Size: 255.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for b3dkit-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c0b16592372c86a23b45673f2a4df74edb0c50de2ebe13262222a12a849f9ec2
MD5 8eba5ea84b3f1728c89c216ffdef23d8
BLAKE2b-256 9fa211a88a7106c38fd955f4c70b31c4b0972c52c8a6ab3696571ffbe382461a

See more details on using hashes here.

Provenance

The following attestation bundles were made for b3dkit-0.5.0.tar.gz:

Publisher: release.yml on x0pherl/b3dkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file b3dkit-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: b3dkit-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 38.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for b3dkit-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c2cde0aed390985c1b02575ee6ff897f990af25739ff7874f1be7ed50e16c34
MD5 64e2b42e1b993f39b76da1cc0f427fe2
BLAKE2b-256 fb991ca1f1458ffd5fc6a55472520743e72f60a264392ee246989e0294611adb

See more details on using hashes here.

Provenance

The following attestation bundles were made for b3dkit-0.5.0-py3-none-any.whl:

Publisher: release.yml on x0pherl/b3dkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 files

0.4.0

2 files

0.3.2

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page