From ecf3821d0808aafcff7ba472b2fb761da5935d77 Mon Sep 17 00:00:00 2001 From: Nicola Pievani Date: Tue, 18 Aug 2020 15:45:17 +0000 Subject: [PATCH] OmagOFFICE 2.2h2: -> gestione delle foto da databese OmagPHOTO con l'utilizzo della libreria EgtSTONELib. --- .../CompoParamPage/CompoParamPageV.xaml | 28 +- .../CompoParamPage/CompoParamPageVM.vb | 85 ++++ Constants/ConstGen.vb | 2 + Constants/ConstIni.vb | 5 + EgtStoneLib/ConstMach.vb | 2 + EgtStoneLib/CurrentMachine.vb | 3 + EgtStoneLib/EstCalc.vb | 20 + MachinePanel/MachinePanelVM.vb | 1 + MainWindow/MainWindowM.vb | 37 ++ MainWindow/MainWindowVM.vb | 40 +- My Project/AssemblyInfo.vb | 5 +- MyMachGroupPanel/MyMachGroupPanelVM.vb | 71 ++++ MySceneHost/MySceneHostVM.vb | 5 + OmagOFFICE.vbproj | 51 ++- OptionPanel/MachiningTab/SplitModeV.xaml | 2 +- OptionPanel/RawPartTab/OmagPhotoV.xaml | 13 + OptionPanel/RawPartTab/OmagPhotoV.xaml.vb | 2 + OptionPanel/RawPartTab/RawPartTabV.xaml | 22 +- OptionPanel/RawPartTab/RawPartTabVM.vb | 398 ++++++++++++------ OptionWindow/OptionWindowVM.vb | 2 +- SideEntityControl/SideEntityControlV.xaml | 2 +- SideEntityControl/SideEntityControlVM.vb | 121 ++++-- TopCommandBar/TopCommandBarVM.vb | 29 +- Utility/OmagOFFICEDictionary.xaml | 8 + Utility/OmagOFFICEMap.vb | 42 +- 25 files changed, 784 insertions(+), 212 deletions(-) create mode 100644 OptionPanel/RawPartTab/OmagPhotoV.xaml create mode 100644 OptionPanel/RawPartTab/OmagPhotoV.xaml.vb diff --git a/CompoWindow/CompoParamPage/CompoParamPageV.xaml b/CompoWindow/CompoParamPage/CompoParamPageV.xaml index bd7bca2..f697600 100644 --- a/CompoWindow/CompoParamPage/CompoParamPageV.xaml +++ b/CompoWindow/CompoParamPage/CompoParamPageV.xaml @@ -6,20 +6,34 @@ - - - + + + + + + - + Margin="0,0,2.5,0" + IsEnabled="{Binding Drip_IsEnabled}"> + + + + + diff --git a/CompoWindow/CompoParamPage/CompoParamPageVM.vb b/CompoWindow/CompoParamPage/CompoParamPageVM.vb index bcc5403..9fd7d1e 100644 --- a/CompoWindow/CompoParamPage/CompoParamPageVM.vb +++ b/CompoWindow/CompoParamPage/CompoParamPageVM.vb @@ -139,6 +139,8 @@ Public Class CompoParamPageVM If m_Drip_IsChecked Then Return m_SideAngle_IsChecked = value If value Then + Drip_IsEnabled = False + Engrave_IsEnabled = False Measure_Visibility = Visibility.Collapsed CompoManagerControl_Visibility = Visibility.Collapsed Back_Visibility = Visibility.Collapsed @@ -154,6 +156,9 @@ Public Class CompoParamPageVM SideEntityControlVM.ModeOpt.SIDEANGLE) SideEntityControl = New SideEntityControlV(m_SideEntityControlVM) Else + Drip_IsEnabled = OmagOFFICEMap.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.UNDER_CUT) And + Not String.IsNullOrWhiteSpace(CurrentMachine.sCurrDripSaw) + Engrave_IsEnabled = True m_SideEntityControlVM.Close() m_SideEntityControlVM = Nothing SideEntityControl = Nothing @@ -173,6 +178,17 @@ Public Class CompoParamPageVM End Set End Property + Private m_SideAngle_IsEnabled As Boolean = True + Public Property SideAngle_IsEnabled As Boolean + Get + Return m_SideAngle_IsEnabled + End Get + Set(value As Boolean) + m_SideAngle_IsEnabled = value + NotifyPropertyChanged("SideAngle_IsEnabled") + End Set + End Property + Private m_Drip_IsChecked As Boolean Public Property Drip_IsChecked As Boolean Get @@ -182,6 +198,8 @@ Public Class CompoParamPageVM If m_SideAngle_IsChecked Then Return m_Drip_IsChecked = value If value Then + SideAngle_IsEnabled = False + Engrave_IsEnabled = False Measure_Visibility = Visibility.Collapsed CompoManagerControl_Visibility = Visibility.Collapsed Back_Visibility = Visibility.Collapsed @@ -197,6 +215,8 @@ Public Class CompoParamPageVM SideEntityControlVM.ModeOpt.DRIP) SideEntityControl = New SideEntityControlV(m_SideEntityControlVM) Else + SideAngle_IsEnabled = True + Engrave_IsEnabled = True m_SideEntityControlVM.Close() m_SideEntityControlVM = Nothing SideEntityControl = Nothing @@ -223,6 +243,66 @@ Public Class CompoParamPageVM End Get Set(value As Boolean) m_Drip_IsEnabled = value + NotifyPropertyChanged("Drip_IsEnabled") + End Set + End Property + + Private m_Engrave_IsChecked As Boolean + Public Property Engrave_IsChecked As Boolean + Get + Return m_Engrave_IsChecked + End Get + Set(value As Boolean) + If m_SideAngle_IsChecked Then Return + m_Engrave_IsChecked = value + If value Then + SideAngle_IsEnabled = False + Drip_IsEnabled = False + Measure_Visibility = Visibility.Collapsed + CompoManagerControl_Visibility = Visibility.Collapsed + Back_Visibility = Visibility.Collapsed + ' Nascondo layer delle misure + Dim PartId As Integer = EgtGetFirstPart() + EgtSetStatus(EgtGetFirstNameInGroup(PartId, COMPO_LAYER_AUX), GDB_ST.OFF) + EgtSetStatus(EgtGetFirstNameInGroup(PartId, COMPO_LAYER_QUOTATURE), GDB_ST.OFF) + EgtSetStatus(EgtGetFirstNameInGroup(PartId, COMPO_LAYER_ETICHETTE), GDB_ST.OFF) + ' Imposto il loop esterno, non ci possono essere loop interni + CompoWindowMap.refCompoSceneHostV.SelectedLayer = EgtGetFirstNameInGroup(EgtGetFirstPart(), NAME_OUTLOOP) + m_SideEntityControlVM = New SideEntityControlVM(SideEntityControlVM.CallingWindowOpt.COMPO, + CompoWindowMap.refCompoSceneHostV.CompoScene, + SideEntityControlVM.ModeOpt.ENGRAVE) + SideEntityControl = New SideEntityControlV(m_SideEntityControlVM) + Else + SideAngle_IsEnabled = True + Drip_IsEnabled = OmagOFFICEMap.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.UNDER_CUT) And + Not String.IsNullOrWhiteSpace(CurrentMachine.sCurrDripSaw) + m_SideEntityControlVM.Close() + m_SideEntityControlVM = Nothing + SideEntityControl = Nothing + Measure_Visibility = Visibility.Visible + CompoManagerControl_Visibility = Visibility.Visible + Back_Visibility = Visibility.Visible + ' Deseleziono tutto + CompoWindowMap.refCompoSceneHostV.SelectedLayer = GDB_ID.NULL + ' Attivo layer delle misure + Dim PartId As Integer = EgtGetFirstPart() + EgtSetStatus(EgtGetFirstNameInGroup(PartId, COMPO_LAYER_AUX), GDB_ST.ON_) + EgtSetStatus(EgtGetFirstNameInGroup(PartId, COMPO_LAYER_QUOTATURE), GDB_ST.ON_) + EgtSetStatus(EgtGetFirstNameInGroup(PartId, COMPO_LAYER_ETICHETTE), GDB_ST.ON_) + End If + NotifyPropertyChanged("Engrave_IsChecked") + EgtZoom(ZM.ALL) + End Set + End Property + + Private m_Engrave_IsEnabled As Boolean = True + Public Property Engrave_IsEnabled As Boolean + Get + Return m_Engrave_IsEnabled + End Get + Set(value As Boolean) + m_Engrave_IsEnabled = value + NotifyPropertyChanged("Engrave_IsEnabled") End Set End Property @@ -269,6 +349,11 @@ Public Class CompoParamPageVM Return EgtMsg(MSG_IMPORTPAGEUC + 8) End Get End Property + Public ReadOnly Property EngraveMsg As String + Get + Return EgtMsg(MSG_DRAWPAGEUC + 17) + End Get + End Property #End Region ' Messages diff --git a/Constants/ConstGen.vb b/Constants/ConstGen.vb index d0929f8..02d0324 100644 --- a/Constants/ConstGen.vb +++ b/Constants/ConstGen.vb @@ -74,5 +74,7 @@ Module ConstGen Public Const TOOLMAKERS_DFL_DIR As String = "ToolMakers" ' Nome file Lua con le funzioni di attrezzaggio Public Const SETUP_LUA As String = "SetUp.lua" + ' Sottodirettorio per BackUp + Public Const BACKUP_DIR As String = "BackUp" End Module diff --git a/Constants/ConstIni.vb b/Constants/ConstIni.vb index 3864b29..0988fff 100644 --- a/Constants/ConstIni.vb +++ b/Constants/ConstIni.vb @@ -34,6 +34,7 @@ Module ConstIni Public Const K_DXFOUTDIR As String = "DxfOutDir" Public Const K_CONTOURFROMCAMERA As String = "ContourFromCamera" Public Const K_SUPPORT As String = "Support" + Public Const K_PHOTODIR As String = "PhotoDir" Public Const S_LANGUAGES As String = "Languages" Public Const K_LANGUAGE As String = "Language" @@ -94,6 +95,10 @@ Module ConstIni Public Const K_PARSIDE_AS_TRF As String = "ParSideAsTrf" Public Const K_SIDEANGLE As String = "SideAngle" Public Const K_DELTA_ANG_TG As String = "DeltaAngTg" + Public Const K_ENGRAVEOFFSET As String = "EngraveOffset" + Public Const K_ENGRAVEOFFSET2 As String = "EngraveOffset2" + Public Const K_ENGRAVEDEPTH As String = "EngraveDepth" + Public Const K_ENGRAVESHORT As String = "EngraveShort" Public Const K_DRIPOFFSET As String = "DripOffset" Public Const K_DRIPOFFSET2 As String = "DripOffset2" Public Const K_DRIPDEPTH As String = "DripDepth" diff --git a/EgtStoneLib/ConstMach.vb b/EgtStoneLib/ConstMach.vb index 52bb57f..4efc23a 100644 --- a/EgtStoneLib/ConstMach.vb +++ b/EgtStoneLib/ConstMach.vb @@ -104,6 +104,8 @@ Module ConstMach Public Const INFO_PROJINDEX As String = "ProjIndex" ' Info per materiale progetto Public Const INFO_PROJMAT As String = "ProjMat" + ' Info per materiale foto + Public Const INFO_PHOTOMAT As String = "PhotoMat" ' Info per nome lastra Public Const INFO_SLABNAME As String = "SlabName" ' Info per spessore lastra diff --git a/EgtStoneLib/CurrentMachine.vb b/EgtStoneLib/CurrentMachine.vb index 81555c5..83220f6 100644 --- a/EgtStoneLib/CurrentMachine.vb +++ b/EgtStoneLib/CurrentMachine.vb @@ -165,6 +165,9 @@ Public Module CurrentMachine ' Materiale correntemente attivo (dell'ultimo grezzo impostato) Private m_CurrMat As Material = Nothing + ' Materiale definito nel Data Base (dell'Omag-PHOTO) + Private m_CurrMatDB As String = String.Empty + ' Indica se la macchina ha il tastatore della lastra Private m_HasRawProbe As Boolean = True diff --git a/EgtStoneLib/EstCalc.vb b/EgtStoneLib/EstCalc.vb index 8a3b26c..2524b95 100644 --- a/EgtStoneLib/EstCalc.vb +++ b/EgtStoneLib/EstCalc.vb @@ -86,6 +86,16 @@ Module EstCalc End If End Function + Public Function SetMaterialPhoto(sMatDB As String) As Boolean + Dim nMGrpId As Integer = EgtGetCurrMachGroup() + ' insesrisco il nome del materiale letto dal DB + If Not String.IsNullOrEmpty(sMatDB) Then + Return EgtSetInfo(nMGrpId, INFO_PHOTOMAT, sMatDB) + Else + Return False + End If + End Function + Friend Function GetMaterialName() As String Dim nMGrpId As Integer = EgtGetCurrMachGroup() Dim sName As String = String.Empty @@ -93,6 +103,16 @@ Module EstCalc Return sName End Function + Friend Function GetMaterialPhoto() As String + Dim nMGrpId As Integer = EgtGetCurrMachGroup() + Dim sName As String = String.Empty + If EgtGetInfo(nMGrpId, INFO_PHOTOMAT, sName) Then + Return sName + Else + Return String.Empty + End If + End Function + '-------------------------------------------------------------------------------------------------- Public Function SetSlabName(sSlabName As String) As Boolean Dim nMGrpId As Integer = EgtGetCurrMachGroup() diff --git a/MachinePanel/MachinePanelVM.vb b/MachinePanel/MachinePanelVM.vb index af9ffaf..0869256 100644 --- a/MachinePanel/MachinePanelVM.vb +++ b/MachinePanel/MachinePanelVM.vb @@ -201,6 +201,7 @@ Public Class MachinePanelVM End If Dim MachDbWindowVM As New EgtWPFLib5.MachiningDbWindowVM(CurrentMachine.sMachIniFile, OmagOFFICEMap.refSceneHostVM.MainScene.GetCtx(), "Stone") Dim MachDbWindowV As New EgtWPFLib5.MachiningDbWindowV(Application.Current.MainWindow, MachDbWindowVM) + If EgtWPFLib5.MachiningTreeViewItem.m_MatType <> 0 Then MachDbWindowV.Height = 768 MachDbWindowV.Width = 1024 diff --git a/MainWindow/MainWindowM.vb b/MainWindow/MainWindowM.vb index 800aafe..4d3e7f4 100644 --- a/MainWindow/MainWindowM.vb +++ b/MainWindow/MainWindowM.vb @@ -1,12 +1,16 @@ Imports System.Threading Imports System.Math +Imports System.IO Imports EgtUILib Imports EgtWPFLib5 +Imports EgtSTONELib Public Class MainWindowM #Region "FIELDS" + Friend m_SlabDB As Boolean = False + Private m_sDataRoot As String = String.Empty Friend ReadOnly Property sDataRoot As String Get @@ -119,6 +123,20 @@ Public Class MainWindowM End Get End Property + Private m_sPhotoDir As String + Friend ReadOnly Property sPhotoDir As String + Get + Return m_sPhotoDir + End Get + End Property + + Private m_sBackUpDir As String + Friend ReadOnly Property sBackUpDir As String + Get + Return m_sBackUpDir + End Get + End Property + #End Region ' FIELDS #Region "CONSTRUCTOR" @@ -145,6 +163,9 @@ Public Class MainWindowM m_sTempDir = m_sDataRoot & "\" & TEMP_DIR ' Impostazione path Ini file IniFile.m_sIniFile = m_sConfigDir & "\" & INI_FILE_NAME + ' Impostazione direttorio per backup + m_sBackUpDir = m_sDataRoot & "\" & BACKUP_DIR + Directory.CreateDirectory(m_sBackUpDir) ' Impostazione path resources dir m_sResourcesRoot = m_sDataRoot & "\" & RES_DIR ' Impostazione direttorio per le macchine @@ -232,8 +253,24 @@ Public Class MainWindowM Dim sLuaBaseLib As String = String.Empty GetMainPrivateProfileString(S_LUA, K_BASELIB, "EgtBase", sLuaBaseLib) EgtLuaRequire(sLuaBaseLib) + ' abilitazione DB + m_SlabDB = (GetMainPrivateProfileInt(S_GENERAL, "SlabDB", 0) <> 0) + ' Leggo nome cartella delle foto + GetMainPrivateProfileString(S_GENERAL, K_PHOTODIR, sDataRoot & "\Data", m_sPhotoDir) + ' Creo connessione al Db + If m_SlabDB And Not ManageDb.ConnectToDb(m_sPhotoDir & "\" & DB_FILENAME) Then + EgtOutLog("Error connecting to DB") + MessageBox.Show(EgtMsg(92000 + 1), EgtMsg(MSG_EGTMSGBOX + 15), MessageBoxButton.OK, MessageBoxImage.Error) + m_SlabDB = False + End If ' Info su opzioni chiave EgtOutLog("KeyOptions : " & bKey.ToString() & " " & m_nKeyOptions.ToString() & " " & bProd.ToString()) + EgtSTONELib.MainData.SetConfigDir(m_sConfigDir) + EgtSTONELib.MainData.SetKeyLevel(m_nKeyLevel) + EgtSTONELib.MainData.SetKeyOptions(m_nKeyOptions) + EgtSTONELib.MainData.SetPhotoDir(m_sPhotoDir) + EgtSTONELib.MainData.SetBackUpDir(m_sBackUpDir) + EgtSTONELib.MainData.SetIsOmagOFFICE(True) End Sub Private Sub ManageInstance() diff --git a/MainWindow/MainWindowVM.vb b/MainWindow/MainWindowVM.vb index a1be232..d71b140 100644 --- a/MainWindow/MainWindowVM.vb +++ b/MainWindow/MainWindowVM.vb @@ -1,5 +1,6 @@ Imports EgtUILib Imports EgtWPFLib5 +Imports EgtSTONELib Imports System.IO Public Class MainWindowVM @@ -67,7 +68,8 @@ Public Class MainWindowVM ' Verifico che l'inizializzazione di tutte le parti del programma sia andata a buon fine If OmagOFFICEMap.EndInit() Then m_bInitStatus = True - ' altrimenti chiudo il programma + AddHandler OmagOFFICEMap.refSceneHostVM.MainController.OnSavedProject, AddressOf OmagOFFICEMap.refMainWindowVM.SetProjectSaved + ' altrimenti chiudo il programma Else m_bInitStatus = False End If @@ -111,6 +113,25 @@ Public Class MainWindowVM End If End Sub + Private ProjectSaved As Boolean = False + Private Sub SetProjectSaved() + If OmagOFFICEMap.refMainWindowVM.MainWindowM.m_SlabDB Then + ' quando salvo un progetto la lista corrente dievnta la lista origine + OmagOFFICEMap.refMachGroupPanelVM.SlabNameListOrig.Clear() + For Each CurrSlab In OmagOFFICEMap.refMachGroupPanelVM.SlabNameListCurr + OmagOFFICEMap.refMachGroupPanelVM.SlabNameListOrig.Add(CurrSlab) + Next + ' recupero il nome del progetto corrente + Dim sFileProject As String = String.Empty + EgtGetCurrFilePath(sFileProject) + StoneMap.refOptionPanelVM.sProjectAssigned = sFileProject + For Each OrigSlab In OmagOFFICEMap.refMachGroupPanelVM.SlabNameListOrig + StoneMap.refOptionPanelVM.SetAssignedSlab(OrigSlab) + Next + End If + ProjectSaved = True + End Sub + #End Region ' METHODS #Region "COMMANDS" @@ -153,12 +174,29 @@ Public Class MainWindowVM If OmagOFFICEMap.refOptionPanelVM.SelItem = OptionPanelVM.Tabs.SIMUL Then OmagOFFICEMap.refSimulTabVM.ResetSimulation() End If + + ProjectSaved = False + ' Imposto contesto principale EgtSetCurrentContext(OmagOFFICEMap.refSceneHostVM.MainScene.GetCtx()) ' Gestisco eventuale file corrente modificato Dim bAllowClose As Boolean = OmagOFFICEMap.refSceneHostVM.MainController.ManageModified() ' Se non confermata chiusura, esco If Not bAllowClose Then Return + + If OmagOFFICEMap.refMainWindowVM.MainWindowM.m_SlabDB AndAlso Not ProjectSaved Then + For Each CurrSlab In OmagOFFICEMap.refMachGroupPanelVM.SlabNameListCurr + StoneMap.refOptionPanelVM.SetAvailableSlab(CurrSlab) + Next + ' recupero il nome del progetto corrente + Dim sFileProject As String = String.Empty + EgtGetCurrFilePath(sFileProject) + StoneMap.refOptionPanelVM.sProjectAssigned = sFileProject + For Each OrigSlab In OmagOFFICEMap.refMachGroupPanelVM.SlabNameListOrig + StoneMap.refOptionPanelVM.SetAssignedSlab(OrigSlab) + Next + End If + ' Salvo nome ultimo file (per gestire bene multi istanza) Dim sFilePath As String = String.Empty If EgtGetCurrFilePath(sFilePath) Then WriteMainPrivateProfileString(S_GENERAL, K_LASTPROJ, sFilePath) diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index 8d635ed..779f6dc 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -69,5 +69,6 @@ Imports System.Windows ' by using the '*' as shown below: ' - - + + + diff --git a/MyMachGroupPanel/MyMachGroupPanelVM.vb b/MyMachGroupPanel/MyMachGroupPanelVM.vb index b32fb33..085e87a 100644 --- a/MyMachGroupPanel/MyMachGroupPanelVM.vb +++ b/MyMachGroupPanel/MyMachGroupPanelVM.vb @@ -1,11 +1,34 @@ Imports System.Collections.ObjectModel Imports System.IO Imports EgtUILib +Imports EgtSTONELib Imports EgtWPFLib5 Public Class MyMachGroupPanelVM Inherits MachGroupPanelVM +#Region "FIELDS & PROPERTIES" + + ' le liste devono essere svuotate iìogni volta che carico/creo un progetto + Private m_SlabNameListOrig As New List(Of String) + Public ReadOnly Property SlabNameListOrig As List(Of String) + Get + Return m_SlabNameListOrig + End Get + End Property + + Private m_SlabNameListCurr As New List(Of String) + Public Property SlabNameListCurr As List(Of String) + Get + Return m_SlabNameListCurr + End Get + Set(value As List(Of String)) + m_SlabNameListCurr = value + End Set + End Property + +#End Region ' FIELDS & REGION + #Region "CONSTRUCTOR" Sub New() @@ -49,6 +72,18 @@ Public Class MyMachGroupPanelVM EgtGetMachGroupName(nId, sName) EgtGetMachGroupMachineName(nId, sMachine) MachGroupList.Add(New MyMachGroup(nId, sName, sMachine, EgtGetFirstNameInGroup(nId, "Opers"))) + If OmagOFFICEMap.refMainWindowVM.MainWindowM.m_SlabDB Then + Dim sSlabNameDB As String = String.Empty + EgtGetInfo(nId, INFO_SLABNAME, sSlabNameDB) + Try + If Not m_SlabNameListOrig.Exists(Function(value As String) + Return value = sSlabNameDB + End Function) Then + m_SlabNameListOrig.Add(sSlabNameDB) + End If + Catch ex As Exception + End Try + End If nId = EgtGetNextMachGroup(nId) End While End Sub @@ -208,10 +243,44 @@ Public Class MyMachGroupPanelVM OmagOFFICEMap.refOptionPanelVM.SelItem = OptionPanelVM.Tabs.RAWPART End If + Dim sPhotoName As String = EstPhoto.GetPhotoName + + ' aggiungo alla lista delle lastre correnti/orig + Dim sSlabNameDB As String = GetSlabName() + LoadSlabsList(sSlabNameDB) Return True End Function + Public Sub LoadSlabsList(sSlabNameDB As String) + If Not OmagOFFICEMap.refMainWindowVM.MainWindowM.m_SlabDB Then Return + Dim sFileProject As String = String.Empty + EgtGetCurrFilePath(sFileProject) + If Not String.IsNullOrEmpty(sSlabNameDB) Then + OmagOFFICEMap.refRawPartTabVM.SetMaterialFromDB(EstCalc.GetMaterialPhoto()) + Try + If Not m_SlabNameListCurr.Exists(Function(value As String) + Return value = sSlabNameDB + End Function) Then + m_SlabNameListCurr.Add(sSlabNameDB) + End If + Catch ex As Exception + End Try + End If + End Sub + Public Overrides Function OnPreRemoveCurrMachGroup() As Boolean + Dim sSlabName As String = GetSlabName() + ' rendo AVAILABLE la lastra nel DB dell'OMAGPhoto + If OmagOFFICEMap.refMainWindowVM.MainWindowM.m_SlabDB Then + StoneMap.refOptionPanelVM.SetAvailableSlab(sSlabName) + For Each ItemSlab In m_SlabNameListCurr + If ItemSlab = sSlabName Then + m_SlabNameListCurr.Remove(ItemSlab) + Exit For + End If + Next + End If + EgtSetCurrentContext(OmagOFFICEMap.refSceneHostVM.MainScene.GetCtx()) ' Parcheggio tutti i pezzi presenti nella lastra Dim nPartId As Integer = EgtGetFirstPartInRawPart(GetRawId()) @@ -225,6 +294,7 @@ Public Class MyMachGroupPanelVM ' Passo al successivo nPartId = nNextPartId End While + ' Elimino eventuale fotografia e contorno associati Dim nPhoto As Integer = EstPhoto.GetPhoto() EgtErase(nPhoto) @@ -232,6 +302,7 @@ Public Class MyMachGroupPanelVM EgtErase(nContour) ' Elimino eventuale fotografia del VeinMatching associata VeinMatching.RemoveUnusedPhotos() + Return True End Function diff --git a/MySceneHost/MySceneHostVM.vb b/MySceneHost/MySceneHostVM.vb index 56a2b96..829329a 100644 --- a/MySceneHost/MySceneHostVM.vb +++ b/MySceneHost/MySceneHostVM.vb @@ -2,6 +2,7 @@ Imports System.IO Imports EgtUILib Imports EgtWPFLib5 +Imports System.Text.RegularExpressions Public Class MySceneHostVM Inherits EgtWPFLib5.SceneHostVM @@ -248,6 +249,10 @@ Public Class MySceneHostVM ' Recupero il nome della lastra Dim sSlabName As String = String.Empty EgtGetInfo(nMchGrpId, INFO_SLABNAME, sSlabName) + ' sostituisco eventuali caratteri speciali + If sSlabName.IndexOfAny("[~`!@#$%^&*()-+=|{}':;.,<>/\\?]".ToCharArray) <> -1 Then + sSlabName = Regex.Replace(sSlabName, "[~`!@#$%^&*()-+=|{}':;.,<>/\\?]", "_") + End If ' Creo path del file di salvataggio Dim sFileDest As String = sDirDest & "\" & Path.GetFileNameWithoutExtension(sFilePath) & "_" & If(String.IsNullOrEmpty(sSlabName), sMchGrp, sSlabName) & ".nge" ' Verifico se al gruppo è associata una foto diff --git a/OmagOFFICE.vbproj b/OmagOFFICE.vbproj index cfa444c..28ad817 100644 --- a/OmagOFFICE.vbproj +++ b/OmagOFFICE.vbproj @@ -23,7 +23,8 @@ bin\Debug\ - 41999,42016 + + AnyCPU @@ -36,7 +37,8 @@ bin\Release\ - 41999,42016 + + On @@ -57,7 +59,8 @@ bin\x86\Debug\ - 41999,42016 + + full x86 MinimumRecommendedRules.ruleset @@ -69,7 +72,8 @@ true - 41999,42016 + + None x86 MinimumRecommendedRules.ruleset @@ -82,7 +86,8 @@ bin\x64\Debug\ - 41999,42016 + + full x64 MinimumRecommendedRules.ruleset @@ -94,7 +99,8 @@ true - 41999,42016 + + pdbonly x64 MinimumRecommendedRules.ruleset @@ -104,6 +110,10 @@ Resources\OmagOFFICE.ico + + False + ..\..\EgtProg\DllD32\EgtSTONELib.dll + ..\..\EgtProg\DllD32\EgtUILib.dll @@ -114,6 +124,10 @@ ..\..\EgtProg\OmagOFFICE\Ionic.Zip.dll + + False + ..\..\EgtProg\DllD32\System.Data.SQLite.dll + @@ -213,6 +227,10 @@ + + MyToolDbWindowV.xaml + + MachiningTabV.xaml @@ -241,14 +259,17 @@ OptionPanelV.xaml - - SlabIdWindowV.xaml + + OmagPhotoV.xaml - RawPartTabV.xaml + + SlabIdWindowV.xaml + + SimulTabV.xaml @@ -381,6 +402,10 @@ MainWindowV.xaml Code + + MSBuild:Compile + Designer + Designer MSBuild:Compile @@ -409,14 +434,18 @@ Designer MSBuild:Compile - - MSBuild:Compile + Designer + MSBuild:Compile Designer MSBuild:Compile + + MSBuild:Compile + Designer + Designer MSBuild:Compile diff --git a/OptionPanel/MachiningTab/SplitModeV.xaml b/OptionPanel/MachiningTab/SplitModeV.xaml index 50232d5..e62bc1b 100644 --- a/OptionPanel/MachiningTab/SplitModeV.xaml +++ b/OptionPanel/MachiningTab/SplitModeV.xaml @@ -7,7 +7,7 @@