ソースを参照

added simple feet and spacer for plate to hardware design

Thomas Buck 3年前
コミット
0b1d191b71
2個のファイルの変更93行の追加14行の削除
  1. 19
    2
      hardware/config.scad
  2. 74
    12
      hardware/table.scad

+ 19
- 2
hardware/config.scad ファイルの表示

@@ -247,11 +247,16 @@ draw_pulleys = false;
247 247
 
248 248
 left_support_len = 200;
249 249
 left_support_off = 50;
250
-right_support_len = 200;
251
-right_support_off = 50;
250
+right_support_len = left_support_len;
251
+right_support_off = left_support_off;
252 252
 
253 253
 echo("distance between bottom support rails", x_axis_rail_len - left_support_off - right_support_off - 40, -left_support_off, -right_support_off);
254 254
 
255
+bottom_support_len = 500;
256
+bottom_support_off = 80;
257
+
258
+use_double_supports = false;
259
+
255 260
 endstop_pcb_width = 16.0;
256 261
 endstop_pcb_height = 40.0;
257 262
 endstop_pcb_depth = 1.6;
@@ -272,3 +277,15 @@ endstop_pcb_mount_off_d = 18; // TODO was 8
272 277
 endstop_pcb_mount_off_w = endstop_mount_slot_length;
273 278
 
274 279
 use_endstop_mount_v2 = false;
280
+
281
+foot_screw_dia = 5.3;
282
+foot_screw_head_dia = 10.0;
283
+foot_screw_head_height = 7.0;
284
+foot_nut_base_dia = foot_screw_head_dia;
285
+foot_dia_add = 10.0;
286
+foot_dia = max(foot_screw_dia, foot_screw_head_dia) + foot_dia_add;
287
+
288
+carriage_spacer_height = 5;
289
+carriage_spacer_cut = 4;
290
+carriage_spacer_cut_x = y_carriage_x / 2 - carriage_spacer_cut;
291
+carriage_spacer_cut_y = y_carriage_y / 2 - carriage_spacer_cut;

+ 74
- 12
hardware/table.scad ファイルの表示

@@ -432,6 +432,31 @@ module y_carriage_posts() {
432 432
     }
433 433
 }
434 434
 
435
+module carriage_spacer() {
436
+    difference() {
437
+        cube([y_carriage_x, y_carriage_y, carriage_spacer_height]);
438
+        
439
+        translate([y_carriage_x / 2, y_carriage_y / 2, 0])
440
+        plate_holes(carriage_spacer_height);
441
+        
442
+        translate([carriage_spacer_cut_x / 2 * sqrt(2) + y_carriage_x / 2, -1, -1])
443
+        rotate([0, -90, 45])
444
+        prism(carriage_spacer_height + 2, carriage_spacer_cut_x, carriage_spacer_cut_x);
445
+        
446
+        translate([-carriage_spacer_cut_x / 2 * sqrt(2) + y_carriage_x / 2, y_carriage_y + 1, -1])
447
+        rotate([0, -90, 225])
448
+        prism(carriage_spacer_height + 2, carriage_spacer_cut_x, carriage_spacer_cut_x);
449
+        
450
+        translate([-1, y_carriage_y / 2 - carriage_spacer_cut_y / 2 * sqrt(2), -1])
451
+        rotate([0, -90, -45])
452
+        prism(carriage_spacer_height + 2, carriage_spacer_cut_y, carriage_spacer_cut_y);
453
+        
454
+        translate([y_carriage_x + 1, y_carriage_y / 2 + carriage_spacer_cut_y / 2 * sqrt(2), -1])
455
+        rotate([0, -90, -225])
456
+        prism(carriage_spacer_height + 2, carriage_spacer_cut_y, carriage_spacer_cut_y);
457
+    }
458
+}
459
+
435 460
 // also used as base for x-carriage
436 461
 // axis = 0 --> all holes, usable for both
437 462
 // axis = 1 --> holes for x-carriage
