|
@@ -32,7 +32,18 @@ bed_y_off = 20;
|
32
|
32
|
bed_z_dist = 30;
|
33
|
33
|
|
34
|
34
|
// display heatbed centered in print volume
|
35
|
|
-bed_draw_height = (outer_height - heatbed_height) / 2;
|
|
35
|
+bed_draw_height = (outer_height - heatbed_height) / 2; // + 175;
|
|
36
|
+
|
|
37
|
+show_outer_frame = true;
|
|
38
|
+show_extruders = false;
|
|
39
|
+show_z_motion = true;
|
|
40
|
+
|
|
41
|
+show_heatbed_frame = true;
|
|
42
|
+show_heatbed = false;
|
|
43
|
+
|
|
44
|
+show_xy_motion = true;
|
|
45
|
+show_x_carriage = false;
|
|
46
|
+show_belts = false;
|
36
|
47
|
|
37
|
48
|
echo(print_x=heatbed_width, print_y=heatbed_length);
|
38
|
49
|
echo(frame_x=outer_width, frame_y=outer_length, frame_z=outer_height);
|
|
@@ -51,11 +62,13 @@ include <lib/linear_bearing.scad>
|
51
|
62
|
include <lib/extruder.scad>
|
52
|
63
|
|
53
|
64
|
module gt2_belt(length) {
|
54
|
|
- //difference() {
|
55
|
|
- // belting("straight", "GT2_2mm", belt_length = length);
|
56
|
|
- // translate([-5, -5, 6])
|
57
|
|
- // cube([length + 10, 10, 10]);
|
58
|
|
- //}
|
|
65
|
+ if (show_belts) {
|
|
66
|
+ difference() {
|
|
67
|
+ belting("straight", "GT2_2mm", belt_length = length);
|
|
68
|
+ translate([-5, -5, 6])
|
|
69
|
+ cube([length + 10, 10, 10]);
|
|
70
|
+ }
|
|
71
|
+ }
|
59
|
72
|
}
|
60
|
73
|
|
61
|
74
|
// #######################################################
|
|
@@ -291,8 +304,10 @@ module x_rails() {
|
291
|
304
|
rotate([0, 90, 0])
|
292
|
305
|
rail(outer_width - (4 * slot));
|
293
|
306
|
|
294
|
|
- //translate([x_carriage_pos, y_carriage_pos - x_carriage_len_add, slot / 2])
|
295
|
|
- // x_carriage();
|
|
307
|
+ if (show_x_carriage) {
|
|
308
|
+ translate([x_carriage_pos, y_carriage_pos - x_carriage_len_add, slot / 2])
|
|
309
|
+ x_carriage();
|
|
310
|
+ }
|
296
|
311
|
}
|
297
|
312
|
|
298
|
313
|
module motion_xy() {
|
|
@@ -429,7 +444,9 @@ module heatbed_plate() {
|
429
|
444
|
|
430
|
445
|
module heatbed() {
|
431
|
446
|
translate([slot + frame_off_x, slot + frame_off_y, bed_draw_height]) {
|
432
|
|
- //%heatbed_plate();
|
|
447
|
+ if (show_heatbed) {
|
|
448
|
+ %heatbed_plate();
|
|
449
|
+ }
|
433
|
450
|
|
434
|
451
|
// t-slots as heatbed frame
|
435
|
452
|
translate([bed_x_off, bed_y_off, -slot - bed_z_dist])
|
|
@@ -456,36 +473,58 @@ module heatbed() {
|
456
|
473
|
}
|
457
|
474
|
}
|
458
|
475
|
|
459
|
|
-module motion_z() {
|
460
|
|
- // front left bottom
|
461
|
|
- color("green")
|
462
|
|
- translate([(2 * slot) + 60, slot, slot / 2 + 5])
|
463
|
|
- rotate([-90, 0, 90])
|
464
|
|
- rail_mount(slot);
|
465
|
|
- // front left top
|
|
476
|
+z_rail_x_off = 60;
|
|
477
|
+z_rail_mount_len = 20;
|
|
478
|
+
|
|
479
|
+module motion_z_rail() {
|
|
480
|
+ // bottom clamp
|
466
|
481
|
color("green")
|
467
|
|
- translate([(2 * slot) + 60, slot, outer_height - slot / 2 + 5 - slot])
|
|
482
|
+ translate([slot, 0, slot / 2 + 5 + (z_rail_mount_len - rail_mount_len) / 2])
|
468
|
483
|
rotate([-90, 0, 90])
|
469
|
|
- rail_mount(slot);
|
470
|
|
- // front left rail
|
471
|
|
- color("cyan")
|
472
|
|
- translate([slot + 60, slot + 15, 6])
|
473
|
|
- rail(outer_height - slot - 12);
|
|
484
|
+ rail_mount(slot, z_rail_mount_len);
|
474
|
485
|
|
475
|
|
- // front right bottom
|
476
|
|
- color("green")
|
477
|
|
- translate([outer_width - (2 * slot), slot, slot / 2 + 5])
|
478
|
|
- rotate([-90, 0, 90])
|
479
|
|
- rail_mount(slot);
|
480
|
|
- // front right top
|
|
486
|
+ // top clamp
|
481
|
487
|
color("green")
|
482
|
|
- translate([outer_width - (2 * slot), slot, outer_height - slot / 2 + 5 - slot])
|
|
488
|
+ translate([slot, 0, outer_height - slot / 2 + 5 + (z_rail_mount_len - rail_mount_len) / 2 - slot])
|
483
|
489
|
rotate([-90, 0, 90])
|
484
|
|
- rail_mount(slot);
|
485
|
|
- // front right rail
|
|
490
|
+ rail_mount(slot, z_rail_mount_len);
|
|
491
|
+
|
|
492
|
+ // rail
|
486
|
493
|
color("cyan")
|
487
|
|
- translate([outer_width - slot - 60, slot + 15, 6])
|
488
|
|
- rail(outer_height - slot - 12);
|
|
494
|
+ translate([0, 15, 4])
|
|
495
|
+ rail(outer_height - slot - 8);
|
|
496
|
+}
|
|
497
|
+
|
|
498
|
+module motion_z() {
|
|
499
|
+ // front left
|
|
500
|
+ translate([slot + z_rail_x_off, slot, 0])
|
|
501
|
+ motion_z_rail();
|
|
502
|
+ // front right
|
|
503
|
+ translate([outer_width - z_rail_x_off - slot, slot, 0])
|
|
504
|
+ motion_z_rail();
|
|
505
|
+ // back left
|
|
506
|
+ translate([slot + z_rail_x_off, outer_length - slot, 0])
|
|
507
|
+ rotate([0, 0, 180])
|
|
508
|
+ motion_z_rail();
|
|
509
|
+ // back right
|
|
510
|
+ translate([outer_width - z_rail_x_off - slot, outer_length - slot, 0])
|
|
511
|
+ rotate([0, 0, 180])
|
|
512
|
+ motion_z_rail();
|
|
513
|
+
|
|
514
|
+ translate([(outer_width - nema17_size) / 2, outer_length - slot - nema17_size - nema17_mount_wall, outer_height + nema17_mount_wall])
|
|
515
|
+ rotate([180, 0, 90]) {
|
|
516
|
+ color("yellow")
|
|
517
|
+ translate([0, 0, -65])
|
|
518
|
+ nema17(65);
|
|
519
|
+
|
|
520
|
+ color("green")
|
|
521
|
+ nema17_mount(slot);
|
|
522
|
+
|
|
523
|
+ // blue motor pulley
|
|
524
|
+ color("orange")
|
|
525
|
+ translate([nema17_size / 2, nema17_size / 2, 8.2])
|
|
526
|
+ gt2_pulley();
|
|
527
|
+ }
|
489
|
528
|
}
|
490
|
529
|
|
491
|
530
|
// #######################################################
|
|
@@ -497,11 +536,11 @@ module extruders() {
|
497
|
536
|
translate([0, -bracket_height, outer_height - slot])
|
498
|
537
|
rotate([0, 0, 90]) {
|
499
|
538
|
translate([0, -(outer_width + w) / 4, 0])
|
500
|
|
- extruder(slot);
|
|
539
|
+ extruder(slot, "1");
|
501
|
540
|
translate([0, -(outer_width + w) / 2, 0])
|
502
|
|
- extruder(slot);
|
|
541
|
+ extruder(slot, "2");
|
503
|
542
|
translate([0, -(outer_width + w) * 3 / 4, 0])
|
504
|
|
- extruder(slot);
|
|
543
|
+ extruder(slot, "3");
|
505
|
544
|
}
|
506
|
545
|
}
|
507
|
546
|
|
|
@@ -509,10 +548,26 @@ module extruders() {
|
509
|
548
|
// ####################### Assembly #######################
|
510
|
549
|
// ########################################################
|
511
|
550
|
|
512
|
|
-frame();
|
|
551
|
+module assembly() {
|
|
552
|
+ if (show_outer_frame) {
|
|
553
|
+ frame();
|
|
554
|
+ }
|
513
|
555
|
|
514
|
|
-motion_xy();
|
515
|
|
-//extruders();
|
|
556
|
+ if (show_xy_motion) {
|
|
557
|
+ motion_xy();
|
|
558
|
+ }
|
|
559
|
+
|
|
560
|
+ if (show_extruders) {
|
|
561
|
+ extruders();
|
|
562
|
+ }
|
|
563
|
+
|
|
564
|
+ if (show_z_motion) {
|
|
565
|
+ motion_z();
|
|
566
|
+ }
|
|
567
|
+
|
|
568
|
+ if (show_heatbed_frame) {
|
|
569
|
+ heatbed();
|
|
570
|
+ }
|
|
571
|
+}
|
516
|
572
|
|
517
|
|
-motion_z();
|
518
|
|
-heatbed();
|
|
573
|
+assembly();
|