Compare commits

..

No commits in common. 'bfa702c54ee4fc6475026fc7bd8ef9b52ff5839a' and 'f7303053c1477e0d508990cc938b4b7424019414' have entirely different histories.

@ -2,15 +2,9 @@
Dieses 3D Tux Modell ist mit Openscad erstellt und modular aufgebaut. Der Tux lässt sich in seiner Größe variieren und kann als Figur oder Spardose gerendert werden. Als Vorlage für dieses Modell diente das Modell von [runeman](runeman.org/3d/tux).
## Printable
## Broken
You can print difference modells of the Tux.
| Modell | Options | Description |
| ----- | ------ | ----------- |
| Tux | hight | Print only the Tux with the given hight |
| moneybox | hight, currency | Print the Tux as a moneybox for given currency. Actually supportet (Euro, Sterling, Dollar) |
| lock | hight | This is vor printing the moneybox lock. |
Aktuell ist das Modell nicht als Spardose verwendbar da ich daran arbeite die Wandstärke mit einfließen zu lassen und dem Objekt mehr Optionen zu geben.
## ToDo

@ -10,60 +10,42 @@
////////////////// VARIABLES ////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
///// Render
// lock
// tux
// moneybox minimum hight 200mm
renderer = "moneybox";
// Dimention in mm
// For moneybox the minimal hight is:
// euro = 150mm
// dollar = 170mm
// sterling = 190mm
hight=200;
wall=hight*0.05;
// currency for the coinhole
// Options:
// - euro
// - dollar
// - pfund (without Ten Pounds)
currency="euro";
wall=5;
// Numb of Fragments
$fn=20;
inside=true;
///// Render
// verschluss
// Tux
renderer = "inside";
//////////////////////////////////////////////////////////////////////////
////////////////// RENDERS ///////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
if (renderer == "lock") {
translate([0,0, hight*0.06]) rotate([180,0,0]) lock(hight);
if (renderer == "verschluss") {
translate([0,0, hight*0.06]) rotate([180,0,0]) verschluss(hight);
}
if (renderer == "tux") {
if (renderer == "Tux") {
difference(){
tux(hight);
}
}
if ( renderer == "moneybox") {
difference(){
tux(hight, true);
if( inside == true ){
inside(hight);
}
cutLock(hight);
coinhole(hight, currency);
}
}
if (renderer == "test"){
if (renderer == "inside"){
difference(){
tux(hight, true);
tux(hight);
cutLock(hight);
coinhole(hight, currency);
cube(200);
}
@ -73,7 +55,7 @@ if (renderer == "test"){
/////////////////// MODULES ////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
module lock(size){
module verschluss(size){
translate([0,0,size*0.05]) cube([size*0.4, size*0.05, size*0.02], center=true);
difference(){
union(){
@ -87,43 +69,46 @@ module lock(size){
translate([0,0,size*0.022/2]) cube([size*0.322, size*0.032, size*0.022], center=true);
}
module coinhole(size, currency = "euro") {
// Dimension Dollar "Half Dollar": r=30.61mm h=2.15mm
// Dimension Euro "2 Euro": r=25.75mm h=2.2mm
// Dimension Sterling "Ten pounds": r=65mm h=2.5mm
module inside(size){
if( currency == "euro" ) {
if(size < 170) echo("The minimal hight is 150mm");
translate([0,size*0.05,size*0.95]) rotate([0,0,90]) cube([3, 30, size*0.3], center=true);
translate([0, 0, size*0.60]) cylinder(r=35/2, h=size*0.2);
// innerpart
difference(){
union(){
body(size*0.965);
translate([0,0,size*0.1]) cylinder(r=size*0.11, size*0.82);
}
if( currency == "dollar" ) {
if(size < 170) echo("The minimal hight is 170mm");
translate([0,size*0.05,size*0.95]) rotate([0,0,90]) cube([3, 35, size*0.3], center=true);
translate([0, 0, size*0.60]) cylinder(r=40/2, h=size*0.2);
difference(){
translate([0, 0, size*0.01]) cylinder(r=size*0.30, h=size*0.05);
translate([0, 0, size*0.04]) cylinder(r=size*0.22, h=size*0.02);
translate([0, 0, size*0.02]) cube([size*0.06, size*0.41, size*0.07], center=true);
}
if( currency == "sterling" ) {
if(size < 190) echo("The minimal hight is 190mm");
translate([0,size*0.05,size*0.95]) rotate([0,0,90]) cube([4, 43, size*0.3], center=true);
translate([0, 0, size*0.60]) cylinder(r=45/2, h=size*0.2);
}
// Coinhole
#translate([0,size*0.05,size*0.85]) rotate([0,0,90]) cube([3,28,size*0.3], center=true);
difference(){
union(){
translate([0,1,size*0.83])
rotate([30,0,0])
resize(newsize=[size*0.30,size*0.30,size*0.30])
sphere(size*0.16);
}
translate([0,-size*0.16,size*0.83])
cube([size*0.25,size*0.10,size*0.25], center=true);
}
module cutLock(size){
translate([0,0,size*0.04]) cylinder(r=size*0.21, h=size*0.022);
// Verschluss mit aussparungen.
lock(size*1.01);
verschluss(size*1.01);
translate([0, 0, size*0.02]) cube([size*0.06, size*0.41, size*0.07], center=true);
translate([0, 0, size*0.04]) cube([size*0.41, size*0.06, size*0.006], center=true);
cylinder(r=size*0.18, h=size*0.025);
}
module tux(size, inside = false){
module tux(size){
difference(){
union(){
arm(size, "right");
@ -144,16 +129,10 @@ module tux(size, inside = false){
body(size);
head(size);
}
if( inside == true ){
body(size, wall+5);
head(size, wall+5);
}
translate([0,0,-size*0.7]) cube([size*1.4,size*1.4,size*1.4], center=true);
}
// Botton
resize(newsize=[size*0.60,size*0.52,0])
cylinder(r=size*0.2, h=size*0.06);
}
module head(size, wthikness = 0){
@ -230,10 +209,8 @@ module body(size, wthikness = 0){
}
//tail
if( wthikness == 0){
translate([0,size*0.24,size*0.09])
sphere(size*0.09);
}
sphere(size*0.09-wthikness/2);
}
// ARMS

Loading…
Cancel
Save