include CIRCLE_RADIUS = 140; ELLIPSE_LONG_RADIUS = 200; BEARING_X_SPACING = 200; BEARING_Y_SPACING = 150; BEARING_DIAMETER = 18; // naja $fn = 36; // Bodenplatte module theEgg() { linear_extrude(height = 1) difference() { // The egg union() { // Circle circle(r = CIRCLE_RADIUS); difference() { // Ellipse scale([1, ELLIPSE_LONG_RADIUS / CIRCLE_RADIUS, 1]) circle(r = CIRCLE_RADIUS); translate([0, -ELLIPSE_LONG_RADIUS, 0]) square(ELLIPSE_LONG_RADIUS*2, center=true); } } // Holes in the egg translate([ BEARING_X_SPACING/2, 0, 0]) circle(d = BEARING_DIAMETER); translate([-BEARING_X_SPACING/2, 0, 0]) circle(d = BEARING_DIAMETER); translate([0, BEARING_Y_SPACING, 0]) circle(d = BEARING_DIAMETER); } } translate([0, 0, -15]) color("red") theEgg(); // Sitzfläche translate([0, 200, -15]) color("green") cube([480, 420, 1], true); // Now the important part, the frame // Rolls X Rod -1 translate([-15, 0, 0]) rotate([0, 0, 90]) rohr(R_30x30, 185); // Rolls X Rod -2 translate([15, 0, 0]) rotate([0, 0, -90]) rohr(R_30x30, 185); // Rolls X Rod 1 translate([-15, 200, 0]) rotate([0, 0, 90]) rohr(R_30x30, 185); // Rolls X Rod 2 translate([15, 200, 0]) rotate([0, 0, -90]) rohr(R_30x30, 185); // Main Y Rod translate([0, -200, 0]) rohr(R_30x30, 600);