This project contains 3D models (board game inserts, hydroponic and home improvements) and helper tools for their creation based on the build123d framework.
The project includes a set of high-level wrapper classes that simplify common 3D modeling operations with build123d:
- SmartSolid - Primary wrapper around build123d shapes with fluent API for transformations, alignment system, and bound box helpers
- SmartBox - Box primitive with cutout operations and tapered walls support
- SmartSphere - Sphere primitive with hollow interior and shell creation
- SmarterCone - Cone/cylinder primitive with shell and offset methods
- Pencil - 2D drawing tool for creating complex profiles via lines and arcs, then extruding/revolving into 3D
- SweepSolid - Creates 3D shapes by sweeping a 2D profile along a path
- ModelCutter - Advanced cutting system for splitting models along wire paths
- Grand Austria Hotel - Player trays, turn order track, celebrities storage (work in progress)
- Basket - Hydroponic basket with cap (Thingiverse, Maker world).
- Connector - Pipe connector.
- Splitter - Water pump flow control connector (Thingiverse, Maker world).
- Stand - Hydroponic setup stand with side piping.
- Tray - Germination tray for Ahopegarden hydroponic system (Thingiverse, Maker world).
- Cable Holder - Wall-mounted holder with split ball cable organizers (Thingiverse, MakerWorld).
- Marker Holder - Wall-mounted marker holder (Thingiverse, MakerWorld).
- Cable Storage - Wall-mounted cable organizer with railings (work in progress).
- Power Adapters - Travel power adapter storage box for 12 international socket types (Thingiverse, MakerWorld).
/commit— Analyzes changes and generates Conventional Commit messages/create_model— Create new model based on build123d framework/publish_model— Create model description and publish to Thingiverse and MakerWorld
Install the required dependencies:
pip install -r requirements.txtThis project uses F3D as the recommended viewer for generated 3D models. It provides an opportunity to automatically reload model upon file changes. Having export operation as the last step of your script will let you see the changes after each execution:
from sava.csg.build123d.common.exporter import Exporter
Exporter(model_to_export).export()A convenience f3d.bat batch file is provided at the project root:
f3d-console models\current_model.3mf --watch --opacity=0.6It uses the following arguments:
models\current_model.3mf- Path to the (default) model file to view--watch- Automatically reload the file when it changes--opacity=0.6- Set model transparency to 60% for better visibility