|
2 | 2 |
|
3 | 3 | A Blender add-on for turning CAD products into consistent, batch-rendered image sets. |
4 | 4 |
|
5 | | -Import STEP files, standardize them at the world origin, build a rig of orthographic and |
| 5 | +Import STEP and STL files, standardize them at the world origin, build a rig of orthographic and |
6 | 6 | perspective cameras plus 3-point studio lighting, then render every product across every |
7 | 7 | view in one click, with predictable file names like `AA_01_Widget_Front_clay.png`. |
8 | 8 |
|
9 | 9 | - **Blender:** 4.0 and newer |
10 | 10 | - **Panel location:** `3D Viewport → Sidebar (N key) → MultiView` |
11 | | -- **Version:** 1.3.0 |
| 11 | +- **Version:** 1.4.0 |
12 | 12 |
|
13 | 13 | --- |
14 | 14 |
|
@@ -48,13 +48,18 @@ Restart Blender and enable the add-on as in step 4 above. |
48 | 48 | You only need this if you want to import `.step` / `.stp` files directly. If you already |
49 | 49 | have meshes in your scene, skip it. The add-on works with any geometry. |
50 | 50 |
|
| 51 | +**`.stl` files need none of this.** An STL already holds a mesh, so it is imported straight |
| 52 | +through Blender and never touches FreeCAD or STEPper, whatever the STEP Import Mode is set |
| 53 | +to. From the moment it lands it is treated exactly like a converted STEP file: same product |
| 54 | +collection, same Fit on Import, same standardizing, same batch render and file naming. |
| 55 | + |
51 | 56 | Open `Edit → Preferences → Add-ons → MultiView Product Renderer` and expand the |
52 | 57 | preferences: |
53 | 58 |
|
54 | 59 | | Setting | What it does | |
55 | 60 | | --- | --- | |
56 | | -| **STEP Import Mode** | `Auto` tries the STEPper add-on first, then falls back to FreeCAD. Or force one. | |
57 | | -| **FreeCAD Executable** | Path to `freecadcmd.exe` (Windows) or `freecadcmd` (macOS/Linux). | |
| 61 | +| **STEP Import Mode** | `Auto` tries the STEPper add-on first, then falls back to FreeCAD. Or force one. STEP only; STL ignores it. | |
| 62 | +| **FreeCAD Executable** | Path to `freecadcmd.exe` (Windows) or `freecadcmd` (macOS/Linux). STEP only. | |
58 | 63 | | **Tessellation Deflection** | FreeCAD mode only. Lower = finer mesh, bigger files. Default `0.1`. | |
59 | 64 |
|
60 | 65 | **FreeCAD route**: install [FreeCAD](https://www.freecad.org/) and point the preference at |
@@ -100,24 +105,29 @@ either half on its own. |
100 | 105 |
|
101 | 106 | ### 2. Import Products |
102 | 107 |
|
103 | | -Add one or more STEP files to the list and click **Import STEP Files**. Each file becomes |
104 | | -its own collection under `MV_Products`. That grouping is what the batch renderer iterates |
105 | | -over. |
| 108 | +Add one or more `.step` / `.stp` / `.stl` files to the list and click **Import CAD Files**. |
| 109 | +Each file becomes its own collection under `MV_Products`. That grouping is what the batch |
| 110 | +renderer iterates over. You can mix STEP and STL freely in one list; each file is routed by |
| 111 | +its extension, and a file that fails does not stop the ones after it. |
106 | 112 |
|
107 | 113 | Import runs in the background: the status bar shows `MultiView: 3/12 housing.step |
108 | 114 | (converting)`, Blender stays responsive, and **Esc** cancels after the file in flight. |
109 | 115 | Files that fail are skipped rather than stopping the batch, and FreeCAD's own error |
110 | 116 | message is reported instead of a generic failure -- run `Window > Toggle System Console` |
111 | 117 | to see the full list. |
112 | 118 |
|
| 119 | +STL files skip the conversion step entirely, so they land immediately rather than showing |
| 120 | +`(converting)`. A `.stl` that Blender cannot read is reported and skipped rather than |
| 121 | +becoming an empty product collection that would render as blank frames. |
| 122 | + |
113 | 123 | You can also click **Add Empty Product Collection** and drag existing meshes into it, which |
114 | | -is how you use MultiView with geometry that didn't come from STEP. |
| 124 | +is how you use MultiView with geometry that didn't come from a CAD file. |
115 | 125 |
|
116 | 126 | ### 3. Standardize |
117 | 127 |
|
118 | 128 | Everything that makes products comparable to each other lives in this panel. |
119 | 129 |
|
120 | | -**Fit on Import** (on by default) does it automatically: as each STEP file lands, the |
| 130 | +**Fit on Import** (on by default) does it automatically: as each file lands, the |
121 | 131 | product is uniformly scaled so its largest dimension equals **Target Size** (default |
122 | 132 | `1.0 m`, i.e. it fits inside a 1x1x1 m cube) and its bounding box is centred on the world |
123 | 133 | origin. Turn it off if you want to place and scale products yourself. |
@@ -224,6 +234,26 @@ Set an **Output Directory**, choose a **Render Mode**, and hit **Render All**. |
224 | 234 | Every product is isolated in turn (all others excluded from the view layer), so nothing |
225 | 235 | bleeds between shots. Progress prints to the system console. |
226 | 236 |
|
| 237 | +**Only products are isolated.** Geometry that lives outside `MV_Products` is not a product, |
| 238 | +so it is never hidden and turns up in every shot of every product. The usual offender is the |
| 239 | +cube Blender starts a new file with: two metres across, sitting on the world origin exactly |
| 240 | +where a fitted product lands, and quite capable of filling the frame and hiding the product |
| 241 | +behind it -- which reads as a blank render with no obvious cause. |
| 242 | + |
| 243 | +The panel warns before you spend the render time: |
| 244 | + |
| 245 | +``` |
| 246 | +[!] 1 object(s) outside MV_Products |
| 247 | + appear in every render: |
| 248 | + Cube |
| 249 | + Delete them, move them into a |
| 250 | + product, or switch off their |
| 251 | + render visibility (camera icon). |
| 252 | +``` |
| 253 | + |
| 254 | +Objects you have already switched off for rendering are not listed, so a deliberate backdrop |
| 255 | +or staging rig does not keep setting the warning off. |
| 256 | + |
227 | 257 | **Render engine, sample count, resolution, and file format stay in Blender's own Output and |
228 | 258 | Render Properties.** MultiView only drives cameras, visibility, and file paths. It never |
229 | 259 | overwrites your render settings, and the clay pass restores your engine when it finishes. |
@@ -278,7 +308,12 @@ products, and any other world in the file, are never touched. |
278 | 308 |
|
279 | 309 | **"No cameras. Build cameras first."**: run *Build Cameras* in the Cameras / Views panel. |
280 | 310 |
|
281 | | -**"No product collections under 'MV_Products'."**: import a STEP file, or add an empty |
| 311 | +**Renders come back blank, or with something unexpected in them**: check the warning above |
| 312 | +**Render All**. Anything outside `MV_Products` is rendered along with every product, and a |
| 313 | +large object near the origin can hide the product completely. Delete it, move it into a |
| 314 | +product collection, or turn off its render visibility. |
| 315 | + |
| 316 | +**"No product collections under 'MV_Products'."**: import a STEP or STL file, or add an empty |
282 | 317 | product collection and put your meshes inside it. Meshes sitting loose in the scene |
283 | 318 | collection are not seen as products. |
284 | 319 |
|
|
0 commit comments