Thomas Buck преди 6 години
родител
ревизия
1569305059
променени са 1 файла, в които са добавени 117 реда и са изтрити 26 реда
  1. 117
    26
      lib/linear_bearing.scad

+ 117
- 26
lib/linear_bearing.scad Целия файл

@@ -54,17 +54,31 @@ x_carriage_block_height = 2 * (x_carriage_block_hole_off + x_carriage_block_add)
54 54
 x_cutout_width = x_carriage_width - (2 * x_carriage_belt_block_width) - 5;
55 55
 x_cutout_length = x_rail_dist - 25;
56 56
 
57
-draw_x_carriage = false;
58
-draw_y_carriage = false;
59
-draw_y_carriage_idlers = true;
60
-draw_rail_len = 200;
61
-
62 57
 // y-carriage belt idlers
63 58
 idler_a_blue = [  19,               15,  5.5];
64 59
 idler_a_red  = [  19, x_rail_dist + 15, 12.5];
65 60
 idler_b_blue = [30.3, x_rail_dist + 15, 12.5];
66 61
 idler_b_red  = [30.3,               15,  5.5];
67 62
 
63
+e3d_v6_dist_x = 23 + 5;
64
+e3d_v6_dist_y = 18 + 1;
65
+e3d_v6_z_off = 13;
66
+
67
+e3d_clamp_width = x_cutout_width;
68
+e3d_clamp_width_add = 10;
69
+e3d_clamp_length = e3d_v6_dist_y;
70
+e3d_clamp_b_length = ((x_cutout_length - e3d_clamp_length) / 2) + 7;
71
+e3d_clamp_height = e3d_upper_small_height;
72
+e3d_clamp_dia_add = 0.2;
73
+e3d_clamp_cut = 0.2; // x2
74
+e3d_clamp_hole_off = 4;
75
+e3d_hole_dia = 3.2;
76
+
77
+draw_x_carriage = true;
78
+draw_y_carriage = false;
79
+draw_y_carriage_idlers = true;
80
+draw_rail_len = 200;
81
+
68 82
 module lm8uu() {
69 83
     $fn = 15;
70 84
     difference() {
@@ -307,6 +321,8 @@ module x_carriage() {
307 321
             }
308 322
         }
309 323
         
324
+        /* mounting for hotend / tool */
325
+        
310 326
         // left mounting screw
311 327
         translate([5.5, x_carriage_length / 2, -1])
312 328
             cylinder(d = e3d_hole_dia, h = x_carriage_wall + 12);
@@ -321,11 +337,11 @@ module x_carriage() {
321 337
         translate([x_carriage_width / 2, x_carriage_length - 19, -1])
322 338
             cylinder(d = e3d_hole_dia, h = x_carriage_wall + 12);
323 339
     }
324
-        
325
-    e3d_v6_dist_x = 23 + 5;
326
-    e3d_v6_dist_y = 18 + 1;
327
-    e3d_v6_z_off = 13;
328 340
     
341
+    e3d_v6_triple_mount();
342
+}
343
+
344
+module e3d_v6_triple_mount() {
329 345
     translate([x_carriage_width / 2, x_carriage_length / 2, -e3d_v6_height + x_carriage_wall + e3d_v6_z_off]) {
330 346
         
331 347
         color("red")
@@ -342,16 +358,6 @@ module x_carriage() {
342 358
             e3d_v6();
343 359
     }
344 360
     
345
-    e3d_clamp_width = x_cutout_width;
346
-    e3d_clamp_width_add = 10;
347
-    e3d_clamp_length = e3d_v6_dist_y;
348
-    e3d_clamp_b_length = ((x_cutout_length - e3d_clamp_length) / 2) + 7;
349
-    e3d_clamp_height = e3d_upper_small_height;
350
-    e3d_clamp_dia_add = 0.2;
351
-    e3d_clamp_cut = 0.2; // x2
352
-    e3d_clamp_hole_off = 4;
353
-    e3d_hole_dia = 3.2;
354
-    
355 361
     echo(m3_screw_len=e3d_clamp_length + (2 * e3d_clamp_b_length));
356 362
     
357 363
     // hotend clamp center piece
@@ -374,6 +380,12 @@ module x_carriage() {
374 380
                 cube([e3d_clamp_width, e3d_clamp_b_length - e3d_clamp_cut, e3d_clamp_height]);
375 381
         }
376 382
         
383
+        // cable holes
384
+        translate([9.5, 6, -1])
385
+            cylinder(d = 7, h = e3d_clamp_height + 2);
386
+        translate([e3d_clamp_width - 9.5, 6, -1])
387
+            cylinder(d = 7, h = e3d_clamp_height + 2);
388
+        
377 389
         // left clamping screw
378 390
         translate([e3d_clamp_hole_off, -e3d_clamp_b_length - 1, e3d_clamp_height / 2])
379 391
             rotate([-90, 0, 0])
@@ -410,14 +422,93 @@ module x_carriage() {
410 422
             cylinder(d = e3d_upper_small_dia + e3d_clamp_dia_add, h = e3d_clamp_height + 2);
411 423
     }
412 424
     
413
-    // hotend cooling fan
414
-    color("grey")
415
-    %translate([x_carriage_width + 5, (x_carriage_length - 40) / 2, -40])
425
+    fan_mount_wall = 5;
426
+    fan_mount_inset = 5;
427
+    fan_width = 40;
428
+    fan_height = 20;
429
+    
416 430
     difference() {
417
-        cube([20, 40, 40]);
418
-        translate([-1, 20, 20])
419
-            rotate([0, 90, 0])
420
-            cylinder(d = 35, h = 22);
431
+        union() {
432
+            translate([x_carriage_width, (x_carriage_length - fan_width) / 2, -fan_width]) {
433
+                // hotend cooling fan
434
+                color("grey")
435
+                %translate([fan_mount_wall, 0, 0])
436
+                difference() {
437
+                    cube([fan_height, fan_width, fan_width]);
438
+                    translate([-1, fan_width / 2, fan_width / 2])
439
+                        rotate([0, 90, 0])
440
+                        cylinder(d = fan_width - 5, h = fan_height + 2);
441
+                }
442
+                
443
+                // fan mount
444
+                color("orange")
445
+                difference() {
446
+                    cube([fan_mount_wall, fan_width, fan_width + x_carriage_wall]);
447
+                    
448
+                    translate([-1, fan_mount_inset, fan_mount_inset])
449
+                        cube([fan_mount_wall + 2, fan_width - (fan_mount_inset * 2), fan_width - (fan_mount_inset * 2)]);
450
+                }
451
+            }
452
+            
453
+            // fan duct
454
+            color("orange")
455
+            translate([x_carriage_width, (x_carriage_length - fan_width) / 2, 0])
456
+            difference() {
457
+                fan_duct(40, (fan_width - 40) / 2);
458
+                fan_duct(37, (fan_width - 37) / 2);
459
+            }
460
+        }
461
+        
462
+        // TODO mounting holes
463
+        // TODO fan holes
464
+    }
465
+}
466
+
467
+module fan_duct(size, off) {
468
+    difference() {
469
+        translate([0, off, -size - off]) {
470
+            hull() {
471
+                cube([1, size, size]);
472
+                translate([-10, 0, 10])
473
+                    cube([1, size, size - 11]);
474
+            }
475
+            hull() {
476
+                translate([-10, 0, 10])
477
+                    cube([1, size, size - 11]);
478
+                translate([-15, -6, 17])
479
+                    cube([1, size + 12, size - 18]);
480
+            }
481
+            hull() {
482
+                translate([-15, -6, 17])
483
+                    cube([1, size + 12, size - 18]);
484
+                translate([-25, -6, 17])
485
+                    cube([1, size + 12, size - 20]);
486
+            }
487
+            hull() {
488
+                translate([-25, -6, 17])
489
+                    cube([1, size + 12, size - 20]);
490
+                translate([-55, -6, 17])
491
+                    cube([1, size + 12, size - 20]);
492
+            }
493
+            hull() {
494
+                translate([-55, -6, 17])
495
+                    cube([1, size + 12, size - 20]);
496
+                if (off > 0) {
497
+                    translate([-71, 15, 17])
498
+                        cube([1, size - 12, size - 20]);
499
+                } else {
500
+                    translate([-70, 15, 17])
501
+                        cube([1, size - 12, size - 20]);
502
+                }
503
+            }
504
+        }
505
+        
506
+        translate([-26, 29.5, -size - 20])
507
+            cylinder(d = e3d_max_dia + 3, h = 100);
508
+        translate([-26 - e3d_v6_dist_x, 29.5, -size - 20])
509
+            cylinder(d = e3d_max_dia + 3, h = 100);
510
+        translate([-26 - e3d_v6_dist_x / 2, 29.5 - e3d_v6_dist_y, -size - 20])
511
+            cylinder(d = e3d_max_dia + 3, h = 100);
421 512
     }
422 513
 }
423 514
 

Loading…
Отказ
Запис