chiark / gitweb /
poster-tube-lid: convert to oring: introduce vars, and calculate seal_thick
[reprap-play.git] / poster-tube-lid.scad
index ca6ee8ab054a1bed1e45c7f17895e9355fd6f88e..4ea02d9fdf16f3d04c91f056906803ac33041fcd 100644 (file)
@@ -1,6 +1,6 @@
 // -*- C -*-
 
-main_dia = 71.2 + 0.50;
+main_dia = 71.2 + 0.50 - 2.26;
 top_thick = 4;
 
 main_cnr = 4.0;
@@ -18,9 +18,14 @@ bayo_behind = 3.5;
 bayo_interf_width = 2.0;
 bayo_interf_slope = 0.75;
 
-seal_thick = 0.1;
 seal_recess = [ 2.0, 2.0 ]; // recess depth, recess height
 
+oring_thick = 5.0;
+oring_bore = 62.0;
+
+oring_upper_embed_angle = 45;
+oring_compress = 0.1; // proportion
+
 side_taper = 1.0;
 
 bayo_above_gap = 1.0;
@@ -32,7 +37,7 @@ bayo_slice_size = 1;
 brace_hole_width = 1.0;
 brace_above_below = 1.2;
 
-jig_thick = 1.0;
+jig_thick = 1.4;
 jig_hole_dia = 3.0;
 jig_rim = 5;
 jig_mark = 5;
@@ -44,6 +49,12 @@ bayo_entry_z = bayo_entry;
 bayo_inramp_x = bayo_entry;
 bayo_inramp_z = bayo_entry;
 
+oring_mid_dia = oring_bore + oring_thick;
+oring_outer_dia = oring_mid_dia + oring_thick;
+
+seal_thick = (1 - oring_compress) * oring_thick/2
+  * (1 + cos(oring_upper_embed_angle));
+
 side_height = rivet_posn + bayo_behind + rivet_thick/2;
 side_thick = rivet_tall + over_rivet_wall;
 
@@ -119,7 +130,8 @@ module MainProfile(){
           [ 0,                     -(seal_recess[0] + seal_recess[1]) ],
           [ seal_recess[0],        -(seal_recess[0]) ],
           [ seal_recess[0],        seal_thick        ],
-          ]);
+          ],
+         convexity=10);
 }
 
 module RotateProjectSlice(offset, slice_size, nom_rad, real_rad){
@@ -155,18 +167,18 @@ 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);
+    polygon(bayo_polygon, convexity=10);
 }
 
-module ProfilesDemo(){
+module ProfilesDemo(){ ////toplevel
   translate([-20,0]) MainProfile();
-  polygon(bayo_polygon);
+  polygon(bayo_polygon, convexity=10);
 }
 
-module Cover(){
-  difference(){
+module Cover(){ ////toplevel
+  render() difference(){
     union(){
-      rotate_extrude()
+      rotate_extrude(convexity=10)
        translate([main_dia/2, 0])
        MainProfile();
       translate([0,0, seal_thick])
@@ -186,7 +198,12 @@ module Cover(){
   }
 }
 
-module Jig(){
+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]){
@@ -197,8 +214,7 @@ module Jig(){
     }
     translate([0,0, -side_height-1])
       cylinder(r= main_dia/2, h= side_height + 1);
-    translate([0,0, -10])
-      cylinder(r= main_dia/2 - jig_rim, h=20);
+    SavingHole();
     translate([0,0, -rivet_posn])
       rotate([90, 0,0])
       translate([0,0, -100])
@@ -206,8 +222,24 @@ module Jig(){
   }
 }
 
+module CoverTest2(){ ////toplevel
+  difference(){
+    Cover();
+    SavingHole();
+  }
+}
+
+module CoverTest1(){ ////toplevel
+  difference(){
+    CoverTest2();
+    translate([0,0, -10])
+      cube([ main_dia*3, main_dia * .85, 20], center=true);
+  }
+}
+
 //ProfilesDemo();
 //BayonetCutout();
 //MainProfile();
 //Cover();
-Jig();
+//Jig();
+//CoverTest();