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

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.2.0.tar.gz (26.4 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.2.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for bdbox-0.2.0.tar.gz
Algorithm Hash digest
SHA256 dbbf89102da740eefb3a1c6ecd48b41726fc3a67084935c8ee8a326101c75070
MD5 ef8288d66bfcb56531c8c0569af81dad
BLAKE2b-256 2fd2f13650ade654a81c5a18b87169a4a4b3f4d4368aeae71a89ef4b82cc5181

See more details on using hashes here.

Provenance

The following attestation bundles were made for bdbox-0.2.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.2.0-py3-none-any.whl.

File metadata

  • Download URL: bdbox-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.2 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b2b328dc7c913587f1990decade8ef8f0dacacc75798c4c4d2a1c0a0fa89e6fb
MD5 4580006330729ee0c8373f1445f6f777
BLAKE2b-256 7c1e5f51c2db0f58b9a146a6cd3b56f33709a61a047438525021279cdacd3d05

See more details on using hashes here.

Provenance

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