common/scad.sh

43 lines
1.1 KiB
Bash

#!/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