/** * 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. * * 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. */ bottle_clip(); module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="OHM2013", font="write/orbitron.dxf") { 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 == "") { writecylinder(name, [0,0,3], rl+0.5, ht/13*7, h=ht/13*8, t=max(rl,ru), font=font); } else { 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("ohm2013_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("ohm2013_2.dxf"); 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("ohm2013_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]); } } /** * 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="OHM2013", width=2.5, font="write/orbitron.dxf") { bottle_clip(name=name, ru=13, rl=15, ht=26, width=width, font=font); } /** * The Steinie-Tag has been removed since it does not support logos. **/ // vim: set noet ts=2 sw=2 tw=80: