$fn=150; wheel_width = 15; wheel_dia=75; bearing_outer_dia = 30; bearing_width=9; bearing_shoulder = 1.5; rope_dia = 8; opening_angle = 8; rounding_dia=3; rotate_extrude(angle=360){ difference(){ translate([0,-wheel_width/2,0])square([wheel_dia/2 , wheel_width]); translate([wheel_dia/2 - rope_dia/2,0,0])circle(d=rope_dia); translate([wheel_dia/2- rope_dia/2,-rope_dia/2,0]) rotate([0,0,opening_angle]) square([rope_dia, rope_dia]); translate([wheel_dia/2- rope_dia/2,-rope_dia/2,0]) rotate([0,0,-opening_angle]) square([rope_dia, rope_dia]); translate([0,-bearing_width/2,0])square([bearing_outer_dia/2, bearing_width]); translate([0,0,0])square([bearing_outer_dia/2, bearing_width]); translate([0,-10,0])square([bearing_outer_dia/2 - bearing_shoulder, bearing_width]); difference(){ translate([wheel_dia/2-rounding_dia/2,wheel_width/2 - rounding_dia,0])square([rounding_dia/2 , rounding_dia]); translate([wheel_dia/2-rounding_dia/2,wheel_width/2 - rounding_dia/2,0])circle(d=rounding_dia); } difference(){ translate([wheel_dia/2-rounding_dia/2,-wheel_width/2 ,0])square([rounding_dia/2 , rounding_dia]); translate([wheel_dia/2-rounding_dia/2,-wheel_width/2 + rounding_dia/2,0])circle(d=rounding_dia); } } }