c3cat-bottle-tag v2.2 + generation script #21

Merged
djerun merged 2 commits from c3cat-bottle-tag into trunk 2024-12-08 19:24:15 +01:00
2 changed files with 66 additions and 4 deletions

View file

@ -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);
difference() {
union() {
name(name=name, font=font, rl=rl, ht=ht, ru=ru); name(name=name, font=font, rl=rl, ht=ht, ru=ru);
logo(logo=logo, rl=rl, ht=ht, ru=ru, width=width); 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
View 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