feat: add gears workbench as default addon #361

Merged
forbes merged 1 commits from feat/gears-addon into main 2026-02-28 23:42:14 +00:00
Owner

Summary

Adds the kindred/gears workbench as a default bundled addon under mods/gears. Provides 13 parametric gear generation commands integrated into the Kindred Create editing context system.

Gear Commands

Involute, Internal Involute, Involute Rack, Cycloid, Cycloid Rack, Bevel, Crown, Worm, Timing (2 variants), Lantern, HypoCycloid gears, and Gear Connector.

Integration

  • Submodule: mods/gearshttps://git.kindred-systems.com/kindred/gears.git
  • package.xml: Kindred manifest with load_priority: 40 (sdk=0 → solver=10 → gears=40 → silo=60), depends on sdk
  • Init.py: Console bootstrap — adds repo root to sys.path for pygears math library and freecad.gears namespace package
  • InitGui.py: Imports upstream GearWorkbench registration + deferred injection of all 13 gear commands into partdesign.body and partdesign.feature editing contexts via kindred_sdk.inject_commands()

context.py routing

Already completed in #351kindred_sdk/context.py routes through kcsdk C++ module first with FreeCADGui fallback.

Verification

  • pygears importable from pixi environment
  • package.xml parses correctly (name=gears, priority=40, dep=sdk, subdir=freecad/gears)
  • Init.py path arithmetic verified: resolves to correct repo root
  • Both Init.py and InitGui.py present at workbench path
  • Dependencies (numpy, scipy, sympy) available in pixi env
## Summary Adds the [kindred/gears](https://git.kindred-systems.com/kindred/gears) workbench as a default bundled addon under `mods/gears`. Provides 13 parametric gear generation commands integrated into the Kindred Create editing context system. ### Gear Commands Involute, Internal Involute, Involute Rack, Cycloid, Cycloid Rack, Bevel, Crown, Worm, Timing (2 variants), Lantern, HypoCycloid gears, and Gear Connector. ### Integration - **Submodule:** `mods/gears` → `https://git.kindred-systems.com/kindred/gears.git` - **package.xml:** Kindred manifest with `load_priority: 40` (sdk=0 → solver=10 → **gears=40** → silo=60), depends on `sdk` - **Init.py:** Console bootstrap — adds repo root to `sys.path` for `pygears` math library and `freecad.gears` namespace package - **InitGui.py:** Imports upstream `GearWorkbench` registration + deferred injection of all 13 gear commands into `partdesign.body` and `partdesign.feature` editing contexts via `kindred_sdk.inject_commands()` ### context.py routing Already completed in #351 — `kindred_sdk/context.py` routes through `kcsdk` C++ module first with `FreeCADGui` fallback. ### Verification - `pygears` importable from pixi environment - `package.xml` parses correctly (name=gears, priority=40, dep=sdk, subdir=freecad/gears) - `Init.py` path arithmetic verified: resolves to correct repo root - Both `Init.py` and `InitGui.py` present at workbench path - Dependencies (`numpy`, `scipy`, `sympy`) available in pixi env
forbes added 1 commit 2026-02-28 21:17:31 +00:00
feat: add gears workbench as default addon
All checks were successful
Build and Test / build (pull_request) Successful in 29m39s
04065e83f3
Add kindred/gears as a submodule under mods/gears. The gears workbench
provides 13 parametric gear commands (involute, cycloid, bevel, worm,
crown, timing, lantern, hypocycloid gears + connectors).

Integration:
- Kindred package.xml with load_priority 40 (sdk -> solver -> gears -> silo)
- Init.py adds repo root to sys.path for pygears + namespace package
- InitGui.py imports upstream GearWorkbench and injects gear commands
  into partdesign.body and partdesign.feature editing contexts
- context.py kcsdk routing already complete from #351
forbes merged commit 153f75e6e7 into main 2026-02-28 23:42:14 +00:00
forbes deleted branch feat/gears-addon 2026-02-28 23:42:15 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#361