Este UCS adiciona furações entre frente intermédia e frente de gaveta para caixas de gaveta de 5 peças.
Para isso, precisamos primeiramente de criar o Intelli-Joint que será aplicado no Gestor de Uniões Intelli-Joint da seguinte forma:
O UCS contém parâmetros públicos para permitir definir margens às extremidades e espaçamentos. O calculo da repetição dos furos é sempre baseado em múltiplos de 32mm.
O UCS deve estar ativo e com a seguinte configuração para funcionar corretamente:
BIT_GEN - FURACAO FRENTE INTERMEDIA E FRENTE GAVETA
;Aplicar furação para fixação de Frente Intermédia e Frente nas gavetas
For Each BF Part
Public MARGEM_LATERAL = 50mm ;Margem lateral Mínima
Public MARGEM_INFERIOR = 50mm ;Margem Inferior Mínima
Public MARGEM_SUPERIOR = 50mm ;Margem Superior Mínima
Public DIS_MAX_FUROS_HOR = 400mm ;Distância Máxima entre furos Horizontais
Public DIS_MIN_FUROS_VER = 100mm ;Distância Mínima entre furos Verticais
;Cálculos
;Furos à Largura
DISTANCIA_UTIL_LARG := DY - MARGEM_LATERAL * 2
NUM_FUROS_INTERM_HOR := TRUNC(DISTANCIA_UTIL_LARG / DIS_MAX_FUROS_HOR) + 1
DISTANCIA_FUROS_INTERM_HOR := DISTANCIA_UTIL_LARG / NUM_FUROS_INTERM_HOR
DISTANCIA_FUROS_INTERM_M32_HOR := TRUNC(DISTANCIA_FUROS_INTERM_HOR / 32mm) * 32mm
ACERTO_HOR := (DISTANCIA_UTIL_LARG - DISTANCIA_FUROS_INTERM_M32_HOR * NUM_FUROS_INTERM_HOR) / 2
ESP_ENTRE_FUROS := DISTANCIA_FUROS_INTERM_M32_HOR
REPET_FUROS := NUM_FUROS_INTERM_HOR + 1
;Furos à Altura
DISTANCIA_UTIL_ALt := DX - MARGEM_INFERIOR - MARGEM_SUPERIOR
ESP_32MM_ALTURA := TRUNC(DISTANCIA_UTIL_ALt / 32mm)
DIST_FUROS_EXTREM_VER := 32mm * ESP_32MM_ALTURA
ACERTO_VER := (ALTURA_UTIL - DIST_FUROS_EXTREM_VER) / 2
IF DISTANCIA_FUROS_INTERM_HOR > 0 Then
ELSE
;DISTANCIA_FUROS_INTERM_HOR := 0
ESP_ENTRE_FUROS := 32mm * ESPACOS_32MM_LARGURA
End If
If DISTANCIA_UTIL_ALt > DIS_MIN_FUROS_VER Then
Dim FurosCent_FrenteGaveta as New IJoint
FurosCent_FrenteGaveta._FACEWP = 2
FurosCent_FrenteGaveta.DX = 1mm
FurosCent_FrenteGaveta.DY = 1mm
FurosCent_FrenteGaveta.DZ = 0
FurosCent_FrenteGaveta.X := MARGEM_SUPERIOR + ACERTO_VER + DIST_FUROS_EXTREM_VER
FurosCent_FrenteGaveta.Y := MARGEM_LATERAL + ACERTO_HOR
FurosCent_FrenteGaveta.Z = 0
FurosCent_FrenteGaveta.AX = 0
FurosCent_FrenteGaveta.AY = 0
FurosCent_FrenteGaveta.AZ = 0
FurosCent_FrenteGaveta.ESPAC := ESP_ENTRE_FUROS
FurosCent_FrenteGaveta.REPET := REPET_FUROS
FurosCent_FrenteGaveta.IJNT = IJointID('Furos Frente Gaveta')
Dim FurosSup_FrenteGaveta as New IJoint
FurosSup_FrenteGaveta._FACEWP = 2
FurosSup_FrenteGaveta.DX = 1mm
FurosSup_FrenteGaveta.DY = 1mm
FurosSup_FrenteGaveta.DZ = 0
FurosSup_FrenteGaveta.X := MARGEM_SUPERIOR + ACERTO_VER
FurosSup_FrenteGaveta.Y := MARGEM_LATERAL + ACERTO_HOR
FurosSup_FrenteGaveta.Z = 0
FurosSup_FrenteGaveta.AX = 0
FurosSup_FrenteGaveta.AY = 0
FurosSup_FrenteGaveta.AZ = 0
FurosSup_FrenteGaveta.ESPAC := ESP_ENTRE_FUROS
FurosSup_FrenteGaveta.REPET := REPET_FUROS
FurosSup_FrenteGaveta.IJNT = IJointID('Furos Frente Gaveta')
Else
Dim FurosCent_FrenteGaveta as New IJoint
FurosCent_FrenteGaveta._FACEWP = 2
FurosCent_FrenteGaveta.DX = 1mm
FurosCent_FrenteGaveta.DY = 1mm
FurosCent_FrenteGaveta.DZ = 0
FurosCent_FrenteGaveta.X := MARGEM_SUPERIOR + ACERTO_VER + DIST_FUROS_EXTREM_VER / 2
FurosCent_FrenteGaveta.Y := MARGEM_LATERAL + ACERTO_HOR
FurosCent_FrenteGaveta.Z = 0
FurosCent_FrenteGaveta.AX = 0
FurosCent_FrenteGaveta.AY = 0
FurosCent_FrenteGaveta.AZ = 0
FurosCent_FrenteGaveta.ESPAC := ESP_ENTRE_FUROS
FurosCent_FrenteGaveta.REPET := REPET_FUROS
FurosCent_FrenteGaveta.IJNT = IJointID('Furos Frente Gaveta')
End If