bayo_slice_size = 1;
+brace_hole_width = 1.0;
+brace_above_below = 1.2;
+
+jig_thick = 1.0;
+jig_hole_dia = 3.0;
+jig_rim = 5;
+jig_mark = 5;
+
// calculated
bayo_entry_x = bayo_entry;
rivet_entry_width = rivet_width + side_rivet_gap;
+jig_mark_rad = jig_mark + main_dia/2 + jig_thick;
+
$fs=0.5;
$fa=1;
[ 0, -(seal_recess[0] + seal_recess[1]) ],
[ seal_recess[0], -(seal_recess[0]) ],
[ seal_recess[0], seal_thick ],
- ]);
+ ],
+ convexity=10);
}
-module BayonetCutoutSlice(offset){
- rotate([0,0, atan2(offset, main_dia/2 + side_thick) ]){
+module RotateProjectSlice(offset, slice_size, nom_rad, real_rad){
+ // nom_rad > real_rad
+ rotate([0,0, atan2(offset, nom_rad) ]){
intersection(){
translate([-offset, -10, 0])
rotate([90,0,0])
- linear_extrude(height= main_dia*2)
- polygon(bayo_polygon);
+ linear_extrude(height= nom_rad*2)
+ children(0);
+ translate([0,0, -25])
+ cylinder(h=50, r= real_rad);
translate([0,0, -25])
- cylinder(h=50, r= main_dia/2 + rivet_tall);
- #translate([0,0, -25])
linear_extrude(height= 50)
polygon([ [ 0,0 ],
- [ -bayo_slice_size, -main_dia ],
- [ +bayo_slice_size, -main_dia ] ]);
+ [ -slice_size, -real_rad*2 ],
+ [ +slice_size, -real_rad*2 ] ]);
}
}
}
-module BayonetCutout(){
- offs = [ for (i=[ bayo_c[0] :
- bayo_slice_size :
- bayo_i[0] + bayo_slice_size ]) i ];
+module RotateProject(x_min, x_max, slice_size, nom_rad, real_rad){
+ offs = [ for (i=[ x_min :
+ slice_size :
+ x_max + slice_size ]) i ];
echo (offs);
- for (off =offs
-
- //[ -20 : bayo_slice_size : 20 ]
- ){
- translate([ off * 5, 0,0 ])
- echo(off);
- BayonetCutoutSlice(off);
- }
+ for (off=offs)
+ RotateProjectSlice(off, slice_size, nom_rad, real_rad)
+ children(0);
+}
+
+module BayonetCutout(){
+ RotateProject(bayo_c[0], bayo_i[0], bayo_slice_size,
+ main_dia/2 + side_thick,
+ main_dia/2 + rivet_tall)
+ polygon(bayo_polygon, convexity=10);
}
module ProfilesDemo(){
translate([-20,0]) MainProfile();
- polygon(bayo_polygon);
+ polygon(bayo_polygon, convexity=10);
+}
+
+module Cover(){ ////toplevel
+ render() difference(){
+ union(){
+ rotate_extrude(convexity=10)
+ translate([main_dia/2, 0])
+ MainProfile();
+ translate([0,0, seal_thick])
+ cylinder(h= top_thick, r = main_dia/2);
+ }
+ for (r=[0,180])
+ rotate([0,0, r])
+ translate([0,0, -side_height])
+ BayonetCutout();
+ for (r=[0 : 60 : 179]) {
+ rotate([0,0, r]) {
+ height = top_thick - brace_above_below*2;
+ translate([0,0, seal_thick + brace_above_below + height/2 ])
+ cube(center=true, [ main_dia, brace_hole_width, height ]);
+ }
+ }
+ }
+}
+
+module SavingHole(){
+ translate([0,0, -10])
+ cylinder(r= main_dia/2 - jig_rim, h=20);
+}
+
+module Jig(){ ////toplevel
+ difference(){
+ union(){
+ translate([0,0, -side_height]){
+ cylinder(r= main_dia/2 + jig_thick, h= side_height + jig_thick);
+ }
+ translate([-jig_mark_rad, 0, jig_thick - jig_mark])
+ cube([jig_mark_rad*2, jig_mark, jig_mark]);
+ }
+ translate([0,0, -side_height-1])
+ cylinder(r= main_dia/2, h= side_height + 1);
+ SavingHole();
+ translate([0,0, -rivet_posn])
+ rotate([90, 0,0])
+ translate([0,0, -100])
+ cylinder(r= jig_hole_dia/2, h = 200);
+ }
+}
+
+module CoverTest(){ ////toplevel
+ difference(){
+ Cover();
+ SavingHole();
+ }
}
//ProfilesDemo();
-BayonetCutout();
+//BayonetCutout();
+//MainProfile();
+//Cover();
+//Jig();
+//CoverTest();