First version of top lid
This commit is contained in:
parent
71f20287b0
commit
45ba6a95a5
4
Makefile
4
Makefile
|
@ -1,4 +1,4 @@
|
||||||
all: top.stl lid.stl bottom.stl
|
all: top.stl lid.stl
|
||||||
|
|
||||||
%.stl: %.scad constants.scad cap.scad
|
%.stl: %.scad constants.scad bayonetmount.scad
|
||||||
openscad -o $@ $<
|
openscad -o $@ $<
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
module lid(outer_diameter,
|
||||||
|
inner_diameter,
|
||||||
|
latch_width,
|
||||||
|
latch_height,
|
||||||
|
lid_height) {
|
||||||
|
|
||||||
|
|
||||||
|
translate([0,0, latch_height / 2])
|
||||||
|
intersection() {
|
||||||
|
cube([outer_diameter,
|
||||||
|
latch_width,
|
||||||
|
latch_height],
|
||||||
|
center = true);
|
||||||
|
|
||||||
|
cylinder(r = outer_diameter / 2,
|
||||||
|
h = latch_height,
|
||||||
|
center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
cylinder(r = inner_diameter / 2, h = lid_height);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module hole(outer_diameter,
|
||||||
|
inner_diameter,
|
||||||
|
latch_width,
|
||||||
|
latch_height,
|
||||||
|
lid_height) {
|
||||||
|
|
||||||
|
translate([0, 0, lid_height / 2])
|
||||||
|
intersection() {
|
||||||
|
cube([outer_diameter,
|
||||||
|
latch_width,
|
||||||
|
lid_height],
|
||||||
|
center = true);
|
||||||
|
|
||||||
|
cylinder(r = outer_diameter / 2,
|
||||||
|
h = lid_height,
|
||||||
|
center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, latch_height / 2])
|
||||||
|
difference() {
|
||||||
|
cylinder(r = outer_diameter / 2,
|
||||||
|
h = latch_height,
|
||||||
|
center = true);
|
||||||
|
|
||||||
|
for(pos = [outer_diameter / 4, -outer_diameter / 4])
|
||||||
|
translate([pos, pos, 0])
|
||||||
|
cube([outer_diameter / 2,
|
||||||
|
outer_diameter / 2,
|
||||||
|
latch_height],
|
||||||
|
center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0,0, lid_height / 2])
|
||||||
|
cylinder(r = inner_diameter / 2,
|
||||||
|
h = lid_height,
|
||||||
|
center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,18 @@
|
||||||
$fn = 90;
|
$fn = 180;
|
||||||
|
|
||||||
bumper_diameter = 80;
|
|
||||||
|
|
||||||
tube_inner_diameter = 71;
|
tube_inner_diameter = 71;
|
||||||
tube_outer_diameter = 76;
|
tube_outer_diameter = 76;
|
||||||
|
|
||||||
|
// Lid
|
||||||
|
lid_height = 10;
|
||||||
|
latch_width = 10;
|
||||||
|
latch_height = 4;
|
||||||
|
|
||||||
|
groove_depth = 7.5;
|
||||||
|
groove_length = 50;
|
||||||
|
|
||||||
|
// Top
|
||||||
|
bumper_height = 15;
|
||||||
|
bumper_edge_radius = 5;
|
||||||
|
bumper_diameter = 80;
|
||||||
|
bumper_tube_depth = 4;
|
81
lid.scad
81
lid.scad
|
@ -1,66 +1,17 @@
|
||||||
$fn = 90;
|
include <constants.scad>;
|
||||||
|
include <bayonetmount.scad>;
|
||||||
|
|
||||||
module lid(outer_diameter,
|
difference() {
|
||||||
inner_diameter,
|
lid(tube_outer_diameter,
|
||||||
latch_width,
|
tube_inner_diameter,
|
||||||
latch_height,
|
latch_width,
|
||||||
lid_height) {
|
latch_height,
|
||||||
|
lid_height);
|
||||||
|
|
||||||
translate([0,0, latch_height / 2])
|
hull() {
|
||||||
intersection() {
|
pos = groove_length / 2 - groove_depth;
|
||||||
cube([outer_diameter,
|
for(x = [-pos, pos])
|
||||||
latch_width,
|
translate([x, 0, lid_height])
|
||||||
latch_height],
|
sphere(r = groove_depth, center = true);
|
||||||
center = true);
|
}
|
||||||
|
}
|
||||||
cylinder(r = outer_diameter / 2,
|
|
||||||
h = latch_height,
|
|
||||||
center = true);
|
|
||||||
}
|
|
||||||
|
|
||||||
cylinder(r = inner_diameter / 2, h = lid_height);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
module hole(outer_diameter,
|
|
||||||
inner_diameter,
|
|
||||||
latch_width,
|
|
||||||
latch_height,
|
|
||||||
lid_height) {
|
|
||||||
|
|
||||||
translate([0, 0, lid_height / 2])
|
|
||||||
intersection() {
|
|
||||||
cube([outer_diameter,
|
|
||||||
latch_width,
|
|
||||||
lid_height],
|
|
||||||
center = true);
|
|
||||||
|
|
||||||
cylinder(r = outer_diameter / 2,
|
|
||||||
h = lid_height,
|
|
||||||
center = true);
|
|
||||||
}
|
|
||||||
|
|
||||||
translate([0, 0, latch_height / 2])
|
|
||||||
difference() {
|
|
||||||
cylinder(r = outer_diameter / 2,
|
|
||||||
h = latch_height,
|
|
||||||
center = true);
|
|
||||||
|
|
||||||
for(pos = [outer_diameter / 4, -outer_diameter / 4])
|
|
||||||
translate([pos, pos, 0])
|
|
||||||
cube([outer_diameter / 2,
|
|
||||||
outer_diameter / 2,
|
|
||||||
latch_height],
|
|
||||||
center=true);
|
|
||||||
}
|
|
||||||
|
|
||||||
translate([0,0, lid_height / 2])
|
|
||||||
cylinder(r = inner_diameter / 2,
|
|
||||||
h = lid_height,
|
|
||||||
center = true);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
hole(78,72,10,5,10);
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
include <constants.scad>;
|
||||||
|
include <bayonetmount.scad>;
|
||||||
|
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
translate([0, 0, bumper_height / 2])
|
||||||
|
minkowski() {
|
||||||
|
radius = bumper_diameter / 2 - bumper_edge_radius;
|
||||||
|
height = bumper_height - 2 * bumper_edge_radius;
|
||||||
|
cylinder(r = radius, h = height, center = true);
|
||||||
|
sphere(r = bumper_edge_radius, center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, 0, bumper_height - lid_height])
|
||||||
|
hole(tube_outer_diameter,
|
||||||
|
tube_inner_diameter,
|
||||||
|
latch_width,
|
||||||
|
latch_height,
|
||||||
|
lid_height);
|
||||||
|
|
||||||
|
translate([0, 0, lid_height / 2])
|
||||||
|
cylinder(r = tube_inner_diameter / 2,
|
||||||
|
h = lid_height,
|
||||||
|
center = true);
|
||||||
|
|
||||||
|
|
||||||
|
translate([0, 0, bumper_tube_depth / 2])
|
||||||
|
cylinder(r = tube_outer_diameter / 2,
|
||||||
|
h = bumper_tube_depth,
|
||||||
|
center = true);
|
||||||
|
}
|
Loading…
Reference in New Issue