About this 3D model
This is my design of a toy meant to teach children about the effects of an inclined plane on a rope/pulley system and the forces involved. There are 4 3D printed parts in total and 7 externally sourced common hardware materials. OpenSCAD Source Code NOTE: Each part is a separate file Slotted Lever: L1=175; //Total LengthW1=75;H1=10;R1=H1/2-2;L3=L1-4*H1;W3=H1-4; scale([0.6,0.6,0.6])translate([0,0,H1])rotate([90,0,0])union(){ difference(){ union(){ cube([L1-R1,H1,W1-2*H1],center=false); translate([0,H1/2,0]) cylinder(h=W1-2*H1, r=H1/2,center=false, $fn=100); translate([L1-R1,H1/2,0]) cylinder(h=W1-2*H1, r=H1/2,center=false); };// translate([0,H1/2,-1])// cylinder(h=W1-2*H1+2, r=R1,center=false); translate([L1-R1,H1/2,-1]) cylinder(h=W1-2*H1+2, r=R1,center=false); translate([2*H1,-1,W1/2-1.5*H1]) cube([L3,H1+2,H1],center=false); translate([2*H1,H1/2,W1/2-H1]) rotate([90,0,0]) cylinder(h=H1+2,r=H1/2,center=true); translate([2*H1+L3,H1/2,W1/2-H1]) rotate([90,0,0]) cylinder(h=H1+2,r=H1/2,center=true); translate([-R1-7,-1,W1/2-1.5*H1]) cube([H1+2,H1+2,H1],center=false); };translate([2,H1/2,1.5*H1])cylinder(h=2*H1, r=H1/2,center=false);}; Base: L1=150; //length of the large cube/baseW1=75; //width " " " " "H1=10; //Height " " " " "R1=H1/2-2; //Radius of the hole //BASEscale([0.6,0.6,0.6])difference(){difference(){union(){ //1union(){ //2difference(){ //1difference(){ //2 translate([0,-W1/2,0]) union(){ //3 cube([L1,W1,H1],center=false); translate([L1-H1,0,H1]) cube([H1,W1,H1],center=false); }; //union 3 translate([L1-1.5*R1,W1/2+1,H1*1.5]) rotate([90,0,0]) cylinder(h=W1+5,r=R1); }; //difference 2 translate([L1-H1-.5,-W1/2+H1,H1]) cube([H1+1,W1-2*H1,H1+1],center=false); }; //difference 1 translate([0,-W1/2-H1,0])cube([L1,H1,H1], center=false);}; //union 2 translate([L1,-W1/2-H1,0])cube([50,W1+H1,H1],center=false);}; //union 1 translate([L1-60,0,-1]) cylinder(h=H1+2,r=4.5,center=false); translate([L1-60,0,-1]) cylinder(h=20,r=8,center=false);};//translate([0,-5,0])//cube([150,60,40],center=true);//translate([120,0,0])//cube([35,60,40],center=true);//translate([200,0,0])//cube([}; //ARM //L3=L1-4*H1;//W3=H1-4;//translate([0,25,H1])//rotate([90,0,0])//union(){ //difference(){ // union(){ // cube([L1-R1,H1,W1-2*H1-4],center=false); // translate([0,H1/2,0]) // cylinder(h=W1-2*H1-4, r=H1/2,center=false, $fn=100); // translate([L1-R1,H1/2,0]) // cylinder(h=W1-2*H1-4, r=H1/2,center=false); // }; //union// translate([0,H1/2,-1])// cylinder(h=W1-2*H1+2, r=R1,center=false); //opposite end screw hole // translate([L1-R1,H1/2,-1]) // cylinder(h=W1-2*H1+2, r=R1,center=false); //slot // translate([2*H1,-1,W1/2-1.5*H1]) // cube([L3,H1+2,H1],center=false); //slot // translate([L1/2*H1,-1,W1/2-1.5*H1]) // cube([H1,H1+2,3*H1],center=false); // translate([2*H1,H1/2,W1/2-H1]) //slot // rotate([90,0,0]) // cylinder(h=H1+2,r=H1/2,center=true); // translate([2*H1+L3,H1/2,W1/2-H1]) // rotate([90,0,0]) //cylinder(h=H1+2,r=H1/2,center=true); //string guide // translate([-R1-7,-1,W1/2-1.5*H1]) // cube([H1+2,H1+2,H1],center=false); //string guide // }; //difference//translate([2,H1/2,1.5*H1])//cylinder(h=2*H1, r=H1/2,center=false); //string guide//}; //union Crank Catch: L1=150; //length of the large cube/baseW1=75; //width " " " " "H1=10; //Height " " " " "R1=H1/2-2; //Radius of the hole //BASEscale([0.6,0.6,0.6])difference(){difference(){union(){ //1union(){ //2difference(){ //1difference(){ //2 translate([0,-W1/2,0]) union(){ //3 cube([L1,W1,H1],center=false); translate([L1-H1,0,H1]) cube([H1,W1,H1],center=false); }; //union 3 translate([L1-1.5*R1,W1/2+1,H1*1.5]) rotate([90,0,0]) cylinder(h=W1+5,r=R1); }; //difference 2 translate([L1-H1-.5,-W1/2+H1,H1]) cube([H1+1,W1-2*H1,H1+1],center=false); }; //difference 1 translate([0,-W1/2-H1,0])cube([L1,H1,H1], center=false);}; //union 2 translate([L1,-W1/2-H1,0])cube([50,W1+H1,H1],center=false);}; //union 1 translate([L1-60,0,-1]) cylinder(h=H1+2,r=4.5,center=false); translate([L1-60,0,-1]) cylinder(h=20,r=8,center=false);};//translate([0,-5,0])//cube([150,60,40],center=true);//translate([120,0,0])//cube([35,60,40],center=true);//translate([200,0,0])//cube([}; //ARM //L3=L1-4*H1;//W3=H1-4;//translate([0,25,H1])//rotate([90,0,0])//union(){ //difference(){ // union(){ // cube([L1-R1,H1,W1-2*H1-4],center=false); // translate([0,H1/2,0]) // cylinder(h=W1-2*H1-4, r=H1/2,center=false, $fn=100); // translate([L1-R1,H1/2,0]) // cylinder(h=W1-2*H1-4, r=H1/2,center=false); // }; //union// translate([0,H1/2,-1])// cylinder(h=W1-2*H1+2, r=R1,center=false); //opposite end screw hole // translate([L1-R1,H1/2,-1]) // cylinder(h=W1-2*H1+2, r=R1,center=false); //slot // translate([2*H1,-1,W1/2-1.5*H1]) // cube([L3,H1+2,H1],center=false); //slot // translate([L1/2*H1,-1,W1/2-1.5*H1]) // cube([H1,H1+2,3*H1],center=false); // translate([2*H1,H1/2,W1/2-H1]) //slot // rotate([90,0,0]) // cylinder(h=H1+2,r=H1/2,center=true); // translate([2*H1+L3,H1/2,W1/2-H1]) // rotate([90,0,0]) //cylinder(h=H1+2,r=H1/2,center=true); //s