diff --git a/Constants/ConstGen.vb b/Constants/ConstGen.vb index 6161835..4ddf146 100644 --- a/Constants/ConstGen.vb +++ b/Constants/ConstGen.vb @@ -21,6 +21,7 @@ Module ConstGen ' File con dati di licenza Public Const LIC_FILE_NAME As String = "OmagOFFICE.lic" Public Const S_LICENCE As String = "Licence" + Public Const K_LOCKID As String = "LockId" Public Const K_KEY As String = "Key" Public Const K_NESTKEY As String = "NestKey" diff --git a/Constants/ConstIni.vb b/Constants/ConstIni.vb index ec1270e..13e0357 100644 --- a/Constants/ConstIni.vb +++ b/Constants/ConstIni.vb @@ -114,6 +114,7 @@ Module ConstIni Public Const K_FILOTOPOFFSET As String = "FiloTopOffset" Public Const K_FILOTOPDEPTH As String = "FiloTopDepth" Public Const K_FILOTOPROUNDOFF As String = "FiloTopRoundOff" + Public Const K_TEXTCOLORENT As String = "TextColorEnt" Public Const S_NEST As String = "Nest" Public Const K_DIRECT As String = "Direct" diff --git a/CurrMachWindow/CurrMachWindowVM.vb b/CurrMachWindow/CurrMachWindowVM.vb index a0084ef..66a8849 100644 --- a/CurrMachWindow/CurrMachWindowVM.vb +++ b/CurrMachWindow/CurrMachWindowVM.vb @@ -456,28 +456,28 @@ Public Class CurrMachWindowVM ' --- DRILL --- CreateMachiningList(MCH_MY.DRILLING, m_AvailableDrillList, m_CurrDrillingList) ' Se la lista è vuota cancello la lavorazione corrente di questo tipo - If m_CurrDrillingList.Count = 0 Then + If m_CurrDrillingList.Count <= 1 Then CurrentMachine.sCurrDrilling = String.Empty End If ' --- MILL --- CreateMachiningList(MCH_MY.MILLING, m_AvailableMillList, m_CurrMillingList) ' Se la lista è vuota cancello la lavorazione corrente di questo tipo - If m_CurrMillingList.Count = 0 Then + If m_CurrMillingList.Count <= 1 Then CurrentMachine.sCurrMilling = String.Empty End If ' --- SCASSO --- CreateMachiningList(MCH_MY.POCKETING, m_AvailableMillList, m_CurrPocketingList) ' Se la lista è vuota cancello la lavorazione corrente di questo tipo - If m_CurrPocketingList.Count = 0 Then + If m_CurrPocketingList.Count <= 1 Then CurrentMachine.sCurrPocketing = String.Empty End If ' --- WATERJET --- CreateMachiningList(MCH_MY.WATERJETTING, m_AvailableWaterjetList, m_CurrWaterjettingList) ' Se la lista è vuota cancello la lavorazione corrente di questo tipo - If m_CurrWaterjettingList.Count = 0 Then + If m_CurrWaterjettingList.Count <= 1 Then CurrentMachine.sCurrWaterJetting = String.Empty End If m_CurrWaterjettingQualityList = New List(Of String)(CurrentMachine.Qualities) @@ -487,28 +487,28 @@ Public Class CurrMachWindowVM ' --- DRILL --- CreateMachiningList(MCH_MY.DRILLING, m_AvailableDrillList, m_CurrDrillingList) ' Se la lista è vuota cancello la lavorazione corrente di questo tipo - If m_CurrDrillingList.Count = 0 Then + If m_CurrDrillingList.Count <= 1 Then CurrentMachine.sCurrDrilling = String.Empty End If ' --- MILL --- CreateMachiningList(MCH_MY.MILLING, m_AvailableMillList, m_CurrMillingList) ' Se la lista è vuota cancello la lavorazione corrente di questo tipo - If m_CurrMillingList.Count = 0 Then + If m_CurrMillingList.Count <= 1 Then CurrentMachine.sCurrMilling = String.Empty End If ' --- SCASSO --- CreateMachiningList(MCH_MY.POCKETING, m_AvailableMillList, m_CurrPocketingList) ' Se la lista è vuota cancello la lavorazione corrente di questo tipo - If m_CurrPocketingList.Count = 0 Then + If m_CurrPocketingList.Count <= 1 Then CurrentMachine.sCurrPocketing = String.Empty End If ' --- WATERJET --- CreateMachiningList(MCH_MY.WATERJETTING, m_AvailableWaterjetList, m_CurrWaterjettingList) ' Se la lista è vuota cancello la lavorazione corrente di questo tipo - If m_CurrWaterjettingList.Count = 0 Then + If m_CurrWaterjettingList.Count <= 1 Then CurrentMachine.sCurrWaterJetting = String.Empty End If m_CurrWaterjettingQualityList = New List(Of String)(CurrentMachine.Qualities) diff --git a/DxfImportWindow/DxfImportSceneHostV.xaml.vb b/DxfImportWindow/DxfImportSceneHostV.xaml.vb index 2057b4b..32b4bae 100644 --- a/DxfImportWindow/DxfImportSceneHostV.xaml.vb +++ b/DxfImportWindow/DxfImportSceneHostV.xaml.vb @@ -112,7 +112,7 @@ Public Class DxfImportSceneHostV Private Sub OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ImportDxfScene.OnMouseDownScene ' Solo se in modalità angoli o gocciolatoio su lati esterni - If DxfImportWindowMap.refDxfImportWindowVM.SideAngle_IsChecked Or DxfImportWindowMap.refDxfImportWindowVM.Drip_IsChecked Then + If DxfImportWindowMap.refDxfImportWindowVM.SideAngle_IsChecked Or DxfImportWindowMap.refDxfImportWindowVM.Drip_IsChecked Or DxfImportWindowMap.refDxfImportWindowVM.Engrave_IsChecked Then OnMouseDownSceneSideAngle(e) ElseIf DxfImportWindowMap.refDxfImportWindowVM.FiloTop_IsChecked Then OnMouseDownSceneFiloTop(e) diff --git a/DxfImportWindow/DxfImportWindowV.xaml b/DxfImportWindow/DxfImportWindowV.xaml index 21a50a7..fd7fa05 100644 --- a/DxfImportWindow/DxfImportWindowV.xaml +++ b/DxfImportWindow/DxfImportWindowV.xaml @@ -6,7 +6,193 @@ Title="{Binding TitleMsg}" IsMinimizable="False" ShowInTaskbar="False" - Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}" WindowStartupLocation="CenterOwner"> + Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}" WindowStartupLocation="CenterOwner" + xmlns:theme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"> + + + + + + + + + + + + + + + + @@ -84,7 +270,7 @@ - @@ -98,6 +284,10 @@ IsChecked="{Binding FiloTop_IsChecked}" Style="{StaticResource CompoWindow_WrapToggleButton}"/> + + - - - + + @@ -178,10 +367,12 @@ TextWrapping="Wrap" TextAlignment="Center" Margin="0,0,0,20"/> - + + Content="{Binding SideEntityControl}" ScrollViewer.VerticalScrollBarVisibility="Visible"/> + + diff --git a/DxfImportWindow/DxfImportWindowVM.vb b/DxfImportWindow/DxfImportWindowVM.vb index b428d92..7c0710f 100644 --- a/DxfImportWindow/DxfImportWindowVM.vb +++ b/DxfImportWindow/DxfImportWindowVM.vb @@ -142,7 +142,7 @@ Public Class DxfImportWindowVM Return m_SideAngle_IsChecked End Get Set(value As Boolean) - If m_Drip_IsChecked Or m_UnderDrill_IsChecked Or m_FiloTop_IsChecked Then Return + If m_Drip_IsChecked Or m_UnderDrill_IsChecked Or m_FiloTop_IsChecked Or m_Engrave_IsChecked Then Return m_SideAngle_IsChecked = value If value Then ' Aggiungo regioni per percorsi interni @@ -190,7 +190,7 @@ Public Class DxfImportWindowVM Return m_FiloTop_IsChecked End Get Set(value As Boolean) - If m_SideAngle_IsChecked Or m_Drip_IsChecked Or m_UnderDrill_IsChecked Then Return + If m_SideAngle_IsChecked Or m_Drip_IsChecked Or m_UnderDrill_IsChecked Or m_Engrave_IsChecked Then Return m_FiloTop_IsChecked = value If value Then ' Aggiungo regioni per percorsi interni @@ -233,13 +233,61 @@ Public Class DxfImportWindowVM 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_Drip_IsChecked Or m_UnderDrill_IsChecked Or m_FiloTop_IsChecked Or m_SideAngle_IsChecked Then Return + m_Engrave_IsChecked = value + If value Then + ' Aggiungo regioni per percorsi interni + AdjustSelectRegions() + ' Messaggio di selezione contorno + SetOutputMessage(EgtMsg(MSG_DRAWPAGEUC + 6), MSG_TYPE.INFO) ' Selezionare un contorno + ' Imposto modalità sideangle + m_SideEntityControlVM = New SideEntityControlVM(SideEntityControlVM.CallingWindowOpt.DXFIMPORT, + DxfImportWindowMap.refDxfImportSceneHostV.ImportDxfScene, + SideEntityControlVM.ModeOpt.ENGRAVE) + SideEntityControl = New SideEntityControlV(m_SideEntityControlVM) + Open_IsEnabled = False + Type_IsEnabled = False + Measure_IsEnabled = False + PartData_Visibility = Visibility.Collapsed + OrderList_Visibility = Visibility.Collapsed + OkIsEnabled = False + Else + ' Rimuovo regioni per percorsi interni + RemoveSelectRegions() + m_SideEntityControlVM.Close() + Open_IsEnabled = True + Type_IsEnabled = True + Measure_IsEnabled = True + PartData_Visibility = Visibility.Visible + OrderList_Visibility = Visibility.Visible + OkIsEnabled = True + m_SideEntityControlVM = Nothing + SideEntityControl = Nothing + ' Elimino scritte angoli per input e inserisco quelle definitive + SideEntityControlVM.WriteSideAngleForNest(DxfImportWindowMap.refDxfImportSceneHostV.ImportDxfScene.GetCtx()) + ' Deseleziono tutto + DxfImportWindowMap.refDxfImportSceneHostV.Deselect() + ' Pulisco area messaggi + ClearOutputMessage() + End If + NotifyPropertyChanged("EngraveIsChecked") + EgtZoom(ZM.ALL) + End Set + End Property + Private m_Drip_IsChecked As Boolean Public Property Drip_IsChecked As Boolean Get Return m_Drip_IsChecked End Get Set(value As Boolean) - If m_SideAngle_IsChecked Or m_UnderDrill_IsChecked Or m_FiloTop_IsChecked Then Return + If m_SideAngle_IsChecked Or m_UnderDrill_IsChecked Or m_FiloTop_IsChecked Or m_Engrave_IsChecked Then Return m_Drip_IsChecked = value If value Then ' Messaggio di selezione contorno @@ -283,7 +331,7 @@ Public Class DxfImportWindowVM Return m_UnderDrill_IsChecked End Get Set(value As Boolean) - If m_SideAngle_IsChecked Or m_Drip_IsChecked Or m_FiloTop_IsChecked Then Return + If m_SideAngle_IsChecked Or m_Drip_IsChecked Or m_FiloTop_IsChecked Or m_Engrave_IsChecked Then Return m_UnderDrill_IsChecked = value If value Then ' Aggiungo regioni di selezione per percorsi interni @@ -493,6 +541,12 @@ Public Class DxfImportWindowVM End Get End Property + Public ReadOnly Property EngraveMsg As String + Get + Return EgtMsg(90397) + End Get + End Property + Public ReadOnly Property DripMsg As String Get Return EgtMsg(MSG_IMPORTPAGEUC + 8) @@ -844,7 +898,7 @@ Public Class DxfImportWindowVM Friend Sub SelectedPartChanged() ' Se sono in modalità inclinazioni o gocciolatoio calcolo lati inclinabili e creo testi - If SideAngle_IsChecked() Or Drip_IsChecked() Or FiloTop_IsChecked Then + If SideAngle_IsChecked() Or Drip_IsChecked() Or FiloTop_IsChecked Or Engrave_IsChecked Then m_SideEntityControlVM.ReLoadSideAnglePage(SideEntityControlVM.CallingWindowOpt.DXFIMPORT) End If End Sub diff --git a/MachinePanel/MachinePanelV.xaml b/MachinePanel/MachinePanelV.xaml index 117e790..74d451b 100644 --- a/MachinePanel/MachinePanelV.xaml +++ b/MachinePanel/MachinePanelV.xaml @@ -9,17 +9,19 @@ Height="20" Width="150"/>--> - + diff --git a/MainWindow/MainWindowM.vb b/MainWindow/MainWindowM.vb index 56febe5..ff1e5d7 100644 --- a/MainWindow/MainWindowM.vb +++ b/MainWindow/MainWindowM.vb @@ -219,12 +219,17 @@ Public Class MainWindowM EgtUILib.GetPrivateProfileString( S_LICENCE, K_NESTKEY, "", sNestKey, sLicFile) EgtSetNestKey( sNestKey) Dim bNetHwKey As Boolean = ( GetMainPrivateProfileInt(S_GENERAL, K_NETKEY, 0) = 1) - EgtSetNetHwKey( bNetHwKey) + EgtSetNetHwKey(bNetHwKey) + Dim sLockId As String = "" + EgtUILib.GetPrivateProfileString(S_LICENCE, K_LOCKID, "", sLockId, sLicFile) + If Not String.IsNullOrEmpty(sLockId) Then + EgtSetLockId(sLockId) + End If ' Verifico abilitazione nesting automatico m_bAutoNestOption = Not String.IsNullOrWhiteSpace( sNestKey) ' Recupero livello e opzioni della chiave - Dim bKey As Boolean = EgtGetKeyLevel(9423, 2511, 1, m_nKeyLevel) And - EgtGetKeyOptions(9423, 2511, 1, m_nKeyOptions) + Dim bKey As Boolean = EgtGetKeyLevel(9423, 2607, 1, m_nKeyLevel) And + EgtGetKeyOptions(9423, 2607, 1, m_nKeyOptions) ' Verifico abilitazione prodotto Dim bProd As Boolean = GetKeyOption(KEY_OPT.OFFICE_BASE) ' Inizializzazione generale di EgtInterface diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index ec54836..e5bdb7a 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -69,6 +69,6 @@ Imports System.Windows ' by using the '*' as shown below: ' - - + + diff --git a/MySceneHost/MySceneHostVM.vb b/MySceneHost/MySceneHostVM.vb index 208292f..64c92bd 100644 --- a/MySceneHost/MySceneHostVM.vb +++ b/MySceneHost/MySceneHostVM.vb @@ -47,12 +47,27 @@ Public Class MySceneHostVM ' Problemi ' Se manca la chiave If OmagOFFICEMap.refMainWindowVM.MainWindowM.nKeyLevel = -1 Or OmagOFFICEMap.refMainWindowVM.MainWindowM.nKeyLevel = -2 Then - EgtOutLog("Missing Dongle") - ' Box di avviso chiave mancante : "Chiave non presente. \n Inserirla e riavviare il programma." "Errore" - Dim sText As String = EgtMsg(MSG_MISSINGKEYWD + 2) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 3) - Dim sTitle As String = EgtMsg(MSG_MISSINGKEYWD + 1) + If Not EgtGetNetHwKey() Then + EgtOutLog("Missing Dongle") + ' Box di avviso chiave mancante : "Chiave non presente. \nInserirla e riavviare il programma." "Errore" + Dim sText As String = EgtMsg(10102) & vbCrLf & EgtMsg(10103) + Dim sTitle As String = EgtMsg(10101) + MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error) + Else + EgtOutLog("NetDongle is full") + ' Box di avviso slot chiave di rete occupato : "Chiave di Rete completamente occupata. \n Uscire dal programma su un altro PC." "Errore" + Dim sText As String = EgtMsg(10110) & vbCrLf & EgtMsg(10111) + Dim sTitle As String = EgtMsg(10101) + MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error) + End If + ' Se altrimenti manca il collegamento con la chiave di rete + ElseIf OmagOFFICEMap.refMainWindowVM.MainWindowM.nKeyLevel = -9 Then + EgtOutLog("Missing Link with Net Dongle") + ' Box di avviso chiave mancante : "Collegamento con la Chiave di rete non riuscito. \n Verificare la connessione." "Errore" + Dim sText As String = EgtMsg(10108) & vbCrLf & EgtMsg(10109) + Dim sTitle As String = EgtMsg(10101) MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error) - ' Altrimenti manca la licenza + ' Altrimenti manca la licenza Else EgtOutLog("Problems with Licence") ' Box di avviso licenza con problemi : "Programma senza licenza. \n Caricala e riavvia il programma." "Errore" @@ -87,12 +102,14 @@ Public Class MySceneHostVM Public Overrides Sub InitSceneEvents() AddHandler MainScene.OnMouseDownScene, AddressOf OnMouseDownScene + 'AddHandler OnMouseDownScene_DoubleClick_1, AddressOf OnMouseDownScene_DoubleClick AddHandler MainScene.OnMouseMoveScene, AddressOf OnMouseMoveScene AddHandler MainScene.OnMouseUpScene, AddressOf OnMouseUpScene AddHandler MainScene.KeyDown, AddressOf OnKeyDownScene AddHandler MainScene.OnCursorPos, AddressOf OnCursorPos AddHandler MainScene.OnShowDistance, AddressOf OnShowDistance AddHandler MainScene.OnChangedSnapPointType, AddressOf OnChangedSnapPointType + End Sub Private Sub PreInitializeScene() @@ -719,6 +736,8 @@ Public Class MySceneHostVM End Sub Private Sub OnSavingProject(ByVal sender As Object, sFile As String) + ' Salvo le info del progetto + TopCommandBarVM.SetInfoProj(sFile) ' Recupero tutti i file di texture associabili ai gruppi di lavoro del progetto Dim sDirToSearch As String = Path.GetDirectoryName(sFile) Dim sFileToSearch As String = Path.GetFileNameWithoutExtension(sFile) & "." & PHOTO_NAME & "*" @@ -792,6 +811,13 @@ Public Class MySceneHostVM Private Sub OnMouseDownScene(sender As Object, e As Windows.Forms.MouseEventArgs) ' Si può selezionare solo con il tasto sinistro e se stato NULL If e.Button <> Windows.Forms.MouseButtons.Left Or Not MainScene.IsStatusNull() Then Return + If e.Clicks > 1 Then + Select Case OmagOFFICEMap.refOptionPanelVM.SelItem + Case OptionPanelVM.Tabs.MACHINING + OmagOFFICEMap.refMachiningTabVM.OnMouseDownScene_DoubleClick(sender, e) + Case OptionPanelVM.Tabs.SIMUL + End Select + End If ' Chiamo l'opportuno gestore Select Case OmagOFFICEMap.refOptionPanelVM.SelItem Case OptionPanelVM.Tabs.RAWPART diff --git a/OmagOFFICE.vbproj b/OmagOFFICE.vbproj index 1f258f3..c1277aa 100644 --- a/OmagOFFICE.vbproj +++ b/OmagOFFICE.vbproj @@ -128,8 +128,8 @@ My Project\app.manifest - - packages\DotNetZip.1.16.0\lib\net40\DotNetZip.dll + + ..\..\EgtProg\OmagOFFICE\DotNetZip.dll False @@ -979,6 +979,7 @@ + diff --git a/OptionPanel/MachiningTab/MachiningTabVM.vb b/OptionPanel/MachiningTab/MachiningTabVM.vb index 850b0b8..460596c 100644 --- a/OptionPanel/MachiningTab/MachiningTabVM.vb +++ b/OptionPanel/MachiningTab/MachiningTabVM.vb @@ -334,6 +334,12 @@ Public Class MachiningTabVM End If End Sub + Friend Sub OnMouseDownScene_DoubleClick(sender As Object, e As Windows.Forms.MouseEventArgs) + If m_MachiningMode = MachiningModeOpt.SPLIT Then + OmagOFFICEMap.refSplitModeVM.OnMouseDownScene_DoubleClick(sender, e) + End If + End Sub + #End Region ' EVENTS End Class diff --git a/OptionPanel/MachiningTab/SplitModeV.xaml b/OptionPanel/MachiningTab/SplitModeV.xaml index 10ffd8b..ba1fbcf 100644 --- a/OptionPanel/MachiningTab/SplitModeV.xaml +++ b/OptionPanel/MachiningTab/SplitModeV.xaml @@ -21,8 +21,12 @@ - - + + + + @@ -40,6 +44,7 @@ + @@ -378,7 +383,7 @@ ExpandDirection="Down" IsExpanded="{Binding bDirectSpLitCut_IsExpanded}"> - + - + - + - + - + + + + + + + + + -