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.4.0.tar.gz (252.5 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.4.0-py3-none-any.whl (38.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for b3dkit-0.4.0.tar.gz
Algorithm Hash digest
SHA256 d28604e8f02190504fc5d6756039ac36d9cd86717958b3436ee94959a8f8ca39
MD5 ea8020c5d784e4e3f5205c38cbe8dc5d
BLAKE2b-256 e2bc8665b2c90ec30cc998277f3d49f72a6b20bed6358f7e59b5e7f4739f8b57

See more details on using hashes here.

Provenance

The following attestation bundles were made for b3dkit-0.4.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.4.0-py3-none-any.whl.

File metadata

  • Download URL: b3dkit-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 38.2 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.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 91d1db229011e847aa4eeac4b89e298cbf4c1eba319f12ae9a04c0cad402fe8b
MD5 03d7f0ef3092ef0265c34553814c71a8
BLAKE2b-256 4a95ca2be298ba73f7ec291867b8738365ff73b3d07b68c2ef1553a25db12174

See more details on using hashes here.

Provenance

The following attestation bundles were made for b3dkit-0.4.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

0.5.0

2 files

This release

0.4.0 This release

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