Skip to content

Instantly share code, notes, and snippets.

@benhowes
Created October 11, 2012 17:00
Show Gist options
  • Save benhowes/3873887 to your computer and use it in GitHub Desktop.
Save benhowes/3873887 to your computer and use it in GitHub Desktop.
Empty tree (unless upping max render elements)
include <MCAD/involute_gears.scad>
include <MCAD/bearing.scad>
include <MCAD/boxes.scad>
include <MCAD/nuts_and_bolts.scad>
include <MCAD/units.scad>
include <motor_gearbox.scad>
far_center = [60,0,0];
near_center = [-60,0,0];
end_cube_radius = 15;
stem_thickness = 7;
hole_offset = end_cube_radius-4.50;
clamp_offsets = [[ hole_offset, hole_offset, 0],
[ hole_offset, -hole_offset, 0],
[-hole_offset, hole_offset, 0],
[-hole_offset, -hole_offset, 0]];
geart = 12-2*epsilon;
module stem(t=0){
difference(){
union(){
//near hub
translate(near_center+[0,0,2.5]) roundedBox([30+2*t,30+2*t,(stem_thickness+5)+2*t],5+t,1);
//far hub
translate(far_center+[-7,0,0]) roundedBox([30+14+2*t,30+2*t,stem_thickness],5,1);
cube([100+2*t,30+2*t,stem_thickness],true);
}
//standard stem holes
translate([-10,0,0]) roundedBox([55,7.5,stem_thickness+1], 2,1);
//mounting helpers - holes all the way through
for(y = [-7.5, 7.5]){
for(x = [-40 : 10 : 20]){
translate([x,y,-5]){
//boltHole(3,length=100);
cylinder(r=1.5,h=10);
}
}
}
//bearing holes
for(bearing_pos = [near_center+[0,0,-stem_thickness/2+5.4],far_center+[0,0,-3.5+0.4]]){
bearing(pos=bearing_pos,outline=true);
translate(bearing_pos+[0,0,-10]) cylinder(r=4,h=20);
}
}
}
module s1_main_left(t=0){ //make me
difference(){
stem();
for(nut_side = [near_center+[0,0,stem_thickness/2+5+epsilon], far_center+[0,0,stem_thickness/2+epsilon]]){
for(nut_pos = clamp_offsets){
translate((nut_side+nut_pos-[0,0,-4*epsilon+METRIC_NUT_THICKNESS[3]])){
nutHole(3);
translate([0,0,-10]) cylinder(r=1.5,h=20);//boltHole(3,length=20);
}
}
}
}
}
module s1_main_right(t=0){ //make me
difference(){
union(){
stem();
translate(near_center) difference(){
translate([0,0,-stem_thickness/2])
gear(number_of_teeth= 40,circular_pitch=270, gear_thickness=geart,
hub_thickness=geart, rim_thickness=geart, bore_diameter=0,
circles = 4);
translate([10,0,0]) roundedBox([50+2*t,30+2*t,(stem_thickness+20)],5+t,1);
translate([30,0,0]) cube([42.5,70,20],center=true);
}
}
for(nut_side = [near_center+[0,0,stem_thickness/2+5+epsilon], far_center+[0,0,stem_thickness/2+epsilon]]){
for(nut_pos = clamp_offsets){
translate((nut_side+nut_pos-[0,0,-4*epsilon+METRIC_NUT_THICKNESS[3]])){
translate([0,0,epsilon])
rotate([180,0,0])
boltHole(3,length=20);
}
}
}
//motor bit
translate(far_center-[30,0,20]) motor_gearbox(true);
}
}
module s1_main_middle(t=0){ //make me
difference(){
roundedBox([30+2*t,30+2*t,40-2*stem_thickness],5+t,1);
for(hole_pos = clamp_offsets){
translate(hole_pos)
cylinder(r=1.5, h=60, center=true);
}
cylinder(r=4,h=50,center=true);
}
}
$fn=30;
module section_1_assembled(){
translate([0,0, 40-stem_thickness]) s1_main_left();
rotate([180, 0, 0]) s1_main_right();
translate([0,0,(40-stem_thickness)/2]){
translate(near_center) s1_main_middle();
translate(far_center) s1_main_middle();
}
}
section_1_assembled();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment