c3cat-bottle-tag v2.2 + generation script #21
2 changed files with 66 additions and 4 deletions
|
@ -150,8 +150,13 @@ module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/o
|
||||||
if (RENDER_COLOR_ONE) {
|
if (RENDER_COLOR_ONE) {
|
||||||
color("black") difference() {
|
color("black") difference() {
|
||||||
cylinder(r1=rl+width, r2=ru+width, h=ht);
|
cylinder(r1=rl+width, r2=ru+width, h=ht);
|
||||||
name(name=name, font=font, rl=rl, ht=ht, ru=ru);
|
difference() {
|
||||||
logo(logo=logo, rl=rl, ht=ht, ru=ru, width=width);
|
union() {
|
||||||
|
name(name=name, font=font, rl=rl, ht=ht, ru=ru);
|
||||||
|
logo(logo=logo, rl=rl, ht=ht, ru=ru, width=width);
|
||||||
|
}
|
||||||
|
cylinder(r1=rl+width/2, r2=ru+width/2, h=ht);
|
||||||
|
}
|
||||||
translate([0,0,-1])
|
translate([0,0,-1])
|
||||||
cylinder(r1=rl, r2=ru, h=ht+2);
|
cylinder(r1=rl, r2=ru, h=ht+2);
|
||||||
// finally, substract a cube as a gap so we can clip it to the bottle
|
// finally, substract a cube as a gap so we can clip it to the bottle
|
||||||
|
@ -164,7 +169,7 @@ module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/o
|
||||||
if (RENDER_COLOR_TWO) {
|
if (RENDER_COLOR_TWO) {
|
||||||
color("orange") difference() {
|
color("orange") difference() {
|
||||||
name(name=name, font=font, rl=rl, ht=ht, ru=ru);
|
name(name=name, font=font, rl=rl, ht=ht, ru=ru);
|
||||||
cylinder(r1=rl+width, r2=ru+width, h=ht);
|
cylinder(r1=rl+width/2, r2=ru+width/2, h=ht);
|
||||||
outer_cutoff(rl, e, ru, ht, width);
|
outer_cutoff(rl, e, ru, ht, width);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -172,7 +177,7 @@ module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/o
|
||||||
if (RENDER_COLOR_THREE) {
|
if (RENDER_COLOR_THREE) {
|
||||||
color("yellow") difference() {
|
color("yellow") difference() {
|
||||||
logo(logo=logo, rl=rl, ht=ht, ru=ru, width=2*width);
|
logo(logo=logo, rl=rl, ht=ht, ru=ru, width=2*width);
|
||||||
cylinder(r1=rl+width, r2=ru+width, h=ht);
|
cylinder(r1=rl+width/2, r2=ru+width/2, h=ht);
|
||||||
outer_cutoff(rl, e, ru, ht, width);
|
outer_cutoff(rl, e, ru, ht, width);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
57
generate_bottle_tag.sh
Executable file
57
generate_bottle_tag.sh
Executable file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# usage: generate_bottle_tag.sh NAME
|
||||||
|
|
||||||
|
set -u
|
||||||
|
|
||||||
|
VERSION=2.2
|
||||||
|
LOGO_FILE='""'
|
||||||
|
TINY_EARS=false
|
||||||
|
FN=90
|
||||||
|
|
||||||
|
NAME="\"$1\""
|
||||||
|
|
||||||
|
# usage: render NAME PART
|
||||||
|
render() {
|
||||||
|
case "$2" in
|
||||||
|
body)
|
||||||
|
ONE=true
|
||||||
|
TWO=false
|
||||||
|
THREE=false
|
||||||
|
;;
|
||||||
|
name)
|
||||||
|
ONE=false
|
||||||
|
TWO=true
|
||||||
|
THREE=false
|
||||||
|
;;
|
||||||
|
logo)
|
||||||
|
ONE=false
|
||||||
|
TWO=false
|
||||||
|
THREE=true
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo 'fatal: invalid part' >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo rendering "$1" "$2"
|
||||||
|
openscad \
|
||||||
|
-D "\$fn=${FN}" \
|
||||||
|
-D "USE_TINY_EARS=${TINY_EARS}" \
|
||||||
|
-D "LOGO_FILE=${LOGO_FILE}" \
|
||||||
|
-D "NAME=${NAME}" \
|
||||||
|
-D "RENDER_COLOR_ONE=${ONE}" \
|
||||||
|
-D "RENDER_COLOR_TWO=${TWO}" \
|
||||||
|
-D "RENDER_COLOR_THREE=${THREE}" \
|
||||||
|
-o "stls/c3cat-bottle-clip-v${VERSION}_${NAME}_${PART}.stl" \
|
||||||
|
c3cat-bottle-clip/c3cat-bottle-clip.scad
|
||||||
|
}
|
||||||
|
|
||||||
|
cd "$(dirname $0)"
|
||||||
|
|
||||||
|
for PART in body logo name
|
||||||
|
do
|
||||||
|
render "$NAME" "$PART"
|
||||||
|
sleep 1
|
||||||
|
done
|
Loading…
Reference in a new issue