Files
egtbeamwall/EgtBEAMWALL.Core/MachGroupModel/BeamMachGroupM.vb
T
2021-09-10 10:01:53 +02:00

134 lines
4.8 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Public Class BeamMachGroupM
Inherits MyMachGroupM
Protected m_dStartCut As Double
Public Property dStartCut As Double
Get
Return m_dStartCut
End Get
Set(value As Double)
m_dStartCut = value
End Set
End Property
#Region "CONSTRUCTORS"
Protected Sub New()
End Sub
Public Shared Function CreateNewBeamMachGroup() As MachGroupM
Return New MachGroupM
End Function
Public Shared Function CreateBeamMachGroup(nId As Integer, sName As String, sMachine As String) As MachGroupM
Dim NewMachGroupM As New BeamMachGroupM
NewMachGroupM.m_Id = nId
NewMachGroupM.m_Name = sName
NewMachGroupM.m_Machine = sMachine
' NewMachGroupM.SetMachineType(MachineType.BEAM)
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_BARLEN, NewMachGroupM.m_dL)
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_BARHEIGHT, NewMachGroupM.m_dH)
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_BARWIDTH, NewMachGroupM.m_dW)
NewMachGroupM.m_dTotMat = NewMachGroupM.m_dL
NewMachGroupM.m_PartMList = LoadParts(NewMachGroupM)
For Each Part As BeamM In NewMachGroupM.m_PartMList
Part.UpdateOffset()
NewMachGroupM.m_dMatForPart += Part.dL
Next
ReadMachGroupData(NewMachGroupM)
Return NewMachGroupM
End Function
Public Shared Function CreateBeamMachGroup(sName As String, sMachine As String) As MachGroupM
Dim NewMachGroupM As New BeamMachGroupM
' Creo il nuovo gruppo di lavorazione con i dati ottenuti a seconda del caso in cui mi trovo
NewMachGroupM.m_Id = EgtAddMachGroup(sName, sMachine)
If NewMachGroupM.m_Id = GDB_ID.NULL Then Return Nothing
NewMachGroupM.m_Name = sName
NewMachGroupM.m_Machine = sMachine
'NewMachGroupM.SetMachineType(MachineType.BEAM)
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_BARLEN, NewMachGroupM.m_dL)
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_BARHEIGHT, NewMachGroupM.m_dH)
EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_BARWIDTH, NewMachGroupM.m_dW)
NewMachGroupM.m_dTotMat = NewMachGroupM.m_dL
For Each Part In NewMachGroupM.m_PartMList
NewMachGroupM.m_dMatForPart += Part.dL
Next
ReadMachGroupData(NewMachGroupM)
Return NewMachGroupM
End Function
#End Region ' CONSTRUCTORS
#Region "X DataLayer"
Public Shared Function CreateBeamMachGroupDL(nId As Integer, sName As String, sMachine As String, PartMList As List(Of PartM)) As MachGroupM
Dim NewMachGroupM As New BeamMachGroupM
NewMachGroupM.m_Id = nId
NewMachGroupM.m_Name = sName
NewMachGroupM.m_Machine = sMachine
'NewMachGroupM.SetMachineType(MachineType.BEAM)
'EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_BARLEN, NewMachGroupM.m_dL)
'EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_BARHEIGHT, NewMachGroupM.m_dH)
'EgtGetInfo(NewMachGroupM.m_Id, MGR_RPT_BARWIDTH, NewMachGroupM.m_dW)
'NewMachGroupM.m_dTotMat = NewMachGroupM.m_dL
NewMachGroupM.m_PartMList = PartMList
Return NewMachGroupM
End Function
#End Region
Private Shared Function LoadParts(NewBeamMachGroupM As BeamMachGroupM) As List(Of PartM)
Dim TempList As New List(Of PartM)
Dim nRawPartId As Integer = EgtGetFirstRawPart()
While nRawPartId <> GDB_ID.NULL
Dim nPartId As Integer = EgtGetFirstPartInRawPart(nRawPartId)
If nPartId <> GDB_ID.NULL Then
Dim NewBeam As BeamM = BeamM.CreateBeam(NewBeamMachGroupM, nPartId, nRawPartId)
TempList.Add(NewBeam)
End If
nRawPartId = EgtGetNextRawPart(nRawPartId)
End While
Return TempList
End Function
Public Overrides Sub RefreshPartList()
' leggo StartCut da posizione primo pezzo
Dim sInfo As String = ""
Dim sSplitInfo() As String
Dim bFound As Boolean = False
EgtGetInfo(Id, MGR_RPT_PART & 1, sInfo)
If Not String.IsNullOrWhiteSpace(sInfo) Then
sSplitInfo = sInfo.Split(","c)
StringToDouble(sSplitInfo(1), m_dStartCut)
Else
m_dStartCut = 0
End If
' aggiorno lista pezzi
RemoveAllParts()
Dim nRawPartId As Integer = EgtGetFirstRawPart()
While nRawPartId <> GDB_ID.NULL
Dim nPartId As Integer = EgtGetFirstPartInRawPart(nRawPartId)
If nPartId <> GDB_ID.NULL Then
Dim NewBeam As BeamM = BeamM.CreateBeam(Me, nPartId, nRawPartId)
AddPart(NewBeam)
NewBeam.UpdateOffset()
End If
nRawPartId = EgtGetNextRawPart(nRawPartId)
End While
End Sub
Public Overrides Sub RefreshGroupData()
EgtGetInfo(Id, MGR_RPT_BARLEN, dL)
EgtGetInfo(Id, MGR_RPT_BARHEIGHT, dH)
EgtGetInfo(Id, MGR_RPT_BARWIDTH, dW)
EgtGetInfo(Id, MGR_RPT_MATERIAL, sMATERIAL)
End Sub
End Class