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