now functional and animated
This commit is contained in:
@@ -1,20 +1,33 @@
|
|||||||
$fn=128;
|
$fn=128;
|
||||||
|
|
||||||
|
module coupler_holder(){
|
||||||
|
difference(){
|
||||||
|
translate([0,-2,0])cube([3.5,4,2.2]);
|
||||||
|
translate([-1,-2.5/2,0.4])cube([5,2.5,1.2]);
|
||||||
|
translate([2.5,-5/2,0.7])cube([2,5,0.6]);
|
||||||
|
translate([1.3,-5/2,0.8])cube([2,5,0.4]);
|
||||||
|
translate([2.5,0,1])rotate([90,0,0])cylinder(d=0.8,h=5,center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module fixed_part(){
|
module fixed_part(){
|
||||||
l1=17.5;
|
l1=17.5;
|
||||||
l2=25;
|
l2=25;
|
||||||
l3=12.8;
|
l3=12.8;
|
||||||
difference(){
|
difference(){
|
||||||
translate([0,0,0.2])cube([l2,20.5,1.6],true);
|
union(){
|
||||||
|
translate([0,0,0.2])cube([l2,20.5,1.6],true);
|
||||||
|
translate([3,0,-3.2])cylinder(d=5,h=3);
|
||||||
|
}
|
||||||
|
|
||||||
translate([(l2-l1)/2 -1.6,0,0.5]) intersection(){
|
translate([(l2-l1)/2 -1.6,0,0.8]) intersection(){
|
||||||
translate([l1/2,l1/2,0])cylinder(r=l1,h=2,center=true);
|
translate([l1/2,l1/2,0])cylinder(r=l1,h=2,center=true);
|
||||||
translate([l1/2,-l1/2,0])cylinder(r=l1,h=2,center=true);
|
translate([l1/2,-l1/2,0])cylinder(r=l1,h=2,center=true);
|
||||||
cube([l1,l1,3],true);
|
cube([l1,l1,3],true);
|
||||||
}
|
}
|
||||||
translate([-2.4,0,0.5])cube([13,16.6,2],true);
|
translate([-2.4,0,0.8])cube([13,16.6,2],true);
|
||||||
translate([-6.4,0,0])cube([5,18,5],true);
|
translate([-6.4,0,0])cube([5,18,5],true);
|
||||||
translate([-9.3,0,0.5])cube([5,l3,2],true);
|
translate([-9.3,0,0.8])cube([5,l3,2],true);
|
||||||
intersection(){
|
intersection(){
|
||||||
translate([-8,0,0])cube([8,l3,2],true);
|
translate([-8,0,0])cube([8,l3,2],true);
|
||||||
union(){
|
union(){
|
||||||
@@ -22,15 +35,62 @@ module fixed_part(){
|
|||||||
translate([l2/2-1.6,-l1/2,0])cylinder(h=3,d=44,center=true);
|
translate([l2/2-1.6,-l1/2,0])cylinder(h=3,d=44,center=true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
translate([3,0,0])cylinder(d=2,h=10,center=true);
|
||||||
|
translate([3,0,-1])cylinder(d=3,h=10);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module moving_part(){
|
module moving_part(){
|
||||||
|
l1=17;
|
||||||
|
translate([25/2-1.6,0,0.4]){
|
||||||
|
intersection(){
|
||||||
|
translate([-0.5,0,0])cube([1,l1,0.8],true);
|
||||||
|
cylinder(d=l1,h=1,center=true);
|
||||||
|
}
|
||||||
|
hull(){
|
||||||
|
translate([-20,0,0])cylinder(d=1.6,h=0.8,center=true);
|
||||||
|
translate([-1,-4,0])cylinder(d=1,h=0.8,center=true);
|
||||||
|
translate([-1, 4,0])cylinder(d=1,h=0.8,center=true);
|
||||||
|
}
|
||||||
|
translate([-19.3,0,-1])cylinder(d=1.6,h=1,center=true);
|
||||||
|
translate([-19.3,0,-1.5])sphere(d=1.6);
|
||||||
|
translate([-20,0,-3.8]) cylinder(d=1.6,h=5.6,center=true);
|
||||||
|
hull(){
|
||||||
|
translate([-20,0,-6.5]) cylinder(d=1.6,h=0.1,center=true);
|
||||||
|
translate([-18,0,0]) cylinder(d=1.6,h=0.1,center=true);
|
||||||
|
}
|
||||||
|
translate([-21.5,0,-6.6])rotate([0,0,180])coupler_holder();
|
||||||
|
hull(){
|
||||||
|
translate([-22.5,-2,-6.6])cube([1,4,2.2]);
|
||||||
|
translate([-20,0,-5.1]) cylinder(d=1.6,h=3,center=true);
|
||||||
|
}
|
||||||
|
translate([-13,-7.7,0])cylinder(d=1,h=0.8,center=true);
|
||||||
|
hull(){
|
||||||
|
translate([-13,-7.7,0])cube([0.6,0.6,0.8],center=true);
|
||||||
|
translate([-1,-4.5,0])cube([0.6,0.6,0.8],center=true);
|
||||||
|
}
|
||||||
|
translate([-13,7.7,0])cylinder(d=1,h=0.8,center=true);
|
||||||
|
hull(){
|
||||||
|
translate([-13,7.7,0])cube([0.6,0.6,0.8],center=true);
|
||||||
|
translate([-1,4.5,0])cube([0.6,0.6,0.8],center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module kinematik(){
|
module kinematik(angle){
|
||||||
|
angle = ($t - 0.5)*30;
|
||||||
|
|
||||||
fixed_part();
|
fixed_part();
|
||||||
moving_part();
|
v1 = [-10.9,-8.5,0];
|
||||||
|
v2 = [-10.9, 8.5,0];
|
||||||
|
|
||||||
|
if (angle<0){
|
||||||
|
translate(-v1)rotate([0,0,angle])translate(v1)moving_part();
|
||||||
|
} else {
|
||||||
|
translate(-v2)rotate([0,0,angle])translate(v2)moving_part();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
kinematik();
|
kinematik();
|
||||||
|
|||||||
Reference in New Issue
Block a user