28 lines
662 B
Bash
28 lines
662 B
Bash
#!/usr/bin/env bash
|
|
|
|
function bom() {
|
|
openscad --export-format echo -o - assembly.scad |grep 'BOM: print'
|
|
}
|
|
|
|
function run_scad() {
|
|
openscad --export-format echo -o - "$@" gen_parts.scad |
|
|
sed -ne '/^ECHO: /{' -e 's/^ECHO: "\(.*\)"$/\1/' -e p -e '}'
|
|
}
|
|
|
|
function partcount() {
|
|
run_scad -D id=0
|
|
}
|
|
|
|
nparts=$(partcount |sed -e 's/Children: //')
|
|
|
|
mkdir -p print
|
|
for i in $(seq $nparts); do
|
|
part_name="$(run_scad -D id=$i |grep 'BOM: print' |sed -e 's/BOM: print \([^(]*\).*/\1/')"
|
|
printf "%s: <%s>\n" $i "$part_name"
|
|
fname="print/${i}_${part_name}"
|
|
openscad -o "${fname}.amf" \
|
|
-D id=$i \
|
|
gen_parts.scad
|
|
done
|
|
#run_scad -D id=1
|