#!/bin/bash SRC="${1}" FILENAME=$(basename "${1}") NAME="${FILENAME%.*}" THEME=DeepOcean function generateStl () { echo openscad -enable manifold -D VERBOSE=false -D PART=\"${2}\" --export-format=asciistl -o "stl/${NAME}_${2}.stl" "${1}" } function sortStl () { echo python3 scad/common/c14n_stl.py "stl/${NAME}_${1}.stl" } function generateJpeg () { echo openscad --enable manifold --viewall --render --imgsize=512,512 --colorscheme=${THEME} -o "img/${NAME}_${2}.png" "${1}" echo convert "img/${NAME}_${2}.png" -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace RGB "img/${NAME}_${2}.jpg" echo rm -f "img/${NAME}_${2}.png" } function generateScad () { generateStl "${SRC}" "${1}" sortStl "${1}" generateJpeg "${SRC}" "${1}" } function getParts () { tmpFile=$(mktemp) cat "${SRC}" | grep "PART ==" | awk -F'==' '{print $2}' | awk -F'"' '{print $2}' | awk -F'"' '{print $1}' | sort > models.txt echo "${tmpFile}" } if [[ -z "${2}" ]]; then partsList=$(getParts) while read part; do generateScad "${part}" done < "${partsList}" else generateScad "${2}" fi