From c85d2718ba9eca283df9ab94a753dfadbcb67b7e Mon Sep 17 00:00:00 2001 From: Wojtek Siudzinski Date: Sun, 6 Jul 2014 16:32:10 +0200 Subject: [PATCH 1/9] Added original Jason's beam --- src/bitbeam-beam.scad | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/bitbeam-beam.scad diff --git a/src/bitbeam-beam.scad b/src/bitbeam-beam.scad new file mode 100644 index 0000000..6ca3a40 --- /dev/null +++ b/src/bitbeam-beam.scad @@ -0,0 +1,42 @@ +// Description: "LEGO Technic-compatible gridbeam" +// Project home: http://bitbeam.org + +// Each bitbeam is 8mm inches wide. +// Center of each hole is 8mm apart from each other +// Holes are 5.1 mm in diameter. + +// Mini +//beam_width = 4; +//hole_diameter = 2.2; + +// Standard +beam_width = 8; +hole_diameter = 5.1; + +hole_radius = hole_diameter / 2; + +module beam(number_of_holes) { + beam_length = number_of_holes * beam_width; + difference() { + // Draw the beam... + cube([beam_length,beam_width,beam_width]); + + // Cut the holes... + for (x=[beam_width/2 : beam_width : beam_length]) { + translate([x,beam_width/2,-2]) + cylinder(r=hole_radius, h=12, $fn=30); + } + for (x=[beam_width/2 : beam_width : beam_length]) { + rotate([90,0,0]) + translate([x,beam_width/2,-10]) + cylinder(r=hole_radius, h=12, $fn=30); + } + + // Optional through-hole + //rotate([0,90,0]) + //translate([-4,beam_width/2,-2]) + //cylinder(r=hole_radius, h=number_of_holes*beam_width+4, $fn=30); + } +} + +beam(3); From 3d726ad6095d9c30939eedaddfef6e31d9fb7d93 Mon Sep 17 00:00:00 2001 From: Wojtek Siudzinski Date: Sun, 6 Jul 2014 18:22:11 +0200 Subject: [PATCH 2/9] Added angle bracket --- src/bitbeam-angle.scad | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/bitbeam-angle.scad diff --git a/src/bitbeam-angle.scad b/src/bitbeam-angle.scad new file mode 100644 index 0000000..96ad1d1 --- /dev/null +++ b/src/bitbeam-angle.scad @@ -0,0 +1,6 @@ +use ; + +beam(4); +rotate([0, 0, 90]) + translate([0, -8, 0]) + beam(4); \ No newline at end of file From 366cda015f647ec55c451c89ba670f2782fdbd53 Mon Sep 17 00:00:00 2001 From: Wojtek Siudzinski Date: Sun, 6 Jul 2014 18:22:34 +0200 Subject: [PATCH 3/9] Added cross bracket --- src/bitbeam-cross.scad | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/bitbeam-cross.scad diff --git a/src/bitbeam-cross.scad b/src/bitbeam-cross.scad new file mode 100644 index 0000000..64525cc --- /dev/null +++ b/src/bitbeam-cross.scad @@ -0,0 +1,6 @@ +use ; + +beam(5); +rotate([0, 0, 90]) + translate([-(8 * 2), -(8 * 3), 0]) + beam(5); \ No newline at end of file From c3e59b58ae4c177d23fb3e645fe58242974f7570 Mon Sep 17 00:00:00 2001 From: Wojtek Siudzinski Date: Sun, 6 Jul 2014 18:27:28 +0200 Subject: [PATCH 4/9] Added T bracket --- src/bitbeam-t.scad | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/bitbeam-t.scad diff --git a/src/bitbeam-t.scad b/src/bitbeam-t.scad new file mode 100644 index 0000000..c417b7d --- /dev/null +++ b/src/bitbeam-t.scad @@ -0,0 +1,6 @@ +use ; + +beam(4); +rotate([0, 0, 90]) + translate([-(8 * 3), -8, 0]) + beam(7); \ No newline at end of file From 7eadd1978d23ad96676341ff0674b0861f7e5c68 Mon Sep 17 00:00:00 2001 From: Wojtek Siudzinski Date: Mon, 7 Jul 2014 18:07:39 +0200 Subject: [PATCH 5/9] Added double angle bracket --- src/bitbeam-double-angle.scad | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/bitbeam-double-angle.scad diff --git a/src/bitbeam-double-angle.scad b/src/bitbeam-double-angle.scad new file mode 100644 index 0000000..a88cc45 --- /dev/null +++ b/src/bitbeam-double-angle.scad @@ -0,0 +1,10 @@ +use ; + +beam(4); +rotate([0, 0, 90]) + translate([0, -8, 0]) + beam(4); + +rotate([0, 90, 0]) + translate([-(8 * 4), 0, 0]) + beam(4); \ No newline at end of file From eb85864ae7f71585557e2d9272583285b1a45d26 Mon Sep 17 00:00:00 2001 From: Wojtek Siudzinski Date: Thu, 10 Jul 2014 10:34:27 +0200 Subject: [PATCH 6/9] Added triple angle bracket --- src/bitbeam-triple-angle.scad | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/bitbeam-triple-angle.scad diff --git a/src/bitbeam-triple-angle.scad b/src/bitbeam-triple-angle.scad new file mode 100644 index 0000000..fbc5b9e --- /dev/null +++ b/src/bitbeam-triple-angle.scad @@ -0,0 +1,10 @@ +use ; + +beam(4); +rotate([0, 0, 90]) + translate([-(8 * 3), -8, 0]) + beam(7); + +rotate([0, 90, 0]) + translate([-(8 * 4), 0, 0]) + beam(4); \ No newline at end of file From 5ea8487067cef9755ce42db4878e71dc9ee25215 Mon Sep 17 00:00:00 2001 From: Michael 'nonchip' Zimmer Date: Wed, 24 Sep 2014 06:16:25 +0200 Subject: [PATCH 7/9] added 3d beam module and kit --- src/bitbeam-kit.scad | 2 ++ src/bitbeam-kit_3d.scad | 41 +++++++++++++++++++++++++++++++++++++++++ src/bitbeam.scad | 20 ++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 src/bitbeam-kit_3d.scad diff --git a/src/bitbeam-kit.scad b/src/bitbeam-kit.scad index 4f053ea..bcc2576 100644 --- a/src/bitbeam-kit.scad +++ b/src/bitbeam-kit.scad @@ -1,6 +1,8 @@ use ; // TODO: make the 1x1 bitbeams precisely 5/16 square. Not the current 5/16in by 8mm. +// FIXME: realize 5/16in is 7.9375mm + for (x=[0:8*1+8:200]) { translate([x,0,0]) beam(1); } diff --git a/src/bitbeam-kit_3d.scad b/src/bitbeam-kit_3d.scad new file mode 100644 index 0000000..3d01b4e --- /dev/null +++ b/src/bitbeam-kit_3d.scad @@ -0,0 +1,41 @@ +use ; + +// TODO: make the 1x1 bitbeams precisely 5/16 square. Not the current 5/16in by 8mm. +// FIXME: realize 5/16in is 7.9375mm + +for (x=[0:8*1+8:200]) { + translate([x,0,0]) beam_3d(1); +} + +for (x=[0:8*2+8:550]) { + translate([x,12*1,0]) beam_3d(2); +} + +for (x=[0:8*3+8:550]) { + translate([x,12*2,0]) beam_3d(3); +} + +for (x=[0:8*5+8:550]) { + translate([x,12*3,0]) beam_3d(5); +} + +for (x=[0:8*7+8:550]) { + translate([x,12*4,0]) beam_3d(7); +} + +for (x=[0:8*9+8:500]) { + translate([x,12*5,0]) beam_3d(9); +} + +for (x=[0:8*11+8:500]) { + translate([x,12*6,0]) beam_3d(11); +} + +for (x=[0:8*13+8:500]) { + translate([x,12*7,0]) beam_3d(13); +} + +for (x=[0:230:400]) { + translate([x,12*8,0]) beam_3d(27); +} + diff --git a/src/bitbeam.scad b/src/bitbeam.scad index 10413d4..1041ee9 100644 --- a/src/bitbeam.scad +++ b/src/bitbeam.scad @@ -25,4 +25,24 @@ module beam(number_of_holes) { } } +module beam_3d(number_of_holes) { + beam_length = number_of_holes * 8; + difference(){ + // Draw the beam + translate([-4, -beam_width/2, -beam_width/2]) + cube([beam_length, beam_width, beam_width]); + + // Cut the holes + for (x=[4 : 8 : beam_length]) { + translate([x-4, 0, -beam_width]) + cylinder(r=2.4, h=beam_width*2, $fn=30); + } + for (x=[4 : 8 : beam_length]) { + rotate([90,0,0]) + translate([x-4, 0, -beam_width]) + cylinder(r=2.4, h=beam_width*2, $fn=30); + } + } +} + beam(13); From 20f5b9bd53d231654dd29d39308fa8469079b9c9 Mon Sep 17 00:00:00 2001 From: Michael 'nonchip' Zimmer Date: Wed, 24 Sep 2014 07:28:14 +0200 Subject: [PATCH 8/9] making it more square --- src/bitbeam-kit_3d.scad | 68 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/src/bitbeam-kit_3d.scad b/src/bitbeam-kit_3d.scad index 3d01b4e..2cc21d7 100644 --- a/src/bitbeam-kit_3d.scad +++ b/src/bitbeam-kit_3d.scad @@ -3,6 +3,7 @@ use ; // TODO: make the 1x1 bitbeams precisely 5/16 square. Not the current 5/16in by 8mm. // FIXME: realize 5/16in is 7.9375mm +/* // too large for 3d printing for (x=[0:8*1+8:200]) { translate([x,0,0]) beam_3d(1); } @@ -38,4 +39,71 @@ for (x=[0:8*13+8:500]) { for (x=[0:230:400]) { translate([x,12*8,0]) beam_3d(27); } +*/ +for (x=[0:4*1+8:164]) { + translate([x,0,0]) beam_3d(1); +} + +for (x=[0:8*2+8:312]) { + translate([x,12*1,0]) beam_3d(2); +} + +for (x=[0:8*3+8:300]) { + translate([x,12*2,0]) beam_3d(3); +} + +for (x=[0:8*5+8:300]) { + translate([x,12*3,0]) beam_3d(5); + translate([x,12*4,0]) beam_3d(5); +} + +for (x=[0:8*7+8:300]) { + translate([x,12*5,0]) beam_3d(7); + translate([x,12*6,0]) beam_3d(7); +} + +for (x=[0:8*9+8:300]) { + translate([x,12*7,0]) beam_3d(9); + translate([x,12*8,0]) beam_3d(9); +} + +for (x=[0:8*11+8:200]) { + translate([x,12*9,0]) beam_3d(11); + translate([x,12*10,0]) beam_3d(11); + translate([x,12*11,0]) beam_3d(11); +} + +for (x=[0:8*13+8:300]) { + translate([x,12*12,0]) beam_3d(13); + translate([x,12*13,0]) beam_3d(13); + translate([x,12*14,0]) beam_3d(13); +} + +translate([0,12*15,0]) beam_3d(27); +translate([0,12*16,0]) beam_3d(27); +translate([0,12*17,0]) beam_3d(27); +translate([0,12*18,0]) beam_3d(27); + +translate([28*8,12*15,0]) beam_3d(9); +translate([28*8,12*16,0]) beam_3d(9); + +translate([38*8,12*15,0]) beam_3d(3); +translate([38*8,12*16,0]) beam_3d(3); + +translate([28*8,12*17,0]) beam_3d(7); +translate([28*8,12*18,0]) beam_3d(7); + +translate([36*8,12*17,0]) beam_3d(5); +translate([36*8,12*18,0]) beam_3d(5); + +for (x=[176:8*4+8:308]) { + translate([x,0,0]) beam_3d(4); +} + +translate([320,12*2,0]) beam_3d(1); + +translate([320,12*5,0]) rotate([0,0,90]) beam_3d(9); + +translate([36*8,12*9,0]) rotate([0,0,90]) beam_3d(4); +translate([38*8,12*9,0]) rotate([0,0,90]) beam_3d(4); From 413fa9ebe67ba366986c44302c0ba242736ece1a Mon Sep 17 00:00:00 2001 From: Kyra 'nonchip' Zimmer Date: Wed, 15 Jul 2015 11:52:27 +0200 Subject: [PATCH 9/9] merge --- .gitmodules | 3 ++ MCAD | 1 + instructions/laser-cutter.md | 33 ++++++++++++++++++ src/bitbeam-arduino-plate.scad | 19 ++++++----- src/bitbeam-nema-17-mount.scad | 23 +++++++++++++ src/bitbeam-nema-23-mount.scad | 23 +++++++++++++ src/bitbeam-raspberry-pi-plate.scad | 35 +++++++++++++++++++ src/bitbeam-tripod-camera-plate.scad | 28 ++++++++++++++++ src/bitbeam.scad | 50 +++++++++++++++++++++++----- src/bitpad.scad | 29 ++++++++++++++++ src/raspberry-pi.scad | 22 ++++++++++++ 11 files changed, 249 insertions(+), 17 deletions(-) create mode 100644 .gitmodules create mode 160000 MCAD create mode 100644 instructions/laser-cutter.md create mode 100644 src/bitbeam-nema-17-mount.scad create mode 100644 src/bitbeam-nema-23-mount.scad create mode 100644 src/bitbeam-raspberry-pi-plate.scad create mode 100644 src/bitbeam-tripod-camera-plate.scad create mode 100644 src/bitpad.scad create mode 100644 src/raspberry-pi.scad diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..1bd4d77 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "MCAD"] + path = MCAD + url = https://github.com/SolidCode/MCAD.git diff --git a/MCAD b/MCAD new file mode 160000 index 0000000..9a958fd --- /dev/null +++ b/MCAD @@ -0,0 +1 @@ +Subproject commit 9a958fd11b0a6b5f8becd37c4f8a42f585abfcd8 diff --git a/instructions/laser-cutter.md b/instructions/laser-cutter.md new file mode 100644 index 0000000..b924353 --- /dev/null +++ b/instructions/laser-cutter.md @@ -0,0 +1,33 @@ +# Making Bitbeams With Basswood On a Laser Cutter + +You can buy 5/16" x 5/16" basswood dowel at some art stores - with a little +laser cutting, this is an easy way to make bitbeam. + +## 1. Making a Stencil + +The holes in bitbeams need to be precisely lined up - the easiest way to +do this is to make a 'stencil' form, with grooves to hold the bitbeams in +place. We can laser cut this out of a flat piece of wood or cardboard. + +[TODO] Make stencil file + +[TODO] Image + +## 2. Cutting Dowels to length + +Now you have a stencil, you need to cut the dowels to length, to fit the +holes. You can either use a saw for this, or the laser cutter. + + +## 3. Cutting the Holes + +Fill the grooves in the stencil with the pieces if dowel. Now make sure that +the stencil is lined up precisely with the corner of the laser cutter. The +next file is designed to drill holes in precisely the center of the dowels. + +[TODO] Make hole file + +[TODO] Image + +Once the laser has finished, you need to flip each piece over 90 degrees and +print the holes again. diff --git a/src/bitbeam-arduino-plate.scad b/src/bitbeam-arduino-plate.scad index 6d0f808..4e0d4e9 100644 --- a/src/bitbeam-arduino-plate.scad +++ b/src/bitbeam-arduino-plate.scad @@ -2,26 +2,27 @@ use beam_width = 7.9375; // 5/16 inches -projection(cut=true) { - difference(){ +difference(){ // Base plate - cube([8*9, beam_width * 9, 1]); + square([8*9, beam_width * 9]); // Bottom row for (x=[8 : 8 : beam_width * 10]) { - translate([x-4, beam_width/2, -10]) - cylinder(r=2.4, h=20, $fn=25); + translate([x-4, beam_width/2, 0]) + circle(r=2.4, $fn=25); } // Top row for (x=[8 : 8 : beam_width * 10]) { - translate([x-4, (beam_width/2) + beam_width * 8, -10]) - cylinder(r=2.4, h=20, $fn=25); + translate([x-4, (beam_width/2) + beam_width * 8, 0]) + circle(r=2.4, $fn=25); } - translate([17,60,0]) MountingHoles(); - } + translate([17,60,0]) + projection(cut=true) { + MountingHoles(); + } } // Uncomment next line if you want to see the entire board diff --git a/src/bitbeam-nema-17-mount.scad b/src/bitbeam-nema-17-mount.scad new file mode 100644 index 0000000..a140304 --- /dev/null +++ b/src/bitbeam-nema-17-mount.scad @@ -0,0 +1,23 @@ +include <../MCAD/motors.scad> + +beam_width = 7.9375; // 5/16 inches + +difference(){ + + // Base plate + square([8*5, beam_width * 7]); + + // Bottom row + for (x=[8 : 8 : beam_width * 6]) { + translate([x-4, beam_width/2, 0]) + circle(r=2.4, $fn=25); + } + + // Top row + for (x=[8 : 8 : beam_width * 6]) { + translate([x-4, (beam_width/2) + beam_width * 6, 0]) + circle(r=2.4, $fn=25); + } + + translate([20, 28, 0]) stepper_motor_mount(17); +} diff --git a/src/bitbeam-nema-23-mount.scad b/src/bitbeam-nema-23-mount.scad new file mode 100644 index 0000000..2023ff1 --- /dev/null +++ b/src/bitbeam-nema-23-mount.scad @@ -0,0 +1,23 @@ +include <../MCAD/motors.scad> + +beam_width = 7.9375; // 5/16 inches + +difference(){ + + // Base plate + square([8*7, beam_width * 9]); + + // Bottom row + for (x=[8 : 8 : beam_width * 8]) { + translate([x-4, beam_width/2, 0]) + circle(r=2.4, $fn=25); + } + + // Top row + for (x=[8 : 8 : beam_width * 8]) { + translate([x-4, (beam_width/2) + beam_width * 8, 0]) + circle(r=2.4, $fn=25); + } + + translate([28, 36, 0]) stepper_motor_mount(23); +} diff --git a/src/bitbeam-raspberry-pi-plate.scad b/src/bitbeam-raspberry-pi-plate.scad new file mode 100644 index 0000000..e235ff6 --- /dev/null +++ b/src/bitbeam-raspberry-pi-plate.scad @@ -0,0 +1,35 @@ +/* +Copyright (c) 2013 Timothy Schmidt +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +use + +beam_width = 7.9375; // 5/16 inches + +difference(){ + + // Base plate + square([8*11, beam_width * 9]); + + // Bottom row + for (x=[8 : 8 : beam_width * 12]) { + translate([x-4, beam_width/2, 0]) + circle(r=2.4, $fn=25); + } + + // Top row + for (x=[8 : 8 : beam_width * 12]) { + translate([x-4, (beam_width/2) + beam_width * 8, 0]) + circle(r=2.4, $fn=25); + } + + translate([25.5,26,0]) MountingHoles(); +} \ No newline at end of file diff --git a/src/bitbeam-tripod-camera-plate.scad b/src/bitbeam-tripod-camera-plate.scad new file mode 100644 index 0000000..41d371d --- /dev/null +++ b/src/bitbeam-tripod-camera-plate.scad @@ -0,0 +1,28 @@ +beam_width = 7.9375; // 5/16 inches +// professional tripod mounting screws are 3/8-16 +// mounting_hole = 3/8 * 25.4; + +// consumer tripod mounting screws are 1/4-20 +mounting_hole = 1/4 * 25.4; + +clearance = 0.15; + +difference(){ + + // Base plate + square([8*3, beam_width * 4]); + + // Bottom row + for (x=[8 : 8 : beam_width * 4]) { + translate([x-4, beam_width/2, 0]) + circle(r=2.4, $fn=25); + } + + // Top row + for (x=[8 : 8 : beam_width * 4]) { + translate([x-4, (beam_width/2) + beam_width * 3, 0]) + circle(r=2.4, $fn=25); + } + + translate([12, beam_width * 4 / 2, 0]) circle(r=(mounting_hole / 2) + clearance, $fn=25); +} diff --git a/src/bitbeam.scad b/src/bitbeam.scad index 1041ee9..0a87f71 100644 --- a/src/bitbeam.scad +++ b/src/bitbeam.scad @@ -10,19 +10,25 @@ beam_width = 7.9375; // 5/16 inches module beam(number_of_holes) { beam_length = number_of_holes * 8; - projection(cut=true, center=true) { difference(){ // Draw the beam - translate([-4, -beam_width/2, 0]) - cube([beam_length, beam_width, 1]); + translate([-4, -beam_width/2,0]) + cube(size=[beam_length, beam_width, beam_width]); // Cut the holes - for (x=[4 : 8 : beam_length]) { - translate([x-4, 0, -1]) - cylinder(r=2.4, h=3, $fn=30); - } + for (x=[4 : 8 : beam_length]) { + translate([x-4, 0, 0]){ + translate([0, 0, -1]){ + cylinder(r=2.4, h=beam_width+2, $fn=30); + } + rotate(a=[90, 0, 0]) { + translate([0, beam_width/2, -beam_width/2-1]){ + cylinder(r=2.4, h=beam_width+2, $fn=30); + } + } + } + } } - } } module beam_3d(number_of_holes) { @@ -45,4 +51,32 @@ module beam_3d(number_of_holes) { } } + +module screw(start=[0,0,0], length=2, direction=[0,0,0]){ + color("lavender"){ + translate(start * beam_width){ + rotate(direction){ + translate([0, 0, -beam_width/2]){ // rotate around middle of beam + + cylinder(r=2.2, h=length*beam_width + beam_width/2, $fn=30); + + translate([0,0,-3]) //Screw head + difference(){ + cylinder(r1=3, r2=4, h=3, $fn=30); + translate([-4.5, -0.5, -0.1]){ + cube([9,1,2]); + } + } + translate([0,0, length*beam_width + 0.2]){ + cylinder(r=5, h=2, $fn=6); + } + + } + } + } + } +} + + beam(13); +screw(direction=[-90,0,0]); diff --git a/src/bitpad.scad b/src/bitpad.scad new file mode 100644 index 0000000..8fa1582 --- /dev/null +++ b/src/bitpad.scad @@ -0,0 +1,29 @@ +use <./bitbeam.scad>; + +scale(0.1){ +rotate([90,-20,0]){ + +beam_to([9,1,0], 27, [0,90,0]); + +beam_to([1,0,-25], 13); +beam_to([10,-6,-26], 27, [0,0,90]); +screw([10,0,-25], 2, [0,0,0]); +screw([9,1,-26], 2, [0,90,0]); +screw([9,1,-25], 2, [90,0,0]); + +beam_to([1,0,-1], 13); +beam_to([10,-6,0], 27, [0,0,90]); +screw([10,0,-1], 2, [0,0,0]); +screw([9,1,0], 2, [0,90,0]); +screw([9,1,-1], 2, [90,0,0]); + + +// iPad +color("gray"){ +translate([90,10,-230]){ +cube([10, 190, 250]); +} +} + +} +} \ No newline at end of file diff --git a/src/raspberry-pi.scad b/src/raspberry-pi.scad new file mode 100644 index 0000000..df9cc24 --- /dev/null +++ b/src/raspberry-pi.scad @@ -0,0 +1,22 @@ +/* +Copyright (c) 2013 Timothy Schmidt +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +// All measurements derived from the diagram available here: +// http://www.raspberrypi.org/wp-content/uploads/2012/12/Raspberry-Pi-Mounting-Hole-Template.png + +module MountingHoles() +{ + circle(r=1.5, $fn=25); + + translate([54.5,25.5,0]) + circle(r=1.5, $fn=25); +} \ No newline at end of file