Aprimorar a grade de drenagem com canais paralelos para melhor escoamento de água

This commit is contained in:
FelipeCN
2025-11-14 15:45:35 -03:00
parent 7b03dc7b98
commit d22a62e79f
@@ -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);
}
}
} }
} }