You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.6 KiB
88 lines
2.6 KiB
include <library/box.scad>
|
|
|
|
$fn = 100;
|
|
|
|
|
|
|
|
smallLenght = 10;
|
|
smallWidth = 10;
|
|
wall =2;
|
|
circleDia = 27;
|
|
|
|
//assembly();
|
|
|
|
module assembly()
|
|
{
|
|
fixation();
|
|
translate([18+5,0,-(50-5)])rotate([0,90,0])arm();
|
|
translate([10/2+wall,-10,-(100-10)])rotate([-45,90,0])attachment();
|
|
|
|
}
|
|
|
|
|
|
|
|
module fixation()
|
|
{
|
|
lenght = 20;
|
|
width = 20;
|
|
height = 10;
|
|
|
|
exRay = 0;
|
|
inRay = 2;
|
|
|
|
difference()
|
|
{
|
|
union()
|
|
{
|
|
keyCubeEmpty(lenght,width,height,wall,exRay,inRay,tFlat = true, Iflat = true, ce = true);
|
|
translate([lenght/2+smallLenght/2-wall,0,0])keyCubeEmpty(smallLenght,smallWidth,height,wall,exRay,0,tFlat = true, Iflat = true, ce = true);
|
|
}
|
|
|
|
rotate([0,0,90])translate([-(smallLenght-wall*2)/2,-width/2,-height/2+wall])cube([smallWidth-wall*2,wall,height-wall]);
|
|
|
|
translate([lenght/2+smallLenght-wall*2,0,0])rotate([0,90,0])cylinder(d=2.8,h=wall);
|
|
translate([0,0,-height/2])cylinder(d=3.1,h=wall);
|
|
translate([-(smallWidth-wall*2)/2,width/2-wall,-height/2+wall])rotate([0,0,0])cube([smallWidth-wall*2,wall,height-wall]);
|
|
translate([-(smallWidth-wall*2)/2,-width/2,-height/2+wall])rotate([0,0,0])cube([smallWidth-wall*2,wall,height-wall]);
|
|
}
|
|
}
|
|
|
|
//arm();
|
|
module arm()
|
|
{
|
|
lenght = 100;
|
|
width = smallWidth;
|
|
height = 10;
|
|
wall =2;
|
|
exRay = 0;
|
|
inRay = 2;
|
|
|
|
smallLenght = 10;
|
|
smallWidth = 10;
|
|
difference()
|
|
{
|
|
keyCubeEmpty(lenght,width,height,wall,exRay,inRay,tFlat = true, Iflat = true, ce = true);
|
|
translate([lenght/2 - width/2,0,-height/2+wall/2])cylinder(d = 3.1, h=wall, center = true);
|
|
translate([-(lenght/2 - width/2),0,-height/2+wall/2])cylinder(d = 3.1, h=wall, center = true);
|
|
translate([-(lenght/2 - wall/2),0,height/2-2.5])cube([wall*2,5,height/2],center = true);
|
|
translate([(lenght/2 - wall/2),0,height/2-2.5])cube([wall*2,5,height/2],center = true);
|
|
}
|
|
}
|
|
|
|
attachment();
|
|
module attachment()
|
|
{
|
|
baseHeight = 10;
|
|
cylinder(d=circleDia, h=wall, center= true);
|
|
|
|
difference()
|
|
{
|
|
union()
|
|
{
|
|
translate([0,0,wall/2+baseHeight/2])cube([smallLenght,smallWidth,baseHeight],center = true);
|
|
translate([smallWidth/2,-smallWidth/2,smallLenght+wall/2])rotate([0,-90,0])linear_extrude(smallWidth)polygon(points=[[0,0],[0,smallLenght],[smallWidth,smallWidth]]);
|
|
}
|
|
translate([0,-2.8/tan(45),smallLenght/2+smallLenght])rotate([45,0,0])cylinder(d=2.8, h= smallLenght*2, center = true);
|
|
translate([-smallWidth/2,smallWidth/2-smallWidth/2, smallWidth+smallWidth/2+1])cube([smallWidth,smallWidth,smallWidth]);
|
|
}
|
|
} |