Aprimorar a grade de drenagem com canais paralelos para melhor escoamento de água
This commit is contained in:
@@ -21,8 +21,8 @@ raio_arredondamento = 20; // Quanto maior, mais arredondado (recomendado: 15-30)
|
|||||||
|
|
||||||
// Grade de drenagem no fundo
|
// Grade de drenagem no fundo
|
||||||
com_grade_drenagem = true; // true = com grade, false = fundo sólido
|
com_grade_drenagem = true; // true = com grade, false = fundo sólido
|
||||||
largura_fenda_drenagem = 2; // Largura das fendas da grade
|
largura_linha_fundo = 1.5; // Largura das linhas do fundo (mesmo das laterais)
|
||||||
espacamento_fendas = 6; // Espaçamento entre fendas
|
espacamento_linhas_fundo = 4; // Espaçamento entre linhas no fundo
|
||||||
|
|
||||||
// Textura lateral (linhas verticais)
|
// Textura lateral (linhas verticais)
|
||||||
com_textura = true; // true = com textura, false = liso
|
com_textura = true; // true = com textura, false = liso
|
||||||
@@ -76,9 +76,8 @@ module porta_utensilios() {
|
|||||||
textura_vertical();
|
textura_vertical();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Grade de drenagem no fundo
|
// Grade de drenagem no fundo (ranhuras)
|
||||||
if (com_grade_drenagem) {
|
if (com_grade_drenagem) {
|
||||||
translate([0, 0, -0.5])
|
|
||||||
grade_drenagem();
|
grade_drenagem();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -192,30 +191,33 @@ module textura_vertical() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Grade de drenagem no fundo
|
// Grade de drenagem no fundo (ranhuras que permitem escoar água)
|
||||||
module grade_drenagem() {
|
module grade_drenagem() {
|
||||||
// Fendas no eixo X
|
dim_interna_x = largura - 2*espessura_parede;
|
||||||
num_fendas_x = floor((largura - 2*espessura_parede) / espacamento_fendas);
|
dim_interna_y = profundidade - 2*espessura_parede;
|
||||||
for (i = [1:num_fendas_x-1]) {
|
|
||||||
x_pos = -largura/2 + espessura_parede + i * espacamento_fendas;
|
|
||||||
translate([x_pos - largura_fenda_drenagem/2, 0, 0])
|
|
||||||
cube([
|
|
||||||
largura_fenda_drenagem,
|
|
||||||
profundidade - 2*espessura_parede,
|
|
||||||
espessura_parede + 1
|
|
||||||
], center=true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fendas no eixo Y
|
// Usar intersection para garantir que as linhas não ultrapassem a borda
|
||||||
num_fendas_y = floor((profundidade - 2*espessura_parede) / espacamento_fendas);
|
intersection() {
|
||||||
for (i = [1:num_fendas_y-1]) {
|
// Limite da área interna
|
||||||
y_pos = -profundidade/2 + espessura_parede + i * espacamento_fendas;
|
translate([0, 0, -1])
|
||||||
translate([0, y_pos - largura_fenda_drenagem/2, 0])
|
squircle_3d(
|
||||||
cube([
|
dim_interna_x - 1,
|
||||||
largura - 2*espessura_parede,
|
dim_interna_y - 1,
|
||||||
largura_fenda_drenagem,
|
espessura_parede + 3,
|
||||||
espessura_parede + 1
|
raio_arredondamento - espessura_parede - 0.5
|
||||||
], center=true);
|
);
|
||||||
|
|
||||||
|
// Canais de drenagem paralelos
|
||||||
|
union() {
|
||||||
|
num_canais = floor(dim_interna_x / espacamento_linhas_fundo);
|
||||||
|
for (i = [1:num_canais-1]) {
|
||||||
|
x_pos = -dim_interna_x/2 + i * espacamento_linhas_fundo;
|
||||||
|
|
||||||
|
// Canal (cubo que remove material do fundo)
|
||||||
|
translate([x_pos - largura_linha_fundo/2, 0, espessura_parede/2])
|
||||||
|
cube([largura_linha_fundo, dim_interna_y + 10, espessura_parede + 1], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user