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: .. code-block:: console pip install ./draworg-0.2.0-py3-none-any.whl Documentation ------------- The module has built-in documentation: .. code-block:: console $ 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: .. code-block:: console $ 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: .. code-block:: console $ python -m draworg part Panel 5 3 --support-disc-radius=0 Panel_H5_W03: 100%|████████████████████████████████████████| 1/1 [00:00<00:00, 1.22it/s] .. figure:: schemes/cli-panel-part.svg Non-standard 5x3 cm² panel part To generate a fused wave to accomodate two large tools: .. code-block:: console $ 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] .. figure:: schemes/cli-wave.svg Custom fused wave To generate a set of 5-cm-height parts with custom clearance values: .. code-block:: console $ 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``.