openscad_models/lesson2.scad

128 lines
2.8 KiB
OpenSCAD

// Parameters
keyhole_out_size = 200;
keyhole_thickness = 100;
keyhole_width = 40;
keyhole_color = false;
// Horseshoe shape
//difference() {
/* union() { */
/* // Main horseshoe shape */
/* translate([0, size/2, 0]) { */
/* rotate([90, 0, 0]) { */
/* cylinder(r=size/2, h=thickness); */
/* } */
/* } */
/* translate([0, -size/4, 0]) { */
/* rotate([90, 0, 0]) { */
/* cylinder(r=size/2, h=thickness); */
/* } */
/* } */
/* translate([size/2, 0, 0]) { */
/* rotate([0, 90, 0]) { */
/* cylinder(r=size/4, h=thickness); */
/* } */
/* } */
/* translate([-size/2, 0, 0]) { */
/* rotate([0, 90, 0]) { */
/* cylinder(r=size/4, h=thickness); */
/* } */
/* } */
/* // Cut out center of horseshoe */
/* translate([0, 0, thickness/2]) { */
/* cylinder(r=size/4, h=thickness*2); */
/* } */
/* } */
//}
module keyhole(withColors=keyhole_color) {
maybe_color=withColors?"red":undef;
color(maybe_color, 1.0) {
union() {
difference() {
difference() {
cylinder(r=keyhole_out_size/2, h=keyhole_thickness);
translate([0, -keyhole_out_size/2, 0]){
cube([150, keyhole_out_size, keyhole_thickness]);
}
}
cylinder(r=keyhole_out_size/2-keyhole_width, h=keyhole_thickness);
}
translate([0, -keyhole_out_size/2, 0]){
cube([keyhole_out_size, keyhole_width, keyhole_thickness]);
}
translate([0, keyhole_out_size/2-keyhole_width, 0]){
cube([keyhole_out_size, keyhole_width, keyhole_thickness]);
}
}
}
}
module outsite_plane() {
difference() {
cube([1000, 1000, 100]);
translate([100, 100, -1]){cube([800, 800, 800]);}
}
}
module caseplate(){
union(){
// Keyholes in low side
translate([-200, 100, 0]){
keyhole();
}
translate([-200, 900, 0]){
keyhole();
}
// Keyholes high side
translate([1200, 100, 100]){
rotate([0, 180, 0]) {keyhole();}
}
translate([1200, 900, 100]){
rotate([0, 180, 0]){keyhole();}
}
outsite_plane();
}
}
module base(){
translate([-800, 0, 0]){
difference(){
// We need to remove smaller cube
//and then puctuate the bottom with sylinder
//and cut the top off in the angle of the plate
cube([770, 1000, 1000]);
translate([100, 100, 100]){
cube([600, 800, 1000]);
}
translate([400, 500, -100]){
cylinder(r=300, h=200);
}
translate([400, -300, 1710]){
rotate([0, 150, 0]){
cube([1200, 1800, 1000]);
}
}
}
}
}
module floor(){
translate([-1400, -700, -20]){
color("grey", 1){
cube([2000,2000,20]);}}
}
translate([0, 0, 800]){
rotate([0, 150, 0]){
caseplate();
}
}
base();
floor();