Skip to content

Repository files navigation

QR Code Generator for Fusion 360

Buy Me a Coffee

A parametric QR code generator for Autodesk Fusion 360. Encode any text or URL into QR geometry and place it as a sketch, a raised solid, an engraving cut into a face, or an embossed join onto an existing body, ready for 3D printing, CNC, laser, or molding.

What it does

  • Encodes a string/URL into a QR symbol using segno (correct Reed-Solomon error correction and data masking per the standard).
  • Draws the dark modules on a sketch (merged into horizontal runs for speed).
  • Builds geometry as a sketch, a raised body, an engraved pocket, or an emboss, on the plane or face you choose, in the component you're working in.

Installation

Download the latest QR-Code Generator.zip from the Releases page and unzip it: you'll get a QR-Code Generator folder (containing QR-Code Generator.py, QR-Code Generator.manifest, LICENSE, this README.md, and the lib/ and resources/ subfolders), already named exactly as Fusion requires. Then install it with either method below.

Option A: from Fusion's Scripts and Add-Ins dialog (easiest, no folder-hunting)

If you don't know (or don't want to know) where Fusion keeps its add-ins, let Fusion copy the folder in for you:

  1. In Fusion: Utilities tab → ADD-INS panel → Scripts and Add-Ins (or press Shift+S).
  2. Click the + dropdown at the top-left of the dialog → Script or add-in from device.
  3. Browse to and select the QR-Code Generator folder (the one that contains the .manifest file) and confirm. Fusion copies it into the correct add-ins directory automatically.
  4. It now shows up in the Add-Ins tab of the list, select QR Code Generator and click Run (tick Run on Startup if you want it to load every time).

Option B: manual copy

  1. Copy the entire QR-Code Generator/ folder (including lib/ and resources/) into your Fusion add-ins directory:

    • macOS: ~/Library/Application Support/Autodesk/Autodesk Fusion 360/API/AddIns/
    • Windows: %APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\

    The folder, the .py, and the .manifest must all share the base name QR-Code Generator.

  2. In Fusion: Utilities tab → ADD-INSScripts and Add-Ins (Shift+S) → Add-Ins tab → select QR Code GeneratorRun.

Either way, a QR CODE panel (with its QR-code icon) appears at the end of the SOLID tab's toolbar, next to 3D PRINT. No pip install is required; segno is bundled in lib/segno/.

How to use

Input Meaning Default
Content (text / URL) The data to encode. https://www.autodesk.com
Error correction L ~7%, M ~15%, Q ~25%, H ~30% recoverable. Higher = denser. M
Quiet-zone border Empty margin around the symbol, in modules (standard recommends ≥ 4). 4
Size by Overall width (total size of the whole code), Fit to selected face, or Module size (advanced). Overall width
Overall width Total width of the whole code including the quiet-zone border (mm). 30 mm
Fit margin (%) When fitting to a face, shrink by this much so the code clears the edge. 10
Module size (advanced) Edge length of one little square (mm). 1.0 mm
Size info Live read-out of QR version, module count, overall width, and module size. n/a
Operation One of the four below. Raised
Raised result When raised: Keep as new body or Merge into target body. Keep as new body
Depth Engrave/inlay depth or raised height (mm). 1.0 mm
Flip direction Reverse the in/out direction if it goes the wrong way. off
Target plane A construction plane, or a planar face (a face is required for Inlay/Engrave/Fit). XY
Center on selected face Place the code at the center of the selected face. on
Offset X / Offset Y Nudge the code from that center (mm). 0

Press Generate.

Sizing

Module size is the edge of one little square, a detail almost nobody needs, so it is not the default. What you usually want is Overall width: the total size of the whole code.

  • Overall width (default): type the total size you want; module size follows.
  • Fit to selected face: the code is sized to the face you selected (its smaller in-plane dimension, minus the Fit margin %). Pick the face, and the code matches it.
  • Module size (advanced): for the rare case you need an exact per-square size.

The Size info box shows all of it live as you type, so you never have to guess.

About "follow the host when it resizes": Fit to selected face sizes the code to the face at generation time. Re-run the command after you resize the host and it re-fits. Truly live association (the code auto-resizing whenever the body changes, with no re-run) would require a custom parametric feature; it is not implemented yet. Tell me if you want that and I'll scope it.

The four operations

  1. Sketch only: draws the code as a fully-constrained sketch (every line grounded) on the chosen plane/face. You do the rest.
  2. Inlay: cut pockets + fill bodies (flush): cuts the code into the target body and leaves matching filler bodies sitting flush in the pockets. Ideal for two-colour prints / inlays: print the host in one colour and the QR Code body in another.
  3. Engrave: cut into surface (empty): cuts the code into the target body, leaving empty pockets.
  4. Raised: stand proud of surface: extrudes the code above the surface. Choose Raised result: Merge into target body (embossed into the part) or Keep as new body (a separate QR Code body).

Inlay, Engrave, and Raised→Merge all act on the body of the planar face you select in Target plane. If the in/out direction is wrong for your face, tick Flip direction.

Where it lands

Geometry is created in the component that owns your selected face/plane, or, if nothing is selected, in the active component you're editing. It no longer dumps into the root.

Module size vs overall width

These are two ways of expressing the same thing, linked by the number of modules:

overall width = (symbol modules + 2 × border) × module size
  • Module size = the edge length of one little square of the code.
  • Overall width = the total width of the whole code (all modules + the quiet-zone border).

Pick whichever is convenient under Size by (see Sizing). The dialog shows a live readout of both so you always see how they relate.

Notes & limits

  • All UI dimensions are entered in millimetres and converted to Fusion's internal centimetres automatically.
  • The chosen error-correction level is honoured exactly (segno's auto-boost is disabled), and only standard (not Micro) QR codes are produced, for predictable, scannable output.
  • Face-centering uses the face's bounding-box center (exact for symmetric faces such as circles/rectangles; approximate for irregular faces, use the offsets to fine-tune).
  • The add-in re-runs cleanly within one session.
  • Very dense codes (long content + high EC) still create many entities and take longer.
  • Centering on a tilted/angled face relies on the sketch↔model transform; it is exact on the XY plane and on faces parallel to it. Use the offsets if a tilted face needs nudging.

Built from the grid: no missing modules, no filled-in gaps

The geometry is built directly from the QR grid, not by extruding detected sketch profiles. For every solid operation, each dark module (merged into horizontal runs) is created as a box with Fusion's TemporaryBRepManager, the boxes are unioned, and the result is added/cut/joined. Because nothing relies on Fusion's profile detection, the two classic failure modes are structurally impossible: the light "moats" inside finder patterns are never filled, and no real module is ever dropped. (Sketch only still produces a clean sketch: one rectangle per dark run.)

Cleanroom implementation

This is a cleanroom implementation built only from the public QR code standard (ISO/IEC 18004) and the Fusion 360 API. It does not reimplement the QR encoding math itself: that job is delegated to the vendored, pure-Python segno library (BSD-3-Clause, © Lars Heuer), which runs unmodified inside Fusion's embedded Python because it has no compiled extensions.

License

  • This add-in's own code (QR-Code Generator.py, QR-Code Generator.manifest, this README) is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). The full text is in LICENSE.
  • segno (in lib/segno/) is licensed under the BSD-3-Clause license, © 2016–2024 Lars Heuer. Its license text is retained at lib/segno/LICENSE.txt and is compatible with the AGPL.

"QR Code" is a registered trademark of DENSO WAVE INCORPORATED.

About

A Simple QR-Code generator for Autodesk Fusion

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages