Browse Source

added simple feet and spacer for plate to hardware design

Thomas Buck 2 years ago
parent
commit
0b1d191b71
2 changed files with 93 additions and 14 deletions
  1. 19
    2
      hardware/config.scad
  2. 74
    12
      hardware/table.scad

+ 19
- 2
hardware/config.scad View File

247
 
247
 
248
 left_support_len = 200;
248
 left_support_len = 200;
249
 left_support_off = 50;
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
 echo("distance between bottom support rails", x_axis_rail_len - left_support_off - right_support_off - 40, -left_support_off, -right_support_off);
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
 endstop_pcb_width = 16.0;
260
 endstop_pcb_width = 16.0;
256
 endstop_pcb_height = 40.0;
261
 endstop_pcb_height = 40.0;
257
 endstop_pcb_depth = 1.6;
262
 endstop_pcb_depth = 1.6;
272
 endstop_pcb_mount_off_w = endstop_mount_slot_length;
277
 endstop_pcb_mount_off_w = endstop_mount_slot_length;
273
 
278
 
274
 use_endstop_mount_v2 = false;
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 View File

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
 // also used as base for x-carriage
460
 // also used as base for x-carriage
436
 // axis = 0 --> all holes, usable for both
461
 // axis = 0 --> all holes, usable for both
437
 // axis = 1 --> holes for x-carriage
462
 // axis = 1 --> holes for x-carriage
505
 
530
 
506
 module y_axis() {
531
 module y_axis() {
507
     translate([y_carriage_x / 2, y_axis_animation_position, 20 + y_carriage_h + y_carriage_rail_dist])
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
     color("grey")
541
     color("grey")
512
     translate([-10, 0, 0])
542
     translate([-10, 0, 0])
594
     translate([0, -y_carriage_y / 2 - y_axis_animation_position, 0])
624
     translate([0, -y_carriage_y / 2 - y_axis_animation_position, 0])
595
     y_axis();
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
     plate();
628
     plate();
599
 }
629
 }
600
 
630
 
606
     assembly_y_axis_plate();
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
 module rail_foot() {
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
 module assembly() {
662
 module assembly() {
632
             translate([x_axis_rail_len - 20 - right_support_off, -right_support_len - 10, -20])
676
             translate([x_axis_rail_len - 20 - right_support_off, -right_support_len - 10, -20])
633
             rail_2020_y(right_support_len, "right support");
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
         } else {
688
         } else {
637
             color("grey")
689
             color("grey")
638
             translate([x_axis_rail_len / 2, 0, -40])
690
             translate([x_axis_rail_len / 2, 0, -40])
641
             translate([x_axis_rail_len / 2 - bottom_support_off, -bottom_support_len / 2, 0])
693
             translate([x_axis_rail_len / 2 - bottom_support_off, -bottom_support_len / 2, 0])
642
             rail_2020_y(bottom_support_len, "bottom supports");
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
 module xy_table() {
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
     assembly();
711
     assembly();
652
 }
712
 }
653
 
713
 
658
 //dispenser();
718
 //dispenser();
659
 //rail_2020_x(100);
719
 //rail_2020_x(100);
660
 //rail_wheel();
720
 //rail_wheel();
721
+//rail_foot();
661
 
722
 
662
 //motor_mount(1);
723
 //motor_mount(1);
663
 //motor_mount(2);
724
 //motor_mount(2);
677
 //y_carriage(1);
738
 //y_carriage(1);
678
 //y_carriage(2);
739
 //y_carriage(2);
679
 //x_carriage();
740
 //x_carriage();
741
+//carriage_spacer();
680
 
742
 
681
 //y_axis();
743
 //y_axis();
682
 //x_axis();
744
 //x_axis();

Loading…
Cancel
Save