Simple Machines

Type: Investigation
Theme: Engineering
Grades: 5, 6, 7, 8, 9, 10
Learning Target: Students will collaborate to produce a simple machine with moving parts.
Instructions
- Select one or more partners (you may work alone).
- Design a plan for your group's simple machine. Collaborate on a detailed sketch. Please take note who will produce which component.
- Develop your OpenSCAD component. Use inline comments to tell about what your code does and who you are.
- Combine all component code into one simple machine. Test and refine with animation turned on (variable $t must be in your code).
- Submissions
- A video or screen recording of your machine in action. If possible, please use Microsoft Stream. You are not required to create a Sway or PowerPoint.
- A detailed sketch, including a list of who created which part in your group's machine. Each student must create at least one part of the machine. Machine must contain a minimum of two moving parts.
- Please also submit the code. You must create your own code. However, you may modify existing open-source code for an individual component of your machine.
OpenSCAD
OpenSCAD Example Code:
Variable $t is reserved for the animation time ($t).
//three gears//to animate > View > Animate. Add a start time, such as 0. Set FPS to 24 or so. Set Steps to desired number, try 100.
$gear1 = 20;
$gear2=8;
//gear 1
rotate([0,0,$t*360])for(i=[1:1:$gear1]){
rotate([0,0,(360/$gear1)*i])
translate([$gear1*.7,0]) linear_extrude(2)
circle(3,$fn=3);
}
//gear 2
translate([22,4])
rotate([0,0,-$t*360*$gear1/$gear2])
color("red")
for(i=[1:1:$gear2]){
rotate([0,0,16+(360/$gear2)*i])
translate([$gear2*.7,0]) linear_extrude(2)
circle(3,$fn=3);
}
//gear 3
translate([4,-22])
rotate([0,0,-$t*360*$gear1/$gear2])
color("red")
for(i=[1:1:$gear2]){
rotate([0,0,16+(360/$gear2)*i])
translate([$gear2*.7,0]) linear_extrude(2)
circle(3,$fn=3);
}
//square gear 1
rotate([0,0,$t*360])color("green")for(i=[1:1:12]){
rotate([0,0,(360/12)*i])
cube([2,16,2],true);
rotate([0,0,(360/24)+(360/12)*i])
cube([2,12,2],true);
}
//spherical gear
rotate([0,0,0])translate([12.2,0,0])rotate([0,0,-$t*360])color("red")
for(i=[1:1:6]){
rotate([90,90,(360/24)+(360/6)*i])
cylinder(h=.7, r1=6, r2=6);
//cube([2,18,2],true);
}
//coil and ball
//set Time = 0, FPS = 20, Steps = 20
$coils=4;
$spring=0;
$height = sin(100*3.1415*$t)+2;
$height_ball = sin(100*3.1415*$t/2)+2;
$ball_deform = sin(4*3.1415*$t)+.8;
color("red")linear_extrude(height = $height, center = false, convexity = 2, twist = 360*$coils, $fn = 100)
translate([1, 0, 0])
circle(r = .3);
color("DeepSkyBlue")translate([0, 0, 1.3+$height_ball])scale([1,1,$ball_deform])sphere(2.2, $fn=50);
See https://www.thingiverse.com/groups/openscad/things for more objects.
Exit Ticket
CCSS Math Practice
- I can make sense of problems and persevere in solving them.
- I can attend to precision.
NGSS Crosscutting Concepts
- Cause and Effect
- Scale, Proportion, and Quantity
- Structure and Function