From 2ad4c5af2145c45f97306727d7172c299b7af3cd Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Mon, 2 May 2022 13:01:58 +0200 Subject: [PATCH] - Aggiunto calcolo presa pinza su ripartenza - Correzione eccezioni --- EgtBEAMWALL.Core/Lib/NewMachGroupPanelVM.vb | 2 -- .../LoadingWnd/LoadingWndHelper.vb | 8 +++--- .../MachGroupModel/MyMachGroupPanelM.vb | 5 ---- .../OpenProjectFileDialogVM.vb | 2 +- EgtBEAMWALL.Core/Utility/LuaMsgManager.vb | 1 + EgtBEAMWALL.Core/ViewPanel/ViewPanelVM.vb | 4 +-- .../CALCPanel/CALCPanelVM.vb | 10 +++---- EgtBEAMWALL.Supervisor/Comms/TPAComm.vb | 2 +- .../MachGroupPanel/MyMachGroupVM.vb | 28 ++++++++++++++++++- .../MachManagingThread/MachManaging.vb | 2 ++ .../MainWindow/MainWindowVM.vb | 1 + .../BTLViewModel/BTLPartVM.vb | 2 +- .../BTLViewModel/BTLStructureVM.vb | 4 +-- .../NestingRunningWnd/NestingRunningWndVM.vb | 3 +- .../Utility/CurrentMachine.vb | 1 - 15 files changed, 49 insertions(+), 26 deletions(-) diff --git a/EgtBEAMWALL.Core/Lib/NewMachGroupPanelVM.vb b/EgtBEAMWALL.Core/Lib/NewMachGroupPanelVM.vb index cde25bf6..8a17d1d5 100644 --- a/EgtBEAMWALL.Core/Lib/NewMachGroupPanelVM.vb +++ b/EgtBEAMWALL.Core/Lib/NewMachGroupPanelVM.vb @@ -94,8 +94,6 @@ Public Class NewMachGroupPanelVM AddHandler m_MachGroupPanelM.MachGroupAdded, AddressOf OnMachGroupAdded If Not MachGroupPanelM.IsMultiMachGroup Then SetMachGroupPanelVisibility(False) CreateMachGroupVMList() - ' Creo riferimento a questa classe in LibMap - '''LibMap.SetRefMachGroupPanelVM(Me) End Sub #End Region ' CONSTRUCTOR diff --git a/EgtBEAMWALL.Core/LoadingWnd/LoadingWndHelper.vb b/EgtBEAMWALL.Core/LoadingWnd/LoadingWndHelper.vb index e91c42ba..e47a6f1b 100644 --- a/EgtBEAMWALL.Core/LoadingWnd/LoadingWndHelper.vb +++ b/EgtBEAMWALL.Core/LoadingWnd/LoadingWndHelper.vb @@ -19,14 +19,14 @@ Public Module LoadingWndHelper End Enum Dim m_MainWindow As Windows.Window - Public Function SetMainWindow(MainWindow As Windows.Window) + Public Sub SetMainWindow(MainWindow As Windows.Window) m_MainWindow = MainWindow - End Function + End Sub Private m_bMainWindow_IsActive As Boolean = True - Public Function SetMainWindowIsActive(IsActive As Boolean) + Public Sub SetMainWindowIsActive(IsActive As Boolean) m_bMainWindow_IsActive = IsActive - End Function + End Sub Delegate Sub CallbackLoadingDlg(ByRef CurrStep As Integer, ByRef StepText As String, ByRef nProgress As Integer, ByRef nNextProgress As Integer, ByRef MainWindow_IsActive As Boolean, ByRef bClose As Boolean) diff --git a/EgtBEAMWALL.Core/MachGroupModel/MyMachGroupPanelM.vb b/EgtBEAMWALL.Core/MachGroupModel/MyMachGroupPanelM.vb index 56718f79..f53bfcc3 100644 --- a/EgtBEAMWALL.Core/MachGroupModel/MyMachGroupPanelM.vb +++ b/EgtBEAMWALL.Core/MachGroupModel/MyMachGroupPanelM.vb @@ -361,11 +361,6 @@ Public Class MyMachGroupPanelM ' elimino pezzo copia EgtRemovePartFromRawPart(nDuploId) EgtErase(nDuploId) - '' recupero gruppo di lavorazione e trave dell'interfaccia - 'Dim BeamMachGroup As BeamMachGroupM = MachGroupMList.FirstOrDefault(Function(x) x.Id = nMachGroupId) - 'Dim Beam As BeamM = BeamMachGroup.PartMList.FirstOrDefault(Function(x) x.nPartId = nDuploId) - 'EgtSetCurrMachGroup(BeamMachGroup.Id) - '''Beam.DeletePart() Next End If DuploResetToDelete(nPartId) diff --git a/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogVM.vb b/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogVM.vb index be957dae..cf047a80 100644 --- a/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogVM.vb +++ b/EgtBEAMWALL.Core/OpenProjectFileDialog/OpenProjectFileDialogVM.vb @@ -278,7 +278,7 @@ Public MustInherit Class OpenProjectFileDialogVM Friend Function VerifySelected() As Boolean If IsNothing(SelProject) Then Return False - Dim AllFilesInDir As IEnumerable(Of String) + Dim AllFilesInDir As IEnumerable(Of String) = Nothing If m_ProjectType = Core.ConstBeam.ProjectType.PROJ Then ' verifico se esiste ProdId AllFilesInDir = IO.Directory.EnumerateFiles(SelProject.sProjDirPath) diff --git a/EgtBEAMWALL.Core/Utility/LuaMsgManager.vb b/EgtBEAMWALL.Core/Utility/LuaMsgManager.vb index 174f5d62..5d80f67e 100644 --- a/EgtBEAMWALL.Core/Utility/LuaMsgManager.vb +++ b/EgtBEAMWALL.Core/Utility/LuaMsgManager.vb @@ -25,6 +25,7 @@ Public Module LuaMsgManager Else Return LuaMsg End If + Return "" End Function End Module diff --git a/EgtBEAMWALL.Core/ViewPanel/ViewPanelVM.vb b/EgtBEAMWALL.Core/ViewPanel/ViewPanelVM.vb index 3b75529b..7cdd17cf 100644 --- a/EgtBEAMWALL.Core/ViewPanel/ViewPanelVM.vb +++ b/EgtBEAMWALL.Core/ViewPanel/ViewPanelVM.vb @@ -15,7 +15,7 @@ Public Class ViewPanelVM ' Posizione vista Private Shared m_nViewDir As VT = VT.ISO_SW - Public Shared Function BWSetView(nView As VT, Optional bRedraw As Boolean = True) + Public Shared Sub BWSetView(nView As VT, Optional bRedraw As Boolean = True) ' condizioni che cambiano la vista del progetto Select Case m_Type Case BWType.BEAM @@ -88,7 +88,7 @@ Public Class ViewPanelVM End Select End Select End Select - End Function + End Sub Public Shared Sub UpdateMachParam(ViewDir As VT) m_nViewDir = ViewDir diff --git a/EgtBEAMWALL.Supervisor/CALCPanel/CALCPanelVM.vb b/EgtBEAMWALL.Supervisor/CALCPanel/CALCPanelVM.vb index 4159ecd2..748c3b5c 100644 --- a/EgtBEAMWALL.Supervisor/CALCPanel/CALCPanelVM.vb +++ b/EgtBEAMWALL.Supervisor/CALCPanel/CALCPanelVM.vb @@ -116,7 +116,6 @@ Public Class CALCPanelVM Dim cutId As Integer = 0 Dim taskId As Integer = 0 Dim prevCutId As Integer = GDB_ID.NULL - Dim currPart As PartVM Dim lines As String() = System.IO.File.ReadAllLines(ResPath) For Each line As String In lines @@ -167,9 +166,9 @@ Public Class CALCPanelVM Machgroup.CalcMachGroupUpdate(0, 0, "") ' Ciclo ... Dim nCUTID As Integer = -1 - Dim CurrPartVM As PartVM - Dim CurrMachgroupVM As MyMachGroupVM - Dim CurrBTLFeatureVM As BTLFeatureVM + Dim CurrPartVM As PartVM = Nothing + Dim CurrMachgroupVM As MyMachGroupVM = Nothing + Dim CurrBTLFeatureVM As BTLFeatureVM = Nothing For Each Line In ProcessResultList ' se necessario recupero part If Line.nCUTID <> 0 Then @@ -232,7 +231,7 @@ Public Class CALCPanelVM End Function Private Shared Sub ProcessResultAdd(PRList As List(Of ProcessResult), NewPR As ProcessResult, Bar As Bar) - Dim Prev As ProcessResult + Dim Prev As ProcessResult = Nothing Select Case NewPR.Type Case ProcessResult.ProcessResultTypes.BAR If Bar.nProgramPage = ProjectType.PROJ Then @@ -264,6 +263,7 @@ Public Class CALCPanelVM Dim PartVM As PartVM = MachGroupVM.PartVMList.FirstOrDefault(Function(x) x.nPartId = nPartId) If Not IsNothing(PartVM) Then Return PartVM Next + Return Nothing End Function Private Shared Function GetMachgroupVMFromMachgroupId(nMachGroupId As Integer) As MyMachGroupVM diff --git a/EgtBEAMWALL.Supervisor/Comms/TPAComm.vb b/EgtBEAMWALL.Supervisor/Comms/TPAComm.vb index 85d87e84..fc29d6fb 100644 --- a/EgtBEAMWALL.Supervisor/Comms/TPAComm.vb +++ b/EgtBEAMWALL.Supervisor/Comms/TPAComm.vb @@ -93,7 +93,7 @@ Public Class TPAComm System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(channel, False) Dim remoteType As System.Runtime.Remoting.WellKnownClientTypeEntry = New System.Runtime.Remoting.WellKnownClientTypeEntry(GetType(ISOCNC.Remoting_Server), serverURI) System.Runtime.Remoting.RemotingConfiguration.RegisterWellKnownClientType(remoteType) - Dim objectUri As String + Dim objectUri As String = Nothing Dim messageSink As System.Runtime.Remoting.Messaging.IMessageSink = channel.CreateMessageSink("ipc://localhost:9090/IRemoteObject.rem", Nothing, objectUri) Console.WriteLine("The URI of the message sink is {0}.", objectUri) diff --git a/EgtBEAMWALL.Supervisor/MachGroupPanel/MyMachGroupVM.vb b/EgtBEAMWALL.Supervisor/MachGroupPanel/MyMachGroupVM.vb index b6b7cf6e..21c0a0a0 100644 --- a/EgtBEAMWALL.Supervisor/MachGroupPanel/MyMachGroupVM.vb +++ b/EgtBEAMWALL.Supervisor/MachGroupPanel/MyMachGroupVM.vb @@ -325,6 +325,8 @@ Public Class MyMachGroupVM Public Function RedoRawPart() As MyMachGroupVM If IsNothing(Map.refSupervisorManagerVM.CurrProd) Then Return Nothing + ' variabile che contiene anticipo di pinzaggio primo pezzo + Dim dHCING As Double = 0 ' creo nuovo gruppo di lavorazione Map.refProjectVM.ProdMachGroupPanelVM.AddMachGroup() Dim nCurrMachGroup As Integer = EgtGetCurrMachGroup() @@ -353,6 +355,11 @@ Public Class MyMachGroupVM For Index = 0 To m_PartVMList.Count - 1 Dim CurrPart As PartVM = m_PartVMList(Index) If CurrPart.bDO Then + ' se primo pezzo da fare + If nDone = 0 Then + ' recupero anticipo di pinzaggio da vecchia barra + dHCING = GetHCING(CurrPart.nPartId) + End If nDone += 1 ' creo copia del pezzo Dim nPartDuploId As Integer = EgtDuploNew(PartList(Index).nPartId) @@ -386,13 +393,15 @@ Public Class MyMachGroupVM End If Return Nothing End If + ' aggiorno anticipo di pinzaggio in primo pezzo + EgtSetInfo(EgtGetFirstRawPart(), "HCING", dHCING) 'aggiorno lista pezzi BeamMachGroup.MyMachGroupM.RefreshPartList() BeamMachGroup.MyMachGroupM.RefreshGroupData() Core.ViewPanelVM.BWSetView(VT.ISO_SW, False) ' salvo nuovo grezzo nel progetto Map.refSupervisorManagerVM.Save() - Dim LastDonePart As PartVM + Dim LastDonePart As PartVM = Nothing ' segno pezzi non completati come scrap For Index = 0 To m_PartVMList.Count - 1 Dim CurrPart As PartVM = m_PartVMList(Index) @@ -499,6 +508,23 @@ Public Class MyMachGroupVM Return MachGroup End Function + Private Function GetHCING(nOrigPartId As Integer) As Double + ' inizializzo nuovo contesto + Dim nCurrCtx As Integer = EgtGetCurrentContext() + Dim nTempCtx As Integer = EgtInitContext() + ' inizializzo gestore lavorazioni + EgtInitMachMgr(Map.refMainWindowVM.MainWindowM.sMachinesRoot, Map.refMainWindowVM.MainWindowM.sToolMakersDir) + Dim g = EgtOpenFile(Map.refSupervisorManagerVM.CurrProd.sProdDirPath & "\" & Name & ".bwe") + Dim nFirstId As Integer = EgtGetFirstMachGroup() + Dim f = EgtSetCurrMachGroup(nFirstId) + Dim nOldRawId As Integer = EgtGetRawPartFromPart(nOrigPartId) + Dim dHCING As Double = 0 + EgtGetInfo(nOldRawId, "HCING", dHCING) + EgtSetCurrentContext(nCurrCtx) + EgtDeleteContext(nTempCtx) + Return dHCING + End Function + #End Region ' ProduceMachGroup #End Region ' COMMANDS diff --git a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb index cb1e04bb..054a0ca4 100644 --- a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb +++ b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb @@ -899,6 +899,7 @@ Public Class MachManaging Num_Axium.StartTransfer() Return True End Select + Return False End Function Public Sub RemoveProgram(ProgramIndex As Integer, ProgramPath As String, ProgramType As String) @@ -990,6 +991,7 @@ Public Class MachManaging Case NCTypes.NUM_AXIUM Return NUMAxiumComm.InitVar(NewVar) End Select + Return Nothing End Function Private Shared Function GetPrivateProfileVariable(IpAppName As String, IpKeyName As String, IpFileName As String) As CommVar diff --git a/EgtBEAMWALL.Supervisor/MainWindow/MainWindowVM.vb b/EgtBEAMWALL.Supervisor/MainWindow/MainWindowVM.vb index a55dd797..b98a3f07 100644 --- a/EgtBEAMWALL.Supervisor/MainWindow/MainWindowVM.vb +++ b/EgtBEAMWALL.Supervisor/MainWindow/MainWindowVM.vb @@ -164,6 +164,7 @@ Public Class MainWindowVM If Not Integer.TryParse(sProdId, nProdId) OrElse nProdId <= 0 Then Return False Return True End Select + Return False End Function Friend Sub KeyDown(PressedKey As Key) diff --git a/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLPartVM.vb b/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLPartVM.vb index 720e7c05..43cad156 100644 --- a/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLPartVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLPartVM.vb @@ -433,7 +433,7 @@ Public Class BTLPartVM If EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_MATERIAL, value) Then ' verifico se ci sono altri pezzi con la sezione vecchia Dim bOtherSection As Boolean = Map.refProjectVM.BTLStructureVM.BTLPartVMList.Any(Function(x) x IsNot Me AndAlso x.Section = Section) - Dim OldSection As SectionXMaterial + Dim OldSection As SectionXMaterial = Nothing If Not bOtherSection Then ' recupero indice OldSection = Map.refProjectVM.BTLStructureVM.SectionList.FirstOrDefault(Function(x) x = Section) diff --git a/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLStructureVM.vb b/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLStructureVM.vb index c3582a56..96013875 100644 --- a/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLStructureVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/BTLViewModel/BTLStructureVM.vb @@ -1106,7 +1106,7 @@ Public Class BTLStructureVM End Sub ' funzione utilizata per aggiornare rot e flip dopo calcolo - Public Function RefreshRotFlip() As Boolean + Public Sub RefreshRotFlip() For Each BTLPart In BTLPartVMList If Not EgtGetInfo(BTLPart.nPartId, BTL_PRT_ROTATED, BTLPart.BTLPartM.nROTATED) Then BTLPart.BTLPartM.nROTATED = 0 @@ -1117,7 +1117,7 @@ Public Class BTLStructureVM BTLPart.NotifyPropertyChanged(NameOf(BTLPart.sROTATED)) BTLPart.NotifyPropertyChanged(NameOf(BTLPart.sINVERTED)) Next - End Function + End Sub #End Region ' METHODS diff --git a/EgtBEAMWALL.ViewerOptimizer/NestingRunningWnd/NestingRunningWndVM.vb b/EgtBEAMWALL.ViewerOptimizer/NestingRunningWnd/NestingRunningWndVM.vb index 2d23fb02..4c26ad69 100644 --- a/EgtBEAMWALL.ViewerOptimizer/NestingRunningWnd/NestingRunningWndVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/NestingRunningWnd/NestingRunningWndVM.vb @@ -95,6 +95,8 @@ Public Class NestingRunningWndVM Return "Nesting walls in rawparts..." Case SectionProgress.NestStates.CALCRAWPART Return "Generating rawparts with nested parts..." + Case Else + Return "" End Select End Get End Property @@ -270,7 +272,6 @@ Public Class NestingRunningWndVM Next End If Case WarehouseType.MEDIUM - Dim sCurrL As String Dim nIndex As Integer = 1 ' aggiungo le sezioni con diverse lunghezze in base al warehouse If Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.BEAM Then diff --git a/EgtBEAMWALL.ViewerOptimizer/Utility/CurrentMachine.vb b/EgtBEAMWALL.ViewerOptimizer/Utility/CurrentMachine.vb index c21cf7a9..a9debac1 100644 --- a/EgtBEAMWALL.ViewerOptimizer/Utility/CurrentMachine.vb +++ b/EgtBEAMWALL.ViewerOptimizer/Utility/CurrentMachine.vb @@ -193,7 +193,6 @@ Public Module CurrentMachine If bOk Then EgtLuaGetGlobIntVar("GWD.HOR_DRILL_DIAM", m_dHorDrillDiam) Dim nTemp As Integer - Dim dTemp As Double EgtLuaGetGlobIntVar("GWD.SIMUL_VIEW_DIR", nTemp) Select Case nTemp Case 1