Added tool to generate BOM
This commit is contained in:
19
gen_parts.scad
Normal file
19
gen_parts.scad
Normal 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
27
genbom.sh
Normal 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
|
||||||
Reference in New Issue
Block a user