This commit is contained in:
Rene Arnhold 2020-08-31 00:53:10 +02:00
parent 641e3bc404
commit 39d4c8e5fb
8 changed files with 43946 additions and 5765 deletions

View File

@ -1,35 +1,74 @@
include <ks0454.scad>;
include <PololuMiniPushbutton.scad>
include <nuts_and_bolts.scad>
thickness = 10;
handlebar_diameter = 22;
render = "housing";
module nutHouse() {
difference() {
cylinder(d=6, h=thickness+1, $fn=100);
translate([0,0,-0.1]) cylinder(d=2.2, h=thickness+1.2, $fn=100);
scale(1.1) translate([0,0,-0.1])nutHole(2);
scale(1.1) translate([0,0,1.4])nutHole(2);
scale(1.1) translate([0,0,2.9])nutHole(2);
scale(1.1) translate([0,0,3.4])nutHole(2);
scale(1.1) translate([0,0,4.9])nutHole(2);
}
}
module CruiserBC_Housing() {
difference() {
translate([0,0,-1]) cylinder(r=25, h=1, $fn=100);
translate([-7.5,-3,-1.5]) cube([3,6,3]);
translate([6,-3,-1.5]) cube([3,6,3]);
}
difference() {
union() {
cylinder(r=25, h=thickness, $fn=100);
translate([-20,-35,-1]) cube([40,20,thickness+1]);
difference() {
translate([0,0,-1]) cylinder(r=25, h=1, $fn=100);
translate([-7.5,-3,-1.5]) cube([3,6,3]);
translate([6,-3,-1.5]) cube([3,6,3]);
}
difference() {
union() {
cylinder(r=25, h=thickness, $fn=100);
translate([-20,-35,-1]) cube([40,20,thickness+1]);
}
translate([-1.75,-33, thickness-1]) {
translate([-16.75,-0.75, -thickness+2]) cube([37,20, thickness+1]);
//#translate([-14,0,-2.4]) pmpb2p();
//#translate([0,0,-2.4]) pmpb2p();
//#translate([14,0,-2.4]) pmpb2p();
}
translate([0,0,-0.1]) cylinder(r=24, h=thickness+0.2);
translate([0,0,thickness-6]) ks0454_noholes();
//translate([6,-28.8,-2.5]) cylinder(h=5, r=4.5, $fn=100);
translate([9,-32,4.5]) rotate([90,0,0]) cylinder(h=5, r=4.5, $fn=100);
translate([4.2,-33.8,-0.8]) cube([10,2,5]);
}
translate([-15, -22, 0]) difference() {
cylinder(d=10, h=thickness-5.9);
translate([0,0,-0.1])cylinder(d=4, h=thickness-5.7);
}
translate([15, -22, 0]) difference() {
cylinder(d=10, h=thickness-5.9);
translate([0,0,-0.1])cylinder(d=4, h=thickness-5.7);
}
}
translate([-1.75,-33, thickness-1]) {
translate([-16.75,-0.75, -thickness+2]) cube([37,20, thickness+1]);
#translate([-14,0,-2.4]) pmpb2p();
#translate([0,0,-2.4]) pmpb2p();
#translate([14,0,-2.4]) pmpb2p();
}
translate([0,0,-0.1]) cylinder(r=24, h=thickness+0.2);
translate([0,0,thickness-6]) ks0454_noholes();
translate([10,-28.2,-2.5]) cylinder(h=5, r=3.2, $fn=100);
translate([-15,-22,-2])cylinder(d=4.2, h=thickness-5.7);
translate([15,-22,-2])cylinder(d=4.2, h=thickness-5.7);
translate([-15,-22,-1.1]) nutHole(3);
translate([15,-22,-1.1]) nutHole(3);
}
translate([-15, -20, 0]) cylinder(d=10, h=thickness-5.9);
translate([15, -20, 0]) cylinder(d=10, h=thickness-5.9);
//%translate([0,0,thickness-5.9]) ks0454();
translate([0,27,-1]) nutHouse();
translate([27,0,-1]) nutHouse();
translate([-27,0,-1]) nutHouse();
translate([-19.2,19.2,-1]) nutHouse();
translate([19.2,19.2,-1]) nutHouse();
translate([22.5,-15.5,-1]) nutHouse();
translate([-22.5,-15.5,-1]) nutHouse();
translate([-22,-33,-1]) nutHouse();
translate([22,-33,-1]) nutHouse();
translate([0,-37,-1]) nutHouse();
}
@ -38,25 +77,42 @@ module CruiserBC_Housing() {
}
module CruiserBC_Cover() {
difference() {
union() {
cylinder(r=25, h=3, $fn=100);
translate([-20,-35,0]) cube([40,20,3]);
}
translate([0,0,-0.5]) cylinder(r=17.5, h=4, $fn=100);
//translate([0,0,-0.1]) cylinder(r=19.5, h=2.1, $fn=100);
union() {
difference() {
translate([-19,-19,-0.1]) cube([38,38,2.1]);
rotate([0,0,45]) translate([-19,-19,-0.1]) difference() {
translate([-9,-9,0])cube([55,55,2.1]);
cube([38,38,2.1]);
union() {
cylinder(r=25, h=4, $fn=100);
translate([-20,-35,0]) cube([40,20,4]);
}
translate([0,1,-0.5]) cylinder(r=17.5, h=5, $fn=100);
//translate([0,0,-0.1]) cylinder(r=19.5, h=2.1, $fn=100);
translate([0,1,0]) difference() {
translate([-19,-19,-0.1]) cube([38,38,3.1]);
rotate([0,0,45]) translate([-19,-19,-0.1]) difference() {
translate([-9,-9,0])cube([55,55,3.1]);
cube([38,38,3.1]);
}
}
translate([3.25,-31, thickness-8.8]) {
translate([-12.5,0,-2.0]) rotate([0,0,90]) scale([1.1,1.1,1.3]) pmpb2p_bohrung();
translate([-17.9,0.94,2]) cube([4, 2.2, 0.8]);
translate([0,0,-2.0]) rotate([0,0,90]) scale([1.1,1.1,1.3]) pmpb2p_bohrung();
translate([-5.45,0.94,2]) cube([4, 2.2, 0.8]);
translate([12.5 ,0,-2.0]) rotate([0,0,90]) scale([1.1,1.1,1.3]) pmpb2p_bohrung();
translate([7.15,0.94,2]) cube([4, 2.2, 0.8]);
}
}
translate([-1.75,-33, thickness-8.4]) {
translate([-14,0,-2.4]) pmpb2p_bohrung();
translate([0,0,-2.4]) pmpb2p_bohrung();
translate([14,0,-2.4]) pmpb2p_bohrung();
/*
translate([0,0,-3.4]) difference() {
union() {
cylinder(r=25, h=4, $fn=100);
translate([-20,-35,0]) cube([40,20,4]);
}
translate([0, 0, -1]) union() {
cylinder(r=23, h=6, $fn=100);
translate([-19,-34,0]) cube([38,22,6]);
}
}
*/
}
}
@ -65,11 +121,10 @@ module CruiserBC_Housing() {
}
if (render == "cover" || render == "all") {
!rotate([0, 0, 270]) translate([0,0,thickness]) CruiserBC_Cover();
rotate([0, 0, 270]) translate([0,0,thickness]) CruiserBC_Cover();
}
if (render == "mount" || render == "all") {
//translate([0,0,-5]) CruiserBC_Mount();
}
#translate([-300,0,-12]) rotate([0,90,0]) cylinder(d=handlebar_diameter, 600);
//#translate([-300,0,-12]) rotate([0,90,0]) cylinder(d=handlebar_diameter, 600);

13810
CruiserBC_Cover.gcode Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

20964
CruiserBC_Housing.gcode Normal file

File diff suppressed because it is too large Load Diff

BIN
CruiserBC_Housing.stl Normal file

Binary file not shown.

18
buttonpart.scad Normal file
View File

@ -0,0 +1,18 @@
include <PololuMiniPushbutton.scad>
difference() {
// union() {
// cylinder(r=25, h=4, $fn=100);
// translate([-20,-35,0]) cube([40,20,4]);
// }
translate([-20,0,0]) cube([40,5,4]);
#translate([3.25,0.5, 1.3]) {
translate([-12.5,0,-2.0]) rotate([0,0,90]) scale([1.1,1.1,1.3]) pmpb2p_bohrung();
translate([-17.9,0.94,2]) cube([4, 2.2, 0.8]);
translate([0,0,-2.0]) rotate([0,0,90]) scale([1.1,1.1,1.3]) pmpb2p_bohrung();
translate([-5.45,0.94,2]) cube([4, 2.2, 0.8]);
translate([12.5 ,0,-2.0]) rotate([0,0,90]) scale([1.1,1.1,1.3]) pmpb2p_bohrung();
translate([7.15,0.94,2]) cube([4, 2.2, 0.8]);
}
}

842
buttonpart.stl Normal file
View File

@ -0,0 +1,842 @@
solid OpenSCAD_Model
facet normal 0 1 -0
outer loop
vertex -9.25 0.5 0
vertex -15.85 0.5 3.85
vertex -9.25 0.5 3.85
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -15.85 0.5 3.85
vertex -9.25 0.5 0
vertex -15.85 0.5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -9.25 0.5 3.85
vertex -10.65 1.44 3.85
vertex -9.25 4.35 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -15.85 0.5 3.85
vertex -10.65 1.44 3.85
vertex -9.25 0.5 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -15.85 4.35 3.85
vertex -14.65 1.44 3.85
vertex -15.85 0.5 3.85
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex -10.65 1.44 3.85
vertex -15.85 0.5 3.85
vertex -14.65 1.44 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -10.65 3.64 3.85
vertex -9.25 4.35 3.85
vertex -10.65 1.44 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -15.85 4.35 3.85
vertex -10.65 3.64 3.85
vertex -14.65 3.64 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -10.65 3.64 3.85
vertex -15.85 4.35 3.85
vertex -9.25 4.35 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -14.65 1.44 3.85
vertex -15.85 4.35 3.85
vertex -14.65 3.64 3.85
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -15.85 4.35 0
vertex -9.25 4.35 3.85
vertex -15.85 4.35 3.85
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex -9.25 4.35 3.85
vertex -15.85 4.35 0
vertex -9.25 4.35 0
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex -15.85 0.5 3.85
vertex -15.85 4.35 0
vertex -15.85 4.35 3.85
endloop
endfacet
facet normal 1 0 0
outer loop
vertex -15.85 4.35 0
vertex -15.85 0.5 3.85
vertex -15.85 0.5 0
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -9.25 0.5 0
vertex -9.25 4.35 3.85
vertex -9.25 4.35 0
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -9.25 4.35 3.85
vertex -9.25 0.5 0
vertex -9.25 0.5 3.85
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 3.25 0.5 0
vertex -3.35 0.5 3.85
vertex 3.25 0.5 3.85
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -3.35 0.5 3.85
vertex 3.25 0.5 0
vertex -3.35 0.5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 3.25 0.5 3.85
vertex 1.8 1.44 3.85
vertex 3.25 4.35 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -3.35 0.5 3.85
vertex 1.8 1.44 3.85
vertex 3.25 0.5 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -3.35 4.35 3.85
vertex -2.2 1.44 3.85
vertex -3.35 0.5 3.85
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 1.8 1.44 3.85
vertex -3.35 0.5 3.85
vertex -2.2 1.44 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 1.8 3.64 3.85
vertex 3.25 4.35 3.85
vertex 1.8 1.44 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -3.35 4.35 3.85
vertex 1.8 3.64 3.85
vertex -2.2 3.64 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 1.8 3.64 3.85
vertex -3.35 4.35 3.85
vertex 3.25 4.35 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -2.2 1.44 3.85
vertex -3.35 4.35 3.85
vertex -2.2 3.64 3.85
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -3.35 4.35 0
vertex 3.25 4.35 3.85
vertex -3.35 4.35 3.85
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 3.25 4.35 3.85
vertex -3.35 4.35 0
vertex 3.25 4.35 0
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex -3.35 0.5 3.85
vertex -3.35 4.35 0
vertex -3.35 4.35 3.85
endloop
endfacet
facet normal 1 0 0
outer loop
vertex -3.35 4.35 0
vertex -3.35 0.5 3.85
vertex -3.35 0.5 0
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 3.25 0.5 0
vertex 3.25 4.35 3.85
vertex 3.25 4.35 0
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 3.25 4.35 3.85
vertex 3.25 0.5 0
vertex 3.25 0.5 3.85
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 15.75 0.5 0
vertex 9.15 0.5 3.85
vertex 15.75 0.5 3.85
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 9.15 0.5 3.85
vertex 15.75 0.5 0
vertex 9.15 0.5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 15.75 0.5 3.85
vertex 14.4 1.44 3.85
vertex 15.75 4.35 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 9.15 0.5 3.85
vertex 14.4 1.44 3.85
vertex 15.75 0.5 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 9.15 4.35 3.85
vertex 10.4 1.44 3.85
vertex 9.15 0.5 3.85
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 14.4 1.44 3.85
vertex 9.15 0.5 3.85
vertex 10.4 1.44 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 14.4 3.64 3.85
vertex 15.75 4.35 3.85
vertex 14.4 1.44 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 9.15 4.35 3.85
vertex 14.4 3.64 3.85
vertex 10.4 3.64 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 14.4 3.64 3.85
vertex 9.15 4.35 3.85
vertex 15.75 4.35 3.85
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 10.4 1.44 3.85
vertex 9.15 4.35 3.85
vertex 10.4 3.64 3.85
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 9.15 4.35 0
vertex 15.75 4.35 3.85
vertex 9.15 4.35 3.85
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 15.75 4.35 3.85
vertex 9.15 4.35 0
vertex 15.75 4.35 0
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 9.15 0.5 3.85
vertex 9.15 4.35 0
vertex 9.15 4.35 3.85
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 9.15 4.35 0
vertex 9.15 0.5 3.85
vertex 9.15 0.5 0
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 15.75 0.5 0
vertex 15.75 4.35 3.85
vertex 15.75 4.35 0
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 15.75 4.35 3.85
vertex 15.75 0.5 0
vertex 15.75 0.5 3.85
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex -14.65 1.44 4
vertex -14.65 3.64 3.85
vertex -14.65 3.64 4
endloop
endfacet
facet normal 1 0 0
outer loop
vertex -14.65 3.64 3.85
vertex -14.65 1.44 4
vertex -14.65 1.44 3.85
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -10.65 1.44 3.85
vertex -10.65 3.64 4
vertex -10.65 3.64 3.85
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -10.65 3.64 4
vertex -10.65 1.44 3.85
vertex -10.65 1.44 4
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -14.65 3.64 3.85
vertex -10.65 3.64 4
vertex -14.65 3.64 4
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex -10.65 3.64 4
vertex -14.65 3.64 3.85
vertex -10.65 3.64 3.85
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex -10.65 1.44 3.85
vertex -14.65 1.44 4
vertex -10.65 1.44 4
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -14.65 1.44 4
vertex -10.65 1.44 3.85
vertex -14.65 1.44 3.85
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex -2.2 1.44 4
vertex -2.2 3.64 3.85
vertex -2.2 3.64 4
endloop
endfacet
facet normal 1 0 0
outer loop
vertex -2.2 3.64 3.85
vertex -2.2 1.44 4
vertex -2.2 1.44 3.85
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 1.8 1.44 3.85
vertex 1.8 3.64 4
vertex 1.8 3.64 3.85
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 1.8 3.64 4
vertex 1.8 1.44 3.85
vertex 1.8 1.44 4
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -2.2 3.64 3.85
vertex 1.8 3.64 4
vertex -2.2 3.64 4
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 1.8 3.64 4
vertex -2.2 3.64 3.85
vertex 1.8 3.64 3.85
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 1.8 1.44 3.85
vertex -2.2 1.44 4
vertex 1.8 1.44 4
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -2.2 1.44 4
vertex 1.8 1.44 3.85
vertex -2.2 1.44 3.85
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10.4 1.44 4
vertex 10.4 3.64 3.85
vertex 10.4 3.64 4
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10.4 3.64 3.85
vertex 10.4 1.44 4
vertex 10.4 1.44 3.85
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 14.4 1.44 3.85
vertex 14.4 3.64 4
vertex 14.4 3.64 3.85
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 14.4 3.64 4
vertex 14.4 1.44 3.85
vertex 14.4 1.44 4
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 10.4 3.64 3.85
vertex 14.4 3.64 4
vertex 10.4 3.64 4
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 14.4 3.64 4
vertex 10.4 3.64 3.85
vertex 14.4 3.64 3.85
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 14.4 1.44 3.85
vertex 10.4 1.44 4
vertex 14.4 1.44 4
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 10.4 1.44 4
vertex 14.4 1.44 3.85
vertex 10.4 1.44 3.85
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -20 0 0
vertex -20 5 4
vertex -20 5 0
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -20 5 4
vertex -20 0 0
vertex -20 0 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 14.4 1.44 4
vertex 20 5 4
vertex 14.4 3.64 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 20 5 4
vertex 10.4 3.64 4
vertex 14.4 3.64 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10.4 3.64 4
vertex 1.8 3.64 4
vertex 10.4 1.44 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 20 5 4
vertex 1.8 3.64 4
vertex 10.4 3.64 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 20 5 4
vertex -2.2 3.64 4
vertex 1.8 3.64 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -2.2 3.64 4
vertex -10.65 3.64 4
vertex -2.2 1.44 4
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -20 5 4
vertex -2.2 3.64 4
vertex 20 5 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -2.2 3.64 4
vertex -20 5 4
vertex -10.65 3.64 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -14.65 3.64 4
vertex -20 5 4
vertex -14.65 1.44 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -10.65 3.64 4
vertex -20 5 4
vertex -14.65 3.64 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 20 5 4
vertex 14.4 1.44 4
vertex 20 0 4
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 10.4 1.44 4
vertex 20 0 4
vertex 14.4 1.44 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 1.8 1.44 4
vertex 10.4 1.44 4
vertex 1.8 3.64 4
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 1.8 1.44 4
vertex 20 0 4
vertex 10.4 1.44 4
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -2.2 1.44 4
vertex 20 0 4
vertex 1.8 1.44 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -10.65 1.44 4
vertex -2.2 1.44 4
vertex -10.65 3.64 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -20 0 4
vertex -2.2 1.44 4
vertex -10.65 1.44 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -20 0 4
vertex -10.65 1.44 4
vertex -14.65 1.44 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -2.2 1.44 4
vertex -20 0 4
vertex 20 0 4
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -20 0 4
vertex -14.65 1.44 4
vertex -20 5 4
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 20 0 4
vertex 20 5 0
vertex 20 5 4
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 20 5 0
vertex 20 0 4
vertex 20 0 0
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 20 5 0
vertex -20 5 4
vertex 20 5 4
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -20 5 4
vertex 20 5 0
vertex -20 5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 15.75 4.35 0
vertex 20 0 0
vertex 15.75 0.5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 20 0 0
vertex 9.15 0.5 0
vertex 15.75 0.5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 9.15 0.5 0
vertex 3.25 0.5 0
vertex 9.15 4.35 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 20 0 0
vertex 3.25 0.5 0
vertex 9.15 0.5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 20 0 0
vertex -3.35 0.5 0
vertex 3.25 0.5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -3.35 0.5 0
vertex -9.25 0.5 0
vertex -3.35 4.35 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -20 0 0
vertex -3.35 0.5 0
vertex 20 0 0
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex -3.35 0.5 0
vertex -20 0 0
vertex -9.25 0.5 0
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex -15.85 0.5 0
vertex -20 0 0
vertex -15.85 4.35 0
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex -9.25 0.5 0
vertex -20 0 0
vertex -15.85 0.5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 20 0 0
vertex 15.75 4.35 0
vertex 20 5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 9.15 4.35 0
vertex 20 5 0
vertex 15.75 4.35 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 3.25 4.35 0
vertex 9.15 4.35 0
vertex 3.25 0.5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 3.25 4.35 0
vertex 20 5 0
vertex 9.15 4.35 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -3.35 4.35 0
vertex 20 5 0
vertex 3.25 4.35 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -9.25 4.35 0
vertex -3.35 4.35 0
vertex -9.25 0.5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -20 5 0
vertex -3.35 4.35 0
vertex -9.25 4.35 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -20 5 0
vertex -9.25 4.35 0
vertex -15.85 4.35 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -3.35 4.35 0
vertex -20 5 0
vertex 20 5 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -20 5 0
vertex -15.85 4.35 0
vertex -20 0 0
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -20 0 0
vertex 20 0 4
vertex -20 0 4
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 20 0 4
vertex -20 0 0
vertex 20 0 0
endloop
endfacet
endsolid OpenSCAD_Model

224
nuts_and_bolts.scad Normal file
View File

@ -0,0 +1,224 @@
// Copyright 2010 D1plo1d
// This library is dual licensed under the GPL 3.0 and the GNU Lesser General Public License as per http://creativecommons.org/licenses/LGPL/2.1/ .
//testNutsAndBolts();
module SKIPtestNutsAndBolts()
{
$fn = 360;
translate([0,15])nutHole(3, proj=2);
boltHole(3, length= 30, proj=2);
}
MM = "mm";
INCH = "inch"; //Not yet supported
//Based on: http://www.roymech.co.uk/Useful_Tables/Screws/Hex_Screws.htm
METRIC_NUT_AC_WIDTHS =
[
-1, //0 index is not used but reduces computation
-1,
4.38,//m2
6.40,//m3
8.10,//m4
9.20,//m5
11.50,//m6
-1,
15.00,//m8
-1,
19.60,//m10
-1,
22.10,//m12
-1,
-1,
-1,
27.70,//m16
-1,
-1,
-1,
34.60,//m20
-1,
-1,
-1,
41.60,//m24
-1,
-1,
-1,
-1,
-1,
53.1,//m30
-1,
-1,
-1,
-1,
-1,
63.5//m36
];
METRIC_NUT_THICKNESS =
[
-1, //0 index is not used but reduces computation
-1,
1.6,//m2
2.40,//m3
3.20,//m4
4.00,//m5
5.00,//m6
-1,
6.50,//m8
-1,
8.00,//m10
-1,
10.00,//m12
-1,
-1,
-1,
13.00,//m16
-1,
-1,
-1,
16.00//m20
-1,
-1,
-1,
19.00,//m24
-1,
-1,
-1,
-1,
-1,
24.00,//m30
-1,
-1,
-1,
-1,
-1,
29.00//m36
];
COURSE_METRIC_BOLT_MAJOR_THREAD_DIAMETERS =
[//based on max values
-1, //0 index is not used but reduces computation
-1,
1.6,//m2
2.98,//m3
3.978,//m4
4.976,//m5
5.974,//m6
-1,
7.972,//m8
-1,
9.968,//m10
-1,
11.966,//m12
-1,
-1,
-1,
15.962,//m16
-1,
-1,
-1,
19.958,//m20
-1,
-1,
-1,
23.952,//m24
-1,
-1,
-1,
-1,
-1,
29.947,//m30
-1,
-1,
-1,
-1,
-1,
35.940//m36
];
//Based on: http://www.roymech.co.uk/Useful_Tables/Screws/cap_screws.htm
METRIC_BOLT_CAP_DIAMETERS =
[
-1, //0 index is not used but reduces computation
-1,
-1,
5.50,//m3
7.00,//m4
8.50,//m5
10.00,//m6
-1,
13.00,//m8
-1,
16.00,//m10
-1,
18.00,//m12
-1,
-1,
-1,
24.00,//m16
-1,
-1,
-1,
30.00//m20
-1,
-1,
-1,
36.00,//m24
-1,
-1,
-1,
-1,
-1,
45.00,//m30
-1,
-1,
-1,
-1,
-1,
54.00//m36
];
module nutHole(size, units=MM, tolerance = +0.0001, proj = -1)
{
//takes a metric screw/nut size and looksup nut dimensions
radius = METRIC_NUT_AC_WIDTHS[size]/2+tolerance;
height = METRIC_NUT_THICKNESS[size]+tolerance;
if (proj == -1)
{
cylinder(r= radius, h=height, $fn = 6, center=[0,0]);
}
if (proj == 1)
{
circle(r= radius, $fn = 6);
}
if (proj == 2)
{
translate([-radius/2, 0])
square([radius*2, height]);
}
}
module boltHole(size, units=MM, length, tolerance = +0.0001, proj = -1)
{
radius = COURSE_METRIC_BOLT_MAJOR_THREAD_DIAMETERS[size]/2+tolerance;
capHeight = size+tolerance;
capRadius = METRIC_BOLT_CAP_DIAMETERS[size]/2+tolerance;
if (proj == -1)
{
translate([0, 0, -capHeight])
cylinder(r= capRadius, h=capHeight);
cylinder(r = radius, h = length);
}
if (proj == 1)
{
circle(r = radius);
}
if (proj == 2)
{
translate([-capRadius/2, -capHeight])
square([capRadius*2, capHeight]);
square([radius*2, length]);
}
}