Compare commits

...

2 Commits

Author SHA1 Message Date
kreativmonkey bfa702c54e Printable version 6 years ago
kreativmonkey ecc733130c translate module names 6 years ago

@ -2,9 +2,15 @@
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).
## Broken
## Printable
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.
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. |
## ToDo

@ -10,42 +10,60 @@
////////////////// 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=5;
wall=hight*0.05;
// currency for the coinhole
// Options:
// - euro
// - dollar
// - pfund (without Ten Pounds)
currency="euro";
// Numb of Fragments
$fn=20;
inside=true;
///// Render
// verschluss
// Tux
renderer = "inside";
//////////////////////////////////////////////////////////////////////////
////////////////// RENDERS ///////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
if (renderer == "verschluss") {
translate([0,0, hight*0.06]) rotate([180,0,0]) verschluss(hight);
if (renderer == "lock") {
translate([0,0, hight*0.06]) rotate([180,0,0]) lock(hight);
}
if (renderer == "Tux") {
if (renderer == "tux") {
difference(){
tux(hight);
tux(hight);
}
}
if ( renderer == "moneybox") {
difference(){
tux(hight, true);
if( inside == true ){
inside(hight);
}
cutLock(hight);
coinhole(hight, currency);
}
}
if (renderer == "inside"){
if (renderer == "test"){
difference(){
tux(hight);
tux(hight, true);
cutLock(hight);
coinhole(hight, currency);
cube(200);
}
@ -55,7 +73,7 @@ if (renderer == "inside"){
/////////////////// MODULES ////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
module verschluss(size){
module lock(size){
translate([0,0,size*0.05]) cube([size*0.4, size*0.05, size*0.02], center=true);
difference(){
union(){
@ -69,46 +87,43 @@ module verschluss(size){
translate([0,0,size*0.022/2]) cube([size*0.322, size*0.032, size*0.022], center=true);
}
module inside(size){
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
// innerpart
difference(){
union(){
body(size*0.965);
translate([0,0,size*0.1]) cylinder(r=size*0.11, size*0.82);
}
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 == "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);
}
// 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);
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);
}
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);
}
}
module cutLock(size){
translate([0,0,size*0.04]) cylinder(r=size*0.21, h=size*0.022);
// Verschluss mit aussparungen.
verschluss(size*1.01);
lock(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){
module tux(size, inside = false){
difference(){
union(){
arm(size, "right");
@ -129,10 +144,16 @@ module tux(size){
body(size);
head(size);
}
body(size, wall+5);
head(size, wall+5);
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){
@ -209,8 +230,10 @@ module body(size, wthikness = 0){
}
//tail
translate([0,size*0.24,size*0.09])
sphere(size*0.09-wthikness/2);
if( wthikness == 0){
translate([0,size*0.24,size*0.09])
sphere(size*0.09);
}
}
// ARMS

Loading…
Cancel
Save