// Dimensões principais
$fn=100;
gabinete_largura = 120; // Largura do gabinete
gabinete_altura = 150; // Altura do gabinete
gabinete_profundidade = 62; // Profundidade do gabinete
parede_espessura = 2.6; // Espessura do gabinete
// Dimensões do alto-falante
falante_diametro = 70; // Diâmetro do alto-falante
falante_posicao_y = gabinete_altura - 60; // Posição do alto-falante
// Dimensões dos controles
controle_diametro = 8;
controle_espacamento = 22; // Espaço entre os controles
controle_posicao_y = 15;
// Dimensões dos jacks e LED
jack_diametro = 10; // Diâmetro do jack de entrada/saída
led_diametro = 5; // Diâmetro do LED
led_posicaox = 105; // LED lateral
led_posicaoz = 15;
jack_entrada_posicaox = 15; // Entrada lateral
jack_saida_posicao = [10, gabinete_profundidade / 2]; // Saída lateral
union(){
difference() {
// Caixa principal
cube([gabinete_largura, gabinete_profundidade, gabinete_altura], center = false);
translate([parede_espessura, parede_espessura,parede_espessura]) {
cube([gabinete_largura - 2 * parede_espessura,gabinete_profundidade - 2 * parede_espessura,gabinete_altura - 2 * parede_espessura]);
}
// Abertura do alto-falante
translate([gabinete_largura / 2, gabinete_profundidade -2, falante_posicao_y])
rotate([0,90,90]){
cylinder(h = parede_espessura + 3, d = falante_diametro-parede_espessura, center = true);
}
// Abertura para controles (rotacionados para a frente)
for (i = [-1, 0, 1]) {
translate([gabinete_largura / 2 + i * controle_espacamento,gabinete_profundidade - parede_espessura,controle_posicao_y]) {
rotate([0,90,90]) // Rotação para a frente
cylinder(h = parede_espessura + 3, d = controle_diametro,center = true);
}
}
// Furo para o LED
translate([led_posicaox, gabinete_profundidade - 1, controle_posicao_y])
rotate([0,90,90]) {
cylinder(h = parede_espessura + 3, d = led_diametro, center = true);
}
// Furo para jack de entrada
translate([jack_entrada_posicaox, gabinete_profundidade - 1, controle_posicao_y])
rotate([0,90,90]){
cylinder(h = parede_espessura + 3, d = jack_diametro, center = true);
}
// Furo para jack de saída
translate([0, gabinete_profundidade/2, 80])
rotate([90,90,90]) {
cylinder(h = parede_espessura + 3, d = jack_diametro, center = true);
}
// frisos
translate([0,0,30])
cube([1,gabinete_profundidade,2]);
translate([gabinete_largura-1,0,30])
cube([1,gabinete_profundidade,2]);
translate([0,gabinete_profundidade-1,30])
cube([gabinete_largura,1,2]);
// Abertura traseira
translate([parede_espessura, 0, parede_espessura]) {
cube([gabinete_largura - 2 * parede_espessura,
parede_espessura + 1,gabinete_altura - 2 * parede_espessura], center = false);
}
}
difference(){
translate([gabinete_largura / 2, gabinete_profundidade -2* parede_espessura, falante_posicao_y])
rotate([0,90,90]){
cylinder(h = parede_espessura*2 , d = falante_diametro+2*parede_espessura, center = true);
}
translate([gabinete_largura / 2, gabinete_profundidade -2* parede_espessura, falante_posicao_y])
rotate([0,90,90]){
cylinder(h = parede_espessura*2+1 , d = falante_diametro+parede_espessura, center = true);
}
}
}