Sfoglia il codice sorgente

wip

* updating dimensions to .25 inch
* adding resistive and capacitive touch housings
clementinecomputing 6 anni fa
parent
commit
6b51bd54be

+ 6 - 0
experiment/production/housing/v2/PopufareHousingBottom.scad

@@ -19,19 +19,25 @@ module PopufareHousingBottomPlate() {
   bx = POPUFARE_BRACKET_CX;
   br = POPUFARE_BRACKET_D/2.0;
   
+  fix_c = [0,30];
   
   difference() {
     square([w,h], center=true);
     
     // generic cable access
     //
+    translate(fix_c)
     circle(POPUFARE_GLAND_DIAMETER/2.0);
     
     // fixture bolts
     //
+    translate(fix_c)
     translate([-fixture_dx/2.0, -fixture_dy/2.0]) circle(fixture_bolt);
+    translate(fix_c)
     translate([ fixture_dx/2.0, -fixture_dy/2.0]) circle(fixture_bolt);
+    translate(fix_c)
     translate([ fixture_dx/2.0,  fixture_dy/2.0]) circle(fixture_bolt);
+    translate(fix_c)
     translate([-fixture_dx/2.0,  fixture_dy/2.0]) circle(fixture_bolt);
     
     // side bracket attachments

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

@@ -10,7 +10,14 @@ $fs = 1.0/64.0;
 
 // ...
 //
-_MATERIAL_THICKNESS = 1.0/8.0;
+
+// 1/8 inch sheet thickness
+//
+//_MATERIAL_THICKNESS = 3.175
+
+// 1/4 inch sheet thickness
+//
+_MATERIAL_THICKNESS = 6.35;
 
 _M2 = 2.0;
 _M2r = 2.0/2;
@@ -30,10 +37,19 @@ POPUFARE_HOUSING_WIDTH = 190;
 POPUFARE_HOUSING_DEPTH = 165;
 POPUFARE_HOUSING_HEIGHT = 135;
 
+POPUFARE_SCREEN_WIDTH_CAPACITIVE = 122;
+POPUFARE_SCREEN_HEIGHT_CAPACITIVE = 78;
+
+POPUFARE_SCREEN_WIDTH_RESISTIVE = 119;
+POPUFARE_SCREEN_HEIGHT_RESISTIVE = 71;
+
+
 POPUFARE_GLAND_DIAMETER = 37;
-POPUFARE_SCREEN_WIDTH = 118 + 1;
 POPUFARE_SCREEN_OUTER_WIDTH = 122;
-POPUFARE_SCREEN_HEIGHT = 70 + 1;
+
+//POPUFARE_SCREEN_WIDTH = 118 + 1;
+//POPUFARE_SCREEN_HEIGHT = 70 + 1;
+
 POPUFARE_SCREEN_OUTER_HEIGHT = 78;
 
 POPUFARE_FRONT_HEIGHT = 60;
@@ -52,13 +68,23 @@ POPUFARE_BRACKET_DS = 100;
 POPUFARE_BRACKET_DE = 40;
 POPUFARE_BRACKET_DE_SHORT = 20;
 
+// 117 - 111 = 6
+// 111 + 3 = 114
+//
+// 87 - 81 = 6
+// 81 + 3 = 84
+
 // inner plates
 //
 POPUFARE_INNER_PLATE_WIDTH = 90;
 POPUFARE_INNER_PLATE_HEIGHT = 70;
 
-POPUFARE_INNER_PLATE_HOLE_WIDTH = POPUFARE_SCREEN_OUTER_WIDTH + 0;
-POPUFARE_INNER_PLATE_HOLE_HEIGHT = POPUFARE_SCREEN_OUTER_HEIGHT + 20;
+//POPUFARE_INNER_PLATE_HOLE_WIDTH = POPUFARE_SCREEN_OUTER_WIDTH + 0;
+//POPUFARE_INNER_PLATE_HOLE_HEIGHT = POPUFARE_SCREEN_OUTER_HEIGHT + 20;
+
+POPUFARE_INNER_PLATE_HOLE_WIDTH = 114;
+POPUFARE_INNER_PLATE_HOLE_HEIGHT = 84;
+
 
 // hinge
 //

+ 60 - 11
experiment/production/housing/v2/PopufareHousingFrontAngle.scad

@@ -8,7 +8,8 @@
 
 include <PopufareHousingCommon.scad>
 
-module PopufareHousingFrontAnglePlate() {
+
+module PopufareHousingFrontAnglePlate_resistive() {
   dh = POPUFARE_HOUSING_HEIGHT - POPUFARE_FRONT_HEIGHT;
 
   w = POPUFARE_HOUSING_WIDTH;
@@ -22,23 +23,16 @@ module PopufareHousingFrontAnglePlate() {
   lip = _MATERIAL_THICKNESS;
 
 
-  screen_w = POPUFARE_SCREEN_WIDTH;
-  screen_h = POPUFARE_SCREEN_HEIGHT;
+  screen_w = POPUFARE_SCREEN_WIDTH_RESISTIVE;
+  screen_h = POPUFARE_SCREEN_HEIGHT_RESISTIVE;
   screen_cx = 0;
   screen_cy = 0;
-  //screen_attach_dw = screen_w + 8;
-  //screen_attach_dh = screen_h + 8;
   screen_attach_dw = POPUFARE_INNER_PLATE_HOLE_WIDTH;
   screen_attach_dh = POPUFARE_INNER_PLATE_HOLE_HEIGHT;
 
   difference() {
     union() {
-      square([w,h], center=true);
-
-      // lip to cover bottom plate
-      //
-      translate([0,-(h/2 + lip/2)]) square([w,lip + 0.25], center=true);
-      translate([0, (h/2 + lip/2)]) square([w,lip + 0.25], center=true);
+      square([w + 2*lip,h + 2*lip], center=true);
     };
 
     // attach to side plate brackets
@@ -60,4 +54,59 @@ module PopufareHousingFrontAnglePlate() {
 
 }
 
+
+
+module PopufareHousingFrontAnglePlate_capacitive() {
+  dh = POPUFARE_HOUSING_HEIGHT - POPUFARE_FRONT_HEIGHT;
+  
+  lip = _MATERIAL_THICKNESS;
+  
+  w = POPUFARE_HOUSING_WIDTH;
+  h = sqrt(2.0)*dh ;
+
+  bx = POPUFARE_BRACKET_CX;
+  br = POPUFARE_BRACKET_D/2.0;
+  de = POPUFARE_BRACKET_DE;
+  des = POPUFARE_BRACKET_DE_SHORT;
+
+  lip = _MATERIAL_THICKNESS;
+
+
+  screen_w = POPUFARE_SCREEN_WIDTH_CAPACITIVE;
+  screen_h = POPUFARE_SCREEN_HEIGHT_CAPACITIVE;
+  screen_cx = 0;
+  screen_cy = 0;
+  screen_attach_dw = POPUFARE_INNER_PLATE_HOLE_WIDTH;
+  screen_attach_dh = POPUFARE_INNER_PLATE_HOLE_HEIGHT;
+
+  difference() {
+    union() {
+      square([w + 2*lip,h + 2*lip], center=true);
+      };
+
+    // attach to side plate brackets
+    //
+    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);
+
+    // screen center
+    //
+    translate([screen_cx, screen_cy]) square([screen_w, screen_h], center=true);
+    translate([screen_cx, screen_cy]) translate([ screen_attach_dw/2, screen_attach_dh/2]) circle(_M3r);
+    translate([screen_cx, screen_cy]) translate([ screen_attach_dw/2,-screen_attach_dh/2]) circle(_M3r);
+    translate([screen_cx, screen_cy]) translate([-screen_attach_dw/2,-screen_attach_dh/2]) circle(_M3r);
+    translate([screen_cx, screen_cy]) translate([-screen_attach_dw/2, screen_attach_dh/2]) circle(_M3r);
+
+  }
+
+}
+
+
+module PopufareHousingFrontAnglePlate() {
+  //PopufareHousingFrontAnglePlate_resistive();
+  PopufareHousingFrontAnglePlate_capacitive();
+}
+
 //PopufareHousingFrontAnglePlate();

+ 10 - 2
experiment/production/housing/v2/PopufareHousingFrontBottom.scad

@@ -20,6 +20,8 @@ module PopufareHousingFrontBottomPlate() {
   lip = _MATERIAL_THICKNESS;
   lip_top = _MATERIAL_THICKNESS * sqrt(2.0);
   
+  h_tot = h - lip_top + lip;
+  
   difference() {
     union() {
       square([w,h], center=true);
@@ -27,11 +29,17 @@ module PopufareHousingFrontBottomPlate() {
       // lip to cover bottom plate
       //
       translate([0,-(h/2 + lip/2)]) square([w,lip], center=true);
+      
+      // left/right overhang
+      //
+      translate([-w/2-lip, -h/2 - lip]) square([lip,h_tot]);
+      translate([ w/2, -h/2 - lip]) square([lip,h_tot]);
     };
     
-    // shave off top front panel to accomodate angle plate
+    // shave off top front panel to accomodate angle plate.
+    // fudge to guard against stray geometry
     //
-    translate([0, (h/2 - lip_top)]) square([w, lip_top], center=true);
+    translate([0, (h/2 - 0.4999*lip_top)]) square([2*w, lip_top + 0.15], center=true);
     
     // attach to bottom plate bracket
     //

+ 1 - 1
experiment/production/housing/v2/PopufareHousingInnerBack.scad

@@ -49,7 +49,7 @@ module PopufareHousingInnerBackPlate() {
   access_right_c = [ (rpi_hole_c[0] + rpi_hole_dx/2) + access_right_w/2 + _r, 0];
   
   access_top_w = rpi_hole_dx - 25;
-  access_top_h = 12;
+  access_top_h = 6;
   access_top_c  = [rpi_hole_c[0], rpi_hole_c[1] + rpi_hole_dy/2 + access_top_h/2 + 4];
   
   access_bottom_w = rpi_hole_dx - 25;

+ 1 - 1
experiment/production/housing/v2/PopufareHousingInnerTop.scad

@@ -25,7 +25,7 @@ module PopufareHousingInnerTopPlate() {
   difference() {
     rounded_rect(x,y, _r);
     
-    rounded_rect(hole_width-_outr, hole_height-_outr, _r);
+    rounded_rect(hole_width-_outr/2, hole_height-_outr/2, _r);
     
     translate([-hole_width/2, -hole_height/2]) circle(_M3r);
     translate([ hole_width/2, -hole_height/2]) circle(_M3r);

+ 1 - 0
experiment/production/housing/v2/PopufareHousingSideLeft.scad

@@ -53,6 +53,7 @@ module PopufareHousingSideLeftPlate() {
     translate([ (w/2 - (w_right) + des), (h/2 - bx) ]) circle(br);
     
     // no back bracket
+    //
   }
 }
 

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

@@ -52,8 +52,8 @@ module PopufareHousingSideRightPlate() {
     translate([ -w/2 + w_right - des, (h/2 - bx) ]) circle(br);
     
     // no back bracket
-    //f
+    //
   }
 }
 
-//PopufareHousingSideRight();
+//PopufareHousingSideRightPlate();

+ 10 - 1
experiment/production/housing/v2/PopufareHousingTop.scad

@@ -27,12 +27,21 @@ module PopufareHousingTopPlate() {
   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)]) square([w, lip+0.25], center=true);
+    translate([0, -(h/2 - lip/2) - 0.001]) square([2*w, lip], center=true);
     
     // attach to back plate bracket
     //

+ 2 - 2
experiment/production/housing/v2/export/export-all

@@ -1,6 +1,6 @@
 #!/bin/bash
 
-VERSION=0.1.2
+VERSION=0.1.4
 
 function ngc_position {
   ifn="$1"
@@ -50,7 +50,7 @@ for fn in `ls ../Popufare*.scad  | grep -v PopufareHousingCommon.scad ` ; do
   svg2ngc "$svg" 2> /dev/null
   ngc_position "$ngc" 2> /dev/null
 
-  sed -i 's/F800/F600/g' "$ngc"
+  sed -i 's/F800/F150/g' "$ngc"
   sed -i 's/G0\(.*\)S\(.*\)/G0\1 F5000 S\2/g' "$ngc"
 
 done