Close thumb shapes

This commit is contained in:
Tom Short 2017-03-02 23:10:08 -05:00
parent 284ee47502
commit f982b99491

View file

@ -214,69 +214,69 @@
;;;;;;;;;;;; ;;;;;;;;;;;;
;; Thumbs ;; ;; Thumbs ;;
;;;;;;;;;;;; ;;;;;;;;;;;;
(def thumborigin [-25 -35 40]) (def thumborigin [-23 -34 35])
(defn deg2rad [degrees] (defn deg2rad [degrees]
(* (/ degrees 180) pi)) (* (/ degrees 180) pi))
(defn thumb-a1-place [shape] (defn thumb-tr-place [shape]
(->> shape (->> shape
(rotate (deg2rad 10) [1 0 0]) (rotate (deg2rad 10) [1 0 0])
(rotate (deg2rad -23) [0 1 0]) (rotate (deg2rad -23) [0 1 0])
(rotate (deg2rad -3) [0 0 1]) (rotate (deg2rad -3) [0 0 1])
(translate thumborigin) (translate thumborigin)
(translate [-16 -23 -3]) (translate [-10 -16 0])
)) ))
(defn thumb-a2-place [shape] (defn thumb-tl-place [shape]
(->> shape (->> shape
(rotate (deg2rad 15) [1 0 0]) (rotate (deg2rad 10) [1 0 0])
(rotate (deg2rad -35) [0 1 0]) (rotate (deg2rad -23) [0 1 0])
(rotate (deg2rad -3) [0 0 1])
(translate thumborigin)
(translate [-30 -15 -2])))
(defn thumb-mr-place [shape]
(->> shape
(rotate (deg2rad -6) [1 0 0])
(rotate (deg2rad -34) [0 1 0])
(rotate (deg2rad 48) [0 0 1])
(translate thumborigin)
(translate [-29 -40 -13])
))
(defn thumb-ml-place [shape]
(->> shape
(rotate (deg2rad 6) [1 0 0])
(rotate (deg2rad -34) [0 1 0])
(rotate (deg2rad 40) [0 0 1])
(translate thumborigin)
(translate [-51 -25 -12])))
(defn thumb-br-place [shape]
(->> shape
(rotate (deg2rad -16) [1 0 0])
(rotate (deg2rad -33) [0 1 0])
(rotate (deg2rad 54) [0 0 1]) (rotate (deg2rad 54) [0 0 1])
(translate thumborigin) (translate thumborigin)
(translate [-28 -50 -16]) (translate [-37.8 -55.3 -25.3])
)) ))
(defn thumb-a3-place [shape] (defn thumb-bl-place [shape]
(->> shape (->> shape
(rotate (deg2rad 6) [1 0 0]) (rotate (deg2rad -4) [1 0 0])
(rotate (deg2rad -34) [0 1 0])
(rotate (deg2rad 74) [0 0 1])
(translate thumborigin)
(translate [-35 -65 -27])))
(defn thumb-b1-place [shape]
(->> shape
(rotate (deg2rad 10) [1 0 0])
(rotate (deg2rad -23) [0 1 0])
(rotate (deg2rad -3) [0 0 1])
(translate thumborigin)
(translate [-36 -21 -5])))
(defn thumb-b2-place [shape]
(->> shape
(rotate (deg2rad 6) [1 0 0])
(rotate (deg2rad -34) [0 1 0])
(rotate (deg2rad 70) [0 0 1])
(translate thumborigin)
(translate [-51 -34 -16])
))
(defn thumb-b3-place [shape]
(->> shape
(rotate (deg2rad 3) [1 0 0])
(rotate (deg2rad -35) [0 1 0]) (rotate (deg2rad -35) [0 1 0])
(rotate (deg2rad 52) [0 0 1]) (rotate (deg2rad 52) [0 0 1])
(translate thumborigin) (translate thumborigin)
(translate [-55 -52 -28]) (translate [-56.3 -43.3 -23.5])
)) ))
(defn thumb-1x-layout [shape] (defn thumb-1x-layout [shape]
(union (union
(thumb-a2-place shape) (thumb-mr-place shape)
(thumb-a3-place shape) (thumb-ml-place shape)
(thumb-b2-place shape) (thumb-br-place shape)
(thumb-b3-place shape))) (thumb-bl-place shape)))
(defn thumb-15x-layout [shape] (defn thumb-15x-layout [shape]
(union (union
(thumb-a1-place shape) (thumb-tr-place shape)
(thumb-b1-place shape))) (thumb-tl-place shape)))
(def larger-plate (def larger-plate
(let [plate-height (/ (- sa-double-length mount-height) 3) (let [plate-height (/ (- sa-double-length mount-height) 3)
@ -291,89 +291,10 @@
(thumb-1x-layout (sa-cap 1)) (thumb-1x-layout (sa-cap 1))
(thumb-15x-layout (rotate (/ π 2) [0 0 1] (sa-cap 1.5))))) (thumb-15x-layout (rotate (/ π 2) [0 0 1] (sa-cap 1.5)))))
(def thumb-connectors
(union
(apply union
(concat
(for [column [2] row [1]]
(triangle-hulls (thumb-place column row web-post-br)
(thumb-place column row web-post-tr)
(thumb-place (dec column) row web-post-bl)
(thumb-place (dec column) row web-post-tl)))
(for [column [2] row [0 1]]
(triangle-hulls
(thumb-place column row web-post-bl)
(thumb-place column row web-post-br)
(thumb-place column (dec row) web-post-tl)
(thumb-place column (dec row) web-post-tr)))))
(let [plate-height (/ (- sa-double-length mount-height) 2)
thumb-tl (->> web-post-tl
(translate [0 plate-height 0]))
thumb-bl (->> web-post-bl
(translate [0 (- plate-height) 0]))
thumb-tr (->> web-post-tr
(translate [0 plate-height 0]))
thumb-br (->> web-post-br
(translate [0 (- plate-height) 0]))]
(union
;;Connecting the two doubles
(triangle-hulls (thumb-place 0 -1/2 thumb-tl)
(thumb-place 0 -1/2 thumb-bl)
(thumb-place 1 -1/2 thumb-tr)
(thumb-place 1 -1/2 thumb-br))
;;Connecting the double to the one above it
(triangle-hulls (thumb-place 1 -1/2 thumb-tr)
(thumb-place 1 -1/2 thumb-tl)
(thumb-place 1 1 web-post-br)
(thumb-place 1 1 web-post-bl))
;;Connecting the 4 with the double in the bottom left
(triangle-hulls (thumb-place 1 1 web-post-bl)
(thumb-place 1 -1/2 thumb-tl)
(thumb-place 2 1 web-post-br)
(thumb-place 2 0 web-post-tr))
;;Connecting the two singles with the middle double
(hull (thumb-place 1 -1/2 thumb-tl)
(thumb-place 1 -1/2 thumb-bl)
(thumb-place 2 0 web-post-br)
(thumb-place 2 -1 web-post-tr))
(hull (thumb-place 1 -1/2 thumb-tl)
(thumb-place 2 0 web-post-tr)
(thumb-place 2 0 web-post-br))
(hull (thumb-place 1 -1/2 thumb-bl)
(thumb-place 2 -1 web-post-tr)
(thumb-place 2 -1 web-post-br))
;;Connecting the thumb to everything
(triangle-hulls (thumb-place 0 -1/2 thumb-br)
(key-place 1 4 web-post-bl)
(thumb-place 0 -1/2 thumb-tr)
(key-place 1 4 web-post-tl)
(key-place 1 3 web-post-bl)
(thumb-place 0 -1/2 thumb-tr)
(key-place 0 3 web-post-br)
(key-place 0 3 web-post-bl)
(thumb-place 0 -1/2 thumb-tr)
(thumb-place 0 -1/2 thumb-tl)
(key-place 0 3 web-post-bl)
(thumb-place 1 -1/2 thumb-tr)
(thumb-place 1 1 web-post-br)
(key-place 0 3 web-post-bl)
(key-place 0 3 web-post-tl)
(thumb-place 1 1 web-post-br)
(thumb-place 1 1 web-post-tr))
(hull (thumb-place 0 -1/2 web-post-tr)
(thumb-place 0 -1/2 thumb-tr)
(key-place 1 4 web-post-bl)
(key-place 1 4 web-post-tl))))))
(def thumb (def thumb
(union (union
; thumb-connectors ; thumb-connectors
thumbcaps
(thumb-1x-layout single-plate) (thumb-1x-layout single-plate)
(thumb-15x-layout single-plate) (thumb-15x-layout single-plate)
(thumb-15x-layout larger-plate) (thumb-15x-layout larger-plate)
@ -383,9 +304,9 @@
(write-scad (union (write-scad (union
key-holes key-holes
connectors connectors
caps
thumb thumb
; thumbcaps thumbcaps
caps
; front-wall ; front-wall
; right-wall ; right-wall
; new-case ; new-case