From 929f61aef21625a5ba4d41d8be256a41608f3baf Mon Sep 17 00:00:00 2001 From: forbes Date: Tue, 27 Jan 2026 08:22:53 -0600 Subject: [PATCH] Add ztools and silo as git submodules in mods/ - Create mods/ directory for Kindred Create addon modules - Add ztools workbench as submodule at mods/ztools - Add silo parts database as submodule at mods/silo - Update README with new project structure and submodule instructions --- .gitmodules | 6 ++ README.md | 300 ++++++++++++++++++++++++++++++++++++---------------- mods/silo | 1 + mods/ztools | 1 + 4 files changed, 215 insertions(+), 93 deletions(-) create mode 160000 mods/silo create mode 160000 mods/ztools diff --git a/.gitmodules b/.gitmodules index 9bad1a2147..85465a0468 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,9 @@ [submodule "src/Mod/AddonManager"] path = src/Mod/AddonManager url = https://github.com/FreeCAD/AddonManager.git +[submodule "mods/ztools"] + path = mods/ztools + url = git@gitea.kindred.internal:kindred/ztools-0065.git +[submodule "mods/silo"] + path = mods/silo + url = git@gitea.kindred.internal:kindred/silo-0062.git diff --git a/README.md b/README.md index d9621793fd..62d245a23b 100644 --- a/README.md +++ b/README.md @@ -1,119 +1,233 @@ - +# Kindred Create -### Your own 3D Parametric Modeler +**An engineering-focused parametric 3D CAD platform built on FreeCAD 1.0+** -[Website](https://www.freecad.org) • -[Documentation](https://wiki.freecad.org) • -[Forum](https://forum.freecad.org/) • -[Bug tracker](https://github.com/FreeCAD/FreeCAD/issues) • -[Git repository](https://github.com/FreeCAD/FreeCAD) • -[Blog](https://blog.freecad.org) +[Website](https://www.kindred-systems.com/create) • +[FreeCAD Documentation](https://wiki.freecad.org) • +[FreeCAD Forum](https://forum.freecad.org/) +> **MVP Release** - Kindred Create is currently in active development. Features and interfaces may change. -[![Release](https://img.shields.io/github/release/freecad/freecad.svg)](https://github.com/freecad/freecad/releases/latest) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/freecad/localized.svg)](https://crowdin.com/project/freecad) +--- - +## Overview -Overview --------- +Kindred Create is a fork of FreeCAD 1.0+ that integrates custom workbenches and tooling for professional engineering workflows. It combines the power of FreeCAD's parametric modeling with purpose-built extensions for part design, assembly management, and parts database integration. -* **Freedom to build what you want** FreeCAD is an open-source parametric 3D -modeler made primarily to design real-life objects of any size. -Parametric modeling allows you to easily modify your design by going back into -your model history to change its parameters. +**Key additions over base FreeCAD:** -* **Create 3D from 2D and back** FreeCAD lets you sketch geometry-constrained - 2D shapes and use them as a base to build other objects. - It contains many components to adjust dimensions or extract design details from - 3D models to create high quality production-ready drawings. +- **ztools Workbench** - Unified interface consolidating part design, assembly, and drawing tools with custom engineering features +- **Silo Integration** - Parts database system for tracking, versioning, and managing CAD files across teams +- **Catppuccin Mocha Theme** - Dark theme optimized for extended work sessions -* **Designed for your needs** FreeCAD is designed to fit a wide range of uses -including product design, mechanical engineering and architecture, -whether you are a hobbyist, programmer, experienced CAD user, student or teacher. +Kindred Create is maintained by [Kindred Systems LLC](https://www.kindred-systems.com). -* **Cross platform** FreeCAD runs on Windows, macOS and Linux operating systems. +--- -* **Underlying technology** - * **OpenCASCADE** A powerful geometry kernel, the most important component of FreeCAD - * **Coin3D library** Open Inventor-compliant 3D scene representation model - * **Python** FreeCAD offers a broad Python API - * **Qt** Graphical user interface built with Qt +## Features +### ztools Workbench -Installing ----------- +The ztools workbench provides a unified interface that consolidates functionality from multiple FreeCAD workbenches while adding custom engineering-oriented tools. -Precompiled packages for stable releases are available for Windows, macOS and Linux on the -[latest releases page](https://github.com/FreeCAD/FreeCAD/releases/latest). +#### Consolidated Toolbars (17 total) -On most Linux distributions, FreeCAD is also directly installable from the -software center application. +ztools exposes commands from PartDesign, Sketcher, Assembly, and Spreadsheet workbenches through a single unified interface: -For weekly development releases visit the [releases page](https://github.com/FreeCAD/FreeCAD/releases/). +- **Structure & Sketcher Tools** - Body/Sketch creation, editing, mapping, validation +- **PartDesign Datums** - Planes, lines, points, coordinate systems, binders, clones +- **Additive Features** - Pad, revolution, loft, pipe, helix, and primitives +- **Subtractive Features** - Pocket, hole, groove, loft, pipe, helix, and primitives +- **Transformations** - Mirror, linear pattern, polar pattern, multi-transform +- **Dress-Up Features** - Fillet, chamfer, draft, thickness +- **Boolean Operations** - Union, intersection, difference +- **Assembly Tools** - Create assembly, insert link, insert new part +- **Assembly Joints** - 13 joint types (fixed, revolute, cylindrical, slider, ball, distance, parallel, perpendicular, angle, rack-pinion, screw, gears, belt) +- **Assembly Management** - Toggle grounded, solve, create view, create BOM, export +- **Spreadsheet Tools** - Create, import, export, aliases, merge/split cells -Other options are described on the [wiki Download page](https://wiki.freecad.org/Download). +#### Custom Datum Tools -Compiling ---------- +ztools includes a custom datum creation system with 16 creation modes, using a purpose-built attachment system that stores geometry references for reliable parametric updates. -FreeCAD requires several dependencies to correctly compile for development and -production builds. The following pages contain updated build instructions for -their respective platforms: +**Datum Planes (7 modes):** +- Offset from Face - Distance offset perpendicular to a face +- Offset from Plane - Distance offset from an existing datum plane +- Midplane - Plane equidistant between two parallel faces +- 3 Points - Plane defined by three vertices +- Normal to Edge - Plane perpendicular to an edge at a specified parameter +- Angled - Plane rotated about an edge by a specified angle +- Tangent to Cylinder - Plane tangent to a cylindrical surface + +**Datum Axes (4 modes):** +- 2 Points - Axis through two vertices +- From Edge - Axis aligned with a linear edge +- Cylinder Center - Axis at the center of a cylindrical face +- Plane Intersection - Axis at the intersection of two planes + +**Datum Points (5 modes):** +- At Vertex - Point at a selected vertex +- XYZ Coordinates - Point at absolute coordinates +- On Edge - Point at a parameter along an edge +- Face Center - Point at the centroid of a face +- Circle Center - Point at the center of a circular edge + +#### Custom Pattern Tools + +- **Rotated Linear Pattern** - Linear pattern with incremental rotation per instance +- **Assembly Linear Pattern** - Pattern assembly components linearly with spacing control +- **Assembly Polar Pattern** - Pattern assembly components around a rotation axis + +#### Enhanced Pocket + +SOLIDWORKS-style "Flip Side to Cut" feature that removes material outside the sketch profile instead of inside, using boolean operations internally. + +#### Spreadsheet Formatting Tools + +Dark-theme compatible formatting commands for spreadsheets: +- Bold, italic, underline toggles +- Left, center, right alignment +- Background and text color pickers +- Quick alias creation from cell labels + +### Silo Parts Database + +Silo is a parts database system designed for managing CAD files, part numbers, and revision history across engineering teams. + +**Architecture:** +- **Server Daemon** - Go-based REST API server +- **PostgreSQL** - Relational data storage for part metadata, relationships, and revision history +- **MinIO** - S3-compatible object storage for CAD file versioning +- **FreeCAD Workbench** - Integrated commands for check-in, check-out, and synchronization + +**Core Capabilities:** +- Configurable part numbering schemas defined in YAML +- Full revision history with status tracking (draft, review, released, obsolete) +- Bill of materials management with relationship types and quantities +- Project-based organization and tagging +- CSV import/export for bulk operations +- Web interface for browsing and searching parts + +**FreeCAD Integration:** +- Open, save, and commit files directly to Silo +- Pull latest revisions and push changes +- View item metadata and revision history + +Silo documentation is available in the `mods/silo/` directory. + +### Catppuccin Mocha Theme + +A comprehensive dark theme using the [Catppuccin Mocha](https://github.com/catppuccin/catppuccin) color palette, applied across: + +- Main window, toolbars, and menus +- 3D viewport backgrounds and selection colors +- Sketch editor colors for edges, vertices, and constraints +- Python console and code editor syntax highlighting +- Spreadsheet backgrounds and text +- Property editor and tree view +- All dialog and widget styling + +The theme is automatically applied when using Kindred Create. + +--- + +## Installing + +### Prebuilt Binaries + +Prebuilt packages for Linux are available on the [releases page](https://github.com/anthropics/create-0070/releases). + +### Building from Source + +Kindred Create uses the same build system as FreeCAD. Build instructions for each platform: - [Linux](https://wiki.freecad.org/Compile_on_Linux) - [Windows](https://wiki.freecad.org/Compile_on_Windows) - [macOS](https://wiki.freecad.org/Compile_on_MacOS) -- [MinGW](https://wiki.freecad.org/Compile_on_MinGW) - - -Reporting Issues ---------- - -To report an issue please: - -- Consider posting to the [Forum](https://forum.freecad.org), [Discord](https://discord.com/invite/w2cTKGzccC) channel, or [Reddit](https://www.reddit.com/r/FreeCAD) to verify the issue; -- Search the existing [issues](https://github.com/FreeCAD/FreeCAD/issues) for potential duplicates; -- Use the most updated stable or [development versions](https://github.com/FreeCAD/FreeCAD/releases/) of FreeCAD; -- Post version info from `Help > About FreeCAD > Copy to clipboard`; -- Restart FreeCAD in safe mode `Help > Restart in safe mode` and try to reproduce the issue again. If the issue is resolved it can be fixed by deleting the FreeCAD config files. -- Start recording a macro `Macro > Macro recording...` and repeat all steps. Stop recording after the issue occurs and upload the saved macro or copy the macro code in the issue; -- Post a Step-By-Step explanation on how to recreate the issue; -- Upload an example file (FCStd as ZIP file) to demonstrate the problem; - -For more details see: - -- [Bug Tracker](https://github.com/FreeCAD/FreeCAD/issues) -- [Reporting Issues and Requesting Features](https://github.com/FreeCAD/FreeCAD/issues/new/choose) -- [Contributing](https://github.com/FreeCAD/FreeCAD/blob/main/CONTRIBUTING.md) -- [Help Forum](https://forum.freecad.org/viewforum.php?f=3) - -> [!NOTE] -The [FPA](https://fpa.freecad.org) offers developers the opportunity -to apply for a grant to work on projects of their choosing. Check -[jobs and funding](https://blog.freecad.org/jobs/) to know more. - - -Usage & Getting Help --------------------- - -The FreeCAD wiki contains documentation on -general FreeCAD usage, Python scripting, and development. -View these pages for more information: - -- [Getting started](https://wiki.freecad.org/Getting_started) -- [Features list](https://wiki.freecad.org/Feature_list) -- [Frequent questions](https://wiki.freecad.org/FAQ/en) -- [Workbenches](https://wiki.freecad.org/Workbenches) -- [Scripting](https://wiki.freecad.org/Power_users_hub) -- [Developers Handbook](https://freecad.github.io/DevelopersHandbook/) - -The [FreeCAD forum](https://forum.freecad.org) is a great place -to find help and solve specific problems when learning to use FreeCAD. --- -

