Created
March 17, 2022 01:19
-
-
Save meunomemauricio/aee21b97407438cb7cc15d473f34c155 to your computer and use it in GitHub Desktop.
Simple Pulley SCAD Design.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Simple Pulley. */ | |
$fa = 1; | |
$fs = .4; | |
// Disk Dimensions | |
disk_r = 15; | |
disk_d = 10; | |
torus_center_r = disk_r + 4; | |
torus_tube_r = disk_d/2 + 2; | |
// All Dimensions in mm | |
// Main Body Dimensions | |
body_w = 10; | |
body_d = 20; // Max is 25, the size of the screw | |
body_h = 25; | |
body_top_r = 2.5; | |
body_botton_r = disk_r; | |
// Screw Dimensions | |
screw_head_d = 2.6; | |
screw_head_r = 6.2/2 + 0.2; | |
nut_d = 2.2; | |
nut_r = 6.2/2 + 0.2; | |
screw_d = body_d; | |
screw_r = 3.0/2 + 0.2; | |
// Disk Insert Dimensions | |
ins_w = body_botton_r * 2; | |
ins_h_ofs = 2/3 * body_h; | |
ins_r_cl = 1.5; | |
ins_r = disk_d/2 + ins_r_cl; | |
// Hook Dimensions | |
hook_in_r = 4.5; | |
hook_out_r = hook_in_r + 2.5; | |
hook_d = 4; | |
/* Main Body. */ | |
module body() { | |
hull() { | |
translate([body_w/2, body_d/2, body_h]) | |
rotate([90, 0, 0]) | |
cylinder(h=body_d, r=body_top_r); | |
translate([-body_w/2, body_d/2, body_h]) | |
rotate([90, 0, 0]) | |
cylinder(h=body_d, r=body_top_r); | |
translate([0, body_d/2, 0]) | |
rotate([90, 0, 0]) | |
cylinder(h=body_d, r=body_botton_r); | |
} | |
} | |
/* Disk Insert. */ | |
module disk_insert() { | |
hull() { | |
translate([-ins_w/2, 0, ins_h_ofs]) | |
rotate([90, 0, 90]) | |
cylinder(h=ins_w, r=ins_r); | |
translate([-ins_w/2, 0, -body_h]) | |
rotate([90, 0, 90]) | |
cylinder(h=ins_w, r=ins_r); | |
} | |
} | |
/* Screw Insert. */ | |
module screw_insert() { | |
// Central Hole | |
translate([0, screw_d/2 + 1, 0]) | |
rotate([90, 0, 0]) | |
cylinder(r=screw_r, h=screw_d + 2); | |
// Screw Head | |
translate([0, screw_d/2 + .1, 0]) | |
rotate([90, 0, 0]) | |
cylinder(r=screw_head_r, h=screw_head_d); | |
// Hex Nut | |
translate([0, -(screw_d/2 - screw_head_d + .1), 0]) | |
rotate([90, 0, 0]) | |
cylinder(r=screw_head_r, h=screw_head_d, $fn=6); | |
} | |
/* Torus. */ | |
module torus(center_r, tube_r) { | |
rotate_extrude(convexity = 5) | |
translate([center_r, 0, 0]) | |
circle(r=tube_r); | |
} | |
/* Pulley Disk. */ | |
module disk() { | |
difference() { | |
translate([0, disk_d/2, 0]) | |
rotate([90, 0, 0]) | |
cylinder(h=disk_d, r=disk_r); | |
rotate([90, 0, 0]) | |
torus(center_r=torus_center_r, tube_r=torus_tube_r); | |
} | |
} | |
/* Hook. */ | |
module hook() { | |
translate([0, hook_d/2, body_h + body_top_r + hook_in_r/2]) | |
rotate([90, 0, 0]) | |
difference() { | |
cylinder(h=hook_d, r=hook_out_r); | |
translate([0, 0, -1]) cylinder(h=hook_d + 2, r=hook_in_r); // Hole | |
} | |
} | |
/* Assembly. */ | |
color([0.8,0.8,0.5]) { | |
difference() { | |
union() { | |
hook(); | |
body(); | |
} | |
disk_insert(); | |
screw_insert(); | |
} | |
} | |
color([0.3,0.8,0.8]) { | |
difference() { | |
disk(); | |
screw_insert(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment