diff --git a/Constants/ConstMachIni.vb b/Constants/ConstMachIni.vb
index 7e83cf0..1119149 100644
--- a/Constants/ConstMachIni.vb
+++ b/Constants/ConstMachIni.vb
@@ -276,6 +276,7 @@
Public Const K_CURRDRIPSAWING As String = "CurrDripSawing"
Public Const K_CURRDRIPDRILLING As String = "CurrDripDrilling"
Public Const K_CURRWATERJETTING As String = "CurrWaterJetting"
+ Public Const K_CURRWATERJETTINGQUALITY As String = "CurrWaterJettingQualilty"
Public Const S_MATERIALS As String = "Materials"
Public Const K_CURRMATERIAL As String = "CurrMaterial"
diff --git a/Machine/CurrentMachine.vb b/Machine/CurrentMachine.vb
index 5588f9b..2d9034c 100644
--- a/Machine/CurrentMachine.vb
+++ b/Machine/CurrentMachine.vb
@@ -1,4 +1,5 @@
Imports System.Collections.ObjectModel
+Imports EgtWPFLib5
Imports EgtUILib
Public Class CurrentMachine
@@ -114,6 +115,7 @@ Public Class CurrentMachine
Private m_sCurrDripSawing As String = String.Empty
Private m_sCurrDripDrilling As String = String.Empty
Private m_sCurrWaterJetting As String = String.Empty
+ Private m_sCurrWaterJettingQuality As String = String.Empty
' Spessore sottopezzo
Private m_dAdditionalTable As Double = 0
@@ -157,6 +159,9 @@ Public Class CurrentMachine
' Lista dei materiali
Private m_Materials As New ObservableCollection(Of Material)
+ ' Lista delle qualità di lavorazioni disponibili nel WaterJet
+ Private m_Qaulities As New ObservableCollection(Of String)
+
' Massimo id della lista materiali nel file ini
Private m_MaxIdMat As Integer = 0
@@ -709,6 +714,17 @@ Public Class CurrentMachine
End Set
End Property
+ Friend Property sCurrWaterJettingQuality As String
+ Get
+ Return m_sCurrWaterJettingQuality
+ End Get
+ Set(value As String)
+ If WritePrivateProfileString(S_MACH_MACH, K_CURRWATERJETTINGQUALITY, value, sMachIniFile) Then
+ m_sCurrWaterJettingQuality = value
+ End If
+ End Set
+ End Property
+
Friend ReadOnly Property WaterJettingActive As Double
Get
Return m_bWaterJetting AndAlso Not String.IsNullOrWhiteSpace(m_sCurrWaterJetting)
@@ -903,6 +919,12 @@ Public Class CurrentMachine
End Get
End Property
+ Friend ReadOnly Property Qualities As ObservableCollection(Of String)
+ Get
+ Return m_Qaulities
+ End Get
+ End Property
+
Friend Sub AddMaterial(value As Material)
For Each Material As Material In Materials
If Material.nId = value.nId Then
@@ -1157,6 +1179,8 @@ Public Class CurrentMachine
GetPrivateProfileString(S_MACH_MACH, K_CURRDRIPDRILLING, Nothing, m_sCurrDripDrilling, sMachIniFile)
' waterjetting
GetPrivateProfileString(S_MACH_MACH, K_CURRWATERJETTING, Nothing, m_sCurrWaterJetting, sMachIniFile)
+ ' waterjettingquality
+ GetPrivateProfileString(S_MACH_MACH, K_CURRWATERJETTINGQUALITY, Nothing, m_sCurrWaterJettingQuality, sMachIniFile)
' Leggo numero di portautensili
m_ToolChangerNbr = GetPrivateProfileInt(S_TOOLCHANGER, K_NUMBER, 0, sMachIniFile)
@@ -1218,10 +1242,16 @@ Public Class CurrentMachine
' Leggo la lista dei materiali
Dim Material As Material = Nothing
Dim nIndex As Integer = 1
- While (GetPrivateProfileMaterial(S_MATERIALS, K_MATERIAL & nIndex, Material, sMachIniFile))
- m_Materials.Add(Material)
- nIndex += 1
- End While
+
+ If m_bWaterJetting Then
+ LoadWJMaterial(nIndex)
+ Else
+ While (GetPrivateProfileMaterial(S_MATERIALS, K_MATERIAL & nIndex, Material, sMachIniFile))
+ m_Materials.Add(Material)
+ nIndex += 1
+ End While
+ End If
+
' Salvo massimo indice a cui sono arrivato per usarlo quando devo aggiungere nuovi elementi alla lista
m_MaxIdMat = nIndex - 1
@@ -1239,6 +1269,78 @@ Public Class CurrentMachine
m_nEnableBarCodeReader = GetPrivateProfileInt(S_MACH_BARCODEREADER, K_ENABLEBCR, 0, sMachIniFile)
End Sub
+ Public Sub LoadWJMaterial(ByRef nIndex As Integer)
+ ' Svuoto l'attuale lista di materiali
+ m_Materials.Clear()
+ ' Leggo valori da file INI e li carico nelle proprietà
+ Dim sFilePath As String = sMachDir & "\" & "WaterjetDb" & ".ini"
+ Dim Local_MaterialList = New ObservableCollection(Of EgtWPFLib5.WjMaterial)
+ If System.IO.File.Exists(sFilePath) Then
+ ' vettore dei materiali
+ Dim sMaterial As String = String.Empty
+ 'recupero i Materiali
+ If EgtUILib.GetPrivateProfileString(S_MATERIALS, "1", "", sMaterial, sFilePath) > 0 Then
+ Dim sMaterials() As String = sMaterial.Split(","c)
+ Dim ind As Integer = 0
+ For ind = 0 To sMaterials.Length() - 1
+ 'recupero i Sottomateriali
+ Dim Index As Integer = 1
+ Dim sSubMat As String = String.Empty
+ Dim SubMatList As New ObservableCollection(Of EgtWPFLib5.WjSubMaterial)
+ While EgtUILib.GetPrivateProfileString(sMaterials(ind), Index.ToString(), "", sSubMat, sFilePath) > 0
+ ' recupero la lista dei Q
+ Dim QInd As Integer = 1
+ Dim sParam As String = String.Empty
+ Dim QParamList As New ObservableCollection(Of EgtWPFLib5.WjParam)
+ While EgtUILib.GetPrivateProfileString(sMaterials(ind) & "." & sSubMat, QInd.ToString(), "", sParam, sFilePath) > 0
+ Dim sParams() As String = sParam.Split(","c)
+ If sParams.Length() >= 7 Then
+ Dim dThickness As Double
+ Dim dQ1 As Double
+ Dim dQ2 As Double
+ Dim dQ3 As Double
+ Dim dQ4 As Double
+ Dim dQ5 As Double
+ Dim dQExtra As Double
+ StringToDouble(sParams(0), dThickness)
+ StringToDouble(sParams(1), dQ1)
+ StringToDouble(sParams(2), dQ2)
+ StringToDouble(sParams(3), dQ3)
+ StringToDouble(sParams(4), dQ4)
+ StringToDouble(sParams(5), dQ5)
+ StringToDouble(sParams(6), dQExtra)
+ QParamList.Add(New EgtWPFLib5.WjParam(QInd, dThickness, dQ1, dQ2, dQ3, dQ4, dQ5, dQExtra))
+ End If
+ QInd += 1
+ End While
+ SubMatList.Add(New EgtWPFLib5.WjSubMaterial(sSubMat, QParamList))
+ Index += 1
+ End While
+ Local_MaterialList.Add(New EgtWPFLib5.WjMaterial(sMaterials(ind), SubMatList))
+ Next
+ End If
+ End If
+ ' definisco la lista delle qualità
+ m_Qaulities.Add("")
+ m_Qaulities.Add("Q1")
+ m_Qaulities.Add("Q2")
+ m_Qaulities.Add("Q3")
+ m_Qaulities.Add("Q4")
+ m_Qaulities.Add("Q5")
+ m_Qaulities.Add("QExtra")
+ ' costruiscoi la lista
+ Dim i As Integer = 0
+ Dim sName As String = String.Empty
+ For i = 0 To Local_MaterialList.Count - 1
+ sName = Local_MaterialList(i).Name
+ Dim j As Integer = 0
+ For j = 0 To Local_MaterialList(i).SubMaterialList.Count - 1
+ m_Materials.Add(New Material(nIndex, sName & "." & Local_MaterialList(i).SubMaterialList(j).Name))
+ nIndex += 1
+ Next
+ Next
+ End Sub
+
Friend Function IsVacuumMovePossible() As Boolean
' Recupero diametro lama corrente
EgtTdbSetCurrTool(sCurrSaw)
diff --git a/RawPhoto/ChooseMachining.xaml b/RawPhoto/ChooseMachining.xaml
index 025a233..deac32a 100644
--- a/RawPhoto/ChooseMachining.xaml
+++ b/RawPhoto/ChooseMachining.xaml
@@ -80,9 +80,9 @@
-
-
+
@@ -90,7 +90,18 @@
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/RawPhoto/ChooseMachining.xaml.vb b/RawPhoto/ChooseMachining.xaml.vb
index 4927e60..9e7e689 100644
--- a/RawPhoto/ChooseMachining.xaml.vb
+++ b/RawPhoto/ChooseMachining.xaml.vb
@@ -41,11 +41,13 @@ Public Class ChooseMachining
CurrMillingCmBx.ItemsSource = m_MillingList
CurrPocketingCmBx.ItemsSource = m_PocketingList
CurrWJettingCmBx.ItemsSource = m_WJettingList
+ CurrWJettingQualityCmBx.ItemsSource = m_CurrentMachine.Qualities
CurrSawingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 1)
AuxiliaryMachiningTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 2)
CurrDrillingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 3)
CurrMillingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 4)
+ CurrWJettingQualityTxBl.Text = "Quality"
CurrWJettingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 10)
CurrPocketingTxBl.Text = EgtMsg(90550)
@@ -248,6 +250,10 @@ Public Class ChooseMachining
End While
End Sub
+ Private Sub CreateQualityList()
+
+ End Sub
+
' Funzione che data la stringa di materiali e spessori della lavorazione, e i dati del grezzo corrente, restituisce se la lavorazione è valida oppure no
Private Function VerifyMatThickCompatibility() As Boolean
If Not IsNothing(m_CurrentMachine.CurrMat) Then
@@ -468,6 +474,8 @@ Public Class ChooseMachining
CurrPocketingCmBx.Visibility = Windows.Visibility.Hidden
CurrWJettingTxBl.Visibility = Windows.Visibility.Hidden
CurrWJettingCmBx.Visibility = Windows.Visibility.Hidden
+ CurrWJettingQualityTxBl.Visibility = Windows.Visibility.Hidden
+ CurrWJettingCmBx.Visibility = Windows.Visibility.Hidden
' -- FORATURA -- se foretto presente
If m_CurrentMachine.bDrill And m_DrillingList.Count() > 0 Then
@@ -562,6 +570,26 @@ Public Class ChooseMachining
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrMillingCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJetting Then m_MachIsModified = True
End If
+ ' Definizione di due righe della tabella con la giusta altezza
+ For Index As Integer = 1 To nNewRow
+ Dim Row As New RowDefinition
+ Row.Height = New GridLength(0.5, GridUnitType.Star)
+ ChooseMachiningGrid.RowDefinitions.Add(Row)
+ Next
+ If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
+ CurrWJettingQualityCmBx.SelectedItem = m_CurrentMachine.sCurrWaterJettingQuality
+ End If
+ ' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
+ If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
+ ' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
+ If CurrWJettingQualityCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJettingQuality Then m_MachIsModified = True
+ End If
+ m_RowNumber = m_RowNumber + nNewRow
+ CurrWJettingQualityTxBl.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow)
+ CurrWJettingQualityCmBx.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow + 1)
+
+ CurrWJettingQualityTxBl.Visibility = Windows.Visibility.Visible
+ CurrWJettingQualityCmBx.Visibility = Windows.Visibility.Visible
CurrWJettingTxBl.Visibility = Windows.Visibility.Visible
CurrWJettingCmBx.Visibility = Windows.Visibility.Visible
End If
@@ -590,6 +618,10 @@ Public Class ChooseMachining
m_MainWindow.m_CurrentMachine.sCurrWaterJetting = CurrWJettingCmBx.SelectedItem.ToString()
End Sub
+ Private Sub CurrQaulityWJettingCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles CurrWJettingQualityCmBx.SelectionChanged
+ m_MainWindow.m_CurrentMachine.sCurrWaterJettingQuality = CurrWJettingQualityCmBx.SelectedItem.ToString()
+ End Sub
+
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
DialogResult = True
End Sub
diff --git a/RawPhoto/RawPartPageUC.xaml.vb b/RawPhoto/RawPartPageUC.xaml.vb
index 49d43d6..bbec514 100644
--- a/RawPhoto/RawPartPageUC.xaml.vb
+++ b/RawPhoto/RawPartPageUC.xaml.vb
@@ -165,10 +165,16 @@ Public Class RawPartPageUC
End Sub
Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs)
+ ' aggiorno la lista dei materiali
+ Dim Index As Integer = 1
+ If m_CurrentMachine.bWaterJet Then
+ m_CurrentMachine.LoadWJMaterial(Index)
+ End If
+
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
m_bActive = True
' Assegno modalità acquisizione punti laser (da disegno se non collegato alla macchina)
- m_bFromDraw = ( m_MainWindow.m_CNCommunication.m_nNCType = 0)
+ m_bFromDraw = (m_MainWindow.m_CNCommunication.m_nNCType = 0)
' Correggo differenza tra machinebuttons che ha 10 colonne e spazio disponibile solo per 9 facendolo sbordare(non si vede perchè la parte che avanza è vuota)
m_MachineButtons.Width = LowerButtonGrid.ActualWidth / 12 * 10
' Se disponibile, imposto possibilità di contorno da foto
@@ -226,7 +232,7 @@ Public Class RawPartPageUC
End If
' aggiorno l'apparenza del grezzo
AdjustRawPartOnStart()
- ' Altrimenti lo definisco
+ ' Altrimenti lo definisco
Else
' Leggo da Ini gli ultimi valori
m_RawLength = GetPrivateProfileDouble(S_RAWPART, K_RAWLENGTH, 2500, m_MainWindow.GetIniFile())
@@ -241,12 +247,12 @@ Public Class RawPartPageUC
' Eventuale gestione dati lastra
If m_bSlabId Then
Dim sBlock As String = ""
- GetPrivateProfileString( S_RAWPART, K_BLOCKNAME, "", sBlock, m_MainWindow.GetIniFile())
- Dim nSlabNbr As Integer = GetPrivateProfileInt( S_RAWPART, K_SLABNBR, 0, m_MainWindow.GetIniFile())
+ GetPrivateProfileString(S_RAWPART, K_BLOCKNAME, "", sBlock, m_MainWindow.GetIniFile())
+ Dim nSlabNbr As Integer = GetPrivateProfileInt(S_RAWPART, K_SLABNBR, 0, m_MainWindow.GetIniFile())
nSlabNbr += 1
Dim sSlabNbr As String = nSlabNbr.ToString()
- WritePrivateProfileString( S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile())
- Utility.SetBlockAndSlabNbr( sBlock, sSlabNbr)
+ WritePrivateProfileString(S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile())
+ Utility.SetBlockAndSlabNbr(sBlock, sSlabNbr)
End If
End If
' Assegno dati grezzo rettangolare ai textbox