@@ -505,8 +530,13 @@ module y_carriage(axis = 0) {
505 530
 
506 531
 module y_axis() {
507 532
     translate([y_carriage_x / 2, y_axis_animation_position, 20 + y_carriage_h + y_carriage_rail_dist])
508
-    rotate([0, 180, 0])
509
-    y_carriage(2);
533
+    rotate([0, 180, 0]) {
534
+        y_carriage(2);
535
+        
536
+        color("cyan")
537
+        translate([0, 0, -carriage_spacer_height - 0.01])
538
+        carriage_spacer();
539
+    }
510 540
     
511 541
     color("grey")
512 542
     translate([-10, 0, 0])
@@ -594,7 +624,7 @@ module assembly_y_axis_plate() {
594 624
     translate([0, -y_carriage_y / 2 - y_axis_animation_position, 0])
595 625
     y_axis();
596 626
     
597
-    %translate([-plate_x / 2, -plate_y / 2, 20 + y_carriage_h + y_carriage_rail_dist])
627
+    %translate([-plate_x / 2, -plate_y / 2, 20 + y_carriage_h + y_carriage_rail_dist + carriage_spacer_height])
598 628
     plate();
599 629
 }
600 630
 
@@ -606,13 +636,27 @@ module assembly_x_axis() {
606 636
     assembly_y_axis_plate();
607 637
 }
608 638
 
609
-bottom_support_len = 500;
610
-bottom_support_off = 80;
611
-
612
-use_double_supports = false;
613
-
614 639
 module rail_foot() {
615
-    
640
+    difference() {
641
+        union() {
642
+            sphere(d = foot_dia);
643
+            
644
+            translate([0, 0, foot_dia / 2])
645
+            sphere(d = foot_nut_base_dia);
646
+        }
647
+        
648
+        translate([-foot_dia / 2 - 1, -foot_dia / 2 - 1, -foot_dia / 2 - 1])
649
+        cube([foot_dia + 2, foot_dia + 2, foot_dia / 2 + 1]);
650
+        
651
+        translate([-foot_nut_base_dia / 2 - 1, -foot_nut_base_dia / 2 - 1, foot_dia / 2])
652
+        cube([foot_nut_base_dia + 2, foot_nut_base_dia + 2, foot_nut_base_dia / 2 + 1]);
653
+        
654
+        translate([0, 0, -1])
655
+        cylinder(d = foot_screw_dia, h = foot_dia / 2 + 2);
656
+        
657
+        translate([0, 0, -1])
658
+        cylinder(d = foot_screw_head_dia, h = foot_screw_head_height + 1);
659
+    }
616 660
 }
617 661
 
618 662
 module assembly() {
@@ -632,7 +676,15 @@ module assembly() {
632 676
             translate([x_axis_rail_len - 20 - right_support_off, -right_support_len - 10, -20])
633 677
             rail_2020_y(right_support_len, "right support");
634 678
             
635
-            // TODO feet
679
+            for (i = [0, 1])
680
+            for (j = [1, -1])
681
+            translate([i * x_axis_rail_len - (i * 2 - 1) * (right_support_off + 10), j * (right_support_len - 10), -40 - 0]) {
682
+                %color("grey")
683
+                cylinder(d = 5.0, h = 25);
684
+                
685
+                %color("green")
686
+                rail_foot();
687
+            }
636 688
         } else {
637 689
             color("grey")
638 690
             translate([x_axis_rail_len / 2, 0, -40])
@@ -641,13 +693,21 @@ module assembly() {
641 693
             translate([x_axis_rail_len / 2 - bottom_support_off, -bottom_support_len / 2, 0])
642 694
             rail_2020_y(bottom_support_len, "bottom supports");
643 695
             
644
-            // TODO feet
696
+            for (i = [0, 1])
697
+            for (j = [1, -1])
698
+            translate([i * x_axis_rail_len - (i * 2 - 1) * (bottom_support_off - 10), j * (bottom_support_len / 2 - 40), -40 - 20]) {
699
+                %color("grey")
700
+                cylinder(d = 5.0, h = 25);
701
+                
702
+                %color("green")
703
+                rail_foot();
704
+            }
645 705
         }
646 706
     }
647 707
 }
648 708
 
649 709
 module xy_table() {
650
-    translate([-point_that_reaches_everywhere_x, -point_that_reaches_everywhere_y, -40 + -40 + (y_carriage_rail_dist + y_carriage_h) * -2 + -plate_z])
710
+    translate([-point_that_reaches_everywhere_x, -point_that_reaches_everywhere_y, -40 + -40 + (y_carriage_rail_dist + y_carriage_h) * -2 + -plate_z - carriage_spacer_height])
651 711
     assembly();
652 712
 }
653 713
 
@@ -658,6 +718,7 @@ module xy_table() {
658 718
 //dispenser();
659 719
 //rail_2020_x(100);
660 720
 //rail_wheel();
721
+//rail_foot();
661 722
 
662 723
 //motor_mount(1);
663 724
 //motor_mount(2);
@@ -677,6 +738,7 @@ module xy_table() {
677 738
 //y_carriage(1);
678 739
 //y_carriage(2);
679 740
 //x_carriage();
741
+//carriage_spacer();
680 742
 
681 743
 //y_axis();
682 744
 //x_axis();

読み込み中…
キャンセル
保存