roll up for loop to express 3030 in less code
authordaniel watson <ozzloy@gmail.com>
Tue, 16 Jan 2018 07:40:54 +0000 (23:40 -0800)
committerdaniel watson <ozzloy@gmail.com>
Tue, 16 Jan 2018 07:40:54 +0000 (23:40 -0800)
mk2-haribo-spool-holder.scad

index 2a20539f7fee9cfff8cd0402ac480a357f730595..b7ca78b7392e9d9883a21e0d4fd0029b70d60aaf 100644 (file)
@@ -9,14 +9,10 @@ x = 30;
 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;
@@ -29,74 +25,9 @@ intersection(){
     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]) {
@@ -104,7 +35,9 @@ intersection(){
         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.