forbes ca2236c614
Some checks failed
Pylint / build (macOs-latest) (push) Waiting to run
Pylint / build (windows-latest) (push) Waiting to run
Pylint / build (ubuntu-latest) (push) Failing after 17s
chore: add .mailmap to normalize git identity
2026-03-03 14:17:27 -06:00
2026-02-14 21:10:38 +01:00
2023-12-28 12:47:13 +01:00
2025-01-04 23:31:30 +01:00
2024-12-07 23:58:58 +01:00
2018-03-14 19:04:02 +01:00
2026-02-14 21:26:42 +01:00
2024-10-05 23:30:54 +02:00

FreeCAD Gears

A gear workbench for FreeCAD: create involute, cycloid, bevel, worm, timing, lantern and crown gears with full control over parameters.

Requirements

  • FreeCAD ≥ 1.0 (or ≥ 0.16 for older setups)
  • Python ≥ 3.8 (used by FreeCAD)
  • Python packages: numpy, scipy, sympy (optional: jupyter, matplotlib)

Supported gear types

Cylindric involute

  • Shifting, helical, double helical, undercut, fillets

involute-gear

Involute rack

involute-rack

Cylindric cycloid

  • Helical, double helical, fillets

cycloid-gear

Cycloid rack

cycloid-rack

Spherical involute bevel gear

  • Spiral

bevel-gear

Crown gear

crown-gear

Worm gear

worm-gear

Timing gear

timing-gear

Lantern gear

lantern-gear


Installation

In FreeCAD: ToolsAddon Manager → search for “Gears” (or “FCGear”) → Install.

pip

pip install freecad.gears

Or from source:

pip install https://github.com/looooo/freecad.gears/archive/master.tar.gz

Use the same Python/pip that FreeCAD uses on your system.


Usage

In FreeCAD

  1. Open FreeCAD and switch to the Gear workbench.
  2. FileNew (or open a document).
  3. Create a gear from the toolbar and adjust parameters in the property panel.

From Python

import FreeCAD as App
import freecad.gears.commands

gear = freecad.gears.commands.CreateInvoluteGear.create()
gear.num_teeth = 20
gear.beta = 20
gear.height = 10
gear.double_helix = True
App.ActiveDocument.recompute()
Gui.SendMsgToActiveView("ViewFit")

Development

The project uses pixi for environment and task management.

Setup

pixi install

Pixi commands

Tasks (Kurzreferenz)

Befehl Beschreibung
pixi run freecad FreeCAD mit freecad.gears starten.
pixi run lint Pylint.
pixi run test Unit-Tests.
pixi run test-visual Visual-Tests (Display nötig).
pixi run test-visual-xvfb Visual-Tests unter xvfb.
pixi run test-all Alle Tests.
pixi run create-references Referenzbilder erzeugen.
pixi run create-references-xvfb Referenzbilder unter xvfb.
pixi run clean-test Test-Artefakte und Referenzen löschen.

Visual tests use freecad.visual_tests: each project under tests/data/*/ has a metafile.yaml and a .FCStd model; references are stored in references/.

CI (GitHub Actions)

  • Pylint: Runs on push, pull_request and workflow_dispatch (lint does not fail the job).
  • Tests: Unit tests on all OS; visual tests (xvfb) on Ubuntu only.
  • Update reference images: Manual workflow “Update reference images” to regenerate references on CI and push them to the repo.

References

  • Elements of Metric Gear Technology (PDF)

FreeCAD Forum

Please check the issue tracker before opening a new report.


License

GNU General Public License v3.0

Description
No description provided
Readme GPL-3.0 28 MiB
Languages
Python 97.2%
Shell 2.8%