Files
EgtDOORCreator/ParamFunction.vb
T
Nicola Pievani 0bc8e470b9 EgtDOORCreator 1.8j1 :
- creazione di assemblati
2017-11-21 16:07:47 +00:00

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