Files
3D-Models/gridifnity/gridifnity-base-configuravel.scad

65 lines
2.4 KiB
OpenSCAD

/*
Gridifnity Base Configurável
Este arquivo define quantidade de blocos na base do sistema Gridifnity.
Gridifnity é um sistema modular de blocos que permite a construção de estruturas personalizadas.
A configuração da base é feita através de variáveis que definem o número de blocos em
cada direção (X, Y).
*/
// Configuração da base
medida_bloco = 37.7; // Medida de cada bloco em mm
// Defina a espessura das linhas interna (entre os blocos) e a parte externa do sistema Gridifnity (bordas)
// Valores padrão: 4.3 mm espessura das linhas internas, 2.15 mm espessura externa
espessura_externa = 2.15; // Espessura externa do sistema Gridfinity
espessura_interna = 4.3; // Espessura das linhas entre os blocos
// Defina a altura da base do sistema Gridifnity
// Valor padrão: 4.1 mm
altura_base = 4.1; // Altura da base em mm
// Defina o número de blocos na base do sistema Gridifnity
// Valores padrão: 6 blocos em X e 5 blocos em Y
num_blocos_x = 6; // Número de blocos na direção X
num_blocos_y = 6; // Número de blocos na direção Y
// =========================================================
// Função para calcular a largura total da base
// =========================================================
function calcular_largura_total(num_blocos) =
(num_blocos * medida_bloco) + (2 * espessura_externa) + ((num_blocos - 1) * espessura_interna);
// =========================================================
// Módulo principal para criar a base Gridifnity
// =========================================================
module gridifnity_base() {
largura_total_x = calcular_largura_total(num_blocos_x);
largura_total_y = calcular_largura_total(num_blocos_y);
difference() {
// Criar o bloco sólido externo
cube([largura_total_x, largura_total_y, altura_base]);
// Remover os espaços internos para criar os blocos
for (x = [0:num_blocos_x-1]) {
for (y = [0:num_blocos_y-1]) {
translate([
espessura_externa + (x * (medida_bloco + espessura_interna)),
espessura_externa + (y * (medida_bloco + espessura_interna)),
-0.5
]) {
cube([medida_bloco, medida_bloco, altura_base + 1]);
}
}
}
}
}
// =========================================================
// Gerar a base
// =========================================================
gridifnity_base();