//Disable $fn and $fa, do not change these $fn=0; $fa=0.01; $fs=0.5; m2=3.0; raild=8.5; blockx=20; blocky=15; blockz=17-3.5+3; blockzpad=3+1.5-3.5/2-0.5; backx=54+(blockx-raild)-2*blockx; backy=blocky; backz=3; boardheight=65; boardwidth=45; boardhole=3.3; boardstrip=10; boardmargin=10; boardshift=40; shoewidth=45; shoeheight=10; shoeshift=10; shoemargin=6; module ring(d) { rotate_extrude(convexity = 10, $fn = 100) translate([d, 0, 0]) intersection() { circle(r = 1, $fn = 100); translate([-2,-1])square(2); } } platformwidth=35; sensordiameter=17+0.25; sensorsplit=26; sensorwidth=sensorsplit+sensordiameter; sensorthickness=1; sensorholeheight=25; sensorholeoffset=10; sensortube=12-backz; difference() { union() { cube([shoeheight,shoewidth,backz]); translate([-backz,0,0])cube([backz,shoewidth,platformwidth]); translate([0,(shoewidth-sensorwidth)/2+sensordiameter/2,(platformwidth-backz)/2+backz])rotate([0,90,0])cylinder(d=sensordiameter+sensorthickness,h=sensortube); translate([0,shoewidth-(shoewidth-sensorwidth)/2-sensordiameter/2,(platformwidth-backz)/2+backz])rotate([0,90,0])cylinder(d=sensordiameter+sensorthickness,h=sensortube); } translate([shoeheight/2,shoemargin,0]) cylinder(d=boardhole,h=backz); translate([shoeheight/2,-shoemargin+shoewidth,0]) cylinder(d=boardhole,h=backz); translate([shoeheight/2,shoewidth/2,0]) cylinder(d=boardhole,h=backz); translate([-sensorholeoffset,(shoewidth-sensorwidth)/2+sensordiameter/2,(platformwidth-backz)/2+backz])rotate([0,90,0])cylinder(d=sensordiameter,h=sensorholeheight); translate([-sensorholeoffset,shoewidth-(shoewidth-sensorwidth)/2-sensordiameter/2,(platformwidth-backz)/2+backz])rotate([0,90,0])cylinder(d=sensordiameter,h=sensorholeheight); } translate([sensortube-1,shoewidth-(shoewidth-sensorwidth)/2-sensordiameter/2,(platformwidth-backz)/2+backz])rotate([0,90,0])ring(sensordiameter/2); translate([sensortube-1,(shoewidth-sensorwidth)/2+sensordiameter/2,(platformwidth-backz)/2+backz])rotate([0,90,0])ring(sensordiameter/2);