aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-03-01 23:31:47 +0100
committerJakob Odersky <jodersky@gmail.com>2015-03-01 23:31:47 +0100
commitb86d44bced6aaf0a9ca7bb203571a21639c20067 (patch)
tree7072182125fc20661011b947b119a2949dd1791a
parenta7b93aad52f85b472c91d623c233b342a2e0cfb0 (diff)
downloadcondor-1-b86d44bced6aaf0a9ca7bb203571a21639c20067.tar.gz
condor-1-b86d44bced6aaf0a9ca7bb203571a21639c20067.tar.bz2
condor-1-b86d44bced6aaf0a9ca7bb203571a21639c20067.zip
basic modeling
-rw-r--r--structure/assemblies/mainframe.scad36
-rw-r--r--structure/conf/parameters.scad31
-rw-r--r--structure/parts/crossbar.scad56
-rw-r--r--structure/parts/foot.scad23
-rw-r--r--structure/parts/stand.scad17
-rw-r--r--structure/parts/support_plate.scad20
6 files changed, 183 insertions, 0 deletions
diff --git a/structure/assemblies/mainframe.scad b/structure/assemblies/mainframe.scad
new file mode 100644
index 0000000..6ecde54
--- /dev/null
+++ b/structure/assemblies/mainframe.scad
@@ -0,0 +1,36 @@
+include <../conf/parameters.scad>
+use <../parts/crossbar.scad>
+use <../parts/support_plate.scad>
+use <../parts/stand.scad>
+use <../parts/foot.scad>
+
+$fn=10;
+
+explode=0;
+
+rotate([0,0,45])
+crossbar();
+
+translate([0,0,explode])
+rotate([180,0,-45])
+crossbar();
+
+translate([0,0,explode*2])
+translate([0,0,(frame_outer+support_height)/2])
+support_plate();
+
+translate([0,0,explode*-1])
+translate([0,0,-(frame_outer+support_height)/2])
+support_plate();
+
+translate([0,0,explode*-2])
+for (i = [0:3]) {
+rotate([0,0,i*90])
+translate([stand_width/2,stand_width/2,-stand_height/2])
+stand();
+}
+
+translate([0, stand_width/2, -stand_height])
+foot();
+translate([0, -stand_width/2, -stand_height])
+foot();
diff --git a/structure/conf/parameters.scad b/structure/conf/parameters.scad
new file mode 100644
index 0000000..214026a
--- /dev/null
+++ b/structure/conf/parameters.scad
@@ -0,0 +1,31 @@
+//rendering
+epsilon=0.01;
+
+//model
+frame_length=1000;
+frame_inner=19;
+frame_outer=20;
+
+support_width=100;
+support_height=0.2;
+support_inner=90;
+support_diameter=3;
+
+rack_width=150;
+rack_inner=140;
+rack_diameter=3;
+
+stand_height=200;
+stand_width=200;
+stand_diameter=5;
+stand_head_height=20;
+stand_head_diameter=4;
+
+foot_outer=12;
+foot_inner=10;
+foot_length=500;
+
+motor_hole_distance=450;
+motor_hole_diameter=12;
+motor_mount_distance=19;
+motor_mount_diameter=3; \ No newline at end of file
diff --git a/structure/parts/crossbar.scad b/structure/parts/crossbar.scad
new file mode 100644
index 0000000..8d87016
--- /dev/null
+++ b/structure/parts/crossbar.scad
@@ -0,0 +1,56 @@
+include <../conf/parameters.scad>
+
+module crossbar() {
+
+module bar(length,outer,inner) {
+ difference() {
+ cube([outer, outer, length], true);
+ cube([inner, inner, length], true);
+ translate([outer/2,0,0])
+ cube([outer, outer, outer], true);
+ }
+}
+
+plate_distance=support_inner*sqrt(2)/2;
+rack_distance=rack_inner*sqrt(2)/2;
+stand_distance=stand_width*sqrt(2)/2;
+
+difference() {
+
+ //bar
+ rotate([90,-90,90])
+ bar(frame_length, frame_outer, frame_inner);
+
+ //center hole
+ cylinder(frame_outer+epsilon,d=support_diameter,center=true);
+
+ for(i=[0:1]) {
+ rotate(i*180){
+
+ //plate screw hole
+ translate([plate_distance,0,0])
+ cylinder(frame_outer+epsilon,d=support_diameter,center=true);
+
+ //rack hole
+ translate([rack_distance,0,0])
+ cylinder(frame_outer+epsilon,d=rack_diameter,center=true);
+
+ //stand hole
+ translate([stand_distance,0,0])
+ cylinder(frame_outer+epsilon,d=stand_head_diameter,center=true);
+
+ //motor holes
+ translate([motor_hole_distance,0,0]){
+ cylinder(frame_outer+epsilon,d=motor_hole_diameter,center=true);
+ translate([motor_mount_distance/2,0,0])
+ cylinder(frame_outer+epsilon,d=motor_mount_diameter,center=true);
+ translate([-motor_mount_distance/2,0,0])
+ cylinder(frame_outer+epsilon,d=motor_mount_diameter,center=true);
+ }
+
+ }
+ }
+}
+}
+
+crossbar();
diff --git a/structure/parts/foot.scad b/structure/parts/foot.scad
new file mode 100644
index 0000000..ac513dd
--- /dev/null
+++ b/structure/parts/foot.scad
@@ -0,0 +1,23 @@
+include <../conf/parameters.scad>
+
+module foot() {
+
+color("white")
+difference() {
+
+ rotate([0,90,0])
+ difference() {
+ cylinder(foot_length,d=foot_outer, center=true);
+ cylinder(foot_length+epsilon,d=foot_inner, center=true);
+ }
+
+ translate([-stand_width/2,0,0])
+ cylinder(foot_outer,d=stand_diameter,center=false);
+
+ translate([stand_width/2,0,0])
+ cylinder(foot_outer,d=stand_diameter,center=false);
+
+}
+}
+
+foot();
diff --git a/structure/parts/stand.scad b/structure/parts/stand.scad
new file mode 100644
index 0000000..4bd9b64
--- /dev/null
+++ b/structure/parts/stand.scad
@@ -0,0 +1,17 @@
+include <../conf/parameters.scad>
+
+module stand() {
+
+union() {
+
+ color("silver")
+ cylinder(stand_height,d=stand_diameter, center=true);
+
+ color("grey")
+ translate([0,0,stand_height/2])
+ cylinder(stand_head_height,d=stand_head_diameter, center=false);
+
+}
+}
+
+stand();
diff --git a/structure/parts/support_plate.scad b/structure/parts/support_plate.scad
new file mode 100644
index 0000000..cbd440a
--- /dev/null
+++ b/structure/parts/support_plate.scad
@@ -0,0 +1,20 @@
+include <../conf/parameters.scad>
+
+module support_plate() {
+
+color("silver")
+difference() {
+
+ cube([support_width, support_width, support_height], true);
+
+ cylinder(support_height+epsilon,d=support_diameter, center=true);
+
+ for (i = [0 : 3]) {
+ rotate([0,0,i*90])
+ translate([support_inner/2, support_inner/2,0])
+ cylinder(support_height+epsilon,d=support_diameter, center=true);
+ }
+}
+}
+
+support_plate();