//Резьбовая вставка
CHI=3; //Число витков
DH=13; //Длина резьбы
DIAM=15; //Внутренний диаметр резьбы

Ah=2; //Ширина основания витка
Bh=3; //Ширина верхней части витка
Ch=2; //Высота витка
Ph=0.3; //Толщина

ANGLE=360*CHI;

N=1000*0.1*DIAM*0.1*CHI;

{
for (i=[0:N]) {
    
    hull() {
translate([DIAM/2*cos(i*ANGLE/N),DIAM/2*sin(i*ANGLE/N),i*DH/N])
rotate(a=55,v=[0,0,1])      
rotate(a=-135+i*ANGLE/N,v=[0,0,1])
rotate(a=90,v=[0,1,0])              
//rotate(a=180,v=[0,0,1])  
linear_extrude(convexity=2,height=Ph)
polygon([[-Ah/2,0],[-Bh/2,Ch],[Bh/2,Ch],[Ah/2,0]]);
        
    
translate([DIAM/2*cos((i+1)*ANGLE/N),DIAM/2*sin((i+1)*ANGLE/N),(i+1)*DH/N])
rotate(a=55,v=[0,0,1])      
rotate(a=-135+i*ANGLE/N,v=[0,0,1])    
rotate(a=90,v=[0,1,0])              
//rotate(a=180,v=[0,0,1])  
linear_extrude(convexity=2,height=Ph)
polygon([[-Ah/2,0],[-Bh/2,Ch],[Bh/2,Ch],[Ah/2,0]]);  
} 
}
//Корпус
difference(){
translate([0,0,-1.5])
cylinder($fn=100, h=16, d1=DIAM+7, d2=DIAM+7);
translate([0,0,6])
cylinder($fn=100, h=15+4, d1=15+4, d2=15+4, center=true);
}
//Верх
difference(){
translate([0,0,9.5])
cylinder($fn=100, h=5, d1=25, d2=25);
translate([0,0,6])
cylinder($fn=100, h=19, d1=19, d2=19, center=true);
}
//Направляющие боковые
translate([10.45,-1,5])
cube([2,2,5]);
translate([-12.45,-1,5])
cube([2,2,5]);
//Верхние упоры
translate([10.95,0,14.5])
cylinder($fn=100, h=4, d=3);
translate([-10.95,0,14.5])
cylinder($fn=100, h=4, d=3);
}