mini-led-cube/pcbracket/src/pcbracket/core.clj
2014-08-04 10:51:23 +02:00

41 lines
1.2 KiB
Clojure

(ns pcbracket.core
(:require [scad-clj.model :refer :all]
[scad-clj.scad :refer :all]))
(defn print-scad [shape]
(spit "pcbracket.scad" (write-scad shape)))
(defn shoe []
"Draw a handy shoe holder for a M3 screw. Scale this to 0.75 will still fit.
This bracket can be used on other projects too to make a latch to hold the
rest of the workpiece on a flat surface."
(difference
(cube 10 10 4)
(translate [0 -0.5 0] (cylinder 3 7))
(translate [0 -1.5 3] (cube 6.75 9 7))
(->>
(cube 12 15 4)
(rotate (/ pi 12) [1 0 0])
(translate [0 -2 3]))))
(defn corpus []
(difference
(cube 40 24.5 4)
(translate [0 0 2] (cube 36 20.5 4))
(translate [-1.5 2 0] (cube 30 13.5 7))
(translate [-20 2 2] (cube 5 10 4))
(translate [-1.5 -14 1] (cube 31 14 10))
(translate [21 -5.75 1] (cube 10 9 7))
(translate [21 -5.75 1] (cube 14 9 4))))
(defn scene []
(union
(corpus)
(scale [0.75 0.75 0.75] (translate [-31.5 -10 -0.7] (rotate (/ pi 2) [0 0 -1] (shoe))))
(scale [0.75 0.75 0.75] (translate [31.5 8 -0.7] (rotate (/ pi 2) [0 0 1] (shoe))))
(scale [0.75 0.75 0.75] (translate [-15 21 -0.7] (rotate pi [0 0 1] (shoe))))))
(print-scad
(color [0.8 0.8 0.8] (scene)))