Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b43a8ff2bb | |||
| 733fd4dc09 | |||
| 71a4985392 | |||
| 0d4d9a4520 | |||
| 622439de62 | |||
| 618d02d7c6 | |||
| d37df9d0f4 | |||
| 011673510d | |||
| ff52b9a79b | |||
| 85a5200e6b | |||
| 0e665ef1b0 | |||
| 2b99df6238 | |||
| 39ea11a8c4 | |||
| 79c7e3e536 | |||
| e4eb264abb | |||
| 500aa2eacf | |||
| b55810f235 | |||
| b898346efb | |||
| 586e4689ae | |||
| 7668aa5766 | |||
| e64090bfaf | |||
| 7c71fd4842 | |||
| 888bf0fcf8 | |||
| 009f22e146 | |||
| ef14b08737 | |||
| 8f9bd3ecb7 | |||
| 3eb6518ea4 | |||
| b15eb92785 | |||
| 96511ca335 | |||
| 974dee54da | |||
| 7e52ce986f | |||
| 4fc4875b91 | |||
| b3138d1982 | |||
| e87622ef5d | |||
| aafe52d2da | |||
| ffe53bf725 | |||
| 832ea7aec5 | |||
| 6d9a157b35 | |||
| 71afc6554e | |||
| bc40da74ab | |||
| 405fde996c | |||
| 8321f09af8 | |||
| 391583b9ea | |||
| 5cf0472806 | |||
| 89598c154e | |||
| 785792d63b | |||
| 5874a39b25 | |||
| 43f3f2f6d8 | |||
| 79a883a303 | |||
| e3f88296e5 | |||
| e207ed7ece | |||
| e97175765b | |||
| 6a0ebb9fee | |||
| 0a698dae34 | |||
| b74c052dd1 | |||
| 330e501277 | |||
| b7d62ace2c | |||
| c6f353ec35 | |||
| 0b7bdd6ade | |||
| 3febbbbcbf | |||
| 31874a8b92 | |||
| c75d9d6bc2 | |||
| 2b306763c6 | |||
| f1b0a28e71 | |||
| 121f02fb0c | |||
| b25d73c0cb |
@@ -797,15 +797,15 @@ Public Class BTLPartM
|
||||
Dim vtVersY As New Vector3d
|
||||
sValArray = sValue.Split({","}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 9 Then
|
||||
StringToLen(sValArray(0), ptOri.x)
|
||||
StringToLen(sValArray(1), ptOri.y)
|
||||
StringToLen(sValArray(2), ptOri.z)
|
||||
StringToDouble(sValArray(3), vtVersX.x)
|
||||
StringToDouble(sValArray(4), vtVersX.y)
|
||||
StringToDouble(sValArray(5), vtVersX.z)
|
||||
StringToDouble(sValArray(6), vtVersY.x)
|
||||
StringToDouble(sValArray(7), vtVersY.y)
|
||||
StringToDouble(sValArray(8), vtVersY.z)
|
||||
StringToLenAdv(sValArray(0), ptOri.x)
|
||||
StringToLenAdv(sValArray(1), ptOri.y)
|
||||
StringToLenAdv(sValArray(2), ptOri.z)
|
||||
StringToDoubleAdv(sValArray(3), vtVersX.x)
|
||||
StringToDoubleAdv(sValArray(4), vtVersX.y)
|
||||
StringToDoubleAdv(sValArray(5), vtVersX.z)
|
||||
StringToDoubleAdv(sValArray(6), vtVersY.x)
|
||||
StringToDoubleAdv(sValArray(7), vtVersY.y)
|
||||
StringToDoubleAdv(sValArray(8), vtVersY.z)
|
||||
NewBTLPart.m_refTransf.ChangeOrigin(ptOri)
|
||||
NewBTLPart.m_refTransf.Setup(ptOri, ptOri + vtVersX, ptOri + vtVersY)
|
||||
End If
|
||||
@@ -815,10 +815,10 @@ Public Class BTLPartM
|
||||
EgtGetInfo(nPartId, BTL_PRT_CAMBER, sValue)
|
||||
sValArray = sValue.Split(New String() {":", "P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 10 Then
|
||||
StringToLen(sValArray(3), NewBTLPart.m_dCamberLen1)
|
||||
StringToLen(sValArray(5), NewBTLPart.m_dCamberLen2)
|
||||
StringToLen(sValArray(7), NewBTLPart.m_dCamberLen3)
|
||||
StringToLen(sValArray(9), NewBTLPart.m_dCamberCross3)
|
||||
StringToLenAdv(sValArray(3), NewBTLPart.m_dCamberLen1)
|
||||
StringToLenAdv(sValArray(5), NewBTLPart.m_dCamberLen2)
|
||||
StringToLenAdv(sValArray(7), NewBTLPart.m_dCamberLen3)
|
||||
StringToLenAdv(sValArray(9), NewBTLPart.m_dCamberCross3)
|
||||
End If
|
||||
Dim pFrom As Integer = sValue.IndexOf("SIDE: ") + "SIDE: ".Length
|
||||
Dim pTo As Integer = sValue.LastIndexOf(" P01")
|
||||
@@ -830,10 +830,10 @@ Public Class BTLPartM
|
||||
EgtGetInfo(nPartId, BTL_PRT_PARTOFFSET, sValue)
|
||||
sValArray = sValue.Split(New String() {":", "P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 10 Then
|
||||
StringToLen(sValArray(3), NewBTLPart.m_dPartOffsetSide1)
|
||||
StringToLen(sValArray(5), NewBTLPart.m_dPartOffsetSide2)
|
||||
StringToLen(sValArray(7), NewBTLPart.m_dPartOffsetSide3)
|
||||
StringToLen(sValArray(9), NewBTLPart.m_dPartOffsetSide4)
|
||||
StringToLenAdv(sValArray(3), NewBTLPart.m_dPartOffsetSide1)
|
||||
StringToLenAdv(sValArray(5), NewBTLPart.m_dPartOffsetSide2)
|
||||
StringToLenAdv(sValArray(7), NewBTLPart.m_dPartOffsetSide3)
|
||||
StringToLenAdv(sValArray(9), NewBTLPart.m_dPartOffsetSide4)
|
||||
End If
|
||||
pFrom = sValue.IndexOf("P04: ") + "P04: ".Length
|
||||
pTo = sValue.LastIndexOf(" P11")
|
||||
@@ -883,9 +883,9 @@ Public Class BTLPartM
|
||||
NewBTLPart.m_refGrainDir = New Vector3d
|
||||
sValArray = sValue.Split(New String() {",", ";"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 4 Then
|
||||
StringToDouble(sValArray(0), NewBTLPart.m_refGrainDir.x)
|
||||
StringToDouble(sValArray(1), NewBTLPart.m_refGrainDir.y)
|
||||
StringToDouble(sValArray(2), NewBTLPart.m_refGrainDir.z)
|
||||
StringToDoubleAdv(sValArray(0), NewBTLPart.m_refGrainDir.x)
|
||||
StringToDoubleAdv(sValArray(1), NewBTLPart.m_refGrainDir.y)
|
||||
StringToDoubleAdv(sValArray(2), NewBTLPart.m_refGrainDir.z)
|
||||
NewBTLPart.m_bGRAINDIRALIGN = (CInt(sValArray(3)) = 1)
|
||||
End If
|
||||
|
||||
@@ -1044,15 +1044,15 @@ Public Class BTLPartM
|
||||
' Dim vtVersY As New Vector3d
|
||||
' sValArray = sValue.Split({","}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 9 Then
|
||||
' StringToLen(sValArray(0), ptOri.x)
|
||||
' StringToLen(sValArray(1), ptOri.y)
|
||||
' StringToLen(sValArray(2), ptOri.z)
|
||||
' StringToDouble(sValArray(3), vtVersX.x)
|
||||
' StringToDouble(sValArray(4), vtVersX.y)
|
||||
' StringToDouble(sValArray(5), vtVersX.z)
|
||||
' StringToDouble(sValArray(6), vtVersY.x)
|
||||
' StringToDouble(sValArray(7), vtVersY.y)
|
||||
' StringToDouble(sValArray(8), vtVersY.z)
|
||||
' StringToLenAdv(sValArray(0), ptOri.x)
|
||||
' StringToLenAdv(sValArray(1), ptOri.y)
|
||||
' StringToLenAdv(sValArray(2), ptOri.z)
|
||||
' StringToDoubleAdv(sValArray(3), vtVersX.x)
|
||||
' StringToDoubleAdv(sValArray(4), vtVersX.y)
|
||||
' StringToDoubleAdv(sValArray(5), vtVersX.z)
|
||||
' StringToDoubleAdv(sValArray(6), vtVersY.x)
|
||||
' StringToDoubleAdv(sValArray(7), vtVersY.y)
|
||||
' StringToDoubleAdv(sValArray(8), vtVersY.z)
|
||||
' m_refTransf.ChangeOrigin(ptOri)
|
||||
' m_refTransf.Setup(ptOri, ptOri + vtVersX, ptOri + vtVersY)
|
||||
' End If
|
||||
@@ -1063,10 +1063,10 @@ Public Class BTLPartM
|
||||
' EgtGetInfo(nPartId, BTL_PRT_CAMBER, sValue)
|
||||
' sValArray = sValue.Split(New String() {": ", " P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 5 Then
|
||||
' StringToLen(sValArray(3), m_dCamberLen1)
|
||||
' StringToLen(sValArray(5), m_dCamberLen2)
|
||||
' StringToLen(sValArray(7), m_dCamberLen3)
|
||||
' StringToLen(sValArray(9), m_dCamberCross3)
|
||||
' StringToLenAdv(sValArray(3), m_dCamberLen1)
|
||||
' StringToLenAdv(sValArray(5), m_dCamberLen2)
|
||||
' StringToLenAdv(sValArray(7), m_dCamberLen3)
|
||||
' StringToLenAdv(sValArray(9), m_dCamberCross3)
|
||||
' End If
|
||||
' Dim pFrom As Integer = sValue.IndexOf("SIDE: ") + "SIDE: ".Length
|
||||
' Dim pTo As Integer = sValue.LastIndexOf(" P01")
|
||||
@@ -1078,10 +1078,10 @@ Public Class BTLPartM
|
||||
' EgtGetInfo(nPartId, BTL_PRT_PARTOFFSET, sValue)
|
||||
' sValArray = sValue.Split(New String() {": ", " P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 5 Then
|
||||
' StringToLen(sValArray(3), m_dPartOffsetSide1)
|
||||
' StringToLen(sValArray(5), m_dPartOffsetSide2)
|
||||
' StringToLen(sValArray(7), m_dPartOffsetSide3)
|
||||
' StringToLen(sValArray(9), m_dPartOffsetSide4)
|
||||
' StringToLenAdv(sValArray(3), m_dPartOffsetSide1)
|
||||
' StringToLenAdv(sValArray(5), m_dPartOffsetSide2)
|
||||
' StringToLenAdv(sValArray(7), m_dPartOffsetSide3)
|
||||
' StringToLenAdv(sValArray(9), m_dPartOffsetSide4)
|
||||
' End If
|
||||
' pFrom = sValue.IndexOf("P04: ") + "P04: ".Length
|
||||
' pTo = sValue.LastIndexOf(" P11")
|
||||
@@ -1105,9 +1105,9 @@ Public Class BTLPartM
|
||||
' m_refGrainDir = New Vector3d
|
||||
' sValArray = sValue.Split(New String() {",", ";"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 4 Then
|
||||
' StringToDouble(sValArray(0), m_refGrainDir.x)
|
||||
' StringToDouble(sValArray(1), m_refGrainDir.y)
|
||||
' StringToDouble(sValArray(2), m_refGrainDir.z)
|
||||
' StringToDoubleAdv(sValArray(0), m_refGrainDir.x)
|
||||
' StringToDoubleAdv(sValArray(1), m_refGrainDir.y)
|
||||
' StringToDoubleAdv(sValArray(2), m_refGrainDir.z)
|
||||
' m_bGRAINDIRALIGN = (CInt(sValArray(3)) = 1)
|
||||
' End If
|
||||
|
||||
|
||||
@@ -175,8 +175,10 @@
|
||||
Public Const BTL_PRT_REFSIDE = "REFERENCESIDE"
|
||||
Public Const BTL_PRT_ALIGNMENT = "ALIGNMENT"
|
||||
Public Const BTL_PRT_MATERIALTYPE = "MATERIALTYPE"
|
||||
Public Const BTL_PRT_DESCRIPTION = "NAM"
|
||||
|
||||
' parametri generici
|
||||
Public Const BTL_GEN_BTLPATH = "BTL"
|
||||
Public Const BTL_GEN_PROJNUM = "PROJECTNUMBER"
|
||||
Public Const BTL_GEN_PROJNAME = "PROJECTNAME"
|
||||
Public Const BTL_GEN_PROJPART = "PROJECTPART"
|
||||
@@ -299,6 +301,8 @@
|
||||
Public Const BTLFILENAME As String = "BTLFILENAME"
|
||||
Public Const EXP_PART As String = "ImportExport"
|
||||
Public Const EXP_MACHINE As String = "Machine"
|
||||
' parametro che indica se il progetto e' stato appena importato e quindi bisogna riverificare i MachGroup
|
||||
Public Const IMP_VERIFYMACHGROUP As String = "VerifyMachGroup"
|
||||
|
||||
' parametri modifica percorsi free contour
|
||||
Public Const PATH_SIDEANGLAYER As String = "SideAngLayer"
|
||||
|
||||
@@ -44,6 +44,7 @@ Public Module ConstIni
|
||||
Public Const K_DATADIR As String = "DataDir"
|
||||
Public Const K_ENABLEEDIT As String = "EnableEdit"
|
||||
Public Const K_FASTPRODUCE As String = "FastProduce"
|
||||
Public Const K_ADDPROJ As String = "AddProj"
|
||||
|
||||
'Public Const S_LANGUAGES As String = "Languages"
|
||||
'Public Const K_LANGUAGE As String = "Language"
|
||||
@@ -94,6 +95,7 @@ Public Module ConstIni
|
||||
Public Const S_IMPORT As String = "Import"
|
||||
Public Const K_BTLFLAG As String = "BtlFlag"
|
||||
Public Const K_WALLBTLFLAG As String = "WallBtlFlag"
|
||||
Public Const K_WALLOPPOSITESIDENESTING As String = "WallOppositeSideNesting"
|
||||
|
||||
'Public Const S_MACH As String = "Mach"
|
||||
'Public Const K_MACHINESDIR As String = "MachinesDir"
|
||||
@@ -102,6 +104,7 @@ Public Module ConstIni
|
||||
Public Const K_SUPERVISORMACH As String = "SupervisorMach"
|
||||
Public Const K_PASSWORD As String = "Password"
|
||||
Public Const K_CHANGEMACH As String = "ChangeMach"
|
||||
Public Const K_EXPORTBWE As String = "ExpBwe"
|
||||
|
||||
'Public Const S_SIMUL As String = "Simul"
|
||||
'Public Const K_SLIDERX As String = "SliderX"
|
||||
|
||||
@@ -28,7 +28,7 @@ Public Module DataGridColumnsIniFile
|
||||
Dim bIsReadOnly As Boolean = sColumnParams(4).Equals("1")
|
||||
Dim Width As Double
|
||||
Dim WidthType As DataGridLengthUnitType
|
||||
StringToDouble(sColumnParams(5), Width)
|
||||
StringToDoubleAdv(sColumnParams(5), Width)
|
||||
Integer.TryParse(sColumnParams(6), WidthType)
|
||||
Dim bVisible As Boolean = sColumnParams(7).Equals("1")
|
||||
Dim bCanUserEditVisible As Boolean = sColumnParams(8).Equals("1")
|
||||
@@ -65,7 +65,7 @@ Public Module DataGridColumnsIniFile
|
||||
Dim bIsReadOnly As Boolean = sColumnParams(4).Equals("1")
|
||||
Dim Width As Double
|
||||
Dim WidthType As DataGridLengthUnitType
|
||||
StringToDouble(sColumnParams(5), Width)
|
||||
StringToDoubleAdv(sColumnParams(5), Width)
|
||||
Integer.TryParse(sColumnParams(6), WidthType)
|
||||
Dim bVisible As Boolean = sColumnParams(7).Equals("1")
|
||||
Dim bCanUserEditVisible As Boolean = sColumnParams(8).Equals("1")
|
||||
|
||||
@@ -424,6 +424,7 @@ Public Class EgtDataGridColumn
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Property m_OrigIsReadOnly As Boolean = True
|
||||
Private Property m_IsReadOnly As Boolean = True
|
||||
Public Property IsReadOnly As Boolean
|
||||
Get
|
||||
@@ -561,6 +562,7 @@ Public Class EgtDataGridColumn
|
||||
m_CanUserReorder = bCanUserReorder
|
||||
m_CanUserResize = bCanUserResize
|
||||
m_CanUserSort = bCanUserSort
|
||||
m_OrigIsReadOnly = bIsReadOnly
|
||||
m_IsReadOnly = bIsReadOnly
|
||||
m_Width = Width
|
||||
m_Visible = bVisible
|
||||
@@ -588,7 +590,7 @@ Public Class EgtDataGridColumn
|
||||
Public Function SaveDataGridColumn() As Boolean
|
||||
Dim bOk As Boolean
|
||||
Dim sColumnParams = String.Empty
|
||||
sColumnParams = Name & "," & If(CanUserReorder, 1, 0) & "," & If(CanUserResize, 1, 0) & "," & If(CanUserSort, 1, 0) & "," & If(IsReadOnly, 1, 0) & "," & DoubleToString(Width.Value, 6) & "," & Width.UnitType & "," & If(Visible, 1, 0) & "," & If(CanUserEditVisible, 1, 0) & "," & CInt(SortDirection)
|
||||
sColumnParams = Name & "," & If(CanUserReorder, 1, 0) & "," & If(CanUserResize, 1, 0) & "," & If(CanUserSort, 1, 0) & "," & If(m_OrigIsReadOnly, 1, 0) & "," & DoubleToString(Width.Value, 6) & "," & Width.UnitType & "," & If(Visible, 1, 0) & "," & If(CanUserEditVisible, 1, 0) & "," & CInt(SortDirection)
|
||||
bOk = WriteColumnPrivateProfileParam(ParentDataGridName, DisplayIndex, sColumnParams)
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
@@ -420,7 +420,7 @@ Public Class MyMachGroupM
|
||||
EgtGetInfo(Id, MGR_RPT_PART & 1, sInfo)
|
||||
If Not String.IsNullOrWhiteSpace(sInfo) Then
|
||||
sSplitInfo = sInfo.Split(","c)
|
||||
StringToDouble(sSplitInfo(1), m_dStartCut)
|
||||
StringToDoubleAdv(sSplitInfo(1), m_dStartCut)
|
||||
Else
|
||||
m_dStartCut = 0
|
||||
End If
|
||||
|
||||
@@ -508,7 +508,7 @@ Public Class PartM
|
||||
Index += 1
|
||||
End While
|
||||
If bFound Then
|
||||
StringToDouble(sSplitInfo(1), NewPartM.m_dPOSX)
|
||||
StringToDoubleAdv(sSplitInfo(1), NewPartM.m_dPOSX)
|
||||
End If
|
||||
Else
|
||||
' leggo PosX, PosY, Rot e Flip
|
||||
|
||||
@@ -169,7 +169,7 @@ Public MustInherit Class MyMachGroupVM
|
||||
Return LenToString(MyMachGroupM.dStartCut, 3)
|
||||
End Get
|
||||
Set(value As String)
|
||||
StringToLen(value, MyMachGroupM.dStartCut)
|
||||
StringToLenAdv(value, MyMachGroupM.dStartCut, True)
|
||||
End Set
|
||||
End Property
|
||||
Public Property dStartCut As Double
|
||||
|
||||
@@ -107,7 +107,7 @@ Public MustInherit Class PartVM
|
||||
Return LenToString(m_PartM.dPOSX, 3)
|
||||
End Get
|
||||
Set(value As String)
|
||||
StringToLen(value, m_PartM.dPOSX)
|
||||
StringToLenAdv(value, m_PartM.dPOSX, True)
|
||||
End Set
|
||||
End Property
|
||||
Public Property dPOSX As Double
|
||||
@@ -217,7 +217,7 @@ Public MustInherit Class PartVM
|
||||
Return LenToString(m_PartM.dOffset, 3)
|
||||
End Get
|
||||
Set(value As String)
|
||||
StringToLen(value, m_PartM.dOffset)
|
||||
StringToLenAdv(value, m_PartM.dOffset, True)
|
||||
End Set
|
||||
End Property
|
||||
Public ReadOnly Property dOffset As Double
|
||||
@@ -235,7 +235,7 @@ Public MustInherit Class PartVM
|
||||
Return LenToString(m_PartM.dPOSY, 3)
|
||||
End Get
|
||||
Set(value As String)
|
||||
StringToLen(value, m_PartM.dPOSY)
|
||||
StringToLenAdv(value, m_PartM.dPOSY, True)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -250,7 +250,7 @@ Public MustInherit Class PartVM
|
||||
Return LenToString(m_PartM.dROT, 3) & "°"
|
||||
End Get
|
||||
Set(value As String)
|
||||
StringToLen(value, m_PartM.dROT)
|
||||
StringToLenAdv(value, m_PartM.dROT, True)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Imports System.Runtime.InteropServices
|
||||
<Assembly: AssemblyDescription("")>
|
||||
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
||||
<Assembly: AssemblyProduct("EgtBEAMWALL.Core")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2020-2022 by Egalware s.r.l.")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2020-2023 by Egalware s.r.l.")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
@@ -35,5 +35,5 @@ Imports System.Runtime.InteropServices
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.11.3")>
|
||||
<Assembly: AssemblyFileVersion("2.4.11.3")>
|
||||
<Assembly: AssemblyVersion("2.5.5.2")>
|
||||
<Assembly: AssemblyFileVersion("2.5.5.2")>
|
||||
|
||||
@@ -10,6 +10,9 @@ Public Class ProdFileM
|
||||
Return m_nProjIdList
|
||||
End Get
|
||||
End Property
|
||||
Public Sub SetProjIdList(value As List(Of Integer))
|
||||
m_nProjIdList = value
|
||||
End Sub
|
||||
|
||||
Protected m_sName As String
|
||||
Public ReadOnly Property sName As String
|
||||
|
||||
@@ -147,9 +147,9 @@ Public Module BTLIniFile
|
||||
Dim dMin As Double
|
||||
Dim dMax As Double
|
||||
Dim dDefault As Double
|
||||
StringToDouble(sBTLParamParams(2), dMin)
|
||||
StringToDouble(sBTLParamParams(3), dMax)
|
||||
StringToDouble(sBTLParamParams(4), dDefault)
|
||||
StringToDoubleAdv(sBTLParamParams(2), dMin)
|
||||
StringToDoubleAdv(sBTLParamParams(3), dMax)
|
||||
StringToDoubleAdv(sBTLParamParams(4), dDefault)
|
||||
Dim ParamType As BTLParamType
|
||||
If sBTLParamParams(0) = "d" Then
|
||||
ParamType = BTLParamType.DOUBLE_
|
||||
@@ -200,9 +200,9 @@ Public Module BTLIniFile
|
||||
Dim dMin As Double
|
||||
Dim dMax As Double
|
||||
Dim dDefault As Double
|
||||
StringToDouble(sBTLParamParams(2), dMin)
|
||||
StringToDouble(sBTLParamParams(3), dMax)
|
||||
StringToDouble(sBTLParamParams(4), dDefault)
|
||||
StringToDoubleAdv(sBTLParamParams(2), dMin)
|
||||
StringToDoubleAdv(sBTLParamParams(3), dMax)
|
||||
StringToDoubleAdv(sBTLParamParams(4), dDefault)
|
||||
Dim ParamType As BTLParamType
|
||||
If sBTLParamParams(0) = "d" Then
|
||||
ParamType = BTLParamType.DOUBLE_
|
||||
|
||||
@@ -27,7 +27,7 @@ Public Module DimensionsIniFile
|
||||
Dim GridLenType As GridUnitType
|
||||
Integer.TryParse(sValueParams(0), nDimIndex)
|
||||
Integer.TryParse(sValueParams(1), nDimType)
|
||||
StringToDouble(sValueParams(2), GridLenValue)
|
||||
StringToDoubleAdv(sValueParams(2), GridLenValue)
|
||||
Integer.TryParse(sValueParams(3), GridLenType)
|
||||
GridDimsList.Add(New GridDimension(GridName, nDimIndex, nDimType, New GridLength(GridLenValue, GridLenType)))
|
||||
End If
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// <param name="corePart"></param>
|
||||
/// <param name="currProjDbId"></param>
|
||||
/// <returns></returns>
|
||||
public static BTLPartModel ConvertFromCore(Core.BTLPartM corePart, int currProjDbId)
|
||||
public BTLPartModel ConvertFromCore(Core.BTLPartM corePart, int currProjDbId)
|
||||
{
|
||||
BTLPartModel answ = new BTLPartModel();
|
||||
if (corePart != null)
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// </summary>
|
||||
/// <param name="coreMacLog"></param>
|
||||
/// <returns></returns>
|
||||
public static LogMachineModel ConvertFromCore(Core.MachLog coreMacLog)
|
||||
public LogMachineModel ConvertFromCore(Core.MachLog coreMacLog)
|
||||
{
|
||||
LogMachineModel answ = new LogMachineModel();
|
||||
if (coreMacLog != null)
|
||||
@@ -53,7 +53,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// </summary>
|
||||
/// <param name="dbLog"></param>
|
||||
/// <returns></returns>
|
||||
public static Core.MachLog ConvertToCore(LogMachineModel dbLog)
|
||||
public Core.MachLog ConvertToCore(LogMachineModel dbLog)
|
||||
{
|
||||
var newRecord = Core.MachLog.CreateMachLog(dbLog.AlarmCode, dbLog.AlarmDatetime, dbLog.AlarmMessage, dbLog.AlarmOperation, dbLog.AlarmType, dbLog.CommandExecutedCorrectly, dbLog.CommandState, dbLog.CommandType, dbLog.Description, dbLog.NewOpState, dbLog.ResultType, dbLog.VarAddress, dbLog.VarValue);
|
||||
return newRecord;
|
||||
|
||||
@@ -8,12 +8,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
public class MachGroupController : IDisposable
|
||||
{
|
||||
#region Public Fields
|
||||
|
||||
public static MachGroupController man = new MachGroupController();
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
public MachGroupController()
|
||||
@@ -30,7 +24,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// <param name="coreMachGroup"></param>
|
||||
/// <param name="currProdDbId"></param>
|
||||
/// <returns></returns>
|
||||
public static MachGroupModel ConvertFromCore(Core.MyMachGroupM coreMachGroup, int currProdDbId)
|
||||
public MachGroupModel ConvertFromCore(Core.MyMachGroupM coreMachGroup, int currProdDbId)
|
||||
{
|
||||
MachGroupModel answ = new MachGroupModel();
|
||||
if (coreMachGroup != null)
|
||||
@@ -63,6 +57,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
ProdModel currData = new ProdModel();
|
||||
List<PartModel> PartList2Add = new List<PartModel>();
|
||||
var myPartCtrl = new PartController();
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// Recupero il PROD nel contesto
|
||||
@@ -72,7 +68,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.SingleOrDefault();
|
||||
try
|
||||
{
|
||||
var convCurrMG = MachGroupController.ConvertFromCore(newMachGroup, currData.ProdDbId);
|
||||
var locMGCtrl = new MachGroupController();
|
||||
var convCurrMG = locMGCtrl.ConvertFromCore(newMachGroup, currData.ProdDbId);
|
||||
|
||||
convCurrMG.ProdIndex = 1;
|
||||
|
||||
@@ -81,15 +78,25 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
int MachGroupDbId = MachGroupController.man.FindByMachGroupId(ProdId, newMachGroup.Id).MachGroupDbId;
|
||||
int MachGroupDbId = FindByMachGroupId(ProdId, newMachGroup.Id).MachGroupDbId;
|
||||
// 2023.05.10 leggo elenco part in una sola volta
|
||||
|
||||
var currMgPartList = localDbCtx
|
||||
.PartList
|
||||
.Where(x => x.MachGroup.Prod.ProdId == ProdId && x.MachGroup.MachGroupId == newMachGroup.Id)
|
||||
.ToList();
|
||||
// verifico se uguali o meno...
|
||||
foreach (var currPartM in newMachGroup.PartMList)
|
||||
{
|
||||
var currPart = localDbCtx
|
||||
.PartList
|
||||
.Where(x => x.MachGroup.Prod.ProdId == ProdId && x.MachGroup.MachGroupId == newMachGroup.Id && x.PartId == currPartM.nPartId)
|
||||
//var currPart = localDbCtx
|
||||
// .PartList
|
||||
// .Where(x => x.MachGroup.Prod.ProdId == ProdId && x.MachGroup.MachGroupId == newMachGroup.Id && x.PartId == currPartM.nPartId)
|
||||
// .SingleOrDefault();
|
||||
var currPart = currMgPartList
|
||||
.Where(x => x.PartId == currPartM.nPartId)
|
||||
.SingleOrDefault();
|
||||
var convCurrPartM = PartController.ConvertFromCore(currPartM, MachGroupDbId);
|
||||
|
||||
var convCurrPartM = myPartCtrl.ConvertFromCore(currPartM, MachGroupDbId);
|
||||
if (currPart != null)
|
||||
{
|
||||
// se non identico x equality limitata a ViewOptim...
|
||||
@@ -125,7 +132,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, newMachGroup.Id, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupAdd, "");
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, newMachGroup.Id, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupAdd, "");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -177,6 +184,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
// inizio eliminando le part
|
||||
var parts2del = localDbCtx
|
||||
.PartList
|
||||
@@ -197,7 +205,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
// registro modifica StatusMap
|
||||
StatusMapController.man.UpdateAction(MG2Del.SupervisorId, ProdId, MG2Del.MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupRem, "");
|
||||
myStatusMapCtrl.UpdateAction(MG2Del.SupervisorId, ProdId, MG2Del.MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupRem, "");
|
||||
|
||||
done = true;
|
||||
}
|
||||
@@ -209,7 +217,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
}
|
||||
|
||||
// se fatto aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupRem, "");
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupRem, "");
|
||||
}
|
||||
return done;
|
||||
}
|
||||
@@ -393,6 +401,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
@@ -405,13 +414,19 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
currRecord.State = Core.ItemState.ND;
|
||||
currRecord.SupervisorId = "";
|
||||
currRecord.ProdIndex = 0;
|
||||
}
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupRemovedFromSupervisor, "");
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupRemovedFromSupervisor, "");
|
||||
|
||||
done = true;
|
||||
done = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on MachGroup.RemoveFromSupervisor: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -435,23 +450,33 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
localDbCtx
|
||||
var item2upd = localDbCtx
|
||||
.MachGroupList
|
||||
.Where(x => x.Prod.ProdId == ProdId && x.MachGroupId == MachGroupId)
|
||||
.FirstOrDefault()
|
||||
.State = newState;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupNeedRedo, Value);
|
||||
.FirstOrDefault();
|
||||
if (item2upd != null)
|
||||
{
|
||||
item2upd.State = newState;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupNeedRedo, Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on MachGroup.SetNeedRedo: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | newState {newState} | Value {Value}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on MachGroup.UpdateStatus: {Environment.NewLine}{exc}";
|
||||
string errMessage = $"EXCEPTION on MachGroup.SetNeedRedo: {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
@@ -469,20 +494,30 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var item2update = localDbCtx
|
||||
.MachGroupList
|
||||
.Where(x => x.MachGroupDbId == updItem.MachGroupDbId)
|
||||
.SingleOrDefault();
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// update, vers 1...
|
||||
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
var item2update = localDbCtx
|
||||
.MachGroupList
|
||||
.Where(x => x.MachGroupDbId == updItem.MachGroupDbId)
|
||||
.SingleOrDefault();
|
||||
if (item2update != null)
|
||||
{
|
||||
// update, vers 1...
|
||||
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", updItem.Prod.ProdId, updItem.MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", updItem.Prod.ProdId, updItem.MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on MachGroup.Update: req item was not found | ProdDbId {updItem.ProdDbId} | MachGroupId {updItem.MachGroupId} | ProdIndex {updItem.ProdIndex}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -506,6 +541,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
@@ -513,15 +549,21 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.MachGroupList
|
||||
.Where(x => x.Prod.ProdId == ProdId && x.MachGroupId == MachGroupId)
|
||||
.FirstOrDefault();
|
||||
|
||||
currRecord.DtEnd = DtEnd;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, DtEnd == DateTime.MinValue ? Core.StatusMapOpType.ResetPartEnd : Core.StatusMapOpType.PartEnd, "");
|
||||
if (currRecord != null)
|
||||
{
|
||||
currRecord.DtEnd = DtEnd;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, DtEnd == DateTime.MinValue ? Core.StatusMapOpType.ResetPartEnd : Core.StatusMapOpType.PartEnd, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on MachGroup.UpdateEnd: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | DtEnd {DtEnd}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -548,15 +590,23 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
localDbCtx
|
||||
var item2upd = localDbCtx
|
||||
.MachGroupList
|
||||
.Where(x => x.Prod.ProdId == ProdId && x.MachGroupId == MachGroupId)
|
||||
.FirstOrDefault()
|
||||
.ProdIndex = newProdIndex;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
done = true;
|
||||
.FirstOrDefault();
|
||||
if (item2upd != null)
|
||||
{
|
||||
item2upd.ProdIndex = newProdIndex;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on MachGroup.UpdateOrder: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | newProdIndex {newProdIndex}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -581,6 +631,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
@@ -588,15 +639,21 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.MachGroupList
|
||||
.Where(x => x.Prod.ProdId == ProdId && x.MachGroupId == MachGroupId)
|
||||
.FirstOrDefault();
|
||||
|
||||
currRecord.DtStart = DtStart;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, DtStart == DateTime.MinValue ? Core.StatusMapOpType.ResetPartStart : Core.StatusMapOpType.PartStart, "");
|
||||
if (currRecord != null)
|
||||
{
|
||||
currRecord.DtStart = DtStart;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, DtStart == DateTime.MinValue ? Core.StatusMapOpType.ResetPartStart : Core.StatusMapOpType.PartStart, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on MachGroup.UpdateStart: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | DtStart {DtStart}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -621,6 +678,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
@@ -628,15 +686,22 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.MachGroupList
|
||||
.Where(x => x.Prod.ProdId == ProdId && x.MachGroupId == MachGroupId)
|
||||
.FirstOrDefault();
|
||||
|
||||
currRecord.DtStart = DtStart;
|
||||
currRecord.DtEnd = DtEnd;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
if (currRecord != null)
|
||||
{
|
||||
currRecord.DtStart = DtStart;
|
||||
currRecord.DtEnd = DtEnd;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on MachGroup.UpdateStartEnd: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | DtStart {DtStart} | DtEnd {DtEnd}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -659,20 +724,29 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
localDbCtx
|
||||
var item2upd = localDbCtx
|
||||
.MachGroupList
|
||||
.Where(x => x.Prod.ProdId == ProdId && x.MachGroupId == MachGroupId)
|
||||
.FirstOrDefault()
|
||||
.State = newState;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
.FirstOrDefault();
|
||||
if (item2upd != null)
|
||||
{
|
||||
item2upd.State = newState;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on MachGroup.UpdateStatus: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | newState {newState}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -691,23 +765,32 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
var currRecord = localDbCtx
|
||||
var item2upd = localDbCtx
|
||||
.MachGroupList
|
||||
.Where(x => x.Prod.ProdId == ProdId && x.MachGroupId == MachGroupId)
|
||||
.FirstOrDefault();
|
||||
if (item2upd != null)
|
||||
{
|
||||
item2upd.SupervisorId = SupervisorId;
|
||||
item2upd.State = Core.ItemState.Assigned;
|
||||
|
||||
currRecord.SupervisorId = SupervisorId;
|
||||
currRecord.State = Core.ItemState.Assigned;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupAssignedToSupervisor, "");
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupAssignedToSupervisor, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on MachGroup.UpdateSupervisor: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | SupervisorId {SupervisorId}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
|
||||
@@ -7,17 +7,10 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
public class PartController : IDisposable
|
||||
{
|
||||
#region Public Fields
|
||||
|
||||
public static PartController man = new PartController();
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
public PartController()
|
||||
{
|
||||
}
|
||||
{ }
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
@@ -29,12 +22,12 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// <param name="corePart"></param>
|
||||
/// <param name="currMachGroupDbId"></param>
|
||||
/// <returns></returns>
|
||||
public static PartModel ConvertFromCore(Core.PartM corePart, int currMachGroupDbId)
|
||||
public PartModel ConvertFromCore(Core.PartM corePart, int currMachGroupDbId)
|
||||
{
|
||||
PartModel answ = new PartModel();
|
||||
if (corePart != null)
|
||||
{
|
||||
int BTLPartId = man.FindBtlPartByBPI(corePart.nProjId, corePart.nBTLPartId);
|
||||
int BTLPartId = FindBtlPartByBPI(corePart.nProjId, corePart.nBTLPartId);
|
||||
answ = new PartModel()
|
||||
{
|
||||
PartId = corePart.nPartId,
|
||||
@@ -74,23 +67,34 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
var item2del = localDbCtx
|
||||
.PartList
|
||||
.Where(x => x.MachGroup.Prod.ProdId == ProdId && x.MachGroup.MachGroupId == MachGroupId && x.PartId == PartId)
|
||||
.SingleOrDefault();
|
||||
try
|
||||
|
||||
if (item2del != null)
|
||||
{
|
||||
// Remove from database
|
||||
localDbCtx.PartList.Remove(item2del);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
try
|
||||
{
|
||||
// Remove from database
|
||||
localDbCtx.PartList.Remove(item2del);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Part.Delete: ProdId: {ProdId} | MachGroupId: {MachGroupId} | PartId: {PartId}{Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
else
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Part.Delete: ProdId: {ProdId} | MachGroupId: {MachGroupId} | PartId: {PartId}{Environment.NewLine}{exc}";
|
||||
string errMessage = $"ERROR on Part.Delete (01): req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | PartId {PartId}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
@@ -112,17 +116,27 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.PartList
|
||||
.Where(x => x.PartDbId == PartDbId)
|
||||
.SingleOrDefault();
|
||||
try
|
||||
|
||||
if (item2del != null)
|
||||
{
|
||||
// Add to database
|
||||
localDbCtx.PartList.Remove(item2del);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
try
|
||||
{
|
||||
// Add to database
|
||||
localDbCtx.PartList.Remove(item2del);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Part.Delete: {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
else
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Part.Delete: {Environment.NewLine}{exc}";
|
||||
string errMessage = $"ERROR on Part.Delete (02): req item was not found | PartDbId {PartDbId}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
@@ -209,28 +223,38 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext locallocalDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var item2update = locallocalDbCtx
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
var item2upd = locallocalDbCtx
|
||||
.PartList
|
||||
.Where(x => x.PartDbId == updItem.PartDbId)
|
||||
.SingleOrDefault();
|
||||
try
|
||||
if (item2upd != null)
|
||||
{
|
||||
// update, vers 1...
|
||||
locallocalDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
try
|
||||
{
|
||||
// update, vers 1...
|
||||
locallocalDbCtx.Entry(item2upd).CurrentValues.SetValues(updItem);
|
||||
|
||||
//// update, vers 2
|
||||
//localDbCtx.PartList.Remove(item2del);
|
||||
//localDbCtx.PartList.Add(updItem);
|
||||
//// update, vers 2
|
||||
//localDbCtx.PartList.Remove(item2del);
|
||||
//localDbCtx.PartList.Add(updItem);
|
||||
|
||||
// Commit changes
|
||||
locallocalDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", updItem.MachGroup.Prod.ProdId, updItem.PartId, Core.StatusMapItemType.Part, Core.StatusMapOpType.MachGroupMod, "");
|
||||
// Commit changes
|
||||
locallocalDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", updItem.MachGroup.Prod.ProdId, updItem.PartId, Core.StatusMapItemType.Part, Core.StatusMapOpType.MachGroupMod, "");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Part.Update: {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
else
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Part.Update: {Environment.NewLine}{exc}";
|
||||
string errMessage = $"ERROR on Part.Update (01): req item was not found | PartId {updItem.PartId} | PartDbId {updItem.PartDbId} | BTLPartDbId {updItem.BTLPartDbId}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
@@ -249,19 +273,30 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext locallocalDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
locallocalDbCtx
|
||||
var item2upd = locallocalDbCtx
|
||||
.PartList
|
||||
.Where(x => x.MachGroup.Prod.ProdId == ProdId && x.MachGroup.MachGroupId == MachGroupId && x.PartId == PartId)
|
||||
.FirstOrDefault()
|
||||
.DtEnd = DtEnd;
|
||||
// Commit changes
|
||||
locallocalDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, PartId, Core.StatusMapItemType.Part, DtEnd == DateTime.MinValue ? Core.StatusMapOpType.ResetPartEnd : Core.StatusMapOpType.PartEnd, "");
|
||||
.FirstOrDefault();
|
||||
|
||||
if (item2upd != null)
|
||||
{
|
||||
item2upd.DtEnd = DtEnd;
|
||||
// Commit changes
|
||||
locallocalDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, PartId, Core.StatusMapItemType.Part, DtEnd == DateTime.MinValue ? Core.StatusMapOpType.ResetPartEnd : Core.StatusMapOpType.PartEnd, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Part.UpdateEnd: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | PartId {PartId} | DtEnd {DtEnd}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -284,19 +319,29 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext locallocalDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
locallocalDbCtx
|
||||
var item2upd = locallocalDbCtx
|
||||
.PartList
|
||||
.Where(x => x.MachGroup.Prod.ProdId == ProdId && x.MachGroup.MachGroupId == MachGroupId && x.PartId == PartId)
|
||||
.FirstOrDefault()
|
||||
.DtStart = DtStart;
|
||||
// Commit changes
|
||||
locallocalDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, PartId, Core.StatusMapItemType.Part, DtStart == DateTime.MinValue ? Core.StatusMapOpType.ResetPartStart : Core.StatusMapOpType.PartStart, "");
|
||||
.FirstOrDefault();
|
||||
if (item2upd != null)
|
||||
{
|
||||
item2upd.DtStart = DtStart;
|
||||
// Commit changes
|
||||
locallocalDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, PartId, Core.StatusMapItemType.Part, DtStart == DateTime.MinValue ? Core.StatusMapOpType.ResetPartStart : Core.StatusMapOpType.PartStart, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Part.UpdateStart: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | PartId {PartId} | DtStart {DtStart}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -320,19 +365,29 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext locallocalDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
// aggiorno
|
||||
locallocalDbCtx
|
||||
var item2upd = locallocalDbCtx
|
||||
.PartList
|
||||
.Where(x => x.MachGroup.Prod.ProdId == ProdId && x.MachGroup.MachGroupId == MachGroupId && x.PartId == PartId)
|
||||
.FirstOrDefault()
|
||||
.State = newState;
|
||||
// Commit changes
|
||||
locallocalDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
StatusMapController.man.UpdateAction("", ProdId, PartId, Core.StatusMapItemType.Part, newState == Core.ItemState.Scrapped ? Core.StatusMapOpType.SetPartScrapped : Core.StatusMapOpType.MachGroupMod, "");
|
||||
.FirstOrDefault();
|
||||
if (item2upd != null)
|
||||
{
|
||||
item2upd.State = newState;
|
||||
// Commit changes
|
||||
locallocalDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// aggiorno info sullo status
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, PartId, Core.StatusMapItemType.Part, newState == Core.ItemState.Scrapped ? Core.StatusMapOpType.SetPartScrapped : Core.StatusMapOpType.MachGroupMod, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Part.UpdateStart: req item was not found | ProdId {ProdId} | MachGroupId {MachGroupId} | PartId {PartId} | newState {newState}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using EgtBEAMWALL.DataLayer.DatabaseModels;
|
||||
using NLog;
|
||||
using NLog.LayoutRenderers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -9,17 +10,11 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
public class ProdController : IDisposable
|
||||
{
|
||||
#region Public Fields
|
||||
|
||||
public static ProdController man = new ProdController();
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
public ProdController()
|
||||
{
|
||||
Log.Info("ProdController istance Started");
|
||||
Log.Info("ProdController instance Started");
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
@@ -353,25 +348,39 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
bool done = false;
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
var item2update = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdDbId == updItem.ProdDbId)
|
||||
.SingleOrDefault();
|
||||
try
|
||||
{
|
||||
// update, vers 1...
|
||||
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
var item2update = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdDbId == updItem.ProdDbId)
|
||||
.SingleOrDefault();
|
||||
|
||||
//// update, vers 2
|
||||
//localDbCtx.PartList.Remove(item2del);
|
||||
//localDbCtx.PartList.Add(updItem);
|
||||
if (item2update != null)
|
||||
{
|
||||
// update, vers 1...
|
||||
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
//// update, vers 2
|
||||
//localDbCtx.PartList.Remove(item2del);
|
||||
//localDbCtx.PartList.Add(updItem);
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Prod.Update: req item was not found | ProdId {updItem.ProdId} | ProdDbId {updItem.ProdDbId} | Description {updItem.Description}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Prod.Update: {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
return done;
|
||||
}
|
||||
@@ -384,137 +393,182 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// </summary>
|
||||
/// <param name="ProdId">Id del Prod</param>
|
||||
/// <param name="MachGroupList">Elenco MachGroup da associare</param>
|
||||
/// <returns></returns>
|
||||
public ProdModel UpdateMachGroup(int ProdId, List<Core.MyMachGroupM> MachGroupList)
|
||||
/// <returns>Bool esecuzione con successo o meno</returns>
|
||||
public bool UpdateMachGroup(int ProdId, List<Core.MyMachGroupM> MachGroupList)
|
||||
{
|
||||
ProdModel currData = new ProdModel();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
bool testOk = false;
|
||||
// calcolo occorrenze x ogni ID della barra...
|
||||
var listaCheck = MachGroupList
|
||||
.GroupBy(x => x.Id)
|
||||
.Select(n => new
|
||||
{
|
||||
PartId = n.Key,
|
||||
PartCount = n.Count()
|
||||
})
|
||||
.OrderBy(n => n.PartCount);
|
||||
|
||||
// controllo: nell'elenco delle barre MachGroupList NON devono esserci duplicati per
|
||||
// l'ID (esterno) che deve essere univoco...
|
||||
testOk = listaCheck.Where(x => x.PartCount > 1).Count() == 0;
|
||||
if (testOk)
|
||||
{
|
||||
// Recupero il PROD nel contesto DB attuale
|
||||
currData = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdId == ProdId)
|
||||
.SingleOrDefault();
|
||||
|
||||
try
|
||||
ProdModel currData = new ProdModel();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// preparo elenco
|
||||
List<MachGroupModel> itemsMG2Add = new List<MachGroupModel>();
|
||||
|
||||
List<Core.MyMachGroupM> MachGroupList2Add = new List<Core.MyMachGroupM>();
|
||||
List<PartModel> PartList2Add = new List<PartModel>();
|
||||
// cerco le MG esistenti --> aggiorno
|
||||
foreach (var item in MachGroupList)
|
||||
var myStatusMapCtrl = new StatusMapController();
|
||||
try
|
||||
{
|
||||
var currMG = MachGroupController.man.FindByMachGroupId(ProdId, item.Id);
|
||||
var convCurrMG = MachGroupController.ConvertFromCore(item, currData.ProdDbId);
|
||||
if (currMG != null)
|
||||
// Recupero il PROD nel contesto DB attuale
|
||||
currData = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdId == ProdId)
|
||||
.SingleOrDefault();
|
||||
|
||||
if (currData != null)
|
||||
{
|
||||
// se non identico x equality limitata a ViewOptim...
|
||||
if (!currMG.ViewOptimEquals(convCurrMG))
|
||||
// preparo elenco
|
||||
List<MachGroupModel> itemsMG2Add = new List<MachGroupModel>();
|
||||
|
||||
List<Core.MyMachGroupM> MachGroupList2Add = new List<Core.MyMachGroupM>();
|
||||
List<PartModel> PartList2Add = new List<PartModel>();
|
||||
List<PartModel> PartList2Rem = new List<PartModel>();
|
||||
var logMGCtrl = new MachGroupController();
|
||||
// cerco le MG esistenti --> aggiorno
|
||||
foreach (var item in MachGroupList)
|
||||
{
|
||||
// aggiorno con nuovi valori ricevuti
|
||||
currMG.H = convCurrMG.H;
|
||||
currMG.L = convCurrMG.L;
|
||||
currMG.W = convCurrMG.W;
|
||||
currMG.Material = convCurrMG.Material;
|
||||
currMG.Name = convCurrMG.Name;
|
||||
// salvo
|
||||
localDbCtx.SaveChanges();
|
||||
// registro modifica StatusMap
|
||||
StatusMapController.man.UpdateAction(currMG.SupervisorId, ProdId, currMG.MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
var currMG = logMGCtrl.FindByMachGroupId(ProdId, item.Id);
|
||||
var convCurrMG = logMGCtrl.ConvertFromCore(item, currData.ProdDbId);
|
||||
if (currMG != null)
|
||||
{
|
||||
// se non identico x equality limitata a ViewOptim...
|
||||
if (!currMG.ViewOptimEquals(convCurrMG))
|
||||
{
|
||||
// aggiorno con nuovi valori ricevuti
|
||||
currMG.H = convCurrMG.H;
|
||||
currMG.L = convCurrMG.L;
|
||||
currMG.W = convCurrMG.W;
|
||||
currMG.Material = convCurrMG.Material;
|
||||
currMG.Name = convCurrMG.Name;
|
||||
// salvo
|
||||
localDbCtx.SaveChanges();
|
||||
// registro modifica StatusMap
|
||||
myStatusMapCtrl.UpdateAction(currMG.SupervisorId, ProdId, currMG.MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
itemsMG2Add.Add(convCurrMG);
|
||||
// registro modifica StatusMap
|
||||
myStatusMapCtrl.UpdateAction("", ProdId, item.Id, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupAdd, "");
|
||||
}
|
||||
}
|
||||
// aggiungo MachGroup
|
||||
localDbCtx.MachGroupList.AddRange(itemsMG2Add);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
// verifico di nuovo l'elenco delle MG x le relative PART...
|
||||
foreach (var item in MachGroupList)
|
||||
{
|
||||
var currMG = logMGCtrl.FindByMachGroupId(ProdId, item.Id);
|
||||
int MachGroupDbId = currMG.MachGroupDbId;
|
||||
bool modMg = false;
|
||||
// 2023.05.10: recupero TUTTE le part del MachGroup e poi lavoro...
|
||||
var currMgPartList = localDbCtx
|
||||
.PartList
|
||||
.Where(x => x.MachGroup.Prod.ProdId == ProdId && x.MachGroup.MachGroupId == item.Id)
|
||||
.ToList();
|
||||
// preparo elenco PartList x eventuale rimozione
|
||||
var currPartList2Rem = new List<PartModel>();
|
||||
currPartList2Rem.AddRange(currMgPartList);
|
||||
// verifico se uguali o meno...
|
||||
foreach (var currPartM in item.PartMList)
|
||||
{
|
||||
var myPartCtrl = new PartController();
|
||||
var currPart = currMgPartList
|
||||
.Where(x => x.PartId == currPartM.nPartId)
|
||||
.SingleOrDefault();
|
||||
var convCurrPartM = myPartCtrl.ConvertFromCore(currPartM, MachGroupDbId);
|
||||
if (currPart != null)
|
||||
{
|
||||
// se non identico x equality limitata a ViewOptim...
|
||||
if (!currPart.ViewOptimEquals(convCurrPartM))
|
||||
{
|
||||
// aggiorno con nuovi valori ricevuti
|
||||
currPart.H = convCurrPartM.H;
|
||||
currPart.L = convCurrPartM.L;
|
||||
currPart.W = convCurrPartM.W;
|
||||
currPart.Material = convCurrPartM.Material;
|
||||
currPart.CALC_State = convCurrPartM.CALC_State;
|
||||
currPart.ROT = convCurrPartM.ROT;
|
||||
currPart.PDN = convCurrPartM.PDN;
|
||||
currPart.NAM = convCurrPartM.NAM;
|
||||
// aggiorno anche il BtlPartId
|
||||
currPart.BTLPartDbId = convCurrPartM.BTLPartDbId;
|
||||
// salvo
|
||||
localDbCtx.SaveChanges();
|
||||
modMg = true;
|
||||
}
|
||||
// tolgo da elenco di rimozione...
|
||||
currPartList2Rem.Remove(currPart);
|
||||
}
|
||||
else
|
||||
{
|
||||
PartList2Add.Add(convCurrPartM);
|
||||
modMg = true;
|
||||
}
|
||||
}
|
||||
// verifico se salvare...
|
||||
if (modMg)
|
||||
{
|
||||
myStatusMapCtrl.UpdateAction(currMG.SupervisorId, ProdId, currMG.MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
}
|
||||
|
||||
// aggiungo le part esistenti nel MG non ricevute...
|
||||
PartList2Rem.AddRange(currPartList2Rem);
|
||||
}
|
||||
// elimino parti da rimuovere..
|
||||
localDbCtx.PartList.RemoveRange(PartList2Rem);
|
||||
// aggiungo PartList
|
||||
localDbCtx.PartList.AddRange(PartList2Add);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
// sel dei MachGroup da prod OLD
|
||||
List<MachGroupModel> itemsMGOld = localDbCtx
|
||||
.MachGroupList
|
||||
.Where(x => x.Prod.ProdId == ProdId)
|
||||
.ToList();
|
||||
// elenco degli ID del MachGroup NON trovati
|
||||
List<int> MgId2rem = itemsMGOld.Select(x => x.MachGroupId).Except(MachGroupList.Select(y => y.Id)).ToList();
|
||||
// processo i MachGroup eliminati
|
||||
foreach (var item in MgId2rem)
|
||||
{
|
||||
logMGCtrl.Delete(ProdId, item);
|
||||
}
|
||||
|
||||
// aggiorno valore isNew a false x PROD
|
||||
currData.IsNew = false;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
itemsMG2Add.Add(convCurrMG);
|
||||
// registro modifica StatusMap
|
||||
StatusMapController.man.UpdateAction("", ProdId, item.Id, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupAdd, "");
|
||||
string errMessage = $"ERROR on Prod.UpdateMachGroup: req item was not found | ProdId {ProdId} | MachGroupList {MachGroupList.Count} rec";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
// aggiungo MachGroup
|
||||
localDbCtx.MachGroupList.AddRange(itemsMG2Add);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
// verifico di nuovo l'elenco delle MG x le relative PART...
|
||||
foreach (var item in MachGroupList)
|
||||
catch (Exception exc)
|
||||
{
|
||||
var currMG = MachGroupController.man.FindByMachGroupId(ProdId, item.Id);
|
||||
int MachGroupDbId = currMG.MachGroupDbId;
|
||||
bool modMg = false;
|
||||
// verifico se uguali o meno...
|
||||
foreach (var currPartM in item.PartMList)
|
||||
{
|
||||
var currPart = localDbCtx
|
||||
.PartList
|
||||
.Where(x => x.MachGroup.Prod.ProdId == ProdId && x.MachGroup.MachGroupId == item.Id && x.PartId == currPartM.nPartId)
|
||||
.SingleOrDefault();
|
||||
var convCurrPartM = PartController.ConvertFromCore(currPartM, MachGroupDbId);
|
||||
if (currPart != null)
|
||||
{
|
||||
// se non identico x equality limitata a ViewOptim...
|
||||
if (!currPart.ViewOptimEquals(convCurrPartM))
|
||||
{
|
||||
// aggiorno con nuovi valori ricevuti
|
||||
currPart.H = convCurrPartM.H;
|
||||
currPart.L = convCurrPartM.L;
|
||||
currPart.W = convCurrPartM.W;
|
||||
currPart.Material = convCurrPartM.Material;
|
||||
currPart.CALC_State = convCurrPartM.CALC_State;
|
||||
currPart.ROT = convCurrPartM.ROT;
|
||||
currPart.PDN = convCurrPartM.PDN;
|
||||
currPart.NAM = convCurrPartM.NAM;
|
||||
// salvo
|
||||
localDbCtx.SaveChanges();
|
||||
modMg = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PartList2Add.Add(convCurrPartM);
|
||||
modMg = true;
|
||||
}
|
||||
}
|
||||
// verifico se salvare...
|
||||
if (modMg)
|
||||
{
|
||||
StatusMapController.man.UpdateAction(currMG.SupervisorId, ProdId, currMG.MachGroupId, Core.StatusMapItemType.MachGroup, Core.StatusMapOpType.MachGroupMod, "");
|
||||
}
|
||||
string errMessage = $"EXCEPTION on Prod.UpdateMachGroup: {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
|
||||
// aggiungo PartList
|
||||
localDbCtx.PartList.AddRange(PartList2Add);
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
|
||||
// sel dei MachGroup da prod OLD
|
||||
List<MachGroupModel> itemsMGOld = localDbCtx
|
||||
.MachGroupList
|
||||
.Where(x => x.Prod.ProdId == ProdId)
|
||||
.ToList();
|
||||
// elenco degli ID del MachGroup NON trovati
|
||||
List<int> MgId2rem = itemsMGOld.Select(x => x.MachGroupId).Except(MachGroupList.Select(y => y.Id)).ToList();
|
||||
// processo i MachGroup eliminati
|
||||
foreach (var item in MgId2rem)
|
||||
{
|
||||
MachGroupController.man.Delete(ProdId, item);
|
||||
}
|
||||
|
||||
// aggiorno valore isNew a false x PROD
|
||||
currData.IsNew = false;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Prod.UpdateMachGroup: {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return currData;
|
||||
return testOk;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -525,18 +579,36 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// <returns></returns>
|
||||
public Core.ProdFileM UpdateMachine(int ProdId, String Machine)
|
||||
{
|
||||
ProdModel currData;
|
||||
ProdModel currData = new ProdModel();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
currData = localDbCtx
|
||||
try
|
||||
{
|
||||
currData = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdId == ProdId)
|
||||
.SingleOrDefault();
|
||||
// aggiorno valore BTL
|
||||
currData.Machine = Machine;
|
||||
if (currData != null)
|
||||
{
|
||||
// aggiorno valore BTL
|
||||
currData.Machine = Machine;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Prod.UpdateMachine: req item was not found | ProdId {ProdId} | Machine {Machine}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Prod.UpdateMachine: {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return coreConv(currData);
|
||||
}
|
||||
@@ -549,18 +621,36 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// <returns></returns>
|
||||
public Core.ProdFileM UpdatePType(int ProdId, BWType PType)
|
||||
{
|
||||
ProdModel currData;
|
||||
ProdModel currData = new ProdModel();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
currData = localDbCtx
|
||||
try
|
||||
{
|
||||
currData = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdId == ProdId)
|
||||
.SingleOrDefault();
|
||||
// aggiorno valore BTL
|
||||
currData.PType = PType;
|
||||
if (currData != null)
|
||||
{
|
||||
// aggiorno valore BTL
|
||||
currData.PType = PType;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Prod.UpdatePType: req item was not found | ProdId {ProdId} | PType {PType}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Prod.UpdatePType: {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return coreConv(currData);
|
||||
}
|
||||
@@ -572,25 +662,40 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
string LockBy = "";
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
// seleziono il prod...
|
||||
var currProd = localDbCtx
|
||||
try
|
||||
{
|
||||
// seleziono il prod...
|
||||
var currProd = localDbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdId == ProdId)
|
||||
.FirstOrDefault();
|
||||
|
||||
if (currProd != null)
|
||||
{
|
||||
LockBy = currProd.LockedBy;
|
||||
|
||||
var currProj = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => x.ProdDbId == currProd.ProdDbId)
|
||||
.ToList();
|
||||
|
||||
if (currProj != null && string.IsNullOrEmpty(LockBy))
|
||||
if (currProd != null)
|
||||
{
|
||||
LockBy = currProj.FirstOrDefault(x => !string.IsNullOrEmpty(x.LockedBy)).LockedBy;
|
||||
LockBy = currProd.LockedBy;
|
||||
|
||||
var currProj = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => x.ProdDbId == currProd.ProdDbId)
|
||||
.ToList();
|
||||
|
||||
if (currProj != null && string.IsNullOrEmpty(LockBy))
|
||||
{
|
||||
LockBy = currProj.FirstOrDefault(x => !string.IsNullOrEmpty(x.LockedBy)).LockedBy;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Prod.UserLockByProdId: req item was not found | ProdId {ProdId}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Prod.UserLockByProdId: {Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return LockBy;
|
||||
@@ -636,7 +741,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
|
||||
protected List<int> ProjIdByProd(int ProdId)
|
||||
{
|
||||
return DbManager.obj.ProjCtr.GetByProdAsc(ProdId).Select(y => y.nProjId).ToList();
|
||||
var ProjCtr = new ProjController();
|
||||
return ProjCtr.GetByProdAsc(ProdId).Select(y => y.nProjId).ToList();
|
||||
//return DbManager.obj.ProjCtr.GetByProdAsc(ProdId).Select(y => y.nProjId).ToList();
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
@@ -452,22 +452,35 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.ProjList
|
||||
.Where(x => x.ProjId == updItem.ProjId)
|
||||
.SingleOrDefault();
|
||||
try
|
||||
if (item2update != null)
|
||||
{
|
||||
updItem.ProjDbId = item2update.ProjDbId;
|
||||
// update, vers 1...
|
||||
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
try
|
||||
{
|
||||
updItem.ProjDbId = item2update.ProjDbId;
|
||||
// update, vers 1...
|
||||
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
||||
|
||||
//// update, vers 2
|
||||
//dbCtx.PartList.Remove(item2del);
|
||||
//dbCtx.PartList.Add(updItem);
|
||||
//// update, vers 2
|
||||
//dbCtx.PartList.Remove(item2del);
|
||||
//dbCtx.PartList.Add(updItem);
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
done = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Part.Update{Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Proj.Update: req item was not found | ProjId {updItem.ProjId} | ProjDbId {updItem.ProjDbId} | ProdDbId {updItem.ProdDbId}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
catch (Exception)
|
||||
{ }
|
||||
}
|
||||
return done;
|
||||
}
|
||||
@@ -493,64 +506,73 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.BTLPartList
|
||||
.Where(x => x.ProjDbId == currData.ProjDbId)
|
||||
.ToList();
|
||||
|
||||
// converto le BtlParts da core --> DB
|
||||
List<BTLPartModel> newBtlParts = BtlPartList.Select(x => BTLPartController.ConvertFromCore(x, currData.ProjDbId)).ToList();
|
||||
|
||||
try
|
||||
if (oldBtlParts != null)
|
||||
{
|
||||
// elementi BtlPartId NON + presenti da eliminare
|
||||
List<int> bpi2rem = oldBtlParts.Select(x => x.PartId).Except(newBtlParts.Select(y => y.PartId)).ToList();
|
||||
List<int> bpi2add = newBtlParts.Select(x => x.PartId).Except(oldBtlParts.Select(y => y.PartId)).ToList();
|
||||
List<int> bpiExis = newBtlParts.Select(x => x.PartId).Intersect(oldBtlParts.Select(y => y.PartId)).ToList();
|
||||
var locBtlCtrl = new BTLPartController();
|
||||
// converto le BtlParts da core --> DB
|
||||
List<BTLPartModel> newBtlParts = BtlPartList.Select(x => locBtlCtrl.ConvertFromCore(x, currData.ProjDbId)).ToList();
|
||||
|
||||
// aggiorno existing...
|
||||
foreach (var currPartId in bpiExis)
|
||||
try
|
||||
{
|
||||
// recupero item da aggiornare...
|
||||
var oldItem = oldBtlParts.Where(x => x.PartId == currPartId).FirstOrDefault();
|
||||
// dati nuovo item
|
||||
var newItem = newBtlParts.Where(x => x.PartId == currPartId).FirstOrDefault();
|
||||
if (newItem != null && oldItem != null)
|
||||
// elementi BtlPartId NON + presenti da eliminare
|
||||
List<int> bpi2rem = oldBtlParts.Select(x => x.PartId).Except(newBtlParts.Select(y => y.PartId)).ToList();
|
||||
List<int> bpi2add = newBtlParts.Select(x => x.PartId).Except(oldBtlParts.Select(y => y.PartId)).ToList();
|
||||
List<int> bpiExis = newBtlParts.Select(x => x.PartId).Intersect(oldBtlParts.Select(y => y.PartId)).ToList();
|
||||
|
||||
// aggiorno existing...
|
||||
foreach (var currPartId in bpiExis)
|
||||
{
|
||||
oldItem.CALC_State = newItem.CALC_State;
|
||||
oldItem.CNT = newItem.CNT;
|
||||
oldItem.DO = newItem.DO;
|
||||
oldItem.H = newItem.H;
|
||||
oldItem.L = newItem.L;
|
||||
oldItem.W = newItem.W;
|
||||
oldItem.Material = newItem.Material;
|
||||
oldItem.NAM = newItem.NAM;
|
||||
oldItem.PDN = newItem.PDN;
|
||||
// recupero item da aggiornare...
|
||||
var oldItem = oldBtlParts.Where(x => x.PartId == currPartId).FirstOrDefault();
|
||||
// dati nuovo item
|
||||
var newItem = newBtlParts.Where(x => x.PartId == currPartId).FirstOrDefault();
|
||||
if (newItem != null && oldItem != null)
|
||||
{
|
||||
oldItem.CALC_State = newItem.CALC_State;
|
||||
oldItem.CNT = newItem.CNT;
|
||||
oldItem.DO = newItem.DO;
|
||||
oldItem.H = newItem.H;
|
||||
oldItem.L = newItem.L;
|
||||
oldItem.W = newItem.W;
|
||||
oldItem.Material = newItem.Material;
|
||||
oldItem.NAM = newItem.NAM;
|
||||
oldItem.PDN = newItem.PDN;
|
||||
}
|
||||
}
|
||||
|
||||
// aggiungo le nuove part
|
||||
foreach (var newPartId in bpi2add)
|
||||
{
|
||||
var newItem = newBtlParts.Where(x => x.PartId == newPartId).FirstOrDefault();
|
||||
localDbCtx.BTLPartList.Add(newItem);
|
||||
}
|
||||
|
||||
// elimino dal DB i non + esistenti
|
||||
foreach (var oldPartId in bpi2rem)
|
||||
{
|
||||
// elimino parts nei MachGroup
|
||||
var oldIstPartList = localDbCtx.PartList.Where(x => x.BTLPart.PartId == oldPartId).ToList();
|
||||
localDbCtx.PartList.RemoveRange(oldIstPartList);
|
||||
// elimino BtlParts
|
||||
var oldItem = oldBtlParts.Where(x => x.PartId == oldPartId).FirstOrDefault();
|
||||
localDbCtx.BTLPartList.Remove(oldItem);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
// aggiungo le nuove part
|
||||
foreach (var newPartId in bpi2add)
|
||||
{
|
||||
var newItem = newBtlParts.Where(x => x.PartId == newPartId).FirstOrDefault();
|
||||
localDbCtx.BTLPartList.Add(newItem);
|
||||
}
|
||||
// aggiorno valore isNew a false
|
||||
currData.IsNew = false;
|
||||
|
||||
// elimino dal DB i non + esistenti
|
||||
foreach (var oldPartId in bpi2rem)
|
||||
{
|
||||
// elimino parts nei MachGroup
|
||||
var oldIstPartList = localDbCtx.PartList.Where(x => x.BTLPart.PartId == oldPartId).ToList();
|
||||
localDbCtx.PartList.RemoveRange(oldIstPartList);
|
||||
// elimino BtlParts
|
||||
var oldItem = oldBtlParts.Where(x => x.PartId == oldPartId).FirstOrDefault();
|
||||
localDbCtx.BTLPartList.Remove(oldItem);
|
||||
}
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Proj.UpdateBtlParts: req item was not found | ProjId {ProjId} | BtlPartList {BtlPartList.Count} items";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
// aggiorno valore isNew a false
|
||||
currData.IsNew = false;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
return currData;
|
||||
}
|
||||
@@ -573,50 +595,67 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
.ProjList
|
||||
.Where(x => x.ProjId == ProjId)
|
||||
.SingleOrDefault();
|
||||
|
||||
// 2022.01.24: verifico UNIVOCITA' nel nome del file: SE fosse duplicato --> nuovo
|
||||
// nome, nel formato nomeOriginale_idx, dove idx è il contatore libero successivo
|
||||
var duplicateList = FindByBtlFileName(BTLFileName);
|
||||
// devo verificare SOLO SE la lista non è vuota
|
||||
if (duplicateList != null && duplicateList.Count > 0)
|
||||
if (currData != null)
|
||||
{
|
||||
// se ne ho esattamente 1 nel DB allora DEVE essere il record Parent
|
||||
if (duplicateList.Count == 1)
|
||||
try
|
||||
{
|
||||
// verifico se ProjId variato
|
||||
if (!duplicateList[0].ProjId.Equals(currData.ProjId))
|
||||
// 2022.01.24: verifico UNIVOCITA' nel nome del file: SE fosse duplicato -->
|
||||
// nuovo nome, nel formato nomeOriginale_idx, dove idx è il contatore libero successivo
|
||||
var duplicateList = FindByBtlFileName(BTLFileName);
|
||||
// devo verificare SOLO SE la lista non è vuota
|
||||
if (duplicateList != null && duplicateList.Count > 0)
|
||||
{
|
||||
// in questo caso ho il PRIMO duplicato
|
||||
BTLFileName = $"{BTLFileName}_1";
|
||||
// se ne ho esattamente 1 nel DB allora DEVE essere il record Parent
|
||||
if (duplicateList.Count == 1)
|
||||
{
|
||||
// verifico se ProjId variato
|
||||
if (!duplicateList[0].ProjId.Equals(currData.ProjId))
|
||||
{
|
||||
// in questo caso ho il PRIMO duplicato
|
||||
BTLFileName = $"{BTLFileName}_1";
|
||||
}
|
||||
}
|
||||
// se ne ho + di 1 --> so che il maxId interno avrò il valore ULTIMO x
|
||||
// prendere il successivo
|
||||
else
|
||||
{
|
||||
var lastRec = duplicateList.OrderByDescending(x => x.ProjDbId).FirstOrDefault();
|
||||
// cerco indice
|
||||
string maybeNumber = lastRec.BTLFileName.Replace($"{BTLFileName}_", "");
|
||||
int index = 0;
|
||||
bool isNumber = int.TryParse(maybeNumber, out index);
|
||||
// fasccio comunque verifica sia numerico
|
||||
if (isNumber)
|
||||
{
|
||||
// in questo caso ho il l'ULTIMO duplicato e faccio +1
|
||||
BTLFileName = $"{BTLFileName}_{index + 1}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// aggiorno valore BTL
|
||||
currData.BTLFileName = BTLFileName;
|
||||
currData.DtExported = DtExported;
|
||||
currData.ListName = ListName;
|
||||
currData.PType = PType;
|
||||
currData.Machine = Machine;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
// se ne ho + di 1 --> so che il maxId interno avrò il valore ULTIMO x prendere
|
||||
// il successivo
|
||||
else
|
||||
catch (Exception exc)
|
||||
{
|
||||
var lastRec = duplicateList.OrderByDescending(x => x.ProjDbId).FirstOrDefault();
|
||||
// cerco indice
|
||||
string maybeNumber = lastRec.BTLFileName.Replace($"{BTLFileName}_", "");
|
||||
int index = 0;
|
||||
bool isNumber = int.TryParse(maybeNumber, out index);
|
||||
// fasccio comunque verifica sia numerico
|
||||
if (isNumber)
|
||||
{
|
||||
// in questo caso ho il l'ULTIMO duplicato e faccio +1
|
||||
BTLFileName = $"{BTLFileName}_{index + 1}";
|
||||
}
|
||||
string errMessage = $"EXCEPTION on Part.UpdateInfo:{Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
|
||||
// aggiorno valore BTL
|
||||
currData.BTLFileName = BTLFileName;
|
||||
currData.DtExported = DtExported;
|
||||
currData.ListName = ListName;
|
||||
currData.PType = PType;
|
||||
currData.Machine = Machine;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Proj.UpdateInfo: req item was not found | ProjId {ProjId} | BTLFileName {BTLFileName} | ListName {ListName} | DtExported {DtExported} | PType {PType} | Machine {Machine}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
|
||||
return coreConv(currData);
|
||||
@@ -630,18 +669,36 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// <returns></returns>
|
||||
public Core.ProjFileM UpdateListName(int ProjId, string ListName)
|
||||
{
|
||||
ProjModel currData;
|
||||
ProjModel currData = new ProjModel();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
currData = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => x.ProjId == ProjId)
|
||||
.SingleOrDefault();
|
||||
// aggiorno valore BTL
|
||||
currData.ListName = ListName;
|
||||
try
|
||||
{
|
||||
currData = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => x.ProjId == ProjId)
|
||||
.SingleOrDefault();
|
||||
if (currData != null)
|
||||
{
|
||||
// aggiorno valore BTL
|
||||
currData.ListName = ListName;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Proj.UpdateListName: req item was not found | ProjId {ProjId} | ListName {ListName}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Part.UpdateListName:{Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return coreConv(currData);
|
||||
}
|
||||
@@ -654,18 +711,37 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
/// <returns></returns>
|
||||
public Core.ProjFileM UpdateMachine(int ProjId, String Machine)
|
||||
{
|
||||
ProjModel currData;
|
||||
ProjModel currData = new ProjModel();
|
||||
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
|
||||
{
|
||||
currData = localDbCtx
|
||||
try
|
||||
{
|
||||
currData = localDbCtx
|
||||
.ProjList
|
||||
.Where(x => x.ProjId == ProjId)
|
||||
.SingleOrDefault();
|
||||
// aggiorno valore BTL
|
||||
currData.Machine = Machine;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
if (currData != null)
|
||||
{
|
||||
// aggiorno valore BTL
|
||||
currData.Machine = Machine;
|
||||
|
||||
// Commit changes
|
||||
localDbCtx.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
string errMessage = $"ERROR on Proj.UpdateMachine: req item was not found | ProjId {ProjId} | Machine {Machine}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string errMessage = $"EXCEPTION on Part.UpdateMachine:{Environment.NewLine}{exc}";
|
||||
Console.WriteLine(errMessage);
|
||||
Log.Error(errMessage);
|
||||
}
|
||||
}
|
||||
return coreConv(currData);
|
||||
}
|
||||
|
||||
@@ -8,15 +8,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
public class StatusMapController : IDisposable
|
||||
{
|
||||
#region Public Fields
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto statico per gestione chiamate da altre classi
|
||||
/// </summary>
|
||||
public static StatusMapController man = new StatusMapController();
|
||||
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Constructors
|
||||
|
||||
public StatusMapController()
|
||||
|
||||
@@ -97,6 +97,8 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
|
||||
if (!(obj is PartModel item))
|
||||
return false;
|
||||
|
||||
if (BTLPartDbId != item.BTLPartDbId)
|
||||
return false;
|
||||
if (H != item.H)
|
||||
return false;
|
||||
if (L != item.L)
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
|
||||
namespace EgtBEAMWALL.DataLayer
|
||||
@@ -70,6 +72,68 @@ namespace EgtBEAMWALL.DataLayer
|
||||
// esecuzione script di install locale
|
||||
return Controllers.DbController.man.refreshViews(DATABASE_NAME);
|
||||
}
|
||||
/// <summary>
|
||||
/// Effettua DUMP del DB dato utente admin + percorso salvataggio
|
||||
/// </summary>
|
||||
/// <param name="outFilePath">Percorso di salvataggio del dump (*.sql)</param>
|
||||
/// <returns></returns>
|
||||
public static bool DumpDB(string mysqlDumpPath, string outFilePath)
|
||||
{
|
||||
bool fatto = false;
|
||||
// aggiungo sql finale
|
||||
if (!outFilePath.EndsWith(".sql"))
|
||||
{
|
||||
outFilePath = $"{outFilePath}.sql";
|
||||
}
|
||||
// esecuzione script x dump del DB
|
||||
string dirPath = Path.GetDirectoryName(outFilePath);
|
||||
if (!Directory.Exists(dirPath))
|
||||
{
|
||||
Directory.CreateDirectory(dirPath);
|
||||
}
|
||||
// se ci fosse già file elimino...
|
||||
if (File.Exists(outFilePath))
|
||||
{
|
||||
File.Delete(outFilePath);
|
||||
}
|
||||
// chiamo script esterno...
|
||||
string callScript = $"\"{mysqlDumpPath}\" -u{DATABASE_USER} -p{DATABASE_PWD} {DATABASE_NAME} > {outFilePath}";
|
||||
ExecuteCommand(callScript);
|
||||
return fatto;
|
||||
}
|
||||
/// <summary>
|
||||
/// Esecuzione di un comando esterno
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
public static void ExecuteCommand(string command)
|
||||
{
|
||||
int exitCode;
|
||||
ProcessStartInfo processInfo;
|
||||
Process process;
|
||||
|
||||
processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
|
||||
processInfo.CreateNoWindow = true;
|
||||
processInfo.UseShellExecute = false;
|
||||
// *** Redirect the output ***
|
||||
processInfo.RedirectStandardError = true;
|
||||
processInfo.RedirectStandardOutput = true;
|
||||
|
||||
process = Process.Start(processInfo);
|
||||
process.WaitForExit();
|
||||
|
||||
// *** Read the streams ***
|
||||
// Warning: This approach can lead to deadlocks, see Edit #2
|
||||
string output = process.StandardOutput.ReadToEnd();
|
||||
string error = process.StandardError.ReadToEnd();
|
||||
|
||||
exitCode = process.ExitCode;
|
||||
|
||||
Console.WriteLine("output>>" + (String.IsNullOrEmpty(output) ? "(none)" : output));
|
||||
Console.WriteLine("error>>" + (String.IsNullOrEmpty(error) ? "(none)" : error));
|
||||
Console.WriteLine("ExitCode: " + exitCode.ToString(), "ExecuteCommand");
|
||||
process.Close();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Metodo di init standard per DB in rete con Master_Key
|
||||
|
||||
@@ -9,7 +9,6 @@ namespace EgtBEAMWALL.DataLayer
|
||||
{
|
||||
#region Public Fields
|
||||
|
||||
public static DbManager obj = new DbManager();
|
||||
public Controllers.BTLPartController BtlPartCtr = new Controllers.BTLPartController();
|
||||
public Controllers.LogMachineController LogMacCtr = new Controllers.LogMachineController();
|
||||
public Controllers.LogSupportController LogSupCtr = new Controllers.LogSupportController();
|
||||
|
||||
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Egalware s.r.l.")]
|
||||
[assembly: AssemblyProduct("EgtBEAMWALL.DataLayer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020-2022 by Egalware s.r.l.")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020-2023 by Egalware s.r.l.")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("2.4.11.3")]
|
||||
[assembly: AssemblyFileVersion("2.4.11.3")]
|
||||
[assembly: AssemblyVersion("2.5.5.2")]
|
||||
[assembly: AssemblyFileVersion("2.5.5.2")]
|
||||
|
||||
@@ -118,6 +118,7 @@ Public Class CALCPanelVM
|
||||
End Sub
|
||||
|
||||
Private Shared Sub ProcessResults(Bar As Bar)
|
||||
If IsNothing(Bar) Then Return
|
||||
|
||||
' disabilito impostazione modificato
|
||||
Dim DisableMgr As New DisableModifiedMgr
|
||||
@@ -148,7 +149,7 @@ Public Class CALCPanelVM
|
||||
|
||||
If line.StartsWith("ERR=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "ERR")
|
||||
nErr = (If(nVal IsNot Nothing, nVal.Value, 0))
|
||||
nErr = (If(Not IsNothing(nVal), nVal.Value, 0))
|
||||
sMsg = ""
|
||||
dRot = 0
|
||||
nFall = 0
|
||||
@@ -156,24 +157,24 @@ Public Class CALCPanelVM
|
||||
taskId = 0
|
||||
ElseIf line.StartsWith("ROT=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "ROT")
|
||||
Dim nRot As Integer = (If(nVal IsNot Nothing, nVal.Value, 0))
|
||||
Dim nRot As Integer = (If(Not IsNothing(nVal), nVal.Value, 0))
|
||||
dRot = Math.Abs(((4 - nRot) Mod 4) * 90)
|
||||
dPartRot = Math.Max(dPartRot, dRot)
|
||||
dTotRot = Math.Max(dTotRot, dRot)
|
||||
ElseIf line.StartsWith("CUTID=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "CUTID")
|
||||
cutId = If(nVal IsNot Nothing, nVal.Value, 0)
|
||||
cutId = If(Not IsNothing(nVal), nVal.Value, 0)
|
||||
ElseIf line.StartsWith("TASKID=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "TASKID")
|
||||
taskId = (If(nVal IsNot Nothing, nVal.Value, 0))
|
||||
taskId = (If(Not IsNothing(nVal), nVal.Value, 0))
|
||||
ProcessResultAdd(ProcessResultList, ProcessResult.CreateTaskResult(cutId, taskId, nErr, sMsg, dRot), Bar)
|
||||
ElseIf line.StartsWith("FALL=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "FALL")
|
||||
nFall = (If(nVal IsNot Nothing, nVal.Value, 0))
|
||||
nFall = (If(Not IsNothing(nVal), nVal.Value, 0))
|
||||
ProcessResultList.Add(ProcessResult.CreateFallResult(cutId, nErr, sMsg, nFall))
|
||||
ElseIf line.StartsWith("TIME=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "TIME")
|
||||
nTotTime = (If(nVal IsNot Nothing, nVal.Value, 0))
|
||||
nTotTime = (If(Not IsNothing(nVal), nVal.Value, 0))
|
||||
ProcessResultList.Add(ProcessResult.CreateTimeResult(cutId, nTotTime))
|
||||
'If Bar.nBarType = ProjectType.PROJ AndAlso Not IsNothing(currBTLPart) Then
|
||||
' EgtSetInfo(currBTLPart.nPartId, If(Bar.nBarType = ProjectType.PROJ, ITG_PROJ_TIME, ITG_PROD_TIME), nTotTime, True)
|
||||
@@ -216,23 +217,25 @@ Public Class CALCPanelVM
|
||||
End If
|
||||
Select Case Line.Type
|
||||
Case ProcessResult.ProcessResultTypes.BAR
|
||||
CurrMachgroupVM.CalcMachGroupUpdate(Line.nERR, Line.dROT, Line.sMSG)
|
||||
If Not IsNothing(CurrMachgroupVM) Then CurrMachgroupVM.CalcMachGroupUpdate(Line.nERR, Line.dROT, Line.sMSG)
|
||||
Case ProcessResult.ProcessResultTypes.PART
|
||||
CurrPartVM.CalcPartUpdate(Line.nERR, Line.dROT, Line.sMSG)
|
||||
If Not IsNothing(CurrPartVM) Then CurrPartVM.CalcPartUpdate(Line.nERR, Line.dROT, Line.sMSG)
|
||||
Case ProcessResult.ProcessResultTypes.TASKID
|
||||
CurrBTLFeatureVM.CalcFeatureUpdate(Line.nERR, Line.dROT, Line.sMSG)
|
||||
If Not IsNothing(CurrBTLFeatureVM) Then CurrBTLFeatureVM.CalcFeatureUpdate(Line.nERR, Line.dROT, Line.sMSG)
|
||||
Case ProcessResult.ProcessResultTypes.FALL
|
||||
CurrPartVM.CalcFallUpdate(Line.nFALL)
|
||||
If Not IsNothing(CurrPartVM) Then CurrPartVM.CalcFallUpdate(Line.nFALL)
|
||||
Case ProcessResult.ProcessResultTypes.TIME
|
||||
If IsNothing(CurrMachgroupVM) Then CurrMachgroupVM = GetMachgroupVMFromMachgroupId(Bar.nBarId)
|
||||
CurrMachgroupVM.CalcTimeUpdate(Line.nTIME)
|
||||
If Not IsNothing(CurrMachgroupVM) Then CurrMachgroupVM.CalcTimeUpdate(Line.nTIME)
|
||||
End Select
|
||||
Next
|
||||
Machgroup = GetMachgroupVMFromMachgroupId(Bar.nBarId)
|
||||
For Each Part In Machgroup.PartVMList
|
||||
Part.CalcGlobalUpdate()
|
||||
Next
|
||||
Machgroup.CalcGlobalUpdate()
|
||||
If Not IsNothing(Machgroup) Then
|
||||
For Each Part In Machgroup.PartVMList
|
||||
Part.CalcGlobalUpdate()
|
||||
Next
|
||||
Machgroup.CalcGlobalUpdate()
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
@@ -474,7 +474,7 @@ Public Class NUMAxiumComm
|
||||
Friend Sub WriteNCVariables(Address As String, value As String)
|
||||
Try
|
||||
Dim dValue As Double = 0
|
||||
StringToDouble(value, dValue)
|
||||
StringToDoubleAdv(value, dValue)
|
||||
Dim rc As Short = objDVariables.WriteVariables(objDGroupManager.Handle, Address, value)
|
||||
|
||||
'If rc <> 0 Then EgtOutLog(" objDVariables.WriteVariables2() Error : " & rc)
|
||||
|
||||
@@ -467,7 +467,7 @@ Public Class NUMAxiumPcToolkitComm
|
||||
Friend Sub WritePlcVariables(Address As String, value As String)
|
||||
Try
|
||||
Dim dValue As Double = 0
|
||||
StringToDouble(value, dValue)
|
||||
StringToDoubleAdv(value, dValue)
|
||||
Select Case Address
|
||||
Case "E30099" ' in realta' per scrivere si usa la %RD0C.L
|
||||
Dim nRes = WriteLadderVar(m_nPortWVariables, RL, &HD0C, 1, dValue)
|
||||
@@ -641,7 +641,6 @@ Public Class NUMAxiumPcToolkitComm
|
||||
Dim FileTransferThread As New Thread(Sub()
|
||||
' leggo variabile E30099
|
||||
Dim SendPermissionVariable As Variable = Map.refMachCommandMessagePanelVM.MainVariablesList.FirstOrDefault(Function(x) x.sName = SENDPERMISSION)
|
||||
Dim dTemp As Double = 0
|
||||
Dim nSendPermission As Integer = 0
|
||||
EgtOutLog("Inizio invio programma")
|
||||
While nSendPermission <> 2
|
||||
@@ -649,8 +648,7 @@ Public Class NUMAxiumPcToolkitComm
|
||||
EgtOutLog("Inizio ciclo verifica diverso da 2")
|
||||
' leggo valore
|
||||
If Not IsNothing(SendPermissionVariable.sValue) Then
|
||||
StringToDouble(SendPermissionVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nSendPermission)
|
||||
Integer.TryParse(SendPermissionVariable.sValue, nSendPermission)
|
||||
EgtOutLog("Lettura variabile E30099: " & nSendPermission)
|
||||
Else
|
||||
EgtOutLog("nSendPermission = -1")
|
||||
@@ -701,9 +699,12 @@ Public Class NUMAxiumPcToolkitComm
|
||||
Try
|
||||
ISONumVariable.sValue = SentMachGroup.Name
|
||||
ISOSentVariable.sValue = 0
|
||||
While ISOSentVariable.sValue <> 0
|
||||
Threading.Thread.Sleep(100)
|
||||
End While
|
||||
'Dim TempISOSentVariable As Variable = Map.refMachCommandMessagePanelVM.MainVariablesList.FirstOrDefault(Function(x) x.sName = ISO_SENT)
|
||||
'While ISOSentVariable.sValue <> "0"
|
||||
' Threading.Thread.Sleep(100)
|
||||
' EgtOutLog("Bloccato - Sent(80046): " & TempISOSentVariable.sValue & " Num(80045): " & ISONumVariable.sValue)
|
||||
' TempISOSentVariable = Map.refMachCommandMessagePanelVM.MainVariablesList.FirstOrDefault(Function(x) x.sName = ISO_SENT)
|
||||
'End While
|
||||
SentMachGroup.SetSentToMachine(True)
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Error write var after download: " & ex.Message)
|
||||
@@ -713,7 +714,7 @@ Public Class NUMAxiumPcToolkitComm
|
||||
nRes = DownLoadFileAsyn(nPortFileTransfer, nFileType, sFilePath, DNC_MODE_ABORT, nIndex)
|
||||
SendPermissionVariable.sValue = 0
|
||||
m_BytesTransferedCounter = 0
|
||||
Threading.Thread.Sleep(500)
|
||||
Threading.Thread.Sleep(1000)
|
||||
m_bIsTransferActive = False
|
||||
Return
|
||||
End Sub)
|
||||
@@ -795,7 +796,7 @@ Public Class NUMAxiumPcToolkitComm
|
||||
Friend Sub WriteNCVariables(Address As String, value As String)
|
||||
Try
|
||||
Dim dValue As Double = 0
|
||||
StringToDouble(value, dValue)
|
||||
StringToDoubleAdv(value, dValue)
|
||||
Dim nType As eVarious4
|
||||
Dim nValue As Integer = 0
|
||||
Dim MyData As New My_data_struct
|
||||
|
||||
@@ -378,7 +378,7 @@ Public Class NUMFlexiumComm
|
||||
' EgtOutLog("Inizio ciclo verifica diverso da 2")
|
||||
' ' leggo valore
|
||||
' If Not IsNothing(SendPermissionVariable.sValue) Then
|
||||
' StringToDouble(SendPermissionVariable.sValue, dTemp)
|
||||
' StringToDoubleAdv(SendPermissionVariable.sValue, dTemp)
|
||||
' Integer.TryParse(dTemp, nSendPermission)
|
||||
' EgtOutLog("Lettura variabile E30099: " & nSendPermission)
|
||||
' Else
|
||||
@@ -449,7 +449,7 @@ Public Class NUMFlexiumComm
|
||||
Friend Sub WriteNCVariables(Address As String, value As String)
|
||||
Try
|
||||
Dim dValue As Double = 0
|
||||
StringToDouble(value, dValue)
|
||||
StringToDoubleAdv(value, dValue)
|
||||
Dim rc As Short = objDVariables.WriteVariables2(2, objDGroupManager.Handle, Address, dValue)
|
||||
|
||||
If rc <> 0 Then EgtOutLog(" objDVariables.WriteVariables2() Error : " & rc)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.Globalization
|
||||
Imports System.IO
|
||||
Imports System.Windows.Threading
|
||||
Imports EgtBEAMWALL.Core
|
||||
@@ -1003,14 +1004,48 @@ Public Class LeftPanelVM
|
||||
|
||||
Private Sub CreateDataFile(sFilePath As String, SelPart As PartVM, SelMachGroup As MyMachGroupVM)
|
||||
Dim sFileText As New List(Of String)
|
||||
Dim nBtlInfoId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
|
||||
Dim sInfo As String = ""
|
||||
Dim bOk As Boolean = False
|
||||
' inserisco il capitolo del [Main]
|
||||
sFileText.Add("[Main]")
|
||||
sFileText.Add("Var1=$PRODID$," & Map.refSupervisorManagerVM.CurrProd.sProdId)
|
||||
sFileText.Add("Var2=$MACHGROUPID$," & SelMachGroup.Id)
|
||||
sFileText.Add("Var2=$MACHGROUPID$," & SelMachGroup.nName)
|
||||
sFileText.Add("Var3=$PARTID$," & SelPart.nPDN)
|
||||
sFileText.Add("Var4=$MATERIAL$," & SelPart.sMATERIAL)
|
||||
'sFileText.Add("Var5=$Thickness$," & SelPart.Thickness)
|
||||
'sFileText.Add("Var6=$Storage$," & SelPart.WarehousePosition)
|
||||
bOk = EgtGetInfo(nBtlInfoId, BTL_GEN_PROJNUM, sInfo)
|
||||
sFileText.Add("Var5=$PROJECTNUMBER$," & If(bOk, sInfo, ""))
|
||||
bOk = EgtGetInfo(nBtlInfoId, BTL_GEN_PROJNAME, sInfo)
|
||||
sFileText.Add("Var6=$PROJECTNAME$," & If(bOk, sInfo, ""))
|
||||
bOk = EgtGetInfo(nBtlInfoId, BTL_GEN_CUSTOMER, sInfo)
|
||||
sFileText.Add("Var7=$CUSTOMER$," & If(bOk, sInfo, ""))
|
||||
bOk = EgtGetInfo(SelPart.nPartId, BTL_PRT_ASSEMBLYNUM, sInfo)
|
||||
sFileText.Add("Var8=$ASSEMBLYNUMBER$," & If(bOk, sInfo, ""))
|
||||
bOk = EgtGetInfo(SelPart.nPartId, BTL_PRT_ORDERNUM, sInfo)
|
||||
sFileText.Add("Var9=$ORDERNUMBER$," & If(bOk, sInfo, ""))
|
||||
bOk = EgtGetInfo(SelPart.nPartId, BTL_PRT_DESIGNATION, sInfo)
|
||||
sFileText.Add("Var10=$DESIGNATION$," & If(bOk, sInfo, ""))
|
||||
bOk = EgtGetInfo(SelPart.nPartId, BTL_PRT_ANNOTATION, sInfo)
|
||||
sFileText.Add("Var11=$ANNOTATION$," & If(bOk, sInfo, ""))
|
||||
sFileText.Add("Var12=$STOREY$," & SelPart.sSTOREY)
|
||||
sFileText.Add("Var13=$GROUP$," & SelPart.sGROUP)
|
||||
bOk = EgtGetInfo(SelPart.nPartId, BTL_PRT_PACKAGE, sInfo)
|
||||
sFileText.Add("Var14=$PACKAGE$," & If(bOk, sInfo, ""))
|
||||
sFileText.Add("Var15=$WHL$," & SelPart.sW & "x" & SelPart.sH & "x" & SelPart.sL)
|
||||
sFileText.Add("Var16=$PRODUCTIONDATE$," & Date.Now().ToString("yyyy-MM-dd"))
|
||||
' calcolo numero settimana corrente secondo ISO 8601
|
||||
Dim time As Date = Date.Now()
|
||||
Dim Day As DayOfWeek = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(time)
|
||||
If Day >= DayOfWeek.Monday AndAlso Day <= DayOfWeek.Wednesday Then time = time.AddDays(3)
|
||||
Dim nWeekOfYear As Integer = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(time, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)
|
||||
sFileText.Add("Var17=$PRODUCTIONWEEK$," & nWeekOfYear)
|
||||
bOk = EgtGetInfo(SelPart.nPartId, BTL_PRT_DESCRIPTION, sInfo)
|
||||
sFileText.Add("Var18=$DESCRIPTION$," & If(bOk, sInfo, ""))
|
||||
bOk = EgtGetInfo(SelPart.nPartId, BTL_PRT_QUALITYGRADE, sInfo)
|
||||
sFileText.Add("Var19=$QUALITYGRADE$," & If(bOk, sInfo, ""))
|
||||
bOk = EgtGetInfo(nBtlInfoId, BTL_GEN_BTLPATH, sInfo)
|
||||
sFileText.Add("Var20=$BTLPATH$," & If(bOk, Path.GetFileNameWithoutExtension(sInfo), ""))
|
||||
|
||||
Try
|
||||
File.WriteAllLines(sFilePath, sFileText)
|
||||
Catch ex As Exception
|
||||
|
||||
@@ -666,10 +666,17 @@ Public Class MachCommandMessagePanelVM
|
||||
ErrorAdditionalMsg = "Line Number"
|
||||
ErrorNumberMsg = "CN:"
|
||||
End If
|
||||
Dim sErrorMessage As String = ErrorMessage
|
||||
If bMsgTranslationActive Then
|
||||
Dim sTranslatedMsg = MachMsg(MsgParagraphs.CNC, nErrorNumber)
|
||||
If Not String.IsNullOrWhiteSpace(sTranslatedMsg) Then
|
||||
sErrorMessage = sTranslatedMsg
|
||||
End If
|
||||
End If
|
||||
ErrorLineMsg = "Number from the Cnc Block"
|
||||
AlarmMessage = If(nErrorNumber <> 0, ErrorNumberMsg & ": " & nErrorNumber & " - ", "") &
|
||||
If(nErrorExtNumber <> 0, " - " & ErrorExtNumberMsg & ": " & nErrorExtNumber, "") &
|
||||
" " & ErrorMessage
|
||||
" " & sErrorMessage
|
||||
Case NUM_ErrorTypes.Drive_Error
|
||||
ErrorIndexMsg = "Azionamento: Asse"
|
||||
ErrorNumberMsg = "Ext"
|
||||
|
||||
@@ -132,7 +132,7 @@ Public Class MyMachGroupVM
|
||||
EgtGetInfo(Id, MGR_RPT_PART & 1, sInfo)
|
||||
If Not String.IsNullOrWhiteSpace(sInfo) Then
|
||||
sSplitInfo = sInfo.Split(","c)
|
||||
StringToDouble(sSplitInfo(1), MyMachGroupM.dStartCut)
|
||||
StringToDoubleAdv(sSplitInfo(1), MyMachGroupM.dStartCut)
|
||||
Else
|
||||
MyMachGroupM.dStartCut = 0
|
||||
End If
|
||||
|
||||
@@ -286,70 +286,59 @@ Public Class MachManaging
|
||||
Dim dTemp As Double = 0
|
||||
Dim nTemp As Integer = 0
|
||||
If Not IsNothing(ResetVariable.sValue) Then
|
||||
StringToDouble(ResetVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nReset_State)
|
||||
Integer.TryParse(ResetVariable.sValue, nReset_State)
|
||||
Else
|
||||
nReset_State = 1
|
||||
End If
|
||||
If Not IsNothing(StartVariable.sValue) Then
|
||||
StringToDouble(StartVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nTemp)
|
||||
Integer.TryParse(StartVariable.sValue, nTemp)
|
||||
nStart_State = (nTemp = 1)
|
||||
Else
|
||||
nStart_State = -1
|
||||
End If
|
||||
If Not IsNothing(StopVariable.sValue) Then
|
||||
StringToDouble(StopVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nTemp)
|
||||
Integer.TryParse(StopVariable.sValue, nTemp)
|
||||
nStop_State = (nTemp = 1)
|
||||
Else
|
||||
nStop_State = -1
|
||||
End If
|
||||
If Not IsNothing(ProdVariable.sValue) Then
|
||||
StringToDouble(ProdVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nP_Prod)
|
||||
Integer.TryParse(ProdVariable.sValue, nP_Prod)
|
||||
Else
|
||||
nP_Prod = -1
|
||||
End If
|
||||
If Not IsNothing(MachGroupVariable.sValue) Then
|
||||
StringToDouble(MachGroupVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nP_Machgroup)
|
||||
Integer.TryParse(MachGroupVariable.sValue, nP_Machgroup)
|
||||
Else
|
||||
nP_Machgroup = -1
|
||||
End If
|
||||
If Not IsNothing(PartVariable.sValue) Then
|
||||
StringToDouble(PartVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nP_Part)
|
||||
Integer.TryParse(PartVariable.sValue, nP_Part)
|
||||
Else
|
||||
nP_Part = -1
|
||||
End If
|
||||
If Not IsNothing(StateVariable.sValue) Then
|
||||
StringToDouble(StateVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nP_State)
|
||||
Integer.TryParse(StateVariable.sValue, nP_State)
|
||||
Else
|
||||
nP_State = -1
|
||||
End If
|
||||
If Not IsNothing(ISONumVariable.sValue) Then
|
||||
StringToDouble(ISONumVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nISO_Num)
|
||||
Integer.TryParse(ISONumVariable.sValue, nISO_Num)
|
||||
Else
|
||||
nISO_Num = -1
|
||||
End If
|
||||
If Not IsNothing(ISOSentVariable.sValue) Then
|
||||
StringToDouble(ISOSentVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nISO_Sent)
|
||||
Integer.TryParse(ISOSentVariable.sValue, nISO_Sent)
|
||||
Else
|
||||
nISO_Sent = -1
|
||||
End If
|
||||
If Not IsNothing(RunningVariable.sValue) Then
|
||||
StringToDouble(RunningVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nRunning)
|
||||
Integer.TryParse(RunningVariable.sValue, nRunning)
|
||||
Else
|
||||
nRunning = -1
|
||||
End If
|
||||
If Not IsNothing(MachIndexVariable.sValue) Then
|
||||
StringToDouble(MachIndexVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nCurrMachIndex)
|
||||
Integer.TryParse(MachIndexVariable.sValue, nCurrMachIndex)
|
||||
Else
|
||||
nCurrMachIndex = -1
|
||||
End If
|
||||
@@ -366,70 +355,59 @@ Public Class MachManaging
|
||||
Dim dTemp As Double = 0
|
||||
Dim nTemp As Integer = 0
|
||||
If Not IsNothing(ResetVariable.sValue) Then
|
||||
StringToDouble(ResetVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nReset_State)
|
||||
Integer.TryParse(ResetVariable.sValue, nReset_State)
|
||||
Else
|
||||
nReset_State = 1
|
||||
End If
|
||||
If Not IsNothing(StartVariable.sValue) Then
|
||||
StringToDouble(StartVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nTemp)
|
||||
Integer.TryParse(StartVariable.sValue, nTemp)
|
||||
nStart_State = (nTemp = 1)
|
||||
Else
|
||||
nStart_State = -1
|
||||
End If
|
||||
If Not IsNothing(StopVariable.sValue) Then
|
||||
StringToDouble(StopVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nTemp)
|
||||
Integer.TryParse(StopVariable.sValue, nTemp)
|
||||
nStop_State = (nTemp = 1)
|
||||
Else
|
||||
nStop_State = -1
|
||||
End If
|
||||
If Not IsNothing(ProdVariable.sValue) Then
|
||||
StringToDouble(ProdVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nP_Prod)
|
||||
Integer.TryParse(ProdVariable.sValue, nP_Prod)
|
||||
Else
|
||||
nP_Prod = -1
|
||||
End If
|
||||
If Not IsNothing(MachGroupVariable.sValue) Then
|
||||
StringToDouble(MachGroupVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nP_Machgroup)
|
||||
Integer.TryParse(MachGroupVariable.sValue, nP_Machgroup)
|
||||
Else
|
||||
nP_Machgroup = -1
|
||||
End If
|
||||
If Not IsNothing(PartVariable.sValue) Then
|
||||
StringToDouble(PartVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nP_Part)
|
||||
Integer.TryParse(PartVariable.sValue, nP_Part)
|
||||
Else
|
||||
nP_Part = -1
|
||||
End If
|
||||
If Not IsNothing(StateVariable.sValue) Then
|
||||
StringToDouble(StateVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nP_State)
|
||||
Integer.TryParse(StateVariable.sValue, nP_State)
|
||||
Else
|
||||
nP_State = -1
|
||||
End If
|
||||
If Not IsNothing(ISONumVariable.sValue) Then
|
||||
StringToDouble(ISONumVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nISO_Num)
|
||||
Integer.TryParse(ISONumVariable.sValue, nISO_Num)
|
||||
Else
|
||||
nISO_Num = -1
|
||||
End If
|
||||
If Not IsNothing(ISOSentVariable.sValue) Then
|
||||
StringToDouble(ISOSentVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nISO_Sent)
|
||||
Integer.TryParse(ISOSentVariable.sValue, nISO_Sent)
|
||||
Else
|
||||
nISO_Sent = -1
|
||||
End If
|
||||
If Not IsNothing(RunningVariable.sValue) Then
|
||||
StringToDouble(RunningVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nRunning)
|
||||
Integer.TryParse(RunningVariable.sValue, nRunning)
|
||||
Else
|
||||
nRunning = -1
|
||||
End If
|
||||
If Not IsNothing(MachIndexVariable.sValue) Then
|
||||
StringToDouble(MachIndexVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nCurrMachIndex)
|
||||
Integer.TryParse(MachIndexVariable.sValue, nCurrMachIndex)
|
||||
Else
|
||||
nCurrMachIndex = -1
|
||||
End If
|
||||
@@ -469,7 +447,7 @@ Public Class MachManaging
|
||||
Else
|
||||
OpState = OPStates.End
|
||||
End If
|
||||
If OpState <> Map.refLeftPanelVM.SelOPState.Id Then
|
||||
If IsNothing(Map.refLeftPanelVM.SelOPState) OrElse OpState <> Map.refLeftPanelVM.SelOPState.Id Then
|
||||
m_OpStateCallbackDlg(OpState)
|
||||
End If
|
||||
End If
|
||||
@@ -540,27 +518,33 @@ Public Class MachManaging
|
||||
Dim MachGroup As MyMachGroupVM = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x) x.Id = nP_Machgroup)
|
||||
' se pezzo = -1 devo dare start a tutti i pezzi del MachGroup
|
||||
If nP_Part = -1 Then
|
||||
For Each Part In MachGroup.PartVMList
|
||||
' scrivo data start su Db pezzo
|
||||
DbControllers.m_PartController.UpdateStart(nP_Prod, nP_Machgroup, Part.nPartId, dtStart)
|
||||
DbControllers.m_PartController.UpdateStatus(nP_Prod, nP_Machgroup, Part.nPartId, ItemState.WIP)
|
||||
' scrivo stato start
|
||||
Part.nProduction_State = ItemState.WIP
|
||||
Part.dtStartTime = dtStart
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nProduction_State))
|
||||
' scrivo evento inizio pezzo su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreatePartStateLog(dtStart, nP_Prod, nP_Machgroup, Part.nPartId, nP_State, DbControllers.SupervisorId))
|
||||
Next
|
||||
If Not IsNothing(MachGroup) Then
|
||||
For Each Part In MachGroup.PartVMList
|
||||
' scrivo data start su Db pezzo
|
||||
DbControllers.m_PartController.UpdateStart(nP_Prod, nP_Machgroup, Part.nPartId, dtStart)
|
||||
DbControllers.m_PartController.UpdateStatus(nP_Prod, nP_Machgroup, Part.nPartId, ItemState.WIP)
|
||||
' scrivo stato start
|
||||
Part.nProduction_State = ItemState.WIP
|
||||
Part.dtStartTime = dtStart
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nProduction_State))
|
||||
' scrivo evento inizio pezzo su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreatePartStateLog(dtStart, nP_Prod, nP_Machgroup, Part.nPartId, nP_State, DbControllers.SupervisorId))
|
||||
Next
|
||||
End If
|
||||
Else
|
||||
' scrivo data start su Db pezzo
|
||||
DbControllers.m_PartController.UpdateStart(nP_Prod, nP_Machgroup, nP_Part, dtStart)
|
||||
DbControllers.m_PartController.UpdateStatus(nP_Prod, nP_Machgroup, nP_Part, ItemState.WIP)
|
||||
' recupero pezzo
|
||||
Dim Part As PartVM = MachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nP_Part)
|
||||
' scrivo stato start
|
||||
Part.nProduction_State = ItemState.WIP
|
||||
Part.dtStartTime = dtStart
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nProduction_State))
|
||||
If Not IsNothing(MachGroup) Then
|
||||
' recupero pezzo
|
||||
Dim Part As PartVM = MachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nP_Part)
|
||||
If Not IsNothing(Part) Then
|
||||
' scrivo stato start
|
||||
Part.nProduction_State = ItemState.WIP
|
||||
Part.dtStartTime = dtStart
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nProduction_State))
|
||||
End If
|
||||
End If
|
||||
' scrivo evento inizio pezzo su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreatePartStateLog(dtStart, nP_Prod, nP_Machgroup, nP_Part, nP_State, DbControllers.SupervisorId))
|
||||
End If
|
||||
@@ -577,9 +561,11 @@ Public Class MachManaging
|
||||
DbControllers.m_MachGroupController.UpdateStart(nP_Prod, nP_Machgroup, dtStart)
|
||||
DbControllers.m_MachGroupController.UpdateStatus(nP_Prod, nP_Machgroup, ItemState.WIP)
|
||||
' scrivo stato start
|
||||
MachGroup.MyMachGroupM.SetProductionState(ItemState.WIP)
|
||||
MachGroup.dtStartTime = dtStart
|
||||
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.nProduction_State))
|
||||
If Not IsNothing(MachGroup) Then
|
||||
MachGroup.MyMachGroupM.SetProductionState(ItemState.WIP)
|
||||
MachGroup.dtStartTime = dtStart
|
||||
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.nProduction_State))
|
||||
End If
|
||||
' scrivo evento inizio MachGroup su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachGroupStateLog(dtStart, nP_Prod, nP_Machgroup, nP_State, DbControllers.SupervisorId))
|
||||
End If
|
||||
@@ -591,44 +577,50 @@ Public Class MachManaging
|
||||
Dim MachGroup As MyMachGroupVM = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x) x.Id = nP_Machgroup)
|
||||
' se pezzo = -1 devo dare end a tutti i pezzi del MachGroup
|
||||
If nP_Part = -1 Then
|
||||
For Each Part In MachGroup.PartVMList
|
||||
' scrivo data end su Db pezzo
|
||||
DbControllers.m_PartController.UpdateEnd(nP_Prod, nP_Machgroup, Part.nPartId, dtEnd)
|
||||
DbControllers.m_PartController.UpdateStatus(nP_Prod, nP_Machgroup, Part.nPartId, ItemState.Produced)
|
||||
' scrivo stato end
|
||||
Part.nProduction_State = ItemState.Produced
|
||||
Part.dtEndTime = dtEnd
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nProduction_State))
|
||||
' resetto stato redo
|
||||
Part.bRedo = False
|
||||
' se non impostata data start
|
||||
If Part.dtStartTime = DateTime.MinValue Then
|
||||
' scrivo data start su Db pezzo
|
||||
Dim dtStart As DateTime = Part.dtEndTime - TimeSpan.FromSeconds(60)
|
||||
DbControllers.m_PartController.UpdateStart(nP_Prod, nP_Machgroup, Part.nPartId, dtStart)
|
||||
Part.dtStartTime = dtStart
|
||||
End If
|
||||
' scrivo evento fine pezzo su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreatePartStateLog(dtEnd, nP_Prod, nP_Machgroup, Part.nPartId, nP_State, DbControllers.SupervisorId))
|
||||
Next
|
||||
If Not IsNothing(MachGroup) Then
|
||||
For Each Part In MachGroup.PartVMList
|
||||
' scrivo data end su Db pezzo
|
||||
DbControllers.m_PartController.UpdateEnd(nP_Prod, nP_Machgroup, Part.nPartId, dtEnd)
|
||||
DbControllers.m_PartController.UpdateStatus(nP_Prod, nP_Machgroup, Part.nPartId, ItemState.Produced)
|
||||
' scrivo stato end
|
||||
Part.nProduction_State = ItemState.Produced
|
||||
Part.dtEndTime = dtEnd
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nProduction_State))
|
||||
' resetto stato redo
|
||||
Part.bRedo = False
|
||||
' se non impostata data start
|
||||
If Part.dtStartTime = DateTime.MinValue Then
|
||||
' scrivo data start su Db pezzo
|
||||
Dim dtStart As DateTime = Part.dtEndTime - TimeSpan.FromSeconds(60)
|
||||
DbControllers.m_PartController.UpdateStart(nP_Prod, nP_Machgroup, Part.nPartId, dtStart)
|
||||
Part.dtStartTime = dtStart
|
||||
End If
|
||||
' scrivo evento fine pezzo su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreatePartStateLog(dtEnd, nP_Prod, nP_Machgroup, Part.nPartId, nP_State, DbControllers.SupervisorId))
|
||||
Next
|
||||
End If
|
||||
Else
|
||||
' scrivo data end su Db pezzo
|
||||
DbControllers.m_PartController.UpdateEnd(nP_Prod, nP_Machgroup, nP_Part, dtEnd)
|
||||
DbControllers.m_PartController.UpdateStatus(nP_Prod, nP_Machgroup, nP_Part, ItemState.Produced)
|
||||
' recupero pezzo
|
||||
Dim Part As PartVM = MachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nP_Part)
|
||||
' scrivo stato end
|
||||
Part.nProduction_State = ItemState.Produced
|
||||
Part.dtEndTime = dtEnd
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nProduction_State))
|
||||
' resetto stato redo
|
||||
Part.bRedo = False
|
||||
If Not IsNothing(MachGroup) Then
|
||||
' recupero pezzo
|
||||
Dim Part As PartVM = MachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nP_Part)
|
||||
If Not IsNothing(Part) Then
|
||||
' scrivo stato end
|
||||
Part.nProduction_State = ItemState.Produced
|
||||
Part.dtEndTime = dtEnd
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nProduction_State))
|
||||
' resetto stato redo
|
||||
Part.bRedo = False
|
||||
End If
|
||||
End If
|
||||
' scrivo evento fine pezzo su DB
|
||||
DbControllers.m_LogMachineController.Create(LogEvent.CreatePartStateLog(dtEnd, nP_Prod, nP_Machgroup, nP_Part, nP_State, DbControllers.SupervisorId))
|
||||
End If
|
||||
|
||||
' se tutti i pezzi della barra sono in end
|
||||
If MachGroup.PartVMList.All(Function(x) x.nProduction_State >= 2) Then
|
||||
If Not IsNothing(MachGroup) AndAlso MachGroup.PartVMList.All(Function(x) x.nProduction_State >= 2) Then
|
||||
' scrivo data end su Db barra
|
||||
DbControllers.m_MachGroupController.UpdateEnd(nP_Prod, nP_Machgroup, dtEnd)
|
||||
DbControllers.m_MachGroupController.UpdateStatus(nP_Prod, nP_Machgroup, ItemState.Produced)
|
||||
@@ -674,13 +666,17 @@ Public Class MachManaging
|
||||
End If
|
||||
' se pezzo = -1 stampo etichette di tutti i pezzi del MachGroup
|
||||
If nP_Part = -1 Then
|
||||
For Each Part In MachGroup.PartVMList
|
||||
Map.refLeftPanelVM.PrintLabel(MachGroup, Part)
|
||||
Next
|
||||
If Not IsNothing(MachGroup) Then
|
||||
For Each Part In MachGroup.PartVMList
|
||||
Map.refLeftPanelVM.PrintLabel(MachGroup, Part)
|
||||
Next
|
||||
End If
|
||||
Else
|
||||
' recupero pezzo
|
||||
Dim Part As PartVM = MachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nP_Part)
|
||||
Map.refLeftPanelVM.PrintLabel(MachGroup, Part)
|
||||
If Not IsNothing(Part) Then
|
||||
Map.refLeftPanelVM.PrintLabel(MachGroup, Part)
|
||||
End If
|
||||
End If
|
||||
' attesa per essere sicuro che abbia scritto e riletto variabili
|
||||
Threading.Thread.Sleep(300)
|
||||
@@ -706,7 +702,7 @@ Public Class MachManaging
|
||||
For VParIndex = 1 To sVs.Length - 1
|
||||
Dim VPar() As String = sVs(VParIndex).Split("="c)
|
||||
VPar(1) = VPar(1).Trim
|
||||
StringToDouble(VPar(1), dVPars(VParIndex - 1))
|
||||
StringToDoubleAdv(VPar(1), dVPars(VParIndex - 1))
|
||||
Next
|
||||
' li scrivo nel CN
|
||||
For Index As Integer = 1 To 10
|
||||
@@ -807,6 +803,7 @@ Public Class MachManaging
|
||||
Case CommandTypes.READ_TPA
|
||||
Tpa.RWVariableManager.RefreshVar(Command.sVariable)
|
||||
Case CommandTypes.WRITE
|
||||
'EgtOutLog("Write" & Command.sVariable & " " & Command.sVariables(1) & " " & Command.nVariable)
|
||||
WriteVar(Command.sVariable, Command.sVariables(1), Command.nVariable)
|
||||
Case CommandTypes.DELETEALARMS
|
||||
DeleteAlarms()
|
||||
@@ -1227,10 +1224,8 @@ Public Class MachManaging
|
||||
Dim nIndex As Integer = Index
|
||||
Dim PLCMessagesVariable As Variable = Map.refMachCommandMessagePanelVM.MainVariablesList.FirstOrDefault(Function(x) x.sName = PLC_MESSAGES & nIndex)
|
||||
If IsNothing(PLCMessagesVariable) OrElse IsNothing(PLCMessagesVariable.sValue) Then Return
|
||||
Dim dTemp As Double = 0
|
||||
Dim nTemp As Integer = 0
|
||||
StringToDouble(PLCMessagesVariable.sValue, dTemp)
|
||||
Integer.TryParse(dTemp, nTemp)
|
||||
Integer.TryParse(PLCMessagesVariable.sValue, nTemp)
|
||||
Dim Bytes As Byte() = BitConverter.GetBytes(nTemp)
|
||||
Dim NewBytes As Byte() = BitConverter.GetBytes(nTemp)
|
||||
For nBIndex = Bytes.Count - 1 To 0 Step -1
|
||||
|
||||
@@ -148,7 +148,7 @@ Public Class RWVariableManager
|
||||
Public Sub ReadVar(Name As String, ByRef Value As Double)
|
||||
Dim nIndex As Integer = GetIndexFromName(Name)
|
||||
If nIndex >= 0 Then
|
||||
Value = StringToDouble(m_ReadedVars(nIndex), 5)
|
||||
Value = StringToDoubleAdv(m_ReadedVars(nIndex), 5)
|
||||
Else
|
||||
Value = -999999999
|
||||
End If
|
||||
|
||||
@@ -173,35 +173,33 @@ Public Class MachineLogPageVM
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Private Function MachineLogFilter(LogEvent As Object) As Boolean
|
||||
Dim CurrLogEvent As LogEvent = DirectCast(LogEvent, LogEvent)
|
||||
Private Function MachineLogFilter(CurrEvent As Object) As Boolean
|
||||
Dim CurrLogEvent As LogEvent = DirectCast(CurrEvent, LogEvent)
|
||||
Dim bOk As Boolean = True
|
||||
Select Case m_SelEntityType
|
||||
Case 0
|
||||
bOk = bOk And True
|
||||
Case 1
|
||||
bOk = bOk And CurrLogEvent.EventType = MachLogTypes.PART_STATUS
|
||||
Case 2
|
||||
bOk = bOk And CurrLogEvent.EventType = MachLogTypes.MACHGROUP_STATUS
|
||||
End Select
|
||||
If CurrLogEvent.EventType = MachLogTypes.PART_STATUS OrElse CurrLogEvent.EventType = MachLogTypes.MACHGROUP_STATUS Then
|
||||
Select Case m_SelPartEventType
|
||||
Case 0
|
||||
bOk = bOk And True
|
||||
Case 1
|
||||
bOk = bOk And CurrLogEvent.nStatus = 1
|
||||
Case 2
|
||||
bOk = bOk And CurrLogEvent.nStatus = 2
|
||||
End Select
|
||||
End If
|
||||
' se livello utente inferiore a 5, mostro solo eventi pezzo e machgroup
|
||||
If Map.refMainWindowVM.MainWindowM.nUserLevel < 5 Then
|
||||
bOk = bOk And CurrLogEvent.EventType = MachLogTypes.PART_STATUS OrElse CurrLogEvent.EventType = MachLogTypes.MACHGROUP_STATUS
|
||||
Else
|
||||
If Not CurrLogEvent.EventType = MachLogTypes.PART_STATUS AndAlso Not CurrLogEvent.EventType = MachLogTypes.MACHGROUP_STATUS Then
|
||||
bOk = True
|
||||
If CurrLogEvent.EventType <> LogEvent.MachLogTypes.PART_STATUS AndAlso CurrLogEvent.EventType <> LogEvent.MachLogTypes.MACHGROUP_STATUS Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
Select Case m_SelEntityType
|
||||
Case 0 ' ""
|
||||
bOk = bOk And True
|
||||
Case 1 ' "Pezzo"
|
||||
bOk = bOk And CurrLogEvent.EventType = LogEvent.MachLogTypes.PART_STATUS
|
||||
Case 2 ' "Barra"
|
||||
bOk = bOk And CurrLogEvent.EventType = LogEvent.MachLogTypes.MACHGROUP_STATUS
|
||||
End Select
|
||||
If CurrLogEvent.EventType = LogEvent.MachLogTypes.PART_STATUS OrElse CurrLogEvent.EventType = LogEvent.MachLogTypes.MACHGROUP_STATUS Then
|
||||
Select Case m_SelPartEventType
|
||||
Case 0 ' ""
|
||||
bOk = bOk And True
|
||||
Case 1 ' "Inizio"
|
||||
bOk = bOk And CurrLogEvent.nStatus = 1
|
||||
Case 2 ' "Fine"
|
||||
bOk = bOk And CurrLogEvent.nStatus = 2
|
||||
End Select
|
||||
End If
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
|
||||
@@ -240,8 +240,8 @@ Public Class MainWindowM
|
||||
' Verifico abilitazione nesting automatico
|
||||
m_bAutoNestOption = Not String.IsNullOrWhiteSpace(sNestKey)
|
||||
' Recupero livello e opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2411, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2411, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2504, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2504, 1, m_nKeyOptions)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
||||
m_sLogFile = m_sTempDir & "\" & SUPGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||
|
||||
@@ -30,7 +30,7 @@ Imports System.Windows
|
||||
#End if
|
||||
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
||||
<Assembly: AssemblyProduct("EgtBEAMWALL.Supervisor")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2020-2022 by Egalware s.r.l.")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2020-2023 by Egalware s.r.l.")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
<Assembly: ComVisible(false)>
|
||||
|
||||
@@ -70,5 +70,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.11.3")>
|
||||
<Assembly: AssemblyFileVersion("2.4.11.3")>
|
||||
<Assembly: AssemblyVersion("2.5.5.2")>
|
||||
<Assembly: AssemblyFileVersion("2.5.5.2")>
|
||||
|
||||
|
Before Width: | Height: | Size: 889 B After Width: | Height: | Size: 1016 B |
@@ -178,13 +178,14 @@ Public Class MySceneHostVM
|
||||
|
||||
#Region "ProjectManager"
|
||||
|
||||
Public Overrides Sub NewProject()
|
||||
Public Overrides Function NewProject() As Boolean
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
Dim bOk As Boolean = MainController.NewProject()
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub OpenProject(sFilePath As String)
|
||||
Public Overrides Function OpenProject(sFilePath As String) As Boolean
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
Dim bOk As Boolean = False
|
||||
If String.IsNullOrEmpty(sFilePath) Then
|
||||
@@ -201,29 +202,32 @@ Public Class MySceneHostVM
|
||||
bOk = MainController.OpenProject(sFilePath, False)
|
||||
End If
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub SaveProject()
|
||||
MyBase.SaveProject()
|
||||
Public Overrides Function SaveProject() As Boolean
|
||||
Dim bOk As Boolean = MyBase.SaveProject()
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub SaveAsProject()
|
||||
MyBase.SaveAsProject()
|
||||
Public Overrides Function SaveAsProject() As Boolean
|
||||
Dim bOk As Boolean = MyBase.SaveAsProject()
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub ImportProject()
|
||||
Public Overrides Function ImportProject() As Boolean
|
||||
Dim sDir As String = String.Empty
|
||||
GetMainPrivateProfileString(S_MRUIMPORT, K_FILE & "1", "", sDir)
|
||||
If Not String.IsNullOrWhiteSpace(sDir) Then
|
||||
sDir = Path.GetDirectoryName(sDir)
|
||||
End If
|
||||
sDir.TrimEnd("\"c)
|
||||
MainController.ImportProject(sDir)
|
||||
End Sub
|
||||
Return MainController.ImportProject(sDir)
|
||||
End Function
|
||||
|
||||
#End Region ' ProjectManager
|
||||
|
||||
|
||||
@@ -147,12 +147,27 @@ Public Class LogEvent
|
||||
Select Case m_EventType
|
||||
Case MachLogTypes.PART_STATUS
|
||||
m_ProdId = sValues(0)
|
||||
m_MachGroupId = DbControllers.m_MachGroupController.FindByMachGroupId(m_ProdId, sValues(1)).Name
|
||||
m_PartId = DbControllers.m_PartController.FindByPartId(m_ProdId, sValues(2)).PDN
|
||||
Dim MachGroup As DataLayer.DatabaseModels.MachGroupModel = DbControllers.m_MachGroupController.FindByMachGroupId(m_ProdId, sValues(1))
|
||||
If Not IsNothing(MachGroup) Then
|
||||
m_MachGroupId = MachGroup.Name
|
||||
Else
|
||||
m_MachGroupId = -1
|
||||
End If
|
||||
Dim Part As DataLayer.DatabaseModels.PartModel = DbControllers.m_PartController.FindByPartId(m_ProdId, sValues(2))
|
||||
If Not IsNothing(Part) Then
|
||||
m_PartId = Part.PDN
|
||||
Else
|
||||
m_PartId = -1
|
||||
End If
|
||||
m_Status = sValues(3)
|
||||
Case MachLogTypes.MACHGROUP_STATUS
|
||||
m_ProdId = sValues(0)
|
||||
m_MachGroupId = DbControllers.m_MachGroupController.FindByMachGroupId(m_ProdId, sValues(1)).Name
|
||||
Dim MachGroup As DataLayer.DatabaseModels.MachGroupModel = DbControllers.m_MachGroupController.FindByMachGroupId(m_ProdId, sValues(1))
|
||||
If Not IsNothing(MachGroup) Then
|
||||
m_MachGroupId = MachGroup.Name
|
||||
Else
|
||||
m_MachGroupId = -1
|
||||
End If
|
||||
m_Status = sValues(2)
|
||||
Case MachLogTypes.MACHINE_COMMAND
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ Public Class AddPartWndVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dTempL As Double
|
||||
If StringToLen(value, dTempL) AndAlso dTempL > 0 Then
|
||||
If StringToLenAdv(value, dTempL, True) AndAlso dTempL > 0 Then
|
||||
m_dL = dTempL
|
||||
Else
|
||||
NotifyPropertyChanged("sL")
|
||||
@@ -60,7 +60,7 @@ Public Class AddPartWndVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dTempW As Double
|
||||
If StringToLen(value, dTempW) AndAlso dTempW > 0 Then
|
||||
If StringToLenAdv(value, dTempW, True) AndAlso dTempW > 0 Then
|
||||
EgtDraw()
|
||||
m_dW = dTempW
|
||||
Else
|
||||
@@ -81,7 +81,7 @@ Public Class AddPartWndVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dTempH As Double
|
||||
If StringToLen(value, dTempH) AndAlso dTempH > 0 Then
|
||||
If StringToLenAdv(value, dTempH, True) AndAlso dTempH > 0 Then
|
||||
EgtDraw()
|
||||
m_dH = dTempH
|
||||
Else
|
||||
|
||||
@@ -106,7 +106,12 @@ Public Class AddRawPartWndVM
|
||||
If IsNothing(LastMaterial) Then
|
||||
SelDimension = m_DimensionsList(0)
|
||||
Else
|
||||
SelDimension = m_DimensionsList.FirstOrDefault(Function(x) x.SectXMat = LastMaterial.SectXMat AndAlso x.dL = LastMaterial.dL AndAlso x.dW = LastMaterial.dW AndAlso x.nQuantity = LastMaterial.nQuantity)
|
||||
Dim TempDimension As SParam = m_DimensionsList.FirstOrDefault(Function(x) x.SectXMat = LastMaterial.SectXMat AndAlso x.dL = LastMaterial.dL AndAlso x.dW = LastMaterial.dW AndAlso x.nQuantity = LastMaterial.nQuantity)
|
||||
If Not IsNothing(TempDimension) Then
|
||||
SelDimension = TempDimension
|
||||
Else
|
||||
SelDimension = m_DimensionsList(0)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
' riduco lista parametri a solo quelli che utilizzati
|
||||
@@ -227,14 +232,14 @@ Public Class Variable
|
||||
m_sValue = value
|
||||
Case VariableType.LENGTH
|
||||
Dim dTempValue As Double
|
||||
If StringToLen(value, dTempValue) Then
|
||||
If StringToLenAdv(value, dTempValue, True) Then
|
||||
m_dValue = dTempValue
|
||||
Else
|
||||
NotifyPropertyChanged("sValue")
|
||||
End If
|
||||
Case Else ' VariableType.DOUBLE_
|
||||
Dim dTempValue As Double
|
||||
If StringToDouble(value, dTempValue) Then
|
||||
If StringToDoubleAdv(value, dTempValue, True) Then
|
||||
m_dValue = dTempValue
|
||||
Else
|
||||
NotifyPropertyChanged("sValue")
|
||||
|
||||
@@ -25,7 +25,7 @@ Public Class BTLFeatureVM
|
||||
If value <> -1 Then
|
||||
' verifico se solido attivo
|
||||
Dim bShowSolid As Boolean = Map.refShowBeamPanelVM.ShowSolid_IsChecked
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, False, False)
|
||||
' aggiorno la feature con nuovo valore
|
||||
Dim vPar() As Double = Nothing
|
||||
Dim sPar As String = String.Empty
|
||||
@@ -41,8 +41,8 @@ Public Class BTLFeatureVM
|
||||
ResetCalcFeature()
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(nSelGRP))
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
EgtDraw()
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@@ -65,7 +65,7 @@ Public Class BTLFeatureVM
|
||||
If value <> -1 Then
|
||||
' verifico se solido attivo
|
||||
Dim bShowSolid As Boolean = Map.refShowBeamPanelVM.ShowSolid_IsChecked
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, False, False)
|
||||
' se freecontour
|
||||
If Me.m_BTLFeatureM.IsFreeContour() Then
|
||||
' cambio faccia alla geometria
|
||||
@@ -108,8 +108,8 @@ Public Class BTLFeatureVM
|
||||
ResetCalcFeature()
|
||||
End If
|
||||
NotifyPropertyChanged("nSelSIDE")
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
EgtDraw()
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@@ -135,7 +135,7 @@ Public Class BTLFeatureVM
|
||||
If value <> m_BTLFeatureM.bDO Then
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW Then
|
||||
' verifico se solido attivo
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, False, False)
|
||||
End If
|
||||
If EgtBeamEnableProcess(nFeatureId, value, Not m_bDO_MultipleUpdate) Then
|
||||
m_BTLFeatureM.bDO = value
|
||||
@@ -154,7 +154,7 @@ Public Class BTLFeatureVM
|
||||
End If
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW Then
|
||||
' eventualmente ripristino solido
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
End If
|
||||
If Not m_bDO_MultipleUpdate Then EgtDraw()
|
||||
' aggiorno stato abilitazione del bottone modifica free contour
|
||||
|
||||
@@ -121,9 +121,9 @@ Public Class BTLParamVM
|
||||
' trasformo valori
|
||||
Select Case m_BTLParamM.nType
|
||||
Case BTLParamType.DOUBLE_
|
||||
StringToDouble(value, dNewValue)
|
||||
StringToDoubleAdv(value, dNewValue, True)
|
||||
Case BTLParamType.LENGTH
|
||||
StringToLen(value, dNewValue)
|
||||
StringToLenAdv(value, dNewValue, True)
|
||||
Case Else
|
||||
' per string non faccio nulla
|
||||
End Select
|
||||
@@ -168,9 +168,9 @@ Public Class BTLParamVM
|
||||
' trasformo valori
|
||||
Select Case m_BTLParamM.nType
|
||||
Case BTLParamType.DOUBLE_
|
||||
StringToDouble(value, dNewValue)
|
||||
StringToDoubleAdv(value, dNewValue, True)
|
||||
Case BTLParamType.LENGTH
|
||||
StringToLen(value, dNewValue)
|
||||
StringToLenAdv(value, dNewValue, True)
|
||||
Case Else
|
||||
' per string non faccio nulla
|
||||
End Select
|
||||
@@ -277,7 +277,7 @@ Public Class BTLParamVM
|
||||
Friend Sub UpdateParamValue(dNewValue As Double, sNewValue As String, Optional bDraw As Boolean = True)
|
||||
' verifico se solido attivo
|
||||
Dim bShowSolid As Boolean = Map.refShowBeamPanelVM.ShowSolid_IsChecked
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, False, False)
|
||||
' Recupero i parametri attuali della feature
|
||||
Dim vPar() As Double = Nothing
|
||||
Dim sPar As String = String.Empty
|
||||
@@ -335,7 +335,7 @@ Public Class BTLParamVM
|
||||
End If
|
||||
End If
|
||||
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
If bDraw Then EgtDraw()
|
||||
|
||||
End Sub
|
||||
|
||||
@@ -118,7 +118,7 @@ Public Class BTLPartVM
|
||||
|
||||
' verifico se solido attivo
|
||||
Dim bShowSolid As Boolean = Map.refShowBeamPanelVM.ShowSolid_IsChecked
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, False, False)
|
||||
|
||||
If Not EgtBeamSetPartBox(dBtlL, dBtlH, dBtlW, False) Then Return False
|
||||
|
||||
@@ -134,7 +134,7 @@ Public Class BTLPartVM
|
||||
' aggiorno sezioni
|
||||
Map.refProjectVM.BTLStructureVM.UpdateSection(Section, OldSection)
|
||||
' eventualmente ripristino solido
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
EgtDraw()
|
||||
|
||||
Return True
|
||||
@@ -171,7 +171,7 @@ Public Class BTLPartVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dVal As Double
|
||||
If StringToLen(value, dVal) Then
|
||||
If StringToLenAdv(value, dVal, True) Then
|
||||
Dim dBtlL = m_BTLPartM.dBtlL
|
||||
Dim dBtlW = m_BTLPartM.dBtlW
|
||||
Dim dBtlH = m_BTLPartM.dBtlH
|
||||
@@ -229,7 +229,7 @@ Public Class BTLPartVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dVal As Double
|
||||
If StringToLen(value, dVal) Then
|
||||
If StringToLenAdv(value, dVal, True) Then
|
||||
Dim dBtlL = m_BTLPartM.dBtlL
|
||||
Dim dBtlW = m_BTLPartM.dBtlW
|
||||
Dim dBtlH = m_BTLPartM.dBtlH
|
||||
@@ -287,7 +287,7 @@ Public Class BTLPartVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dVal As Double
|
||||
If StringToLen(value, dVal) Then
|
||||
If StringToLenAdv(value, dVal, True) Then
|
||||
Dim dBtlL = m_BTLPartM.dBtlL
|
||||
Dim dBtlW = m_BTLPartM.dBtlW
|
||||
Dim dBtlH = m_BTLPartM.dBtlH
|
||||
@@ -550,7 +550,7 @@ Public Class BTLPartVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dTempPlaningLen As Double
|
||||
If StringToLen(value, dTempPlaningLen) AndAlso EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_PLANINGLENGTH, dTempPlaningLen) Then
|
||||
If StringToLenAdv(value, dTempPlaningLen, True) AndAlso EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_PLANINGLENGTH, dTempPlaningLen) Then
|
||||
m_BTLPartM.dPLANINGLEN = dTempPlaningLen
|
||||
Else
|
||||
NotifyPropertyChanged("dPLANINGLEN")
|
||||
@@ -564,7 +564,7 @@ Public Class BTLPartVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dTempStartOffset As Double
|
||||
If StringToLen(value, dTempStartOffset) AndAlso EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_STARTOFFSET, dTempStartOffset) Then
|
||||
If StringToLenAdv(value, dTempStartOffset, True) AndAlso EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_STARTOFFSET, dTempStartOffset) Then
|
||||
m_BTLPartM.dSTARTOFFSET = dTempStartOffset
|
||||
Else
|
||||
NotifyPropertyChanged("dSTARTOFFSET")
|
||||
@@ -578,7 +578,7 @@ Public Class BTLPartVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dTempEndOffset As Double
|
||||
If StringToLen(value, dTempEndOffset) AndAlso EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_ENDOFFSET, dTempEndOffset) Then
|
||||
If StringToLenAdv(value, dTempEndOffset, True) AndAlso EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_ENDOFFSET, dTempEndOffset) Then
|
||||
m_BTLPartM.dENDOFFSET = dTempEndOffset
|
||||
Else
|
||||
NotifyPropertyChanged("dENDOFFSET")
|
||||
@@ -625,9 +625,9 @@ Public Class BTLPartVM
|
||||
Dim sValArray() As String = value.Split(",")
|
||||
Dim ptOri As New Point3d
|
||||
If sValArray.Count() >= 3 AndAlso
|
||||
StringToLen(sValArray(0), ptOri.x) AndAlso
|
||||
StringToLen(sValArray(1), ptOri.y) AndAlso
|
||||
StringToLen(sValArray(2), ptOri.z) AndAlso
|
||||
StringToLenAdv(sValArray(0), ptOri.x, True) AndAlso
|
||||
StringToLenAdv(sValArray(1), ptOri.y, True) AndAlso
|
||||
StringToLenAdv(sValArray(2), ptOri.z, True) AndAlso
|
||||
m_BTLPartM.refTransf.ChangeOrigin(ptOri) Then
|
||||
EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_TRANSFORMATION & (SelUID + 1), LenToString(m_BTLPartM.refTransf.Orig.x, 3) & "," &
|
||||
LenToString(m_BTLPartM.refTransf.Orig.y, 3) & "," &
|
||||
@@ -661,9 +661,9 @@ Public Class BTLPartVM
|
||||
Dim sValArray() As String = value.Split(",")
|
||||
Dim vtVersX As New Vector3d
|
||||
If sValArray.Count() >= 3 AndAlso
|
||||
StringToDouble(sValArray(0), vtVersX.x) AndAlso
|
||||
StringToDouble(sValArray(1), vtVersX.y) AndAlso
|
||||
StringToDouble(sValArray(2), vtVersX.z) AndAlso
|
||||
StringToDoubleAdv(sValArray(0), vtVersX.x, True) AndAlso
|
||||
StringToDoubleAdv(sValArray(1), vtVersX.y, True) AndAlso
|
||||
StringToDoubleAdv(sValArray(2), vtVersX.z, True) AndAlso
|
||||
m_BTLPartM.refTransf.Setup(ptOri, ptOri + vtVersX, ptOri + vtVersY) Then
|
||||
EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_TRANSFORMATION & (SelUID + 1), LenToString(m_BTLPartM.refTransf.Orig.x, 3) & "," &
|
||||
LenToString(m_BTLPartM.refTransf.Orig.y, 3) & "," &
|
||||
@@ -699,9 +699,9 @@ Public Class BTLPartVM
|
||||
Dim sValArray() As String = value.Split(",")
|
||||
Dim vtVersY As New Vector3d
|
||||
If sValArray.Count() >= 3 AndAlso
|
||||
StringToDouble(sValArray(0), vtVersY.x) AndAlso
|
||||
StringToDouble(sValArray(1), vtVersY.y) AndAlso
|
||||
StringToDouble(sValArray(2), vtVersY.z) AndAlso
|
||||
StringToDoubleAdv(sValArray(0), vtVersY.x, True) AndAlso
|
||||
StringToDoubleAdv(sValArray(1), vtVersY.y, True) AndAlso
|
||||
StringToDoubleAdv(sValArray(2), vtVersY.z, True) AndAlso
|
||||
m_BTLPartM.refTransf.Setup(ptOri, ptOri + vtVersX, ptOri + vtVersY) Then
|
||||
EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_TRANSFORMATION & (SelUID + 1), LenToString(m_BTLPartM.refTransf.Orig.x, 3) & "," &
|
||||
LenToString(m_BTLPartM.refTransf.Orig.y, 3) & "," &
|
||||
@@ -733,10 +733,10 @@ Public Class BTLPartVM
|
||||
Set(value As Integer)
|
||||
Dim sValArray() As String = CamberParams.Split(",")
|
||||
If sValArray.Count() >= 4 AndAlso
|
||||
StringToLen(sValArray(0), m_BTLPartM.m_dCamberLen1) AndAlso
|
||||
StringToLen(sValArray(1), m_BTLPartM.m_dCamberLen2) AndAlso
|
||||
StringToLen(sValArray(2), m_BTLPartM.m_dCamberLen3) AndAlso
|
||||
StringToLen(sValArray(3), m_BTLPartM.m_dCamberCross3) AndAlso
|
||||
StringToLenAdv(sValArray(0), m_BTLPartM.m_dCamberLen1, True) AndAlso
|
||||
StringToLenAdv(sValArray(1), m_BTLPartM.m_dCamberLen2, True) AndAlso
|
||||
StringToLenAdv(sValArray(2), m_BTLPartM.m_dCamberLen3, True) AndAlso
|
||||
StringToLenAdv(sValArray(3), m_BTLPartM.m_dCamberCross3, True) AndAlso
|
||||
EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_CAMBER, "SIDE: " & (value + 1) &
|
||||
" P01: " & sValArray(0) &
|
||||
" P02: " & sValArray(1) &
|
||||
@@ -759,10 +759,10 @@ Public Class BTLPartVM
|
||||
Set(value As String)
|
||||
Dim sValArray() As String = value.Split(",")
|
||||
If sValArray.Count() >= 4 AndAlso
|
||||
StringToLen(sValArray(0), m_BTLPartM.m_dCamberLen1) AndAlso
|
||||
StringToLen(sValArray(1), m_BTLPartM.m_dCamberLen2) AndAlso
|
||||
StringToLen(sValArray(2), m_BTLPartM.m_dCamberLen3) AndAlso
|
||||
StringToLen(sValArray(3), m_BTLPartM.m_dCamberCross3) Then
|
||||
StringToLenAdv(sValArray(0), m_BTLPartM.m_dCamberLen1, True) AndAlso
|
||||
StringToLenAdv(sValArray(1), m_BTLPartM.m_dCamberLen2, True) AndAlso
|
||||
StringToLenAdv(sValArray(2), m_BTLPartM.m_dCamberLen3, True) AndAlso
|
||||
StringToLenAdv(sValArray(3), m_BTLPartM.m_dCamberCross3, True) Then
|
||||
EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_CAMBER, " SIDE: " & (SelCAMBERSIDE + 1) &
|
||||
" P01: " & sValArray(0) &
|
||||
" P02: " & sValArray(1) &
|
||||
@@ -790,10 +790,10 @@ Public Class BTLPartVM
|
||||
|
||||
Dim sValArray() As String = PartOffsetParams.Split(",")
|
||||
If sValArray.Count() >= 4 AndAlso
|
||||
StringToLen(sValArray(0), m_BTLPartM.m_dPartOffsetSide1) AndAlso
|
||||
StringToLen(sValArray(1), m_BTLPartM.m_dPartOffsetSide2) AndAlso
|
||||
StringToLen(sValArray(2), m_BTLPartM.m_dPartOffsetSide3) AndAlso
|
||||
StringToLen(sValArray(3), m_BTLPartM.m_dPartOffsetSide4) AndAlso
|
||||
StringToLenAdv(sValArray(0), m_BTLPartM.m_dPartOffsetSide1, True) AndAlso
|
||||
StringToLenAdv(sValArray(1), m_BTLPartM.m_dPartOffsetSide2, True) AndAlso
|
||||
StringToLenAdv(sValArray(2), m_BTLPartM.m_dPartOffsetSide3, True) AndAlso
|
||||
StringToLenAdv(sValArray(3), m_BTLPartM.m_dPartOffsetSide4, True) AndAlso
|
||||
EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_PARTOFFSET, " P04: " & sValue &
|
||||
" P11: " & sValArray(0) &
|
||||
" P12: " & sValArray(1) &
|
||||
@@ -819,10 +819,10 @@ Public Class BTLPartVM
|
||||
|
||||
Dim sValArray() As String = value.Split(",")
|
||||
If sValArray.Count() >= 4 AndAlso
|
||||
StringToLen(sValArray(0), m_BTLPartM.m_dPartOffsetSide1) AndAlso
|
||||
StringToLen(sValArray(1), m_BTLPartM.m_dPartOffsetSide2) AndAlso
|
||||
StringToLen(sValArray(2), m_BTLPartM.m_dPartOffsetSide3) AndAlso
|
||||
StringToLen(sValArray(3), m_BTLPartM.m_dPartOffsetSide4) Then
|
||||
StringToLenAdv(sValArray(0), m_BTLPartM.m_dPartOffsetSide1, True) AndAlso
|
||||
StringToLenAdv(sValArray(1), m_BTLPartM.m_dPartOffsetSide2, True) AndAlso
|
||||
StringToLenAdv(sValArray(2), m_BTLPartM.m_dPartOffsetSide3, True) AndAlso
|
||||
StringToLenAdv(sValArray(3), m_BTLPartM.m_dPartOffsetSide4, True) Then
|
||||
EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_PARTOFFSET, " P04: " & sValue &
|
||||
" P11: " & sValArray(0) &
|
||||
" P12: " & sValArray(1) &
|
||||
@@ -973,9 +973,9 @@ Public Class BTLPartVM
|
||||
Dim sValArray() As String = value.Split(",")
|
||||
Dim dX, dY, dZ As Double
|
||||
If sValArray.Count() >= 3 AndAlso
|
||||
StringToDouble(sValArray(0), dX) AndAlso
|
||||
StringToDouble(sValArray(1), dY) AndAlso
|
||||
StringToDouble(sValArray(2), dZ) Then
|
||||
StringToDoubleAdv(sValArray(0), dX, True) AndAlso
|
||||
StringToDoubleAdv(sValArray(1), dY, True) AndAlso
|
||||
StringToDoubleAdv(sValArray(2), dZ, True) Then
|
||||
m_BTLPartM.refGrainDir = New Vector3d(dX, dY, dZ)
|
||||
EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_GRAINDIR, sValArray(0) & "," &
|
||||
sValArray(1) & "," &
|
||||
@@ -994,9 +994,9 @@ Public Class BTLPartVM
|
||||
Set(value As Boolean)
|
||||
Dim sValArray() As String = GrainDirection.Split(",")
|
||||
If sValArray.Count() >= 3 AndAlso
|
||||
StringToDouble(sValArray(0), m_BTLPartM.refGrainDir.x) AndAlso
|
||||
StringToDouble(sValArray(1), m_BTLPartM.refGrainDir.y) AndAlso
|
||||
StringToDouble(sValArray(2), m_BTLPartM.refGrainDir.z) AndAlso
|
||||
StringToDoubleAdv(sValArray(0), m_BTLPartM.refGrainDir.x, True) AndAlso
|
||||
StringToDoubleAdv(sValArray(1), m_BTLPartM.refGrainDir.y, True) AndAlso
|
||||
StringToDoubleAdv(sValArray(2), m_BTLPartM.refGrainDir.z, True) AndAlso
|
||||
EgtSetInfo(m_BTLPartM.nPartId, BTL_PRT_GRAINDIR, sValArray(0) & "," &
|
||||
sValArray(1) & "," &
|
||||
sValArray(2) & ";" &
|
||||
|
||||
@@ -243,7 +243,7 @@ Public Class BTLStructureVM
|
||||
If Map.refShowBeamPanelVM.ShowSolid_IsChecked Then
|
||||
' tolgo eventuale indicazione solido rimasta da pezzo precedente
|
||||
Map.refShowBeamPanelVM.SetShowSolid(False)
|
||||
Map.refProjectVM.BTLStructureVM.ShowSolid(False, BtlPart.nPartId)
|
||||
Map.refProjectVM.BTLStructureVM.ShowSolid(BtlPart.nPartId, False, False)
|
||||
End If
|
||||
If m_SelBTLPart Is BtlPart Then
|
||||
EgtBeamShowFacesName( False)
|
||||
@@ -1083,7 +1083,7 @@ Public Class BTLStructureVM
|
||||
If Not IsNothing(SelBTLPart) Then
|
||||
' se pezzo solido, lo riporto normale
|
||||
If Map.refShowBeamPanelVM.ShowSolid_IsChecked Then
|
||||
ShowSolid(False)
|
||||
ShowSolid(GDB_ID.NULL, False, False)
|
||||
Map.refShowBeamPanelVM.SetShowSolid(False)
|
||||
End If
|
||||
' tolgo pezzo selezionato
|
||||
@@ -1132,12 +1132,12 @@ Public Class BTLStructureVM
|
||||
EgtZoom(ZM.ALL, bRedraw)
|
||||
End Sub
|
||||
|
||||
Friend Sub ShowSolid(Optional bRedraw As Boolean = True, Optional nPartId As Integer = GDB_ID.NULL)
|
||||
Friend Sub ShowSolid(nPartId As Integer, bShow As Boolean, Optional bRedraw As Boolean = True)
|
||||
' se non viene passato, recupero il pezzo del primo oggetto selezionato
|
||||
If nPartId = GDB_ID.NULL Then
|
||||
nPartId = If(Not IsNothing(SelBTLPart), SelBTLPart.nPartId, GDB_ID.NULL)
|
||||
If nPartId = GDB_ID.NULL And Not IsNothing(SelBTLPart) Then
|
||||
nPartId = SelBTLPart.nPartId
|
||||
End If
|
||||
If nPartId = GDB_ID.NULL Or Not EgtIsPart(nPartId) Then
|
||||
If Not EgtIsPart(nPartId) Then
|
||||
Dim nLayerId As Integer = EgtGetParent(nPartId)
|
||||
Dim sLayerName As String = ""
|
||||
EgtGetName(nLayerId, sLayerName)
|
||||
@@ -1151,17 +1151,11 @@ Public Class BTLStructureVM
|
||||
' disabilito impostazione modificato
|
||||
Dim DisableMgr As New DisableModifiedMgr
|
||||
|
||||
Dim nSolId As Integer = EgtBeamGetSolid(nPartId)
|
||||
If nSolId = GDB_ID.NULL OrElse Not EgtExistsInfo(nSolId, "VALID") Then
|
||||
EgtBeamCalcSolid(nPartId)
|
||||
EgtBeamShowSolid(nPartId, True)
|
||||
Else
|
||||
Dim nStat As Integer
|
||||
EgtGetStatus(EgtGetParent(nSolId), nStat)
|
||||
EgtBeamShowSolid(nPartId, (nStat = GDB_ST.OFF))
|
||||
End If
|
||||
If bShow Then EgtBeamCalcSolid(nPartId)
|
||||
|
||||
EgtBeamShowSolid(nPartId, bShow)
|
||||
If bRedraw Then EgtDraw()
|
||||
|
||||
' ripristino precedente impostazione modificato
|
||||
DisableMgr.ReEnable()
|
||||
End Sub
|
||||
|
||||
@@ -280,8 +280,8 @@ Public Class CALCPanelVM
|
||||
End Sub
|
||||
|
||||
Private Shared Sub ProcessResults(Bar As Bar)
|
||||
If IsNothing(Bar) Then Return
|
||||
ProcessResults(Bar.sBarPath, Bar.nProgramPage, Bar.nBarId)
|
||||
|
||||
End Sub
|
||||
|
||||
Private Shared Sub ProcessResults(BtlPath As String, nProgramPage As ProjectType, nBarId As Integer)
|
||||
@@ -312,7 +312,7 @@ Public Class CALCPanelVM
|
||||
|
||||
If line.StartsWith("ERR=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "ERR")
|
||||
nErr = (If(nVal IsNot Nothing, nVal.Value, 0))
|
||||
nErr = (If(Not IsNothing(nVal), nVal.Value, 0))
|
||||
sMsg = ""
|
||||
dRot = 0
|
||||
nFall = 0
|
||||
@@ -320,24 +320,24 @@ Public Class CALCPanelVM
|
||||
taskId = 0
|
||||
ElseIf line.StartsWith("ROT=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "ROT")
|
||||
Dim nRot As Integer = (If(nVal IsNot Nothing, nVal.Value, 0))
|
||||
Dim nRot As Integer = (If(Not IsNothing(nVal), nVal.Value, 0))
|
||||
dRot = Math.Abs(((4 - nRot) Mod 4) * 90)
|
||||
dPartRot = Math.Max(dPartRot, dRot)
|
||||
dTotRot = Math.Max(dTotRot, dRot)
|
||||
ElseIf line.StartsWith("CUTID=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "CUTID")
|
||||
cutId = If(nVal IsNot Nothing, nVal.Value, 0)
|
||||
cutId = If(Not IsNothing(nVal), nVal.Value, 0)
|
||||
ElseIf line.StartsWith("TASKID=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "TASKID")
|
||||
taskId = (If(nVal IsNot Nothing, nVal.Value, 0))
|
||||
taskId = (If(Not IsNothing(nVal), nVal.Value, 0))
|
||||
ProcessResultAdd(ProcessResultList, ProcessResult.CreateTaskResult(cutId, taskId, nErr, sMsg, dRot), nProgramPage)
|
||||
ElseIf line.StartsWith("FALL=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "FALL")
|
||||
nFall = (If(nVal IsNot Nothing, nVal.Value, 0))
|
||||
nFall = (If(Not IsNothing(nVal), nVal.Value, 0))
|
||||
ProcessResultList.Add(ProcessResult.CreateFallResult(cutId, nErr, sMsg, nFall))
|
||||
ElseIf line.StartsWith("TIME=") Then
|
||||
Dim nVal As Integer? = GetVal(line, "TIME")
|
||||
nTotTime = (If(nVal IsNot Nothing, nVal.Value, 0))
|
||||
nTotTime = (If(Not IsNothing(nVal), nVal.Value, 0))
|
||||
ProcessResultList.Add(ProcessResult.CreateTimeResult(cutId, nTotTime))
|
||||
'If Bar.nBarType = ProjectType.PROJ AndAlso Not IsNothing(currBTLPart) Then
|
||||
' EgtSetInfo(currBTLPart.nPartId, If(Bar.nBarType = ProjectType.PROJ, ITG_PROJ_TIME, ITG_PROD_TIME), nTotTime, True)
|
||||
|
||||
@@ -35,7 +35,7 @@ Public Class ChangeParameterWndVM
|
||||
ParamIndex += 1
|
||||
End While
|
||||
' aggiungo bDO come parametro
|
||||
m_ParamList.Add(New Parameters(NewBTLParam, True))
|
||||
m_ParamList.Add(New Parameters(BTLParamM.CreateNewBTLParam(), True))
|
||||
' seleziono parametro vuoto per dargli un valore iniziale ed evitare che visualizzi sia text che check
|
||||
m_SelParam = New Parameters(BTLParamM.CreateNewBTLParam())
|
||||
NotifyPropertyChanged(NameOf(SelParam))
|
||||
@@ -142,9 +142,9 @@ Public Class Parameters
|
||||
Set(value As String)
|
||||
Select Case m_BTLParamM.nType
|
||||
Case BTLParamType.DOUBLE_
|
||||
StringToDouble(value, m_dActualValue)
|
||||
StringToDoubleAdv(value, m_dActualValue, True)
|
||||
Case BTLParamType.LENGTH
|
||||
StringToLen(value, m_dActualValue)
|
||||
StringToLenAdv(value, m_dActualValue, True)
|
||||
Case Else ' BTLParamType.STRING_
|
||||
m_sActualValue = value
|
||||
End Select
|
||||
@@ -172,9 +172,9 @@ Public Class Parameters
|
||||
Set(value As String)
|
||||
Select Case m_BTLParamM.nType
|
||||
Case BTLParamType.DOUBLE_
|
||||
StringToDouble(value, m_dNewValue)
|
||||
StringToDoubleAdv(value, m_dNewValue, True)
|
||||
Case BTLParamType.LENGTH
|
||||
StringToLen(value, m_dNewValue)
|
||||
StringToLenAdv(value, m_dNewValue, True)
|
||||
Case Else ' BTLParamType.STRING_
|
||||
m_sNewValue = value
|
||||
End Select
|
||||
|
||||
@@ -5,225 +5,232 @@
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer">
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="10*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="6*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TabControl Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2">
|
||||
<TabItem Header="General">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Grid.Row="0" Grid.Column="0" Margin="5,5,5,0">
|
||||
<GroupBox Header="{Binding CurrentLanguage_Msg}"
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="10*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="6*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TabControl Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2"
|
||||
SelectedIndex="{Binding SelConfigSubPage}">
|
||||
<TabItem Header="General">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Grid.Row="0" Grid.Column="0" Margin="5,5,5,0">
|
||||
<GroupBox Header="{Binding CurrentLanguage_Msg}"
|
||||
Margin="0,0,0,5">
|
||||
<UniformGrid Rows="2" Margin="3,3,3,3">
|
||||
<ComboBox ItemsSource="{Binding LanguageList, Mode=OneWay}" Height="25"
|
||||
<UniformGrid Rows="2" Margin="3,3,3,3">
|
||||
<ComboBox ItemsSource="{Binding LanguageList, Mode=OneWay}" Height="25"
|
||||
DisplayMemberPath="Name" SelectedItem="{Binding SelectedLanguage}"
|
||||
Margin="0,0,0,5"/>
|
||||
<TextBlock Text="{Binding LanguageAdvert_Msg}" TextWrapping="Wrap"
|
||||
<TextBlock Text="{Binding LanguageAdvert_Msg}" TextWrapping="Wrap"
|
||||
TextAlignment="Center"/>
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<UniformGrid Columns="2"
|
||||
</UniformGrid>
|
||||
</GroupBox>
|
||||
<UniformGrid Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding MMUnits_Msg}" VerticalAlignment="Center"/>
|
||||
<ComboBox ItemsSource="{Binding UnitMeasureList, Mode=OneWay}"
|
||||
<TextBlock Text="{Binding MMUnits_Msg}" VerticalAlignment="Center"/>
|
||||
<ComboBox ItemsSource="{Binding UnitMeasureList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelMeasureUnit}" Height="25"
|
||||
Margin="0,5,0,0"/>
|
||||
</UniformGrid>
|
||||
<GroupBox Header="{Binding Nesting_Msg}"
|
||||
</UniformGrid>
|
||||
<GroupBox Header="{Binding Nesting_Msg}"
|
||||
Margin="0,0,0,5">
|
||||
<StackPanel>
|
||||
<UniformGrid Columns="2"
|
||||
<StackPanel>
|
||||
<UniformGrid Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding SectionTime_Msg}"
|
||||
<TextBlock Text="{Binding SectionTime_Msg}"
|
||||
Grid.Row="0" Grid.Column="0"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding SectionTime, UpdateSourceTrigger=Explicit}"
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding SectionTime, UpdateSourceTrigger=Explicit}"
|
||||
Grid.Row="0" Grid.Column="1"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2"
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding PartTime_Msg}"
|
||||
<TextBlock Text="{Binding PartTime_Msg}"
|
||||
Grid.Row="1" Grid.Column="0"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding PartTime, UpdateSourceTrigger=Explicit}"
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding PartTime, UpdateSourceTrigger=Explicit}"
|
||||
Grid.Row="1" Grid.Column="1"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem Header="Parametri Q">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<EgtBEAMWALL:QParamListV DataContext="{Binding}"
|
||||
</GroupBox>
|
||||
<UniformGrid Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding PrintLabel_Msg}" VerticalAlignment="Center"/>
|
||||
<CheckBox IsChecked="{Binding bPrintLabel_IsChecked}"
|
||||
Margin="0,5,0,0"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem Header="Parametri Q">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<EgtBEAMWALL:QParamListV DataContext="{Binding}"
|
||||
ItemsSource="{Binding QBTLParamVMList}"
|
||||
SelectedItem="{Binding SelQParam}"
|
||||
Grid.Column="0"
|
||||
Margin="5">
|
||||
<DataGrid.GroupStyle>
|
||||
<GroupStyle>
|
||||
<GroupStyle.Panel>
|
||||
<ItemsPanelTemplate>
|
||||
<DataGridRowsPresenter/>
|
||||
</ItemsPanelTemplate>
|
||||
</GroupStyle.Panel>
|
||||
<GroupStyle.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Path=Name}"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</GroupStyle.HeaderTemplate>
|
||||
<GroupStyle.ContainerStyle>
|
||||
<Style TargetType="{x:Type GroupItem}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GroupItem}">
|
||||
<Expander IsExpanded="True">
|
||||
<Expander.Background>
|
||||
<SolidColorBrush Color="#FFBABABA"></SolidColorBrush>
|
||||
</Expander.Background>
|
||||
<Expander.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Path=Name}" />
|
||||
</StackPanel>
|
||||
</Expander.Header>
|
||||
<ItemsPresenter />
|
||||
</Expander>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</GroupStyle.ContainerStyle>
|
||||
</GroupStyle>
|
||||
<GroupStyle>
|
||||
<GroupStyle.ContainerStyle>
|
||||
<Style TargetType="{x:Type GroupItem}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GroupItem}">
|
||||
<Expander IsExpanded="True">
|
||||
<Expander.Background>
|
||||
<SolidColorBrush Color="LightGray"></SolidColorBrush>
|
||||
</Expander.Background>
|
||||
<Expander.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Path=Name}" />
|
||||
</StackPanel>
|
||||
</Expander.Header>
|
||||
<ItemsPresenter />
|
||||
</Expander>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</GroupStyle.ContainerStyle>
|
||||
</GroupStyle>
|
||||
</DataGrid.GroupStyle>
|
||||
</EgtBEAMWALL:QParamListV>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem Header="Macchina">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="10*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal">
|
||||
<GroupBox Style="{StaticResource GroupBoxStyle_NoHeader}" Padding="5,10,5,5">
|
||||
<EgtBEAMWALL:MachinePanelV DataContext="{Binding MachinePanelVM}" VerticalAlignment="Center"/>
|
||||
</GroupBox>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal">
|
||||
<ItemsControl ItemsSource="{Binding ConfigMachTableList}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel x:Name="GroupStackPanel" Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<GroupBox Header="{Binding sName}" Width="Auto" VerticalAlignment="Top" Height="Auto">
|
||||
<ItemsControl Name="MachParamsItemsControl" ItemsSource="{Binding MachParamList}" Margin="0,5,0,0">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<WrapPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid Margin="0,0,5,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="{Binding sName}"
|
||||
<DataGrid.GroupStyle>
|
||||
<GroupStyle>
|
||||
<GroupStyle.Panel>
|
||||
<ItemsPanelTemplate>
|
||||
<DataGridRowsPresenter/>
|
||||
</ItemsPanelTemplate>
|
||||
</GroupStyle.Panel>
|
||||
<GroupStyle.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Path=Name}"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</GroupStyle.HeaderTemplate>
|
||||
<GroupStyle.ContainerStyle>
|
||||
<Style TargetType="{x:Type GroupItem}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GroupItem}">
|
||||
<Expander IsExpanded="True">
|
||||
<Expander.Background>
|
||||
<SolidColorBrush Color="#FFBABABA"></SolidColorBrush>
|
||||
</Expander.Background>
|
||||
<Expander.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Path=Name}" />
|
||||
</StackPanel>
|
||||
</Expander.Header>
|
||||
<ItemsPresenter />
|
||||
</Expander>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</GroupStyle.ContainerStyle>
|
||||
</GroupStyle>
|
||||
<GroupStyle>
|
||||
<GroupStyle.ContainerStyle>
|
||||
<Style TargetType="{x:Type GroupItem}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GroupItem}">
|
||||
<Expander IsExpanded="True">
|
||||
<Expander.Background>
|
||||
<SolidColorBrush Color="LightGray"></SolidColorBrush>
|
||||
</Expander.Background>
|
||||
<Expander.Header>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Path=Name}" />
|
||||
</StackPanel>
|
||||
</Expander.Header>
|
||||
<ItemsPresenter />
|
||||
</Expander>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</GroupStyle.ContainerStyle>
|
||||
</GroupStyle>
|
||||
</DataGrid.GroupStyle>
|
||||
</EgtBEAMWALL:QParamListV>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem Header="Macchina">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="10*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal">
|
||||
<GroupBox Style="{StaticResource GroupBoxStyle_NoHeader}" Padding="5,10,5,5">
|
||||
<EgtBEAMWALL:MachinePanelV DataContext="{Binding MachinePanelVM}" VerticalAlignment="Center"/>
|
||||
</GroupBox>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal">
|
||||
<ItemsControl ItemsSource="{Binding ConfigMachTableList}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel x:Name="GroupStackPanel" Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<GroupBox Header="{Binding sName}" Width="Auto" VerticalAlignment="Top" Height="Auto">
|
||||
<ItemsControl Name="MachParamsItemsControl" ItemsSource="{Binding MachParamList}" Margin="0,5,0,0">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<WrapPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid Margin="0,0,5,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="{Binding sName}"
|
||||
TextWrapping="WrapWithOverflow"
|
||||
Width="100"
|
||||
Style="{StaticResource MachParamTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding sValue, UpdateSourceTrigger=Explicit}"
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding sValue, UpdateSourceTrigger=Explicit}"
|
||||
Grid.Column="1"
|
||||
Width="70"/>
|
||||
<TextBlock Text="{Binding sDescription}"
|
||||
<TextBlock Text="{Binding sDescription}"
|
||||
TextWrapping="WrapWithOverflow"
|
||||
Width="200"
|
||||
Style="{StaticResource MachParamTextBlock}"
|
||||
Grid.Column="2"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</GroupBox>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
|
||||
<Button Command="{Binding SaveCommand}"
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</GroupBox>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
|
||||
<Button Command="{Binding SaveCommand}"
|
||||
ToolTip="{Binding SaveToolTip}"
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource OptionPanel_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
|
||||
</Grid>
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
|
||||
</Grid>
|
||||
</DockPanel>
|
||||
|
||||
@@ -7,6 +7,32 @@ Imports EgtBEAMWALL.Core
|
||||
Public Class ConfigurationPageVM
|
||||
Inherits VMBase
|
||||
|
||||
Public Enum ConfigSubPages As Integer
|
||||
GENERAL = 0
|
||||
QPARAMETERS = 1
|
||||
MACHINE = 2
|
||||
End Enum
|
||||
|
||||
Private m_QParametersModified As Boolean = False
|
||||
Friend ReadOnly Property QParametersModified As Boolean
|
||||
Get
|
||||
Return m_QParametersModified
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub ResetQParametersModified()
|
||||
m_QParametersModified = False
|
||||
End Sub
|
||||
|
||||
Private m_SelConfigSubPage As ConfigSubPages = ConfigSubPages.GENERAL
|
||||
Public Property SelConfigSubPage As Integer
|
||||
Get
|
||||
Return m_SelConfigSubPage
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_SelConfigSubPage = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' flag modifica parametri Macchina
|
||||
Friend bModifyMachParam As Boolean
|
||||
|
||||
@@ -105,7 +131,7 @@ Public Class ConfigurationPageVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dVal As Double = 0
|
||||
If StringToDouble(value, dVal) AndAlso dVal > 0 Then
|
||||
If StringToDoubleAdv(value, dVal, True) AndAlso dVal > 0 Then
|
||||
m_SectionTime = dVal
|
||||
End If
|
||||
End Set
|
||||
@@ -118,12 +144,22 @@ Public Class ConfigurationPageVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dVal As Double = 0
|
||||
If StringToDouble(value, dVal) AndAlso dVal > 0 Then
|
||||
If StringToDoubleAdv(value, dVal, True) AndAlso dVal > 0 Then
|
||||
m_PartTime = dVal
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_bPrintLabel_IsChecked As Boolean
|
||||
Public Property bPrintLabel_IsChecked As String
|
||||
Get
|
||||
Return m_bPrintLabel_IsChecked
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_bPrintLabel_IsChecked = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property L_Msg As String
|
||||
@@ -251,6 +287,12 @@ Public Class ConfigurationPageVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property PrintLabel_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61894)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Messages
|
||||
|
||||
#Region "Constructor"
|
||||
@@ -285,6 +327,7 @@ Public Class ConfigurationPageVM
|
||||
' leggo SectionTime e PartTime
|
||||
GetMainPrivateProfileString(S_NEST, K_SECTIONTIME, "", SectionTime)
|
||||
GetMainPrivateProfileString(S_NEST, K_PARTTIME, "", PartTime)
|
||||
m_bPrintLabel_IsChecked = ( GetMainPrivateProfileInt(S_PRINTER, K_ENABLE, 0) <> 0)
|
||||
' assegno le liste dei parametri della macchina corrente alla ConfigMachTableList alla pagina di Configurazione
|
||||
ConfigMachTableList = CurrentMachine.MachTableList
|
||||
' carico i parametri Q dei Process letti dall'ini
|
||||
@@ -325,13 +368,7 @@ Public Class ConfigurationPageVM
|
||||
''' Execute the Save. This method is invoked by the SaveCommand.
|
||||
''' </summary>
|
||||
Public Sub Save()
|
||||
WriteMachParams()
|
||||
WriteMachParamsLua()
|
||||
WriteProcessParams(PRCList.ToList())
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_MESSAGES, m_SelectedLanguage.Name)
|
||||
WriteMainPrivateProfileString(S_SCENE, K_MMUNITS, SelMeasureUnit.ToString())
|
||||
WriteMainPrivateProfileString(S_NEST, K_SECTIONTIME, DoubleToString(m_SectionTime, 5))
|
||||
WriteMainPrivateProfileString(S_NEST, K_PARTTIME, DoubleToString(m_PartTime, 5))
|
||||
VerifyConfigPageModification()
|
||||
End Sub
|
||||
|
||||
#End Region ' SaveCommand
|
||||
@@ -415,58 +452,69 @@ Public Class ConfigurationPageVM
|
||||
|
||||
' funzione che verifica la modifica dei valori in Configurazione e ne chiede il salvataggio
|
||||
Friend Sub VerifyConfigPageModification()
|
||||
' Prima ciclo sui parametri Macchina
|
||||
Dim bExitFor = False
|
||||
For Each MachTableItem In ConfigMachTableList
|
||||
For Each MachParamItem In MachTableItem.MachParamList
|
||||
If MachParamItem.IsModified Then
|
||||
If MessageBox.Show(EgtMsg(61860), "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
||||
' scrivo i parametri Macchina
|
||||
WriteMachParams()
|
||||
WriteMachParamsLua()
|
||||
Else
|
||||
' se da non salvare li resetto ed esco dai For
|
||||
CreateMachParams()
|
||||
bExitFor = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
If bExitFor Then Exit For
|
||||
Next
|
||||
' Ora ciclo sui parametri Q
|
||||
Dim bAskToSaveDefaultValues As Boolean = False
|
||||
bExitFor = False
|
||||
For Each PRCItem In PRCList
|
||||
For Each QParam In PRCItem.QBTLParamVMList
|
||||
If QParam.bIsModified Then
|
||||
bAskToSaveDefaultValues = True
|
||||
' esco dai For
|
||||
bExitFor = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
If bExitFor Then Exit For
|
||||
Next
|
||||
' se nel ciclo è stato trovato almeno un valore modificato chiedo il salvataggio
|
||||
If bAskToSaveDefaultValues Then
|
||||
If MessageBox.Show(EgtMsg(61861), "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
||||
' se si è scelto di salvare i valori li scrivo
|
||||
WriteProcessParams(PRCList.ToList())
|
||||
End If
|
||||
' in ogni caso ricarico i valori (in modo da resettare i flag di modifica)
|
||||
GetQParamsList()
|
||||
' carico la lista di tutti i parametri Q ciclando su ogni Process di PRCList
|
||||
If Not IsNothing(QBTLParamVMList) Then
|
||||
QBTLParamVMList.Clear()
|
||||
End If
|
||||
For Each PRCItem In PRCList
|
||||
For Each QBTLParam In PRCItem.QBTLParamVMList
|
||||
QBTLParamVMList.Add(QBTLParam)
|
||||
Select Case m_SelConfigSubPage
|
||||
Case ConfigSubPages.GENERAL
|
||||
' aggiorno tutti i valori senza verificare modifiche
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_MESSAGES, m_SelectedLanguage.Name)
|
||||
WriteMainPrivateProfileString(S_SCENE, K_MMUNITS, SelMeasureUnit.ToString())
|
||||
WriteMainPrivateProfileString(S_NEST, K_SECTIONTIME, DoubleToString(m_SectionTime, 5))
|
||||
WriteMainPrivateProfileString(S_NEST, K_PARTTIME, DoubleToString(m_PartTime, 5))
|
||||
WriteMainPrivateProfileString(S_PRINTER, K_ENABLE, If(m_bPrintLabel_IsChecked, 1, 0))
|
||||
Case ConfigSubPages.QPARAMETERS
|
||||
' ciclo sui parametri Q
|
||||
Dim bAskToSaveDefaultValues As Boolean = False
|
||||
For Each PRCItem In PRCList
|
||||
For Each QParam In PRCItem.QBTLParamVMList
|
||||
If QParam.bIsModified Then
|
||||
bAskToSaveDefaultValues = True
|
||||
' esco dai For
|
||||
bExitFor = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
If bExitFor Then Exit For
|
||||
Next
|
||||
Next
|
||||
NotifyPropertyChanged(NameOf(QBTLParamVMList))
|
||||
End If
|
||||
' se nel ciclo è stato trovato almeno un valore modificato chiedo il salvataggio
|
||||
If bAskToSaveDefaultValues Then
|
||||
If MessageBox.Show(EgtMsg(61861), "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
||||
' se si è scelto di salvare i valori li scrivo
|
||||
WriteProcessParams(PRCList.ToList())
|
||||
m_QParametersModified = True
|
||||
End If
|
||||
' in ogni caso ricarico i valori (in modo da resettare i flag di modifica)
|
||||
GetQParamsList()
|
||||
' carico la lista di tutti i parametri Q ciclando su ogni Process di PRCList
|
||||
If Not IsNothing(QBTLParamVMList) Then
|
||||
QBTLParamVMList.Clear()
|
||||
End If
|
||||
For Each PRCItem In PRCList
|
||||
For Each QBTLParam In PRCItem.QBTLParamVMList
|
||||
QBTLParamVMList.Add(QBTLParam)
|
||||
Next
|
||||
Next
|
||||
NotifyPropertyChanged(NameOf(QBTLParamVMList))
|
||||
End If
|
||||
Case ConfigSubPages.MACHINE
|
||||
' ciclo sui parametri Macchina
|
||||
For Each MachTableItem In ConfigMachTableList
|
||||
For Each MachParamItem In MachTableItem.MachParamList
|
||||
If MachParamItem.IsModified Then
|
||||
If MessageBox.Show(EgtMsg(61860), "", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
||||
' scrivo i parametri Macchina
|
||||
WriteMachParams()
|
||||
WriteMachParamsLua()
|
||||
Else
|
||||
' se da non salvare li resetto ed esco dai For
|
||||
CreateMachParams()
|
||||
bExitFor = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
If bExitFor Then Exit For
|
||||
Next
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
' funzione che verifica l'inserimento della password quando si edita un parametro Macchina
|
||||
@@ -638,11 +686,11 @@ Public Class MachParam
|
||||
' trasformo valori
|
||||
Select Case nType
|
||||
Case MachParamType.DOUBLE_
|
||||
StringToDouble(value, dNewValue)
|
||||
StringToDouble(sOrigValue, dOrigValue)
|
||||
StringToDoubleAdv(value, dNewValue, True)
|
||||
StringToDoubleAdv(sOrigValue, dOrigValue, True)
|
||||
Case MachParamType.LENGTH
|
||||
StringToLen(value, dNewValue)
|
||||
StringToLen(sOrigValue, dOrigValue)
|
||||
StringToLenAdv(value, dNewValue, True)
|
||||
StringToLenAdv(sOrigValue, dOrigValue, True)
|
||||
Case Else
|
||||
' per string non faccio nulla
|
||||
End Select
|
||||
|
||||
@@ -955,6 +955,9 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\TopPanel\RemoveAllRawPart.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\ProjectManager\AddProj.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtBEAMWALL\EgtBEAMWALL.ViewerOptimizerR32.exe
|
||||
|
||||
@@ -271,12 +271,12 @@ Public Class FreeContourManagerVM
|
||||
Private m_cmdDelete As ICommand
|
||||
Private m_cmdModifyCurve As ICommand
|
||||
Private m_cmdAddPointCurve As ICommand
|
||||
Private m_cmdRemovePointCurve As ICommand
|
||||
Private m_cmdArcflip As ICommand
|
||||
Private m_cmdMove As ICommand
|
||||
Private m_cmdRotate As ICommand
|
||||
Private m_cmdMirror As ICommand
|
||||
Private m_cmdScale As ICommand
|
||||
Private m_cmdRemovePointCurve As ICommand
|
||||
Private m_cmdChangeStart As ICommand
|
||||
Private m_cmdInvertCurve As ICommand
|
||||
Private m_cmdTextAngle As ICommand
|
||||
@@ -324,7 +324,7 @@ Public Class FreeContourManagerVM
|
||||
Map.refProjectVM.NotifyPropertyChanged(NameOf(Map.refProjectVM.PartManager_Visibility))
|
||||
' verifico se solido attivo
|
||||
m_bPrevShowSolid = Map.refShowBeamPanelVM.ShowSolid_IsChecked
|
||||
If m_bPrevShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If m_bPrevShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, False, False)
|
||||
' attivo visualizzazione direzione curve
|
||||
EgtSetShowCurveDirection(True)
|
||||
' elimino eventuale vecchio layer testi
|
||||
@@ -367,7 +367,7 @@ Public Class FreeContourManagerVM
|
||||
m_SelType = FreeContourTypes.TWO
|
||||
End If
|
||||
End If
|
||||
' se nuova senza percorsi
|
||||
' se nuova senza percorsi
|
||||
Else
|
||||
' imposto modalita' un percorso
|
||||
m_SelType = FreeContourTypes.ONE
|
||||
@@ -424,10 +424,12 @@ Public Class FreeContourManagerVM
|
||||
NotifyPropertyChanged(NameOf(Line2P_IsEnabled))
|
||||
NotifyPropertyChanged(NameOf(TextAngle_Visibility))
|
||||
NotifyPropertyChanged(NameOf(PathList_Visibility))
|
||||
' posiziono la griglia sulla faccia attiva
|
||||
' posiziono la griglia sul riferimento del contorno libero
|
||||
Dim frFace As New Frame3d
|
||||
EgtBeamGetSideData(SelFeature.nSelSIDE, frFace)
|
||||
EgtSetGridFrame(frFace)
|
||||
Dim frFrame As Frame3d = SelFeature.BTLFeatureM.frFRAME
|
||||
frFrame.ToGlob( frFace)
|
||||
EgtSetGridFrame(frFrame)
|
||||
EgtSetGridShow(True, True)
|
||||
Map.refSceneHostVM.MainScene.CPlaneView()
|
||||
' rimetto la selezione scena a null
|
||||
@@ -442,11 +444,8 @@ Public Class FreeContourManagerVM
|
||||
End Sub
|
||||
|
||||
Friend Sub Close(bSave As Boolean)
|
||||
If m_bIsActive Then
|
||||
m_bIsActive = False
|
||||
Else
|
||||
Return
|
||||
End If
|
||||
If not m_bIsActive Then Return
|
||||
m_bIsActive = False
|
||||
' gestisco modifiche ai percorsi
|
||||
If bSave Then
|
||||
Select Case m_SelType
|
||||
@@ -459,7 +458,8 @@ Public Class FreeContourManagerVM
|
||||
Dim sSideAngInfo As String = ""
|
||||
For Index = 0 To SideAngValues.Count - 1
|
||||
If Index > 0 Then sSideAngInfo &= ","
|
||||
sSideAngInfo &= SideAngValues(Index).dValue
|
||||
Dim sAng As String = DoubleToString(SideAngValues(Index).dValue, 2)
|
||||
sSideAngInfo &= sAng
|
||||
Next
|
||||
EgtSetInfo(m_nNewPathId, "SideAngs", sSideAngInfo)
|
||||
EgtSetInfo(nSelFeatureId, "AUXID", (m_nNewPathId - nSelFeatureId).ToString("+#;-#;0"))
|
||||
@@ -474,7 +474,7 @@ Public Class FreeContourManagerVM
|
||||
Dim BTLFeatureM As BTLFeatureM = SelFeature.BTLFeatureM
|
||||
BTLFeatureM.CalcParamArray(vPar, sPar, vParQ)
|
||||
Dim bOK As Boolean = BTLFeatureM.UpdateParams(BTLFeatureM.nSelGRP, BTLFeatureM.nPRC, BTLFeatureM.nSelSIDE, BTLFeatureM.sDES, BTLFeatureM.nPRID,
|
||||
BTLFeatureM.frFRAME, vPar, sPar, vParQ)
|
||||
BTLFeatureM.frFRAME, vPar, sPar, vParQ)
|
||||
If bOK Then
|
||||
SelFeature.SelGeomFeature()
|
||||
' rendo non calcolata questa feature
|
||||
@@ -519,7 +519,8 @@ Public Class FreeContourManagerVM
|
||||
' elimino eventuale layer dei testi angoli
|
||||
EgtErase(nSideAngTextLayer)
|
||||
nSideAngTextLayer = GDB_ID.NULL
|
||||
' nascondo la griglia
|
||||
' riporto griglia globale e la nascondo
|
||||
EgtSetGridFrame( New Frame3d())
|
||||
EgtSetGridShow(False, False)
|
||||
' se il progetto non era modificato ed esco senza salvare, resetto lo stato di modificato
|
||||
If Not m_bAlreadyModified And Not bSave Then
|
||||
@@ -539,7 +540,7 @@ Public Class FreeContourManagerVM
|
||||
Map.refProjectVM.NotifyPropertyChanged(NameOf(Map.refProjectVM.PartManager_Visibility))
|
||||
' disattivo modifiche su scena
|
||||
Map.refSceneHostVM.MainScene.SetStatusNull()
|
||||
If m_bPrevShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If m_bPrevShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
' disattivo visualizzazione direzione curve
|
||||
EgtSetShowCurveDirection(False)
|
||||
' reimposto filtro selezione
|
||||
@@ -649,9 +650,10 @@ Public Class FreeContourManagerVM
|
||||
EgtAtParamPoint(m_nNewPathId, Index + 0.5, ptText)
|
||||
Dim dSideAng As Double = 0
|
||||
If sSideAngSplit.Count - 1 >= Index Then
|
||||
StringToDouble(sSideAngSplit(Index), dSideAng)
|
||||
StringToDoubleAdv(sSideAngSplit(Index), dSideAng, True)
|
||||
End If
|
||||
Dim TextId As Integer = EgtCreateText(nSideAngTextLayer, ptText, dSideAng & "°", 20)
|
||||
Dim sSideAng As String = DoubleToString( dSideAng, 2) & "°"
|
||||
Dim TextId As Integer = EgtCreateText(nSideAngTextLayer, ptText, sSideAng, 20)
|
||||
EgtSetInfo(TextId, "SideAng", dSideAng)
|
||||
SideAngValues.Add(New SideAngle(TextId, Index, dSideAng))
|
||||
Next
|
||||
@@ -744,7 +746,7 @@ Public Class FreeContourManagerVM
|
||||
End If
|
||||
ElseIf bChangedStart Then
|
||||
' non faccio nulla perche' gestito sopra
|
||||
' se apro percorso
|
||||
' se apro percorso
|
||||
ElseIf Not bNewIsClosed AndAlso bOldIsClosed AndAlso Index = NewAngleList.Count Then
|
||||
' cancello il testo del lato rimosso
|
||||
nMovedIndex = OldAngleList.FindIndex(Function(x) AreSamePointApprox(x, NewAngleList(CurrIndex - 1)))
|
||||
@@ -752,7 +754,7 @@ Public Class FreeContourManagerVM
|
||||
Dim NewIndex As Integer = (nPointsQty + nOffset) Mod nPointsQty
|
||||
EgtErase(SideAngValues(nOffset).nId)
|
||||
NewSideAngValues.RemoveAt(NewSideAngValues.Count - 1)
|
||||
' se chiudo percorso
|
||||
' se chiudo percorso
|
||||
ElseIf bNewIsClosed AndAlso Not bOldIsClosed AndAlso Index = OldAngleList.Count Then
|
||||
' creo il testo del lato aggiunto
|
||||
Dim ptText As Point3d
|
||||
@@ -761,20 +763,21 @@ Public Class FreeContourManagerVM
|
||||
' aggiungo punto e incremento indice di confronto per riallineare successivo
|
||||
NewSideAngValues.Add(New SideAngle(TextId, NewSideAngValues.Count - 1, 0))
|
||||
'' percorso aperto
|
||||
' punti coincidono: verifico che i punti coincidano e non siano il centro del percorso simmetrico
|
||||
' punti coincidono: verifico che i punti coincidano e non siano il centro del percorso simmetrico
|
||||
ElseIf Not bNewIsClosed AndAlso nNewIndex <= NewAngleList.Count - 1 AndAlso nOldIndex <= OldAngleList.Count - 1 AndAlso AreSamePointApprox(NewAngleList(nNewIndex), OldAngleList(nOldIndex)) AndAlso
|
||||
Not (Index = nPointsQty / 2 AndAlso AreSamePointApprox(NewAngleList(Index - 1), OldAngleList(nPointsQty - Index + 1))) Then
|
||||
If Index < nPointsQty AndAlso nOldIndex <= SideAngValues.Count - 1 Then
|
||||
NewSideAngValues.Add(New SideAngle(SideAngValues(nOldIndex).nId, NewSideAngValues.Count, SideAngValues(nOldIndex).dValue))
|
||||
End If
|
||||
' punti simmetrici: verifico se sono simmetrici o se coincidono ma i precedenti sono simmetrici
|
||||
' punti simmetrici: verifico se sono simmetrici o se coincidono ma i precedenti sono simmetrici
|
||||
ElseIf Not bNewIsClosed AndAlso Not bOldIsClosed AndAlso NewAngleList.Count = OldAngleList.Count AndAlso (AreSamePointApprox(NewAngleList(Index), OldAngleList(nPointsQty - Index)) OrElse
|
||||
(AreSamePointApprox(NewAngleList(nNewIndex), OldAngleList(nOldIndex)) AndAlso AreSamePointApprox(NewAngleList(Index - 1), OldAngleList(nPointsQty - Index + 1)))) Then
|
||||
If Index < nPointsQty Then
|
||||
EgtModifyText(SideAngValues(Index).nId, SideAngValues(nPointsQty - 1 - Index).dValue)
|
||||
Dim sText As String = DoubleToString( SideAngValues(nPointsQty - 1 - Index).dValue, 2)
|
||||
EgtModifyText(SideAngValues(Index).nId, sText)
|
||||
NewSideAngValues.Add(New SideAngle(SideAngValues(nPointsQty - 1 - Index).nId, NewSideAngValues.Count, SideAngValues(nPointsQty - 1 - Index).dValue))
|
||||
End If
|
||||
' punto spostato: verifico che non coincidano ma che i precedenti o i successivi coincidano
|
||||
' punto spostato: verifico che non coincidano ma che i precedenti o i successivi coincidano
|
||||
ElseIf Not bNewIsClosed AndAlso
|
||||
((Index = nPointsQty AndAlso Index <= OldAngleList.Count - 1 AndAlso Not AreSamePointApprox(NewAngleList(Index), OldAngleList(Index)) AndAlso AreSamePointApprox(NewAngleList(Index - 1), OldAngleList(Index - 1))) OrElse
|
||||
(nOldIndex + 1 <= OldAngleList.Count - 1 AndAlso nNewIndex + 1 <= NewAngleList.Count - 1 AndAlso AreSamePointApprox(NewAngleList(nNewIndex + 1), OldAngleList(nOldIndex + 1)))) Then
|
||||
@@ -797,20 +800,20 @@ Public Class FreeContourManagerVM
|
||||
NewSideAngValues.Add(New SideAngle(SideAngValues(Index).nId, NewSideAngValues.Count, SideAngValues(Index).dValue))
|
||||
End If
|
||||
'' percorso chiuso
|
||||
' punti coincidono: verifico che i punti coincidano e non siano inizio, fine o centro del percorso simmetrico
|
||||
' punti coincidono: verifico che i punti coincidano e non siano inizio, fine o centro del percorso simmetrico
|
||||
ElseIf bNewIsClosed AndAlso nNewIndex <= NewAngleList.Count - 1 AndAlso nOldIndex <= OldAngleList.Count - 1 AndAlso AreSamePointApprox(NewAngleList(nNewIndex), OldAngleList(nOldIndex)) AndAlso
|
||||
Not ((Index = 0 AndAlso AreSamePointApprox(NewAngleList(Index + 1), OldAngleList(nPointsQty - 1))) OrElse
|
||||
((Index = nPointsQty / 2 OrElse Index = nPointsQty) AndAlso AreSamePointApprox(NewAngleList(Index - 1), OldAngleList(nPointsQty - Index + 1)))) Then
|
||||
If Index < nPointsQty AndAlso nOldIndex < SideAngValues.Count Then
|
||||
NewSideAngValues.Add(New SideAngle(SideAngValues(nOldIndex).nId, NewSideAngValues.Count, SideAngValues(nOldIndex).dValue))
|
||||
End If
|
||||
' punti simmetrici: verifico se sono simmetrici o se coincidono ma i precedenti sono simmetrici
|
||||
' punti simmetrici: verifico se sono simmetrici o se coincidono ma i precedenti sono simmetrici
|
||||
ElseIf bNewIsClosed AndAlso bOldIsClosed AndAlso (AreSamePointApprox(NewAngleList(Index), OldAngleList(nPointsQty - Index)) OrElse
|
||||
(AreSamePointApprox(NewAngleList(nNewIndex), OldAngleList(nOldIndex)) AndAlso AreSamePointApprox(NewAngleList(Index - 1), OldAngleList(nPointsQty - Index + 1)))) Then
|
||||
If Index < nPointsQty Then
|
||||
NewSideAngValues.Add(New SideAngle(SideAngValues(nPointsQty - 1 - Index).nId, NewSideAngValues.Count, SideAngValues(nPointsQty - 1 - Index).dValue))
|
||||
End If
|
||||
' punto spostato: verifico che non coincidano ma che i precedenti o i successivi coincidano
|
||||
' punto spostato: verifico che non coincidano ma che i precedenti o i successivi coincidano
|
||||
ElseIf (nOldIndex + 1 <= OldAngleList.Count - 1 AndAlso nNewIndex + 1 <= NewAngleList.Count - 1 AndAlso AreSamePointApprox(NewAngleList(nNewIndex + 1), OldAngleList(nOldIndex + 1))) OrElse
|
||||
(bNewIsClosed AndAlso nOldIndex + 1 = OldAngleList.Count AndAlso nNewIndex + 1 = NewAngleList.Count AndAlso AreSamePointApprox(NewAngleList(1), OldAngleList(1))) Then
|
||||
' aggiorno posizione testo precedente
|
||||
@@ -831,7 +834,7 @@ Public Class FreeContourManagerVM
|
||||
EgtMove(SideAngValues(nOldIndex).nId, vtDistance)
|
||||
NewSideAngValues.Add(New SideAngle(SideAngValues(nOldIndex).nId, NewSideAngValues.Count, SideAngValues(nOldIndex).dValue))
|
||||
End If
|
||||
' punto aggiunto: Verifico che il punto successivo coincida con il vecchio corrente o che sia stato aggiunto in fondo
|
||||
' punto aggiunto: Verifico che il punto successivo coincida con il vecchio corrente o che sia stato aggiunto in fondo
|
||||
ElseIf (nNewIndex + 1 <= NewAngleList.Count - 1 AndAlso AreSamePointApprox(NewAngleList(nNewIndex + 1), OldAngleList(nOldIndex))) OrElse
|
||||
(nOldIndex = OldAngleList.Count AndAlso OldAngleList.Count < NewAngleList.Count) Then
|
||||
' se non e' percorso aperto e primo punto
|
||||
@@ -853,7 +856,7 @@ Public Class FreeContourManagerVM
|
||||
' aggiungo punto e incremento indice di confronto per riallineare successivo
|
||||
NewSideAngValues.Insert(TextIndex, New SideAngle(TextId, TextIndex, 0))
|
||||
nOldIndex -= 1
|
||||
' punto tolto: verifico che il punto coincida con il vecchio successivo o che sia stato tolto in fondo
|
||||
' punto tolto: verifico che il punto coincida con il vecchio successivo o che sia stato tolto in fondo
|
||||
ElseIf (nOldIndex + 1 <= OldAngleList.Count - 1 AndAlso AreSamePointApprox(NewAngleList(nNewIndex), OldAngleList(nOldIndex + 1))) OrElse
|
||||
(nNewIndex = NewAngleList.Count AndAlso OldAngleList.Count > NewAngleList.Count) Then
|
||||
' non aggiungo nulla, ma cancello testo
|
||||
@@ -866,7 +869,7 @@ Public Class FreeContourManagerVM
|
||||
EgtAtParamPoint(m_nNewPathId, If(Index = 0, NewAngleList.Count, Index) - 0.5, ptNew)
|
||||
Dim vtDistance As Vector3d = ptNew - ptOld
|
||||
EgtMove(SideAngValues(If(Index = 0, OldAngleList.Count, Index) - 1).nId, vtDistance)
|
||||
' spostato o ruotato intero percorso
|
||||
' spostato o ruotato intero percorso
|
||||
Else
|
||||
' aggiorno posizione testo successivo
|
||||
Dim ptOld As Point3d
|
||||
@@ -895,9 +898,10 @@ Public Class FreeContourManagerVM
|
||||
If bResult Then
|
||||
' scrivo info con nuova inclinazione
|
||||
Dim dAng As Double
|
||||
StringToDouble(Map.refFreeContourInputVM.Text, dAng)
|
||||
StringToDoubleAdv(Map.refFreeContourInputVM.Text, dAng, True)
|
||||
EgtSetInfo(m_nSelTextId, "SideAng", dAng)
|
||||
EgtModifyText(m_nSelTextId, dAng & "°")
|
||||
Dim sAng As String = DoubleToString( dAng, 2) & "°"
|
||||
EgtModifyText(m_nSelTextId, sAng)
|
||||
Dim SideAngValue As SideAngle = SideAngValues.First(Function(x) x.nId = m_nSelTextId)
|
||||
SideAngValue.dValue = dAng
|
||||
End If
|
||||
@@ -944,8 +948,9 @@ Public Class FreeContourManagerVM
|
||||
Map.refFreeContourInputVM.PrepareInputBox(EgtMsg(62007), EgtMsg(62008), "", False, False)
|
||||
Dim dSideAng As Double = 0
|
||||
EgtGetInfo(nId, "SideAng", dSideAng)
|
||||
Map.refFreeContourInputVM.SetInputBoxText(dSideAng)
|
||||
' se sto aprendo percorso chiuso
|
||||
Dim sSideAng As String = DoubleToString( dSideAng, 2)
|
||||
Map.refFreeContourInputVM.SetInputBoxText(sSideAng)
|
||||
' se sto aprendo percorso chiuso
|
||||
ElseIf Map.refFreeContourManagerVM.bIsOpeningCurveCompo Then
|
||||
Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.OPENCOMPO)
|
||||
m_bIsOpeningCurveCompo = False
|
||||
@@ -982,13 +987,21 @@ Public Class FreeContourManagerVM
|
||||
''' Execute the Line2P. This method is invoked by the Line2PCommand.
|
||||
''' </summary>
|
||||
Public Sub Line2P(ByVal param As Object)
|
||||
Dim nNewPathLayerId As Integer = EgtCreateGroup(nSelPartId)
|
||||
' cancello eventuale gruppo precedente
|
||||
Dim nNewPathLayerId As Integer = EgtGetFirstNameInGroup(nSelPartId, "NewPathLayer")
|
||||
If nNewPathLayerId <> GDB_ID.NULL Then
|
||||
EgtEmptyGroup(nNewPathLayerId)
|
||||
Else
|
||||
nNewPathLayerId = EgtCreateGroup(nSelPartId)
|
||||
End If
|
||||
EgtSetName(nNewPathLayerId, "NewPathLayer")
|
||||
EgtSetCurrPartLayer(nSelPartId, nNewPathLayerId)
|
||||
InitCommand(True)
|
||||
InitCommand(False)
|
||||
Map.refSceneHostVM.MainController.SetContinue()
|
||||
If Map.refSceneHostVM.MainController.ExecuteCommand(Controller.CMD.LINE2P) Then
|
||||
m_bIsCreatingPath = True
|
||||
Else
|
||||
EgtErase(nNewPathLayerId)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -213,49 +213,17 @@ Public Class MyInstrumentPanelVM
|
||||
For Each Param In ParamList.Where(Function(x) x.sName = ChangeParameterWndVM.SelParam.sName)
|
||||
Select Case Param.nType
|
||||
Case BTLParamType.DOUBLE_, BTLParamType.LENGTH
|
||||
If Param.dValue = ChangeParameterWndVM.SelParam.dActualValue Then
|
||||
If Math.Abs( Param.dValue - ChangeParameterWndVM.SelParam.dActualValue) < EPS_SMALL Then
|
||||
Param.UpdateParamValue(ChangeParameterWndVM.SelParam.dNewValue, "")
|
||||
'' rinfresco valori parametri feature correntemente selezionata
|
||||
'If Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) AndAlso
|
||||
' Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM) AndAlso
|
||||
' Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM Is Feature Then
|
||||
' Param.NotifyPropertyChanged("sValue")
|
||||
'End If
|
||||
End If
|
||||
Case BTLParamType.STRING_
|
||||
If Param.sValue = ChangeParameterWndVM.SelParam.sActualValue Then
|
||||
Param.UpdateParamValue(0, ChangeParameterWndVM.SelParam.sNewValue)
|
||||
'' rinfresco valori parametri feature correntemente selezionata
|
||||
'If Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) AndAlso
|
||||
' Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM) AndAlso
|
||||
' Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.nPRC = ChangeParameterWndVM.SelPRC.nPRC AndAlso
|
||||
' Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.nSelGRP = ChangeParameterWndVM.SelPRC.nGRP Then
|
||||
' Param.NotifyPropertyChanged("sValue")
|
||||
'End If
|
||||
End If
|
||||
End Select
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
'' faccio passare feature
|
||||
'For Each Feature In Part.FeatureList
|
||||
' If Feature.nPRC = ChangeParameterWndVM.SelPRC.nPRC Then
|
||||
' For Each Param In Feature.PParamList
|
||||
' If Param.sName = ChangeParameterWndVM.SelParam.sName Then
|
||||
' Select Case Param.nType
|
||||
' Case BTLParamType.DOUBLE_, BTLParamType.LENGTH
|
||||
' If Param.dValue = ChangeParameterWndVM.SelParam.dActualValue Then
|
||||
' Param.dValue = ChangeParameterWndVM.SelParam.dValue
|
||||
' End If
|
||||
' Case BTLParamType.STRING_
|
||||
' If Param.sValue = ChangeParameterWndVM.SelParam.sActualValue Then
|
||||
' Param.sValue = ChangeParameterWndVM.SelParam.sValue
|
||||
' End If
|
||||
' End Select
|
||||
' End If
|
||||
' Next
|
||||
' End If
|
||||
'Next
|
||||
Next
|
||||
End If
|
||||
LoadingWndHelper.CloseLoadingWnd(ActiveIds.CHANGEPARAM)
|
||||
|
||||
@@ -366,6 +366,11 @@ Public Class LeftPanelVM
|
||||
End If
|
||||
Else
|
||||
If SParamlist.Count = 0 Then
|
||||
' se pareti aumento dimensioni del kerf
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
|
||||
dRawW += (2 * dKerf)
|
||||
dRawL += (2 * dKerf)
|
||||
End If
|
||||
' apro finestra con solo edit
|
||||
If AddRawPartWnd(AddRawPartWndVM.EditTypes.ONLY_TEXT, SParamlist, dRawW, dRawL, dStartOffset, dOffset, dKerf) Then
|
||||
WarehouseHelper.SetOffset(Map.refProjectVM.BTLStructureVM.nPROJTYPE, dOffset)
|
||||
@@ -547,7 +552,7 @@ Public Class LeftPanelVM
|
||||
dOffset = AddRawPartWndVM.VariableList(3).dValue
|
||||
End Select
|
||||
' verifico se il materiale esiste in magazzino o devo aggiungerlo
|
||||
Dim CurrSParam As SParam
|
||||
Dim CurrSParam As SParam = Nothing
|
||||
Select Case EditType
|
||||
Case AddRawPartWndVM.EditTypes.ONLY_TEXT
|
||||
' lo aggiungo a lista materiali in magazzino
|
||||
@@ -580,25 +585,21 @@ Public Class LeftPanelVM
|
||||
Dim sL As String = String.Empty
|
||||
sL = LenToString(CurrSParam.dL, 3)
|
||||
' ricavo l'indice del SecionXMaterial dalla Beam_List
|
||||
Dim SectXMatIndex As Integer = 1
|
||||
Dim sSxMValue As String = ""
|
||||
While EgtUILib.GetPrivateProfileString(S_BEAM_LIST, SectXMatIndex, String.Empty, sSxMValue, sWarehousePath)
|
||||
If sSxMValue = CurrSParam.sValue Then
|
||||
' se l'ho trovato esco dal while, il SectXMatIndex è l'indice che cercavamo
|
||||
Exit While
|
||||
End If
|
||||
SectXMatIndex += 1
|
||||
End While
|
||||
Dim SectXMatIndex As Integer = GetSectIndexFromSection(MachineType.BEAM, CurrSParam.SectXMat)
|
||||
' ricavo nuovo indice materiale
|
||||
Dim ParamIndex As Integer = 1
|
||||
Dim sParam As String = ""
|
||||
While GetPrivateProfileString(S_BEAM, K_L & ParamIndex, "", sParam, sWarehousePath) > 0
|
||||
ParamIndex += 1
|
||||
End While
|
||||
' lo aggiungo in warehouse
|
||||
WritePrivateProfileString(S_BEAM, K_L & ParamIndex,
|
||||
If SectXMatIndex > 0 Then
|
||||
' lo aggiungo in warehouse
|
||||
WritePrivateProfileString(S_BEAM, K_L & ParamIndex,
|
||||
SectXMatIndex & "," & sL & "," & CurrSParam.nQuantity & "," & If(CurrSParam.bActive, 1, 0),
|
||||
sWarehousePath)
|
||||
Else
|
||||
EgtOutLog("Error in material creation, section not found!")
|
||||
End If
|
||||
Return CurrSParam
|
||||
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
|
||||
' creo sParam
|
||||
@@ -620,7 +621,7 @@ Public Class LeftPanelVM
|
||||
' ricavo nuovo indice materiale
|
||||
Dim ParamIndex As Integer = 1
|
||||
Dim sParam As String = ""
|
||||
While GetPrivateProfileString(S_WALL, K_S & ParamIndex, "", sParam, sWarehousePath) = 0
|
||||
While GetPrivateProfileString(S_WALL, K_S & ParamIndex, "", sParam, sWarehousePath) > 0
|
||||
ParamIndex += 1
|
||||
End While
|
||||
' lo aggiungo in warehouse
|
||||
@@ -629,6 +630,8 @@ Public Class LeftPanelVM
|
||||
sWarehousePath)
|
||||
Return CurrSParam
|
||||
End If
|
||||
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
Private Function VerifyPartCount(SelParts As List(Of BTLPartVM)) As Boolean
|
||||
@@ -843,6 +846,8 @@ Public Class LeftPanelVM
|
||||
dPosX += WarehouseHelper.GetOffset(BeamMachGroup.nType)
|
||||
' lo aggiungo in fondo
|
||||
EgtSetInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + nPartIndex + 1, nPartDuploIdList(nPartIndex) & "," & DoubleToString(dPosX, 3))
|
||||
' incremento posizione della sua lunghezza
|
||||
dPosX += PartsToAdd(nPartIndex).dL
|
||||
' conservo indice d'inserimento
|
||||
nInsertIndex = nIndex
|
||||
nPartIndex += 1
|
||||
@@ -1135,9 +1140,18 @@ Public Class LeftPanelVM
|
||||
''' </summary>
|
||||
Public Sub Invert()
|
||||
If IsNothing(Map.refProjManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM) Then Return
|
||||
' se modalita' assemblato
|
||||
Dim bShowBuilding As Boolean = Map.refShowBeamPanelVM.ShowBuilding_IsChecked
|
||||
If bShowBuilding AndAlso Map.refShowBeamPanelVM.bShowAll Then
|
||||
' devo smontarlo prima di ruotare le travi
|
||||
Map.refProjectVM.BTLStructureVM.ShowBuilding(False, False)
|
||||
End If
|
||||
' inverto i pezzi selezionati
|
||||
For Each Part In Map.refProjectVM.BTLStructureVM.SelBTLParts
|
||||
Part.Invert()
|
||||
Next
|
||||
' se assemblato lo ripristino
|
||||
If bShowBuilding Then Map.refProjectVM.BTLStructureVM.ShowBuilding(True, False)
|
||||
End Sub
|
||||
|
||||
#End Region ' BackRotation
|
||||
|
||||
@@ -46,7 +46,7 @@ Public Class MyMachGroupVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
If StringToLenAdv(value, dValue, True) Then
|
||||
Dim nRawPartId As Integer = EgtGetFirstRawPart()
|
||||
If dValue <> MyMachGroupM.dL Then
|
||||
Select Case nType
|
||||
@@ -104,14 +104,14 @@ Public Class MyMachGroupVM
|
||||
EgtGetTableArea(1, b3Tab)
|
||||
Dim p3OrigOnTab As Point3d
|
||||
Select Case CurrentMachine.OrigCorner
|
||||
'Case MCH_CR.BL
|
||||
' p3OrigOnTab = New Point3d(0, 0, 0)
|
||||
Case MCH_CR.BL
|
||||
p3OrigOnTab = New Point3d(CurrentMachine.OrigOffsX, CurrentMachine.OrigOffsY, 0)
|
||||
Case MCH_CR.BR
|
||||
p3OrigOnTab = New Point3d(b3Tab.DimX(), 0, 0)
|
||||
'Case MCH_CR.TL
|
||||
' p3OrigOnTab = New Point3d(0, b3Tab.DimY(), 0)
|
||||
p3OrigOnTab = New Point3d(b3Tab.DimX() - CurrentMachine.OrigOffsX, CurrentMachine.OrigOffsY, 0)
|
||||
Case MCH_CR.TL
|
||||
p3OrigOnTab = New Point3d(CurrentMachine.OrigOffsX, b3Tab.DimY() - CurrentMachine.OrigOffsY, 0)
|
||||
Case MCH_CR.TR
|
||||
p3OrigOnTab = New Point3d(b3Tab.DimX(), b3Tab.DimY(), 0)
|
||||
p3OrigOnTab = New Point3d(b3Tab.DimX() - CurrentMachine.OrigOffsX, b3Tab.DimY() - CurrentMachine.OrigOffsY, 0)
|
||||
End Select
|
||||
EgtMoveToCornerRawPart(nRawPartId, p3OrigOnTab, CurrentMachine.OrigCorner)
|
||||
' sposto tutti i pezzi di quanto si e' accorciato il grezzo
|
||||
@@ -140,7 +140,7 @@ Public Class MyMachGroupVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
If StringToLenAdv(value, dValue, True) Then
|
||||
If nType = BWType.WALL Then
|
||||
Dim nRawPartId As Integer = EgtGetFirstRawPart()
|
||||
If dValue <> MyMachGroupM.dW Then
|
||||
@@ -175,14 +175,14 @@ Public Class MyMachGroupVM
|
||||
EgtGetTableArea(1, b3Tab)
|
||||
Dim p3OrigOnTab As Point3d
|
||||
Select Case CurrentMachine.OrigCorner
|
||||
'Case MCH_CR.BL
|
||||
' p3OrigOnTab = New Point3d(0, 0, 0)
|
||||
'Case MCH_CR.BR
|
||||
' p3OrigOnTab = New Point3d(b3Tab.DimX(), 0, 0)
|
||||
Case MCH_CR.BL
|
||||
p3OrigOnTab = New Point3d(CurrentMachine.OrigOffsX, CurrentMachine.OrigOffsY, 0)
|
||||
Case MCH_CR.BR
|
||||
p3OrigOnTab = New Point3d(b3Tab.DimX() - CurrentMachine.OrigOffsX, CurrentMachine.OrigOffsY, 0)
|
||||
Case MCH_CR.TL
|
||||
p3OrigOnTab = New Point3d(0, b3Tab.DimY(), 0)
|
||||
p3OrigOnTab = New Point3d(CurrentMachine.OrigOffsX, b3Tab.DimY() - CurrentMachine.OrigOffsY, 0)
|
||||
Case MCH_CR.TR
|
||||
p3OrigOnTab = New Point3d(b3Tab.DimX(), b3Tab.DimY(), 0)
|
||||
p3OrigOnTab = New Point3d(b3Tab.DimX() - CurrentMachine.OrigOffsX, b3Tab.DimY() - CurrentMachine.OrigOffsY, 0)
|
||||
End Select
|
||||
EgtMoveToCornerRawPart(nRawPartId, p3OrigOnTab, CurrentMachine.OrigCorner)
|
||||
' sposto tutti i pezzi di quanto si e' accorciato il grezzo
|
||||
@@ -211,7 +211,7 @@ Public Class MyMachGroupVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
If StringToLenAdv(value, dValue, True) Then
|
||||
MyMachGroupM.dH = value
|
||||
End If
|
||||
End Set
|
||||
@@ -248,15 +248,29 @@ Public Class MyMachGroupVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
If StringToLenAdv(value, dValue, True) Then
|
||||
Dim dOldValue As Double = MyMachGroupM.dStartCut
|
||||
' verifico se con il nuovo StartCut tutti i pezzi stanno nella barra
|
||||
Dim dTotLength As Double = 0
|
||||
For PartIndex = 0 To m_PartVMList.Count - 1
|
||||
Dim Part As PartVM = m_PartVMList(PartIndex)
|
||||
If PartIndex = 0 Then
|
||||
dTotLength += Part.dL + dValue
|
||||
Else
|
||||
dTotLength += Part.dL + Part.dOffset
|
||||
End If
|
||||
Next
|
||||
If Me.dL < dTotLength Then
|
||||
NotifyPropertyChanged(NameOf(sStartCut))
|
||||
Return
|
||||
End If
|
||||
MyMachGroupM.dStartCut = dValue
|
||||
If Not ReDrawBeamMachgroup() Then
|
||||
' rispristino vecchio valore
|
||||
MyMachGroupM.dStartCut = dOldValue
|
||||
ReDrawBeamMachgroup()
|
||||
NotifyPropertyChanged(NameOf(sStartCut))
|
||||
End If
|
||||
MyMachGroupM.dStartCut = dValue
|
||||
EgtDraw()
|
||||
If PartVMList.Count > 0 Then
|
||||
Dim Beam As PartVM = PartVMList(0)
|
||||
@@ -286,15 +300,15 @@ Public Class MyMachGroupVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
If StringToLenAdv(value, dValue, True) Then
|
||||
Dim nRawPartId As Integer = EgtGetFirstRawPart()
|
||||
If dValue <> MyMachGroupM.dPosZ Then
|
||||
If Math.Abs(dValue - MyMachGroupM.dPosZ) > EPS_SMALL Then
|
||||
Select Case nType
|
||||
Case BWType.BEAM
|
||||
' non utilizzato
|
||||
Case BWType.WALL
|
||||
' se operazione di spostamento in z ha successo
|
||||
If True Then
|
||||
If dValue >= 0 AndAlso EgtMoveRawPart(nRawPartId, New Vector3d(0, 0, dValue - MyMachGroupM.dPosZ)) Then
|
||||
EgtSetInfo(Id, MGR_RPT_PANELPOSZ, dValue)
|
||||
EgtDraw()
|
||||
MyMachGroupM.dPosZ = dValue
|
||||
@@ -512,9 +526,7 @@ Public Class MyMachGroupVM
|
||||
nRawId = EgtGetFirstRawPart()
|
||||
End While
|
||||
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
|
||||
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then Return False
|
||||
|
||||
Return True
|
||||
Return ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False)
|
||||
End Function
|
||||
|
||||
Friend Sub MoveBeam(Beam As PartVM, MoveDirection As MoveDirections)
|
||||
@@ -794,7 +806,7 @@ Public Class MyMachGroupVM
|
||||
EgtGetInfo(Id, MGR_RPT_PART & 1, sInfo)
|
||||
If Not String.IsNullOrWhiteSpace(sInfo) Then
|
||||
sSplitInfo = sInfo.Split(","c)
|
||||
StringToDouble(sSplitInfo(1), MyMachGroupM.dStartCut)
|
||||
StringToDoubleAdv(sSplitInfo(1), MyMachGroupM.dStartCut)
|
||||
Else
|
||||
MyMachGroupM.dStartCut = 0
|
||||
End If
|
||||
|
||||
@@ -54,14 +54,14 @@ Public Class PartVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
If StringToLenAdv(value, dValue, True) Then
|
||||
Dim dOldValue As Double = m_PartM.dOffset
|
||||
Dim BeamMachGroup As MyMachGroupVM = DirectCast(ParentMachGroupVM, MyMachGroupVM)
|
||||
' se prima trave della barra sostituisco valore anche a startoffset
|
||||
If ParentMachGroupVM.PartVMList(0) Is Me Then
|
||||
m_PartM.dOffset = dValue
|
||||
BeamMachGroup.dStartCut = dValue
|
||||
ElseIf value > CurrentMachine.dMinOffset Then
|
||||
ElseIf dValue > CurrentMachine.dMinOffset Then
|
||||
m_PartM.dOffset = dValue
|
||||
Else
|
||||
m_PartM.dOffset = CurrentMachine.dMinOffset
|
||||
@@ -103,7 +103,7 @@ Public Class PartVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
If StringToLenAdv(value, dValue, True) Then
|
||||
Dim dOldValue As Double = m_PartM.dPOSX
|
||||
Dim dNewValue As Double = dValue
|
||||
Select Case Map.refProjectVM.BTLStructureVM.nPROJTYPE
|
||||
@@ -151,7 +151,7 @@ Public Class PartVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
If StringToLenAdv(value, dValue, True) Then
|
||||
Dim dOldValue As Double = m_PartM.dPOSY
|
||||
Dim dNewValue As Double = dValue
|
||||
' valuto angolo di posizionamento
|
||||
|
||||
@@ -38,7 +38,7 @@ Public Class MainMenuVM
|
||||
Set(value As Boolean)
|
||||
If value Then
|
||||
If Not IsNothing(Map.refProjManagerVM.CurrProj) AndAlso Not IsNothing(Map.refProdManagerVM.CurrProd) AndAlso
|
||||
Map.refProjManagerVM.CurrProj.nProdId = Map.refProdManagerVM.CurrProd.nProdId Then
|
||||
Map.refProjManagerVM.CurrProj.nProdId = Map.refProdManagerVM.CurrProd.nProdId Then
|
||||
Map.refProjManagerVM.CurrProj.SetReloadProject(False)
|
||||
End If
|
||||
SelPage = Pages.VIEW
|
||||
@@ -53,7 +53,7 @@ Public Class MainMenuVM
|
||||
Set(value As Boolean)
|
||||
If value Then
|
||||
If Not IsNothing(Map.refProjManagerVM.CurrProj) AndAlso Not IsNothing(Map.refProdManagerVM.CurrProd) AndAlso
|
||||
Map.refProjManagerVM.CurrProj.nProdId = Map.refProdManagerVM.CurrProd.nProdId Then
|
||||
Map.refProjManagerVM.CurrProj.nProdId = Map.refProdManagerVM.CurrProd.nProdId Then
|
||||
Map.refProdManagerVM.CurrProd.SetReloadProject(False)
|
||||
End If
|
||||
SelPage = Pages.MACHINING
|
||||
@@ -244,7 +244,7 @@ Public Class MainMenuVM
|
||||
DimensionsIniFile.ReadGridDimensions(ConstDims.LEFTPANEL_VIEW, Map.refLeftPanelVM.GridDims)
|
||||
' apro progetto proj
|
||||
If Not IsNothing(Map.refProjManagerVM.CurrProj) Then
|
||||
If Map.refProjManagerVM.CurrProj.bReloadProject Then
|
||||
If Map.refProjManagerVM.CurrProj.bReloadProject OrElse Map.refConfigurationPageVM.QParametersModified Then
|
||||
LoadingWndHelper.UpdateLoadingWnd(ActiveIds.GOTOPROJ, 2, EgtMsg(63005), 10, 100) ' Loading parts
|
||||
Map.refProjManagerVM.OpenProject(Map.refProjManagerVM.CurrProj)
|
||||
' aggiorno le colonne in base al tipo progetto
|
||||
@@ -257,6 +257,8 @@ Public Class MainMenuVM
|
||||
Map.refTopPanelVM.ManageQParamsRowVisibility(BWType.BEAM)
|
||||
Map.refPartInRawPartListVM.UpdateColumns(BWType.BEAM)
|
||||
End If
|
||||
' resetto modifica parametri Q default
|
||||
Map.refConfigurationPageVM.ResetQParametersModified()
|
||||
DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, True, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
|
||||
Map.refProjManagerVM.NotifyPropertyChanged(NameOf(Map.refProjManagerVM.MruFileNames))
|
||||
Else
|
||||
@@ -329,7 +331,7 @@ Public Class MainMenuVM
|
||||
If Not IsNothing(Map.refProdManagerVM.CurrProd) AndAlso Not IsNothing(Map.refProdManagerVM.CurrProd.nProdId) AndAlso Map.refProdManagerVM.CurrProd.nProdId > 0 Then
|
||||
If File.Exists(Map.refProdManagerVM.CurrProd.sProdPath) Then
|
||||
' apro progetto
|
||||
If Map.refProdManagerVM.CurrProd.bReloadProject Then
|
||||
If Map.refProdManagerVM.CurrProd.bReloadProject OrElse Map.refConfigurationPageVM.QParametersModified Then
|
||||
LoadingWndHelper.UpdateLoadingWnd(ActiveIds.GOTOPROD, 2, EgtMsg(63005), 10, 50) ' Loading parts
|
||||
Map.refProdManagerVM.TempCurrProd = Map.refProdManagerVM.CurrProd
|
||||
If Map.refSceneHostVM.MainController.OpenProject(Map.refProdManagerVM.CurrProd.sProdPath, False) Then
|
||||
@@ -337,6 +339,8 @@ Public Class MainMenuVM
|
||||
Map.refRawPartListVM.UpdateColumns(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
|
||||
Map.refTopPanelVM.ManageQParamsRowVisibility(Map.refProjectVM.BTLStructureVM.nPROJTYPE <> BWType.BEAM)
|
||||
Map.refPartInRawPartListVM.UpdateColumns(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
|
||||
' resetto modifica parametri Q default
|
||||
Map.refConfigurationPageVM.ResetQParametersModified()
|
||||
DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, True, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
|
||||
Map.refProdManagerVM.NotifyPropertyChanged(NameOf(Map.refProdManagerVM.MruFileNames))
|
||||
End If
|
||||
@@ -369,9 +373,29 @@ Public Class MainMenuVM
|
||||
Map.refProdManagerVM.CurrProd.SetReloadProject(True)
|
||||
End If
|
||||
'DbControllers.m_ProdController.ResetController()
|
||||
' se Warehouse di tipo Medium e piu' di un progetto collegato
|
||||
Dim nDefault As Integer = 2
|
||||
If GetMainPrivateProfileInt(S_WAREHOUSE, EgtBEAMWALL.Core.ConstIni.K_TYPE, nDefault) = WarehouseType.MEDIUM AndAlso Map.refProdManagerVM.CurrProd.nProjIdList.Count > 1 Then
|
||||
' confronto le Sezioni del BTL importato con quelle in Warehouse
|
||||
WarehouseWndVM.UpdateSectionXMaterial()
|
||||
End If
|
||||
' aggiorno titolo
|
||||
Map.refMainWindowVM.UpdateTitle()
|
||||
DbControllers.m_ProdController.LockByProdId(Map.refProdManagerVM.CurrProd.nProdId, True, Map.refMainWindowVM.MainWindowM.GetKeyNumber())
|
||||
' controllo se devo lanciare verifica perche' importato
|
||||
Dim bGetVerifyResult As Boolean = False
|
||||
Dim bVerifyMach As Boolean = False
|
||||
Dim nBTLInfoLayerId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
|
||||
While nBTLInfoLayerId <> GDB_ID.NULL
|
||||
If EgtGetInfo(nBTLInfoLayerId, IMP_VERIFYMACHGROUP, bGetVerifyResult) AndAlso bGetVerifyResult Then
|
||||
If Not bVerifyMach Then bVerifyMach = True
|
||||
EgtSetInfo(nBTLInfoLayerId, IMP_VERIFYMACHGROUP, False)
|
||||
End If
|
||||
nBTLInfoLayerId = EgtGetNextName(nBTLInfoLayerId, BTLINFO)
|
||||
End While
|
||||
If bVerifyMach Then
|
||||
Map.refCALCPanelVM.VerifyAll()
|
||||
End If
|
||||
' seleziono prima barra
|
||||
Map.refProjectVM.MachGroupPanelVM.SelFirstMachGroup()
|
||||
Else
|
||||
|
||||
@@ -150,7 +150,7 @@ Public Class MainWindowM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sWarehouseDir As String
|
||||
Private m_sWarehouseDir As String = ""
|
||||
Friend ReadOnly Property sWarehouseDir As String
|
||||
Get
|
||||
Return m_sWarehouseDir
|
||||
@@ -227,8 +227,8 @@ Public Class MainWindowM
|
||||
' Verifico abilitazione nesting automatico
|
||||
m_bAutoNestOption = Not String.IsNullOrWhiteSpace(sNestKey)
|
||||
' Recupero livello e opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2411, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2411, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2504, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5327, 2504, 1, m_nKeyOptions)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
||||
m_sLogFile = m_sTempDir & "\" & VWOPTGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||
|
||||
@@ -20,7 +20,7 @@ Public Class MovePartInRawPartWndVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dTempMoveLen As Double
|
||||
If StringToLen(value, dTempMoveLen) AndAlso dTempMoveLen > 0 Then
|
||||
If StringToLenAdv(value, dTempMoveLen, True) AndAlso dTempMoveLen > 0 Then
|
||||
m_dMoveLen = dTempMoveLen
|
||||
Else
|
||||
m_dMoveLen = 0
|
||||
|
||||
@@ -30,7 +30,7 @@ Imports System.Windows
|
||||
#End If
|
||||
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
||||
<Assembly: AssemblyProduct("EgtBEAMWALL.ViewerOptimizer")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2020-2022 by Egalware s.r.l.")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2020-2023 by Egalware s.r.l.")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
<Assembly: ComVisible(false)>
|
||||
|
||||
@@ -70,5 +70,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.11.3")>
|
||||
<Assembly: AssemblyFileVersion("2.4.11.3")>
|
||||
<Assembly: AssemblyVersion("2.5.5.2")>
|
||||
<Assembly: AssemblyFileVersion("2.5.5.2")>
|
||||
|
||||
@@ -366,6 +366,12 @@ Public Class NestingRunningWndVM
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
' verifico se nesting XZ tipo BTL o XY standar
|
||||
Dim dRawPartBtlH As Double
|
||||
EgtGetInfo( nRawPartId, "H", dRawPartBtlH)
|
||||
Dim dRawPartBtlW As Double
|
||||
EgtGetInfo( nRawPartId, "W", dRawPartBtlW)
|
||||
Dim bRefBtl As Boolean = ( Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL AndAlso dRawPartBtlW > dRawPartBtlH)
|
||||
' recupero i pezzi con frame
|
||||
Dim PartList As New List(Of NestPartWithFrame)
|
||||
Dim nPartPlaceHolderId As Integer = EgtGetFirstInGroup(nRawPartId)
|
||||
@@ -392,7 +398,12 @@ Public Class NestingRunningWndVM
|
||||
' calcolo riferimento
|
||||
Dim frPlaceHolder As New Frame3d
|
||||
EgtFrame(nPartPlaceHolderId, nRawPartId, frPlaceHolder)
|
||||
Dim p3Origin As Point3d = New Point3d(frPlaceHolder.Orig.x, frPlaceHolder.Orig.z, 0)
|
||||
Dim p3Origin As Point3d
|
||||
If bRefBtl Then
|
||||
p3Origin = New Point3d(frPlaceHolder.Orig.x, frPlaceHolder.Orig.z, 0)
|
||||
Else
|
||||
p3Origin = New Point3d(frPlaceHolder.Orig.x, frPlaceHolder.Orig.y, 0)
|
||||
End If
|
||||
' lo rendo std
|
||||
EgtSetMode(nPartDuploId, GDB_MD.STD)
|
||||
PartList.Add(New NestPartWithFrame(nPartPlaceHolderId, p3Origin, frPlaceHolder, nPartDuploId, nSourceId))
|
||||
@@ -424,7 +435,8 @@ Public Class NestingRunningWndVM
|
||||
Dim dPosX As Double = NestPart.p3Orig.x
|
||||
Dim dPosY As Double = NestPart.p3Orig.y
|
||||
Dim b3Duplo As New BBox3d
|
||||
EgtGetBBoxGlob(NestPart.nPartDuploId, GDB_BB.STANDARD, b3Duplo)
|
||||
Dim nBoxLayId As Integer = EgtGetFirstNameInGroup( NestPart.nPartDuploId, "Box")
|
||||
EgtGetBBoxGlob(nBoxLayId, GDB_BB.STANDARD, b3Duplo)
|
||||
' calcolo rot ed invert da frame
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
|
||||
If AreSameVectorApprox(NestPart.frFrame.VersX, Vector3d.X_AX) Then
|
||||
@@ -442,30 +454,138 @@ Public Class NestingRunningWndVM
|
||||
EgtRotate(NestPart.nPartDuploId, b3Duplo.Center, Vector3d.X_AX, dRot)
|
||||
EgtRotate(NestPart.nPartDuploId, b3Duplo.Center, Vector3d.Z_AX, dFlip)
|
||||
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
|
||||
'Dim frPlaceHolder As New Frame3d
|
||||
'EgtFrame(NestPart.nPartId, GDB_ID.ROOT, frPlaceHolder)
|
||||
'Dim frDuplo As New Frame3d
|
||||
'EgtFrame(NestPart.nPartDuploId, GDB_ID.ROOT, frDuplo)
|
||||
'Dim dDuploRot As Double = GetAngle(frDuplo.VersX, frPlaceHolder.VersX)
|
||||
'Dim dDuploFlip As Double = GetAngle(frDuplo.VersY, frPlaceHolder.VersY)
|
||||
'If dDuploFlip > 180 - 10 * EPS_SMALL AndAlso dDuploFlip < 180 + 10 * EPS_SMALL Then
|
||||
' dDuploRot -= 180
|
||||
'End If
|
||||
If NestPart.frFrame.GetEgtType() = Frame3d.TYPE.TOP Then
|
||||
dFlip = 180
|
||||
dRot = 180
|
||||
dPosX = b3Box.DimX() - b3Duplo.DimX() - dPosX
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, -Vector3d.X_AX) AndAlso AreSameVectorApprox(NestPart.frFrame.VersY, Vector3d.Y_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 0
|
||||
dPosX = b3Box.DimX() - dPosX
|
||||
dPosY -= b3Duplo.DimY()
|
||||
If bRefBtl Then
|
||||
Dim vtFrVersX As Vector3d = NestPart.frFrame.VersX
|
||||
Dim vtFrVersY As Vector3d = NestPart.frFrame.VersY
|
||||
If Math.Abs( vtFrVersX.z) > EPS_SMALL Or
|
||||
Math.Abs( vtFrVersX.z) > EPS_SMALL Then
|
||||
vtFrVersX = New Vector3d( vtFrVersX.y, vtFrVersX.z, 0)
|
||||
vtFrVersY = New Vector3d( vtFrVersY.y, vtFrVersY.z, 0)
|
||||
End If
|
||||
If AreSameVectorApprox(vtFrVersX, Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, Vector3d.Y_AX) Then
|
||||
dFlip = 0
|
||||
dRot = 0
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, -Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, Vector3d.Y_AX) Then
|
||||
dFlip = 0
|
||||
dRot = 180
|
||||
dPosX = dPosX - b3Duplo.DimX()
|
||||
dPosY = dPosY - b3Duplo.DimY()
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, -Vector3d.Y_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 0
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY - b3Duplo.DimY()
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, -Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, -Vector3d.Y_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 180
|
||||
dPosX = dPosX - b3Duplo.DimX()
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, Vector3d.X_AX) Then
|
||||
dFlip = 0
|
||||
dRot = -90
|
||||
dPosX = dPosX - b3Duplo.DimY()
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, -Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, Vector3d.X_AX) Then
|
||||
dFlip = 0
|
||||
dRot = 90
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY - b3Duplo.DimX()
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, -Vector3d.X_AX) Then
|
||||
dFlip = 180
|
||||
dRot = -90
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(vtFrVersX, -Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(vtFrVersY, -Vector3d.X_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 90
|
||||
dPosX = dPosX - b3Duplo.DimY()
|
||||
dPosY = dPosY - b3Duplo.DimX()
|
||||
Else
|
||||
' errore, la parete deve stare nel piano del grezzo
|
||||
EgtOutLog(String.Format("Errore in BTL nesting, pezzo {0} non giace nel piano XY ({1})", NestPart.nPartDuploId, NestPart.frFrame.VersZ))
|
||||
Continue For
|
||||
End If
|
||||
Else
|
||||
' errore, la parete deve stare nel piano del grezzo
|
||||
EgtOutLog(String.Format("Errore in BTL nesting, pezzo {0} non giace nel piano XY ({1})", NestPart.nPartDuploId, NestPart.frFrame.VersZ))
|
||||
Continue For
|
||||
If AreSameVectorApprox(NestPart.frFrame.VersX, Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, Vector3d.Y_AX) Then
|
||||
dFlip = 0
|
||||
dRot = 0
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, -Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, Vector3d.Y_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 180
|
||||
dPosX = dPosX - b3Duplo.DimX()
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, -Vector3d.Y_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 0
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY - b3Duplo.DimY()
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, -Vector3d.X_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, -Vector3d.Y_AX) Then
|
||||
dFlip = 0
|
||||
dRot = 180
|
||||
dPosX = dPosX - b3Duplo.DimX()
|
||||
dPosY = dPosY - b3Duplo.DimY()
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, Vector3d.X_AX) Then
|
||||
dFlip = 180
|
||||
dRot = -90
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, -Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, Vector3d.X_AX) Then
|
||||
dFlip = 0
|
||||
dRot = 90
|
||||
dPosX = dPosX
|
||||
dPosY = dPosY - b3Duplo.DimX()
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, -Vector3d.X_AX) Then
|
||||
dFlip = 0
|
||||
dRot = -90
|
||||
dPosX = dPosX - b3Duplo.DimY()
|
||||
dPosY = dPosY
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, -Vector3d.Y_AX) AndAlso
|
||||
AreSameVectorApprox(NestPart.frFrame.VersY, -Vector3d.X_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 90
|
||||
dPosX = dPosX - b3Duplo.DimY()
|
||||
dPosY = dPosY - b3Duplo.DimX()
|
||||
Else
|
||||
' errore, la parete deve stare nel piano del grezzo
|
||||
EgtOutLog(String.Format("Errore in BTL nesting, pezzo {0} non giace nel piano XY ({1})", NestPart.nPartDuploId, NestPart.frFrame.VersZ))
|
||||
Continue For
|
||||
End If
|
||||
End If
|
||||
' faccio rotazioni
|
||||
' Se pannello ribaltato
|
||||
Dim bSideOppo As Boolean = (GetMainPrivateProfileInt(S_IMPORT, K_WALLOPPOSITESIDENESTING, 0) <> 0)
|
||||
If bSideOppo Then
|
||||
dFlip = ( dFlip + 180) Mod 360
|
||||
Dim bUseX As Boolean
|
||||
If Math.Abs( dRot Mod 180) < EPS_ANG_SMALL Then
|
||||
dRot = ( dRot + 180) Mod 360
|
||||
bUseX = True
|
||||
Else
|
||||
dRot = dRot
|
||||
bUseX = False
|
||||
End If
|
||||
dPosX = -dPosX - If( bUseX, b3Duplo.DimX(), b3Duplo.DimY()) + b3Box.DimX()
|
||||
dPosY = dPosY
|
||||
End If
|
||||
' Applico le rotazioni
|
||||
EgtRotate(NestPart.nPartDuploId, b3Duplo.Center, Vector3d.X_AX, dFlip)
|
||||
EgtRotate(NestPart.nPartDuploId, b3Duplo.Center, -Vector3d.Z_AX, dRot)
|
||||
End If
|
||||
@@ -499,7 +619,7 @@ Public Class NestingRunningWndVM
|
||||
If Map.refProjectVM.MachGroupPanelVM.MachGroupVMList.Count = 0 Then
|
||||
Map.refProjectVM.BTLStructureVM.HideAll(True)
|
||||
End If
|
||||
Return
|
||||
Exit While
|
||||
End If
|
||||
|
||||
' passo al prossimo RawPart
|
||||
|
||||
@@ -126,28 +126,40 @@ Public Class OpenProjectFileDialogVM
|
||||
If nTempCtx <> 0 Then
|
||||
' inizializzo gestore lavorazioni
|
||||
EgtInitMachMgr(Map.refMainWindowVM.MainWindowM.sMachinesRoot, Map.refMainWindowVM.MainWindowM.sToolMakersDir)
|
||||
EgtOpenFile(SelProject.sProdPath)
|
||||
' cancello tutti i gruppi di lavorazione
|
||||
Dim nMachGroupId As Integer = EgtGetFirstMachGroup()
|
||||
While nMachGroupId <> GDB_ID.NULL
|
||||
EgtSetCurrMachGroup(nMachGroupId)
|
||||
Dim nRawPartId As Integer = EgtGetFirstRawPart()
|
||||
While nRawPartId <> GDB_ID.NULL
|
||||
Dim nPartId As Integer = EgtGetFirstPartInRawPart(nRawPartId)
|
||||
While nPartId <> GDB_ID.NULL
|
||||
EgtRemovePartFromRawPart(nPartId)
|
||||
' elimino pezzo copia
|
||||
EgtErase(nPartId)
|
||||
nPartId = EgtGetFirstPartInRawPart(nRawPartId)
|
||||
End While
|
||||
nRawPartId = EgtGetNextRawPart(nRawPartId)
|
||||
End While
|
||||
EgtRemoveMachGroup(nMachGroupId)
|
||||
nMachGroupId = EgtGetFirstMachGroup()
|
||||
End While
|
||||
' lo salvo in tutti i proj correlati
|
||||
' apro, ripulisco e salvo il progetto in tutti i proj correlati
|
||||
Dim ProdFile As ProdFileVM = DirectCast(SelProject, ProdFileVM)
|
||||
For Each nProjId In ProdFile.nProjIdList
|
||||
EgtOpenFile(SelProject.sProdPath)
|
||||
' cancello tutti i gruppi di lavorazione
|
||||
Dim nMachGroupId As Integer = EgtGetFirstMachGroup()
|
||||
While nMachGroupId <> GDB_ID.NULL
|
||||
EgtSetCurrMachGroup(nMachGroupId)
|
||||
Dim nRawPartId As Integer = EgtGetFirstRawPart()
|
||||
While nRawPartId <> GDB_ID.NULL
|
||||
Dim nPartId As Integer = EgtGetFirstPartInRawPart(nRawPartId)
|
||||
While nPartId <> GDB_ID.NULL
|
||||
EgtRemovePartFromRawPart(nPartId)
|
||||
' elimino pezzo copia
|
||||
EgtErase(nPartId)
|
||||
nPartId = EgtGetFirstPartInRawPart(nRawPartId)
|
||||
End While
|
||||
nRawPartId = EgtGetNextRawPart(nRawPartId)
|
||||
End While
|
||||
EgtRemoveMachGroup(nMachGroupId)
|
||||
nMachGroupId = EgtGetFirstMachGroup()
|
||||
End While
|
||||
' cancello tutti i gruppi che sono di un progetto diverso da questo
|
||||
Dim nGroupId As Integer = EgtGetFirstInGroup(GDB_ID.ROOT)
|
||||
While nGroupId <> GDB_ID.NULL
|
||||
Dim nGroupProjId As Integer = GDB_ID.NULL
|
||||
Dim nNextGroupId As Integer = EgtGetNext(nGroupId)
|
||||
If EgtGetInfo(nGroupId, BTL_PRT_PROJ, nGroupProjId) Then
|
||||
If nGroupProjId <> nProjId Then
|
||||
EgtErase(nGroupId)
|
||||
End If
|
||||
End If
|
||||
nGroupId = nNextGroupId
|
||||
End While
|
||||
EgtSaveFile(ProdFile.GetProjPath(nProjId), NGE.CMPTEXT)
|
||||
Next
|
||||
' torno sul contesto corrente
|
||||
|
||||
@@ -39,9 +39,9 @@
|
||||
</Button>-->
|
||||
<Button Command="{Binding AddProj_Command}"
|
||||
ToolTip="{Binding AddProj_ToolTip}"
|
||||
Visibility="Collapsed"
|
||||
Visibility="{Binding AddProj_Visibility}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Import.png" Stretch="Uniform"/>
|
||||
<Image Source="/Resources/ProjectManager/AddProj.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding GoToProj_Command}"
|
||||
ToolTip="{Binding GoToProj_ToolTip}"
|
||||
|
||||
@@ -84,10 +84,18 @@ Public Class ProdManagerVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_AddProj_Visibility As Visibility
|
||||
Public ReadOnly Property AddProj_Visibility As Visibility
|
||||
Get
|
||||
Return m_AddProj_Visibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdOpen As ICommand
|
||||
Private m_cmdOpenMruFile As ICommand
|
||||
Private m_cmdSave As ICommand
|
||||
Private m_cmdAddProj As ICommand
|
||||
Private m_cmdGoToProj As ICommand
|
||||
Private m_cmdGoToSupervisor As ICommand
|
||||
|
||||
@@ -135,6 +143,12 @@ Public Class ProdManagerVM
|
||||
Else
|
||||
m_GoToSupervisor_Visibility = Visibility.Collapsed
|
||||
End If
|
||||
' attivo bottone AddProj
|
||||
If GetMainPrivateProfileInt(S_GENERAL, K_ADDPROJ, 0) = 1 Then
|
||||
m_AddProj_Visibility = Visibility.Visible
|
||||
Else
|
||||
m_AddProj_Visibility = Visibility.Collapsed
|
||||
End If
|
||||
' Leggo ultimo indice di progetto
|
||||
m_nLastProdId = GetMainPrivateProfileInt(S_GENERAL, K_PRODSINDEX, 1)
|
||||
' Impostazioni MruLists
|
||||
@@ -372,10 +386,10 @@ Public Class ProdManagerVM
|
||||
Save(True)
|
||||
End Sub
|
||||
|
||||
Public Sub Save(Optional bShowLoading As Boolean = False)
|
||||
If IsNothing(m_CurrProd) Then Return
|
||||
Public Function Save(Optional bShowLoading As Boolean = False) As Boolean
|
||||
If IsNothing(m_CurrProd) Then Return False
|
||||
If bShowLoading Then LoadingWndHelper.OpenLoadingWnd(ActiveIds.SAVEPROD, 2, EgtMsg(63007), EgtMsg(63012), 70) ' Project saving ' Saving geometry
|
||||
Map.refSceneHostVM.SaveProject()
|
||||
Dim bOk As Boolean = Map.refSceneHostVM.SaveProject()
|
||||
If bShowLoading Then LoadingWndHelper.UpdateLoadingWnd(ActiveIds.SAVEPROD, 2, EgtMsg(63013), 70, 100) ' Saving data on Db
|
||||
Dim MyMachGroupList As New List(Of MyMachGroupM)
|
||||
If Not IsNothing(Map.refProjectVM.MachGroupPanelVM) Then
|
||||
@@ -384,7 +398,10 @@ Public Class ProdManagerVM
|
||||
Next
|
||||
End If
|
||||
' aggiorno pezzi su Db
|
||||
DbControllers.m_ProdController.UpdateMachGroup(CurrProd.nProdId, MyMachGroupList)
|
||||
If Not DbControllers.m_ProdController.UpdateMachGroup(CurrProd.nProdId, MyMachGroupList) And bShowLoading Then
|
||||
LoadingWndHelper.CloseLoadingWnd(ActiveIds.SAVEPROD)
|
||||
Return False
|
||||
End If
|
||||
' verifico se Reset Macchina modificato e nel caso aggiorno DB e CurrProj
|
||||
If Map.refCALCPanelVM.IsMachineModified() Then
|
||||
DbControllers.m_ProdController.UpdateMachine(Map.refProdManagerVM.CurrProd.nProdId, Map.refCALCPanelVM.SelectedMachine.Name)
|
||||
@@ -408,10 +425,103 @@ Public Class ProdManagerVM
|
||||
Map.refMainWindowVM.UpdateTitle()
|
||||
NotifyPropertyChanged(NameOf(MruFileNames))
|
||||
If bShowLoading Then LoadingWndHelper.CloseLoadingWnd(ActiveIds.SAVEPROD)
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
#End Region ' SaveCommand
|
||||
|
||||
#Region "AddProj"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Save.
|
||||
''' </summary>
|
||||
Public ReadOnly Property AddProj_Command As ICommand
|
||||
Get
|
||||
If m_cmdAddProj Is Nothing Then
|
||||
m_cmdAddProj = New Command(AddressOf AddProj)
|
||||
End If
|
||||
Return m_cmdAddProj
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the Save. This method is invoked by the SaveCommand.
|
||||
''' </summary>
|
||||
Public Sub AddProj()
|
||||
' verifico se progetto modificato, e chiedo se salvare
|
||||
If IsNothing(CurrProd) Then Return
|
||||
Dim bNewProject As Boolean = False
|
||||
Dim sProjectDirPath As String = ""
|
||||
sProjectDirPath = CurrProd.sProdDirPath
|
||||
Dim VerifyResult As MessageBoxResult = MessageBoxResult.None
|
||||
' verifico se progetto modificato, e chiedo se salvare
|
||||
If EgtGetModified() OrElse CurrProd.bIsNew OrElse Map.refCALCPanelVM.IsMachineModified() Then
|
||||
VerifyResult = MessageBox.Show(EgtMsg(61875), "", If(CurrProd.bIsNew, MessageBoxButton.OKCancel, MessageBoxButton.YesNoCancel), MessageBoxImage.Question)
|
||||
Select Case VerifyResult
|
||||
Case MessageBoxResult.Yes, MessageBoxResult.OK
|
||||
' salvo proj
|
||||
Map.refProdManagerVM.Save()
|
||||
Case MessageBoxResult.Cancel
|
||||
Return
|
||||
Case Else ' No
|
||||
EgtResetModified()
|
||||
OpenProject(CurrProd)
|
||||
End Select
|
||||
Else
|
||||
EgtResetModified()
|
||||
End If
|
||||
' faccio scegliere proj da aggiungere
|
||||
Dim OpenProjectFileDialogVM As New OpenProjectFileDialogVM
|
||||
Dim ChooseProdFileDialog As New OpenProjectFileDialogV(Application.Current.MainWindow, OpenProjectFileDialogVM)
|
||||
Dim DialogResult As Boolean? = ChooseProdFileDialog.EgtShowDialog(ProjectType.PROJ, True)
|
||||
If IsNothing(DialogResult) OrElse Not DialogResult Then Return
|
||||
If IsNothing(OpenProjectFileDialogVM.SelProject.nProjId) OrElse OpenProjectFileDialogVM.SelProject.nProjId <= 0 Then Return
|
||||
' verifico che il proj selezionato non abbia prod
|
||||
If Not IsNothing(OpenProjectFileDialogVM.SelProject.nProdId) AndAlso OpenProjectFileDialogVM.SelProject.nProdId > 0 Then
|
||||
' verifico che non sia uno di quelli gia' collegati a questo Prod
|
||||
Dim bFound As Boolean = False
|
||||
For Each nProjId As Integer In CurrProd.nProjIdList
|
||||
If nProjId = OpenProjectFileDialogVM.SelProject.nProjId Then
|
||||
bFound = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
If bFound Then
|
||||
MessageBox.Show("Selezionato progetto che fa gia' parte di questa produzione!", "Errore", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
Else
|
||||
MessageBox.Show("Progetto gia' collegato ad una produzione!", "Errore", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
End If
|
||||
Return
|
||||
End If
|
||||
' verifico che sia associato alla stessa macchina
|
||||
If OpenProjectFileDialogVM.SelProject.sMachine <> CurrProd.sMachine Then
|
||||
MessageBox.Show("Progetto per una macchina diversa da quella del progetto corrente!", "Errore", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
Return
|
||||
End If
|
||||
' inserisco proj nel prod corrente
|
||||
Dim bOk As Boolean = EgtInsertFile(OpenProjectFileDialogVM.SelProject.sProjPath)
|
||||
' lo salvo
|
||||
bOk = bOk AndAlso Save(False)
|
||||
If bOk Then
|
||||
' riporto aggiunta proj a prod su Db
|
||||
DbControllers.m_ProdController.AddProj(CurrProd.nProdId, OpenProjectFileDialogVM.SelProject.nProjId)
|
||||
End If
|
||||
' Ricavo il tipo di Warehouse settato nell'INI
|
||||
Dim nDefault As Integer = 2
|
||||
If GetMainPrivateProfileInt(S_WAREHOUSE, EgtBEAMWALL.Core.ConstIni.K_TYPE, nDefault) = WarehouseType.MEDIUM Then
|
||||
' Se di tipo Medium confronto le Sezioni del BTL importato con quelle in Warehouse
|
||||
WarehouseWndVM.UpdateSectionXMaterial()
|
||||
End If
|
||||
' aggiorno CurrProd
|
||||
Dim PdFileM = DbControllers.m_ProdController.FindCoreByProdId(CurrProd.nProdId)
|
||||
CurrProd.ProdFileM.SetProjIdList(PdFileM.nProjIdList)
|
||||
' ricarico BTLPartList
|
||||
OpenProject(CurrProd)
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region ' AddProj
|
||||
|
||||
#Region "GoToProj"
|
||||
|
||||
''' <summary>
|
||||
|
||||
@@ -535,7 +535,7 @@ Public Class ProjManagerVM
|
||||
' se vista singolo pezzo
|
||||
Else
|
||||
bShowSolid = Map.refShowBeamPanelVM.ShowSolid_IsChecked
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, False, False)
|
||||
End If
|
||||
' imposto ProjId di caricamento
|
||||
m_nLoadingProjId = CurrProj.nProjId
|
||||
@@ -551,7 +551,7 @@ Public Class ProjManagerVM
|
||||
End If
|
||||
' se assemblato lo ripristino
|
||||
If bShowBuilding Then Map.refProjectVM.BTLStructureVM.ShowBuilding(True, False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
' verifico se Reset Macchina modificato e nel caso aggiorno DB e CurrProj
|
||||
If Map.refCALCPanelVM.IsMachineModified() Then
|
||||
DbControllers.m_ProjController.UpdateMachine(Map.refProjManagerVM.CurrProj.nProjId, Map.refCALCPanelVM.SelectedMachine.Name)
|
||||
@@ -596,7 +596,7 @@ Public Class ProjManagerVM
|
||||
.DefaultExt = ".btl",
|
||||
.Filter = "BTL (*.btl)|*.btl" &
|
||||
"|BTLX (*.btlx)|*.btlx",
|
||||
.InitialDirectory = If( Directory.Exists( sDir), sDir, ""),
|
||||
.InitialDirectory = If(Directory.Exists(sDir), sDir, ""),
|
||||
.CheckFileExists = True,
|
||||
.ValidateNames = True}
|
||||
If BTLDlg.ShowDialog() Then
|
||||
@@ -831,7 +831,7 @@ Public Class ProjManagerVM
|
||||
' se vista singolo pezzo
|
||||
Else
|
||||
bShowSolid = Map.refShowBeamPanelVM.ShowSolid_IsChecked
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, False, False)
|
||||
' se pezzo selezionato lo segno e metto vista tutti
|
||||
nSelPartId = Map.refProjectVM.BTLStructureVM.SelBTLPart.nPartId
|
||||
Map.refProjectVM.BTLStructureVM.ShowAll(False)
|
||||
@@ -845,7 +845,7 @@ Public Class ProjManagerVM
|
||||
.DefaultExt = ".btl",
|
||||
.Filter = "BTL (*.btl)|*.btl" &
|
||||
"|BTLX (*.btlx)|*.btlx",
|
||||
.InitialDirectory = If( Directory.Exists( sDir), sDir, ""),
|
||||
.InitialDirectory = If(Directory.Exists(sDir), sDir, ""),
|
||||
.CheckFileExists = True,
|
||||
.ValidateNames = True}
|
||||
If BTLDlg.ShowDialog() Then
|
||||
@@ -857,7 +857,7 @@ Public Class ProjManagerVM
|
||||
Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nSelPartId)
|
||||
If Not IsNothing(SelPart) Then
|
||||
SelPart.IsSelected = True
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
End If
|
||||
End If
|
||||
EgtZoom(ZM.ALL)
|
||||
@@ -974,7 +974,7 @@ Public Class ProjManagerVM
|
||||
Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nSelPartId)
|
||||
If Not IsNothing(SelPart) Then
|
||||
SelPart.IsSelected = True
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
End If
|
||||
End If
|
||||
EgtZoom(ZM.ALL)
|
||||
@@ -1039,7 +1039,7 @@ Public Class ProjManagerVM
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nAddedPartId, 1, b3Part)
|
||||
' sposto il pezzo per distanziarlo dall'ultimo di un offset pari a 500
|
||||
bOk = bOk AndAlso EgtMove(nAddedPartId, New Vector3d(0, If(bFirstLoop, b3Parts.DimY(), LastPartMaxY - b3Part.Min.y) + 500, 0))
|
||||
bOk = bOk AndAlso EgtMove(nAddedPartId, New Vector3d(0, If(bFirstLoop, b3Parts.Max.y, LastPartMaxY - b3Part.Min.y) + 500, 0))
|
||||
bFirstLoop = False
|
||||
' ricaviamo il box globale del part appena spostato, salviamo la sua Y massima e lo aggiungiamo al box globale di tutti i part
|
||||
EgtGetBBoxGlob(nAddedPartId, 1, b3Part)
|
||||
@@ -1089,7 +1089,7 @@ Public Class ProjManagerVM
|
||||
Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nSelPartId)
|
||||
If Not IsNothing(SelPart) Then
|
||||
SelPart.IsSelected = True
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
End If
|
||||
End If
|
||||
EgtZoom(ZM.ALL)
|
||||
@@ -1296,7 +1296,7 @@ Public Class ProjManagerVM
|
||||
Dim SelPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nSelPartId)
|
||||
If Not IsNothing(SelPart) Then
|
||||
SelPart.IsSelected = True
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(False)
|
||||
If bShowSolid Then Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, True, False)
|
||||
End If
|
||||
End If
|
||||
EgtZoom(ZM.ALL)
|
||||
@@ -1444,7 +1444,7 @@ Public Class ProjManagerVM
|
||||
' apro finestra scelta file
|
||||
Dim ImportDlg As New Microsoft.Win32.OpenFileDialog() With {.DefaultExt = ".ngexp",
|
||||
.Filter = "ProjectExport (*.ngexp)|*.ngexp",
|
||||
.InitialDirectory = If( Directory.Exists( sDir), sDir, ""),
|
||||
.InitialDirectory = If(Directory.Exists(sDir), sDir, ""),
|
||||
.CheckFileExists = True,
|
||||
.ValidateNames = True}
|
||||
If ImportDlg.ShowDialog() <> True Then Return
|
||||
@@ -1621,9 +1621,19 @@ Public Class ProjManagerVM
|
||||
For Each MachGroup As MyMachGroupVM In Map.refProjectVM.MachGroupPanelVM.MachGroupVMList
|
||||
' aggiorno ProdId sui MachGroup
|
||||
EgtSetInfo(MachGroup.Id, MGR_RPT_PRODID, nProdId)
|
||||
' resetto tutti gli stati di CALC
|
||||
MachGroup.ResetCalcTotalMachGroup()
|
||||
If Map.refMainWindowVM.MainWindowM.nUserLevel < 5 OrElse GetMainPrivateProfileInt(S_MACH, K_EXPORTBWE, 0) <> 1 Then
|
||||
' resetto tutti gli stati di CALC
|
||||
MachGroup.ResetCalcTotalMachGroup()
|
||||
End If
|
||||
Next
|
||||
If Map.refMainWindowVM.MainWindowM.nUserLevel >= 5 AndAlso GetMainPrivateProfileInt(S_MACH, K_EXPORTBWE, 0) = 1 Then
|
||||
' riporto info di futuro aggiornamento machgroup
|
||||
nBTLInfoLayerId = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
|
||||
While nBTLInfoLayerId <> GDB_ID.NULL
|
||||
EgtSetInfo(nBTLInfoLayerId, IMP_VERIFYMACHGROUP, True)
|
||||
nBTLInfoLayerId = EgtGetNextName(nBTLInfoLayerId, BTLINFO)
|
||||
End While
|
||||
End If
|
||||
' salvo il progetto PROD
|
||||
EgtSaveFile(sProjFromPath(0), NGE.CMPTEXT)
|
||||
' copio file progetto
|
||||
@@ -1639,6 +1649,14 @@ Public Class ProjManagerVM
|
||||
bOk = False
|
||||
End Try
|
||||
End If
|
||||
If Map.refMainWindowVM.MainWindowM.nUserLevel >= 5 AndAlso GetMainPrivateProfileInt(S_MACH, K_EXPORTBWE, 0) = 1 Then
|
||||
' copio tutti i bwe
|
||||
For Each CurrFile In Directory.GetFiles(sProjectimportDir)
|
||||
If Path.GetExtension(CurrFile) = ".bwe" OrElse Path.GetExtension(CurrFile) = ".html" Then
|
||||
File.Copy(CurrFile, sProdDir & "\" & Path.GetFileName(CurrFile))
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
If bOk Then
|
||||
' aggiungo altri proj a prod
|
||||
For Each nProjId In NewProjIdList
|
||||
|
||||
@@ -261,7 +261,7 @@ Public Class ProjectVM
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_StartCut) Then
|
||||
Map.refRawPartListVM.colRawPart_StartCut.IsReadOnly = True
|
||||
End If
|
||||
If m_BTLStructureVM.nPROJTYPE <> BWType.BEAM AndAlso Not IsNothing(Map.refRawPartListVM.colRawPart_W) Then
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_W) Then
|
||||
Map.refRawPartListVM.colRawPart_W.IsReadOnly = True
|
||||
End If
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_L) Then
|
||||
@@ -308,7 +308,7 @@ Public Class ProjectVM
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_StartCut) Then
|
||||
Map.refRawPartListVM.colRawPart_StartCut.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_W) Then
|
||||
If m_BTLStructureVM.nPROJTYPE <> BWType.BEAM AndAlso Not IsNothing(Map.refRawPartListVM.colRawPart_W) Then
|
||||
Map.refRawPartListVM.colRawPart_W.IsReadOnly = False
|
||||
End If
|
||||
If Not IsNothing(Map.refRawPartListVM.colRawPart_L) Then
|
||||
|
||||
@@ -139,7 +139,10 @@ Public Class ProdFileVM
|
||||
Map.refCALCPanelVM.RevertToOriginalMachine()
|
||||
If CurrProject.bIsNew Then
|
||||
' lo elimino
|
||||
Directory.Delete(sProjectDirPath, True)
|
||||
Try
|
||||
Directory.Delete(sProjectDirPath, True)
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
Map.refProdManagerVM.m_MruFiles.Remove(CurrProject.sProdPath)
|
||||
Map.refProdManagerVM.NotifyPropertyChanged(NameOf(Map.refProdManagerVM.MruFileNames))
|
||||
DbControllers.m_ProdController.DeleteProd(CurrProject.nProdId)
|
||||
|
||||
|
Before Width: | Height: | Size: 889 B After Width: | Height: | Size: 1016 B |
|
Before Width: | Height: | Size: 468 B After Width: | Height: | Size: 645 B |
|
Before Width: | Height: | Size: 756 B After Width: | Height: | Size: 629 B |
|
Before Width: | Height: | Size: 594 B After Width: | Height: | Size: 584 B |
|
After Width: | Height: | Size: 976 B |
|
Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 499 B |
|
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 492 B |
|
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 609 B |
@@ -202,13 +202,14 @@ Public Class MySceneHostVM
|
||||
|
||||
#Region "ProjectManager"
|
||||
|
||||
Public Overrides Sub NewProject()
|
||||
Public Overrides Function NewProject() As Boolean
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
Dim bOk As Boolean = MainController.NewProject()
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub OpenProject(sFilePath As String)
|
||||
Public Overrides Function OpenProject(sFilePath As String) As Boolean
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
Dim bOk As Boolean = False
|
||||
If String.IsNullOrEmpty(sFilePath) Then
|
||||
@@ -225,29 +226,32 @@ Public Class MySceneHostVM
|
||||
bOk = MainController.OpenProject(sFilePath, False)
|
||||
End If
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub SaveProject()
|
||||
MyBase.SaveProject()
|
||||
Public Overrides Function SaveProject() As Boolean
|
||||
Dim bOk As Boolean = MyBase.SaveProject()
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub SaveAsProject()
|
||||
MyBase.SaveAsProject()
|
||||
Public Overrides Function SaveAsProject() As Boolean
|
||||
Dim bOk As Boolean = MyBase.SaveAsProject()
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub ImportProject()
|
||||
Public Overrides Function ImportProject() As Boolean
|
||||
Dim sDir As String = String.Empty
|
||||
GetMainPrivateProfileString(S_MRUIMPORT, K_FILE & "1", "", sDir)
|
||||
If Not String.IsNullOrWhiteSpace(sDir) Then
|
||||
sDir = Path.GetDirectoryName(sDir)
|
||||
End If
|
||||
sDir.TrimEnd("\"c)
|
||||
MainController.ImportProject(sDir)
|
||||
End Sub
|
||||
Return MainController.ImportProject(sDir)
|
||||
End Function
|
||||
|
||||
#End Region ' ProjectManager
|
||||
|
||||
@@ -285,8 +289,10 @@ Public Class MySceneHostVM
|
||||
Select Case Map.refMainMenuVM.SelPage
|
||||
Case Pages.VIEW
|
||||
If Not IsNothing(Map.refProjectVM.BTLStructureVM) Then
|
||||
If Map.refFreeContourManagerVM.bIsActive AndAlso Map.refFreeContourManagerVM.SelType = FreeContourManagerVM.FreeContourTypes.ONEWITHANGLES Then
|
||||
' passo testo selezionato
|
||||
If Map.refFreeContourManagerVM.bIsActive AndAlso
|
||||
( Map.refFreeContourManagerVM.SelType = FreeContourManagerVM.FreeContourTypes.ONEWITHANGLES Or
|
||||
Map.refFreeContourManagerVM.bIsOpeningCurveCompo) Then
|
||||
' passo entità selezionata
|
||||
Map.refFreeContourManagerVM.OnMouseSelectedObj(EgtGetFirstSelectedObj(), True)
|
||||
ElseIf Map.refShowBeamPanelVM.bShowAll Then
|
||||
View_Part_OnMouseDownScene(sender, e)
|
||||
|
||||
@@ -34,7 +34,7 @@ Public Class ShowBeamPanelVM
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bShowSolid = value
|
||||
If Not IsNothing(Map.refProjectVM.BTLStructureVM) Then Map.refProjectVM.BTLStructureVM.ShowSolid()
|
||||
If Not IsNothing(Map.refProjectVM.BTLStructureVM) Then Map.refProjectVM.BTLStructureVM.ShowSolid( GDB_ID.NULL, m_bShowSolid)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetShowSolid(bValue As Boolean)
|
||||
@@ -164,6 +164,7 @@ Public Class ShowBeamPanelVM
|
||||
' se necessario tolgo solido dal precedentemente selezionato
|
||||
If Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) AndAlso m_bShowSolid Then
|
||||
Map.refShowBeamPanelVM.SetShowSolid(False)
|
||||
Map.refProjectVM.BTLStructureVM.ShowSolid(GDB_ID.NULL, False, False)
|
||||
End If
|
||||
' nascondo barra del pezzo
|
||||
Map.refProjectVM.BTLStructureVM.SetSelectionType(BTLStructureVM.SelectionTypes.NULL)
|
||||
|
||||
@@ -403,6 +403,7 @@ Public Class TopPanelVM
|
||||
If SelMachGroup.nProduction_State >= ItemState.Assigned Then Return
|
||||
SelMachGroup.DeleteMachGroup()
|
||||
End If
|
||||
EgtDraw()
|
||||
' se nessun grezzo, rimetto tutti i pezzi invisibili
|
||||
If Map.refProjectVM.MachGroupPanelVM.MachGroupVMList.Count = 0 Then
|
||||
Map.refProjectVM.BTLStructureVM.HideAll(True)
|
||||
|
||||
@@ -39,6 +39,19 @@ Public Module CurrentMachine
|
||||
Return m_OrigCorner
|
||||
End Get
|
||||
End Property
|
||||
' Offset da origine tavola verso l'interno in X e Y
|
||||
Private m_dOrigOffsX As Double = 0
|
||||
Public ReadOnly Property OrigOffsX As Double
|
||||
Get
|
||||
Return m_dOrigOffsX
|
||||
End Get
|
||||
End Property
|
||||
Private m_dOrigOffsY As Double = 0
|
||||
Public ReadOnly Property OrigOffsY As Double
|
||||
Get
|
||||
Return m_dOrigOffsY
|
||||
End Get
|
||||
End Property
|
||||
' Posizione origine del grezzo per posizionamento pezzi
|
||||
Private m_NestingCorner As MCH_CR
|
||||
Public ReadOnly Property NestingCorner As MCH_CR
|
||||
@@ -267,9 +280,13 @@ Public Module CurrentMachine
|
||||
m_OrigCorner = MCH_CR.TR
|
||||
Case "BL"
|
||||
m_OrigCorner = MCH_CR.BL
|
||||
Case "BR"
|
||||
Case Else ' "BR"
|
||||
m_OrigCorner = MCH_CR.BR
|
||||
End Select
|
||||
m_dOrigOffsX = 0
|
||||
EgtLuaGetGlobNumVar("GWD.DELTA_X", m_dOrigOffsX)
|
||||
m_dOrigOffsY = 0
|
||||
EgtLuaGetGlobNumVar("GWD.DELTA_Y", m_dOrigOffsY)
|
||||
EgtLuaGetGlobStringVar("GWD.NESTING_CORNER", sTemp)
|
||||
Select Case sTemp
|
||||
Case "TL"
|
||||
@@ -278,15 +295,17 @@ Public Module CurrentMachine
|
||||
m_NestingCorner = MCH_CR.TR
|
||||
Case "BL"
|
||||
m_NestingCorner = MCH_CR.BL
|
||||
Case "BR"
|
||||
Case Else ' "BR"
|
||||
m_NestingCorner = MCH_CR.BR
|
||||
End Select
|
||||
EgtLuaGetGlobNumVar("GWD.MIN_HEIGHT", m_dMinRawH)
|
||||
EgtLuaGetGlobNumVar("GWD.MAX_HEIGHT", m_dMaxRawH)
|
||||
Else
|
||||
m_nViewDir = VT.ISO_SW
|
||||
m_OrigCorner = MCH_CR.BL
|
||||
m_NestingCorner = MCH_CR.BL
|
||||
m_OrigCorner = MCH_CR.BR
|
||||
m_dOrigOffsX = 0
|
||||
m_dOrigOffsY = 0
|
||||
m_NestingCorner = MCH_CR.BR
|
||||
m_dMinRawH = 5
|
||||
m_dMaxRawH = 500
|
||||
End If
|
||||
|
||||
@@ -68,6 +68,8 @@ Public Module DbControllers
|
||||
DataLayer.DbConfig.CheckMigrateDb()
|
||||
DataLayer.DbConfig.CheckUser(sUser, sPwd, m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK))
|
||||
DataLayer.DbConfig.CheckViews(sUser, sPwd)
|
||||
' riattivare il dump per il backup
|
||||
'DataLayer.DbConfig.DumpDB("C:\Program Files\MariaDB 10.5\bin\mysqldump", "c:\Temp\Pippo.sql")
|
||||
If m_bNetwork AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
|
||||
' imposto cartella condivisa
|
||||
GetMainPrivateProfileString(S_GENERAL, K_SHAREDFOLDER, Map.refMainWindowVM.MainWindowM.sDataDir, sSharedFolder)
|
||||
|
||||
@@ -99,8 +99,6 @@ Module LuaExec
|
||||
EgtLuaSetGlobStringVar("NEST.BASEDIR", sRoot)
|
||||
EgtLuaSetGlobStringVar("NEST.FILE", sFile)
|
||||
EgtLuaSetGlobStringVar("NEST.MACHINE", sMachine)
|
||||
'EgtLuaSetGlobNumVar("NEST.LEN", dLength)
|
||||
'EgtLuaSetGlobNumVar("NEST.WIDTH", dWidth)
|
||||
EgtLuaSetGlobNumVar("NEST.STARTOFFSET", dStartOffset)
|
||||
EgtLuaSetGlobNumVar("NEST.OFFSET", dOffset)
|
||||
EgtLuaSetGlobNumVar("NEST.KERF", dKerf)
|
||||
@@ -119,7 +117,6 @@ Module LuaExec
|
||||
End Select
|
||||
EgtLuaSetGlobNumVar("NEST.CORNER", nNestCorner)
|
||||
EgtLuaSetGlobStringVar("NEST.MATERIAL", PartList(0).sMATERIAL)
|
||||
'EgtLuaSetGlobNumVar("NEST.QTY", nQty)
|
||||
EgtLuaSetGlobNumVar("NEST.TIME", nNestTime)
|
||||
EgtLuaSetGlobNumVar("NEST.PRODID", Map.refProdManagerVM.CurrProd.nProdId)
|
||||
EgtLuaCreateGlobTable("PART")
|
||||
@@ -128,19 +125,19 @@ Module LuaExec
|
||||
Next
|
||||
EgtLuaCreateGlobTable("LEN")
|
||||
For SectionIndex = 0 To SectionList.Count - 1
|
||||
EgtLuaSetGlobNumVar("LEN." & SectionIndex + 1, SectionList(SectionIndex).dL)
|
||||
EgtLuaSetGlobNumVar("LEN." & (SectionIndex + 1).ToString(), SectionList(SectionIndex).dL)
|
||||
Next
|
||||
EgtLuaCreateGlobTable("WIDTH")
|
||||
For SectionIndex = 0 To SectionList.Count - 1
|
||||
EgtLuaSetGlobNumVar("WIDTH." & SectionIndex + 1, SectionList(SectionIndex).dW)
|
||||
EgtLuaSetGlobNumVar("WIDTH." & (SectionIndex + 1).ToString(), SectionList(SectionIndex).dW)
|
||||
Next
|
||||
EgtLuaCreateGlobTable("QTY")
|
||||
For SectionIndex = 0 To SectionList.Count - 1
|
||||
EgtLuaSetGlobNumVar("QTY." & SectionIndex + 1, SectionList(SectionIndex).nQuantity)
|
||||
EgtLuaSetGlobNumVar("QTY." & (SectionIndex + 1).ToString(), SectionList(SectionIndex).nQuantity)
|
||||
Next
|
||||
EgtLuaCreateGlobTable("MATERIAL")
|
||||
For SectionIndex = 0 To SectionList.Count - 1
|
||||
EgtLuaSetGlobStringVar("MATERIAL." & SectionIndex + 1, SectionList(SectionIndex).SectXMat.sSectionXMaterial)
|
||||
EgtLuaSetGlobStringVar("MATERIAL." & (SectionIndex + 1).ToString(), SectionList(SectionIndex).SectXMat.sSectionXMaterial)
|
||||
Next
|
||||
' Eseguo lo script
|
||||
Dim bOk As Boolean = False
|
||||
|
||||
@@ -17,7 +17,7 @@ Friend Module MachParamIniFile
|
||||
' creo parametro
|
||||
If sMachParamParams(0) = "d" OrElse sMachParamParams(0) = "l" Then
|
||||
Dim dDefault As Double
|
||||
StringToDouble(sMachParamParams(2), dDefault)
|
||||
StringToDoubleAdv(sMachParamParams(2), dDefault)
|
||||
Dim ParamType As MachParamType
|
||||
If sMachParamParams(0) = "d" Then
|
||||
ParamType = MachParamType.DOUBLE_
|
||||
|
||||
@@ -41,7 +41,7 @@ Public Class SectionXMaterialToBeAdded
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dTempNewW As Double
|
||||
If StringToLen(value, dTempNewW) AndAlso dTempNewW > 0 Then
|
||||
If StringToLenAdv(value, dTempNewW, True) AndAlso dTempNewW > 0 Then
|
||||
dNewW = dTempNewW
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sNewW))
|
||||
@@ -55,7 +55,7 @@ Public Class SectionXMaterialToBeAdded
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dTempNewL As Double
|
||||
If StringToLen(value, dTempNewL) AndAlso dTempNewL > 0 Then
|
||||
If StringToLenAdv(value, dTempNewL, True) AndAlso dTempNewL > 0 Then
|
||||
dNewL = dTempNewL
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sNewL))
|
||||
|
||||
@@ -52,9 +52,9 @@ Module WarehouseHelper
|
||||
Dim sRanges() As String = sRange.Split(","c)
|
||||
If sRanges.Count() >= 2 Then
|
||||
Dim dMaxThickness As Double = 0
|
||||
StringToDouble(sRanges(1), dMaxThickness)
|
||||
StringToDoubleAdv(sRanges(1), dMaxThickness)
|
||||
If dHeight <= dMaxThickness Then
|
||||
If StringToDouble(sRanges(0), dOffset) Then Return dOffset
|
||||
If StringToDoubleAdv(sRanges(0), dOffset) Then Return dOffset
|
||||
End If
|
||||
End If
|
||||
nRangeIndex += 1
|
||||
@@ -106,7 +106,7 @@ Module WarehouseHelper
|
||||
GenInterface.GetPrivateProfileString(WRH_WALL, WRH_S & nCurrentS, "", sPanelDim, GetWarehouseIniPath())
|
||||
If String.IsNullOrWhiteSpace(sPanelDim) Then Return False
|
||||
sPanelDims = sPanelDim.Split(","c)
|
||||
If Not sPanelDims.Count = 2 OrElse Not StringToDouble(sPanelDims(0), dW) OrElse Not StringToDouble(sPanelDims(1), dL) Then Return False
|
||||
If Not sPanelDims.Count = 2 OrElse Not StringToDoubleAdv(sPanelDims(0), dW) OrElse Not StringToDoubleAdv(sPanelDims(1), dL) Then Return False
|
||||
Return True
|
||||
End If
|
||||
End Function
|
||||
@@ -128,14 +128,14 @@ Module WarehouseHelper
|
||||
Select Case Type
|
||||
Case BWType.BEAM
|
||||
If dW = sSectionValues(0) AndAlso dH = sSectionValues(1) AndAlso Material = sSectionValues(2) Then
|
||||
If Not StringToDouble(sSectionValues(3), dL) Then Return False
|
||||
If Not StringToDoubleAdv(sSectionValues(3), dL) Then Return False
|
||||
If Not Integer.TryParse(sSectionValues(4), nQuantity) Then Return False
|
||||
Return True
|
||||
End If
|
||||
Case BWType.WALL
|
||||
If dH = sSectionValues(0) AndAlso Material = sSectionValues(1) Then
|
||||
If Not StringToDouble(sSectionValues(2), dW) Then Return False
|
||||
If Not StringToDouble(sSectionValues(3), dL) Then Return False
|
||||
If Not StringToDoubleAdv(sSectionValues(2), dW) Then Return False
|
||||
If Not StringToDoubleAdv(sSectionValues(3), dL) Then Return False
|
||||
If Not Integer.TryParse(sSectionValues(4), nQuantity) Then Return False
|
||||
Return True
|
||||
End If
|
||||
@@ -162,12 +162,12 @@ Module WarehouseHelper
|
||||
Dim SectionData() As String = sSectionData.Split(","c)
|
||||
Select Case Type
|
||||
Case BWType.BEAM
|
||||
Dim dSectionW As Double = 0 : StringToDouble( SectionData(0), dSectionW)
|
||||
Dim dSectionH As Double = 0 : StringToDouble( SectionData(1), dSectionH)
|
||||
Dim dSectionW As Double = 0 : StringToDoubleAdv( SectionData(0), dSectionW)
|
||||
Dim dSectionH As Double = 0 : StringToDoubleAdv( SectionData(1), dSectionH)
|
||||
For Each SectionProgress In SectionList
|
||||
If Math.Abs( SectionProgress.Section.dW - dSectionW) < 0.1 AndAlso
|
||||
Math.Abs( SectionProgress.Section.dH - dSectionH) < 0.1 AndAlso SectionProgress.Section.sMaterial.Contains(SectionData(2)) Then
|
||||
If Not StringToDouble(sSectionValues(1), dL) Then Continue While
|
||||
If Not StringToDoubleAdv(sSectionValues(1), dL) Then Continue While
|
||||
If Not Integer.TryParse(sSectionValues(2), nQty) Then Continue While
|
||||
If sSectionValues.Count >= 4 AndAlso Integer.TryParse(sSectionValues(3), nActive) Then
|
||||
If nActive > 0 Then SectionProgress.SParamList.Add(New SParam(SectionProgress.Section, dL, nQty, nActive > 0))
|
||||
@@ -179,11 +179,11 @@ Module WarehouseHelper
|
||||
End If
|
||||
Next
|
||||
Case BWType.WALL
|
||||
Dim dSectionH As Double = 0 : StringToDouble( SectionData(0), dSectionH)
|
||||
Dim dSectionH As Double = 0 : StringToDoubleAdv( SectionData(0), dSectionH)
|
||||
For Each SectionProgress In SectionList
|
||||
If Math.Abs( SectionProgress.Section.dH - dSectionH) < 0.1 AndAlso SectionProgress.Section.sMaterial.Contains(SectionData(1)) Then
|
||||
If Not StringToDouble(sSectionValues(1), dW) Then Continue While
|
||||
If Not StringToDouble(sSectionValues(2), dL) Then Continue While
|
||||
If Not StringToDoubleAdv(sSectionValues(1), dW) Then Continue While
|
||||
If Not StringToDoubleAdv(sSectionValues(2), dL) Then Continue While
|
||||
If Not Integer.TryParse(sSectionValues(3), nQty) Then Continue While
|
||||
If Not Integer.TryParse(sSectionValues(4), nActive) Then Continue While
|
||||
If nActive > 0 Then SectionProgress.SParamList.Add(New SParam(SectionProgress.Section, dW, dL, nQty, nActive > 0))
|
||||
@@ -222,14 +222,14 @@ Module WarehouseHelper
|
||||
' Sectionlist.Add(New SectionXMaterial(sSectionValues(0), sSectionValues(1), sSectionValues(3), sSectionValues(2)))
|
||||
' End If
|
||||
' If dW = sSectionValues(0) AndAlso dH = sSectionValues(1) AndAlso Material = sSectionValues(2) Then
|
||||
' If Not StringToDouble(sSectionValues(3), dL) Then Return False
|
||||
' If Not StringToDoubleAdv(sSectionValues(3), dL) Then Return False
|
||||
' If Not Integer.TryParse(sSectionValues(4), nQuantity) Then Return False
|
||||
' Return True
|
||||
' End If
|
||||
' Case BWType.WALL
|
||||
' If dH = sSectionValues(1) AndAlso Material = sSectionValues(2) Then
|
||||
' If Not StringToDouble(sSectionValues(2), dW) Then Return False
|
||||
' If Not StringToDouble(sSectionValues(3), dL) Then Return False
|
||||
' If Not StringToDoubleAdv(sSectionValues(2), dW) Then Return False
|
||||
' If Not StringToDoubleAdv(sSectionValues(3), dL) Then Return False
|
||||
' If Not Integer.TryParse(sSectionValues(4), nQuantity) Then Return False
|
||||
' Return True
|
||||
' End If
|
||||
@@ -261,8 +261,8 @@ Module WarehouseHelper
|
||||
Dim dW As Double = 0
|
||||
Dim dH As Double = 0
|
||||
Dim sMaterial As String = sSectXMatValues(2)
|
||||
StringToLen(sSectXMatValues(0), dW)
|
||||
StringToLen(sSectXMatValues(1), dH)
|
||||
StringToLenAdv(sSectXMatValues(0), dW)
|
||||
StringToLenAdv(sSectXMatValues(1), dH)
|
||||
If SectXMat.dW = dW AndAlso SectXMat.dH = dH AndAlso SectXMat.sMaterial(0) = sMaterial Then
|
||||
If sSectXMatValues.Length <= 3 Then Return Nothing
|
||||
Dim sValue As String = ""
|
||||
@@ -277,7 +277,7 @@ Module WarehouseHelper
|
||||
Dim dL As Double = 0
|
||||
Dim nQty As Integer = 0
|
||||
Dim nActive As Integer = 1
|
||||
StringToLen(sParamValues(1), dL)
|
||||
StringToLenAdv(sParamValues(1), dL)
|
||||
If sParamValues.Count >= 3 Then Integer.TryParse(sParamValues(2), nQty)
|
||||
If sParamValues.Count >= 4 Then Integer.TryParse(sParamValues(3), nActive)
|
||||
Return New SParam(New SectionXMaterial(dW, dH, dL, sSectXMatValues(2)), dL, nQty, nActive > 0)
|
||||
@@ -285,64 +285,42 @@ Module WarehouseHelper
|
||||
End If
|
||||
ParamIndex += 1
|
||||
End While
|
||||
|
||||
|
||||
|
||||
|
||||
'If EgtUILib.GetPrivateProfileString(S_BEAM, "L" & ParamIndex, String.Empty, sValue, sWarehousePath) Then
|
||||
' Dim sParamValues() As String = sValue.Split(","c)
|
||||
' ' verifico numero minimo di parametri
|
||||
' If sParamValues.Count < 2 Then Return Nothing
|
||||
' ' cancello spazi
|
||||
' For Index = 0 To sParamValues.Count - 1
|
||||
' sParamValues(Index) = sParamValues(Index).Trim()
|
||||
' Next
|
||||
' ' ricavo SectionXMaterial tramite Beam_List
|
||||
' If EgtUILib.GetPrivateProfileString(S_BEAM_LIST, sParamValues(0), String.Empty, sSxMValue, sWarehousePath) Then
|
||||
' Dim sSectXMatValues() As String = sSxMValue.Split(","c)
|
||||
' ' creo parametro
|
||||
' Dim dW As Double = 0
|
||||
' Dim dH As Double = 0
|
||||
' Dim dL As Double = 0
|
||||
' Dim nQty As Integer = 0
|
||||
' Dim nActive As Integer = 1
|
||||
' StringToLen(sSectXMatValues(0), dW)
|
||||
' StringToLen(sSectXMatValues(1), dH)
|
||||
' StringToLen(sParamValues(1), dL)
|
||||
' If sParamValues.Count >= 3 Then Integer.TryParse(sParamValues(2), nQty)
|
||||
' If sParamValues.Count >= 4 Then Integer.TryParse(sParamValues(3), nActive)
|
||||
' Return New SParam(New SectionXMaterial(dW, dH, dL, sSectXMatValues(2)), dL, nQty, nActive > 0)
|
||||
' End If
|
||||
'End If
|
||||
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
|
||||
'If EgtUILib.GetPrivateProfileString(S_WALL, "S" & ParamIndex, String.Empty, sValue, sWarehousePath) Then
|
||||
' Dim sParamValues() As String = sValue.Split(","c)
|
||||
' ' verifico numero minimo di parametri
|
||||
' If sParamValues.Count >= 3 Then
|
||||
' ' cancello spazi
|
||||
' For Index = 0 To sParamValues.Count - 1
|
||||
' sParamValues(Index) = sParamValues(Index).Trim()
|
||||
' Next
|
||||
' ' ricavo SectionXMaterial tramite Wall_List
|
||||
' If EgtUILib.GetPrivateProfileString(S_WALL_LIST, sParamValues(0), String.Empty, sSxMValue, sWarehousePath) Then
|
||||
' Dim sSectXMatValues() As String = sSxMValue.Split(","c)
|
||||
' ' creo parametro
|
||||
' Dim dH As Double = 0
|
||||
' Dim dW As Double = 0
|
||||
' Dim dL As Double = 0
|
||||
' Dim nQty As Integer = 0
|
||||
' Dim nActive As Integer = 1
|
||||
' StringToLen(sSectXMatValues(0), dH)
|
||||
' StringToLen(sParamValues(1), dW)
|
||||
' StringToLen(sParamValues(2), dL)
|
||||
' If sParamValues.Count >= 4 Then Integer.TryParse(sParamValues(3), nQty)
|
||||
' If sParamValues.Count >= 5 Then Integer.TryParse(sParamValues(4), nActive)
|
||||
' Return New SParam(New SectionXMaterial(dW, dH, dL, sSectXMatValues(1)), dW, dL, nQty, nActive > 0)
|
||||
' End If
|
||||
' End If
|
||||
'End If
|
||||
Else
|
||||
Dim ParamIndex As Integer = 1
|
||||
Dim sSxMValue As String = ""
|
||||
While EgtUILib.GetPrivateProfileString(S_WALL_LIST, ParamIndex, String.Empty, sSxMValue, sWarehousePath) > 0
|
||||
Dim sSectXMatValues() As String = sSxMValue.Split(","c)
|
||||
' creo parametro
|
||||
Dim dH As Double = 0
|
||||
Dim sMaterial As String = sSectXMatValues(1)
|
||||
StringToLenAdv(sSectXMatValues(0), dH)
|
||||
If SectXMat.dH = dH AndAlso SectXMat.sMaterial(0) = sMaterial Then
|
||||
If sSectXMatValues.Length <= 2 Then Return Nothing
|
||||
Dim sValue As String = ""
|
||||
If EgtUILib.GetPrivateProfileString(S_WALL, "S" & sSectXMatValues(2), String.Empty, sValue, sWarehousePath) Then
|
||||
Dim sParamValues() As String = sValue.Split(","c)
|
||||
' verifico numero minimo di parametri
|
||||
If sParamValues.Count < 3 Then Return Nothing
|
||||
' cancello spazi
|
||||
For Index = 0 To sParamValues.Count - 1
|
||||
sParamValues(Index) = sParamValues(Index).Trim()
|
||||
Next
|
||||
Dim dW As Double = 0
|
||||
Dim dL As Double = 0
|
||||
Dim nQty As Integer = 0
|
||||
Dim nActive As Integer = 1
|
||||
StringToLenAdv(sParamValues(1), dW)
|
||||
StringToLenAdv(sParamValues(2), dL)
|
||||
If sParamValues.Count >= 3 Then Integer.TryParse(sParamValues(3), nQty)
|
||||
If sParamValues.Count >= 4 Then Integer.TryParse(sParamValues(4), nActive)
|
||||
Return New SParam(New SectionXMaterial(dW, dH, dL, sSectXMatValues(1)), dW, dL, nQty, nActive > 0)
|
||||
End If
|
||||
End If
|
||||
ParamIndex += 1
|
||||
End While
|
||||
End If
|
||||
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
Friend Sub SetLastMaterial(SectXMat As SectionXMaterial, SParam As SParam)
|
||||
@@ -357,8 +335,8 @@ Module WarehouseHelper
|
||||
Dim dW As Double = 0
|
||||
Dim dH As Double = 0
|
||||
Dim sMaterial As String = sSectXMatValues(2)
|
||||
StringToLen(sSectXMatValues(0), dW)
|
||||
StringToLen(sSectXMatValues(1), dH)
|
||||
StringToLenAdv(sSectXMatValues(0), dW)
|
||||
StringToLenAdv(sSectXMatValues(1), dH)
|
||||
If SectXMat.dW = dW AndAlso SectXMat.dH = dH AndAlso SectXMat.sMaterial(0) = sMaterial Then
|
||||
' recupero indice di SParam
|
||||
Dim SParamIndex As Integer = 1
|
||||
@@ -375,7 +353,7 @@ Module WarehouseHelper
|
||||
Dim nSectIndex As Integer = sParamValues(0)
|
||||
Dim nQty As Integer = 0
|
||||
Dim nActive As Integer = 1
|
||||
StringToLen(sParamValues(1), dL)
|
||||
StringToLenAdv(sParamValues(1), dL)
|
||||
If sParamValues.Count >= 3 Then Integer.TryParse(sParamValues(2), nQty)
|
||||
If sParamValues.Count >= 4 Then Integer.TryParse(sParamValues(3), nActive)
|
||||
Dim bActive As Boolean = nActive = 1
|
||||
@@ -391,7 +369,82 @@ Module WarehouseHelper
|
||||
End If
|
||||
SectIndex += 1
|
||||
End While
|
||||
Else
|
||||
' cerco sezione
|
||||
Dim SectIndex As Integer = 1
|
||||
Dim sSxMValue As String = ""
|
||||
While EgtUILib.GetPrivateProfileString(S_WALL_LIST, SectIndex, String.Empty, sSxMValue, sWarehousePath) > 0
|
||||
Dim sSectXMatValues() As String = sSxMValue.Split(","c)
|
||||
' creo parametro
|
||||
Dim dH As Double = 0
|
||||
Dim sMaterial As String = sSectXMatValues(1)
|
||||
StringToLenAdv(sSectXMatValues(0), dH)
|
||||
If SectXMat.dH = dH AndAlso SectXMat.sMaterial(0) = sMaterial Then
|
||||
' recupero indice di SParam
|
||||
Dim SParamIndex As Integer = 1
|
||||
Dim sValue As String = ""
|
||||
While EgtUILib.GetPrivateProfileString(S_WALL, "S" & SParamIndex, String.Empty, sValue, sWarehousePath)
|
||||
Dim sParamValues() As String = sValue.Split(","c)
|
||||
' verifico numero minimo di parametri
|
||||
If sParamValues.Count < 3 Then Return
|
||||
' cancello spazi
|
||||
For Index = 0 To sParamValues.Count - 1
|
||||
sParamValues(Index) = sParamValues(Index).Trim()
|
||||
Next
|
||||
Dim dW As Double = 0
|
||||
Dim dL As Double = 0
|
||||
Dim nSectIndex As Integer = sParamValues(0)
|
||||
Dim nQty As Integer = 0
|
||||
Dim nActive As Integer = 1
|
||||
StringToLenAdv(sParamValues(1), dW)
|
||||
StringToLenAdv(sParamValues(2), dL)
|
||||
If sParamValues.Count >= 4 Then Integer.TryParse(sParamValues(3), nQty)
|
||||
If sParamValues.Count >= 5 Then Integer.TryParse(sParamValues(4), nActive)
|
||||
Dim bActive As Boolean = nActive = 1
|
||||
If dW = SParam.dW AndAlso dL = SParam.dL AndAlso nQty = SParam.nQuantity AndAlso bActive = SParam.bActive Then
|
||||
' scrivo indice ultimo materiale
|
||||
EgtUILib.WritePrivateProfileString(S_WALL_LIST, SectIndex,
|
||||
LenToString(dH, 3) & "," &
|
||||
sMaterial & "," &
|
||||
SParamIndex, sWarehousePath)
|
||||
End If
|
||||
SParamIndex += 1
|
||||
End While
|
||||
End If
|
||||
SectIndex += 1
|
||||
End While
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Function GetSectIndexFromSection(Type As BWType, Section As SectionXMaterial) As Integer
|
||||
Dim nIndex As Integer = 1
|
||||
Dim sSectionData As String = ""
|
||||
While GetPrivateProfileString(If(Type = BWType.BEAM, S_BEAM_LIST, S_WALL_LIST), nIndex, "", sSectionData, GetWarehouseIniPath()) > 0
|
||||
If String.IsNullOrWhiteSpace(sSectionData) Then Continue While
|
||||
Dim sSectionValues() As String = sSectionData.Split(","c)
|
||||
Select Case Type
|
||||
Case BWType.BEAM
|
||||
Dim dW As Double = 0
|
||||
Dim dH As Double = 0
|
||||
Dim sMaterial As String = sSectionValues(2)
|
||||
StringToLenAdv(sSectionValues(0), dW)
|
||||
StringToLenAdv(sSectionValues(1), dH)
|
||||
If Section.dW = dW AndAlso Section.dH = dH AndAlso Section.sMaterial(0) = sMaterial Then
|
||||
' se l'ho trovato esco dal while, il SectXMatIndex è l'indice che cercavamo
|
||||
Return nIndex
|
||||
End If
|
||||
Case BWType.WALL
|
||||
Dim dH As Double = 0
|
||||
Dim sMaterial As String = sSectionValues(1)
|
||||
StringToLenAdv(sSectionValues(0), dH)
|
||||
If Section.dH = dH AndAlso Section.sMaterial(0) = sMaterial Then
|
||||
' se l'ho trovato esco dal while, il SectXMatIndex è l'indice che cercavamo
|
||||
Return nIndex
|
||||
End If
|
||||
End Select
|
||||
nIndex += 1
|
||||
End While
|
||||
Return -1
|
||||
End Function
|
||||
|
||||
End Module
|
||||
|
||||
@@ -462,9 +462,9 @@ Public Class WarehouseWndVM
|
||||
Offset_Visibility = Visibility.Visible
|
||||
|
||||
EgtUILib.GetPrivateProfileString(S_BEAM, K_STARTOFFSET, String.Empty, sValue, sWarehousePath)
|
||||
StringToLen(sValue, dStartOffset)
|
||||
StringToLenAdv(sValue, dStartOffset)
|
||||
EgtUILib.GetPrivateProfileString(S_BEAM, K_OFFSET, String.Empty, sValue, sWarehousePath)
|
||||
StringToLen(sValue, dOffset)
|
||||
StringToLenAdv(sValue, dOffset)
|
||||
EgtUILib.GetPrivateProfileString(S_BEAM, K_QUANTITY, String.Empty, sValue, sWarehousePath)
|
||||
Integer.TryParse(sValue, nQuantity)
|
||||
|
||||
@@ -482,9 +482,9 @@ Public Class WarehouseWndVM
|
||||
Offset_Visibility = Visibility.Visible
|
||||
|
||||
EgtUILib.GetPrivateProfileString(S_WALL, K_KERF, String.Empty, sValue, sWarehousePath)
|
||||
StringToLen(sValue, dKerf)
|
||||
StringToLenAdv(sValue, dKerf)
|
||||
EgtUILib.GetPrivateProfileString(S_WALL, K_OFFSET, String.Empty, sValue, sWarehousePath)
|
||||
StringToLen(sValue, dOffset)
|
||||
StringToLenAdv(sValue, dOffset)
|
||||
EgtUILib.GetPrivateProfileString(S_WALL, K_QUANTITY, String.Empty, sValue, sWarehousePath)
|
||||
Integer.TryParse(sValue, nQuantity)
|
||||
|
||||
@@ -511,14 +511,17 @@ Public Class WarehouseWndVM
|
||||
Offset_Visibility = Visibility.Visible
|
||||
|
||||
EgtUILib.GetPrivateProfileString(S_BEAM, K_STARTOFFSET, String.Empty, sValue, sWarehousePath)
|
||||
StringToLen(sValue, dStartOffset)
|
||||
StringToLenAdv(sValue, dStartOffset)
|
||||
EgtUILib.GetPrivateProfileString(S_BEAM, K_OFFSET, String.Empty, sValue, sWarehousePath)
|
||||
StringToLen(sValue, dOffset)
|
||||
StringToLenAdv(sValue, dOffset)
|
||||
|
||||
SParamList = New ObservableCollection(Of SParam)
|
||||
SectionXMaterialList = New ObservableCollection(Of SectionXMaterial)(GetSectionXMaterialsFromWarehouse())
|
||||
While EgtUILib.GetPrivateProfileString(S_BEAM, "L" & ParamIndex, String.Empty, sValue, sWarehousePath)
|
||||
SParamList.Add(GetSParamFromWarehouse(ParamIndex))
|
||||
Dim SParam = GetSParamFromWarehouse(ParamIndex)
|
||||
If Not IsNothing(SParam) Then
|
||||
SParamList.Add(SParam)
|
||||
End If
|
||||
ParamIndex += 1
|
||||
End While
|
||||
|
||||
@@ -539,7 +542,7 @@ Public Class WarehouseWndVM
|
||||
MediumWall_Visibility = Visibility.Visible
|
||||
|
||||
EgtUILib.GetPrivateProfileString(S_WALL, K_KERF, String.Empty, sValue, sWarehousePath)
|
||||
StringToLen(sValue, dKerf)
|
||||
StringToLenAdv(sValue, dKerf)
|
||||
|
||||
' carico la lista degli Spessori Min/Max e Offset compresi tra di essi
|
||||
While EgtUILib.GetPrivateProfileString(S_WALL, K_RANGE & ParamIndex, String.Empty, sValue, sWarehousePath)
|
||||
@@ -679,21 +682,32 @@ Public Class WarehouseWndVM
|
||||
Dim sL As String = String.Empty
|
||||
sL = LenToString(SParamList(ParamIndex - 1).dL, 3)
|
||||
|
||||
' ricavo l'indice del SecionXMaterial dalla Beam_List
|
||||
Dim SectXMatIndex As Integer = 1
|
||||
Dim sSxMValue As String = ""
|
||||
While EgtUILib.GetPrivateProfileString(S_BEAM_LIST, SectXMatIndex, String.Empty, sSxMValue, sWarehousePath)
|
||||
If sSxMValue = SParamList(ParamIndex - 1).sValue Then
|
||||
' se l'ho trovato esco dal while, il SectXMatIndex è l'indice che cercavamo
|
||||
Exit While
|
||||
End If
|
||||
SectXMatIndex += 1
|
||||
End While
|
||||
|
||||
WritePrivateProfileString(S_BEAM, K_L & ParamIndex,
|
||||
' ricavo l'indice del SecionXMaterial dalla Beam_List
|
||||
Dim SectXMatIndex As Integer = GetSectIndexFromSection(MachineType.BEAM, SParamList(ParamIndex - 1).SectXMat)
|
||||
'Dim sSxMValue As String = ""
|
||||
'While EgtUILib.GetPrivateProfileString(S_BEAM_LIST, SectXMatIndex, String.Empty, sSxMValue, sWarehousePath)
|
||||
' Dim sSectXMatValues() As String = sSxMValue.Split(","c)
|
||||
' ' creo parametro
|
||||
' Dim dW As Double = 0
|
||||
' Dim dH As Double = 0
|
||||
' Dim sMaterial As String = sSectXMatValues(2)
|
||||
' StringToLenAdv(sSectXMatValues(0), dW)
|
||||
' StringToLenAdv(sSectXMatValues(1), dH)
|
||||
' If SParamList(ParamIndex - 1).SectXMat.dW = dW AndAlso SParamList(ParamIndex - 1).SectXMat.dH = dH AndAlso SParamList(ParamIndex - 1).SectXMat.sMaterial(0) = sMaterial Then
|
||||
' ' se l'ho trovato esco dal while, il SectXMatIndex è l'indice che cercavamo
|
||||
' Exit While
|
||||
' End If
|
||||
' SectXMatIndex += 1
|
||||
'End While
|
||||
If SectXMatIndex > 0 Then
|
||||
WritePrivateProfileString(S_BEAM, K_L & ParamIndex,
|
||||
SectXMatIndex & "," & sL & "," & SParamList(ParamIndex - 1).nQuantity & "," & If(SParamList(ParamIndex - 1).bActive, 1, 0),
|
||||
sWarehousePath)
|
||||
ParamIndex += 1
|
||||
ParamIndex += 1
|
||||
Else
|
||||
EgtOutLog("Error in material creation, section not found!")
|
||||
End If
|
||||
Next
|
||||
' Se ci sono parametri da rimuovere li rimuovo
|
||||
For Index = ParamIndex To ParamIndex + m_RemovedParamsCount
|
||||
@@ -735,20 +749,23 @@ Public Class WarehouseWndVM
|
||||
sL = LenToString(SParamList(ParamIndex - 1).dL, 3)
|
||||
|
||||
' ricavo l'indice del SecionXMaterial dalla Wall_List
|
||||
Dim SectXMatIndex As Integer = 1
|
||||
Dim sSxMValue As String = ""
|
||||
While EgtUILib.GetPrivateProfileString(S_WALL_LIST, SectXMatIndex, String.Empty, sSxMValue, sWarehousePath)
|
||||
If sSxMValue = SParamList(ParamIndex - 1).sValue Then
|
||||
' se l'ho trovato esco dal while, il SectXMatIndex è l'indice che cercavamo
|
||||
Exit While
|
||||
End If
|
||||
SectXMatIndex += 1
|
||||
End While
|
||||
|
||||
WritePrivateProfileString(S_WALL, K_S & ParamIndex,
|
||||
Dim SectXMatIndex As Integer = GetSectIndexFromSection(MachineType.WALL, SParamList(ParamIndex - 1).SectXMat)
|
||||
'Dim sSxMValue As String = ""
|
||||
'While EgtUILib.GetPrivateProfileString(S_WALL_LIST, SectXMatIndex, String.Empty, sSxMValue, sWarehousePath)
|
||||
' If sSxMValue = SParamList(ParamIndex - 1).sValue Then
|
||||
' ' se l'ho trovato esco dal while, il SectXMatIndex è l'indice che cercavamo
|
||||
' Exit While
|
||||
' End If
|
||||
' SectXMatIndex += 1
|
||||
'End While
|
||||
If SectXMatIndex > 0 Then
|
||||
WritePrivateProfileString(S_WALL, K_S & ParamIndex,
|
||||
SectXMatIndex & "," & sW & "," & sL & "," & SParamList(ParamIndex - 1).nQuantity & "," & If(SParamList(ParamIndex - 1).bActive, 1, 0),
|
||||
sWarehousePath)
|
||||
ParamIndex += 1
|
||||
ParamIndex += 1
|
||||
Else
|
||||
EgtOutLog("Error in material creation, section not found!")
|
||||
End If
|
||||
Next
|
||||
' Se ci sono parametri da rimuovere li rimuovo
|
||||
For Index = ParamIndex To ParamIndex + m_RemovedParamsCount
|
||||
@@ -822,7 +839,7 @@ Public Class WarehouseWndVM
|
||||
Dim dLValue As Double = 0
|
||||
Select Case Map.refProjectVM.BTLStructureVM.nPROJTYPE
|
||||
Case MachineType.BEAM
|
||||
If Not IsNothing(sNewL) Then StringToLen(sNewL, dLValue)
|
||||
If Not IsNothing(sNewL) Then StringToLenAdv(sNewL, dLValue, True)
|
||||
If dLValue > 0 Then
|
||||
' controllo il valore immesso non sia già presente
|
||||
Dim bExist As Boolean = False
|
||||
@@ -843,8 +860,8 @@ Public Class WarehouseWndVM
|
||||
MessageBox.Show(IncorrectValue_Msg, Error_Msg)
|
||||
End If
|
||||
Case MachineType.WALL
|
||||
If Not IsNothing(sNewW) Then StringToLen(sNewW, dWValue)
|
||||
If Not IsNothing(sNewL) Then StringToLen(sNewL, dLValue)
|
||||
If Not IsNothing(sNewW) Then StringToLenAdv(sNewW, dWValue, True)
|
||||
If Not IsNothing(sNewL) Then StringToLenAdv(sNewL, dLValue, True)
|
||||
If dWValue > 0 AndAlso dLValue > 0 Then
|
||||
' controllo che la coppia di valori immessa non sia già presente
|
||||
Dim bExist As Boolean = False
|
||||
@@ -1082,8 +1099,8 @@ Public Class WarehouseWndVM
|
||||
' creo parametro
|
||||
Dim dW As Double = 0
|
||||
Dim dH As Double = 0
|
||||
StringToLen(sSectXMatValues(0), dW)
|
||||
StringToLen(sSectXMatValues(1), dH)
|
||||
StringToLenAdv(sSectXMatValues(0), dW)
|
||||
StringToLenAdv(sSectXMatValues(1), dH)
|
||||
If Not SectXMatList.Any(Function(x) x.dW = dW AndAlso x.dH = dH AndAlso x.sMaterial(0) = sSectXMatValues(2)) Then
|
||||
SectXMatList.Add(New SectionXMaterial(dW, dH, 0, sSectXMatValues(2)))
|
||||
End If
|
||||
@@ -1097,8 +1114,10 @@ Public Class WarehouseWndVM
|
||||
Dim sSectXMatValues() As String = sSxMValue.Split(","c)
|
||||
' creo parametro
|
||||
Dim dH As Double = 0
|
||||
StringToLen(sSectXMatValues(0), dH)
|
||||
SectXMatList.Add(New SectionXMaterial(0, dH, 0, sSectXMatValues(1)))
|
||||
StringToLenAdv(sSectXMatValues(0), dH)
|
||||
If Not SectXMatList.Any(Function(x) x.dH = dH AndAlso x.sMaterial(0) = sSectXMatValues(1)) Then
|
||||
SectXMatList.Add(New SectionXMaterial(0, dH, 0, sSectXMatValues(1)))
|
||||
End If
|
||||
sSectXMatIndex += 1
|
||||
End While
|
||||
End If
|
||||
@@ -1119,8 +1138,8 @@ Public Class WarehouseWndVM
|
||||
' creo parametro
|
||||
Dim dW As Double = 0
|
||||
Dim dH As Double = 0
|
||||
StringToLen(sSectXMatValues(0), dW)
|
||||
StringToLen(sSectXMatValues(1), dH)
|
||||
StringToLenAdv(sSectXMatValues(0), dW)
|
||||
StringToLenAdv(sSectXMatValues(1), dH)
|
||||
Dim ReadSection As New SectionXMaterial(dW, dH, 0, sSectXMatValues(2))
|
||||
If ReadSection = SectionXMaterial Then Return False
|
||||
sSectXMatIndex += 1
|
||||
@@ -1134,7 +1153,7 @@ Public Class WarehouseWndVM
|
||||
Dim sSectXMatValues() As String = sSxMValue.Split(","c)
|
||||
' creo parametro
|
||||
Dim dH As Double = 0
|
||||
StringToLen(sSectXMatValues(0), dH)
|
||||
StringToLenAdv(sSectXMatValues(0), dH)
|
||||
Dim ReadSection As New SectionXMaterial(0, dH, 0, sSectXMatValues(1))
|
||||
If ReadSection = SectionXMaterial Then Return False
|
||||
sSectXMatIndex += 1
|
||||
@@ -1156,7 +1175,7 @@ Public Class WarehouseWndVM
|
||||
Dim sWarehousePath As String = Map.refMainWindowVM.MainWindowM.sWarehouseDir & "\" & WH_BASIC_INI_FILE_NAME
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.BEAM Then
|
||||
If EgtUILib.GetPrivateProfileString(S_BEAM, "L" & ParamIndex, String.Empty, sValue, sWarehousePath) Then
|
||||
StringToLen(sValue, dValue)
|
||||
StringToLenAdv(sValue, dValue)
|
||||
Return New SParam(dValue)
|
||||
End If
|
||||
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
|
||||
@@ -1171,8 +1190,8 @@ Public Class WarehouseWndVM
|
||||
' creo parametro
|
||||
Dim dW As Double = 0
|
||||
Dim dL As Double = 0
|
||||
StringToLen(sParamValues(0), dW)
|
||||
StringToLen(sParamValues(1), dL)
|
||||
StringToLenAdv(sParamValues(0), dW)
|
||||
StringToLenAdv(sParamValues(1), dL)
|
||||
Return New SParam(dW, dL)
|
||||
End If
|
||||
End If
|
||||
@@ -1197,9 +1216,9 @@ Public Class WarehouseWndVM
|
||||
Dim dL As Double = 0
|
||||
Dim nQty As Integer = 0
|
||||
Dim nActive As Integer = 1
|
||||
StringToLen(sSectXMatValues(0), dW)
|
||||
StringToLen(sSectXMatValues(1), dH)
|
||||
StringToLen(sParamValues(1), dL)
|
||||
StringToLenAdv(sSectXMatValues(0), dW)
|
||||
StringToLenAdv(sSectXMatValues(1), dH)
|
||||
StringToLenAdv(sParamValues(1), dL)
|
||||
If sParamValues.Count >= 3 Then Integer.TryParse(sParamValues(2), nQty)
|
||||
If sParamValues.Count >= 4 Then Integer.TryParse(sParamValues(3), nActive)
|
||||
Return New SParam(New SectionXMaterial(dW, dH, dL, sSectXMatValues(2)), dL, nQty, nActive > 0)
|
||||
@@ -1224,9 +1243,9 @@ Public Class WarehouseWndVM
|
||||
Dim dL As Double = 0
|
||||
Dim nQty As Integer = 0
|
||||
Dim nActive As Integer = 1
|
||||
StringToLen(sSectXMatValues(0), dH)
|
||||
StringToLen(sParamValues(1), dW)
|
||||
StringToLen(sParamValues(2), dL)
|
||||
StringToLenAdv(sSectXMatValues(0), dH)
|
||||
StringToLenAdv(sParamValues(1), dW)
|
||||
StringToLenAdv(sParamValues(2), dL)
|
||||
If sParamValues.Count >= 4 Then Integer.TryParse(sParamValues(3), nQty)
|
||||
If sParamValues.Count >= 5 Then Integer.TryParse(sParamValues(4), nActive)
|
||||
Return New SParam(New SectionXMaterial(dW, dH, dL, sSectXMatValues(1)), dW, dL, nQty, nActive > 0)
|
||||
@@ -1265,8 +1284,8 @@ Public Class WarehouseWndVM
|
||||
' creo parametro
|
||||
Dim dOffset As Double = 0
|
||||
Dim dMaxThickness As Double = 0
|
||||
StringToLen(sParamValues(0), dOffset)
|
||||
StringToLen(sParamValues(1), dMaxThickness)
|
||||
StringToLenAdv(sParamValues(0), dOffset)
|
||||
StringToLenAdv(sParamValues(1), dMaxThickness)
|
||||
Return New WhWallParam(dOffset, dMaxThickness)
|
||||
End If
|
||||
End If
|
||||
|
||||