diff --git a/CAM/CamPolishing.vb b/CAM/CamPolishing.vb new file mode 100644 index 0000000..b9aada7 --- /dev/null +++ b/CAM/CamPolishing.vb @@ -0,0 +1,39 @@ +Imports EgtUILib + +Module CamPolishing + + Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow) + + Friend Function AddPolishings( sKitName As String, nContourId As Integer) As Boolean + EgtLuaCreateGlobTable( "POLI") + Dim nErr As Integer = 999 + Dim bOk As Boolean = EgtLuaExecFile( m_MainWindow.GetCamAutoDir() & "\Polishing.lua") + bOk = bOk AndAlso EgtLuaGetGlobIntVar( "POLI.ERR", nErr) AndAlso nErr = 0 + EgtLuaSetGlobStringVar( "POLI.KITNAME", sKitName) + EgtLuaSetGlobIntVar( "POLI.CNTID", nContourId) + bOk = bOk AndAlso EgtLuaCallFunction( "POLI.Add") + EgtLuaGetGlobIntVar( "POLI.ERR", nErr) + EgtLuaResetGlobVar( "POLI") + If nErr <> 0 Then + bOk = False + EgtOutLog("Error in Polishing.Add : " & nErr.ToString()) + End If + Return bOk + End Function + + Friend Function RemovePolishings() As Boolean + EgtLuaCreateGlobTable( "POLI") + Dim nErr As Integer = 999 + Dim bOk As Boolean = EgtLuaExecFile( m_MainWindow.GetCamAutoDir() & "\Polishing.lua") + bOk = bOk AndAlso EgtLuaGetGlobIntVar( "POLI.ERR", nErr) AndAlso nErr = 0 + bOk = bOk AndAlso EgtLuaCallFunction( "POLI.Remove") + EgtLuaGetGlobIntVar( "POLI.ERR", nErr) + EgtLuaResetGlobVar( "POLI") + If nErr <> 0 Then + bOk = False + EgtOutLog("Error in Polishing.Remove : " & nErr.ToString()) + End If + Return bOk + End Function + +End Module diff --git a/DirectCuts/Polishing.xaml.vb b/DirectCuts/Polishing.xaml.vb index 8ffe91f..1769a9d 100644 --- a/DirectCuts/Polishing.xaml.vb +++ b/DirectCuts/Polishing.xaml.vb @@ -17,7 +17,7 @@ Public Class Polishing Private m_ptRawMin As Point3d Private m_ptRawMax As Point3d ' Parametri della lavorazione - Private m_bCutOk As Boolean = False + Private m_bPoliOk As Boolean = False ' Lista dei kit di lucidatura disponibili Private m_KitList As New ObservableCollection(Of String) @@ -56,9 +56,11 @@ Public Class Polishing PolishingCmBx.SelectedItem = sLastPolishing If PolishingCmBx.SelectedIndex < 0 Then PolishingCmBx.SelectedIndex = 0 End If - ' Reset taglio e disabilito bottone esecuzione - m_bCutOk = False - UpdateSimulOkBtn() + ' Se non c'è kit selezionato, disabilito simulazione ed esecuzione + If PolishingCmBx.SelectedIndex < 0 Then + m_bPoliOk = False + UpdateSimulOkBtn() + End If ' Aggiorno visualizzazione EgtDraw() End Sub @@ -68,8 +70,8 @@ Public Class Polishing If Not m_bSimul Then ' Dichiaro sottopagina da non riattivare m_MainWindow.m_DirectCutPageUC.m_ActiveDirectCutPage = DirectCutPageUC.DirectCutPages.DirectCut - ' Rimuovo eventuale pezzo per taglio diretto - EraseDirectCutPart() + ' Cancello eventuali lucidature + RemovePolishings() ' Riattivo eventuali lavorazioni presenti ActivateAllMachinings() ' Abilito registrazione progetto modificato @@ -103,7 +105,7 @@ Public Class Polishing End Function Private Sub UpdateSimulOkBtn() - If m_bCutOk Then + If m_bPoliOk Then SimulBtn.IsEnabled = True SimulBtn.Foreground = Brushes.Black OkBtn.IsEnabled = True @@ -122,13 +124,15 @@ Public Class Polishing Dim sKitName As String = m_KitList( nIndex) WritePrivateProfileString( S_DIRECTCUTS, K_DC_POLISH_NAME, sKitName, m_MainWindow.GetIniFile()) ' Calcolo la lucidatura - + CreatePolishing( sKitName) + ' Aggiornamenti interfaccia utente e grafica + UpdateSimulOkBtn() EgtDraw() End Sub Private Sub SimulBtn_Click(sender As Object, e As RoutedEventArgs) Handles SimulBtn.Click - ' Verifico ci sia un taglio valido - If Not m_bCutOk Then Return + ' Verifico ci sia una lucidatura valida + If Not m_bPoliOk Then Return ' Salvo il progetto con le lavorazioni EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx()) Dim sMchPath As String = m_MainWindow.GetTempDir() & "\" & "DirectProj.nge" @@ -147,8 +151,8 @@ Public Class Polishing #If TRIAL Then m_CurrProjPage.SetWarningMessage("Trial Version") #Else - ' Verifico ci sia un taglio valido - If Not m_bCutOk Then Return + ' Verifico ci sia una lucidatura valida + If Not m_bPoliOk Then Return ' Salvo il progetto con le lavorazioni Dim sMchPath As String = m_MainWindow.GetTempDir() & "\" & "DirectProj.nge" m_MainWindow.m_CurrentProjectPageUC.SaveFile(sMchPath, False) @@ -175,34 +179,21 @@ Public Class Polishing m_MainWindow.m_DirectCutPageUC.LeftButtonGrid.Children.Remove(Me) End Sub - Private Function CreateFinishing() As Boolean + Private Function CreatePolishing( sKitName As String) As Boolean ' Verifico sia definita la lucidatura - + If String.IsNullOrWhiteSpace( sKitName) Then + m_bPoliOk = False + Return False + End If ' Disattivo eventuali lavorazioni presenti DeactivateAllMachinings() - ' Creo nuovo pezzo per la lavorazione - Dim nPartId = EgtCreateGroup(GDB_ID.ROOT) - EgtSetName(nPartId, NAME_DIRECTCUT) - Dim nLayerId = EgtCreateGroup(nPartId) - EgtSetName(nLayerId, NAME_OUTLOOP) + ' Cancello eventuali precedenti lucidature + RemovePolishings() ' Creo la lavorazione - - ' Calcolo punto di inserimento nel grezzo - 'Dim ptMin, ptMax As Point3d - 'EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, ptMin, ptMax) - 'Dim ptIns As Point3d = ptMin + (m_ptTabOri - m_ptRawMin) - 'ptIns.z = dRawHeight - ' Inserisco il pezzo nel grezzo - 'EgtAddPartToRawPart(nPartId, ptIns, m_MainWindow.m_CurrentProjectPageUC.m_nRawId) - ' Inserisco la lavorazione - 'm_bCutOk = AddMachinings(nPartId) AndAlso UpdateAllMachiningsToolpaths() - 'EgtSetCurrPhase(1) - ' Eventuale eliminazione Home finale - If Not m_MainWindow.m_CurrentMachine.bDirectCutsFinalHome Then - RemoveFinalHome() - End If - UpdateSimulOkBtn() - Return m_bCutOk + Dim nKerfId As Integer = EgtGetFirstNameInGroup( m_CurrProjPage.m_nRawId, NAME_KERF) + m_bPoliOk = AddPolishings( sKitName, nKerfId) + EgtSetCurrPhase( 1) + Return m_bPoliOk End Function End Class \ No newline at end of file diff --git a/OmagCUT.vbproj b/OmagCUT.vbproj index 6892c33..e39b162 100644 --- a/OmagCUT.vbproj +++ b/OmagCUT.vbproj @@ -166,6 +166,7 @@ AboutBoxWD.xaml + Polishing.xaml diff --git a/WorkInProgress/WorkInProgressPageUC.xaml.vb b/WorkInProgress/WorkInProgressPageUC.xaml.vb index 048993d..91a1724 100644 --- a/WorkInProgress/WorkInProgressPageUC.xaml.vb +++ b/WorkInProgress/WorkInProgressPageUC.xaml.vb @@ -323,9 +323,10 @@ Public Class WorkInProgressPageUC Else EgtOutLog("Problems with Licence") ' Box di avviso licenza con problemi : "Programma senza licenza. \n Caricala e riavvia il programma." "Errore" - Dim sText As String = EgtMsg(MSG_MISSINGKEYWD + 5) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 6) + Dim sKeyInfo As String = "" : EgtGetKeyInfo( sKeyInfo) + Dim sText As String = sKeyInfo & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 5) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 6) Dim sTitle As String = EgtMsg(MSG_MISSINGKEYWD + 1) - MissingKeyWnd = New EgtMsgBox(m_MainWindow, EgtMsg(MSG_MISSINGKEYWD + 1), EgtMsg(MSG_MISSINGKEYWD + 5) & " " & EgtMsg(MSG_MISSINGKEYWD + 6), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL) + MissingKeyWnd = New EgtMsgBox(m_MainWindow, sTitle, sText, EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL, 0, 2) If MissingKeyWnd.DialogResult = True Then ' Apro dialogo per richiesta file licenza Dim LicDlg As New Microsoft.Win32.OpenFileDialog() With {