Skip to main content

build123d Part extended for CI/CD automation

Project description

Partomatic

Partomatic is an attempt to build an automatable ecosystem for generating parametric models through automation -- making CI/CD automation possible for your 3d models.

The Partomatic philosophy

In the software world, CI/CD technologies are taken for granted. They allow large-scale distributed systems to deploy updates automatically and smoothly. These systems allow an automated flow that takes updated code submitted by a developer, executes tests & validations, and then automated global deployment. Without these technologies the internet as we know it could not operate.

3d Modeling tools are great at creating models, but they don’t make it easy to deploy, generate, and distribute multiple parts. Build123d is a powerful library, but it leaves the creation of final parts up to the developer.

For a large project with many related and interlocking parts, this can make releasing a new version a project in and of itself. Partomatic allows for those designs to be parametric. For example, a wheel might support many different bearings, or come in multiple diameters or thicknesses. Instead of hard coding the saving of each of those STL files, Partomatic allows you to define parameters and file-naming instructions to allow a relatively simple build script to read through multiple configuration files and save each of those STL files in a folder structure and file-naming standard that you define.

Partomatic enables parametric modeling and standardizes some build automation for a part.

Installation

Install partomatic using pip:

pip install partomatic

This will automatically install partomatic and its dependencies.

If you want browser-based configuration/preview UIs, install optional web UI extras:

pip install partomatic[webui]

For the standalone configuration editor only, you can also use:

pip install partomatic[gui]

Parametric Modeling

Parametric 3D modeling is a method of creating 3D models where the geometry is defined by parameters, allowing for easy adjustment by simply changing the values of these parameters. This approach enables the creation of flexible and reusable designs that can be quickly adapted to different requirements.

Using the partomatic library gives you built in support for loading parameters from YAML files -- YAML is a very human, readable format -- someone without any technology background can look at a yaml file that looks like:

wheel:
    radius: 20
    thickness: 4
    bearing:
        diameter: 5
        thickness: 4

and understand how this represents these related parts

Partomatic Components

There are 3 primary components to the partomatic library:

  • AutomatablePart — This dataclass represents a build123d part with augmentation to control the location of the part as well as the file name
  • PartomaticConfig — This dataclass handles loading parameters from yaml strings or files.
  • Partomatic — This is the base class for generating, displaying, and exporting 3d objects based on the parameters loaded in the config member variable, which is a PartomaticConfig object.

Partomatic also provides runtime helpers for interactive workflows:

  • launch_configurator(...) opens a combined config + preview web app (NiceGUI) with an integrated three.js canvas, YAML load/save, and export actions.

Configurator rendering is integrated in-page and does not require a standalone OCP viewer service.

Logging Environment Variables

Partomatic supports environment variables for logging configuration:

  • PARTOMATIC_LOG_LEVEL: logging level for the partomatic logger namespace.
    • Typical values: DEBUG, INFO, WARNING, ERROR, CRITICAL
    • Default: INFO
  • PARTOMATIC_LOG_FORMAT: output format.
    • Values: console, json
    • Default behavior: when unset/invalid, configurator mode defaults to json; other modes default to console.
  • PARTOMATIC_APP_MODE: app mode label included in structured logs as app.mode.
    • Typical values: cli, configurator
    • Default: cli
  • PARTOMATIC_DEPLOYMENT_ENV: deployment environment label included in structured logs as deployment.environment.
    • Typical values: dev, staging, prod
    • Default: prod

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

partomatic-0.8.0.tar.gz (66.6 kB view details)

Uploaded Source

Built Distribution

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

partomatic-0.8.0-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file partomatic-0.8.0.tar.gz.

File metadata

  • Download URL: partomatic-0.8.0.tar.gz
  • Upload date:
  • Size: 66.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for partomatic-0.8.0.tar.gz
Algorithm Hash digest
SHA256 f8b011e925b95ead9a2687ab06ea974ccb2d12dbf7bd60985a368f6bd9faff93
MD5 9deff3045d1e6c44e25139ed941420f3
BLAKE2b-256 ab2e0db1f9d140562f15cd56365cb28df9dfe021dd4122cb5726f1927b1099ef

See more details on using hashes here.

File details

Details for the file partomatic-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: partomatic-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for partomatic-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f03597d64a21f6ac615081db54a77fef722e98cc605bd3bbdca4d10fde1be1f1
MD5 fa496153f455457a3adc01f65370ace0
BLAKE2b-256 638e993c734b8e09c3e56b38c02ed742a94a1a0e493fa4f5efadc6091a52a988

See more details on using hashes here.

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