#!/bin/bash set -e # stop on error # set -x # print commands as they are run function dependency_check { if ! command -v $@ &> /dev/null; then echo "dependency error: $@ could not be found" exit 1 fi } # COLORSCHEME="RichInfante" OPENSCAD_BIN="/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD" COLORSCHEME="RichInfante" dependency_check "$OPENSCAD_BIN" # macos theme install if [ -d /Applications/OpenSCAD.app/Contents/Resources/color-schemes/render ]; then if [ ! -f "/Applications/OpenSCAD.app/Contents/Resources/color-schemes/render/richinfante_theme.json" ]; then echo "Installing SCAD Theme..." cp "./scripts/scad_theme.json" "/Applications/OpenSCAD.app/Contents/Resources/color-schemes/render/richinfante_theme.json" fi fi # install if possible if [ -d /usr/share/openscad/color-schemes/render ]; then if [ ! -f "/usr/share/openscad/color-schemes/render/richinfante_theme.json" ]; then echo "Installing SCAD Theme..." sudo cp "./scripts/scad_theme.json" "/usr/share/openscad/color-schemes/render/richinfante_theme.json" fi fi # Script to render stls # Ref: https://3dprinting.stackexchange.com/questions/6046/how-can-i-create-png-image-files-from-stl-files for JSON_FILE in src/content/prints/*.json; do STL_FILE="public/downloads/stls/$(jq -r '.filename' $JSON_FILE).stl" RENDER_ARGS="$(jq -r '.["render-args"] // empty' $JSON_FILE)" echo "Render stl: $STL_FILE" echo "Render args: $RENDER_ARGS" T=__tmp__ echo "$RENDER_ARGS import(\"$STL_FILE\");" >$T # render thumb and image "$OPENSCAD_BIN" -o "public/img/stls/$(basename $STL_FILE .stl).png" --imgsize=512,512 --colorscheme=$COLORSCHEME $T "$OPENSCAD_BIN" -o "public/img/stls/$(basename $STL_FILE .stl)@thumbnail.png" --imgsize=128,128 --colorscheme=$COLORSCHEME $T rm $T done