Commits

uniqx committed 4aacc48

cube cage

Comments (0)

Files changed (3)

openscad/cube_cage/lazor_parts.scad

+
+// parameters
+
+height = 60; // length of the box in z direction
+width = 120; // length of the box in x direction
+depht = 80; // length of the box in y direction
+
+material_height = 5;
+screw_radius = 1.5;
+screw_height = 10;
+
+// position parts
+
+xy_plate(width,depht,material_height);
+#xz_plate(width,height,material_height);
+
+// shape definitions
+
+module xz_plate(width,height,material_height){
+
+  difference(){
+
+    union(){
+      square([width+2*material_height,height],center=true);
+      square([width/2,height+2*material_height],center=true);
+    }
+
+    translate([3*width/8,-height/2,0])
+      screw_socket(screw_radius,screw_height,material_height);
+    translate([-3*width/8,-height/2,0])
+      screw_socket(screw_radius,screw_height,material_height);
+
+    rotate([0,0,180]) translate([3*width/8,-height/2,0])
+      screw_socket(screw_radius,screw_height,material_height);
+    rotate([0,0,180]) translate([-3*width/8,-height/2,0])
+      screw_socket(screw_radius,screw_height,material_height);
+
+  }
+
+}
+
+module xy_plate(width,height,materiel_height){
+
+  difference(){
+    minkowski(){
+      square([width,height],center=true);
+      circle(r=material_height);
+    }
+
+    translate([width/2+material_height,0,0])
+      square([material_height*2,height/2],center=true);
+    translate([-width/2-material_height,0,0])
+      square([material_height*2,height/2],center=true);
+
+    translate([0,height/2+material_height,0])
+      square([width/2,material_height*2],center=true);
+    translate([0,-height/2-material_height,0])
+      square([width/2,material_height*2],center=true);
+
+
+    translate([3*width/8,height/2+material_height/2,0])
+      circle(r=screw_radius,$fn=25);
+    translate([-3*width/8,height/2+material_height/2,0])
+      circle(r=screw_radius,$fn=25);
+
+    translate([3*width/8,-height/2-material_height/2,0])
+      circle(r=screw_radius,$fn=25);
+    translate([-3*width/8,-height/2-material_height/2,0])
+      circle(r=screw_radius,$fn=25);
+
+  }
+
+}
+
+
+module screw_socket(screw_radius,screw_height,material_height){
+
+  union(){
+    translate([-screw_radius,0,0])
+      square([screw_radius*2,screw_height+screw_radius]);
+    translate([-2*screw_radius,screw_height-2*screw_radius,0])
+      square([screw_radius*4,screw_radius*2]);
+  }
+
+}
+
+
+
+

openscad/cube_cage2/lazzor_parts.scad

+
+
+// parameters
+
+
+height = 90;
+width  = 100;
+depth  = 200;
+
+material_height = 5;
+screw_radius = 1.5;
+
+
+// arrangement
+
+
+translate([ (3*width/2) + material_height*4,0,0])
+  base_plate(width,depth,material_height,screw_radius);
+translate([ (width/2) + material_height,0,0])
+  base_plate(width,depth,material_height,screw_radius);
+
+translate([ -1.5*width ,height*0.55,0 ])
+  side_plate(depth,height,material_height);
+translate([ -1.5*width ,-height*0.55,0 ])
+  side_plate(depth,height,material_height);
+
+translate( [3*width,height*0.55,0] ) rotate([0,0,90])
+  front_plate(height,width,material_height);
+translate( [3*width,-height*0.55,0] ) rotate([0,0,90])
+  front_plate(height,width,material_height);
+
+
+// shapes
+
+module front_plate(h,w,m){
+
+  difference(){
+
+    union(){
+
+      square([h,w],center=true);
+
+      for(a=[-1,1])
+        for(b=[-1,1])
+          for( i=[0:m*2:(4-1)*m] )
+            translate([-a*i+a*h/2-a*m/2,b*w/2+b*m/2])
+              square([m,m],center=true);
+
+    }
+
+  for(i=[-1,1])
+    translate([h/2-5*m/2,i*w/2,0])
+      square([m,2*m],center=true);
+
+  }
+
+}
+
+module side_plate(h,w,m){
+
+  difference(){
+
+    square([h+2*m,w],center=true);
+
+    //translate([h/2+m/2,w/2-m/2,0])
+    //  square([m,m],center=true);
+
+    for(a=[-1,1])
+      for(b=[-1,1])
+        for( i=[m:m*2:4*m] )
+          translate([b*h/2+b*m/2,a*w/2-a*i+a*m/2,0])
+            square([m,m],center=true);
+
+    for(i=[-1,1])
+      translate([i*h/2-m/2*i,-w/2+m*5/2,0])
+        square([m,m],center=true);
+
+  }
+
+}
+
+module base_plate(h,w,m,sr){
+
+  difference(){
+
+    square([h+m*2,w+m*2],center=true);
+
+    for( a = [-1,1] )
+      for( b = [-1,1] )
+        translate([a*(h+m)/2,b*(w+m)/2]) circle(r=sr,$fn=100);
+
+  }
+
+}

openscad/cube_cage2/mount.scad

+
+// parameter
+
+material_height = 5;
+
+electronics_height = 1;
+
+// place parts
+
+rotate([90,0,0])
+  mount(material_height,electronics_height);
+
+
+// shape definitions
+
+module mount(mh,eh){
+
+  difference(){
+
+    union(){
+
+      translate([0,0,-mh])
+        intersection(){
+          cylinder(r=mh,h=2*mh,$fn=300);
+          cube(mh*[1,1,2]);
+        }
+
+      translate(mh*[-1,0,-0.5])
+        cube(mh*[1,1,1]);
+      translate(mh*[-1,-1,-0.5])
+        cube(mh*[1,1,1]);
+      translate(mh*[0,-1,-0.5])
+        cube(mh*[1,1,1]);
+
+    }
+
+    translate([0,0,-eh/2])
+      cube([2*mh,2*mh,eh]);
+
+  }
+}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.