maurer.gg
Home
Posts
Models
SCAD Sandbox
Sandbox
tread_link
$fn=100; link_l=24; link_w=48; link_d=8; tooth_hole_l=link_l/4; tooth_hole_w=link_w/4; pin_diameter=4; thread_diameter=2.6; tpl=5; tread_w=1.75; tread_d=1; link_w_inset=link_w/4; link_l_inset=link_d; link_d_inset=link_d+tread_d; tread_gap= (link_l-link_d)/tpl; module link_base(){ hull(){ circle(r=link_d/2); translate([link_l-link_d,0,0]) circle(r=link_d/2); } } module chevron(s,l, a){ union(){ rotate([-(90-(a/2)),0,0]) translate([0,-s/2,-l/2]) cube([s,s,l],center=true); rotate([90-(a/2),0,0]) translate([0,-s/2,l/2]) cube([s,s,l],center=true); } } treads(4); module treads(n){ tread_link(); for(i=[1:1:(n-1)]){ translate([(-link_l+link_d)*i,0,0]) tread_link(); translate([(-link_l+link_d)*(i-1),0,0]) pin(); } } module master_pin(){ } module pin(){ union(){ cylinder(h=link_w,r=pin_diameter/2); union(){ cylinder(h=(link_w_inset/4)-0.2,r=(pin_diameter/2)*1.5); translate([-pin_diameter*0.75,-link_d/2,0]) cube([pin_diameter*1.5,link_d/2,(link_w_inset/4)-0.2]); } translate([0,0,(link_w-(link_w_inset/4))+0.2]) union(){ cylinder(h=(link_w_inset/4)-0.2,r=(pin_diameter/2)*1.5); translate([-pin_diameter*0.75,-link_d/2,0]) cube([pin_diameter*1.5,link_d/2,(link_w_inset/4)-0.2]); } } } module tread_pattern(){ union(){ translate([0,link_w/2,-.6]) rotate([-90,0,0]) chevron(1,link_l,135); translate([0,link_w/2,5]) rotate([-90,0,0]) chevron(1,link_l/1.1,135); } } module tread_link(){ difference(){ union(){ linear_extrude(link_w) link_base(); rotate([90,0,90]) translate([(link_d/2)+0.5,0,0]) tread_pattern(); } union(){ translate([-link_d/2,-link_d/2-tread_d,-1]) cube([link_l_inset+0.2,link_d_inset,link_w_inset+1.2]); translate([-link_d/2,-link_d/2-tread_d,link_w-link_w_inset-0.2]) cube([link_l_inset+0.2,link_d_inset,link_w_inset+1]); translate([0,0,link_w_inset]) cylinder(h=link_w/2, r=(pin_diameter+0.4)/2); } union(){ translate([link_l-link_d/2-link_l_inset-0.2,-link_d/2-tread_d,link_w/2-(link_w_inset)]) cube([link_l_inset+1,link_d_inset,2*(link_w_inset)]); translate([link_l-link_d,0,-1]) cylinder(h=1+(link_w)/2, r=(pin_diameter+0.4)/2); translate([link_l-link_d,0,link_w/2]) cylinder(h=(link_w-link_w_inset/2), r=(pin_diameter+0.4)/2); } translate([tooth_hole_l/2,-link_d/2-tread_d-link_d_inset/2,link_w/2-tooth_hole_w/2]) cube([tooth_hole_l,link_d_inset*2,tooth_hole_w]); translate([link_d+link_d/2,-link_d/2,0]) cube([link_d,link_d,link_w_inset/4]); translate([link_d+link_d/2,-link_d/2,link_w-(link_w_inset/4)]) cube([link_d,link_d,link_w_inset/4]); } }
Render