Fusion 360 Add-In · Arroway Ltd
EqSketch
Drive Fusion 360 sketches with math.
Two commands tucked into Sketch → Create: Equation Curve for parametric and polar splines, and Gear Wizard for involute gears and matching racks — complete with named parameters that flow into Fusion's own Parameters dialog.
What's inside
Everything you need, nothing you don't.
EqSketch is a focused tool. It adds exactly two commands and gets out of your way.
Equation Curve
Sketch any curve you can express mathematically. Parametric mode gives you independent X(t), Y(t), and Z(t) expressions — ideal for helices, Lissajous figures, and 3D paths. Polar mode takes r(θ) for rose curves, spirals, and cardioids.
- ① Mode selector Parametric gives X(t), Y(t), Z(t) inputs — good for helices, Lissajous figures, and 3D space curves. Polar gives a single r(θ) input — good for spirals, rose curves, and cardioids.
- ② X(t) expression Any combination of t, named params, and whitelisted math functions. Use Z(t)=0 to stay flat.
- ③ Y(t) expression Expression for the Y coordinate at each sample point.
- ④ Z(t) expression Non-zero Z creates a 3D curve. For a flat sketch curve keep this at 0.
- ⑤ Parameters block Named values (e.g. r=20) become Fusion user parameters with the
eq_prefix, visible in the Parameters dialog and usable to drive model dimensions. - ⑥ t range Curve parameter range. Full circle: 0 to 2*pi. Half-arc: 0 to pi.
- ⑦ Sample points Number of points the spline passes through. 20–80 for most curves; 200–400 for high-frequency waves. Over 400 auto-splits into two segments.
- ⑧ Closed curve Joins the last sample back to the first. Use for closed loops; leave unchecked for open paths.
- t range with configurable start and end
- 2–400 sample points; auto-splits above 400
- Closed curve option connects last point to first
- Palette stays open for rapid iteration
- Warns when no active sketch is open
Gear Wizard
Full involute gear profiles generated from standard parameters. Choose sketch-only, extrude to solid, or helical sweep — all from one dialog. A separate Rack tab auto-syncs the helix angle for rack-and-pinion pairs.
Rack tab mirrors the same module and pressure angle, with helix angle auto-synced for rack-and-pinion pairs.
- ① Module (m) Controls tooth size. m=1 means 1 mm pitch radius per tooth. Standard modules: 0.5, 0.8, 1, 1.5, 2, 2.5, 3. Imperial: m = 25.4 / DP.
- ② Teeth (z) Number of teeth. Minimum 3; recommend ≥17 at 20° PA with zero profile shift to avoid undercut. A warning appears for z < 8.
- ③ Pressure angle Flank angle at the pitch circle. 20° is the global standard; 14.5° is legacy; 25° for heavy or shock loads. Must match the mating gear.
- ④ Profile shift (x) Moves the pitch circle toward the tip. Positive shift reduces undercut on low-tooth gears. Range −0.5 to 0.5. Must account for shift on the mating gear to keep correct centre distance.
- ⑤ Flank resolution Points per tooth flank spline. 20 for previews; 40–60 for final parts; 80 for large gears needing smooth flanks at any zoom.
- ⑥ Output Full gear creates the complete profile. Single tooth is faster for array-patterned builds. Pitch circle gives the reference circle only — useful for layout and centre-distance construction.
- ⑦ Build Sketch inserts the profile curve. Extrude adds a Face Width input and creates a solid. Helical sweep adds a Helix Angle input and sweeps the profile.
- ⑧ Hub hole Adds a centre bore of the given diameter. Diameter validation ensures it is smaller than the root circle.
- ⑨ Live derived values Updates in real time as you type. Centre distance for a pair: C = m × (z₁ + z₂) / 2.
- Module, teeth, pressure angle, profile shift
- Full profile · single tooth · pitch circle outputs
- Extrude or helical sweep (face width + helix angle)
- Optional hub hole with configurable diameter
- Matching rack with body height control
Safe Expression Evaluator
EqSketch never calls eval(), exec(), or compile().
Expressions are parsed with ast.parse() then validated through a strict
two-layer whitelist before a single value is computed.
- Layer 1: any expression with
__rejected before AST construction - Layer 2: AST walker permits only literals, operators, and whitelisted functions
- Blocked: attribute access, keyword args, import / exec / eval / open / getattr
- Dry-run at t=0 catches expression errors eagerly, before Fusion's spline builder runs
Named Parameters → User Params
Any named variable in your expression — A, k, pitch
— becomes a Fusion 360 user parameter with an eq_ prefix. Change the value
in Fusion's Parameters dialog and update the curve without re-opening EqSketch.
- Parameters appear in Fusion's Parameters dialog
- Can drive sketch dimensions and other features
- Registered on first curve insert in the session
- Works with both Equation Curve and Gear Wizard
Gear Library
Save and reload named gear profiles across sessions. The library persists as
saved_gears.json in the add-in folder — back it up before uninstalling.
Build a personal catalogue of standard gear families for your projects.
- Save any gear configuration under a custom name
- Reload profiles instantly from the Gear Wizard dialog
- Persists between Fusion sessions and restarts
- Back up saved_gears.json to preserve your library
Rack & Pinion Pairs
The Rack tab mirrors the Gear tab's parameters and auto-syncs the helix angle, making it straightforward to generate a matched rack-and-pinion pair in one session. A live derived-values panel updates pitch, addendum, and tooth depth as you type.
- Module and pressure angle must match between tabs
- Helix angle auto-syncs from Gear tab
- Live: circular pitch, addendum, dedendum, total length
- Body height control for the rack blank
Curve type reference
Parametric vs. Polar
Choose the mode that matches how you think about the shape.
| Mode | Inputs | Good for | Example |
|---|---|---|---|
| Parametric 2D | X(t), Y(t) | Ellipses, Lissajous figures, cam profiles, any closed or open planar path | X = a·cos(t) Y = b·sin(t) |
| Parametric 3D | X(t), Y(t), Z(t) | Helices, spirals, 3D sweep paths, spring profiles | X = r·cos(t) Y = r·sin(t) Z = pitch·t/(2·pi) |
| Polar | r(θ) | Rose curves, Archimedean spirals, cardioids, limaçons | r = A·cos(k·θ) |
Available math functions
sincostanasinacos atanatan2sinhcoshtanh degreesradians sqrtexploglog10 abshypotfloorceilround minmax pitauet Operators
Standard arithmetic: + - * / ** (power) % (modulo) // (floor division).
Unary minus is supported. No bitwise operators, no comparisons.
Gear Wizard — live derived values
The math, done for you.
The panel updates every keystroke. No calculator required.
Gear tab
Rack tab
Note: Profile shift x ranges from −0.5 to +0.5. Values near the limits with low tooth counts (z < 8) will trigger an undercut warning — the wizard proceeds but flags the condition. For very low z + extreme shift combinations, tip width may approach zero and the wizard will show an error before inserting.
Installation
Up and running in two minutes.
No installer. No admin rights. Just point Fusion 360 at the folder.
-
Download the add-in
Clone the repository or download the ZIP from GitHub and extract it anywhere on your machine. The folder must be named
Fusion360-EqSketch. -
Open Scripts and Add-Ins
In Fusion 360, go to Tools → Add-Ins → Scripts and Add-Ins (or press Shift+S). Click the + button next to My Add-Ins.
-
Select the folder
Navigate to and select the
Fusion360-EqSketchfolder. Fusion will detect the manifest and list EqSketch under My Add-Ins. -
Run (and optionally enable at startup)
Select EqSketch and click Run. To load it automatically every time Fusion starts, check Run on Startup before clicking Run.
-
Find the commands
Equation Curve and Gear Wizard appear under Sketch → Create. Gear Wizard is also accessible under Solid → Create when working in a component.
Usage tips
Get the most out of EqSketch.
Open a sketch first
Equation Curve requires an active sketch. Create or double-click into a sketch before launching the palette.
Iterate without closing
The palette stays open after each insert. Adjust your expressions and click Insert again — great for tuning a shape interactively.
Name your constants
Use A = 30 in your expression rather than a raw number. EqSketch registers eq_A in Fusion's Parameters — change it later without reopening the palette.
Match module and pressure angle for rack-pinion
Set identical module and pressure angle on both the Gear and Rack tabs before generating. Mismatched values will produce profiles that don't mesh.
Back up your Gear Library
Saved profiles live in saved_gears.json inside the add-in folder. Copy this file before uninstalling or moving the add-in directory.
Tune sample count deliberately
Higher sample counts produce smoother curves but slow Fusion's spline builder. For display models try 80–120; for precision paths go up to 300. EqSketch auto-splits above 400.
Troubleshooting
Common questions & known issues.
"No active sketch" warning when opening Equation Curve
Equation Curve must be launched from inside an active sketch. In the browser, double-click an existing sketch to activate it — or go to Sketch → Create Sketch and pick a plane — then open Equation Curve again.
Spline looks faceted or choppy
Increase the sample count. The default is intentionally conservative to keep Fusion responsive. For smooth curves on screen, try 120–200 points; for high-precision manufacturing paths, 300–400.
Inserting a curve is very slow
Very high sample counts (above ~300) push Fusion's spline builder hard. If you need more than 400 points, EqSketch automatically splits the curve into two connected segments — but even then, expect a longer build time. If speed matters more than smoothness, reduce the count and use a lower t range step.
The Parameters dialog shows no eq_ parameters
Named parameters are registered on first insert, not when you open the palette.
Insert a curve with at least one named constant and the eq_ parameters
will appear in Fusion's Parameters dialog immediately after.
Gear Wizard shows "near-zero tip width" error
Profile shift values near ±0.5 combined with low tooth counts can produce a tip circle that's barely wider than the base circle. EqSketch validates this before inserting and shows a clear error. Try reducing the absolute value of the profile shift, or increasing the tooth count.
Undercut warning on gears with z < 8
Gears with fewer than 8 teeth risk undercut on the involute flank at zero profile shift. EqSketch flags this condition but still generates the profile — use the warning as a cue to add positive profile shift (x = 0.2–0.4) to compensate.
Helical sweep fails or produces an unexpected solid
The face width and helix angle together define a helix in the current sketch plane. If that helix is geometrically invalid (e.g. the angle is too steep for the face width), Fusion's sweep will fail. Try reducing the helix angle or widening the face. Also make sure you have a component active — Gear Wizard's solid operations require a component context.
Rack and gear profiles don't mesh correctly in simulation
The two non-negotiable matching conditions are module and pressure angle. Check both tabs show identical values. Profile shift may differ between gear and rack for centre-distance adjustment, but module and pressure angle must be the same.
Ready to sketch with equations?
Free and open source. Requires Fusion 360. Python runtime is bundled with Fusion — no extra setup.