Files
EgtWPFLib5/Utility/MachineUtility.vb
T
2024-05-27 15:32:03 +02:00

222 lines
11 KiB
VB.net

Imports System.IO
Imports EgtUILib
Public Module MachineUtility
#Region "Machining"
Private m_bEnableAdvMachinings As Boolean = False
Public Property EnableAdvMachinings As Boolean
Get
Return m_bEnableAdvMachinings
End Get
Set(value As Boolean)
m_bEnableAdvMachinings = value
End Set
End Property
''' <summary>
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
''' </summary>
Public Function ReadMachiningFamilies(sMachineIniPath As String) As MachiningsType()
Dim ActiveMachiningsFamiliesList As New List(Of MachiningsType)
' Se il materiale lavorato è Marmo l'ordine di lettura e inserimento di Foratura e Taglio di lama nelle famiglie di lavorazioni attive è invertito
If EgtWPFLib5.MachiningTreeViewItem.m_MatType = MaterialType.STONE Then
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.SAWING, .Name = EgtMsg(MSG_MACHININGDB + 2)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_DRILLING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.DRILLING, .Name = EgtMsg(MSG_MACHININGDB + 1)})
End If
Else
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_DRILLING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.DRILLING, .Name = EgtMsg(MSG_MACHININGDB + 1)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.SAWING, .Name = EgtMsg(MSG_MACHININGDB + 2)})
End If
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_MILLING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.MILLING, .Name = EgtMsg(MSG_MACHININGDB + 3)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_POCKETING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.POCKETING, .Name = EgtMsg(MSG_MACHININGDB + 4)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_MORTISING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.MORTISING, .Name = EgtMsg(MSG_MACHININGDB + 5)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWROUGHING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.SAWROUGHING, .Name = EgtMsg(MSG_MACHININGDB + 6)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWFINISHING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.SAWFINISHING, .Name = EgtMsg(MSG_MACHININGDB + 7)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_GENMACHINING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.GENMACHINING, .Name = EgtMsg(MSG_MACHININGDB + 8)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_CHISELING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.CHISELING, .Name = EgtMsg(MSG_MACHININGDB + 9)})
End If
If m_bEnableAdvMachinings AndAlso EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SURFROUGHING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.SURFROUGHING, .Name = EgtMsg(31212)})
End If
If m_bEnableAdvMachinings AndAlso EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SURFFINISHING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.SURFFINISHING, .Name = EgtMsg(31211)})
End If
If m_bEnableAdvMachinings AndAlso EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_5AXMILLING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.FIVEAXISMILLING, .Name = EgtMsg(31213)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_WATERJETTING, 0, sMachineIniPath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.Id = MCH_MY.WATERJETTING, .Name = EgtMsg(31210)})
End If
Return ActiveMachiningsFamiliesList.ToArray
End Function
'Friend Sub LoadMachiningListByType(MachiningList As List(Of String), nType As MCH_MY)
' Dim MachiningName As String = String.Empty
' EgtMdbGetFirstMachining(nType, MachiningName)
' While Not String.IsNullOrWhiteSpace(MachiningName)
' MachiningList.Add(MachiningName)
' EgtMdbGetNextMachining(nType, MachiningName)
' End While
'End Sub
'' Funzione che imposta la macchina corrente se la trova, altrimenti chiede se ricaricarla o annullare
'Friend Function EgtTrySettingCurrMachine(sMachineName As String) As Boolean
' If EgtSetCurrMachine(sMachineName) Then
' Return True
' End If
' If MessageBox.Show(String.Format(EgtMsg(MSG_DOORSERRORS + 13) & Environment.NewLine & EgtMsg(MSG_DOORSERRORS + 14), sMachineName), EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.YesNo, MessageBoxImage.Error) = MessageBoxResult.Yes Then
' Return EgtTrySettingCurrMachine(sMachineName)
' End If
' Return False
'End Function
' Funzione che verifica l'esistenza e la connessione della cartella Machines
Public Function VerifyMachinesDir(sMachinesDirPath As String) As Boolean
' verifico l'esistenza della cartella Machines
If String.IsNullOrWhiteSpace(sMachinesDirPath) Then
Return False
End If
Return RecursiveVerifyMachinesDir(sMachinesDirPath)
End Function
Private Function RecursiveVerifyMachinesDir(sMachinesDirPath As String) As Boolean
If Directory.Exists(sMachinesDirPath) Then
Return True
Else
If MessageBox.Show(String.Format(EgtMsg(MSG_DOORSERRORS + 13) & Environment.NewLine & EgtMsg(MSG_DOORSERRORS + 14), sMachinesDirPath), EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.YesNo, MessageBoxImage.Error) = MessageBoxResult.Yes Then
Return RecursiveVerifyMachinesDir(sMachinesDirPath)
End If
Return False
End If
End Function
''' <summary>
''' Structure that represent a machining's family, containing family type and family name
''' </summary>
Public Class MachiningsType
Inherits VMBase
Public Id As MCH_MY
Private m_Name As String
Public Property Name As String
Get
Return m_Name
End Get
Set(value As String)
m_Name = value
End Set
End Property
End Class
#End Region ' Machining
#Region "Tool"
''' <summary>
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
''' </summary>
Public Function ReadToolFamilies(sMachineIniPath As String) As ToolsFamily()
Dim ActiveToolsFamiliesList As New List(Of ToolsFamily)
Dim ActiveMachiningsFamiliesList As New List(Of MachiningsType)
' Se il materiale lavorato è Marmo l'ordine di lettura e inserimento di Punta e Lama nelle famiglie di utensili attivi è invertito
If EgtWPFLib5.ToolDbWindowVM.m_MatType = MaterialType.STONE Then
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_SAWBLADE, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.SAWBLADE, EgtMsg(MSG_TOOLDB + 2)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_DRILLBIT, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.DRILLBIT, EgtMsg(MSG_TOOLDB + 1)))
End If
Else
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_DRILLBIT, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.DRILLBIT, EgtMsg(MSG_TOOLDB + 1)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_SAWBLADE, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.SAWBLADE, EgtMsg(MSG_TOOLDB + 2)))
End If
End If
If EgtWPFLib5.ToolDbWindowVM.m_MatType = MaterialType.STONE Then
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_MILL, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.MILL, EgtMsg(MSG_TOOLDB + 3)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_CUPWHEEL, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.MILL, EgtMsg(90754)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_POLISHINGWHEEL, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.MILL, EgtMsg(90756)))
End If
Else
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_MILL, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.MILL, EgtMsg(MSG_TOOLDB + 3)))
End If
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_MORTISE, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.MORTISE, EgtMsg(MSG_TOOLDB + 4)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_CHISEL, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.CHISEL, EgtMsg(MSG_TOOLDB + 9)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_COMPO, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.COMPO, EgtMsg(MSG_TOOLDB + 5)))
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_WATERJET, 0, sMachineIniPath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily(MCH_TF.WATERJET, EgtMsg(31010)))
End If
Return ActiveToolsFamiliesList.ToArray
End Function
''' <summary>
''' Structure that represent a tool's family, containing family type and family name
''' </summary>
Public Class ToolsFamily
Private m_Id As MCH_TF
Public ReadOnly Property Id As MCH_TF
Get
Return m_Id
End Get
End Property
Private m_Name As String
Public ReadOnly Property Name As String
Get
Return m_Name
End Get
End Property
Sub New(nFamilyId As MCH_TF, sFamilyName As String)
m_Id = nFamilyId
m_Name = sFamilyName
End Sub
End Class
#End Region ' Tool
End Module