From 7660f4605fcc780d37cec749c92bea4a20a68912 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sun, 2 Feb 2025 19:51:24 -0500 Subject: [PATCH] Add test version of the scad script --- scad.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 scad.sh diff --git a/scad.sh b/scad.sh new file mode 100644 index 0000000..6802ed1 --- /dev/null +++ b/scad.sh @@ -0,0 +1,42 @@ +#!/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 +