75cbb6c7bfd73c0108552cb79dc6d4f23e37a0ab
[clinton/3d-models.git] / carriage adapter / itty-wilson.scad
1 /*
2 min y = 0
3 max y = 100
4 min x = 1205
5 max x = 1254
6
7 Makerfair X carriage plate adapter for the Wilson RepRap.
8 Copyright (c) 2015 Clinton Ebadi <clinton@unknownlamer.org>
9
10 This program is free software: you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation, either version 3 of the License, or
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>.
22
23 Measurements reverse engineered from
24 https://github.com/RickSisco/MakerFarm-Prusa-i3v-12-Inch
25
26 Intended for use with the itty bitty dual extruder series.
27
28 Source needs a good cleanup. Evil loops that don't take advantage of
29 the geometry of the object abound.
30
31 */
32
33 use <MCAD/nuts_and_bolts.scad>
34
35 carriage_height = 65;
36
37 plate_width = 75; // wilson carriage is only 50mm wide!
38 plate_depth = 8; // wilson default depth = 8, makerfarm = 6
39
40 plate_cut_height = 6.5;
41 plate_cut_width = 6;
42 plate_cut_distance = 13;
43 plate_cut_center = 25.1;
44 plate_cut_y_offset = 27;
45 plate_cut_bolt = 3;
46 plate_cut_x_bolt_offset = 10.5 + plate_cut_bolt / 2;
47
48 plate_height = carriage_height + plate_cut_height + plate_cut_y_offset; //100;
49
50 lower_cut_y_offset = 5.33; // 5.325 in CAD
51 lower_bolt_x_offset = 1.5 + plate_cut_bolt / 2;
52 lower_bolt_y_offset = 3.275 + plate_cut_bolt / 2;
53
54 carriage_bolt = 4;
55 carriage_hole_spacing = 24;
56 carriage_clearance = 20; // holes are 20mm from bottom of plate
57 carriage_y_offset = plate_cut_y_offset + plate_cut_height + carriage_clearance;
58 carriage_nut_depth = 2 * 3.2 + 0.1; // m4 nut depth + tolerance
59
60 corner_radius = 3; // round off the corners to make it look nicer
61
62 bump_strip = false; // generate holes to mount a strip to hit the end stop -- experimental / bad code
63
64 module plate_outline () {
65 $fn = 16;
66 difference () {
67 minkowski () {
68 translate ([corner_radius, corner_radius, 0])
69 square ([plate_width - corner_radius*2, plate_height - corner_radius*2]);
70 circle (r = corner_radius);
71 }
72
73 // upper plate mount
74 translate ([0, plate_cut_y_offset, 0]) {
75 for (x = [-0.01, plate_cut_width + plate_cut_distance, plate_cut_width*2 + plate_cut_distance + plate_cut_center, plate_cut_width*3 + plate_cut_distance*2 + plate_cut_center + 0.01])
76 translate ([x, 0, 0]) square ([plate_cut_width, plate_cut_height]);
77
78 // looks like the bolt is at the midpoint between the cut outs
79 for (x = [plate_cut_x_bolt_offset, plate_width - plate_cut_x_bolt_offset])
80 translate ([x, plate_cut_height / 2, 0]) circle (d = plate_cut_bolt, $fn = 16);
81 }
82
83 // lower plate mount
84 translate ([0, lower_cut_y_offset, 0]) {
85 for (x = [-0.01, plate_width - plate_cut_width + 0.01]) {
86 // lower cut out is closer to 6mm than 6.5mm in cad drawings
87 translate ([x, -0.01, 0]) square ([plate_cut_width, plate_cut_height - 0.5]);
88 }
89 // I think the intention is for the screw holes to be centered over the cut out
90 for (x = [lower_bolt_x_offset, plate_width - lower_bolt_x_offset])
91 translate ([x, plate_cut_height + lower_bolt_y_offset, 0]) circle (d = plate_cut_bolt, $fn = 16);
92 }
93
94 // mount to wilson x-carriage
95 translate ([(plate_width - carriage_hole_spacing) / 2, carriage_y_offset, 0])
96 for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) {
97 translate ([x, y, 0]) circle (d = carriage_bolt, $fn = 16);
98 }
99
100 if (bump_strip) {
101 translate ([6, carriage_y_offset, 0])
102 for (y = [0, carriage_hole_spacing]) {
103 translate ([0, y, 0]) circle (d = carriage_bolt, $fn = 16);
104 }
105 }
106 }
107 }
108
109 difference () {
110 linear_extrude (height = plate_depth, convexity = 50) plate_outline ();
111 // after extruding, cut out spaces for M4 hex nuts (6 - 6.5mm deep, for two nuts)
112 translate ([(plate_width - carriage_hole_spacing) / 2, carriage_y_offset, plate_depth - carriage_nut_depth]) {
113 for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) {
114 translate ([x, y, 0]) linear_extrude (height = carriage_nut_depth + 0.01) nutHole (size = carriage_bolt, proj = 1);
115 }
116 }
117
118 if (bump_strip) {
119 translate ([6, carriage_y_offset, plate_depth - carriage_nut_depth/2]) {
120 for (y = [0, carriage_hole_spacing]) {
121 translate ([0, y, 0]) linear_extrude (height = carriage_nut_depth/2 + 0.01) nutHole (size = carriage_bolt, proj = 1);
122 }
123 }
124 }
125 }