Quellcode durchsuchen

wip

* changing hinge type
* adding lip extension to front angle plate
* added speaker to right plate
* added triangle fill ins to side plates
* (hopefully) compatible support plate for resistive and capacitive inner plate
clementinecomputing vor 6 Jahren
Ursprung
Commit
b61b4afaf3

+ 66 - 13
experiment/production/housing/v2/PopufareHousingBack.scad

@@ -8,7 +8,7 @@
 
 include <PopufareHousingCommon.scad>
 
-module PopufareHousingBackPlate() {
+module PopufareHousingBackPlate_hinge1() {
   w = POPUFARE_HOUSING_WIDTH;
   h = POPUFARE_HOUSING_HEIGHT;
 
@@ -25,12 +25,18 @@ module PopufareHousingBackPlate() {
   gdx = 1*POPUFARE_GLAND_DIAMETER/2;
   gdy = 1*POPUFARE_GLAND_DIAMETER/2;
   
-  hinge_w = POPUFARE_HINGE_BACK_HOLE_WIDTH;
-  hinge_de = POPUFARE_HINGE_BACK_HOLE_DE;
-  hinge_r = POPUFARE_HINGE_D/2;
+  hinge_de = POPUFARE_HINGE1_DE;
+  hinge_dh = POPUFARE_HINGE1_DH;
+  hinge_dw = POPUFARE_HINGE1_DW;
+  hinge_r = POPUFARE_HINGE1_R;
+
+  lip = _MATERIAL_THICKNESS;
 
   difference() {
-    square([w,h], center=true);
+    union() {
+      square([w,h], center=true);
+      translate([0,-h/2-lip/2]) square([w,lip], center=true);
+    }
 
     // gland cable assembly access
     //
@@ -45,17 +51,61 @@ module PopufareHousingBackPlate() {
     translate([gland_cx - gdx, gland_cy - gdy]) circle(_M3r);
     translate([gland_cx + gdx, gland_cy - gdy]) circle(_M3r);
 
-    // side bracket attachments
+
+    // hinge attachment
     //
-    //translate([ (w/2 - bx), (h/2-POPUFARE_BRACKET_DE)]) circle(br);
-    //translate([ (w/2 - bx),-(h/2-POPUFARE_BRACKET_DE)]) circle(br);
-    //translate([-(w/2 - bx), (h/2-POPUFARE_BRACKET_DE)]) circle(br);
-    //translate([-(w/2 - bx),-(h/2-POPUFARE_BRACKET_DE)]) circle(br);
+    translate([ -hinge_dw/2, h/2 - hinge_de ]) circle(hinge_r);
+    translate([  hinge_dw/2, h/2 - hinge_de ]) circle(hinge_r);
+    
+    translate([ -hinge_dw/2, h/2 - (hinge_de + hinge_dh) ]) circle(hinge_r);
+    translate([  hinge_dw/2, h/2 - (hinge_de + hinge_dh) ]) circle(hinge_r);
+
+  }
+}
+
+
 
-    // top bracket attachments
+module PopufareHousingBackPlate_hinge0() {
+  w = POPUFARE_HOUSING_WIDTH;
+  h = POPUFARE_HOUSING_HEIGHT;
+
+  fixture_dx = POPUFARE_FIXTURE_DX;
+  fixture_dy = POPUFARE_FIXTURE_DY;
+  fixture_bolt = 5.0/2.0;
+
+  bx = POPUFARE_BRACKET_CX;
+  br = POPUFARE_BRACKET_D/2.0;
+
+  gland_cx = 0;
+  gland_cy = -(h/2 - 1.5*POPUFARE_GLAND_DIAMETER);
+  
+  gdx = 1*POPUFARE_GLAND_DIAMETER/2;
+  gdy = 1*POPUFARE_GLAND_DIAMETER/2;
+  
+  hinge_w = POPUFARE_HINGE_BACK_HOLE_WIDTH;
+  hinge_de = POPUFARE_HINGE_BACK_HOLE_DE;
+  hinge_r = POPUFARE_HINGE_D/2;
+
+  lip = _MATERIAL_THICKNESS;
+
+  difference() {
+    union() {
+      square([w,h], center=true);
+      translate([0,-h/2-lip/2]) square([w,lip], center=true);
+    }
+
+    // gland cable assembly access
     //
-    //translate([ (w/2 - POPUFARE_BRACKET_DE),  (h/2 - bx)]) circle(br);
-    //translate([-(w/2 - POPUFARE_BRACKET_DE),  (h/2 - bx)]) circle(br);
+    translate([gland_cx, gland_cy]) circle(POPUFARE_GLAND_DIAMETER/2.0);
+    
+    
+    // optional plate fixture points (in case we need to close off or alter
+    // the gland assembly diameter
+    //
+    translate([gland_cx + gdx, gland_cy + gdy]) circle(_M3r);
+    translate([gland_cx - gdx, gland_cy + gdy]) circle(_M3r);
+    translate([gland_cx - gdx, gland_cy - gdy]) circle(_M3r);
+    translate([gland_cx + gdx, gland_cy - gdy]) circle(_M3r);
 
     // hinge attachment
     //
@@ -73,5 +123,8 @@ module PopufareHousingBackPlate() {
 
   }
 }
+module PopufareHousingBackPlate() {
+  PopufareHousingBackPlate_hinge1();
+}
 
 //PopufareHousingBackPlate();

+ 5 - 0
experiment/production/housing/v2/PopufareHousingCommon.scad

@@ -58,6 +58,11 @@ POPUFARE_FIXTURE_DX = 65;
 POPUFARE_FIXTURE_DY = 65;
 POPUFARE_FIXTURE_SCREW_D = 7.5;
 
+POPUFARE_HINGE1_DE = 8.25 + 3.75/2;
+POPUFARE_HINGE1_DH = (22 - 3.75*2) + 3.75;
+POPUFARE_HINGE1_DW = 27.75 + (35.5 - 27.75)/2;
+POPUFARE_HINGE1_R = 2;
+
 // bracket
 //
 

+ 2 - 2
experiment/production/housing/v2/PopufareHousingFrontAngle.scad

@@ -81,8 +81,8 @@ module PopufareHousingFrontAnglePlate_capacitive() {
 
   difference() {
     union() {
-      square([w + 2*lip,h + 2*lip], center=true);
-      };
+      square([w + 2*lip,h + 4*lip], center=true);
+    }
 
     // attach to side plate brackets
     //

+ 49 - 12
experiment/production/housing/v2/PopufareHousingInnerTop.scad

@@ -10,28 +10,65 @@ include <PopufareHousingCommon.scad>
 
 module PopufareHousingInnerTopPlate() {
   _r = 3;
-  _outr = 16;
+  _outr = 18;
+
+  idx = POPUFARE_SCREEN_WIDTH_CAPACITIVE;
+  idy = POPUFARE_SCREEN_HEIGHT_CAPACITIVE;
 
   hole_width  = POPUFARE_INNER_PLATE_HOLE_WIDTH;
   hole_height = POPUFARE_INNER_PLATE_HOLE_HEIGHT;
 
   w2 = hole_width/2;
   h2 = hole_height/2;
-  x = hole_width + _outr;
-  y = hole_height + _outr;
+  //x = hole_width + _outr;
+  //y = hole_height + _outr;
+  
+  x = POPUFARE_INNER_PLATE_HOLE_WIDTH + _outr;
+  y = POPUFARE_INNER_PLATE_HOLE_HEIGHT + _outr;
 
   w2 = hole_width/2;
   h2 = hole_height/2;
-  difference() {
-    rounded_rect(x,y, _r);
-    
-    rounded_rect(hole_width-_outr/2, hole_height-_outr/2, _r);
+  
+  tab_w = 10;
+  tab_h = 30;
+  
+  band_w = 10;
+  band_p = 2.5;
+  
+  top_dh = (y - idy)/2;
+  
+  union() {
+    difference() {
+      rounded_rect(x,y, _r);
+      
+
+      // straps across middle to support
+      //
+      rounded_rect(idx - band_w*4 + 2*_r, idy, _r);
+      
+      translate([-idx/2 + band_w/2,  idy/2 - idy/(2*band_p)]) rounded_rect(band_w, idy/band_p, _r);
+      translate([-idx/2 + band_w/2, -idy/2 + idy/(2*band_p)]) rounded_rect(band_w, idy/band_p, _r);
+      
+      translate([ idx/2 - band_w/2,  idy/2 - idy/(2*band_p)]) rounded_rect(band_w, idy/band_p, _r);
+      translate([ idx/2 - band_w/2, -idy/2 + idy/(2*band_p)]) rounded_rect(band_w, idy/band_p, _r);
+      
+      // joining screw holes
+      //
+      translate([-hole_width/2, -hole_height/2]) circle(_M3r);
+      translate([ hole_width/2, -hole_height/2]) circle(_M3r);
+      translate([ hole_width/2,  hole_height/2]) circle(_M3r);
+      translate([-hole_width/2,  hole_height/2]) circle(_M3r);
+      
+      // hdmi and usb access
+      //
+      translate([0, y/2]) square([55,30], center=true);
+   
+    }
     
-    translate([-hole_width/2, -hole_height/2]) circle(_M3r);
-    translate([ hole_width/2, -hole_height/2]) circle(_M3r);
-    translate([ hole_width/2,  hole_height/2]) circle(_M3r);
-    translate([-hole_width/2,  hole_height/2]) circle(_M3r);
- 
+    // round the over hang tabs at top
+    //
+    translate([-55/2,idy/2+top_dh/2]) rounded_rect(10, top_dh, _r);
+    translate([ 55/2,idy/2+top_dh/2]) rounded_rect(10, top_dh, _r);
 
   }
 }

+ 22 - 4
experiment/production/housing/v2/PopufareHousingSideLeft.scad

@@ -20,16 +20,34 @@ module PopufareHousingSideLeftPlate() {
   dh = POPUFARE_HOUSING_HEIGHT - POPUFARE_FRONT_HEIGHT;
   alen = dh*sqrt(2.0);
   w_right = w - dh;
+  
+  lip = _MATERIAL_THICKNESS;
 
   difference() {
-    square([w,h], center=true);
+    union() {
+      square([w,h], center=true);
+      
+      // bottom skirt to cover under plate
+      //
+      translate([0,-(h/2 + lip/2)]) square([w,lip], center=true);
+      
+      translate([-(w/2-dh),h/2 + lip/2])
+      difference() {
+        square([lip, lip], center=true);
+        translate([-lip,-lip])  rotate(45, [0,0,1]) square([3*lip, 3*lip]);
+      }
+      
+      translate([-w/2,h/2 - dh])
+      difference() {
+        square([lip, lip], center=true);
+        translate([-lip,-lip])  rotate(45, [0,0,1]) square([3*lip, 3*lip]);
+      }
+    }
     
     // chop off angle
     //
     translate([-w/2,-(h/2-POPUFARE_FRONT_HEIGHT)]) rotate(45, [0,0,1]) square([4*w,4*w]);
     
-    
-    
     // bottom bracket
     //
     translate([-(w/2-de), -(h/2-bx) ]) circle(br);
@@ -57,4 +75,4 @@ module PopufareHousingSideLeftPlate() {
   }
 }
 
-//PopufareHousingSideLeft();
+//PopufareHousingSideLeftPlate();

+ 19 - 6
experiment/production/housing/v2/PopufareHousingSideRight.scad

@@ -29,7 +29,22 @@ module PopufareHousingSideRightPlate() {
   difference() {
     union() {
       square([w,h], center=true);
+      
+      // bootom skirt to cover under plate
+      //
       translate([0,-(h/2 + lip/2)]) square([w,lip], center=true);
+      
+      translate([w/2-dh,h/2 + lip/2])
+      difference() {
+        square([lip, lip], center=true);
+        translate([lip,-lip])  rotate(45, [0,0,1]) square([3*lip, 3*lip]);
+      }
+      
+      translate([w/2,h/2 - dh])
+      difference() {
+        square([lip, lip], center=true);
+        translate([lip,-lip])  rotate(45, [0,0,1]) square([3*lip, 3*lip]);
+      }
     }
     
     // chop off angle
@@ -61,7 +76,8 @@ module PopufareHousingSideRightPlate() {
     // no back bracket
     //
 
-    // ...
+    // speaker access and mounting screw holes
+    //
     spkr_cx = -30;
     spkr_cy = 0;
     spkr_r = 2*spkr_dw/6;
@@ -72,15 +88,12 @@ module PopufareHousingSideRightPlate() {
     translate([spkr_cx,spkr_cy]) rotate(45, [0,0,1]) translate([2*offset_x,0]) rounded_rect(_w,2*sqrt(spkr_r*spkr_r - (2*2*offset_x*offset_x)), _w/2);
     translate([spkr_cx,spkr_cy]) rotate(45, [0,0,1]) translate([3*offset_x,0]) rounded_rect(_w,2*sqrt(spkr_r*spkr_r - (3*3*offset_x*offset_x)), _w/2);
     
-    //translate([spkr_cx,spkr_cy]) rotate(45, [0,0,1]) translate([4*offset_x,0]) rounded_rect(_w,2*sqrt(spkr_r*spkr_r - (4*4*offset_x*offset_x)), _w/2);
-    //translate([spkr_cx,spkr_cy]) rotate(45, [0,0,1]) translate([5*offset_x,0]) rounded_rect(_w,2*sqrt(spkr_r*spkr_r - (5*5*offset_x*offset_x)), _w/2);
-    
     translate([spkr_cx,spkr_cy]) rotate(45, [0,0,1]) translate([-offset_x,0]) rounded_rect(_w,2*sqrt(spkr_r*spkr_r - offset_x*offset_x), _w/2);
     translate([spkr_cx,spkr_cy]) rotate(45, [0,0,1]) translate([-2*offset_x,0]) rounded_rect(_w,2*sqrt(spkr_r*spkr_r - (2*2*offset_x*offset_x)), _w/2);
     translate([spkr_cx,spkr_cy]) rotate(45, [0,0,1]) translate([-3*offset_x,0]) rounded_rect(_w,2*sqrt(spkr_r*spkr_r - (3*3*offset_x*offset_x)), _w/2);
     
-    translate([spkr_cx - spkr_dw/2,spkr_cy]) circle(POPUFARE_SPAKER_HOLE_R);
-    translate([spkr_cx + spkr_dw/2,spkr_cy]) circle(POPUFARE_SPAKER_HOLE_R);
+    translate([spkr_cx - spkr_dw/2,spkr_cy]) circle(POPUFARE_SPEAKER_HOLE_R);
+    translate([spkr_cx + spkr_dw/2,spkr_cy]) circle(POPUFARE_SPEAKER_HOLE_R);
     
   }
 }

+ 77 - 2
experiment/production/housing/v2/PopufareHousingTop.scad

@@ -8,7 +8,7 @@
 
 include <PopufareHousingCommon.scad>
 
-module PopufareHousingTopPlate() {
+module PopufareHousingTopPlate_hing0() {
   dh = POPUFARE_HOUSING_HEIGHT - POPUFARE_FRONT_HEIGHT;
   w = POPUFARE_HOUSING_WIDTH;
   h = POPUFARE_HOUSING_DEPTH-dh;
@@ -41,7 +41,7 @@ module PopufareHousingTopPlate() {
     
     // shave off top front panel to accomodate angle plate
     //
-    translate([0, -(h/2 - lip/2) - 0.001]) square([2*w, lip], center=true);
+    translate([0, -(h/2 - lip/2) - 0.01]) square([2*w, lip], center=true);
     
     // attach to back plate bracket
     //
@@ -64,4 +64,79 @@ module PopufareHousingTopPlate() {
 
 }
 
+
+// hinge1 measurements
+// dh_inner = 10.5
+// dh_outter = 22
+// dh_first = 8
+// dh_second = 3.75
+// bot_to_under = 8.25
+// dw = 27.75, 35.5
+
+module PopufareHousingTopPlate_hing1() {
+  dh = POPUFARE_HOUSING_HEIGHT - POPUFARE_FRONT_HEIGHT;
+  w = POPUFARE_HOUSING_WIDTH;
+  h = POPUFARE_HOUSING_DEPTH-dh;
+
+  bx = POPUFARE_BRACKET_CX;
+  br = POPUFARE_BRACKET_D/2.0;
+  de = POPUFARE_BRACKET_DE;
+  des = POPUFARE_BRACKET_DE_SHORT;
+
+  lip = _MATERIAL_THICKNESS;
+  
+  hinge_de = POPUFARE_HINGE1_DE;
+  hinge_dh = POPUFARE_HINGE1_DH;
+  hinge_dw = POPUFARE_HINGE1_DW;
+  hinge_r = POPUFARE_HINGE1_R;
+  
+
+  difference() {
+    union() {
+      square([w,h], center=true);
+      translate([0, (h/2 + lip/2) - 0.001]) square([w, lip], center=true);
+      
+      // add overhang to back and sides but not front
+      //
+      translate([-w/2, -h/4]) square([lip, h/2], center=true);
+      translate([ w/2, -h/4]) square([lip, h/2], center=true);
+
+      translate([-w/2, h/4 + lip/2]) square([lip, h/2 + lip], center=true);
+      translate([ w/2, h/4 + lip/2]) square([lip, h/2 + lip], center=true);
+     
+    };
+    
+    // shave off top front panel to accomodate angle plate
+    //
+    translate([0, -(h/2 - lip/2) - 0.01]) square([2*w, lip], center=true);
+    
+    // attach to back plate bracket
+    //
+    //translate([ -(w/2 - de), (h/2-bx) ]) circle(br);
+    //translate([  (w/2 - de), (h/2-bx) ]) circle(br);
+    
+    // side plate bracket attachment
+    //
+    translate([ -(w/2 - bx), (h/2-des)]) circle(br);
+    translate([ -(w/2 - bx),-(h/2-des)]) circle(br);
+    translate([  (w/2 - bx), (h/2-des)]) circle(br);
+    translate([  (w/2 - bx),-(h/2-des)]) circle(br);
+    
+    // hinge attachment
+    //
+    translate([ -hinge_dw/2, h/2 + lip - hinge_de ]) circle(hinge_r);
+    translate([  hinge_dw/2, h/2 + lip - hinge_de ]) circle(hinge_r);
+    
+    translate([  -hinge_dw/2, h/2 + lip - (hinge_de + hinge_dh) ]) circle(hinge_r);
+    translate([  hinge_dw/2, h/2 + lip - (hinge_de + hinge_dh) ]) circle(hinge_r);
+
+  }
+
+}
+
+
+module PopufareHousingTopPlate() {
+  PopufareHousingTopPlate_hing1();
+}
+
 //PopufareHousingTopPlate();

+ 2 - 2
experiment/production/housing/v2/housing_layout_3d.scad

@@ -43,11 +43,11 @@ translate( [ 0, dw/2 - 50, dz + spacing] ) PopufareHousingTopPlate();
 
 //---
 
-translate([  0, -2*dh, 30])
+translate([  0, -1.5*dh, 30])
   rotate(45, [1,0,0])
   PopufareHousingInnerBackPlate();
 
-translate([  0, -2*dh, 100])
+translate([  0, -1.5*dh, 100])
   rotate(45, [1,0,0])
   PopufareHousingInnerTopPlate();