diff --git a/c3cat-bottle-clip/c3cat-bottle-clip.scad b/c3cat-bottle-clip/c3cat-bottle-clip.scad new file mode 100644 index 0000000..861ecd8 --- /dev/null +++ b/c3cat-bottle-clip/c3cat-bottle-clip.scad @@ -0,0 +1,135 @@ +/** + * A name tag that can easily be clipped to the neck of your bottle. + * Copyright (C) 2013 Roland Hieber + * + * This file was modified by obelix for the + * OHM2013-Logo. If you wish to use other logos please use the original + * file. All other parameters were not modified. + * + * This file was modified again by djerun to use the catars printed + * by c3cat: https://www.printables.com/model/35076-cat-ears + * as the logo and optionally allow use the easrs from + * https://www.thingiverse.com/thing:5029374 + * printed at scale 0.2 as glue-ins for additional ears. + * + * `Ohren_4.stl` and `catears.stl` need to be placed in `../stls/` + * for the symlinks to work otherwise `catears.stl` needs to be placed + * at `./catears.stl` and `Ohren_4.stl` at `./catear.stl`. + * + * Version of the modification: 1.0 + * + * See examples.scad for examples on how to use this module. + * + * The contents of this file are licenced under CC-BY-SA 3.0 Unported. + * See https://creativecommons.org/licenses/by-sa/3.0/deed for the + * licensing terms. + */ + +include + +/** + * Creates one instance of a bottle clip name tag. The default values are + * suitable for 0.5l Club Mate bottles (and similar bottles). By default, logo + * and text are placed on the name tag so they both share half the height. In this + * version the logo is fixed. + * + * Parameters: + * ru: the radius on the upper side of the clip + * rl: the radius on the lower side of the clip + * ht: the height of the clip + * width: the thickness of the wall. Values near 2.5 usually result in a good + * clippiness for PLA prints. + * name: the name that is printed on your name tag. For the default ru/rt/ht + * values, this string should not exceed 18 characters to fit on the name tag. + * font: the path to a font for Write.scad. + */ + +/* currently openscad fails to render `Ohren_4.stl` outside of the preview mode */ +//difference() { + rotate(45, [0, 0, 1]) bottle_clip(name="c3cat"); +// translate([ 15, 0, 18]) rotate(80, [0, 1, 0]) catear(); +// translate([-15, 0, 18]) rotate(-80, [0, 1, 0]) catear(); +//} +// +//translate([0, 5, 0]) catear(); +//rotate(180) translate([0, 5, 0]) catear(); + +module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/orbitron.dxf", logo="") { + + e=100; // should be big enough, used for the outer boundary of the text/logo + + difference() { + rotate([0,0,-45]) union() { + // main cylinder + cylinder(r1=rl+width, r2=ru+width, h=ht); + // text and logo + if(logo == "") { + color("orange") writecylinder(name, [0,0,0], rl+0.5, ht/13*7, h=ht/13*4, t=max(rl,ru), font=font); + translate([4.7, -rl, ht*1.08]) rotate(-10, [1, 0, 0]) rotate(76, [0, 1, 0]) scale([0.08, 2, 0.08]) color("red") import("catears.stl"); + } else { + color("orange") writecylinder(name, [0,0,0], rl+0.5, ht/13*7, h=ht/13*4, t=max(rl,ru), font=font); + + // The logo has been split in 3 parts. +/* + rotate([0,0,-48]) translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.9,0.9,1]) + scale([ht/100,ht/100,1]) + translate([-25,-29,0.5]) + linear_extrude(height=max(ru,rl)*2) + import("logo_1.dxf"); +*/ + translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.8,0.8,1]) + scale([ht/100,ht/100,1]) + translate([-18,-22,0.5]) + linear_extrude(height=max(ru,rl)*2) + import(logo); +/* + rotate([0,0,44]) translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.7,0.7,1]) + scale([ht/100,ht/100,1]) + translate([-25,-26,0.5]) + linear_extrude(height=max(ru,rl)*2) + import("logo_3.dxf"); +*/ + } + } + // inner cylinder which is substracted + translate([0,0,-1]) + cylinder(r1=rl, r2=ru, h=ht+2); + // outer cylinder which is substracted, so the text and the logo end + // somewhere on the outside ;-) + difference () { + cylinder(r1=rl+e, r2=ru+e, h=ht); + translate([0,0,-1]) + // Note: bottom edges of characters are hard to print when character + // depth is > 0.7 + cylinder(r1=rl+width+0.7, r2=ru+width+0.7, h=ht+2); + } + // finally, substract a cube as a gap so we can clip it to the bottle + translate([0,0,-1]) cube([50,50,50]); + } +} + +module catear() { + rotate(-90, [0, 0, 1]) union() { + scale([0.2, 0.2, 0.2]) translate([0, -85]) import("catear.stl"); + scale([0.2, -0.2, 0.2]) translate([0, -85]) import("catear.stl"); + } +} + +/** + * Creates one instance of a bottle clip name tag suitable for 0.33l longneck + * bottles (like fritz cola, etc.). All parameters are passed to the module + * bottle_clip(), see there for their documentation. + */ +module bottle_clip_longneck(name="c3cat", width=2.5, font="write/orbitron.dxf") { + bottle_clip(name=name, ru=13, rl=15, ht=26, width=width, font=font, logo=""); +} + +/** + * The Steinie-Tag has been removed since it does not support logos. +**/ diff --git a/c3cat-bottle-clip/catear.stl b/c3cat-bottle-clip/catear.stl new file mode 120000 index 0000000..9c37596 --- /dev/null +++ b/c3cat-bottle-clip/catear.stl @@ -0,0 +1 @@ +../stls/Ohren_4.stl \ No newline at end of file diff --git a/c3cat-bottle-clip/catears.stl b/c3cat-bottle-clip/catears.stl new file mode 120000 index 0000000..2652b8c --- /dev/null +++ b/c3cat-bottle-clip/catears.stl @@ -0,0 +1 @@ +../stls/catears.stl \ No newline at end of file diff --git a/c3cat-bottle-clip/write b/c3cat-bottle-clip/write new file mode 120000 index 0000000..bb67ca5 --- /dev/null +++ b/c3cat-bottle-clip/write @@ -0,0 +1 @@ +../write \ No newline at end of file