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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d28604e8f02190504fc5d6756039ac36d9cd86717958b3436ee94959a8f8ca39
|
|
| MD5 |
ea8020c5d784e4e3f5205c38cbe8dc5d
|
|
| BLAKE2b-256 |
e2bc8665b2c90ec30cc998277f3d49f72a6b20bed6358f7e59b5e7f4739f8b57
|
Provenance
The following attestation bundles were made for b3dkit-0.4.0.tar.gz:
Publisher:
release.yml on x0pherl/b3dkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
b3dkit-0.4.0.tar.gz -
Subject digest:
d28604e8f02190504fc5d6756039ac36d9cd86717958b3436ee94959a8f8ca39 - Sigstore transparency entry: 2764368544
- Sigstore integration time:
-
Permalink:
x0pherl/b3dkit@79fca0cdbccce7a3ccf38fbb516ac6bf6b521211 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/x0pherl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@79fca0cdbccce7a3ccf38fbb516ac6bf6b521211 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91d1db229011e847aa4eeac4b89e298cbf4c1eba319f12ae9a04c0cad402fe8b
|
|
| MD5 |
03d7f0ef3092ef0265c34553814c71a8
|
|
| BLAKE2b-256 |
4a95ca2be298ba73f7ec291867b8738365ff73b3d07b68c2ef1553a25db12174
|
Provenance
The following attestation bundles were made for b3dkit-0.4.0-py3-none-any.whl:
Publisher:
release.yml on x0pherl/b3dkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
b3dkit-0.4.0-py3-none-any.whl -
Subject digest:
91d1db229011e847aa4eeac4b89e298cbf4c1eba319f12ae9a04c0cad402fe8b - Sigstore transparency entry: 2764368599
- Sigstore integration time:
-
Permalink:
x0pherl/b3dkit@79fca0cdbccce7a3ccf38fbb516ac6bf6b521211 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/x0pherl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@79fca0cdbccce7a3ccf38fbb516ac6bf6b521211 -
Trigger Event:
push
-
Statement type: