Versioning Files

Reliable file versioning for 3D printing means you can always answer: Which geometry did we print, with which slicer settings, on which printer/material, and did it succeed? Keep CAD, export, slicer project, g-code, and notes/photos together, and separate “design revisions” (geometry changes) from “print attempts” (settings changes) so you can compare results and avoid printing the wrong file.

TL;DR

Save and name CAD, export (prefer 3MF), slicer project, and the exact g-code per print attempt; bump the design revision when geometry changes and bump the print attempt when only slicer/printer settings change so you don’t accidentally reprint old g-code.

Versioning FilesTopic-specific diagram for the concept, checks, and tradeoffs in this lesson.CAD sourceDesign revisions r01, r02...Export 3MF/STLMesh used for slicingSlicer projectProfiles + settings snapshotG-codeFile printed on machineNotes + photosMaterial, printer, outcomeDesign revGeometry changes only
A compact workflow diagram clarifies which artifacts to version (CAD, export, slicer project, g-code, notes) and how design revisions differ from print attempts.

What counts as the “source of truth” in 3D printing

A single print has multiple artifacts that can each change the outcome: the CAD source, the exported mesh you sliced, the slicer project (settings + orientation + supports), and the final g-code the printer ran. If you only keep one of these (often just an STL), you can’t reliably reproduce a good result or explain why the next attempt changed.

Minimum set to archive for any print you might repeat

  • CAD source file (native format) and/or a STEP if you share between CAD tools
  • The exported model that was actually sliced (3MF preferred; STL if required)
  • The slicer project file saved at the time of slicing (not just a profile)
  • The exact g-code (or printer-ready file) that was sent to the machine
  • A short notes file: printer, nozzle size, material brand/type, temps, speeds, key settings, and the outcome
  • Photos: first layer, the failure area, and the finished part next to a ruler/calipers

Separate two different version numbers: design revision vs print attempt

A design revision is a geometry change (hole moved, wall thickened, fillet added). A print attempt is a manufacturing change (layer height, temperatures, supports, orientation, speed, cooling, material). Mixing both into a single “v2” makes it impossible to compare what actually fixed (or caused) a problem.

Simple rule for meaningful comparisons

  1. If geometry changes: increment the design revision (r03 to r04).
  2. If only print settings/process change: keep the same design revision and increment the print attempt (printA to printB).
  3. Try to change one major variable per attempt (for example: only temperature, or only retraction), otherwise your results are hard to interpret.

A folder structure that prevents “wrong file” prints

Use one top-level folder per part (or per assembly), then store shared assets (CAD, exports, slicer) and create a dedicated subfolder for each attempt. The goal is that the g-code you run lives inside the attempt folder with the notes and photos that explain what happened.

Folder Template Example

01_CAD
Native CAD + STEP + design exports by revision
02_Exports
Meshes used for slicing (3MF/STL) by revision
03_Slicer
Slicer projects and any custom profiles
prints/2026-04-28_A
One attempt: g-code + slicer project copy + notes + photos
prints/2026-04-30_B
Next attempt on same design revision

Filename patterns that sort well and communicate intent

Good names do two jobs: they sort correctly and they prevent ambiguity when you’re standing at a printer choosing a file. Keep names short but consistent: PartName, design revision, print attempt id, and the few settings that actually distinguish prints (material, nozzle, layer height, temps).

Filename Pattern

  • PartName_r03_CAD.f3d
  • PartName_r03_export.3mf
  • PartName_r03_slicer_printA_0p20LH_3walls.3mf
  • PartName_r03_printA_PLA_215C_bed60.gcode
  • PartName_r03_printA_notes.txt
  • PartName_r03_printB_retract-tuned.gcode

Common Versioning Failures

Printed the wrong file (old g-code)

Likely cause: Similar filenames; g-code scattered in Downloads/SD root; printer UI truncates names

Fix: Store g-code inside a per-attempt folder and include print id early in the filename (Part_r03_printB...)

Can’t reproduce a “good” print later

Likely cause: Only STL was saved; slicer project and notes (temps/material/nozzle) weren’t captured

Fix: Save slicer project next to the g-code and add a short notes file with the key settings and outcome

Not sure whether the fix was CAD or slicing

Likely cause: Geometry edits and slicer tweaks were both rolled into “v2”

Fix: Split changes into design revision vs print attempt and record exactly what changed in notes

Two people overwrote or duplicated work

Likely cause: Shared folder with no unique attempt ids or ownership

Fix: Use date + initials in the attempt id (2026-04-28_JD_A) and keep a simple shared log in the prints folder