/*
* Bitextender, for hard to reach screws
* Copyright (C) 2019 Alicia
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
$fn=90;
module bitextender(length=100, width=10, oclearance=0.1, iclearance=0.25)
{
wrench=6.35; // Wrench-size of bit
side=sin(30)/cos(30); // Offset from wrench center to hex edge
wrenchtohex=sqrt(side*side+1); // Pythagoras theorem to get the wrench-to-hex multiplier
diameter=wrench*wrenchtohex;
rotate([180,0,0])cylinder(length/2, diameter/2-oclearance, diameter/2-oclearance, $fn=6);
difference()
{
hull()
{
translate([0,0,length/2-10])cylinder(10, width/2, width/2);
cylinder(1, diameter/2-oclearance, diameter/2-oclearance, $fn=6);
}
translate([0,0,length/2-10])cylinder(11, diameter/2+iclearance*2, diameter/2+iclearance*2, $fn=6);
translate([width/2,0,length/2-9])rotate([90,0,0])cube([width,2,2], center=true); // Air/vacuum hole
}
}
bitextender(80);