diff --git a/EgtBEAMWALL.Core/Constants/ConstBeam.vb b/EgtBEAMWALL.Core/Constants/ConstBeam.vb index 46fc2942..a5d2eccd 100644 --- a/EgtBEAMWALL.Core/Constants/ConstBeam.vb +++ b/EgtBEAMWALL.Core/Constants/ConstBeam.vb @@ -24,6 +24,7 @@ NULL = 0 BEAM = 1 WALL = 2 + BOTH = 3 End Enum Enum CalcStates As Integer diff --git a/EgtBEAMWALL.Core/Utility/BTLIniFile.vb b/EgtBEAMWALL.Core/Utility/BTLIniFile.vb index 7ad8e6bd..12a17b1f 100644 --- a/EgtBEAMWALL.Core/Utility/BTLIniFile.vb +++ b/EgtBEAMWALL.Core/Utility/BTLIniFile.vb @@ -126,7 +126,11 @@ Public Module BTLIniFile Public Function GetBeamPrivateProfileParam(IpGRP As Integer, IpPRC As Integer, IsP As Boolean, IpFeatureParamIndex As String, IpParentFeature As BTLFeatureM, ByRef IpBTLParam As BTLParamM) As Boolean Dim sBTLParam As String = String.Empty - If EgtUILib.GetPrivateProfileString(CalcBeamPrivateProfileGRP(IpGRP) & "." & IpPRC, If(IsP, "P", "Q") & IpFeatureParamIndex, String.Empty, sBTLParam, m_sBTLIniFile) > 0 Then + Dim TmpGrp As Integer = CalcBeamPrivateProfileGRP(IpGRP) + If IpPRC = 138 Or IpPRC = 136 Then + TmpGrp = 2 + End If + If EgtUILib.GetPrivateProfileString(TmpGrp & "." & IpPRC, If(IsP, "P", "Q") & IpFeatureParamIndex, String.Empty, sBTLParam, m_sBTLIniFile) > 0 Then Dim sBTLParamParams() As String = sBTLParam.Split(","c) ' verifico numero minimo di parametri If sBTLParamParams.Count >= 6 Then diff --git a/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLFeatureVM.vb b/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLFeatureVM.vb index 91f70bd4..ca2e18ad 100644 --- a/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLFeatureVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/BTLParam/BTLFeatureVM.vb @@ -440,6 +440,10 @@ Public Class BTLFeatureVM End If End If NotifyPropertyChanged(NameOf(Calc_Background)) + NotifyPropertyChanged(NameOf(CALC_ROT_Visibility)) + NotifyPropertyChanged(NameOf(CALC_FALL_Visibility)) + NotifyPropertyChanged(NameOf(CALC_ERR_Letter)) + NotifyPropertyChanged(NameOf(CALC_ERR_Foreground)) End Sub ' funzione che seleziona la feature nella geometria diff --git a/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb b/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb index c9a76c18..d2024ca7 100644 --- a/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/MainMenu/MainMenuVM.vb @@ -166,6 +166,7 @@ Public Class MainMenuVM If File.Exists(Map.refProdManagerVM.CurrProd.sProdPath) Then ' apro progetto Map.refSceneHostVM.MainController.OpenProject(Map.refProdManagerVM.CurrProd.sProdPath, False) + 'DbControllers.m_ProdController.ResetController() DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, True) ' seleziono prima barra Map.refProjectVM.MachGroupPanelVM.SelFirstMachGroup() diff --git a/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb b/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb index 4fa3e06d..4a05dd75 100644 --- a/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/OpenProjectFileDialog/OpenProjectFileDialogVM.vb @@ -301,6 +301,44 @@ Public Class OpenProjectFileDialogVM End If ' cancello progetto DbControllers.m_ProdController.DeleteProd(SelProject.nProdId) + ' riporto prod in proj + Dim nCurrCtx As Integer = EgtGetCurrentContext() + Dim nTempCtx As Integer = EgtInitContext() + If nTempCtx <> 0 Then + ' inizializzo gestore lavorazioni + EgtInitMachMgr(Map.refMainWindowVM.MainWindowM.sMachinesRoot, Map.refMainWindowVM.MainWindowM.sToolMakersDir) + EgtOpenFile(SelProject.sProdPath) + ' cancello tutti i gruppi di lavorazione + Dim nMachGroupId As Integer = EgtGetFirstMachGroup() + While nMachGroupId <> GDB_ID.NULL + EgtSetCurrMachGroup(nMachGroupId) + Dim nRawPartId As Integer = EgtGetFirstRawPart() + While nRawPartId <> GDB_ID.NULL + Dim nPartId As Integer = EgtGetFirstPartInRawPart(nRawPartId) + While nPartId <> GDB_ID.NULL + EgtRemovePartFromRawPart(nPartId) + ' elimino pezzo copia + EgtErase(nPartId) + nPartId = EgtGetFirstPartInRawPart(nRawPartId) + End While + nRawPartId = EgtGetNextRawPart(nRawPartId) + End While + EgtRemoveMachGroup(nMachGroupId) + nMachGroupId = EgtGetFirstMachGroup() + End While + ' lo salvo in tutti i proj correlati + Dim ProdFile As ProdFileVM = DirectCast(SelProject, ProdFileVM) + For Each nProjId In ProdFile.nProjIdList + EgtSaveFile(ProdFile.GetProjPath(nProjId), NGE.BIN) + Next + ' torno sul contesto corrente + EgtSetCurrentContext(nCurrCtx) + EgtDeleteContext(nTempCtx) + End If + ' se proj corrente era il prod cancellato, aggiorno proj corrente + If Not IsNothing(Map.refProjManagerVM.CurrProj) AndAlso Map.refProjManagerVM.CurrProj.nProdId = SelProject.nProdId Then + Map.refProjManagerVM.UpdateCurrProj() + End If ' aggiorno lista progetti m_ProjectList.Clear() Dim DbProjectList As New List(Of ProdFileM) diff --git a/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb index a7dfc8f2..5742b782 100644 --- a/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/ProdManager/ProdManagerVM.vb @@ -176,18 +176,6 @@ Public Class ProdManagerVM MyMachGroupList.Add(MachGroup) Next End If - 'For Each MachGroup In Map.refProjectVM.MachGroupPanelVM.MachGroupVMList - ' If Map.refMachinePanelVM.SelectedMachine.nType = MachineType.BEAM Then - ' MyMachGroupList.Add(BeamMachGroupM.CreateBeamMachGroup(MachGroup.Id, MachGroup.Name, MachGroup.Machine)) - ' ElseIf Map.refMachinePanelVM.SelectedMachine.nType = MachineType.WALL Then - ' MyMachGroupList.Add(New WallMachGroup(MachGroup.Id, MachGroup.Name, MachGroup.Machine)) - ' End If - 'Next - 'If Map.refMachinePanelVM.SelectedMachine.nType = MachineType.BEAM Then - ' MyMachGroupList = Map.refProjectVM.MachGroupPanelVM.MachGroupList.Select(Function(x) New Core.BeamMachGroup(x.Id, x.Name, x.Machine)).ToList() - 'ElseIf Map.refMachinePanelVM.SelectedMachine.nType = MachineType.wall Then - ' MyMachGroupList = Map.refProjectVM.MachGroupPanelVM.MachGroupList.Select(Function(x) New Core.WallMachGroup(x.Id, x.Name, x.Machine)) - 'End If ' aggiorno pezzi su Db DbControllers.m_ProdController.UpdateMachGroup(CurrProd.nProdId, MyMachGroupList) ' se nuovo progetto @@ -227,41 +215,6 @@ Public Class ProdManagerVM End If ' verifico se salvare progetto corrente ProdFileVM.VerifyProjectModification(Map.refProdManagerVM.CurrProd) - '' cerco proj associato - 'Dim ProjList As New List(Of ProjectFile) - 'Dim AllDirsInDir As IEnumerable(Of String) = IO.Directory.EnumerateDirectories(Map.refMainWindowVM.MainWindowM.sProjsDir) - 'For Each Directory In AllDirsInDir - ' Dim AllFilesInDir As IEnumerable(Of String) = IO.Directory.EnumerateFiles(Directory) - ' For Each File In AllFilesInDir - ' If Path.GetExtension(File).ToLower() = ".nge" Then - ' If File.Contains(FILENAMESEPARATOR) Then - ' Dim DataFromFileName As String() = File.Split(FILENAMESEPARATOR) - ' If DataFromFileName.Count = 3 Then - ' If Not String.IsNullOrEmpty(DataFromFileName(1)) Then - ' Dim nTempProdId As Integer = 0 - ' Integer.TryParse(DataFromFileName(1), nTempProdId) - ' If nTempProdId = CurrProd.nProdId Then - ' ProjList.Add(New ProjectFile(ProjectType.PROJ, Path.GetFileNameWithoutExtension(File))) - ' End If - ' End If - ' End If - ' End If - ' End If - ' Next - 'Next - 'If ProjList.Count = 0 Then Return - '' se c'è più di un proj - 'Dim Proj As ProjectFile - 'If ProjList.Count > 1 Then - ' ' apro dialogo di scelta file - ' Dim OpenProjectFileDialogVM As New OpenProjectFileDialogVM - ' Dim OpenFile As New OpenProjectFileDialogV(Application.Current.MainWindow, OpenProjectFileDialogVM) - ' Dim DialogResult As Boolean? = OpenFile.EgtShowDialog(ProjectType.PROJ, ProjList) - ' If IsNothing(DialogResult) OrElse Not DialogResult Then Return - ' Proj = OpenProjectFileDialogVM.SelProject - 'Else - ' Proj = ProjList(0) - 'End If ' apro progetto proj Map.refProjManagerVM.SetCurrProj(nProjId) ' vado in pagina proj diff --git a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProdFileVM.vb b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProdFileVM.vb index 38386917..f6800375 100644 --- a/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProdFileVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/ProjectManager/ProdFileVM.vb @@ -11,7 +11,6 @@ Public Class ProdFileVM End Get End Property - Public ReadOnly Property nProjIdList As List(Of Integer) Get Return ProdFileM.nProjIdList @@ -86,6 +85,12 @@ Public Class ProdFileVM #End Region ' CONSTRUCTORS + Friend Function GetProjPath(nProjId As Integer) + Dim sPath As String = String.Empty + If nProjId = 0 Then Return String.Empty + Return refMainWindowVM.MainWindowM.sProjsDir & "\" & nProjId.ToString("0000") & "\" & nProjId.ToString("0000") & ".nge" + End Function + ' funzione che restituisce le parti di nome file Friend Shared Function VerifyProjectFile(nProjectType As ProjectType, ProjectFileName As String, ByRef nProjId As Integer, ByRef nProdId As Integer, ByRef sBTLFileName As String) As Boolean If nProjectType = ProjectType.PROJ Then @@ -194,7 +199,7 @@ Public Class ProdFileVM EgtResetModified() Return False End If - Else If CurrProject.bIsNew Then + ElseIf CurrProject.bIsNew Then ' lo elimino Directory.Delete(sProjectDirPath, True) DbControllers.m_ProdController.DeleteProd(CurrProject.nProdId) @@ -206,6 +211,7 @@ Public Class ProdFileVM EgtResetModified() Return False End If + DbControllers.m_ProdController.ResetController() DbControllers.m_ProdController.LockByProdId(CurrProject.nProdId, False) Return True End Function diff --git a/EgtBEAMWALL.ViewerOptimizer/Utility/Dictionary.xaml b/EgtBEAMWALL.ViewerOptimizer/Utility/Dictionary.xaml index 6a6fbfeb..6e0ec76e 100644 --- a/EgtBEAMWALL.ViewerOptimizer/Utility/Dictionary.xaml +++ b/EgtBEAMWALL.ViewerOptimizer/Utility/Dictionary.xaml @@ -437,6 +437,7 @@ +