Pārlūkot izejas kodu

Start working on platform for terminals mount.

cixo 1 gadu atpakaļ
vecāks
revīzija
434ae47277
5 mainītis faili ar 103 papildinājumiem un 3 dzēšanām
  1. 81 0
      assets/platform.scad
  2. 11 2
      assets/thread.scad
  3. 5 0
      config/platform.scad
  4. 1 1
      config/thread.scad
  5. 5 0
      renders/platform.scad

+ 81 - 0
assets/platform.scad

@@ -0,0 +1,81 @@
+include <../config/platform.scad>
+include <../config/thread.scad>
+include <../config/wall.scad>
+include <thread.scad>
+
+module platform_support_object() {
+    module base_shape() {
+        move_x = platform_support_depth / 2 - platform_rounding;
+        move_y = platform_support_height / 2 - platform_rounding;
+        size = platform_rounding;
+
+        hull() {
+            translate([-move_x, move_y]) {
+                square(size * 2, center = true);
+            }
+
+            translate([move_x, move_y]) {
+                circle(r = size);
+            }
+
+            translate([-move_x, -move_y]) {
+                circle(r = size);
+            }
+        }
+    }
+
+    module base_object() {
+        thickness = platform_support_thickness;
+
+        rotate([90, 0, 0]) {
+            linear_extrude(height = thickness, center = true) {
+                base_shape();
+            }
+        }
+    }
+
+    module base_thread_object() {
+        oversize = max(
+            platform_support_depth, 
+            platform_support_height
+        );
+
+        render() {
+            thread_object(false, oversize);
+        }
+    }
+
+    module wall_thread_object(move_y = 0, move_z = 0) {
+        move_x = -platform_support_depth / 2
+        + thread_height / 2
+        + platform_support_screw_thickness;
+
+        translate([move_x, move_y, move_z]) {
+            rotate([0, 270, 0]) {
+                base_thread_object();
+            }
+        }
+    }   
+
+    module wall_threads_object() {
+        base_move_y = platform_support_thickness
+        - platform_support_thickness % wall_holes_space;
+
+        base_move_z = platform_support_height
+        - platform_support_height % wall_holes_space;
+
+        move_y = base_move_y / 2;
+        move_z = base_move_z / 2;
+
+        for (count_y = [-move_y : wall_holes_space : move_y]) {
+            for (count_z = [-move_z : wall_holes_space : move_z]) {
+                wall_thread_object(count_y, count_z);
+            }
+        }
+    }
+
+    difference() {
+        base_object();
+        wall_threads_object();
+    }
+}

+ 11 - 2
assets/thread.scad

@@ -1,10 +1,19 @@
 include <../config/thread.scad>
 
-module thread_object(screw = false) {
+module thread_object(screw = false, oversize = 0) {
     module base_object() {
+        top_height = thread_top_height + oversize;
+
         translate([0, 0, -thread_height / 2]) {
+            translate([0, 0, thread_height]) {
+                cylinder(r = thread_screw / 2, h = oversize);
+            }
+
             cylinder(r = thread_diameter / 2, h = thread_height);
-            cylinder(r = thread_top_diameter / 2, h = thread_top_height);
+
+            translate([0, 0, -oversize]) {
+                cylinder(r = thread_top_diameter / 2, h = top_height);
+            }
         }
     }
 

+ 5 - 0
config/platform.scad

@@ -0,0 +1,5 @@
+platform_rounding = 5;
+platform_support_depth = 50;
+platform_support_height = 60;
+platform_support_thickness = 50;
+platform_support_screw_thickness = 2;

+ 1 - 1
config/thread.scad

@@ -1,5 +1,5 @@
 thread_screw = 3;
-thread_height = 9;
+thread_height = 6;
 thread_diameter = 5;
 thread_top_height = 1;
 thread_top_diameter = 8;

+ 5 - 0
renders/platform.scad

@@ -0,0 +1,5 @@
+include <../assets/platform.scad>
+
+$fn = 100;
+
+platform_support_object();