y = 30;
diagonal = sqrt(pow(30/2, 2) + pow(30/2, 2));
opening_width = 8;
-opening_depth = 9;
-slot_major_width = 16.5;
inner_block = 12;
-inner_hole = 6.8 / 2;
major_block_corner_diameter = 4;
major_block_corner_radius = major_block_corner_diameter / 2;
-major_block = 30 - major_block_corner_diameter;
corner_block_inner = (30 - 16.5) / 2;
wall = 2;
circle(major_block_corner_radius); }
union(){
- square(inner_block / 2);
- rotate(45) translate([diagonal/2, 0]) square([diagonal, wall], center=true);
- translate([x / 2-corner_block_inner, y / 2 - corner_block_inner]) {
- square([corner_block_inner, corner_block_inner]); }
- translate([opening_width / 2, y/2 - wall]) {
- square([(x - opening_width) / 2, wall]); }
-
- mirror([1, -1]) {
- square(inner_block / 2);
- rotate(45) {
- translate([diagonal/2, 0]) {
- square([diagonal, wall], center=true); } }
- translate([x / 2-corner_block_inner, y / 2 - corner_block_inner]) {
- square([corner_block_inner, corner_block_inner]); }
- translate([opening_width / 2, y/2 - wall]) {
- square([(x - opening_width) / 2, wall]); } }
-
- rotate(90){
- square(inner_block / 2);
- rotate(45) {
- translate([diagonal/2, 0]) {
- square([diagonal, wall], center=true); } }
- translate([x / 2-corner_block_inner, y / 2 - corner_block_inner]) {
- square([corner_block_inner, corner_block_inner]); }
- translate([opening_width / 2, y/2 - wall]) {
- square([(x - opening_width) / 2, wall]); }
-
- mirror([1, -1]) {
- square(inner_block / 2);
- rotate(45) {
- translate([diagonal/2, 0]) {
- square([diagonal, wall], center=true); } }
- translate([x / 2-corner_block_inner, y / 2 - corner_block_inner]) {
- square([corner_block_inner, corner_block_inner]); }
- translate([opening_width / 2, y/2 - wall]) {
- square([(x - opening_width) / 2, wall]); } } }
-
- rotate(180){
- square(inner_block / 2);
- rotate(45) {
- translate([diagonal/2, 0]) {
- square([diagonal, wall], center=true); } }
- translate([x / 2-corner_block_inner, y / 2 - corner_block_inner]) {
- square([corner_block_inner, corner_block_inner]); }
- translate([opening_width / 2, y/2 - wall]) {
- square([(x - opening_width) / 2, wall]); }
-
- mirror([1, -1]) {
- square(inner_block / 2);
- rotate(45) {
- translate([diagonal/2, 0]) {
- square([diagonal, wall], center=true); } }
- translate([x / 2-corner_block_inner, y / 2 - corner_block_inner]) {
- square([corner_block_inner, corner_block_inner]); }
- translate([opening_width / 2, y/2 - wall]) {
- square([(x - opening_width) / 2, wall]); } } }
-
- rotate(270){
- square(inner_block / 2);
- rotate(45) {
- translate([diagonal/2, 0]) {
- square([diagonal, wall], center=true); } }
- translate([x / 2-corner_block_inner, y / 2 - corner_block_inner]) {
- square([corner_block_inner, corner_block_inner]); }
- translate([opening_width / 2, y/2 - wall]) {
- square([(x - opening_width) / 2, wall]); }
-
- mirror([1, -1]) {
+ arms = 4;
+ for(arm = [0:arms - 1]) {
+ rotate(arm * 360 / arms) {
square(inner_block / 2);
rotate(45) {
translate([diagonal/2, 0]) {
translate([x / 2-corner_block_inner, y / 2 - corner_block_inner]) {
square([corner_block_inner, corner_block_inner]); }
translate([opening_width / 2, y/2 - wall]) {
- square([(x - opening_width) / 2, wall]); } } } } }
+ square([(x - opening_width) / 2, wall]); }
+ translate([x / 2 - wall, opening_width / 2]) {
+ square([wall, (y - opening_width) / 2]); } } } } }
/*
This file is part of 3d-printables.