3.2 KiB
Goal
- Create a single glb (binary glTF [Graphics Library Transmission Format])from an STL file. This is for testing or proof-of-concept.
- Create a directory tree of conversions. This would be for production.
Introduction
This procedure will use Blender to create glbs from the STLS in the source tree.
Prerequisites
Source area for the Voron GitHub repositories containing STLs ROOT directory to serve as a staging area for placing the glbs (and the HTML manifest and eventually pngs) Blender (v. 5.0+)
Procedure
Step 1
Decide on a staging directory, example /home/jlpoole/work/Voron/test1, as this is where all the glb output and their directory paths will be placed.
Example:
mkdir /home/jlpoole/work/Voron/test1
Step 3
cd to [THIS PROJECT]/ root directory.
Example, I cloned this project while under my Voron directory, so the directory "voronstl" was created by git clone https://salemdata.net/repo/jlpoole/voronstl/src/branch/init_dev :
cd /home/jlpoole/work/Voron/voronstl
Step 3A - single glb
Execute:
blender-bin-5.0.0 --background --python create_glb.py --
[PATH TO A SINGLE STL FILE]
[OUTPUT PATH & FILE]
Example:
jlpoole@jp ~/work/Voron/voronstl $ date; time blender-bin-5.0.0 --background --python create_glb.py -- /usr/local/src/Voron-Stealthburner/STLs/Stealthburner/'[o]_stealthburner_LED_carrier.stl' /tmp/out.glb
Thu Mar 5 09:21:59 PST 2026
Blender 5.0.0 (hash a37564c4df7a built 2025-11-18 10:44:21)
Timer 'STL Import' took 25.77 ms
INFO Draco mesh compression is available, use library at /opt/blender-bin-5.0.0/5.0/scripts/addons_core/io_scene_gltf2/libextern_draco.so
09:22:00 | INFO: Starting glTF 2.0 export
09:22:00 | INFO: Extracting primitive: [o]_stealthburner_LED_carrier
09:22:00 | INFO: Primitives created: 1
09:22:00 | INFO: Finished glTF 2.0 export in 0.008149147033691406 s
Wrote: /tmp/out.glb
Blender quit
real 0m0.938s
user 0m0.823s
sys 0m0.206s
jlpoole@jp ~/work/Voron/voronstl $ ls -la /tmp/out.glb
-rw-r--r-- 1 jlpoole jlpoole 154128 Mar 5 09:22 /tmp/out.glb
jlpoole@jp ~/work/Voron/voronstl $
Step 3B - tree of glbs
Use Perl script: extract_first_path.pl v. 11
find /usr/local/src/Voron-Stealthburner/STLs -name '*.stl' -print0 | while IFS= read -r -d '' f; do blender-bin-5.0.0 --background --python create_glb.py -- "$f" done
find /home/jlpoole/work/Voron/Klicky-Probe -name '*.stl' -print0 | while IFS= read -r -d '' f; do echo "$f" #blender-bin-5.0.0 --background --python create_glb.py -- "$f" done
Caution: make sure you have the directory only relevant to your build. For example Klicky-Probe has 186 STLs in its tree, but for the Voron Trident, we only are interested in 14 of the project's files.
jlpoole@jp ~/work/Voron/test2 $ find /home/jlpoole/work/Voron/Klicky-Probe -name '*.stl' -print0 | while IFS= read -r -d '' f; do echo "$f"
done |wc -l
186
jlpoole@jp ~/work/Voron/test2 $
But, jlpoole@jp ~/work/Voron/renderlab $ cat /home/jlpoole/workstation/perl/Voron/manifest.txt | grep Klicky |wc -l 14 jlpoole@jp ~/work/Voron/renderlab $