modules.scad 3.63 KB
include <MCAD/gears.scad>
include <variables.scad>

module achse(spiel=0){
    translate([0,0,-15]) cylinder(h=30,d=7+spiel,center=0);
    }


module Planet(){
    difference() {
	linear_extrude(height = 2, center = false, convexity = 5,twist = 0)
	gear(number_of_teeth=20,circular_pitch=200, diametral_pitch=10,pressure_angle=85, clearance = 0.1);
	translate([0,0,-2]) cylinder(h=5,d=7,center=0);
	for ( aussparung = [0 : 5] ) {
	    rotate([0,0,60*aussparung]) translate([6.5,0,-1]) cylinder(h=4,d=4,center=0);
	}
    }
}

module kranz(teeth=25, height=5){
    diameter = teeth * 1.3;
    difference() {
	cylinder(h=height,d=diameter,center=0);
	translate([0,0,-0.5])
	linear_extrude(height = height+1, center = false, convexity = 5,twist = 0) {
	    gear(number_of_teeth=teeth,
		circular_pitch=200, diametral_pitch=0,
		pressure_angle=85, clearance = -1);
	}}
}

module Tensioner(){
    color("Gray") union() {
	translate([0,0,3]) cylinder(h=1,d=5,center=true);
	translate([0,0,0]) cylinder(h=5,d=4,center=true);
	translate([0,0,-3]) cylinder(h=1,d=5,center=true);
    }
}


module Body(){
    // gehaeuse
    render(convexity=1) {
	translate([0,0,-4.5]) union() {
	    difference() {
		union() {
		    cylinder(h=11,d=80,center=false);
		    translate([-28,-28,9]) {
			minkowski() {
			    cube([5,57,1],false);
			    cylinder(h=1,d=10,center=false);
			}}

		}
		translate([0,0,1]) cylinder(h=8,d=77,center=false);
		difference(){
		    union() {
			translate([33,0,5]) cube([40,80,15],true);
			translate([-33,0,1.5]) cube([40,80,15],true);
		    }
		    translate([0,0,0]) cylinder(h=1,d=30,center=0);
		}
		translate([0,0,-5]) cylinder(h=8,d=25,center=0);
		translate([0,0,5]) cylinder(h=8,d=8,center=0);
	    }
	}
    }
}


module Sun() {
// antrieb inneres standardrad, muss in zwei teilen gedruckt werden !!(?)
    color("CadetBlue") rotate([0,0,SMALLROTATION]) difference() {
	union() {
	    Planet();
	    translate([0,0,-5]) cylinder(h=6,d=19,center=0);
	    translate([0,0,-5])
	    difference() {
		translate([0,0,-7]) cylinder(h=7,d=30,center=0);
		translate([0,0,-6]) kranz(teeth=24, height=5);
	    }
	}
	achse(spiel=0.5);
    }
}

module Annulus() {
    render(convexity=1) {
	// antrieb auesseres Planetrad
	color("CadetBlue") rotate([0,0,BIGROTATION]) difference() {
	    difference() {
		// aeusserer kranz
		translate([0,0,0.-3]) {
		    difference() {
			translate([0,0,0]) {
			    cylinder(h=7,d=75,center=0);
			}
			translate([0,0,2.5]) rotate([0,0,9]) {
			    linear_extrude(height = 3, center = false, convexity = 2,twist = 0) {
				gear(number_of_teeth=60,
				    circular_pitch=200, diametral_pitch=0,
				    pressure_angle=85, clearance = 0.1);
			    }}
		    }
		}
		// zahnriemen auf aeusserem kranz
		translate([0,0,-2]) kranz(teeth=64, height=5);
	    }
	    // innerer leerraum
	    translate([0,0,-3.5]) cylinder(h=8,d=64,center=0);
	}
    }
}



module extractorachse() {
    color("RosyBrown") union() {
	translate([0,0,2.5]) {
	    difference() {
		cylinder(h=1.5,d=60,center=0);
		achse(spiel=0.1);
		for ( aussparung = [0 : 3] ) {
		    rotate([0,0,120*aussparung]) translate([0,15,-0.5]) cylinder(h=5,d=20,center=0);
		}
		for ( achse = [0 : 3] ) {
		    rotate([0,0,120*achse]) translate([20,10,-1]) cylinder(h=3,d=6.7,center=0);
		}
	    }
	}
    }
}

module extractorachsekombiniert() {
    // aufhängung mit extraktorachse
    rotate([0,0,FINALROTATION]){
	color("RosyBrown") union() {
	    extractorachse();
	    achse(spiel=0);
	}
	// drei mittlere raeder
	for ( radnummer = [0 : 3] ) {
	    rotate([0,0,120*radnummer]) translate([20,10]) rotate([0,0,9+MEDIUMROTATION]) {
		// drei mittlere zapfen
		cylinder(h=4,d=6.6,center=0);
		Planet();
	    }
	}
    }
}