1+ mainH = 12 ; // main body height
2+ mainD = 45.9 ; // main body depth
3+ mainW = 17.78 * 2 ; // main body width
4+ roundingD = 6 ; // depth of the front/back rounding thingy
5+ roundingHoleD = 2.8 ; // diameter of the back/front holes
6+
7+ sensorD = 44.3 ; // outer depth of the sensor plate
8+ sensorW = 30.3 ; // outer width of the sensor plate
9+ sensorFullSizeH = 3 ; // depth of the cutout for the sensor plate
10+ sensorLipW = 1 ; // width of the lip for the sensor to rest on
11+ sensorFullH = sensorFullSizeH + 6 ; // depth of the entire sensor cutout
12+
13+ smallSlotW = 12 ; // width of the small slot
14+ smallSlotX = 10.5 ; // x offset (from outer edge)
15+ bigSlotW = 17 ; // width of the big slot
16+ bigSlotX = 8 ; // x offset (from outer edge)
17+ sensorSlotD = 4 ; // depth of the header slots for the sensors
18+
19+ $ fn= 50 ;
20+ e= 0.01 ;
21+
22+ // xz-origin: center of the hole
23+ module SideThingy()
24+ {
25+ difference ()
26+ {
27+ union ()
28+ {
29+ cube ([mainW/2 ,roundingD,mainH]);
30+ translate ([0 ,0 ,mainH/2 ]) rotate ([- 90 ,0 ,0 ]) cylinder (d= mainH, h= roundingD);
31+ }
32+
33+ translate ([0 ,0 ,mainH/2 ]) rotate ([- 90 ,0 ,0 ]) cylinder (d= roundingHoleD, h= roundingD+ e);
34+ }
35+ }
36+
37+ module CompleteHolder()
38+ {
39+ translate ([0 ,- mainD/2 ,0 ]) difference ()
40+ {
41+ // main body
42+ cube ([mainW, mainD, mainH]);
43+ // flat sensor part cutoff
44+ translate ([1.36 ,(mainD- sensorD)/2 ,0 ]) cube ([sensorW, sensorD, sensorFullSizeH]);
45+ // round sensor part cutoff
46+ translate ([1.36 + sensorLipW,(mainD- sensorD)/2 + sensorLipW,0 ])
47+ cube ([sensorW- 2 * sensorLipW, sensorD- 2 * sensorLipW, sensorFullH]);
48+
49+ // small header slot
50+ translate ([smallSlotX,sensorLipW+ sensorD- sensorSlotD,- 1 ]) cube ([smallSlotW,sensorSlotD,99 * mainH]);
51+ // big slot and push-through area
52+ translate ([bigSlotX,sensorLipW,- 1 ]) cube ([bigSlotW,sensorD- 10 - sensorSlotD,99 * mainH]);
53+ // holes
54+ hR= 1.4 ;
55+ holes= [[1.9 + hR,5.8 + hR],[mainW- 1.9 - hR,5.8 + hR],[14.6 + hR,mainD- 7.07 - hR]];
56+ for (h= holes)
57+ translate ([h[0 ],h[1 ],mainH- 3 ]) cylinder (r= 1.4 , h= 3 + e);
58+ // groves for teensy pins
59+ for (y= [12.8 ,12.8 + 15.24 ])
60+ translate ([0 ,y,mainH]) rotate ([0 ,90 ,0 ]) cylinder (r= 2 , h= mainW, $ fn= 7 );
61+
62+ translate ([mainW* 0.73 ,mainD/2 - 5 ,mainH- 1 ]) linear_extrude(1 ) text("v2" ,size= 6 );
63+ }
64+
65+ translate ([mainW/2 ,0 ,0 ])
66+ {
67+ translate ([0 ,mainD/2 ,0 ]) SideThingy();
68+ mirror ([0 ,1 ,0 ])
69+ translate ([0 ,mainD/2 ,0 ]) SideThingy();
70+ }
71+ }
72+
73+ CompleteHolder();
0 commit comments