Gestione selezione qualità lavorazione

This commit is contained in:
NicolaP
2021-12-16 18:33:55 +01:00
parent c336390baf
commit 94866ce13d
5 changed files with 165 additions and 13 deletions
+106 -4
View File
@@ -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)