summaryrefslogtreecommitdiff
path: root/v1.0/x-end-bracket.scad
blob: ea32ead7047da11aae8176920236628e3ed0ffca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93

/*
 *  Remake of x-end-bracket_2off
 *  by Len Trigg <lenbok@gmail.com> 2010-05-08
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */

<mendel.inc>
<mendel.conf>

// Maybe move these two puppies into mendel.inc
module m3_hole_vert(l) {
	cylinder(l,m3_clearance_rad,m3_clearance_rad,center=true);
}
module m3_slot_vert(l) {
        box(m3_clearance_rad*2, 6, l);
}


// Outer dimensions
x_end_bracket_length=76;
x_end_bracket_width=62;
x_end_bracket_depth=10;

// Size of the square where the motor attaches
x_end_bracket_inner_length=44;
x_end_bracket_inner_width=43;

// Thickness of the raised wall
x_end_bracket_inner_wall=5; 
x_end_bracket_slot_width=12; 

// bolt insets
x_end_bracket_bolt_inset=4;

module x_end_bracket_2off() {
    yoff1=(x_end_bracket_inner_width-x_end_bracket_width)/2;
    yoff2=3*x_end_bracket_inner_width/2-x_end_bracket_width/2+x_end_bracket_inner_wall;
    xoff1=-x_end_bracket_inner_length-x_end_bracket_inner_wall;
    xoff2=x_end_bracket_inner_length+x_end_bracket_inner_wall;
    yoff3=4;
    yoff4=-x_end_bracket_width/2+3*x_end_bracket_bolt_inset/2;
    yoff5=x_end_bracket_width/2-9;
    xoff3=x_end_bracket_length/2-x_end_bracket_bolt_inset;
    xoff4=xoff3-21.5;
    difference() {
        box(x_end_bracket_length, x_end_bracket_width, x_end_bracket_depth);
        union() {
            // Cut out some squares to leave the raised crosses
            translate([0,yoff1-1,x_end_bracket_depth/2]) box(x_end_bracket_inner_length, x_end_bracket_inner_width+2, x_end_bracket_depth);
            translate([xoff1,yoff1-1,x_end_bracket_depth/2]) box(x_end_bracket_inner_length, x_end_bracket_inner_width+2, x_end_bracket_depth);
            translate([xoff2,yoff1-1,x_end_bracket_depth/2]) box(x_end_bracket_inner_length, x_end_bracket_inner_width+2, x_end_bracket_depth);
            translate([xoff1,yoff2,x_end_bracket_depth/2]) box(x_end_bracket_inner_length, x_end_bracket_inner_width, x_end_bracket_depth);
            translate([0,yoff2,x_end_bracket_depth/2]) box(x_end_bracket_inner_length, x_end_bracket_inner_width, x_end_bracket_depth);
            translate([xoff2,yoff2,x_end_bracket_depth/2]) box(x_end_bracket_inner_length, x_end_bracket_inner_width, x_end_bracket_depth);
            
            // Motor mounting bits
	    translate([0,-nema17_side/2+12,7]) nema_17();
	    translate([0,-x_end_bracket_width/2,0]) box(x_end_bracket_slot_width, x_end_bracket_inner_width, x_end_bracket_depth+2);
	    translate([0,-x_end_bracket_width/2,0]) rotate([0,0,45]) box(x_end_bracket_slot_width+2, x_end_bracket_slot_width+2, x_end_bracket_depth+2);

            // screw slots
	    translate([-xoff3,yoff3,0]) m3_slot_vert(x_end_bracket_depth+2);
	    translate([xoff3,yoff3,0]) m3_slot_vert(x_end_bracket_depth+2);
	    translate([-xoff3,yoff4,0]) m3_slot_vert(x_end_bracket_depth+2);
	    translate([xoff3,yoff4,0]) m3_slot_vert(x_end_bracket_depth+2);
            // screw holes
	    translate([-xoff3,yoff5,0]) m4_hole_vert(x_end_bracket_depth+2);
	    translate([xoff3,yoff5,0]) m4_hole_vert(x_end_bracket_depth+2);
	    translate([-xoff4,yoff5,0]) m4_hole_vert(x_end_bracket_depth+2);
	    translate([xoff4,yoff5,0]) m4_hole_vert(x_end_bracket_depth+2);
        }
    }
}

// In case you want to see the original for comparison purposes
//translate([-x_end_bracket_length/2, -x_end_bracket_width/2, -x_end_bracket_depth]) import_stl("x-end-bracket_2off.stl");

translate([0, 0, x_end_bracket_depth/2]) x_end_bracket_2off();