Command line interface

The draworg Python module can be called from the command line to generate custom single parts, including fused waves, part sets, or the full complement of meshes available in releases.

Installation

Download the pre-built Python package from the Releases page, then install it with the pip package manager:

pip install ./draworg-0.2.0-py3-none-any.whl

Documentation

The module has built-in documentation:

$ python -m draworg --help
usage: python -m draworg [-h] [-V] COMMAND ...

positional arguments:
  COMMAND
    part         build a single part
    set          build a set of parts
    wave         build a fused wave
    wave-width   compute a fused wave’s width (cm)
    wave-set     build a set of fused waves
    release      build all parts for release

options:
  -h, --help     show this help message and exit
  -V, --version  show program version and exit

Each command has its own documentation topic:

$ python -m draworg set --help
usage: python -m draworg set [-h] [-f] [-o DIR] [--box-clearance FLOAT]
                             [--dovetail-clearance FLOAT] [--filament-clearance FLOAT]
                             [--groove-clearance FLOAT] [--peg-clearance FLOAT]
                             [--support-disc-radius FLOAT]
                             HEIGHT [HEIGHT ...]

positional arguments:
  HEIGHT                panel height to build parts for

options:
  -h, --help            show this help message and exit
  -f, --force           overwrite existing files
  -o, --output-directory DIR
                        output directory (default: cwd)
  --box-clearance FLOAT
                        clearance for box joints (e.g. corners) (mm, default: 0.1)
  --dovetail-clearance FLOAT
                        clearance for dovetail joints (e.g. between panel parts) (mm,
                        default: 0.025)
  --filament-clearance FLOAT
                        clearance for the filament hole (in corner pieces) (mm, default:
                        0.15)
  --groove-clearance FLOAT
                        clearance between grooves and panels (mm, default: 0.1)
  --peg-clearance FLOAT
                        clearance between pegs and holes (mm, default: 0.015)
  --support-disc-radius FLOAT
                        support disc radius (mm, default: 5)

Examples

To generate a panel part with 5-cm height, (non-standard) 3-cm width, and no support discs:

$ python -m draworg part Panel 5 3 --support-disc-radius=0
Panel_H5_W03: 100%|████████████████████████████████████████| 1/1 [00:00<00:00,  1.22it/s]
_images/cli-panel-part.svg

Non-standard 5x3 cm² panel part

To generate a fused wave to accomodate two large tools:

$ python -m draworg wave --crest-height=4 L1,T2,C1,T2,R1 LargeHolder2
Wave_LargeHolder2_W11.5: 100%|█████████████████████████████| 1/1 [00:00<00:00,  2.98it/s]
_images/cli-wave.svg

Custom fused wave

To generate a set of 5-cm-height parts with custom clearance values:

$ python -m draworg set 5 \
    --box-clearance=0.15 \
    --dovetail-clearance=0.05 \
    --filament-clearance=0.225 \
    --groove-clearance=0.1 \
    --peg-clearance=0.02
 WaveThrough_W8: 100%|███████████████████████████████████| 49/49 [00:16<00:00,  2.89it/s]

These values are midway between ClearanceStandard and ClearanceLoose.