This question has been flagged
133 Vistas


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
Avatar
Descartar