| Document No. | JDS-PRO-003 |
| Revision | B |
| Date | 2026-03-25 |
| Status | APPROVED |
| Author | Nils Johansson |
This procedure defines how 3D models, engineering drawings, and related files are organised, named, stored, and tracked within JDS. Every modeling project — whether it’s a single part or a full assembly — follows the same structure so that files are always findable, traceable, and version-controlled.
Applies to all 3D modeling and drawing work, including:
Each modeling project gets its own folder under projects/3d-modeling/, named with its JDS drawing number:
projects/3d-modeling/
├── JDS-DWG-MEC-001_flange-adapter/ # One folder per project
│ ├── README.md # Project card (quick reference)
│ ├── source/ # Source/working files
│ │ ├── flange-adapter.blend # Blender file
│ │ ├── flange-adapter.shapr # Shapr3D file
│ │ └── flange-adapter.py # build123d script
│ ├── exports/ # Exported output files (standard set)
│ │ ├── flange-adapter.step # MANDATORY — CAD interchange
│ │ ├── flange-adapter.3mf # MANDATORY — 3D printing (preferred)
│ │ ├── flange-adapter.stl # MANDATORY — 3D printing (universal)
│ │ └── flange-adapter.glb # Optional — web/presentation
│ ├── references/ # Reference material
│ │ ├── sketch-001.jpg
│ │ └── datasheet.pdf
│ └── renders/ # Screenshots and renders
│ └── final-render.png
│
├── JDS-DWG-STR-001_bracket-mount/ # Next project (Structural domain)
│ ├── README.md
│ ├── source/
│ ├── exports/
│ ├── references/
│ └── renders/
│
└── _shared-references/ # Materials shared across projects
├── standard-fasteners.md
└── material-properties.md
JDS-DWG-MEC-001_flange-adapter/source/. These are the editable working files.exports/. These are the output files for fabrication, sharing, or viewing.references/. Sketches, datasheets, photos — anything used as input.renders/. Screenshots, final renders, preview images.README.md — the project card (see Section 5).The _shared-references/ folder (prefixed with underscore to sort to top) holds material that applies across multiple projects — standard fastener libraries, material property tables, common dimensions, etc.
Source files use descriptive lowercase names with hyphens:
part-name.blend
part-name.shapr
part-name.py
For multi-part projects or assemblies, use a prefix:
assembly-name_part-01-housing.blend
assembly-name_part-02-cover.blend
assembly-name_full-assembly.blend
Exports match the source file name with the appropriate extension:
flange-adapter.step # MANDATORY — CAD interchange
flange-adapter.3mf # MANDATORY — 3D printing (preferred)
flange-adapter.stl # MANDATORY — 3D printing (universal)
flange-adapter.glb # Optional — web/presentation
flange-adapter_v2.step # Variant — append version if needed
Every 3D model project must export these three formats:
| Format | Extension | Why it’s mandatory | Use case |
|---|---|---|---|
| STEP | .step |
Preserves solid geometry. Editable in any CAD tool. Your insurance policy for future modifications. | CAD interchange, CNC machining, sharing with engineers |
| 3MF | .3mf |
Modern printing format. Carries units, materials, colour, and tolerances in one file. | 3D printing (preferred by modern slicers) |
| STL | .stl |
Universal mesh format. Every slicer and viewer reads it. | 3D printing (universal fallback), quick sharing |
Optional exports (add when relevant):
| Format | Extension | When to include |
|---|---|---|
| glTF/GLB | .gltf / .glb |
Web viewers, blog posts, presentations, AR/VR |
| OBJ | .obj |
When specifically requested by a collaborator |
| PDF (2D) | .pdf |
Dimensioned drawings for machine shops or documentation |
Why STEP is critical: STL and 3MF are mesh formats — you cannot easily edit them later. STEP preserves the actual solid geometry, so you or anyone else can reopen it in Shapr3D, FreeCAD, or any CAD tool and modify the design. Always export STEP first.
References use descriptive names:
sketch-initial-concept.jpg
datasheet-dn50-flange.pdf
photo-site-measurement.jpg
Every project folder contains a README.md that acts as a quick-reference card. Use the template below:
# [Part/Assembly Name]
| | |
|---|---|
| **JDS No.** | JDS-DWG-[DOM]-[NNN] |
| **Rev** | A |
| **Date** | YYYY-MM-DD |
| **Status** | DRAFT / APPROVED |
| **Author** | Nils Johansson |
## Description
[What is this? What is it for? 2-3 sentences.]
## Key Dimensions
| Parameter | Value | Unit |
|-----------|-------|------|
| [Dimension] | [Value] | mm |
## Tools Used
- [ ] Blender
- [ ] Shapr3D
- [ ] build123d
## Source Files
| File | Tool | Description |
|------|------|-------------|
| source/[filename] | [Tool] | [What it contains] |
## Exports (mandatory standard set)
| File | Format | Purpose |
|------|--------|---------|
| exports/[filename].step | STEP | CAD interchange (editable) |
| exports/[filename].3mf | 3MF | 3D printing (preferred) |
| exports/[filename].stl | STL | 3D printing (universal) |
## Notes
[Design decisions, constraints, tolerances, material choices, etc.]
Check the Document Registry for the next available DWG number in your domain. Pick the engineering domain code (MEC, MAR, AUT, etc.) from the Numbering Standard.
mkdir -p projects/3d-modeling/JDS-DWG-MEC-001_short-name/{source,exports,references,renders}
Copy the README template from Section 5 into the project folder and fill in the header.
Create your models in the source/ folder. Collect references in references/.
Export all three mandatory formats to exports/:
.step — CAD interchange (always first).3mf — 3D printing (preferred).stl — 3D printing (universal fallback)Add the DWG entry to the Document Registry.
Commit the project folder to the repository. Use a descriptive commit message:
Add JDS-DWG-MEC-001: Flange adapter DN50 — initial model
3D models follow the same revision control as other JDS documents (see JDS-PRO-002), with these additions:
| Change | Action |
|---|---|
| Dimensions changed | New revision (update DWG document + re-export) |
| Material changed | New revision |
| New variant added | New revision OR new DWG number (see 7.2) |
| Cosmetic/render update only | Minor update (same revision, note in commit) |
| Bug fix in build123d script | New revision if output changes; minor if not |
Example:
JDS-DWG-MEC-001 Flange Adapter DN50
JDS-DWG-MEC-002 Flange Adapter DN80 (variant of DWG-MEC-001)
Whenever a source file is revised, re-export all output files. Old exports that don’t match the current source are misleading. The Git history preserves previous versions if needed.
Binary files (.blend, .shapr, images, STL) don’t diff well in Git. Best practices:
| File type | Commit to Git? | Notes |
|---|---|---|
| .blend | Yes | Main working file |
| .blend1 / .blend2 | No | Auto-backups (in .gitignore) |
| .shapr | Yes | Main working file |
| .py (build123d) | Yes | Source code — diffs perfectly |
| .step / .3mf / .stl | Yes | Mandatory export set |
| .glb / .obj | Yes | Optional exports when relevant |
| Reference images | Yes | Keep reasonable sizes (<5MB each) |
| Renders | Yes | Final renders only, not drafts |
projects/3d-modeling/JDS-DWG-[DOM]-[NNN]_name/source/, exports/, references/, renders/source/exports/| Rev | Date | Author | Description |
|---|---|---|---|
| A | 2026-03-25 | Nils Johansson | Initial release |
| B | 2026-03-25 | Nils Johansson | Renamed JEDS to JDS. Added domain codes to folder naming. Added mandatory export standard (STEP + 3MF + STL). |