/* [OpenSCAD] */ $fn=36; /* [Konstruktion] */ Radius = 5; Schlitze = 5; Mittelteil = 15; M3 = 2.5; /* [Debug] */ debug=false; // Auf Z Achse schneiden slice_xy = 320; //[0.5:0.5:50] // Auf X Achse schneiden slice_yz = 260; //[0.5:0.5:30] // Auf Y Achse schneiden slice_xz = 160; //[0.5:0.5:30] /* [Hidden] */ //build_volume = [ 130, 80, 160]; build_volume = [ 50, 50, 50]; module ei(radius, oben=true, unten=true) { translate([0,0,radius]) { //translate([0,0,-0.1]) if (unten) intersection() { sphere(radius); translate([0,0,-2*radius]) cube(4*radius, center=true); } if (oben) intersection() { scale([1,1,2]) sphere(radius); translate([0,0,+2*radius]) cube(4*radius, center=true); } } } module kopf() { difference() { ei(Radius); ei(Radius-1.5); translate([0,0,Radius*1.5]) for(i=[0:360/Schlitze:360]) rotate([45,0,i]) translate([Radius,0,0]) scale([0.5,2,1]) cylinder(r=Radius, h=Radius/5, center=true); } } module stoepsel() { translate([0,0,Mittelteil]) kopf(); translate([0,0,-2*Radius]) ei(Radius, unten=false); translate([0,0,-Radius/2]) difference() { cylinder(d=Radius-1, h=Mittelteil); cylinder(d=M3, h=Mittelteil); } } module adapter() { translate([0,0,-2*Radius]) { ei(Radius, oben=false); cylinder(r1=Radius, d2=M3, h=Radius*2); } cylinder(d1=M3, d2=M3*3/5, h=Mittelteil); } !kopf(); //translate([10,10,0]) stoepsel(); //translate([-10,-10,0]) adapter(); // //// Schnittbild wie im CT/MR: //intersection() { // // // if (debug) { // cube( [ build_volume.x, build_volume.y, slice_xy ], center=true ); // cube( [ build_volume.x, slice_xz, build_volume.z ], center=true ); // cube( [ slice_yz, build_volume.y, build_volume.z ], center=true ); // } //} //