chiark / gitweb /
brompton-computer-guard: start afresh
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 27 May 2014 19:47:04 +0000 (20:47 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 27 May 2014 19:47:04 +0000 (20:47 +0100)
brompton-computer-guard.scad

index 24d041a976580fd4fb29f71d71fc59ad34df392c..114c5e3f064113e453537869d1d7b11c85f0c3d1 100644 (file)
@@ -1,167 +1,2 @@
 // -*- C -*-
 
-cover_ysz = 45;
-cover_len = 70;
-
-tube_dia = 18;
-
-attach_cx = -7;
-attach_cdy = 0;
-attach_w = 25;
-
-attach_inrad = 25; ///
-attach_hole_dist = 5; ///
-attach_hole_dia = 4 + 0.5; ///
-attach_ang = 45;
-
-attach_dz = 2;
-
-comp_dx = 22;
-comp_xsz = 45;
-comp_zsz = 28;
-
-comp_dy = 5;
-
-comp_slope = 60;
-
-leftend_zsz = 10;
-leftend_dz = comp_zsz * 0.6;
-
-min_thick = 4;
-
-rightend_thick = 10;
-bolthead_space = 4;
-
-// calculated
-
-cover_lcircle_r = cover_ysz / (1 + 1/sqrt(2));
-
-base_len = cover_len - cover_lcircle_r;
-
-attach_end_r = attach_w/2;
-
-attach_straight_len =
-  attach_inrad + tube_dia + attach_hole_dist + attach_hole_dia/2
-  - attach_end_r + attach_hole_dist;
-
-attach_down = tube_dia/2 + attach_dz;
-
-attach_xmax = attach_cx +
-  cos(attach_ang) * attach_straight_len + attach_end_r;
-
-module RearSideTemplate(){
-  polygon([[0.1,0],
-          [-base_len,0],
-          [-base_len,-cover_ysz],
-          [0.1,      -cover_ysz]]);
-  translate([-base_len, -cover_ysz + cover_lcircle_r])
-    circle(r=cover_lcircle_r);
-}
-
-module AttachTemplate(){
-  hull(){
-    polygon([[0,   0],
-            [-0.1, 0],
-            [-0.1, -cover_ysz],
-            [0,    -cover_ysz]]);
-    translate([attach_cx, -attach_cdy]) rotate([0,0,-attach_ang]) {
-      polygon([[-attach_cx,          attach_w/2],
-              [0,                   -attach_w/2],
-              [attach_straight_len, -attach_w/2],
-              [attach_straight_len, attach_w/2]]);
-      translate([attach_straight_len, 0])
-       circle(r=attach_end_r);
-    }
-  }
-}
-
-module AttachElevation(anddown){
-  hull(){
-    translate([-cover_len - 0.5, leftend_dz - leftend_zsz/2])
-      square([1, leftend_zsz]);
-    translate([-comp_dx - comp_xsz/2, -0.1])
-      square([comp_xsz, comp_zsz + min_thick]);
-    translate([attach_xmax, 0])
-      square([1, rightend_thick + bolthead_space]);
-  }
-  if (anddown)
-    translate([-comp_dx, -attach_down-5])
-      square([comp_dx + attach_xmax+2, attach_down+6]);
-}
-
-module AttachElevationSelector(anddown) {
-  translate([0,100,0]) rotate([90,0,0]) linear_extrude(height=200)
-    AttachElevation(anddown);
-}
-
-module BodyPositive(){
-  intersection(){
-    linear_extrude(height=60) RearSideTemplate();
-    AttachElevationSelector(false);
-  }
-  intersection(){
-    translate([0,0,-attach_down]) linear_extrude(height=100) AttachTemplate();
-    AttachElevationSelector(true);
-  }
-}
-
-module Cutouts(){
-  Tube();
-  Bolts();
-  Computer();
-}
-
-module Body(){
-  difference(){
-    intersection(){
-      BodyPositive();
-      translate([-100,-200,-100]) cube([200,200,200]);
-    }
-    Cutouts();
-  }
-}
-
-module Computer(){
-  multmatrix([[1,0,0,0],
-             [0,1, tan(90-comp_slope), 0],
-             [0,0,1,0],
-             [0,0,0,1]])             
-  translate([-comp_dx - comp_xsz/2, -cover_ysz + comp_dy, -50])
-    cube([comp_xsz, 100, comp_zsz + 50]);
-}
-
-module Tube(){
-  translate([attach_cx, -attach_cdy, -tube_dia/2 - 0.1 - attach_dz]) {
-    rotate_extrude(convexity=10) {
-      translate([attach_inrad + tube_dia/2, 0])
-       circle(r=tube_dia/2);
-    }
-  }
-}
-
-module Bolt(){
-  translate([0,0,-50]) linear_extrude(height=80) {
-    circle(r=attach_hole_dia/2, $fn=20);
-  }
-  translate([0,0,rightend_thick]) linear_extrude(height=80) {
-    circle(r=attach_hole_dia/2 * 2, $fn=20);
-  }
-}
-
-module Bolts(){
-  translate([attach_cx, -attach_cdy]) rotate([0,0,-attach_ang]) {
-    translate([attach_inrad - attach_hole_dist - attach_hole_dia/2, 0])
-      Bolt();
-    translate([attach_inrad + tube_dia
-              +attach_hole_dist + attach_hole_dia/2, 0])
-      Bolt();
-  }
-}
-
-module Demo(){
-  Cutouts();
-  %BodyPositive();
-}
-
-//Demo();
-Body();