3 include <moebius-core.scad>
11 pin_slot_xslop = 0.25;
13 pin_yadj_range = [ -0.75, +0.5 ];
17 pin_pin_yadj_range = pin_yadj_range + [ 0.00, 0.00 ];
23 sliceat = moebiuscore_sliceat * moebiuscore_nomsize;
28 translate([0,0, 200-sliceat])
29 cube(center=true, 400);
33 module HalfPinHeadProfile(xslop, yadj, lenadj) {
34 sw = pin_stemwidth + xslop*2;
35 tw = pin_headwidth + xslop*2;
36 th = pin_headheight + lenadj - yadj;
39 pin_stemlen/2 + yadj + (pin_headwidth - pin_stemwidth)/2 ])
42 pin_stemlen/2 + yadj ])
47 module PinStemProfile(xslop, yadj) {
48 sl = pin_stemlen + pin_headheight/2 + max(yadj * 2, 0);
50 [ pin_stemwidth + xslop*2,
54 module PinExtrudePortion(zi,zrange){
55 translate([0,0,zrange[zi]])
57 linear_extrude(height=0.1)
61 module PinExtrude(zrange,
63 yadjs=[[0,0], [0,0]], // [top[], bottom[]]
64 lenadjs=[0,0]){ // in each case: zrange[0],zrange[1]
66 mirror([0,topboti,0]){
69 PinExtrudePortion(zi,zrange)
70 HalfPinHeadProfile(xslop, yadjs[topboti][zi], lenadjs[zi]);
76 PinExtrudePortion(zi,zrange)
77 PinStemProfile(xslop, max(yadjs[zi][0], yadjs[zi][1]));
83 xslop= pin_slot_xslop,
85 [1,1] * -pin_stemlen/2 ],
86 // bigger gap in -ve y direction
87 lenadjs = [1,1] * (pin_yslop + pin_yadj_range[1]) );
91 PinExtrude([-0.5, 0.5] * pin_height,
92 xslop = pin_pin_xslop,
93 yadjs = [pin_pin_yadj_range, pin_pin_yadj_range],
94 lenadjs = [1,1] * pin_yadj_range[1]
101 translate( moebius_pin_locns[i] * moebiuscore_nomsize )
103 translate( moebius_pin_locns[i] * moebiuscore_nomsize +
104 moebius_pin_normals[i] * moebiuscore_nomsize*0.5 )
112 //PinExtrude([-2,10]);