Skip to content

Instantly share code, notes, and snippets.

@alannakelly
Created December 11, 2017 00:41
Show Gist options
  • Save alannakelly/03f5872ae18c516591f54c0b6fae9f94 to your computer and use it in GitHub Desktop.
Save alannakelly/03f5872ae18c516591f54c0b6fae9f94 to your computer and use it in GitHub Desktop.
steam_driving_wheel_2.scad
$fn = 50;
/********************************************************************
* Experimenting with creating steam locomotive driving wheels in *
* OpenSCAD *
* *
* Author: Alanna Kelly *
* Contact: https://twitter.com/sparklyparticle *
* License: Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) *
********************************************************************/
use <arc.scad>; //https://www.thingiverse.com/thing:1092611
use <scad-utils/morphology.scad> //https://github.com/OskarLinde/scad-utils/
//Outline of driving wheel
module driving_wheel_outline(size=38) {
spokes = max(round(size / 4),8);
angle = 360/spokes;
radius = size * 0.5;
hub_size = size * 0.25;
hub_radius = radius * 0.25;
inner_rim_radius = radius * 0.85;
counterweight_radius = radius *0.65;
roundness = min(0.8,(1/38) * radius);
//Wheel
difference() {
circle(radius);
union() {
for(a=[angle:angle:360]){
rotate([0,0,a]){
rounding(r=roundness)
arc(hub_radius,(inner_rim_radius-hub_radius),angle*0.8);
}
}
}
}
//Counterweight
rotate([0,0,-180]){
arc(counterweight_radius,inner_rim_radius-
counterweight_radius+0.5,angle * 3);
}
//Hub and crank pin hub
hull() {
circle(hub_radius);
translate([hub_size*0.75,0,0]){
circle(hub_radius*0.5);
}
}
}
//Bores for axle and crank_pin
module axle_and_crank_pin_holes(size=38) {
radius = size * 0.5;
hub_size = size * 0.25;
hub_radius = radius * 0.25;
circle(hub_radius*.5);
translate([hub_size*0.75,0,0]){
circle(hub_radius*0.25);
}
}
//A steam engine driving wheel
module driving_wheel(size=38,height=2) {
big_d = size+((size/20)*2);
difference() {
cylinder(d1=size+((size/20)*2),d2=size,h=2);
cylinder(d=size,h=2);
}
translate([0,0,-0.5]){
difference() {
cylinder(d=big_d*1.05,h=0.5);
cylinder(d=big_d,h=0.5);
}
}
linear_extrude(height=2){
difference() {
driving_wheel_outline(size);
axle_and_crank_pin_holes(size);
}
}
}
driving_wheel(38);
@alannakelly
Copy link
Author

screenshot 2017-12-11 00 28 46

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment