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