diff --git a/CAM/CamAuto.vb b/CAM/CamAuto.vb index d818fe2..bf90f76 100644 --- a/CAM/CamAuto.vb +++ b/CAM/CamAuto.vb @@ -47,6 +47,26 @@ Friend Module CamAuto Return bOk End Function + ' versione CamAuto 2.6l1: gestione tagli con ridotto affondamento + Friend Function AddWaterJetMachining(LocaList As List(Of Integer), ByRef nWarn As Integer) As Boolean + EgtLuaCreateGlobTable("CAM") + SetLuaStandardCamParams() + For i As Integer = 0 To LocaList.Count - 1 + EgtLuaSetGlobIntVar("CAM.TAB_OPERID." & (i + 1).ToString, LocaList(i)) + Next + Dim nErr As Integer = 999 + Dim bOk As Boolean = EgtLuaExecFile(m_MainWindow.GetCamAutoDir() & "\CamAuto.lua") + bOk = bOk AndAlso EgtLuaGetGlobIntVar("CAM.ERR", nErr) AndAlso nErr = 0 + bOk = bOk AndAlso EgtLuaCallFunction("CAM.AddWaterJets") + EgtLuaGetGlobIntVar("CAM.ERR", nErr) + EgtLuaResetGlobVar("CAM") + If nErr <> 0 Then + bOk = False + EgtOutLog("Error in CamAuto : " & nErr.ToString()) + End If + Return bOk + End Function + Friend Function EraseMachinings(nPartId As Integer) As Boolean EgtLuaCreateGlobTable("CAM") EgtLuaSetGlobIntVar("CAM.PARTID", nPartId) @@ -543,6 +563,7 @@ Friend Module CamAuto Dim dReducedDepth As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_REDUCEDDEPTH, 1, m_MainWindow.GetMachIniFile()) ' Ciclo sulle lavorazioni Dim nOperId As Integer = EgtGetFirstOperation() + Dim LocalListOperId As New List(Of Integer) While nOperId <> GDB_ID.NULL ' verifico sia una lavorazione valida di taglio con lama If IsValidMachining( nOperId) And EgtGetOperationType( nOperId) = MCH_OY.SAWING Then @@ -557,12 +578,14 @@ Friend Module CamAuto ' se abilitato e attivo waterjet, lo aggiungo per completare il taglio If m_MainWindow.m_CurrentMachine.WaterJettingActive Then Dim nWarn As Integer = 0 - AddWaterJetMachining(nOperId, nWarn) + LocalListOperId.Add(nOperId) + 'AddWaterJetMachining(nOperId, nWarn) + End If End If - End If End If nOperId = EgtGetNextOperation(nOperId) End While + If LocalListOperId.Count > 0 Then AddWaterJetMachining(LocalListOperId, 0) Return bModified End Function diff --git a/CadCuts/CadCutPageUC.xaml.vb b/CadCuts/CadCutPageUC.xaml.vb index 8f39689..1e959f3 100644 --- a/CadCuts/CadCutPageUC.xaml.vb +++ b/CadCuts/CadCutPageUC.xaml.vb @@ -2,6 +2,7 @@ Imports EgtWPFLib Imports System.Reflection Imports System.Globalization +Imports EgtWPFLib5 Public Class CadCutPageUC diff --git a/CadCuts/SplitPageUC.xaml b/CadCuts/SplitPageUC.xaml index b0eb155..c8a109a 100644 --- a/CadCuts/SplitPageUC.xaml +++ b/CadCuts/SplitPageUC.xaml @@ -100,8 +100,14 @@ + + + - + diff --git a/CadCuts/SplitPageUC.xaml.vb b/CadCuts/SplitPageUC.xaml.vb index e3f2155..bb138f8 100644 --- a/CadCuts/SplitPageUC.xaml.vb +++ b/CadCuts/SplitPageUC.xaml.vb @@ -1,5 +1,6 @@ Imports System.Collections.ObjectModel Imports System.ComponentModel +Imports System.Drawing Imports EgtUILib Public Class SplitPageUC @@ -8,6 +9,9 @@ Public Class SplitPageUC Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow) Private WithEvents m_CurrProjPage As CurrentProjectPageUC + ' Creazione converter da String a ImageSource + Private ImageConverter As New ImageSourceConverter + ' Flag di pagina attiva Private m_bActive As Boolean = False ' Tipo movimento dei grezzi (manuale o con testa ventosa) @@ -183,6 +187,9 @@ Public Class SplitPageUC m_MainWindow.m_CurrentProjectPageUC.ClearMessage() End If End If + ' leggo lo stato del bottone per la visualizzazione delle etichette + LayNbArrTgBtn.IsChecked = (GetPrivateProfileInt(S_GENERAL, K_SHOWNBARROW, 1, m_MainWindow.GetIniFile()) <> 0) + SetLayNbArrTgBtn_Click() End Sub ' preparo la lista delle lavorazioni da mostrare in interfaccia @@ -765,6 +772,25 @@ Public Class SplitPageUC MoveItem(1) End Sub + Private Sub LayNbArrTgBtn_Click() Handles LayNbArrTgBtn.Click + SetLayNbArrTgBtn_Click() + WritePrivateProfileString(S_GENERAL, K_SHOWNBARROW, If(LayNbArrTgBtn.IsChecked, "1", "0"), m_MainWindow.GetIniFile()) + End Sub + + Private Sub SetLayNbArrTgBtn_Click() + If LayNbArrTgBtn.IsChecked Then + StatusOffNumbArrow(GDB_ST.ON_) + LayNbArrTgBtn.ToolTip = "Hide" + Dim Img As ImageSource = ImageConverter.ConvertFromString("pack://application:,,,/Resources/NewIcons/LightArrowOn.png") + LayNbArrImg.Source = Img + Else + StatusOffNumbArrow(GDB_ST.OFF) + LayNbArrTgBtn.ToolTip = "Show" + Dim Img As ImageSource = ImageConverter.ConvertFromString("pack://application:,,,/Resources/NewIcons/LightArrowOff.png") + LayNbArrImg.Source = Img + End If + End Sub + Private Sub MoveItem(direction As Integer) ' Checking selected item If m_CurrFirstInd = -1 OrElse MachiningLsBx.SelectedIndex < 0 Then @@ -2392,6 +2418,11 @@ Public Class SplitPageUC ' Aggiungo a numero info con identificativo della lavorazione e viceversa EgtSetInfo(nNbrId, "MId", m_MachiningList(nI).m_nId) EgtSetInfo(m_MachiningList(nI).m_nId, "NbrId", nNbrId) + If Not LayNbArrTgBtn.IsChecked Then + EgtSetStatus(nNbrId, GDB_ST.OFF) + Else + EgtSetStatus(nNbrId, GDB_ST.ON_) + End If End If ' Se taglio con lama, metto la direzione accanto al numero If m_MachiningList(nI).m_nType = MCH_OY.SAWING Then @@ -2403,6 +2434,11 @@ Public Class SplitPageUC ' Aggiungo a freccia info con identificativo della lavorazione e viceversa EgtSetInfo(nArrId, "MId", m_MachiningList(nI).m_nId) EgtSetInfo(m_MachiningList(nI).m_nId, "ArrId", nArrId) + If Not LayNbArrTgBtn.IsChecked Then + EgtSetStatus(nArrId, GDB_ST.OFF) + Else + EgtSetStatus(nArrId, GDB_ST.ON_) + End If Else m_MachiningList(nI).m_nArrId = GDB_ID.NULL End If @@ -2519,6 +2555,27 @@ Public Class SplitPageUC EgtResetMark(nNbrId) EgtResetMark(nArrId) End If + If Not LayNbArrTgBtn.IsChecked And Not bMark Then + EgtSetStatus(nNbrId, GDB_ST.OFF) + EgtSetStatus(nArrId, GDB_ST.OFF) + Else + EgtSetStatus(nNbrId, GDB_ST.ON_) + EgtSetStatus(nArrId, GDB_ST.ON_) + End If + End Sub + + Private Sub StatusOffNumbArrow(Status As GDB_ST) + For Each Item As SplitMach In m_MachiningList + Dim nOperId As Integer = Item.m_nId + Dim nNbrId As Integer = Item.m_nNbrId + Dim nArrId As Integer = Item.m_nArrId + Dim nInd As Integer = m_MachiningList.IndexOf(Item) + If nInd >= 0 AndAlso nInd < m_ItemList.Count AndAlso Not m_ItemList(nInd).IsSelected Then + EgtSetStatus(nNbrId, Status) + EgtSetStatus(nArrId, Status) + End If + Next + EgtDraw() End Sub Private Sub ColorNumberArrow(nI As Integer) diff --git a/Constants/ConstIni.vb b/Constants/ConstIni.vb index 43eba05..79f0ee9 100644 --- a/Constants/ConstIni.vb +++ b/Constants/ConstIni.vb @@ -54,6 +54,8 @@ Module ConstIni Public Const K_FRACTIONPATTERN As String = "FractionPattern" Public Const K_PRECISION As String = "Precision" Public Const K_QUITDRAWPAGE As String = "QuitDrawPage" + Public Const K_SHOWNBARROW As String = "ShowNbArrow" + Public Const K_SHOWEXPIREASSITANCE As String = "ShowExpireAssistance" Public Const S_LANGUAGES As String = "Languages" Public Const K_LANGUAGE As String = "Language" diff --git a/Constants/ConstMachIni.vb b/Constants/ConstMachIni.vb index b449bd4..794268e 100644 --- a/Constants/ConstMachIni.vb +++ b/Constants/ConstMachIni.vb @@ -182,6 +182,9 @@ Public Const K_PHOTO_TAB2_OFFSETY As String = "Tab2OffsetY" Public Const K_PHOTO_HQ_OFFSETX As String = "HQOffsetX" Public Const K_PHOTO_HQ_OFFSETY As String = "HQOffsetY" + Public Const K_CAMERA_DIRECT_CMD As String = "CameraDirectCmd" + Public Const K_CAMERA_STATE_VAR As String = "CameraStateVar" + Public Const K_ENABELE_GOHOME_FOR_PHOTO As String = "EnableGoHomeForPhoto" Public Const S_TOOLS As String = "Tools" Public Const K_DRILLBIT As String = "Drillbit" diff --git a/DirectCuts/SawTestUC.xaml.vb b/DirectCuts/SawTestUC.xaml.vb index 9d97258..2f06862 100644 --- a/DirectCuts/SawTestUC.xaml.vb +++ b/DirectCuts/SawTestUC.xaml.vb @@ -532,8 +532,8 @@ Public Class SawTestUC vtPerp.Rotate(Vector3d.Z_AX, +90) Else m_CurrProjPage.ClearMessage() - ' 91144 = Set machining side: right or left. - m_CurrProjPage.SetInfoMessage(EgtMsg(91144)) + ' 91143 = Set machining side: right or left. + m_CurrProjPage.SetInfoMessage(EgtMsg(91143)) End If Dim ptEnd As Point3d = ptStart + vtDir * m_dLen + vtPerp * dThick Dim dLen2 As Double = m_dLen / 2 diff --git a/LicenseWindow.xaml b/LicenseWindow.xaml index 3206a7b..c0b9729 100644 --- a/LicenseWindow.xaml +++ b/LicenseWindow.xaml @@ -3,15 +3,15 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib" FontFamily="{DynamicResource OmagCut_Font}" - Title="OpenFile" Height="500.6" Width="426.6" WindowStyle="None" + Title="OpenFile" Height="587.4" Width="500.6" WindowStyle="None" ResizeMode="NoResize" ShowInTaskbar="False" AllowsTransparency="True" Background="Transparent"> - + - + @@ -36,7 +36,7 @@ - diff --git a/LicenseWindow.xaml.vb b/LicenseWindow.xaml.vb index 3f7777a..692ef6b 100644 --- a/LicenseWindow.xaml.vb +++ b/LicenseWindow.xaml.vb @@ -17,7 +17,7 @@ Public Sub Init() Handles Me.Initialized IconTxBl.Text = "⚠️" - LicenseTxBl.Text = "Warning" & vbCrLf & m_sTitle + LicenseTxBl.Text = m_sTitle m_sMessage = m_sMessage.Replace("/n", "£") Dim sItems As String() = m_sMessage.Split("£") For Index As Integer = 0 To sItems.Count - 1 diff --git a/MainWindow.xaml.vb b/MainWindow.xaml.vb index a7c9fba..cfe9c1d 100644 --- a/MainWindow.xaml.vb +++ b/MainWindow.xaml.vb @@ -666,16 +666,26 @@ Class MainWindow End If End If + Dim bShowInfoAssistance As Boolean = True + bShowInfoAssistance = (GetPrivateProfileInt(S_GENERAL, K_SHOWEXPIREASSITANCE, "1", GetIniFile) <> 0) ' Or nAssLeftDays = 358 - If (nAssLeftDays <= 7 And nAssLeftDays >= 0) Or nAssLeftDays = 14 Or nAssLeftDays = 21 Or nAssLeftDays = 28 Then - Dim sMsg As String = EgtMsg(91141) ' Assistenza in scadenza /nContattare assistenza:/n + If bShowInfoAssistance And ((nAssLeftDays <= 7 And nAssLeftDays >= 0) Or nAssLeftDays = 14 Or nAssLeftDays = 21 Or nAssLeftDays = 28) Then + ' 91145=Avviso importante + Dim sMsg_Title As String = EgtMsg(91145) + ' 91146=Il contratto di aggiornamento della licenza in uso scadrà tra {0} giorni./n + Dim sMsg_AssStatus As String = String.Format(EgtMsg(91146), nAssLeftDays.ToString()) + ' 91147=Se desiderate rimanere aggiornati e continuare ad usufruire dei benefici del servizio, vi invitiamo a contattare la nostra assistenza al seguente indirizzo:/n + Dim sMsg_RefAssistance As String = EgtMsg(91147) Dim sAssistance As String = String.Empty GetPrivateProfileString(S_GENERAL, "Assistances", "", sAssistance, GetIniFile) Dim sItems As String() = sAssistance.Split(","c) For Each Item As String In sItems - sMsg &= " → " & Item.Trim & " /n" + sMsg_RefAssistance &= " → " & Item.Trim & " /n" Next - Dim MyLicWn As New LicenseWindow(Me, sMsg, "Assistance " & sAssStatus) + ' 91148=Grazie per la vostra collaborazione. + Dim sMsg_ThankYou As String = EgtMsg(91148) + Dim MyLicWn As New LicenseWindow(Me, sMsg_AssStatus & sMsg_RefAssistance & sMsg_ThankYou, sMsg_Title) + MyLicWn.WindowStartupLocation = WindowStartupLocation.CenterOwner MyLicWn.Show() End If @@ -1327,7 +1337,7 @@ Class MainWindow If m_OnlyFrame Then If nPrjType = CurrentProjectPageUC.PRJ_TYPE.FLATS And m_ActivePage <> Pages.RawPart And m_ActivePage <> Pages.DirectCut And m_ActivePage <> Pages.Simulation Then - Dim FrameWnd As New EgtMsgBox(Me, EgtMsg(91142), EgtMsg(91143), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL) + Dim FrameWnd As New EgtMsgBox(Me, EgtMsg(91141), EgtMsg(91142), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL) '' Gestione stato FastGrid 'm_CadCutPageUC.m_FastGridSlabManager.OnPreNewProject() ' Cancello progetto salvato con nome da file ini diff --git a/OmagCUT.vbproj b/OmagCUT.vbproj index 8713a7a..ea927d4 100644 --- a/OmagCUT.vbproj +++ b/OmagCUT.vbproj @@ -1385,6 +1385,10 @@ + + + + IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe diff --git a/RawPhoto/Camera.vb b/RawPhoto/Camera.vb index 9c412bf..fa61e01 100644 --- a/RawPhoto/Camera.vb +++ b/RawPhoto/Camera.vb @@ -347,6 +347,13 @@ Public Class Camera ' ------------------------------------ accensione riflettori ------------------------------------ + ' ------------------------------------ mando la testa in home ------------------------------------ + If Not GoHomeForPhoto() Then + EgtOutLog("Error in positioning") + End If + + ' ------------------------------------ mando la testa in home ------------------------------------ + ' Scatto una foto con eventuale riconoscimento del contorno (il programma deve essere già attivo) Dim bOk As Boolean = False Dim sArgs As String = "2 0" @@ -364,6 +371,64 @@ Public Class Camera Return bOk End Function + Private Function GoHomeForPhoto() As Boolean + Dim bGoHome As Boolean = GetPrivateProfileInt(S_PHOTO, K_ENABELE_GOHOME_FOR_PHOTO, 0, m_MainWindow.GetMachIniFile()) <> 0 + ' Se non configurato esco senza generare errore + If Not bGoHome Then Return True + ' Costruisco il bottone per potere eseguire il comando MDI + Dim GoHome As MachineButton = Nothing + Dim sDirectCmdFile As String = String.Empty + GetPrivateProfileString(S_PHOTO, K_CAMERA_DIRECT_CMD, "", sDirectCmdFile, m_MainWindow.GetMachIniFile()) + If String.IsNullOrEmpty(sDirectCmdFile) Then + Return False + Else + EgtOutLog("Direct command for positionig head: " & sDirectCmdFile) + End If + GoHome = New TwoStateButton("", sDirectCmdFile, "", "", "") + ' eseguo lo script lua associato + GoHome.ExecuteMDICommand(GoHome.TLuaScriptName) + ' Leggo nome variabile posizione home raggiunta + Dim CameraStateNameVar As String = String.Empty + GetPrivateProfileString(S_PHOTO, K_CAMERA_STATE_VAR, "", CameraStateNameVar, m_MainWindow.GetMachIniFile()) + If String.IsNullOrEmpty(CameraStateNameVar) Then + 'Return False + Else + EgtOutLog("Variable for read status of positioning head: " & CameraStateNameVar) + End If + ' 91144=Going home + m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage(EgtMsg(91144)) + UpdateUI() + ' Eseguo reset variabile posizione home raggiunta + m_MainWindow.m_CNCommunication.m_CN.DVariables_WriteVariables2(CameraStateNameVar, "0") + System.Threading.Thread.Sleep(300) + ' Definisco flag posizionamento completato + Dim bPositionOk As Boolean = False + For I As Integer = 0 To 40 + ' Devo rileggere la variabile ad ogni ciclo + m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(CameraStateNameVar, 3) + System.Threading.Thread.Sleep(100) + If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 3 Then + Dim CameraStateVal As Integer = CInt(m_MainWindow.m_CNCommunication.m_CN.d_DReadELS_value) + Select Case CameraStateVal + Case 0 + ' Non faccio alcunchè perchè si sta posizionando + Case 1 + ' Posizionamento completato + bPositionOk = True + Exit For + Case 2 + ' Errore + bPositionOk = False + Exit For + End Select + End If + System.Threading.Thread.Sleep(900) + Next + m_MainWindow.m_CurrentProjectPageUC.ClearMessage() + UpdateUI() + Return bPositionOk + End Function + Private Function WaitPhoto(nInd As Integer) As Boolean ' Ciclo di ricerca foto scattata Dim nMaxThick = 10 * m_nTimeout diff --git a/Resources/NewIcons/LightArrowOff.png b/Resources/NewIcons/LightArrowOff.png new file mode 100644 index 0000000..47de5d7 Binary files /dev/null and b/Resources/NewIcons/LightArrowOff.png differ diff --git a/Resources/NewIcons/LightArrowOn.png b/Resources/NewIcons/LightArrowOn.png new file mode 100644 index 0000000..17209c7 Binary files /dev/null and b/Resources/NewIcons/LightArrowOn.png differ