maurer.gg
Home
Posts
Models
SCAD Sandbox
Sandbox
prop
// Parameters blade_length = 100; // Length of each blade blade_width = 20; // Width of the blade at the base blade_taper = 0.7; // Taper factor (fraction of width at tip) twist_angle = 20; // Total twist angle per blade hub_diameter = 20; // Radius of the central hub shaft_diameter = 2; thickness = 2; // Thickness of blades and counterweight cw_length = blade_length/2; // Length of each blade cw_width = 10; // Width of the blade at the base cw_taper = 1.2; // Taper factor (fraction of width at tip) cw_twist_angle = 0; // Total twist angle per blade // Module to create a single blade module propeller_blade() { hull() { for (i = [0:10]) { let(fraction = i / 10) { translate([0, 0, blade_length * fraction+hub_diameter/10]) rotate([0, 0, twist_angle * fraction]) scale([1 - fraction * (1 - blade_taper), 1, 1]) translate([-blade_width / 2, -thickness / 2, 0]) cube([blade_width, thickness, 1]); } } } } // Module for the central hub module hub() { difference(){ cylinder(h = thickness * 2, d= hub_diameter, $fn=120); cylinder(h = thickness * 2, d = shaft_diameter); } } // Module for the counterweight module counterweight() { hull() { for (i = [0:10]) { let(fraction = i / 5) { rotate([0, 0, cw_twist_angle * fraction]) scale([1 - fraction * (1 - cw_taper), 1, 1]) translate([-cw_width / 2, -thickness / 2, 0]) cube([cw_width, thickness, 1]); } } translate([0, -thickness / 2, cw_length]) sphere(cw_width, $fn=9); } } // Combine the blades, hub, and counterweight module two_blade_propeller_with_counterweight() { translate([0,0,-thickness]) hub(); // First blade rotate([90, 0, 120]) propeller_blade(); // Second blade, opposite direction rotate([90 , 0, 60]) propeller_blade(); // Counterweight, perpendicular to the blades rotate([90, 0, 270 ]) counterweight(); } // Render the 2-blade propeller two_blade_propeller_with_counterweight();
Render