/*================================================
Проект для каркаса LED-индикатора холодильника
Samsung RL34ECSW.
http://microsin.net/adminstuff/hardware/samsung-rl34ecsw-led-repair.html
================================================*/
include < 7seg-digit.scad>
// Основные размеры коробки:
sizeX = 62;
sizeY = 63;
sizeZ = 15;
extWall = 1;
// Параметры для нижних пазов в юбке:
u=28;
d=34;
h=sizeZ-12.7;
sk=(d-u)/2;
module body()
{
difference()
{
color ("grey")
translate([0,0,-sizeZ])
cube (size =[sizeX, sizeY, sizeZ], center = false);
color ("yellow")
translate([extWall,extWall,-(sizeZ+extWall)])
cube (size =[sizeX-extWall*2,
sizeY-extWall*2,
sizeZ], center = false);
// Вырезы в юбке снизу и сверху:
slotDownVert();
// Вырез в юбке снизу слева:
slotDL(1.5,3-1,-(12.7+h));
// Вырез в юбке сверху справа:
slotUR(sizeX-1.5,sizeY+1,-(12.7+h));
// Узкие пазы справа внизу:
paz(54.2,-1,-(sizeZ+1));
// Узкие пазы слева вверху:
paz(2.2,sizeY-2,-(sizeZ+1));
// Вырез в юбке слева вверху по горизонтали:
slotUh(2,sizeY-1,-(12.7+h));
// Вырез в юбке справа вввеху по горизонтали:
slotUh(sizeX+1,sizeY-1,-(12.7+h));
// Вырез в юбке слева внизу по горизонтали:
slotDh(-1, 1, -(12.7+h));
// Вырез в юбке справа внизу по горизонтали:
slotDh(sizeX-2, 1, -(12.7+h));
}
// Направляющие штифты:
pin(0.8,0.8,-(sizeZ+2));
pin(sizeX-0.8,sizeY-0.8,-(sizeZ+2));
// Защелки:
latchRD(55,0,-sizeZ);
latchLU(3,sizeY-extWall,-sizeZ);
}
module paz(x,y,z)
{
translate([x,y,z])
cube (size=[0.8,3,6+1], center = false);
translate([x+4.8,y,z])
cube (size=[0.8,3,6+1], center = false);
}
module slotUh(x,y,z)
{
translate([x,y,z])
rotate(a=[90, 0, -90])
linear_extrude(height = 3, center = false)
polygon(points=[[0,-1],[0,0],[0,h],[22.5,h],[22.5+sk,0],[22.5+sk,-1]]);
}
module slotDh(x,y,z)
{
translate([x,y,z])
rotate(a=[0, 0, 180])
slotUh(0,0,0);
}
module slotDownVert()
{
shiftX = (sizeX-d)/2;
translate([shiftX,sizeY+1,-(12.7+h)])
rotate(a=[90, 0, 0])
linear_extrude(height = 1+sizeY+1, center = false)
polygon(points=[[0,-1],[0,0],[sk,h],[sk+u,h],[sk+u+sk,0],[sk+u+sk,-1]]);
}
module slotDL(x,y,z)
{
translate([x,y,z])
rotate(a=[90, 0, 0])
linear_extrude(height = 3, center = false)
polygon(points=[[0,-1],[0,0],[0,h],[3,h],[3+sk,0],[3+sk,-1]]);
}
module slotUR(x,y,z)
{
translate([x,y,z])
mirror(0,0,1)
slotDL(0,0,0);
}
// Знак "минус" перед нижними цифрами:
module segmentG(x,y,z)
{
up = 2.0;
right = 6;
skosA = 1.1;
skosB = 0.72;
depth = 5;
color ("yellow")
translate([x,y,z])
linear_extrude(height = depth, center = false)
polygon(points=[[0,1],[skosA,up],[right-skosB,up],[right,1],[right-skosA,0],[skosB,0]]);
}
module squares()
{
shiftX = 12;
cubeX = 5;
cubeY = 4.5;
cubeZ = 3;
interval = 1;
Y1 = 3.5;
translate([shiftX,Y1,-2])
cube(size=[cubeX,cubeY,cubeZ]);
Y2 = Y1 + (cubeY + interval);
translate([shiftX,Y2,-2])
cube(size=[cubeX,cubeY,cubeZ]);
Y3 = Y2 + (cubeY + interval);
translate([shiftX,Y3,-2])
cube(size=[cubeX,cubeY,cubeZ]);
//echo (Y3 + cubeY);
}
module guides(transp)
{
color ("grey", transp)
translate([27,43,0])
square(size=[20,16]);
color ("grey", transp)
translate([27,23.2,0])
square(size=[20,16]);
}
module digits(depthZ)
{
// Знак минус напротив нижних цифр:
segmentG(21.3,29.5,-depthZ);
// Две верхние цифры:
7dig(26,42.4,-depthZ);
7dig(36,42.4,-depthZ);
// Две нижние цифры:
7dig(26,22.5,-depthZ);
7dig(36,22.5,-depthZ);
}
module squares(depthZ)
{
shiftX = 12;
cubeX = 5;
cubeY = 4.5;
interval = 1;
Y1 = 3.5;
Y2 = Y1 + (cubeY + interval);
Y3 = Y2 + (cubeY + interval);
translate([shiftX,Y3+0.85,-depthZ])
rotate(a=[90, 0, 90])
linear_extrude(height = 5, center = false)
polygon(points=[[0,0],
[-(cubeY+0.2-2.8)/2,4.55+0.5],
[-(cubeY+0.2-2.8)/2+cubeY+0.2,4.55+0.5],
[2.8,0]]);
translate([shiftX,Y2+0.85,-depthZ])
rotate(a=[90, 0, 90])
linear_extrude(height = 5, center = false)
polygon(points=[[0,0],
[-(cubeY+0.2-2.8)/2,4.55+0.5],
[-(cubeY+0.2-2.8)/2+cubeY+0.2,4.55+0.5],
[2.8,0]]);
translate([shiftX,Y1+0.85,-depthZ])
rotate(a=[90, 0, 90])
linear_extrude(height = 5, center = false)
polygon(points=[[0,0],
[-(cubeY+0.2-2.8)/2,4.55+0.5],
[-(cubeY+0.2-2.8)/2+cubeY+0.2,4.55+0.5],
[2.8,0]]);
}
// Внутренние перегородки:
module wallInt()
{
wallthick = 0.7; // толщина внутренней стенки
// Отступ левой стенки 1:
shiftX1 = 11.8 - wallthick;
// Отступ левой стенки 2:
shiftX2 = 23.3 - wallthick;
// Отступ правой стенки:
shiftX3 = 47.4;
// Отступ правых горизонтальных ребер:
shiftX4 = shiftX3+0.01;
// Вертикальная левая стенка 1:
color("red")
translate([shiftX1,0.01,-10.01])
cube(size=[1,33,10]);
// Горизонтальная левая стенка:
color("red")
translate([shiftX1,32.8-wallthick,-10.01])
cube(size=[12.4,1,10]);
// Вертикальная левая стенка 1:
color("red")
translate([shiftX2,32.8-wallthick,-10.01])
cube(size=[1,30.8,10]);
// Вертикальная правая стенка:
color("red")
translate([shiftX3,0.01,-10.01])
cube(size=[1,62.98,10]);
// Горизонтальное правое ребрышко 1:
color("red")
translate([shiftX4,11.5,-3.51])
cube(size=[14.6-0.02,1,3.5]);
// Горизонтальное левое ребрышко 1:
color("red")
translate([0.01,11.5,-3.51])
cube(size=[12.1-0.02,1,3.5]);
// Горизонтальное правое ребрышко 2:
color("red")
translate([shiftX4,32.2,-3.51])
cube(size=[14.6-0.02,1,3.5]);
// Горизонтальное правое ребрышко 3:
color("red")
translate([shiftX4,51.6,-3.51])
cube(size=[14.6-0.02,1,3.5]);
// Горизонтальное левое ребрышко 2:
color("red")
translate([0.01,51.6,-3.51])
cube(size=[23.6-0.02,1,3.5]);
}
module pin(x,y,z)
{
translate([x,y,z])
linear_extrude(height = sizeZ+1.9, center = false)
scale(0.1,0.1,0.1)
circle(d=15);
}
module latchRD(x,y,z)
{
translate([x,y,z-4])
cube(size=[4,1,5]);
translate([x+4,y+1,z-4])
rotate(a=[90, 0, 270])
linear_extrude(height = 4, center = false)
polygon(points=[[0,0],[0,2.2],[1.9,2.2],[1.9,1],[1,0]]);
}
module latchLU(x,y,z)
{
translate([x,y,z-4])
cube(size=[4,1,5]);
translate([x,y,z-4])
rotate(a=[90, 0, 90])
linear_extrude(height = 4, center = false)
polygon(points=[[0,0],[0,2.2],[1.9,2.2],[1.9,1],[1,0]]);
}
module holes()
{
digits(4.55);
// Квадратики:
squares(4.55);
}
// Внутренний выступ вокруг цифр и квадратиков.
module InternalLedge()
{
skos = 3.34;
top = 20;
height = 17.6;
depth = 4.5;
// Вокруг цифр:
translate([25.2,21.6,-depth])
linear_extrude(height = depth, center = false)
polygon(points=[[0,0],[skos, height],
[skos+top,height],[top,0]]);
translate([25.2,41.6,-depth])
linear_extrude(height = depth, center = false)
polygon(points=[[0,0],[skos, height],
[skos+top,height],[top,0]]);
translate([20,28.5,-depth])
linear_extrude(height = depth, center = false)
polygon(points=[[0,0],[0.7, 4],
[0.7+7,4],[7,0]]);
// Между верхними и нижими цифрами:
translate([23,39,-depth])
cube (size =[25, 3, depth], center = false);
// Вокруг квадратиков:
translate([11,2,-depth])
cube (size =[8, 19, depth], center = false);
}
difference()
{
union()
{
// Корпус и цифры:
body();
InternalLedge();
wallInt();
}
holes();
}
Модель довольно сложная, её лучше печатать минимальной толщиной слоя. Желательно использовать пластик не PLA, а какой-нибудь более эластичный пластик, иначе защелки и штифты направляющих будут отламываться.