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