Parametric configuration and tooling for build123d models.
Project description
bdbox
A live development environment for build123d models.
See the documentation site for full project details!
Installation
pip install bdbox
Works with any build123d model
Use bdbox with build123d models:
# mybox.py
from build123d import Box
result = Box(10, 10, 10)
Export to STEP or STL with bdbox:
bdbox mybox.py export out.step # Export to STEP
bdbox mybox.py export out.stl # Export to STL
View your model in your browser with OCP CAD Viewer, started
automatically. bdbox automatically re-renders your model on save:
bdbox mybox.py view
See more about actions in the documentation!
Add parameters for interactive customization
Opt in to parametric customization by importing from bdbox. Declare typed
parameters with defaults, then override them individually or with named
presets:
from bdbox import Float, Int, Params, Preset, show
from build123d import Box
class P(Params):
width = Float(10.0, min=5, max=100)
length = Float(20.0, min=5, max=100)
thickness = Int(2, min=1, max=10)
presets = (
Preset("small", width=5.0, length=8.0),
Preset("large", width=80.0, length=40.0, thickness=5),
)
result = Box(P.width, P.length, P.thickness)
show(result)
Or inherit from the provided base class for reusable, importable models:
from bdbox import Float, Int, Model, Preset
from build123d import Box
class MyBox(Model):
width = Float(10.0, min=5, max=100)
length = Float(20.0, min=5, max=100)
thickness = Int(2, min=1, max=10)
presets = (
Preset("small", width=5.0, length=8.0),
Preset("large", width=80.0, length=40.0, thickness=5),
)
def build(self):
return Box(self.width, self.length, self.thickness)
Parameters become CLI flags automatically:
python mybox.py # Run with default values
python mybox.py view # View with live reload
python mybox.py --width 50 # Override a field value
python mybox.py --preset large # Apply a named preset
python mybox.py --help # Usage info with all parameters
Export geometry to STEP or STL files using the built-in export action:
python mybox.py export output.step # Export to STEP
python mybox.py export output.stl # Export to STL
See more about parameters in the documentation!
Project template
This project is generated and maintained with copier-python.
Project details
Release history Release notifications | RSS feed
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 bdbox-0.4.0.tar.gz.
File metadata
- Download URL: bdbox-0.4.0.tar.gz
- Upload date:
- Size: 43.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
659ef6c984ab862316d8bc1f20228fe433c30bb687aa7d220d9eb5f61b4fd987
|
|
| MD5 |
bc67cdb909c471bb41267fb281812d52
|
|
| BLAKE2b-256 |
02cefbdb0653dc0818edaf0ea12159efacd6ef0ee402950a38660ea6aa68b1ae
|
Provenance
The following attestation bundles were made for bdbox-0.4.0.tar.gz:
Publisher:
release.yaml on smkent/bdbox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bdbox-0.4.0.tar.gz -
Subject digest:
659ef6c984ab862316d8bc1f20228fe433c30bb687aa7d220d9eb5f61b4fd987 - Sigstore transparency entry: 1361144049
- Sigstore integration time:
-
Permalink:
smkent/bdbox@7e654f3afb3b64fdac88c3a1c641fa7f901ca0d2 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/smkent
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@7e654f3afb3b64fdac88c3a1c641fa7f901ca0d2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file bdbox-0.4.0-py3-none-any.whl.
File metadata
- Download URL: bdbox-0.4.0-py3-none-any.whl
- Upload date:
- Size: 29.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2d0eba8ee86b221dc68a1a79f7ba02ba53800915165a8dd1e0efec006e5e68e
|
|
| MD5 |
210e76d3edce9ee5b3c462c7dfe7dcb6
|
|
| BLAKE2b-256 |
e18be08dead16a36b0d6132462cbfaf25f1ac6cab3c58c6fdfe15edd9cc67732
|
Provenance
The following attestation bundles were made for bdbox-0.4.0-py3-none-any.whl:
Publisher:
release.yaml on smkent/bdbox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bdbox-0.4.0-py3-none-any.whl -
Subject digest:
c2d0eba8ee86b221dc68a1a79f7ba02ba53800915165a8dd1e0efec006e5e68e - Sigstore transparency entry: 1361144053
- Sigstore integration time:
-
Permalink:
smkent/bdbox@7e654f3afb3b64fdac88c3a1c641fa7f901ca0d2 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/smkent
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@7e654f3afb3b64fdac88c3a1c641fa7f901ca0d2 -
Trigger Event:
push
-
Statement type: