a88e104d9489d72462b0580d6f9ef6df3314dd52
Add a template system that lets users create new items from pre-configured .kc template files and save existing documents as reusable templates. Template use (New Item form): - templates.py: discovery, filtering, TemplateInfo dataclass - schema_form.py: template combo picker filtered by type/category - silo_commands.py: SiloSync.create_document_from_template() copies template .kc, strips identity, stamps Silo properties Template creation (Save as Template): - SaveAsTemplateDialog: captures name, description, item types, categories, author, and tags - Silo_SaveAsTemplate command: copies doc, strips Silo identity, injects silo/template.json, optionally uploads to Silo - Registered in Silo menu via InitGui.py Template search paths (3-tier, later shadows earlier by name): 1. mods/silo/freecad/templates/ (system) 2. ~/.local/share/FreeCAD/Templates/ (personal, sister to Macro/) 3. ~/projects/templates/ (org-shared)
silo-mod
FreeCAD workbench for the Silo parts database. Provides item management, revision control, BOM editing, and file synchronization within Kindred Create.
Structure
silo-mod/
├── silo-client/ [submodule] shared Python API client
├── freecad/ FreeCAD workbench package
│ ├── Init.py Console initialization (adds silo-client to sys.path)
│ ├── InitGui.py Workbench registration
│ ├── silo_commands.py 14 commands + SiloSync + auth dock widget
│ ├── silo_origin.py FileOrigin adapter for unified origin system
│ ├── package.xml Workbench metadata
│ └── resources/icons/ SVG icons (Catppuccin Mocha palette)
├── Makefile Install/uninstall targets
└── LICENSE
Installation
For standalone use (outside Kindred Create):
git clone --recurse-submodules https://git.kindred-systems.com/kindred/silo-mod.git
cd silo-mod
make install-freecad
Within Kindred Create, this repo is included as a submodule at mods/silo/ and loaded automatically by src/Mod/Create/Init.py.
License
MIT
Languages
Python
99.2%
Makefile
0.8%