Improvements (#3)
* Start at Kludgy maltron style spacing * Thumb and pinky tweaks * Fix keyboard-z-offset problem * Tweaks for a shorter-height version * Add wall-thickness parameter * Change hex-spacers to screw-inserts * Adjust height * Fix usb-cutout size and alignment * Adjust teensy-holder * Clean out junk
This commit is contained in:
parent
4e0d902884
commit
a9cbe36abd
1558
fulmer.cjl.txt
1558
fulmer.cjl.txt
File diff suppressed because it is too large
Load diff
1558
fulmer.clj
1558
fulmer.clj
File diff suppressed because it is too large
Load diff
787509
repl.gcode
787509
repl.gcode
File diff suppressed because it is too large
Load diff
BIN
repl.makerbot
BIN
repl.makerbot
Binary file not shown.
|
@ -6,6 +6,9 @@
|
||||||
[unicode-math.core :refer :all]))
|
[unicode-math.core :refer :all]))
|
||||||
|
|
||||||
|
|
||||||
|
(defn deg2rad [degrees]
|
||||||
|
(* (/ degrees 180) pi))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Shape parameters ;;
|
;; Shape parameters ;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
@ -14,20 +17,26 @@
|
||||||
(def ncols 5)
|
(def ncols 5)
|
||||||
|
|
||||||
(def α (/ π 12)) ; curvature of the columns
|
(def α (/ π 12)) ; curvature of the columns
|
||||||
(def β (/ π (if (= nrows 4) 26 36))) ; curvature of the rows
|
(def β (/ π 36)) ; curvature of the rows
|
||||||
(def centerrow (- nrows 3)) ; controls front-back tilt
|
(def centerrow (- nrows 3)) ; controls front-back tilt
|
||||||
(def centercol 3) ; controls left-right tilt / tenting (higher number is more tenting)
|
(def centercol 3) ; controls left-right tilt / tenting (higher number is more tenting)
|
||||||
(def orthographic-x (> nrows 5)) ; for larger number of rows don't curve them in as much
|
(def orthographic-x (> nrows 5)) ; for larger number of rows don't curve them in as much
|
||||||
; (def orthographic-x true) ; controls curvature of rowS
|
; (def orthographic-x true) ; controls curvature of rows
|
||||||
|
(def maltron-style false) ; use fixed angles for columns
|
||||||
|
(def maltron-angles [(deg2rad 10) (deg2rad 10) 0 0 0 (deg2rad -15) (deg2rad -15)]) ; starting point: http://patentimages.storage.googleapis.com/EP0219944A2/imgf0002.png
|
||||||
|
|
||||||
(defn column-offset [column] (cond
|
(defn column-offset [column] (cond
|
||||||
(= column 2) [0 2.82 -4.5]
|
(= column 2) [0 2.82 -4.5]
|
||||||
(>= column 4) [0 -5.8 5.64]
|
(>= column 4) [0 -12 5.64] ; original [0 -5.8 5.64]
|
||||||
:else [0 0 0]))
|
:else [0 0 0]))
|
||||||
|
|
||||||
(def thumb-offsets [6 -3 7])
|
(def thumb-offsets [6 -3 7])
|
||||||
|
|
||||||
(def keyboard-z-offset 24) ; controls height
|
(def keyboard-z-offset 9) ; controls height; original=24
|
||||||
|
|
||||||
|
(def extra-width 2.5) ; extra space between the base of keys; original= 2
|
||||||
|
(def extra-height 1.0) ; origin= 1/2
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; General variables ;;
|
;; General variables ;;
|
||||||
|
@ -123,13 +132,14 @@
|
||||||
(def rows (range 0 nrows))
|
(def rows (range 0 nrows))
|
||||||
|
|
||||||
(def cap-top-height (+ plate-thickness sa-profile-key-height))
|
(def cap-top-height (+ plate-thickness sa-profile-key-height))
|
||||||
(def row-radius (+ (/ (/ (+ mount-height 1/2) 2)
|
(def row-radius (+ (/ (/ (+ mount-height extra-height) 2)
|
||||||
(Math/sin (/ α 2)))
|
(Math/sin (/ α 2)))
|
||||||
cap-top-height))
|
cap-top-height))
|
||||||
(def column-radius (+ (/ (/ (+ mount-width 2.0) 2)
|
(def column-radius (+ (/ (/ (+ mount-width extra-width) 2)
|
||||||
(Math/sin (/ β 2)))
|
(Math/sin (/ β 2)))
|
||||||
cap-top-height))
|
cap-top-height))
|
||||||
(def column-x-delta (+ -1 (- (* column-radius (Math/sin β)))))
|
(def column-x-delta (+ -1 (- (* column-radius (Math/sin β)))))
|
||||||
|
(def column-base-angle (* β (- centercol 2)))
|
||||||
|
|
||||||
(defn key-place [column row shape]
|
(defn key-place [column row shape]
|
||||||
(let [row-placed-shape (->> shape
|
(let [row-placed-shape (->> shape
|
||||||
|
@ -144,10 +154,10 @@
|
||||||
(translate (column-offset column)))
|
(translate (column-offset column)))
|
||||||
column-z-delta (* column-radius (- 1 (Math/cos column-angle)))
|
column-z-delta (* column-radius (- 1 (Math/cos column-angle)))
|
||||||
placed-shape-ortho (->> row-placed-shape
|
placed-shape-ortho (->> row-placed-shape
|
||||||
(rotate column-angle [0 1 0])
|
(rotate (if maltron-style (+ column-base-angle (nth maltron-angles column)) column-angle) [0 1 0])
|
||||||
(translate [(- (* (- column centercol) column-x-delta)) 0 column-z-delta])
|
(translate [(- (* (- column centercol) column-x-delta)) 0 column-z-delta])
|
||||||
(translate (column-offset column)))]
|
(translate (column-offset column)))]
|
||||||
(->> (if orthographic-x placed-shape-ortho placed-shape)
|
(->> (if (or maltron-style orthographic-x) placed-shape-ortho placed-shape)
|
||||||
(rotate (/ π 12) [0 1 0])
|
(rotate (/ π 12) [0 1 0])
|
||||||
(translate [0 0 keyboard-z-offset]))))
|
(translate [0 0 keyboard-z-offset]))))
|
||||||
|
|
||||||
|
@ -196,15 +206,15 @@
|
||||||
(map + (column-offset column)))
|
(map + (column-offset column)))
|
||||||
column-z-delta (* column-radius (- 1 (Math/cos column-angle)))
|
column-z-delta (* column-radius (- 1 (Math/cos column-angle)))
|
||||||
placed-position-ortho (->> row-position
|
placed-position-ortho (->> row-position
|
||||||
(rotate-around-y column-angle)
|
(rotate-around-y (if maltron-style (+ column-base-angle (nth maltron-angles column)) column-angle))
|
||||||
(map + [(- (* (- column centercol) column-x-delta)) 0 column-z-delta])
|
(map + [(- (* (- column centercol) column-x-delta)) 0 column-z-delta])
|
||||||
(map + (column-offset column)))]
|
(map + (column-offset column)))]
|
||||||
(->> (if orthographic-x placed-position-ortho placed-position)
|
(->> (if (or maltron-style orthographic-x) placed-position-ortho placed-position)
|
||||||
(rotate-around-y (/ π 12))
|
(rotate-around-y (/ π 12))
|
||||||
(map + [0 0 24]))))
|
(map + [0 0 keyboard-z-offset]))))
|
||||||
|
|
||||||
; (pr (rotate-around-y π [10 0 1]))
|
; (pr (rotate-around-y π [10 0 1]))
|
||||||
; (pr (key-position 1 cornerrow [(/ mount-width 2) (- (/ mount-height 2)) 0]))
|
(pr (key-position 1 cornerrow [(/ mount-width 2) (- (/ mount-height 2)) 0]))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Web Connectors ;;
|
;; Web Connectors ;;
|
||||||
|
@ -266,24 +276,27 @@
|
||||||
thumb-offsets))
|
thumb-offsets))
|
||||||
; (pr thumborigin)
|
; (pr thumborigin)
|
||||||
|
|
||||||
(defn deg2rad [degrees]
|
|
||||||
(* (/ degrees 180) pi))
|
|
||||||
|
|
||||||
(defn thumb-tr-place [shape]
|
(defn thumb-tr-place [shape]
|
||||||
(->> shape
|
(->> shape
|
||||||
|
; (rotate (deg2rad 10) [1 0 0])
|
||||||
|
; (rotate (deg2rad -23) [0 1 0])
|
||||||
|
; (rotate (deg2rad -3) [0 0 1])
|
||||||
(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 10) [0 0 1])
|
||||||
(translate thumborigin)
|
(translate thumborigin)
|
||||||
(translate [-10 -16 0])
|
(translate [-12 -16 3])
|
||||||
))
|
))
|
||||||
(defn thumb-tl-place [shape]
|
(defn thumb-tl-place [shape]
|
||||||
(->> shape
|
(->> shape
|
||||||
|
; (rotate (deg2rad 10) [1 0 0])
|
||||||
|
; (rotate (deg2rad -23) [0 1 0])
|
||||||
|
; (rotate (deg2rad -3) [0 0 1])
|
||||||
(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 10) [0 0 1])
|
||||||
(translate thumborigin)
|
(translate thumborigin)
|
||||||
(translate [-30 -15 -2])))
|
(translate [-32 -15 -2])))
|
||||||
(defn thumb-mr-place [shape]
|
(defn thumb-mr-place [shape]
|
||||||
(->> shape
|
(->> shape
|
||||||
(rotate (deg2rad -6) [1 0 0])
|
(rotate (deg2rad -6) [1 0 0])
|
||||||
|
@ -434,30 +447,31 @@
|
||||||
(defn bottom [height p]
|
(defn bottom [height p]
|
||||||
(->> (project p)
|
(->> (project p)
|
||||||
(extrude-linear {:height height :twist 0 :convexity 0})
|
(extrude-linear {:height height :twist 0 :convexity 0})
|
||||||
(translate [0 0 (/ height 2)])))
|
(translate [0 0 (- (/ height 2) 10)])))
|
||||||
|
|
||||||
(defn bottom-hull [& p]
|
(defn bottom-hull [& p]
|
||||||
(hull p (bottom 10.001 p)))
|
(hull p (bottom 0.001 p)))
|
||||||
|
|
||||||
(def wall-offset -15)
|
(def wall-offset -15)
|
||||||
|
(def wall-thickness 2) ; originally 5
|
||||||
|
|
||||||
(defn wall-brace [place1 dx1 dy1 post1 place2 dx2 dy2 post2]
|
(defn wall-brace [place1 dx1 dy1 post1 place2 dx2 dy2 post2]
|
||||||
(union
|
(union
|
||||||
(hull
|
(hull
|
||||||
(place1 post1)
|
(place1 post1)
|
||||||
(place1 (translate [0 0 wall-offset] post1))
|
(place1 (translate [0 0 wall-offset] post1))
|
||||||
(place1 (translate [(* dx1 5) (* dy1 5) -4] post1))
|
(place1 (translate [(* dx1 wall-thickness) (* dy1 wall-thickness) -4] post1))
|
||||||
(place1 (translate [(* dx1 5) (* dy1 5) wall-offset] post1))
|
(place1 (translate [(* dx1 wall-thickness) (* dy1 wall-thickness) wall-offset] post1))
|
||||||
(place2 post2)
|
(place2 post2)
|
||||||
(place2 (translate [0 0 wall-offset] post2))
|
(place2 (translate [0 0 wall-offset] post2))
|
||||||
(place2 (translate [(* dx2 5) (* dy2 5) -4] post2))
|
(place2 (translate [(* dx2 wall-thickness) (* dy2 wall-thickness) -4] post2))
|
||||||
(place2 (translate [(* dx2 5) (* dy2 5) wall-offset] post2)))
|
(place2 (translate [(* dx2 wall-thickness) (* dy2 wall-thickness) wall-offset] post2)))
|
||||||
(bottom-hull
|
(bottom-hull
|
||||||
(place1 (translate [(* dx1 5) (* dy1 5) wall-offset] post1))
|
(place1 (translate [(* dx1 wall-thickness) (* dy1 wall-thickness) wall-offset] post1))
|
||||||
(place1 (translate [0 0 wall-offset] post1))
|
(place1 (translate [0 0 wall-offset] post1))
|
||||||
(place1 (translate [(* dx1 5) (* dy1 5) wall-offset] post1))
|
(place1 (translate [(* dx1 wall-thickness) (* dy1 wall-thickness) wall-offset] post1))
|
||||||
(place2 (translate [0 0 wall-offset] post2))
|
(place2 (translate [0 0 wall-offset] post2))
|
||||||
(place2 (translate [(* dx2 5) (* dy2 5) wall-offset] post2)))))
|
(place2 (translate [(* dx2 wall-thickness) (* dy2 wall-thickness) wall-offset] post2)))))
|
||||||
|
|
||||||
(defn key-wall-brace [x1 y1 dx1 dy1 post1 x2 y2 dx2 dy2 post2]
|
(defn key-wall-brace [x1 y1 dx1 dy1 post1 x2 y2 dx2 dy2 post2]
|
||||||
(wall-brace (partial key-place x1 y1) dx1 dy1 post1
|
(wall-brace (partial key-place x1 y1) dx1 dy1 post1
|
||||||
|
@ -519,7 +533,7 @@
|
||||||
(translate [0 (/ mount-height 2) wall-offset])
|
(translate [0 (/ mount-height 2) wall-offset])
|
||||||
))))
|
))))
|
||||||
|
|
||||||
(def rj9-vertical-offset (- (last (key-position 0 0 [0 (/ mount-height 2) 0])) 40))
|
(def rj9-vertical-offset (- (last (key-position 0 0 [0 (/ mount-height 2) 0])) 35))
|
||||||
(def rj9-cube (cube 14.78 13 22.38))
|
(def rj9-cube (cube 14.78 13 22.38))
|
||||||
(def rj9-space (on-wall-place 1 rj9-vertical-offset rj9-cube))
|
(def rj9-space (on-wall-place 1 rj9-vertical-offset rj9-cube))
|
||||||
(def rj9-holder (on-wall-place 1 rj9-vertical-offset
|
(def rj9-holder (on-wall-place 1 rj9-vertical-offset
|
||||||
|
@ -527,34 +541,38 @@
|
||||||
(union (translate [0 2 0] (cube 10.78 9 18.38))
|
(union (translate [0 2 0] (cube 10.78 9 18.38))
|
||||||
(translate [0 0 5] (cube 10.78 13 5))))))
|
(translate [0 0 5] (cube 10.78 13 5))))))
|
||||||
|
|
||||||
|
(def teensy-vertical-offset (+ rj9-vertical-offset 10))
|
||||||
(def teensy-width 20)
|
(def teensy-width 20)
|
||||||
(def teensy-height 12)
|
(def teensy-height 12)
|
||||||
(def teensy-length 33)
|
(def teensy-length 33)
|
||||||
(def teensy2-length 53)
|
(def teensy2-length 53)
|
||||||
(def teensy-pcb-thickness 1.6)
|
(def teensy-pcb-thickness 1.6)
|
||||||
(def teensy-offset-height 5)
|
(def teensy-offset-height 5)
|
||||||
(def teensy-vertical-offset )
|
(def teensy-holder-length 68)
|
||||||
|
(def teensy-holder-offset (- 0 (/ teensy-holder-length 2)))
|
||||||
|
(def teensy-holder-top-length 14)
|
||||||
|
(def teensy-holder-top-offset (- 1 (/ teensy-holder-top-length 2)))
|
||||||
|
|
||||||
(def teensy-holder
|
(def teensy-holder
|
||||||
(on-wall-place 0 rj9-vertical-offset
|
(on-wall-place 0 teensy-vertical-offset
|
||||||
(translate [-5 0 0]
|
(translate [-5 0 0]
|
||||||
(union
|
(union
|
||||||
(->> (cube 3 (* 1.2 teensy2-length) (+ 6 teensy-width))
|
(->> (cube 3 teensy-holder-length (+ 6 teensy-width))
|
||||||
(translate [-1.5 -30 0]))
|
(translate [-1.5 teensy-holder-offset 0]))
|
||||||
(->> (cube teensy-pcb-thickness (* 1.2 teensy2-length) 3)
|
(->> (cube teensy-pcb-thickness teensy-holder-length 3)
|
||||||
(translate [(/ teensy-pcb-thickness 2) -30 (- -1.5 (/ teensy-width 2))]))
|
(translate [(/ teensy-pcb-thickness 2) teensy-holder-offset (- -1.5 (/ teensy-width 2))]))
|
||||||
(->> (cube 4 (* 1.2 teensy2-length) 4)
|
(->> (cube 4 teensy-holder-length 4)
|
||||||
(translate [(+ 2 teensy-pcb-thickness) -30 (- -1 (/ teensy-width 2))]))
|
(translate [(+ 2 teensy-pcb-thickness) teensy-holder-offset (- -1 (/ teensy-width 2))]))
|
||||||
(->> (cube teensy-pcb-thickness (* 0.2 teensy2-length) 3)
|
(->> (cube teensy-pcb-thickness teensy-holder-top-length 3)
|
||||||
(translate [(/ teensy-pcb-thickness 2) (+ (* 0.5 teensy2-length) -30) (+ 1.5 (/ teensy-width 2))]))
|
(translate [(/ teensy-pcb-thickness 2) teensy-holder-top-offset (+ 1.5 (/ teensy-width 2))]))
|
||||||
(->> (cube 4 (* 0.2 teensy2-length) 4)
|
(->> (cube 4 teensy-holder-top-length 4)
|
||||||
(translate [(+ 2 teensy-pcb-thickness) (+ (* 0.5 teensy2-length) -30) (+ 1 (/ teensy-width 2))]))
|
(translate [(+ 2 teensy-pcb-thickness) teensy-holder-top-offset (+ 1 (/ teensy-width 2))]))
|
||||||
))))
|
))))
|
||||||
|
|
||||||
(def usb-cutout
|
(def usb-cutout
|
||||||
(let [hole-height 6.2
|
(let [hole-height 7.5
|
||||||
side-radius (/ hole-height 2)
|
side-radius (/ hole-height 2)
|
||||||
hole-width 10.75
|
hole-width 12
|
||||||
side-cylinder (->> (cylinder side-radius teensy-length)
|
side-cylinder (->> (cylinder side-radius teensy-length)
|
||||||
(with-fn 20)
|
(with-fn 20)
|
||||||
(translate [(/ (- hole-width hole-height) 2) 0 0]))]
|
(translate [(/ (- hole-width hole-height) 2) 0 0]))]
|
||||||
|
@ -562,10 +580,13 @@
|
||||||
(mirror [-1 0 0] side-cylinder))
|
(mirror [-1 0 0] side-cylinder))
|
||||||
(rotate (/ π 2) [1 0 0])
|
(rotate (/ π 2) [1 0 0])
|
||||||
(rotate (/ π 2) [0 1 0])
|
(rotate (/ π 2) [0 1 0])
|
||||||
(on-wall-place 0 rj9-vertical-offset))))
|
(on-wall-place 0 teensy-vertical-offset))))
|
||||||
|
|
||||||
|
(def usb-cutout
|
||||||
|
(on-wall-place 0 teensy-vertical-offset (->> (cube 9 30 12)
|
||||||
|
(translate [-1 10 0]))))
|
||||||
|
|
||||||
(defn hex-spacer [column row radius height]
|
(defn screw-insert [column row bottom-radius top-radius height]
|
||||||
(let [position (key-position column row [0 0 0])
|
(let [position (key-position column row [0 0 0])
|
||||||
column-offset (/ mount-width 2)
|
column-offset (/ mount-width 2)
|
||||||
row-offset (/ mount-height 2)
|
row-offset (/ mount-height 2)
|
||||||
|
@ -576,55 +597,74 @@
|
||||||
is-vertical (or shift-left shift-right)
|
is-vertical (or shift-left shift-right)
|
||||||
col-angle (+ (* β (- centercol column)) (/ π 12))
|
col-angle (+ (* β (- centercol column)) (/ π 12))
|
||||||
row-angle (* α (- row centerrow))]
|
row-angle (* α (- row centerrow))]
|
||||||
(->> (cylinder radius height)
|
(->> (union (cylinder [bottom-radius top-radius] height)
|
||||||
(rotate (if is-vertical (/ π 6) 0) [0 0 1])
|
(translate [0 0 (/ height 2)] (sphere top-radius)))
|
||||||
(translate [(first position) (second position) (/ height 2)])
|
(translate [(first position) (second position) (/ height 2)])
|
||||||
(translate [(* (if shift-right 1 (if shift-left -1 0)) column-offset)
|
(translate [(* (if shift-right 1 (if shift-left -1 0)) column-offset)
|
||||||
(* (if shift-up 1 (if shift-down -1 0)) row-offset)
|
(* (if shift-up 1 (if shift-down -1 0)) row-offset)
|
||||||
0])
|
0])
|
||||||
(translate [(* wall-offset (Math/sin col-angle))
|
(translate [(* wall-offset (Math/sin col-angle))
|
||||||
(* wall-offset (Math/sin row-angle))
|
(* wall-offset (Math/sin row-angle))
|
||||||
0])
|
0]))))
|
||||||
(with-fn 6))))
|
|
||||||
|
|
||||||
(defn hex-spacer-shapes [radius height]
|
(defn screw-insert-shapes [bottom-radius top-radius height]
|
||||||
(union (hex-spacer 0 0 radius height)
|
(union (screw-insert 0 0 bottom-radius top-radius height)
|
||||||
(hex-spacer 0 cornerrow radius height)
|
(screw-insert 0 cornerrow bottom-radius top-radius height)
|
||||||
(hex-spacer 3 lastrow radius height)
|
(screw-insert 3 lastrow bottom-radius top-radius height)
|
||||||
(hex-spacer 3 0 radius height)
|
(screw-insert 3 0 bottom-radius top-radius height)
|
||||||
(hex-spacer lastcol (dec cornerrow) radius height)
|
; (screw-insert lastcol (dec cornerrow) radius height)
|
||||||
))
|
))
|
||||||
(def hex-spacer-height 10)
|
(def screw-insert-height 3.8)
|
||||||
(def hex-spacer-radius (/ 5.42 2))
|
(def screw-insert-bottom-radius (/ 5.31 2))
|
||||||
(def hex-spacer-holes (hex-spacer-shapes hex-spacer-radius hex-spacer-height))
|
(def screw-insert-top-radius (/ 5.1 2))
|
||||||
(def hex-spacer-outers (hex-spacer-shapes (+ hex-spacer-radius 1.6) (+ hex-spacer-height 1.6)))
|
(def screw-insert-holes (screw-insert-shapes screw-insert-bottom-radius screw-insert-top-radius screw-insert-height))
|
||||||
|
(def screw-insert-outers (screw-insert-shapes (+ screw-insert-bottom-radius 1.6) (+ screw-insert-top-radius 1.6) (+ screw-insert-height 1.6)))
|
||||||
|
|
||||||
|
|
||||||
;; teensy info
|
|
||||||
; base width - 18
|
|
||||||
; height - 1.45
|
|
||||||
;
|
|
||||||
|
|
||||||
(spit "things/right.scad"
|
(spit "things/right.scad"
|
||||||
(write-scad (union
|
(write-scad (difference
|
||||||
|
(union
|
||||||
key-holes
|
key-holes
|
||||||
connectors
|
connectors
|
||||||
thumb
|
thumb
|
||||||
thumb-connectors
|
thumb-connectors
|
||||||
(difference (union case-walls hex-spacer-outers)
|
(difference (union case-walls
|
||||||
|
screw-insert-outers
|
||||||
|
(if (= nrows 4) teensy-holder))
|
||||||
rj9-space
|
rj9-space
|
||||||
usb-cutout
|
usb-cutout
|
||||||
hex-spacer-holes)
|
screw-insert-holes)
|
||||||
rj9-holder
|
rj9-holder
|
||||||
(if (= nrows 4) teensy-holder)
|
|
||||||
|
|
||||||
; thumbcaps
|
; thumbcaps
|
||||||
; caps
|
; caps
|
||||||
|
)
|
||||||
|
(translate [0 0 -20] (cube 350 350 40))
|
||||||
|
; (translate [0 0 -50] (cube 5 5 20))
|
||||||
)))
|
)))
|
||||||
|
|
||||||
|
|
||||||
(spit "things/test.scad"
|
(spit "things/test.scad"
|
||||||
(write-scad (intersection (translate [29 -5 0] (cube 30 30 30))
|
(write-scad (intersection (translate [29 -5 0] (cube 30 30 30))
|
||||||
(difference (union case-walls hex-spacer-outers)
|
(difference (union case-walls screw-insert-outers)
|
||||||
hex-spacer-holes)
|
screw-insert-holes)
|
||||||
)))
|
)))
|
||||||
|
|
||||||
|
; (spit "things/test.scad"
|
||||||
|
; (write-scad screw-insert-holes))
|
||||||
|
|
||||||
|
; (spit "things/test-half.scad"
|
||||||
|
; (write-scad (difference
|
||||||
|
; (union
|
||||||
|
; key-holes
|
||||||
|
; connectors
|
||||||
|
; thumb
|
||||||
|
; thumb-connectors
|
||||||
|
; (difference (union case-walls screw-insert-outers)
|
||||||
|
; ; rj9-space
|
||||||
|
; usb-cutout
|
||||||
|
; screw-insert-holes)
|
||||||
|
; ; rj9-holder
|
||||||
|
; ; (if (= nrows 4) teensy-holder)
|
||||||
|
; )
|
||||||
|
; (translate [0 0 -5] (cube 350 350 40))
|
||||||
|
; )))
|
13
t.scad
13
t.scad
|
@ -1,13 +0,0 @@
|
||||||
minkowski()
|
|
||||||
{
|
|
||||||
circle(1);
|
|
||||||
for(i=[0:5])
|
|
||||||
{
|
|
||||||
rotate([0,0,360/5 * i])
|
|
||||||
hull()
|
|
||||||
{
|
|
||||||
translate([20,0,0]) square(10);
|
|
||||||
square(2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
258
things/cura.ini
258
things/cura.ini
|
@ -1,258 +0,0 @@
|
||||||
[profile]
|
|
||||||
layer_height = 0.2
|
|
||||||
wall_thickness = 1.6
|
|
||||||
retraction_enable = False
|
|
||||||
solid_layer_thickness = 0.6
|
|
||||||
fill_density = 100
|
|
||||||
print_speed = 40
|
|
||||||
print_temperature = 215
|
|
||||||
print_temperature2 = 0
|
|
||||||
print_temperature3 = 0
|
|
||||||
print_temperature4 = 0
|
|
||||||
print_temperature5 = 0
|
|
||||||
print_bed_temperature = 45
|
|
||||||
support = Everywhere
|
|
||||||
platform_adhesion = None
|
|
||||||
support_dual_extrusion = Both
|
|
||||||
wipe_tower = False
|
|
||||||
wipe_tower_volume = 15
|
|
||||||
ooze_shield = False
|
|
||||||
filament_diameter = 1.75
|
|
||||||
filament_diameter2 = 0
|
|
||||||
filament_diameter3 = 0
|
|
||||||
filament_diameter4 = 0
|
|
||||||
filament_diameter5 = 0
|
|
||||||
filament_flow = 100.0
|
|
||||||
nozzle_size = 0.4
|
|
||||||
retraction_speed = 40.0
|
|
||||||
retraction_amount = 4.5
|
|
||||||
retraction_dual_amount = 16.5
|
|
||||||
retraction_min_travel = 1.5
|
|
||||||
retraction_combing = All
|
|
||||||
retraction_minimal_extrusion = 0.02
|
|
||||||
retraction_hop = 0.0
|
|
||||||
bottom_thickness = 0.3
|
|
||||||
layer0_width_factor = 100
|
|
||||||
object_sink = 0.0
|
|
||||||
overlap_dual = 0.15
|
|
||||||
travel_speed = 100
|
|
||||||
bottom_layer_speed = 20
|
|
||||||
infill_speed = 0.0
|
|
||||||
solidarea_speed = 0.0
|
|
||||||
inset0_speed = 0.0
|
|
||||||
insetx_speed = 0.0
|
|
||||||
cool_min_layer_time = 5
|
|
||||||
fan_enabled = True
|
|
||||||
skirt_line_count = 1
|
|
||||||
skirt_gap = 3.0
|
|
||||||
skirt_minimal_length = 150.0
|
|
||||||
fan_full_height = 0.5
|
|
||||||
fan_speed = 100
|
|
||||||
fan_speed_max = 100
|
|
||||||
cool_min_feedrate = 10
|
|
||||||
cool_head_lift = False
|
|
||||||
solid_top = True
|
|
||||||
solid_bottom = True
|
|
||||||
fill_overlap = 15
|
|
||||||
perimeter_before_infill = False
|
|
||||||
support_type = Grid
|
|
||||||
support_angle = 60
|
|
||||||
support_fill_rate = 15
|
|
||||||
support_xy_distance = 0.7
|
|
||||||
support_z_distance = 0.15
|
|
||||||
spiralize = False
|
|
||||||
simple_mode = False
|
|
||||||
brim_line_count = 20
|
|
||||||
raft_margin = 5.0
|
|
||||||
raft_line_spacing = 3.0
|
|
||||||
raft_base_thickness = 0.3
|
|
||||||
raft_base_linewidth = 1.0
|
|
||||||
raft_interface_thickness = 0.27
|
|
||||||
raft_interface_linewidth = 0.4
|
|
||||||
raft_airgap_all = 0.0
|
|
||||||
raft_airgap = 0.22
|
|
||||||
raft_surface_layers = 2
|
|
||||||
raft_surface_thickness = 0.27
|
|
||||||
raft_surface_linewidth = 0.4
|
|
||||||
fix_horrible_union_all_type_a = True
|
|
||||||
fix_horrible_union_all_type_b = False
|
|
||||||
fix_horrible_use_open_bits = False
|
|
||||||
fix_horrible_extensive_stitching = False
|
|
||||||
plugin_config =
|
|
||||||
object_center_x = -1
|
|
||||||
object_center_y = -1
|
|
||||||
|
|
||||||
[alterations]
|
|
||||||
start.gcode = ;Sliced at: {day} {date} {time}
|
|
||||||
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
|
|
||||||
;Print time: {print_time}
|
|
||||||
;Filament used: {filament_amount}m {filament_weight}g
|
|
||||||
;Filament cost: {filament_cost}
|
|
||||||
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
|
|
||||||
;M109 S{print_temperature} ;Uncomment to add your own temperature line
|
|
||||||
G21 ;metric values
|
|
||||||
G90 ;absolute positioning
|
|
||||||
M82 ;set extruder to absolute mode
|
|
||||||
M107 ;start with the fan off
|
|
||||||
G28 X0 Y0 ;move X/Y to min endstops
|
|
||||||
G28 Z0 ;move Z to min endstops
|
|
||||||
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
|
|
||||||
G92 E0 ;zero the extruded length
|
|
||||||
G1 F200 E3 ;extrude 3mm of feed stock
|
|
||||||
G92 E0 ;zero the extruded length again
|
|
||||||
G1 F{travel_speed}
|
|
||||||
;Put printing message on LCD screen
|
|
||||||
M117 Printing...
|
|
||||||
end.gcode = ;End GCode
|
|
||||||
M104 S0 ;extruder heater off
|
|
||||||
M140 S0 ;heated bed heater off (if you have it)
|
|
||||||
G91 ;relative positioning
|
|
||||||
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
|
|
||||||
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
|
|
||||||
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
|
|
||||||
M84 ;steppers off
|
|
||||||
G90 ;absolute positioning
|
|
||||||
;{profile_string}
|
|
||||||
start2.gcode = ;Sliced at: {day} {date} {time}
|
|
||||||
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
|
|
||||||
;Print time: {print_time}
|
|
||||||
;Filament used: {filament_amount}m {filament_weight}g
|
|
||||||
;Filament cost: {filament_cost}
|
|
||||||
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
|
|
||||||
;M104 S{print_temperature} ;Uncomment to add your own temperature line
|
|
||||||
;M109 T1 S{print_temperature2} ;Uncomment to add your own temperature line
|
|
||||||
;M109 T0 S{print_temperature} ;Uncomment to add your own temperature line
|
|
||||||
G21 ;metric values
|
|
||||||
G90 ;absolute positioning
|
|
||||||
M107 ;start with the fan off
|
|
||||||
G28 X0 Y0 ;move X/Y to min endstops
|
|
||||||
G28 Z0 ;move Z to min endstops
|
|
||||||
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
|
|
||||||
T1 ;Switch to the 2nd extruder
|
|
||||||
G92 E0 ;zero the extruded length
|
|
||||||
G1 F200 E10 ;extrude 10mm of feed stock
|
|
||||||
G92 E0 ;zero the extruded length again
|
|
||||||
G1 F200 E-{retraction_dual_amount}
|
|
||||||
T0 ;Switch to the first extruder
|
|
||||||
G92 E0 ;zero the extruded length
|
|
||||||
G1 F200 E10 ;extrude 10mm of feed stock
|
|
||||||
G92 E0 ;zero the extruded length again
|
|
||||||
G1 F{travel_speed}
|
|
||||||
;Put printing message on LCD screen
|
|
||||||
M117 Printing...
|
|
||||||
end2.gcode = ;End GCode
|
|
||||||
M104 T0 S0 ;extruder heater off
|
|
||||||
M104 T1 S0 ;extruder heater off
|
|
||||||
M140 S0 ;heated bed heater off (if you have it)
|
|
||||||
G91 ;relative positioning
|
|
||||||
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
|
|
||||||
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
|
|
||||||
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
|
|
||||||
M84 ;steppers off
|
|
||||||
G90 ;absolute positioning
|
|
||||||
;{profile_string}
|
|
||||||
start3.gcode = ;Sliced at: {day} {date} {time}
|
|
||||||
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
|
|
||||||
;Print time: {print_time}
|
|
||||||
;Filament used: {filament_amount}m {filament_weight}g
|
|
||||||
;Filament cost: {filament_cost}
|
|
||||||
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
|
|
||||||
;M104 S{print_temperature} ;Uncomment to add your own temperature line
|
|
||||||
;M109 T1 S{print_temperature2} ;Uncomment to add your own temperature line
|
|
||||||
;M109 T0 S{print_temperature} ;Uncomment to add your own temperature line
|
|
||||||
G21 ;metric values
|
|
||||||
G90 ;absolute positioning
|
|
||||||
M107 ;start with the fan off
|
|
||||||
G28 X0 Y0 ;move X/Y to min endstops
|
|
||||||
G28 Z0 ;move Z to min endstops
|
|
||||||
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
|
|
||||||
T2 ;Switch to the 3rd extruder
|
|
||||||
G92 E0 ;zero the extruded length
|
|
||||||
G1 F200 E10 ;extrude 10mm of feed stock
|
|
||||||
G92 E0 ;zero the extruded length again
|
|
||||||
G1 F200 E-{retraction_dual_amount}
|
|
||||||
T1 ;Switch to the 2nd extruder
|
|
||||||
G92 E0 ;zero the extruded length
|
|
||||||
G1 F200 E10 ;extrude 10mm of feed stock
|
|
||||||
G92 E0 ;zero the extruded length again
|
|
||||||
G1 F200 E-{retraction_dual_amount}
|
|
||||||
T0 ;Switch to the first extruder
|
|
||||||
G92 E0 ;zero the extruded length
|
|
||||||
G1 F200 E10 ;extrude 10mm of feed stock
|
|
||||||
G92 E0 ;zero the extruded length again
|
|
||||||
G1 F{travel_speed}
|
|
||||||
;Put printing message on LCD screen
|
|
||||||
M117 Printing...
|
|
||||||
end3.gcode = ;End GCode
|
|
||||||
M104 T0 S0 ;extruder heater off
|
|
||||||
M104 T1 S0 ;extruder heater off
|
|
||||||
M104 T2 S0 ;extruder heater off
|
|
||||||
M140 S0 ;heated bed heater off (if you have it)
|
|
||||||
G91 ;relative positioning
|
|
||||||
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
|
|
||||||
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
|
|
||||||
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
|
|
||||||
M84 ;steppers off
|
|
||||||
G90 ;absolute positioning
|
|
||||||
;{profile_string}
|
|
||||||
start4.gcode = ;Sliced at: {day} {date} {time}
|
|
||||||
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
|
|
||||||
;Print time: {print_time}
|
|
||||||
;Filament used: {filament_amount}m {filament_weight}g
|
|
||||||
;Filament cost: {filament_cost}
|
|
||||||
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
|
|
||||||
;M104 S{print_temperature} ;Uncomment to add your own temperature line
|
|
||||||
;M109 T2 S{print_temperature2} ;Uncomment to add your own temperature line
|
|
||||||
;M109 T1 S{print_temperature2} ;Uncomment to add your own temperature line
|
|
||||||
;M109 T0 S{print_temperature} ;Uncomment to add your own temperature line
|
|
||||||
G21 ;metric values
|
|
||||||
G90 ;absolute positioning
|
|
||||||
M107 ;start with the fan off
|
|
||||||
G28 X0 Y0 ;move X/Y to min endstops
|
|
||||||
G28 Z0 ;move Z to min endstops
|
|
||||||
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
|
|
||||||
T3 ;Switch to the 4th extruder
|
|
||||||
G92 E0 ;zero the extruded length
|
|
||||||
G1 F200 E10 ;extrude 10mm of feed stock
|
|
||||||
G92 E0 ;zero the extruded length again
|
|
||||||
G1 F200 E-{retraction_dual_amount}
|
|
||||||
T2 ;Switch to the 3rd extruder
|
|
||||||
G92 E0 ;zero the extruded length
|
|
||||||
G1 F200 E10 ;extrude 10mm of feed stock
|
|
||||||
G92 E0 ;zero the extruded length again
|
|
||||||
G1 F200 E-{retraction_dual_amount}
|
|
||||||
T1 ;Switch to the 2nd extruder
|
|
||||||
G92 E0 ;zero the extruded length
|
|
||||||
G1 F200 E10 ;extrude 10mm of feed stock
|
|
||||||
G92 E0 ;zero the extruded length again
|
|
||||||
G1 F200 E-{retraction_dual_amount}
|
|
||||||
T0 ;Switch to the first extruder
|
|
||||||
G92 E0 ;zero the extruded length
|
|
||||||
G1 F200 E10 ;extrude 10mm of feed stock
|
|
||||||
G92 E0 ;zero the extruded length again
|
|
||||||
G1 F{travel_speed}
|
|
||||||
;Put printing message on LCD screen
|
|
||||||
M117 Printing...
|
|
||||||
end4.gcode = ;End GCode
|
|
||||||
M104 T0 S0 ;extruder heater off
|
|
||||||
M104 T1 S0 ;extruder heater off
|
|
||||||
M104 T2 S0 ;extruder heater off
|
|
||||||
M104 T3 S0 ;extruder heater off
|
|
||||||
M140 S0 ;heated bed heater off (if you have it)
|
|
||||||
G91 ;relative positioning
|
|
||||||
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
|
|
||||||
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
|
|
||||||
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
|
|
||||||
M84 ;steppers off
|
|
||||||
G90 ;absolute positioning
|
|
||||||
;{profile_string}
|
|
||||||
support_start.gcode =
|
|
||||||
support_end.gcode =
|
|
||||||
cool_start.gcode =
|
|
||||||
cool_end.gcode =
|
|
||||||
replace.csv =
|
|
||||||
preswitchextruder.gcode = ;Switch between the current extruder and the next extruder, when printing with multiple extruders.
|
|
||||||
;This code is added before the T(n)
|
|
||||||
postswitchextruder.gcode = ;Switch between the current extruder and the next extruder, when printing with multiple extruders.
|
|
||||||
;This code is added after the T(n)
|
|
||||||
|
|
783855
things/right-4-rows.gcode
783855
things/right-4-rows.gcode
File diff suppressed because it is too large
Load diff
Binary file not shown.
25715
things/right-4x5.scad
25715
things/right-4x5.scad
File diff suppressed because it is too large
Load diff
28735
things/right-4x6.scad
28735
things/right-4x6.scad
File diff suppressed because it is too large
Load diff
33186
things/right-5x6.scad
33186
things/right-5x6.scad
File diff suppressed because it is too large
Load diff
35230
things/right-6x6.scad
35230
things/right-6x6.scad
File diff suppressed because it is too large
Load diff
25717
things/right.scad
25717
things/right.scad
File diff suppressed because it is too large
Load diff
13045
things/test.gcode
13045
things/test.gcode
File diff suppressed because it is too large
Load diff
17309
things/test.scad
17309
things/test.scad
File diff suppressed because it is too large
Load diff
1010
things/test.stl
1010
things/test.stl
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue