-rw-r--r-- | titan-bracket.scad | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/titan-bracket.scad b/titan-bracket.scad new file mode 100644 index 0000000..2bd146b --- a/dev/null +++ b/titan-bracket.scad | |||
@@ -0,0 +1,88 @@ | |||
1 | // The thickness of the mount plate (in mm) | ||
2 | mountplate_thickness = 2 ; // [0:10] | ||
3 | // The thickness of the motor mount plate (in mm) | ||
4 | motormountplate_thickness = 2 ; // [2:7] | ||
5 | |||
6 | /* [Hidden] */ | ||
7 | layer_height=.25; extrusion_width=.5; | ||
8 | epsilon=.01; | ||
9 | |||
10 | module smoothen(r) { | ||
11 | offset(r=+r,$fn=r*PI*6) offset(delta=-r) children(); | ||
12 | } | ||
13 | |||
14 | module the_bracket( | ||
15 | mountplate_size=[62,40], | ||
16 | mountplate_r = 3, | ||
17 | mounthole_d = 3.5, | ||
18 | mountholes_span=[54,30], | ||
19 | motor_side=42.3, | ||
20 | motor_protrusion_hole_d = 23.5, | ||
21 | motormountholes_span = 31, | ||
22 | thickness = 2, | ||
23 | motormountplate_thickness = 2.5, | ||
24 | mountplate_thickness = 2, | ||
25 | motormounthole_d = 3, | ||
26 | motorconnector_width = 16.5, | ||
27 | motorconnector_hole_r = 2.5, | ||
28 | motorconnector_distance = 16.5, | ||
29 | mountscrew_l = 10, mountscrewhead_d = 6, mountscrewhead_h = 3, | ||
30 | mounthole_depth = 5, | ||
31 | motormounthole_depth = 4, | ||
32 | extra_spacer = 0 | ||
33 | ) { | ||
34 | titan_h = 25; titan_bowdenmount_h = 4; | ||
35 | echo("max longscrew",titan_h+motormountplate_thickness+extra_spacer+motormounthole_depth); | ||
36 | echo("max shortscrew",titan_bowdenmount_h+motormountplate_thickness+extra_spacer+motormounthole_depth); | ||
37 | difference() { | ||
38 | union() { | ||
39 | // mount plate | ||
40 | linear_extrude(height=mountplate_thickness) | ||
41 | smoothen(r=mountplate_r) | ||
42 | translate([-mountplate_size.x/2,0]) | ||
43 | square(size=mountplate_size); | ||
44 | // motor mount plate | ||
45 | hull() for(sx=[-1,1]) | ||
46 | translate([sx*(motor_side/2+thickness-motormountplate_thickness/2),motormountplate_thickness/2,0]) | ||
47 | cylinder(d=motormountplate_thickness,h=motor_side+mountplate_thickness,$fn=motormountplate_thickness*PI*2); | ||
48 | // sides | ||
49 | for(sx=[-1,1]) translate([sx*(motor_side+thickness)/2,0,0]) | ||
50 | hull() { | ||
51 | translate([-thickness/2,motormountplate_thickness/2,0]) | ||
52 | cube(size=[thickness,mountplate_size.y-motormountplate_thickness/2,mountplate_thickness]); | ||
53 | translate([-thickness/2,motormountplate_thickness/2,0]) | ||
54 | cube(size=[thickness,motormountplate_thickness/2,mountplate_thickness+motor_side]); | ||
55 | } | ||
56 | } | ||
57 | // mount holes | ||
58 | for(sx=[-1,1]) for(sy=[-1,0,1]) | ||
59 | translate([sx*mountholes_span.x/2,sy*mountholes_span.y/2,0]) | ||
60 | translate([0,mountplate_size.y/2,0]) { | ||
61 | translate([0,0,-1]) | ||
62 | cylinder(d=mounthole_d,h=mountplate_thickness+2,$fn=mounthole_d*PI*2); | ||
63 | translate([0,0,mountscrew_l-mounthole_depth]) | ||
64 | cylinder(d=mountscrewhead_d,h=mountplate_thickness+1,$fn=mountscrewhead_d*PI*2); | ||
65 | } | ||
66 | // motor protrusion cutout | ||
67 | translate([0,0,mountplate_thickness+motor_side/2]) | ||
68 | rotate([-90,0,0]) translate([0,0,-1]) | ||
69 | cylinder(d=motor_protrusion_hole_d,h=motormountplate_thickness+2,$fn=motor_protrusion_hole_d*PI*2); | ||
70 | // motor mount holes | ||
71 | for(sx=[-1,1]) for(sz=[-1,1]) | ||
72 | translate([sx*motormountholes_span/2,0,sz*motormountholes_span/2]) | ||
73 | translate([0,0,mountplate_thickness+motor_side/2]) | ||
74 | rotate([-90,0,0]) translate([0,0,-1]) | ||
75 | cylinder(d=motormounthole_d,h=motormountplate_thickness+2,$fn=motormounthole_d*PI*2); | ||
76 | // motor connector cutout | ||
77 | translate([mountplate_size.x/2, | ||
78 | motormountplate_thickness+extra_spacer+motorconnector_distance-motorconnector_hole_r, | ||
79 | mountplate_thickness+motor_side/2-motorconnector_width/2]) | ||
80 | rotate([0,-90,0]) | ||
81 | linear_extrude(height=mountplate_size.x) | ||
82 | smoothen(r=motorconnector_hole_r) | ||
83 | square([motor_side+mountplate_thickness+1,mountplate_size.y]); | ||
84 | }//difference | ||
85 | }//the_bracket module | ||
86 | |||
87 | // mountplate_thickness = 5.1 | ||
88 | the_bracket(mountplate_thickness=mountplate_thickness,motormountplate_thickness=motormountplate_thickness); | ||