Second iteration

Cleand up sources
Improved thread for simpler printing
Added grove to hide the pipe ende
Improved lid
This commit is contained in:
Sebastian 2015-12-13 02:23:25 +01:00
parent ffa8f0f53b
commit 12ee92fa47
5 changed files with 165 additions and 131 deletions

View File

@ -1,57 +1,13 @@
$fn = 90;
bumper_diameter = 85;
body_diameter = 69;
m3nut_diameter = 6.5;
include <constants.scad>
use <cap.scad>
difference() {
// Cap
union() {
cylinder(r = bumper_diameter / 2,
h = 5,
center = true);
translate([0, 0, -5])
cylinder(r2 = bumper_diameter / 2,
r1 = body_diameter /2,
h = 5,
center = true);
translate([0, 0, 5])
cylinder(r1 = bumper_diameter / 2,
r2 = body_diameter /2,
h = 5,
center = true);
translate([0, 0, -5 - 7.5])
cylinder(r = body_diameter / 2,
h = 10,
center = true);
}
cap();
// Make the cap hollow
translate([0, 0, -10 + 2.5])
cylinder(r = (body_diameter / 2) - 5,
h = 20.1,
translate([0, 0, -1.5 * height_unit])
cylinder(r = body_hole_diameter / 2,
h = 4 * height_unit + 0.1,
center = true);
for(angle = [0, 90, 180, 270]) {
rotate([0,0,angle])
translate([0,
body_diameter / 2 - 1.8 - 2.5,
-10 - m3nut_diameter / 2])
rotate([90, 0 ,0])
union() {
cylinder(r = m3nut_diameter / 2,
h=3.6,
center=true,
$fn=6);
translate([0,0,-3])
cylinder(r = 3.5/2,
h=6,
center=true);
}
}
}

80
cap.scad Normal file
View File

@ -0,0 +1,80 @@
include <constants.scad>;
module cap() {
difference() {
// Actual cap
union() {
// Bumper
cylinder(r = bumper_diameter / 2,
h = height_unit,
center = true);
// Lower cone
translate([0, 0, - 1.5 * height_unit])
cylinder(r2 = bumper_diameter / 2,
r1 = body_diameter /2,
h = height_unit * 2,
center = true);
// Upper cone
translate([0, 0, height_unit])
cylinder(r1 = bumper_diameter / 2,
r2 = body_diameter /2,
h = height_unit,
center = true);
// End piece that goes into the tube
translate([0, 0, -2.5 * height_unit])
cylinder(r = body_diameter / 2,
h = 2 * height_unit,
center = true);
}
// Make a grove to slide the tube into
translate([0, 0, -2 * height_unit])
difference() {
cylinder(r = tube_outer_diameter / 2,
h = height_unit,
center = true);
cylinder(r = body_diameter / 2,
h = height_unit + 0.1,
center = true);
}
// Make the end piece of the cap hollow
translate([0, 0, -2.5 * height_unit])
cylinder(r = body_hole_diameter / 2,
h = 2 * height_unit + 0.1,
center = true);
// Place the nuts
nut_y_offset = body_diameter / 2
- (body_diameter/2 - body_hole_diameter/2)
+ m3nut_depth / 2 - 0.5;
for(angle = [0, 90, 180, 270]) {
rotate([0,0,angle])
translate([0,
nut_y_offset,
- 2.5 * height_unit])
rotate([90, 0 ,0])
//This is one nut and the hole attched to it
union() {
cylinder(r = m3nut_diameter / 2,
h = m3nut_depth,
center = true,
$fn = 6);
translate([0, 0, -m3hole_depth / 2 -m3nut_depth / 2])
cylinder(r = m3hole_diameter / 2,
h = m3hole_depth + 0.1,
center = true);
};
}
}
}
cap();

25
constants.scad Normal file
View File

@ -0,0 +1,25 @@
$fn = 90;
bumper_diameter = 85;
body_diameter = 70;
body_hole_diameter = body_diameter - 10;
tube_outer_diameter = 75;
m3nut_diameter = 6.5;
m3nut_depth = 3.6;
m3hole_diameter = 3.5;
m3hole_depth = (body_diameter - body_hole_diameter) / 2 - m3nut_depth + 0.5;
height_unit = 5;
thread_diameter = body_diameter - 10;
thread_hole_diameter = thread_diameter - 5;
thread_pitch = 3;
thread_lenght_top = 12.5;
thread_lenght_lid = 7.5;
thread_tolerance = 0.1;
lid_diameter = body_diameter - 5;
lid_tolerance = 0.1;

View File

@ -1,33 +1,39 @@
include <constants.scad>;
use <cap.scad>;
use <threads.scad>;
$fn = 90;
bumper_diameter = 85;
body_diameter = 69;
m3nut_diameter = 6.5;
tolerance = 0.5;
thread_diameter = body_diameter - 10;
thread_pitch = 3;
thread_lenght = 7.5;
difference() {
union() {
translate([0, 0, 1.25])
cylinder(r = body_diameter / 2 - 2.5 - tolerance,
h=2.6,
translate([0, 0, 0.25 * height_unit])
cylinder(r = lid_diameter / 2 - lid_tolerance,
h=0.5 * height_unit,
center=true);
translate([0, 0, -thread_lenght])
metric_thread(thread_diameter,
translate([0, 0, -thread_lenght_lid])
metric_thread(thread_diameter - thread_tolerance,
thread_pitch,
thread_lenght);
thread_lenght_lid);
}
for(pos = [-15, 15]) {
translate([pos, 0, 2.5 + 2.5])
sphere(r = 5, center=true);
union() {
for(pos = [-3 * height_unit, 3 * height_unit]) {
translate([pos, 0, height_unit])
sphere(r = 1.5 * height_unit, center=true);
}
translate([0, 0, height_unit])
rotate([0, 90, 0])
cylinder(r = 1.5 * height_unit, h=6 * height_unit, center=true);
}
//Make the thread hollow
translate([0, 0, - 1.5 * height_unit])
cylinder(r = thread_diameter / 2 - 5,
h = 1.5 * height_unit + 0.01,
center=true);
}

View File

@ -1,75 +1,42 @@
include <constants.scad>;
use <threads.scad>;
use <cap.scad>;
$fn = 90;
bumper_diameter = 85;
body_diameter = 69;
m3nut_diameter = 6.5;
thread_diameter = body_diameter - 10;
thread_pitch = 3;
thread_lenght = 7.5;
difference() {
// Cap
union() {
cylinder(r = bumper_diameter / 2,
h = 5,
center = true);
translate([0, 0, -5])
cylinder(r2 = bumper_diameter / 2,
r1 = body_diameter /2,
h = 5,
center = true);
translate([0, 0, 5])
cylinder(r1 = bumper_diameter / 2,
r2 = body_diameter /2,
h = 5,
center = true);
translate([0, 0, -5 - 7.5])
cylinder(r = body_diameter / 2,
h = 10,
center = true);
}
cap();
// Make the cap hollow
translate([0, 0, -10])
cylinder(r = (body_diameter / 2) - 5,
h = 15.1,
center = true);
// Hole for the lid
union() {
translate([0, 0, 5 + 1.25])
cylinder(r = body_diameter / 2 - 2.5, h=2.6, center=true);
translate([0, 0, -2.5])
metric_thread(thread_diameter,
// Actual lid hole
translate([0, 0, 1.25 * height_unit])
cylinder(r = lid_diameter / 2,
h = 0.5 * height_unit + 0.01,
center = true);
// Add a little bevel to smooth the thread start
translate([0, 0, (0.125 + 0.75) * height_unit])
cylinder(r2 = lid_diameter / 2,
r1 = thread_diameter / 2,
h = 0.25 * height_unit + 0.01,
center = true);
// Metric Thread
translate([0, 0, - height_unit])
metric_thread(thread_diameter + thread_tolerance,
thread_pitch,
thread_lenght,
thread_lenght_top,
internal=true);
// Put a little support unter the thread
translate([0, 0, -height_unit])
cylinder(r2 = thread_hole_diameter / 2,
r1 = body_hole_diameter / 2,
h = 1 * height_unit + 0.01,
center = true);
}
// Screw holes
for(angle = [0, 90, 180, 270]) {
rotate([0,0,angle])
translate([0,
body_diameter / 2 - 1.8 - 2.5,
-10 - m3nut_diameter / 2])
rotate([90, 0 ,0])
union() {
cylinder(r = m3nut_diameter / 2,
h=3.6,
center=true,
$fn=6);
translate([0,0,-3])
cylinder(r = 3.5/2,
h=6,
center=true);
}
}
}