|
@@ -33,7 +33,7 @@ x_rail_hole_off = 5;
|
33
|
33
|
x_rail_block_len = (y_carriage_length - x_rail_cutout_y) / 2;
|
34
|
34
|
|
35
|
35
|
x_carriage_width = 80;
|
36
|
|
-x_carriage_len_add = 10;
|
|
36
|
+x_carriage_len_add = 12;
|
37
|
37
|
x_carriage_wall = 10;
|
38
|
38
|
x_carriage_bearing_off = 3;
|
39
|
39
|
|
|
@@ -97,20 +97,24 @@ sensor_dia_add = 6;
|
97
|
97
|
|
98
|
98
|
sensor_mount_width = (2 * universal_mount_hole_off) + sensor_mount_width_add;
|
99
|
99
|
|
|
100
|
+cable_tie_width = 3.5;
|
|
101
|
+cable_tie_height = 2.0;
|
|
102
|
+cable_tie_dia_add = 1.0;
|
|
103
|
+
|
100
|
104
|
draw_x_carriage = false;
|
101
|
105
|
draw_e3d_fan_duct = true;
|
|
106
|
+draw_radial_fan = true;
|
|
107
|
+draw_bed_sensor = true;
|
|
108
|
+draw_e3d_hotends = true;
|
102
|
109
|
|
103
|
110
|
draw_y_carriage = false;
|
104
|
111
|
draw_y_carriage_idlers = true;
|
105
|
112
|
draw_rail_len = 200;
|
106
|
113
|
|
107
|
|
-
|
108
|
|
-// TODO add cable tie canal for lm8uu mounting
|
109
|
114
|
// TODO get ready to actually print these
|
110
|
115
|
|
111
|
|
-
|
112
|
116
|
module nut_cut() {
|
113
|
|
- translate([-nut_cut_width / 2, 1, nut_cut_off - nut_cut_height]) {
|
|
117
|
+ translate([-nut_cut_width / 2, 2, nut_cut_off - nut_cut_height]) {
|
114
|
118
|
cube([nut_cut_width, nut_cut_depth, nut_cut_height]);
|
115
|
119
|
translate([nut_cut_width / 2, -5, nut_cut_height - nut_cut_off])
|
116
|
120
|
rotate([-90, 0, 0])
|
|
@@ -127,6 +131,20 @@ module lm8uu() {
|
127
|
131
|
}
|
128
|
132
|
}
|
129
|
133
|
|
|
134
|
+module lm8uu_cable_tie() {
|
|
135
|
+ difference() {
|
|
136
|
+ union() {
|
|
137
|
+ cylinder(d = lm8uu_outer + (2 * (cable_tie_height + cable_tie_dia_add)), h = cable_tie_width);
|
|
138
|
+
|
|
139
|
+ translate([-8.5, 6, 0])
|
|
140
|
+ cube([17, 10, cable_tie_width]);
|
|
141
|
+ }
|
|
142
|
+
|
|
143
|
+ translate([0, 0, -1])
|
|
144
|
+ cylinder(d = lm8uu_outer + (2 * cable_tie_dia_add), h = cable_tie_width + 2);
|
|
145
|
+ }
|
|
146
|
+}
|
|
147
|
+
|
130
|
148
|
module generate_spacer(pos) {
|
131
|
149
|
color("green")
|
132
|
150
|
translate([pos[0], pos[1], -0.5])
|
|
@@ -195,6 +213,21 @@ module y_carriage(idler_a = [0, 0, 0], idler_b = [0, 0, 0]) {
|
195
|
213
|
translate([0, 0, y_carriage_length - lm8uu_height - y_carriage_rail_support - lm8uu_len_add / 2])
|
196
|
214
|
cylinder(d = lm8uu_outer + lm8uu_dia_add, h = lm8uu_height + lm8uu_len_add);
|
197
|
215
|
}
|
|
216
|
+
|
|
217
|
+ translate([(lm8uu_outer + lm8uu_dia_add) / 2 + y_carriage_rail_support, 0, 0])
|
|
218
|
+ rotate([90, 0, 0]) {
|
|
219
|
+ translate([0, 0, -11])
|
|
220
|
+ lm8uu_cable_tie();
|
|
221
|
+
|
|
222
|
+ translate([0, 0, -20])
|
|
223
|
+ lm8uu_cable_tie();
|
|
224
|
+
|
|
225
|
+ translate([0, 0, -83])
|
|
226
|
+ lm8uu_cable_tie();
|
|
227
|
+
|
|
228
|
+ translate([0, 0, -92])
|
|
229
|
+ lm8uu_cable_tie();
|
|
230
|
+ }
|
198
|
231
|
}
|
199
|
232
|
|
200
|
233
|
color("magenta")
|
|
@@ -356,6 +389,34 @@ module x_carriage() {
|
356
|
389
|
}
|
357
|
390
|
}
|
358
|
391
|
|
|
392
|
+ // bearing cable tie mount front
|
|
393
|
+ translate([8, x_carriage_len_add, 0])
|
|
394
|
+ rotate([90, 0, 90])
|
|
395
|
+ lm8uu_cable_tie();
|
|
396
|
+ translate([18, x_carriage_len_add, 0])
|
|
397
|
+ rotate([90, 0, 90])
|
|
398
|
+ lm8uu_cable_tie();
|
|
399
|
+ translate([58, x_carriage_len_add, 0])
|
|
400
|
+ rotate([90, 0, 90])
|
|
401
|
+ lm8uu_cable_tie();
|
|
402
|
+ translate([68, x_carriage_len_add, 0])
|
|
403
|
+ rotate([90, 0, 90])
|
|
404
|
+ lm8uu_cable_tie();
|
|
405
|
+
|
|
406
|
+ // bearing cable tie mount back
|
|
407
|
+ translate([8, x_carriage_len_add + x_rail_dist, 0])
|
|
408
|
+ rotate([90, 0, 90])
|
|
409
|
+ lm8uu_cable_tie();
|
|
410
|
+ translate([18, x_carriage_len_add + x_rail_dist, 0])
|
|
411
|
+ rotate([90, 0, 90])
|
|
412
|
+ lm8uu_cable_tie();
|
|
413
|
+ translate([58, x_carriage_len_add + x_rail_dist, 0])
|
|
414
|
+ rotate([90, 0, 90])
|
|
415
|
+ lm8uu_cable_tie();
|
|
416
|
+ translate([68, x_carriage_len_add + x_rail_dist, 0])
|
|
417
|
+ rotate([90, 0, 90])
|
|
418
|
+ lm8uu_cable_tie();
|
|
419
|
+
|
359
|
420
|
/* mounting for hotend / tool */
|
360
|
421
|
|
361
|
422
|
// left mounting screw
|
|
@@ -366,10 +427,10 @@ module x_carriage() {
|
366
|
427
|
cylinder(d = e3d_hole_dia, h = x_carriage_wall + 12);
|
367
|
428
|
|
368
|
429
|
// bottom mounting screw
|
369
|
|
- translate([x_carriage_width / 2, 19, -1])
|
|
430
|
+ translate([x_carriage_width / 2, x_carriage_len_add + 9, -1])
|
370
|
431
|
cylinder(d = e3d_hole_dia, h = x_carriage_wall + 12);
|
371
|
432
|
// top mounting screw
|
372
|
|
- translate([x_carriage_width / 2, x_carriage_length - 19, -1])
|
|
433
|
+ translate([x_carriage_width / 2, x_carriage_length - x_carriage_len_add - 9, -1])
|
373
|
434
|
cylinder(d = e3d_hole_dia, h = x_carriage_wall + 12);
|
374
|
435
|
|
375
|
436
|
// fan mount attachment holes on left side
|
|
@@ -408,44 +469,53 @@ module x_carriage() {
|
408
|
469
|
translate([(x_carriage_width - sensor_mount_width) / 2, -sensor_mount_wall, 0])
|
409
|
470
|
sensor_mount();
|
410
|
471
|
|
411
|
|
- translate([(x_carriage_width - sensor_mount_width) / 2, x_carriage_length, 0])
|
412
|
|
- radial_fan_mount();
|
|
472
|
+ translate([(x_carriage_width - sensor_mount_width) / 2, x_carriage_length, 0]) {
|
|
473
|
+ radial_fan_mount(true);
|
|
474
|
+
|
|
475
|
+ translate([0, 15 + sensor_mount_wall, 0])
|
|
476
|
+ radial_fan_mount(false);
|
|
477
|
+ }
|
413
|
478
|
|
414
|
479
|
e3d_v6_triple_mount();
|
415
|
480
|
}
|
416
|
481
|
|
417
|
|
-module radial_fan_mount() {
|
|
482
|
+module radial_fan_mount(with_fan = true) {
|
418
|
483
|
color("yellow")
|
419
|
484
|
universal_mount_plate();
|
420
|
485
|
|
421
|
|
- color("yellow")
|
422
|
|
- translate([-52, 0, 0])
|
423
|
|
- cube([52, sensor_mount_wall, x_carriage_wall]);
|
424
|
|
-
|
425
|
|
- color("yellow")
|
426
|
|
- translate([-9, 0, x_carriage_wall])
|
427
|
|
-
|
428
|
|
- difference() {
|
429
|
|
- cube([9, sensor_mount_wall, 13]);
|
430
|
|
- translate([4.5, -1, 9])
|
431
|
|
- rotate([-90, 0, 0])
|
432
|
|
- cylinder(d = 4.2, h = sensor_mount_wall + 2);
|
433
|
|
- }
|
434
|
|
-
|
435
|
|
- color("yellow")
|
436
|
|
- translate([-52, 0, -23])
|
437
|
|
- difference() {
|
438
|
|
- cube([9, sensor_mount_wall, 23]);
|
439
|
|
- translate([4.5, -1, 4])
|
440
|
|
- rotate([-90, 0, 0])
|
441
|
|
- cylinder(d = 4.2, h = sensor_mount_wall + 2);
|
|
486
|
+ for (i = [0 : 52 + sensor_mount_width : 52 + sensor_mount_width])
|
|
487
|
+ translate([i, 0, 0]) {
|
|
488
|
+ color("yellow")
|
|
489
|
+ translate([-52, 0, 0])
|
|
490
|
+ cube([52, sensor_mount_wall, x_carriage_wall]);
|
|
491
|
+
|
|
492
|
+ color("yellow")
|
|
493
|
+ translate([-9, 0, x_carriage_wall])
|
|
494
|
+
|
|
495
|
+ difference() {
|
|
496
|
+ cube([9, sensor_mount_wall, 13]);
|
|
497
|
+ translate([4.5, -1, 9])
|
|
498
|
+ rotate([-90, 0, 0])
|
|
499
|
+ cylinder(d = 4.2, h = sensor_mount_wall + 2);
|
|
500
|
+ }
|
|
501
|
+
|
|
502
|
+ color("yellow")
|
|
503
|
+ translate([-52, 0, -23])
|
|
504
|
+ difference() {
|
|
505
|
+ cube([9, sensor_mount_wall, 23]);
|
|
506
|
+ translate([4.5, -1, 4])
|
|
507
|
+ rotate([-90, 0, 0])
|
|
508
|
+ cylinder(d = 4.2, h = sensor_mount_wall + 2);
|
|
509
|
+ }
|
|
510
|
+
|
|
511
|
+ if (draw_radial_fan && with_fan) {
|
|
512
|
+ // 5015 fan mockup
|
|
513
|
+ %color("gray")
|
|
514
|
+ translate([-(x_carriage_width - sensor_mount_width) / 2 + 4, sensor_mount_wall, 0])
|
|
515
|
+ rotate([90, 0, 180])
|
|
516
|
+ fan_5015();
|
|
517
|
+ }
|
442
|
518
|
}
|
443
|
|
-
|
444
|
|
- // 5015 fan mockup
|
445
|
|
- %color("gray")
|
446
|
|
- translate([-(x_carriage_width - sensor_mount_width) / 2 + 4, sensor_mount_wall, 0])
|
447
|
|
- rotate([90, 0, 180])
|
448
|
|
- fan_5015();
|
449
|
519
|
}
|
450
|
520
|
|
451
|
521
|
module fan_5015() {
|
|
@@ -514,18 +584,21 @@ module sensor_mount() {
|
514
|
584
|
cylinder(d = sensor_dia, h = sensor_mount_height + 2);
|
515
|
585
|
}
|
516
|
586
|
|
517
|
|
- // sensor mockup
|
518
|
|
- %translate([sensor_mount_width / 2, -(sensor_dia + sensor_dia_add) / 2 + sensor_mount_y_offset, -22]) {
|
519
|
|
- color("gray")
|
520
|
|
- cylinder(d = 18.2, h = 55);
|
521
|
|
-
|
522
|
|
- color("orange")
|
523
|
|
- translate([0, 0, -10])
|
524
|
|
- cylinder(d = 18.2, h = 10);
|
|
587
|
+ if (draw_bed_sensor) {
|
|
588
|
+ // sensor mockup
|
|
589
|
+ %translate([sensor_mount_width / 2, -(sensor_dia + sensor_dia_add) / 2 + sensor_mount_y_offset, -22]) {
|
|
590
|
+ color("gray")
|
|
591
|
+ cylinder(d = 18.2, h = 55);
|
|
592
|
+
|
|
593
|
+ color("orange")
|
|
594
|
+ translate([0, 0, -10])
|
|
595
|
+ cylinder(d = 18.2, h = 10);
|
|
596
|
+ }
|
525
|
597
|
}
|
526
|
598
|
}
|
527
|
599
|
|
528
|
600
|
module e3d_v6_triple_mount() {
|
|
601
|
+ if (draw_e3d_hotends)
|
529
|
602
|
translate([x_carriage_width / 2, x_carriage_length / 2, -e3d_v6_height + x_carriage_wall + e3d_v6_z_off]) {
|
530
|
603
|
|
531
|
604
|
color("red")
|