diff --git a/constants.scad b/constants.scad index 8120d41..2753cbc 100644 --- a/constants.scad +++ b/constants.scad @@ -4,7 +4,7 @@ bumper_diameter = 85; body_diameter = 70; body_hole_diameter = body_diameter - 10; -tube_outer_diameter = 75; +tube_outer_diameter = 76; m3nut_diameter = 6.5; m3nut_depth = 3.6; @@ -14,12 +14,12 @@ m3hole_depth = (body_diameter - body_hole_diameter) / 2 - m3nut_depth + 0.5; height_unit = 5; -thread_diameter = body_diameter - 10; +thread_diameter = body_diameter - 12; thread_hole_diameter = thread_diameter - 5; -thread_pitch = 3; +thread_pitch = 4; thread_lenght_top = 12.5; thread_lenght_lid = 7.5; -thread_tolerance = 0.1; +thread_tolerance = 0.25; lid_diameter = body_diameter - 5; lid_tolerance = 0.1; diff --git a/lid.scad b/lid.scad index 668a02b..a147d8b 100644 --- a/lid.scad +++ b/lid.scad @@ -4,19 +4,36 @@ use ; use ; +module thread() { + intersection() { + metric_thread(thread_diameter - thread_tolerance, + thread_pitch, + thread_lenght_lid); + union() { + translate([0, 0, 0.5 * height_unit]) + cylinder(r = thread_diameter / 2, + h = thread_lenght_lid - 0.5 * height_unit); + + cylinder(r2 = thread_diameter / 2, + r1 = thread_diameter / 2 - height_unit, + h = 0.5 * height_unit); + } + } +} + + + difference() { union() { translate([0, 0, 0.25 * height_unit]) - cylinder(r = lid_diameter / 2 - lid_tolerance, + cylinder(r = lid_diameter / 2, h=0.5 * height_unit, center=true); translate([0, 0, -thread_lenght_lid]) - metric_thread(thread_diameter - thread_tolerance, - thread_pitch, - thread_lenght_lid); + thread(); } union() { diff --git a/top.scad b/top.scad index cc40424..033a6ca 100644 --- a/top.scad +++ b/top.scad @@ -4,39 +4,43 @@ use ; use ; +module thread() { + metric_thread(thread_diameter + thread_tolerance, + thread_pitch, + thread_lenght_top, + internal=true); + + translate([0, 0, thread_lenght_top - height_unit]) + cylinder(r2 = body_hole_diameter / 2, + r1 = thread_hole_diameter / 2, + h = height_unit); + + cylinder(r1 = body_hole_diameter / 2, + r2 = thread_hole_diameter / 2, + h = height_unit); +} + + + + difference() { cap(); // Hole for the lid union() { - // 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_top, - internal=true); + translate([0, 0, - 1 * height_unit]) + thread(); + - // Put a little support unter the thread + // Make the rest of the cap hollow translate([0, 0, -height_unit]) - cylinder(r2 = thread_hole_diameter / 2, - r1 = body_hole_diameter / 2, + cylinder(r = body_hole_diameter / 2, h = 1 * height_unit + 0.01, center = true); } -} \ No newline at end of file +} +