Added tool to generate BOM

This commit is contained in:
2022-03-05 15:32:19 +01:00
parent 83e6dee3f3
commit 4ff8fa021b
2 changed files with 46 additions and 0 deletions

19
gen_parts.scad Normal file
View File

@@ -0,0 +1,19 @@
use <assembly.scad>;
module genpart(id = 0) {
if (id <= 0) {
echo(str("Children: ", $children));
} else {
children(id-1);
}
}
genpart(id) {
flcorner();
frcorner();
brcorner();
blcorner();
ysled_slider(177.8);
ysled_slider(177.8);
xsled2();
}

27
genbom.sh Normal file
View File

@@ -0,0 +1,27 @@
#!/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}.3mf" \
-D id=$i \
gen_parts.scad
done
#run_scad -D id=1