From b86d44bced6aaf0a9ca7bb203571a21639c20067 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Sun, 1 Mar 2015 23:31:47 +0100 Subject: basic modeling --- structure/assemblies/mainframe.scad | 36 ++++++++++++++++++++++++ structure/conf/parameters.scad | 31 ++++++++++++++++++++ structure/parts/crossbar.scad | 56 +++++++++++++++++++++++++++++++++++++ structure/parts/foot.scad | 23 +++++++++++++++ structure/parts/stand.scad | 17 +++++++++++ structure/parts/support_plate.scad | 20 +++++++++++++ 6 files changed, 183 insertions(+) create mode 100644 structure/assemblies/mainframe.scad create mode 100644 structure/conf/parameters.scad create mode 100644 structure/parts/crossbar.scad create mode 100644 structure/parts/foot.scad create mode 100644 structure/parts/stand.scad create mode 100644 structure/parts/support_plate.scad 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(); -- cgit v1.2.3