Skip to main content

Parametric configuration and tooling for build123d models.

Project description

bdbox

Parametric configuration and tooling for build123d models.

License PyPI Python CI Coverage Renovate GitHub stars

Installation

pip install bdbox

Features

Easily add configurable parameters to build123d models! Declare typed parameters with defaults, then override them individually or with named presets.

Great for simple models:

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)

This provides a CLI with parameter value arguments, preset selection, and usage information:

python mybox.py                 # Run with default values
python mybox.py --width 50      # Override a field value
python mybox.py --preset large  # Apply a named preset of values
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

Or use the bdbox runner to export plain build123d models:

bdbox mybox.py export output.step

See full details in the documentation!

Project template

This project is generated and maintained with copier-python.

Project details


Download files

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

Source Distribution

bdbox-0.3.0.tar.gz (33.5 kB view details)

Uploaded Source

Built Distribution

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

bdbox-0.3.0-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file bdbox-0.3.0.tar.gz.

File metadata

  • Download URL: bdbox-0.3.0.tar.gz
  • Upload date:
  • Size: 33.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bdbox-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8b871b3c1d708bd792576b55274261158d7c2be87c965ba3ddc80a16942ef0f6
MD5 ad26ac83c8a133049c045d2d6d4575f2
BLAKE2b-256 7319ee1d4455eafc211d28a0323dc17edcafc12c0654e50e988678c16ac89595

See more details on using hashes here.

Provenance

The following attestation bundles were made for bdbox-0.3.0.tar.gz:

Publisher: release.yaml on smkent/bdbox

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

File details

Details for the file bdbox-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: bdbox-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bdbox-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4eb8d0eb232e776fe6d13f2fd0439a6f1e44f810e2849d6e76bb215573ee9d6b
MD5 450605a7087bf225d3471bc4382df15a
BLAKE2b-256 054a4100d6fb663569ba0be4fd01de83a378d340ce8106f3902b4584e171f841

See more details on using hashes here.

Provenance

The following attestation bundles were made for bdbox-0.3.0-py3-none-any.whl:

Publisher: release.yaml on smkent/bdbox

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page