Batentes de Borracha para Portas/Gavetas (OLD)
Este UCS tem o objetivo de provocar furação para Batentes de Borracha através de um conector para o efeito. A operação é definida no modelo do conector (Diâmetro x Profundidade).
Será disponibilizado um conector de base com a furação Ø5x10mm.
Compatibilidade do UCS:
Versão CV2023.4
Versão mais atualizada em JavaScript:
https://my.bitmind.com/knowledge/article/897
1. Permite que a furação seja efetuada na Porta ou na Caixa;
2. Opção de furar no topo e no fundo ou apenas num dos lados;
3. Atributos para modificar todos os parâmetros manualmente por cada frente.

Processos:
Furação nas Portas/Gavetas:
Furação na Caixa do Módulo:

Atributos disponíveis para modificação:
Operação é definida no modelo do conector, no catálogo dos materiais: 
Na configuração de material dos puxadores, deve ser atribuído o material com as operações e os parâmetros ao componente Batente de Frentes (BAT):
Download do Pacote
Código do UCS
;Adiciona Furos para Batentes de Borracha
For Each DOR|DWR part
; Aplica atributo em cada porta para permitir o controle dos furos
If Batentes_Frente = Null Then
Batentes_Frente<bool> = True
End If
Batentes_Frente<style> = 1
Batentes_Frente<desc> = 'BATENTE) Ativar Batentes Borracha?'
If Batentes_Frente = 1 Then
If BatentesOpcoes = Null Then
BatentesOpcoes<int> = '<LST>AMBOS=1|FUNDO=2|TOPO=3'
End If
BatentesOpcoes<style> = 1
BatentesOpcoes<desc> = 'BATENTE.1) Posição?'
If BatentesType = Null Then
BatentesType<int> = '<LST>Porta=1|Módulo=2'
End If
BatentesType<style> = 1
BatentesType<desc> = 'BATENTE.2) Local da Operação?'
If BatentesAfastX = Null Then
BatentesAfastX<meas> = 10mm
End If
BatentesAfastX<style> = 1
BatentesAfastX<desc> = 'BATENTE.3) Afastamento X?'
; Verifica se Puxador Gola está activo para corrigir a posição dos furos
If Cab.Face.S_SHHRDW.DZ = Null and Cab.Face.S_SHHRDWE.DZ = Null Then
If BatentesAfastY = Null Then
BatentesAfastY<meas> = 10mm
End If
BatentesAfastY<style> = 1
BatentesAfastY<desc> = 'BATENTE.4) Afastamento Y do Fundo?'
If BatentesAfastY2 = Null Then
BatentesAfastY2<meas> = 10mm
End If
BatentesAfastY2<style> = 1
BatentesAfastY2<desc> = 'BATENTE.4) Afastamento Y do Topo?'
DELETE BatentesAfastY_G
DELETE BatentesAfastY_G2
Else
If BatentesAfastY_G = Null Then
BatentesAfastY_G<meas> = 30mm
End If
BatentesAfastY_G<style> = 1
BatentesAfastY_G<desc> = 'BATENTE.4) Afastamento Y [Gola] do Fundo?'
If BatentesAfastY_G2 = Null Then
BatentesAfastY_G2<meas> = 30mm
End If
BatentesAfastY_G2<style> = 1
BatentesAfastY_G2<desc> = 'BATENTE.4) Afastamento Y [Gola] do Topo?'
DELETE BatentesAfastY
DELETE BatentesAfastY2
End If
If BatentesOpcoes = 2 Then
DELETE BatentesAfastY2
DELETE BatentesAfastY_G2
End If
If BatentesOpcoes = 3 Then
DELETE BatentesAfastY
DELETE BatentesAfastY_G
End If
Else
DELETE BatentesOpcoes
DELETE BatentesAfastX
DELETE BatentesAfastY
DELETE BatentesAfastY_G
DELETE BatentesAfastY2
DELETE BatentesAfastY_G2
DELETE BatentesType
End If
If Batentes_Frente<bool> = True Then ; Início do Processamento
;=======
;Portas
;=======
If Name = 'DOR' & ::Name = 'FACE' Then
If BatentesOpcoes = 1 | BatentesOpcoes = 2 Then ; Fazer no Fundo
Dim BAT as New Hardware
BAT.Name<text> = 'Batente Porta'
BAT.Visible<bool> = True
BAT.DX<meas> = _M:DX
BAT.DY<meas> = _M:DY
BAT.DZ<meas> = _M:DZ
If HNG = 1 Then
BAT.X<meas> = :DX - BatentesAfastX
Else
BAT.X<meas> = BatentesAfastX
End If
If Cab.Face.S_SHHRDW.DZ = Null and Cab.Face.S_SHHRDWE.DZ = Null Then ; Verifica se Puxador Gola está activo para corrigir a posição dos furos
BAT.Y<meas> = BatentesAfastY
Else
BAT.Y<meas> = BatentesAfastY_G
End If
BAT.Z<meas> = 0
BAT.AX<deg> = 0
If BatentesType = 1 Then
BAT.AY<deg> = 180
Else
BAT.AY<deg> = 0
End If
BAT.AZ<deg> = 0
BAT.QTY<int> = 1
End If
If BatentesOpcoes = 1 | BatentesOpcoes = 3 Then ; Fazer no Topo
Dim BAT as New Hardware
BAT.Name<text> = 'Batente Porta'
BAT.Visible<bool> = True
BAT.DX<meas> = _M:DX
BAT.DY<meas> = _M:DY
BAT.DZ<meas> = _M:DZ
If HNG = 1 Then
BAT.X<meas> = :DX - BatentesAfastX
Else
BAT.X<meas> = BatentesAfastX
End If
If Cab.Face.S_SHHRDW.DZ = Null and Cab.Face.S_SHHRDWE.DZ = Null Then ; Verifica se Puxador Gola está activo para corrigir a posição dos furos
BAT.Y<meas> = :DY - BatentesAfastY2
Else
BAT.Y<meas> = :DY - BatentesAfastY_G2
End If
BAT.Z<meas> = 0
BAT.AX<deg> = 0
If BatentesType = 1 Then
BAT.AY<deg> = 180
Else
BAT.AY<deg> = 0
End If
BAT.AZ<deg> = 0
BAT.QTY<int> = 1
End If
End If ; Fim Portas
; =======
; Gavetas
; =======
If Name = 'DWR' & :::Name = 'FACE' Then
If BatentesOpcoes = 1 | BatentesOpcoes = 2 Then ; Fazer no Fundo
Dim BAT as New Hardware
BAT.Name<text> = 'Batente Porta'
BAT.Visible<bool> = True
BAT.DX<meas> = _M:DX
BAT.DY<meas> = _M:DY
BAT.DZ<meas> = _M:DZ
BAT.X<meas> = BatentesAfastX
If DWR.DY <= 150mm Then ; Se altura da Gaveta for pequena, coloca ao centro
BAT.Y<meas> = :DY / 2
Else
If Cab.Face.S_SHHRDW.DZ = Null and Cab.Face.S_SHHRDWE.DZ = Null Then ; Verifica se Puxador Gola está activo para corrigir a posição dos furos
BAT.Y<meas> = BatentesAfastY
Else
BAT.Y<meas> = BatentesAfastY_G
End If
End If
BAT.Z<meas> = 0
BAT.AX<deg> = 0
If BatentesType = 1 Then
BAT.AY<deg> = 180
Else
BAT.AY<deg> = 0
End If
BAT.AZ<deg> = 0
BAT.QTY<int> = 1
Dim BAT as New Hardware
BAT.Name<text> = 'Batente Porta'
BAT.Visible<bool> = True
BAT.DX<meas> = _M:DX
BAT.DY<meas> = _M:DY
BAT.DZ<meas> = _M:DZ
BAT.X<meas> = :DX - BatentesAfastX
If DWR.DY <= 150mm Then ;Se altura da Gaveta for pequena, coloca ao centro
BAT.Y<meas> = :DY / 2
Else
If Cab.Face.S_SHHRDW.DZ = Null and Cab.Face.S_SHHRDWE.DZ = Null Then ;Verifica se Puxador Gola está activo para corrigir a posição dos furos
BAT.Y<meas> = BatentesAfastY
Else
BAT.Y<meas> = BatentesAfastY_G
End If
End If
BAT.Z<meas> = 0
BAT.AX<deg> = 0
If BatentesType = 1 Then
BAT.AY<deg> = 180
Else
BAT.AY<deg> = 0
End If
BAT.AZ<deg> = 0
BAT.QTY<int> = 1
End If
If BatentesOpcoes = 1 & DY > 150mm | BatentesOpcoes = 3 Then ;Fazer no Topo
Dim BAT as New Hardware
BAT.Name<text> = 'Batente Porta'
BAT.Visible<bool> = True
BAT.DX<meas> = _M:DX
BAT.DY<meas> = _M:DY
BAT.DZ<meas> = _M:DZ
BAT.X<meas> = BatentesAfastX
If DWR.DY <= 150mm Then ;Se altura da Gaveta for pequena, coloca ao centro
BAT.Y<meas> = :DY / 2
Else
If Cab.Face.S_SHHRDW.DZ = Null and Cab.Face.S_SHHRDWE.DZ = Null Then ;Verifica se Puxador Gola está activo para corrigir a posição dos furos
BAT.Y<meas> = :DY - BatentesAfastY2
Else
BAT.Y<meas> = :DY - BatentesAfastY_G2
End If
End If
BAT.Z<meas> = 0
BAT.AX<deg> = 0
If BatentesType = 1 Then
BAT.AY<deg> = 180
Else
BAT.AY<deg> = 0
End If
BAT.AZ<deg> = 0
BAT.QTY<int> = 1
Dim BAT as New Hardware
BAT.Name<text> = 'Batente Porta'
BAT.Visible<bool> = True
BAT.DX<meas> = _M:DX
BAT.DY<meas> = _M:DY
BAT.DZ<meas> = _M:DZ
BAT.X<meas> = :DX - BatentesAfastX
If DWR.DY <= 150mm Then ;Se altura da Gaveta for pequena, coloca ao centro
BAT.Y<meas> = :DY / 2
Else
If Cab.Face.S_SHHRDW.DZ = Null and Cab.Face.S_SHHRDWE.DZ = Null Then ;Verifica se Puxador Gola está activo para corrigir a posição dos furos
BAT.Y<meas> = :DY - BatentesAfastY2
Else
BAT.Y<meas> = :DY - BatentesAfastY_G2
End If
End If
BAT.Z<meas> = 0
BAT.AX<deg> = 0
If BatentesType = 1 Then
BAT.AY<deg> = 180
Else
BAT.AY<deg> = 0
End If
BAT.AZ<deg> = 0
BAT.QTY<int> = 1
End If
End If ; Fim Gavetas
End If ; Fim do Processamento