0bc8e470b9
- creazione di assemblati
288 lines
9.0 KiB
VB.net
288 lines
9.0 KiB
VB.net
Module ParamFunction
|
|
' parametri condivisi dalle funzioni
|
|
Public CompoName As String
|
|
Public DoorNumber As Integer
|
|
Public ParamName As String
|
|
Public CompoPath As String
|
|
|
|
#Region "Associazione File"
|
|
' parametri propri della funzione
|
|
Public InSide As String
|
|
' questo parametro viene caricato durante la lettura del file Config.ini presente in ogni crtella delle componenti
|
|
Public OutCompoTemplateName As String
|
|
Public InCompoTypeName As String
|
|
' il nome della componente scelta in ingresso
|
|
Public Template As String
|
|
'Public OutDirectoryCompo As String
|
|
|
|
Public Function Match() As Boolean
|
|
' leggo la posizione della componete rispetto alla porta
|
|
Select Case InSide
|
|
Case "Hinge"
|
|
Return MatchDoorJamb()
|
|
Case "Lock"
|
|
Select Case DoorNumber
|
|
Case 1
|
|
Return MatchDoorJamb()
|
|
Case 2
|
|
Return MatchDoorDoor()
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
Case "Top"
|
|
Return True
|
|
Case "Bottom"
|
|
Return True
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Public Function MatchDoorJamb() As Boolean
|
|
Select Case CompoName
|
|
Case "hinges"
|
|
If Template = "StdMrtHinge" Then
|
|
OutCompoTemplateName = "Hinges\Frame_4_5S"
|
|
'OutDirectoryCompo = "C:\EgtData\Doors\EgalTech\Compo\Hinges"
|
|
ElseIf Template = "SOSS\212" Then
|
|
OutCompoTemplateName = "Hinges\SOSS\Frame_212"
|
|
'OutDirectoryCompo = "C:\EgtData\Doors\EgalTech\Compo\Hinges"
|
|
End If
|
|
Return True
|
|
Case "locks"
|
|
OutCompoTemplateName = "StrikesStdFaceStrikes"
|
|
'OutDirectoryCompo = "C:\EgtData\Doors\EgalTech\Compo\Strikes"
|
|
'OutCompoTemplateName = "TESTF_F"
|
|
Return True
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Public Function MatchDoorDoor() As Boolean
|
|
Select Case CompoName
|
|
Case "locks"
|
|
OutCompoTemplateName = Template
|
|
Return True
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
#End Region ' Associazione File
|
|
|
|
#Region "Lettura del file Assembly"
|
|
' unico problema che può generare è solo legato alla grafica
|
|
Public Function IsEnableParam() As Boolean
|
|
Select Case CompoName
|
|
Case "hinges"
|
|
If Template = "Frame_4_5S" Then
|
|
Return HingeMortIsEnable()
|
|
ElseIf Template = "SOSS\Frame_212" Then
|
|
Return HingeConCyIsEnable()
|
|
Else
|
|
Return False
|
|
End If
|
|
Case "locks"
|
|
If Template = "TESTF_F" Then
|
|
Return False
|
|
Else
|
|
Return LockIsEnable()
|
|
End If
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Public Function HingeMortIsEnable() As Boolean
|
|
Select Case ParamName
|
|
Case "ToptoTop"
|
|
Return HingePositionIsEnable()
|
|
Case "back_set"
|
|
Return HingeBackSetMortIsEnable()
|
|
Case "thickness"
|
|
Return HingeThicknessIsEnable()
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Public Function HingeConCyIsEnable() As Boolean
|
|
Select Case ParamName
|
|
Case "ToptoCL"
|
|
Return HingePositionIsEnable()
|
|
Case "back_set"
|
|
Return HingeBackSetConcyIsEnable()
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Public Function LockIsEnable() As Boolean
|
|
Select Case ParamName
|
|
Case "position"
|
|
Return LockPositionIsEnable()
|
|
Case Else
|
|
Return True
|
|
End Select
|
|
End Function
|
|
|
|
#End Region ' Lettura del file Assembly
|
|
|
|
#Region "Calcolo Parametri"
|
|
' parametri propri della funzione
|
|
Public InParamValue As String
|
|
Public OutParamValue As String
|
|
Public LightUp As String
|
|
Public LightBottom As String
|
|
Public LightHinge As String
|
|
Public LightLock As String
|
|
Public OverlapHinge As String
|
|
Public OverlapLock As String
|
|
Public OverlapTop As String
|
|
Public ThicknessHead As String
|
|
Public ThicknessJamb As String
|
|
Public ThicknessDoor As String
|
|
Public DeltaThickness As String
|
|
' serve per abilitare i parametri sui Jamb
|
|
Public IsEnable As Boolean = False
|
|
Public Function CalcParamInJamb() As Boolean
|
|
' per ora esistonon solo due casi da trattare: cerniere e serrature, questa funzione gestisce la chiamata
|
|
Select Case CompoName
|
|
Case "hinges"
|
|
If Template = "Frame_4_5S" Then
|
|
Return CalcHingeMort()
|
|
ElseIf Template = "SOSS\Frame_212" Then
|
|
Return CalcHingeConCy()
|
|
Else
|
|
Return False
|
|
End If
|
|
Case "locks"
|
|
If Template = "TESTF_F" Then
|
|
Return CalcLock()
|
|
Else
|
|
Return CalcLock()
|
|
End If
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Public Function CalcHingeMort() As Boolean
|
|
Select Case ParamName
|
|
Case "ToptoTop"
|
|
Return CalcHingePosition()
|
|
Case "back_set"
|
|
Return CalcHingeBackSetMort()
|
|
Case "thickness"
|
|
Return CalcHingeThickness()
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Public Function CalcHingeConCy() As Boolean
|
|
Select Case ParamName
|
|
Case "ToptoCL"
|
|
Return CalcHingePosition()
|
|
Case "back_set"
|
|
Return CalcHingeBackSetConcy()
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Public Function CalcLock() As Boolean
|
|
Select Case ParamName
|
|
Case "position"
|
|
' devo ricalcolare la posizione solo se sto caricando il parametro sul Jamb
|
|
If DoorNumber = 1 Then
|
|
Return CalcLockPosition()
|
|
Else
|
|
OutParamValue = InParamValue
|
|
Return True
|
|
End If
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
Public Function CalcHingePosition() As Boolean
|
|
' in questo caso calcolo la posizione delle cerniere partendo dal top del Jamb
|
|
Dim dThicknessHead As Double
|
|
Dim dLightUp As Double
|
|
Dim dLightBottom As Double
|
|
Dim dPositionOnDoor As Double
|
|
StringToDouble(ThicknessHead, dThicknessHead)
|
|
StringToDouble(LightUp, dLightUp)
|
|
StringToDouble(LightBottom, dLightBottom)
|
|
StringToDouble(InParamValue, dPositionOnDoor)
|
|
OutParamValue = DoubleToString(dThicknessHead + dLightBottom + dLightUp + dPositionOnDoor, 4)
|
|
IsEnable = False
|
|
Return True
|
|
End Function
|
|
Public Function HingePositionIsEnable() As Boolean
|
|
Return False
|
|
End Function
|
|
|
|
Public Function CalcHingeBackSetMort() As Boolean
|
|
Dim dThicknessDoor As Double
|
|
Dim dThicknessJamb As Double
|
|
Dim dBackset As Double
|
|
Dim dDeltaT As Double
|
|
StringToDouble(ThicknessDoor, dThicknessDoor)
|
|
StringToDouble(ThicknessJamb, dThicknessJamb)
|
|
StringToDouble(InParamValue, dBackset)
|
|
StringToDouble(DeltaThickness, dDeltaT)
|
|
OutParamValue = DoubleToString(dThicknessJamb - dDeltaT - dThicknessDoor + dBackset, 4)
|
|
IsEnable = False
|
|
Return True
|
|
End Function
|
|
Public Function HingeBackSetMortIsEnable() As Boolean
|
|
Return False
|
|
End Function
|
|
|
|
Public Function CalcHingeBackSetConcy() As Boolean
|
|
Dim dBackset As Double
|
|
Dim dDeltaT As Double
|
|
StringToDouble(InParamValue, dBackset)
|
|
StringToDouble(DeltaThickness, dDeltaT)
|
|
OutParamValue = DoubleToString(dDeltaT + dBackset, 4)
|
|
IsEnable = False
|
|
Return True
|
|
End Function
|
|
Public Function HingeBackSetConcyIsEnable() As Boolean
|
|
Return False
|
|
End Function
|
|
|
|
Public Function CalcHingeThickness() As Boolean
|
|
OutParamValue = InParamValue
|
|
IsEnable = True
|
|
Return True
|
|
End Function
|
|
Public Function HingeThicknessIsEnable() As Boolean
|
|
Return True
|
|
End Function
|
|
|
|
Public Function CalcLockPosition() As Boolean
|
|
' in questo caso calcolo la posizione delle cerniere partendo dal top del Jamb
|
|
Dim dThicknessHead As Double
|
|
Dim dLightUp As Double
|
|
Dim dLightBottom As Double
|
|
Dim dPositionOnDoor As Double
|
|
StringToDouble(ThicknessHead, dThicknessHead)
|
|
StringToDouble(LightUp, dLightUp)
|
|
StringToDouble(LightBottom, dLightBottom)
|
|
StringToDouble(InParamValue, dPositionOnDoor)
|
|
OutParamValue = DoubleToString(dThicknessHead + dLightBottom + dLightBottom + dPositionOnDoor, 4)
|
|
IsEnable = False
|
|
Return True
|
|
End Function
|
|
Public Function LockPositionIsEnable() As Boolean
|
|
Return False
|
|
End Function
|
|
|
|
#End Region ' Calcolo Parametri
|
|
|
|
End Module
|