diameter = 15; outerdiameter = 25; height = 15; size = 50; resolution = 36; spacing=2; rounding = 5; bottomHeight=2; //0.6mm Drucktasterhöhe buttonHeight=11.5; buttonSize =13; buttonPin=8; buttonPinOffset=4; buttonPinDiameter=2; bearingDiameter = 10.5; bearingHeight = 4; bearingInner=7.4; screwDiameter = 3.2; //5.1; screwHead = 5.5; screwNut = 6.4; cableWidth=4; cableHeight=2; rotate([0,180,0]) difference() { outline(); lowerhalf(spacing); } translate([0,size-4,0]) union() { translate([0,0,bottomHeight]) intersection() { outline(); lowerhalf(0); } difference() { translate([0,0,-diameter/2+bottomHeight/2]) cube([size-diameter,size-diameter,bottomHeight], center=true); translate([size/2-diameter/2-screwDiameter,size/2-diameter/2-screwDiameter,0]) cylinder(d=screwDiameter, h=size, $fn=resolution, center=true); translate([-(size/2-diameter/2-screwDiameter),size/2-diameter/2-screwDiameter,0]) cylinder(d=screwDiameter, h=size, $fn=resolution, center=true); translate([size/2-diameter/2-screwDiameter,-(size/2-diameter/2-screwDiameter),0]) cylinder(d=screwDiameter, h=size, $fn=resolution, center=true); translate([-(size/2-diameter/2-screwDiameter),-(size/2-diameter/2-screwDiameter),0]) cylinder(d=screwDiameter, h=size, $fn=resolution, center=true); cube([3,size, size], center=true); translate([-buttonPinOffset,0,0]) cube([3,size, size], center=true); translate([+buttonPinOffset,0,0]) cube([3,size, size], center=true); } } module lowerhalf(gap) { translate([0,-diameter*0.25,-(diameter-buttonHeight)/2]) // button part cube([size/3+gap, size-diameter*1.5+gap,buttonHeight],center=true); translate([0,(size-diameter+gap)/2,-(diameter-buttonHeight)/2]) // connector cube([size/3+gap, (size-diameter+gap)/2,buttonHeight],center=true); translate([0,(size-diameter)/2,0]) // rotating cylinder rotate([0,90,0]) cylinder(d=diameter+gap, h=size/3+gap, center=true, $fn=resolution); } module outline() { //cube([50,50,2], center=true); difference() { // minkowski() { // rotate([0,0,22.5]) // cylinder(h=diameter*0.2, d=size-diameter*0.8+3.5, center=true,$fn=8); // sphere(d=diameter*0.8, $fn=resolution); // } //cylinder(h=diameter, d=size, center=true); // hull() { // outer hull // translate([(size-diameter)/2,(size-diameter)/2,0]) // sphere(d=diameter, center=true, $fn=resolution); // translate([-(size-diameter)/2,(size-diameter)/2,0]) // sphere(d=diameter, center=true, $fn=resolution); // translate([(size-diameter)/2,-(size-diameter)/2,0]) // sphere(d=diameter, center=true, $fn=resolution); // translate([-(size-diameter)/2,-(size-diameter)/2,0]) // sphere(d=diameter, center=true, $fn=resolution); // } minkowski() { // outer hull hull() { translate([(size-outerdiameter-height)/2,(size-outerdiameter-height)/2,0]) cylinder(d=outerdiameter, h=0.01, center=true, $fn=resolution*2); translate([-(size-outerdiameter-height)/2,(size-outerdiameter-height)/2,0]) cylinder(d=outerdiameter, h=0.01, center=true, $fn=resolution*2); translate([(size-outerdiameter-height)/2,-(size-outerdiameter-height)/2,0]) cylinder(d=outerdiameter, h=0.01, center=true, $fn=resolution*2); translate([-(size-outerdiameter-height)/2,-(size-outerdiameter-height)/2,0]) cylinder(d=outerdiameter, h=0.01, center=true, $fn=resolution*2); } sphere(d=height, $fn=resolution*2); } translate([0,(size-diameter)/2,0]) // center hole rotate([0,90,0]) cylinder(d=bearingInner, h=buttonSize, $fn=resolution, center=true); translate([0,(size-diameter)/2,0]) // center hole rotate([0,90,0]) cylinder(d=screwDiameter, h=size, $fn=resolution, center=true); translate([buttonSize/2+spacing-bearingHeight/2,(size-diameter)/2,0]) // left hole rotate([0,90,0]) cylinder(d=bearingDiameter, h=bearingHeight, $fn=resolution, center=true); translate([-(buttonSize/2+spacing-bearingHeight/2),(size-diameter)/2,0]) // right hole rotate([0,90,0]) cylinder(d=bearingDiameter, h=bearingHeight, $fn=resolution, center=true); translate([size/4+buttonSize/2+spacing+3,(size-diameter)/2,0]) // left hole rotate([0,90,0]) cylinder(d=screwHead, h=size/2, $fn=resolution, center=true); translate([-(size/4+buttonSize/2+spacing+3),(size-diameter)/2,0]) // right hole rotate([0,90,0]) cylinder(d=screwNut, h=size/2, $fn=6, center=true); // translate([0,(size-diameter)/2,0]) // middle screw // rotate([0,90,0]) // cylinder(d=9.5, h=8, $fn=6, center=true); // translate([0,(size-diameter)/2,-diameter/2]) // cube([8,8,diameter], center=true); translate([0,-size/14,-(diameter-buttonHeight)/2+buttonPinOffset/2]) // button cube([buttonSize,buttonSize*2,buttonHeight-buttonPinOffset], center=true); translate([0,-size/14-buttonSize/2,0]) //button union() { translate([0,0,-(diameter-buttonHeight)/2]) cylinder(d=buttonPinDiameter, h=buttonHeight, center=true); translate([buttonPin/2,buttonPin/2,-(diameter-buttonHeight)/2]) cylinder(d=buttonPinDiameter, h=buttonHeight, center=true); translate([buttonPin/2,-buttonPin/2,-(diameter-buttonHeight)/2]) cylinder(d=buttonPinDiameter, h=buttonHeight, center=true); translate([-buttonPin/2,buttonPin/2,-(diameter-buttonHeight)/2]) cylinder(d=buttonPinDiameter, h=buttonHeight, center=true); translate([-buttonPin/2,-buttonPin/2,-(diameter-buttonHeight)/2]) cylinder(d=buttonPinDiameter, h=buttonHeight, center=true); } translate([0,-size/14+buttonSize/2,0]) //button union() { translate([0,0,-(diameter-buttonHeight)/2]) cylinder(d=buttonPinDiameter, h=buttonHeight, center=true); translate([buttonPin/2,buttonPin/2,-(diameter-buttonHeight)/2]) cylinder(d=buttonPinDiameter, h=buttonHeight, center=true); translate([buttonPin/2,-buttonPin/2,-(diameter-buttonHeight)/2]) cylinder(d=buttonPinDiameter, h=buttonHeight, center=true); translate([-buttonPin/2,buttonPin/2,-(diameter-buttonHeight)/2]) cylinder(d=buttonPinDiameter, h=buttonHeight, center=true); translate([-buttonPin/2,-buttonPin/2,-(diameter-buttonHeight)/2]) cylinder(d=buttonPinDiameter, h=buttonHeight, center=true); } translate([0,0,-diameter/2]) rotate([90,0,0]) cylinder(d=3, h=size, center=true, $fn=resolution); translate([buttonPinOffset,0,-diameter/2]) rotate([90,0,0]) cylinder(d=3, h=size, center=true, $fn=resolution); translate([-buttonPinOffset,0,-diameter/2]) rotate([90,0,0]) cylinder(d=3, h=size, center=true, $fn=resolution); } }