Colorize one LED for better understanding the bending of the legs

This commit is contained in:
Aaron Mueller 2014-08-04 10:50:08 +02:00
parent bde5bc33f7
commit 676474a277
2 changed files with 100 additions and 90 deletions

View file

@ -5,6 +5,8 @@
(defn print-scad [shape] (defn print-scad [shape]
(spit "threedvis.scad" (write-scad shape))) (spit "threedvis.scad" (write-scad shape)))
(def first-led (atom 1))
(defn led [edge] (defn led [edge]
(let [long-leg (cylinder 1.5 100)] (let [long-leg (cylinder 1.5 100)]
(union (union
@ -19,17 +21,23 @@
(union (union
(translate [0 5 -30] (cylinder 1.5 50)) (translate [0 5 -30] (cylinder 1.5 50))
(translate [7 5 -60] (rotate (/ pi 4) [0 -1 0] (cylinder 1.5 20)))) (translate [7 5 -60] (rotate (/ pi 4) [0 -1 0] (cylinder 1.5 20))))
(translate [14 5 -122] (cylinder 1.5 110)) (translate [14 5 -117] (cylinder 1.5 100))
(rotate (/ pi 6) [0 1 0] (union (rotate (/ pi 6) [0 1 0] (union
(translate [4 -5 -10] (cylinder 1.5 15)) (translate [4 -5 -10] (cylinder 1.5 15))
(if (not edge) (translate [4 -54 -17] (rotate (/ pi 2) [1 0 0] long-leg))))) (if (not edge) (translate [4 -54 -17] (rotate (/ pi 2) [1 0 0] long-leg)))))
(if edge (translate [44 -4 -17] (rotate (/ pi 2) [0 1 0] long-leg))))))) (if edge (translate [44 -4 -17] (rotate (/ pi 2) [0 1 0] long-leg)))))))
(defn color-led [endpos]
(let [pos (swap! first-led inc)]
(if (= 6 pos)
(color [1 0 0] (led endpos))
(led endpos))))
(defn one-pos [endpos] (defn one-pos [endpos]
(union (union
(translate [0 0 0] (led endpos)) (translate [0 0 0] (color-led endpos))
(translate [0 0 100] (led endpos)) (translate [0 0 100] (color-led endpos))
(translate [0 0 200] (led endpos)))) (translate [0 0 200] (color-led endpos))))
(defn one-column [] (defn one-column []
(union (union

View file

@ -33,8 +33,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -80,8 +80,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -127,8 +127,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -178,8 +178,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -197,45 +197,47 @@ translate ([-100, -100, -100]) {
} }
} }
translate ([0, 0, 100]) { translate ([0, 0, 100]) {
union () { color ([1, 0, 0, ]) {
color ([0.5, 0.5, 2, ]) { union () {
difference () { color ([0.5, 0.5, 2, ]) {
difference () {
union () {
cylinder (h=20, r=10, center=true);
translate ([0, 0, 10]) {
sphere (r=10, center=true);
}
translate ([0, 0, -8]) {
cylinder (h=4, r=13, center=true);
}
}
translate ([0, 13, -7]) {
cube ([30, 5, 10], center=true);
}
}
}
color ([0.3, 0.3, 0.3, ]) {
union () { union () {
cylinder (h=20, r=10, center=true); translate ([0, 5, -30]) {
translate ([0, 0, 10]) { cylinder (h=50, r=1.5, center=true);
sphere (r=10, center=true);
} }
translate ([0, 0, -8]) { translate ([7, 5, -60]) {
cylinder (h=4, r=13, center=true); rotate (a=45.0, v=[0, -1, 0]) {
cylinder (h=20, r=1.5, center=true);
}
} }
} }
translate ([0, 13, -7]) { translate ([14, 5, -117]) {
cube ([30, 5, 10], center=true); cylinder (h=100, r=1.5, center=true);
} }
} rotate (a=29.999999999999996, v=[0, 1, 0]) {
} union () {
color ([0.3, 0.3, 0.3, ]) { translate ([4, -5, -10]) {
union () { cylinder (h=15, r=1.5, center=true);
translate ([0, 5, -30]) { }
cylinder (h=50, r=1.5, center=true); translate ([4, -54, -17]) {
} rotate (a=90.0, v=[1, 0, 0]) {
translate ([7, 5, -60]) { cylinder (h=100, r=1.5, center=true);
rotate (a=45.0, v=[0, -1, 0]) { }
cylinder (h=20, r=1.5, center=true);
}
}
}
translate ([14, 5, -122]) {
cylinder (h=110, r=1.5, center=true);
}
rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () {
translate ([4, -5, -10]) {
cylinder (h=15, r=1.5, center=true);
}
translate ([4, -54, -17]) {
rotate (a=90.0, v=[1, 0, 0]) {
cylinder (h=100, r=1.5, center=true);
} }
} }
} }
@ -272,8 +274,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -323,8 +325,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -370,8 +372,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -417,8 +419,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -472,8 +474,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -519,8 +521,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -566,8 +568,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -617,8 +619,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -664,8 +666,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -711,8 +713,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -762,8 +764,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -809,8 +811,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -856,8 +858,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -911,8 +913,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -958,8 +960,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -1005,8 +1007,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -1056,8 +1058,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -1103,8 +1105,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -1150,8 +1152,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -1201,8 +1203,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -1248,8 +1250,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {
@ -1295,8 +1297,8 @@ translate ([-100, -100, -100]) {
} }
} }
} }
translate ([14, 5, -122]) { translate ([14, 5, -117]) {
cylinder (h=110, r=1.5, center=true); cylinder (h=100, r=1.5, center=true);
} }
rotate (a=29.999999999999996, v=[0, 1, 0]) { rotate (a=29.999999999999996, v=[0, 1, 0]) {
union () { union () {