055aab2e078a55e3737ab9d0c0ec21589f0992f2
The original, now replaced, way had the benefit of reusing the existing helicalextrusion method, but the following boolean cut operation was a) slow and b) suffered from co-planar issues. The new way extrudes the face directly which does not have these shortcommings. Unfortunaly, we had to use a different API: the original one is simple and straight forward, gives no easy way to access the end of the sweep. Collecting the wires manually, filtering on the position of all vertexes, unvailed tolerances heigher then 0.1, so that a face created from it was not planar and prevented ceating a valid solid. The now used API requires more manual work in the initial setup, but the end wires for construction the top face are directly accesible and the tolerances are below 0.001 so we can create a planar face and valid solid. This new way also much faster (1.6 sec vs. 5.0 sec on my machine using default gear parameters on a double helix, naively measured via `time.perf_counter()`). Currently, the new helical extusion method is only used for the internal gear. Migrating the other usages will be done as a separate commit.
A Gear module for FreeCAD
Requirements
FreeCAD > v0.16
python > 3 (for python2 use branch py2)
Supported gear-types
Cylindric Involute
- Shifting
- Helical
- Double Helical
- Undercut
Involute Rack
Cylindric Cycloid
- Helical
- Double Helical
Spherical Involute Bevel-Gear
- Spiral
Crown-Gear
Worm-Gear
Timing-Gear
Lantern-Gear
Installation
Addon Manager
Starting from v0.17 it's possible to use the built-in FreeCAD Addon Manager
located in the Tools > Addon Manager dropdown menu.
pip
pip install https://github.com/looooo/FCGear/archive/master.tar.gz
Important note: Most systems have multiple versions of python installed. Make sure the pip you're using is used by FreeCAD as well.
Usage
Create a gear manually
- Open freecad
- Switch to the gear workbench
- Create new document
- Create a gear (click on a gear symbol in the toolbar)
- Change the gear parameters
Scripted gears
Use the power of python to automate your gear modeling:
import FreeCAD as App
import freecad.gears.commands
gear = freecad.gears.commands.CreateInvoluteGear.create()
gear.teeth = 20
gear.beta = 20
gear.height = 10
gear.double_helix = True
App.ActiveDocument.recompute()
Gui.SendMsgToActiveView("ViewFit")
References
- Elements of Metric Gear Technology (PDF)
FreeCAD Forum threads
These are forum threads where FreeCAD Gears has been discussed. If you want to give Feedback or report a bug please use the below threads. Please make sure that the report hasn't been reported already by browsing this repositories issue queue.
- "CONTINUED: involute gear generator preview !" (thread)
- "Bevel gear - module/script/tutorial" (thread)
- "Gears in FreeCAD: FC Gear" (thread)
- "FC Gears: Feedback thread" (thread)
License
GNU General Public License v3.0
Languages
Python
97.2%
Shell
2.8%