This project receives generous infrastructure support from - - - and KiCad Services Corp. -

+## Usage + +### Getting Started + +Kindred Create is compatible with standard FreeCAD workflows. The FreeCAD wiki provides documentation on general usage: + +- [Getting started](https://wiki.freecad.org/Getting_started) +- [Features list](https://wiki.freecad.org/Feature_list) +- [Workbenches](https://wiki.freecad.org/Workbenches) +- [Scripting](https://wiki.freecad.org/Power_users_hub) + +### ztools Workbench + +The ztools workbench is available from the workbench selector. On activation, it presents consolidated toolbars and applies the Catppuccin Mocha theme to spreadsheets. + +### Silo Setup + +Silo requires a running server instance with PostgreSQL and MinIO. See `mods/silo/README.md` for server deployment instructions. + +Configure the FreeCAD workbench with environment variables: +- `SILO_API_URL` - Silo server API endpoint (default: `http://localhost:8080/api`) +- `SILO_PROJECTS_DIR` - Local projects directory (default: `~/projects`) + +--- + +## Project Structure + +``` +kindred-create/ +├── src/ # FreeCAD core source +├── Mod/ # FreeCAD modules +├── mods/ # Kindred Create addon modules (git submodules) +│ ├── ztools/ # ztools workbench +│ │ ├── ztools/ # Workbench package +│ │ │ ├── InitGui.py # Workbench registration +│ │ │ └── ztools/ # Commands and resources +│ │ └── CatppuccinMocha/ # Theme preference pack +│ └── silo/ # Silo parts database +│ ├── cmd/ # Go entry points +│ ├── internal/ # Go packages +│ ├── pkg/freecad/ # FreeCAD workbench +│ └── deployments/ # Docker configuration +└── resources/ # Branding and preferences + ├── branding/ # Splash screens and logos + └── preferences/ # Default preference packs +``` + +The `mods/ztools` and `mods/silo` directories are git submodules. After cloning, initialize them with: + +```bash +git submodule update --init --recursive +``` + +--- + +## Reporting Issues + +When reporting issues: + +1. Specify whether the issue is with Kindred Create additions (ztools, Silo, theme) or base FreeCAD functionality +2. Include version info from `Help > About FreeCAD > Copy to clipboard` +3. Provide steps to reproduce the issue +4. Attach example files if applicable (FCStd as ZIP) + +For base FreeCAD issues, consider also checking the [FreeCAD issue tracker](https://github.com/FreeCAD/FreeCAD/issues). + +--- + +## License + +Kindred Create is licensed under the [LGPL-2.1-or-later](LICENSE) license, consistent with FreeCAD. + +--- + +## Acknowledgments + +Kindred Create is built on [FreeCAD](https://www.freecad.org), an open-source parametric 3D modeler. We acknowledge the FreeCAD community and contributors for their foundational work. + +**Underlying Technology:** +- [OpenCASCADE](https://www.opencascade.com/) - Geometry kernel +- [Coin3D](https://github.com/coin3d/coin) - 3D scene representation +- [Qt](https://www.qt.io/) - GUI framework +- [Python](https://www.python.org/) - Scripting and workbench development +- [Catppuccin](https://github.com/catppuccin/catppuccin) - Color palette diff --git a/mods/silo b/mods/silo new file mode 160000 index 0000000000..5ee88a657f --- /dev/null +++ b/mods/silo @@ -0,0 +1 @@ +Subproject commit 5ee88a657fb266832c967fae805188e85ba8bd68 diff --git a/mods/ztools b/mods/ztools new file mode 160000 index 0000000000..e6f1de4ef8 --- /dev/null +++ b/mods/ztools @@ -0,0 +1 @@ +Subproject commit e6f1de4ef8421f483ea69838908e2d9b772d6438