2024-01-05 15:47:14 +01:00
/**
* A name tag that can easily be clipped to the neck of your bottle .
* Copyright ( C ) 2013 Roland Hieber < rohieb + bottleclip @ rohieb . name >
*
* This file was modified by obelix < christian @ loelkes . com > 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 < write/Write.scad >
/**
* Creates one instance of a bottle clip name tag . The default values are
* suitable for 0.5 l 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 .
* /
2024-05-14 20:22:55 +02:00
/**
* currently openscad fails to render the original ` Ohren_4 . stl ` outside of the preview mode
* according to [ the wiki ] ( https : //en.wikibooks.org/wiki/OpenSCAD_User_Manual/FAQ#Why_is_my_imported_STL_file_appearing_with_F5_but_not_F6?) this is the stls fault
* using meshlab to run ` Filters ` - > ` Cleaning and Repairing ` - > ` Remove T - Vertices ` by ` Edge - Flip ` with ` Ratio ` of ` 1000000 ` before importing the stl works but but two errors remain .
* /
scale ( [ 0.2 , 0.2 , 0.2 ] ) {
difference ( ) {
scale ( [ 5 , 5 , 5 ] ) rotate ( 45 , [ 0 , 0 , 1 ] ) bottle_clip ( name = "c3cat" ) ;
translate ( [ 15 * 5 , 0 * 5 , 18 * 5 ] ) rotate ( 80 , [ 0 , 1 , 0 ] ) catear ( ) ;
translate ( [ - 15 * 5 , 0 * 5 , 18 * 5 ] ) rotate ( - 80 , [ 0 , 1 , 0 ] ) catear ( ) ;
}
translate ( [ 0 , 5 * 5 , 0 ] ) catear ( ) ;
rotate ( 180 ) translate ( [ 0 , 5 * 5 , 0 ] ) catear ( ) ;
}
2024-01-05 15:47:14 +01:00
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 ( ) {
2024-05-14 20:22:55 +02:00
scale ( [ 1 , 1 , 1 ] ) translate ( [ 0 , - 85 ] ) import ( "catear.stl" ) ;
scale ( [ 1 , - 1 , 1 ] ) translate ( [ 0 , - 85 ] ) import ( "catear.stl" ) ;
2024-01-05 15:47:14 +01:00
}
}
/**
* Creates one instance of a bottle clip name tag suitable for 0.33 l 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 .
* * /