--- /dev/null
+// challenge-bot
+// GNU AGPLv3 (or later at your option)
+// project available at these locations:
+// https://gitorious.org/ozzloy/challenge-bot
+// https://github.com/waynegramlich/challenge-bot
+
+mm_per_inch = 25.4;
+
+material_width = (1/8) * mm_per_inch;
+
+board_length = 1.75 * mm_per_inch;
+board_width = 1.5 * mm_per_inch;
+board_depth = (3/16) * mm_per_inch;
+tab_length = 3 * mm_per_inch;
+tab_width = (1/4) * mm_per_inch;
+
+union(){
+ rotate(a = 90, v = [1, 0, 0]) {
+ cube([board_length + material_width,
+ 1.75 * mm_per_inch + material_width,
+ material_width ]);}
+
+ translate(v = [0, -material_width, 0]){
+ rotate(a = -90, v = [0, 1, 0]) {
+ cube( [1.75 * mm_per_inch + material_width,
+ 1.5 * mm_per_inch + 2 * material_width,
+ material_width ]);}}
+
+ translate(v = [(1.75*mm_per_inch + material_width)/2 + tab_width,
+ -tab_length, 0]){
+ rotate(a = 90, v = [0 ,0 ,1 ]){
+ cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}}
+
+ translate(v = [-tab_length,
+ (1.5*mm_per_inch + material_width)/2 - tab_width,
+ 0]){
+ cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}
+
+ translate(v = [(1.75*mm_per_inch + material_width)/2 + tab_width,
+ (1.5*mm_per_inch),
+ 0]){
+ rotate(a = 90, v = [0, 0, 1]){
+ cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}}
+
+ translate(v = [(1.75*mm_per_inch),
+ (1.5*mm_per_inch+material_width)/2 - tab_width,
+ 0]){
+ cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}}
+
+_4_40 = 0.1285*mm_per_inch/2; // size of hole for 4x40
+_6_32 = 0.1495*mm_per_inch/2; // size of hole for 6x32
+
+module collar_hole(){
+ cylinder(h = board_depth, r = 2*_6_32, $fn=20);}
+
+module nubbin_hole(){
+ cylinder(h = board_depth, r = _6_32, $fn=20);}
+
+module mounting_screw_hole(){
+ cylinder(h = board_depth, r = _6_32, $fn=20);}
+
+module bracket_screw_hole(){
+ cylinder(h = board_depth, r = _6_32, $fn=20);}
+
+module wheel_motor_holes(scale){
+ translate([ 51-26.78,38-10.8, 0] * scale) {
+ collar_hole();}
+ translate([ 51-26.78,38-22.23, 0] * scale){
+ nubbin_hole();}
+ translate([51-18.05-17.45,38-30.81, 0] * scale){
+ mounting_screw_hole();}
+ translate([51-18.05,38-30.81, 0] * scale){
+ mounting_screw_hole();}
+ translate([7.5,8.5, 0] * scale){
+ bracket_screw_hole();}
+ translate([7.5,21+8.5, 0] * scale){
+ bracket_screw_hole();}}
+
+module wheel_mount(scale){
+ difference(){
+ cube(scale * [board_length + material_width,
+ board_width + material_width,
+ material_width]);
+ wheel_motor_holes(scale);}}
+
+wheel_mount(1);
+
+translate(v = [0, 0, board_length]) jig_lid();
+
+module jig_lid() {
+ union() {
+ wheel_mount(1);
+ translate(v = [0, -2.1 * material_width, material_width]){
+ cube([board_length + material_width,
+ 3.1 * material_width,
+ material_width]);}
+ translate(v = [0, -2.1 * material_width, 0]){
+ cube([board_length + material_width, material_width, material_width]);}
+ translate(v = [-2.1 * material_width, 0, material_width]){
+ cube([3.1 * material_width,
+ board_width + material_width,
+ material_width]);}
+ translate(v = [-2.1 * material_width, 0, 0]){
+ cube([material_width, board_width+material_width, material_width]);}}}
+++ /dev/null
-mm_per_inch = 25.4;
-
-material_width = (1/8) * mm_per_inch;
-
-board_length = 1.75 * mm_per_inch;
-board_width = 1.5 * mm_per_inch;
-board_depth = (3/16) * mm_per_inch;
-tab_length = 3 * mm_per_inch;
-tab_width = (1/4) * mm_per_inch;
-
-union(){
- rotate(a = 90, v = [1, 0, 0]) {
- cube([board_length + material_width,
- 1.75 * mm_per_inch + material_width,
- material_width ]);}
-
- translate(v = [0, -material_width, 0]){
- rotate(a = -90, v = [0, 1, 0]) {
- cube( [1.75 * mm_per_inch + material_width,
- 1.5 * mm_per_inch + 2 * material_width,
- material_width ]);}}
-
- translate(v = [(1.75*mm_per_inch + material_width)/2 + tab_width,
- -tab_length, 0]){
- rotate(a = 90, v = [0 ,0 ,1 ]){
- cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}}
-
- translate(v = [-tab_length,
- (1.5*mm_per_inch + material_width)/2 - tab_width,
- 0]){
- cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}
-
- translate(v = [(1.75*mm_per_inch + material_width)/2 + tab_width,
- (1.5*mm_per_inch),
- 0]){
- rotate(a = 90, v = [0, 0, 1]){
- cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}}
-
- translate(v = [(1.75*mm_per_inch),
- (1.5*mm_per_inch+material_width)/2 - tab_width,
- 0]){
- cube([3*mm_per_inch, 0.5*mm_per_inch , material_width]);}}
-
-_4_40 = 0.1285*mm_per_inch/2; // size of hole for 4x40
-_6_32 = 0.1495*mm_per_inch/2; // size of hole for 6x32
-
-module collar_hole(){
- cylinder(h = board_depth, r = 2*_6_32, $fn=20);}
-
-module nubbin_hole(){
- cylinder(h = board_depth, r = _6_32, $fn=20);}
-
-module mounting_screw_hole(){
- cylinder(h = board_depth, r = _6_32, $fn=20);}
-
-module bracket_screw_hole(){
- cylinder(h = board_depth, r = _6_32, $fn=20);}
-
-module wheel_motor_holes(scale){
- translate([ 51-26.78,38-10.8, 0] * scale) {
- collar_hole();}
- translate([ 51-26.78,38-22.23, 0] * scale){
- nubbin_hole();}
- translate([51-18.05-17.45,38-30.81, 0] * scale){
- mounting_screw_hole();}
- translate([51-18.05,38-30.81, 0] * scale){
- mounting_screw_hole();}
- translate([7.5,8.5, 0] * scale){
- bracket_screw_hole();}
- translate([7.5,21+8.5, 0] * scale){
- bracket_screw_hole();}}
-
-module wheel_mount(scale){
- difference(){
- cube(scale * [board_length + material_width,
- board_width + material_width,
- material_width]);
- wheel_motor_holes(scale);}}
-
-wheel_mount(1);
-
-translate(v = [0, 0, board_length]) jig_lid();
-
-module jig_lid() {
- union() {
- wheel_mount(1);
- translate(v = [0, -2.1 * material_width, material_width]){
- cube([board_length + material_width,
- 3.1 * material_width,
- material_width]);}
- translate(v = [0, -2.1 * material_width, 0]){
- cube([board_length + material_width, material_width, material_width]);}
- translate(v = [-2.1 * material_width, 0, material_width]){
- cube([3.1 * material_width,
- board_width + material_width,
- material_width]);}
- translate(v = [-2.1 * material_width, 0, 0]){
- cube([material_width, board_width+material_width, material_width]);}}}