Skip to content

Instantly share code, notes, and snippets.

@zgyarmati
Created December 25, 2022 13:48
Show Gist options
  • Save zgyarmati/e82c8e40b0c77b467d46652b19533bcf to your computer and use it in GitHub Desktop.
Save zgyarmati/e82c8e40b0c77b467d46652b19533bcf to your computer and use it in GitHub Desktop.
// https://www.youtube.com/watch?v=gpeFo8JHxuw&ab_channel=mathcodeprint
$fn=50;
CENTER_BEARING_SIZE=22;
ARM_DISTANCE=50;
WEIGHT_SIZE=6;
WEIGHT_FACES=6;
NUM_ARMS=3;
for( i=[1:1:NUM_ARMS])
{
rotate([0,0,i*360/NUM_ARMS]) spinner_arm();
}
module spinner_arm()
{
difference(){
difference(){
difference(){
hull()
{
// Center hub
cylinder(r=CENTER_BEARING_SIZE/2+5,h=8,center=true);
// Shape on End of the arm
translate([ARM_DISTANCE,0,0]) cylinder(r=CENTER_BEARING_SIZE/2,h=8,center=true);
}
//Material removed for bearing
cylinder(r=CENTER_BEARING_SIZE/2,h=11,center=true);
}
//Material removed for apearance
scale([2,1,1]){
translate([ARM_DISTANCE/3,ARM_DISTANCE/2,0]) cylinder(r=ARM_DISTANCE/3, h=20, center=true);
translate([ARM_DISTANCE/3,-ARM_DISTANCE/2,0]) cylinder(r=ARM_DISTANCE/3, h=20, center=true);
}
}
//Material removed for weights
translate([ARM_DISTANCE,0,2]) cylinder(r=WEIGHT_SIZE, h=10, center=true, $fn=WEIGHT_FACES);
translate([ARM_DISTANCE,0,-1]) cylinder(r=WEIGHT_SIZE/2, h=10, center=true);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment