opening_width = 8;
inner_block = 12;
-major_block_corner_diameter = 4;
-major_block_corner_radius = major_block_corner_diameter / 2;
-
corner_block_inner = (30 - 16.5) / 2;
wall = 2;
$fn = 40;
-intersection(){
- minkowski() {
- square(x - major_block_corner_diameter, center=true);
- circle(major_block_corner_radius); }
-
- union(){
- arms = 4;
- for(arm = [0:arms - 1]) {
- rotate(arm * 360 / arms) {
- 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]); }
- translate([x / 2 - wall, opening_width / 2]) {
- square([wall, (y - opening_width) / 2]); } } } } }
+module arm_half(){
+ square(inner_block / 2);
+ rotate(45) {
+ square([diagonal - wall, wall / 2]); }
+ translate([x / 2 - corner_block_inner, y / 2 - corner_block_inner]) {
+ square(corner_block_inner - wall); }
+ translate([opening_width / 2 + wall, y / 2 - wall]) {
+ square([(x - opening_width) / 2 - 2 * wall, wall]);
+ translate([0, wall / 2]){
+ circle(d = wall); } }
+ translate([x / 2 - wall, y / 2 - wall]) {
+ circle(wall); } }
+
+arms = 4;
+for(arm = [0:arms - 1]) {
+ rotate(arm * 360 / arms) {
+ arm_half();
+ mirror(){ arm_half(); } } }
/*
This file is part of 3d-printables.