3 include <moebius-core.scad>
11 pin_slot_xslop = 0.25;
13 pin_yadj_range = [ -0.50, +0.25 ];
17 pin_pin_yadj_range = pin_yadj_range + [ 0.00, 0.00 ];
23 sliceat = moebiuscore_sliceat * moebiuscore_nomsize;
26 translate([0,0, 200-sliceat])
27 cube(center=true, 400);
37 module HalfPinHeadProfile(xslop, yadj, lenadj) {
38 sw = pin_stemwidth + xslop*2;
39 tw = pin_headwidth + xslop*2;
40 th = pin_headheight + lenadj - yadj;
43 pin_stemlen/2 + yadj + (pin_headwidth - pin_stemwidth)/2 ])
46 pin_stemlen/2 + yadj ])
51 module PinStemProfile(xslop, yadj) {
52 sl = pin_stemlen + pin_headheight/2 + max(yadj * 2, 0);
54 [ pin_stemwidth + xslop*2,
58 module PinExtrudePortion(zi,zrange){
59 translate([0,0,zrange[zi]])
61 linear_extrude(height=0.1)
65 module PinExtrude(zrange,
67 yadjs=[[0,0], [0,0]], // [top[], bottom[]]
68 lenadjs=[0,0]){ // in each case: zrange[0],zrange[1]
70 mirror([0,topboti,0]){
73 PinExtrudePortion(zi,zrange)
74 HalfPinHeadProfile(xslop, yadjs[topboti][zi], lenadjs[zi]);
80 PinExtrudePortion(zi,zrange)
81 PinStemProfile(xslop, max(yadjs[zi][0], yadjs[zi][1]));
87 xslop= pin_slot_xslop,
89 [1,1] * -pin_stemlen/2 ],
90 // bigger gap in -ve y direction
91 lenadjs = [1,1] * (pin_yslop + pin_yadj_range[1]) );
95 PinExtrude([-0.5, 0.5] * pin_height,
96 xslop = pin_pin_xslop,
97 yadjs = [pin_pin_yadj_range, pin_pin_yadj_range],
98 lenadjs = [1,1] * pin_yadj_range[1]
102 module PlacePins(pins=[0,1]){
104 translate( moebius_pin_locns[i] * moebiuscore_nomsize ) {
105 multmatrix(moebius_pin_matrix[i])
116 module Top(){ ////toplevel
128 module Bottom(){ ////toplevel
133 mirror([0,1,0]) PinCutout();
137 module Demo(){ ////toplevel
140 color("blue") PlacePins([0]) Pin();
143 module Kit(){ ////toplevel
144 off = moebiuscore_nomsize*2.5;
145 translate([0,0,sliceat])
147 translate([ 0, -off, 0 ])
149 translate([0,0,sliceat])
151 for (d = [0,1] * pin_height * 2)
152 translate([ off, d, 0 ])
154 translate([ 0,0, pin_height/2 ])
160 //PinExtrude([-2,10]);