300 lines
13 KiB
VB.net
300 lines
13 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports EgtWPFLib5
|
|
Imports EgtBEAMWALL.Core
|
|
|
|
Public Class MyInstrumentPanelVM
|
|
Inherits InstrumentPanelVM
|
|
|
|
' Definizione comandi
|
|
Private m_cmdData As ICommand
|
|
Private m_cmdChangeParameter As ICommand
|
|
Private m_cmdVerify As ICommand
|
|
Private m_cmdSimulate As ICommand
|
|
|
|
Public Overrides Function OnPostGetDistIsChecked() As Boolean
|
|
Map.refSceneHostVM.MainScene.SetStatusNull()
|
|
Return True
|
|
End Function
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "Data"
|
|
|
|
''' <summary>
|
|
''' Returns a command that do Open.
|
|
''' </summary>
|
|
Public ReadOnly Property Data_Command As ICommand
|
|
Get
|
|
If m_cmdData Is Nothing Then
|
|
m_cmdData = New Command(AddressOf Data)
|
|
End If
|
|
Return m_cmdData
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Execute the Open. This method is invoked by the OpenCommand.
|
|
''' </summary>
|
|
Friend Sub Data()
|
|
Dim BTLDataWnd As New BTLDataWndV(Application.Current.MainWindow, New BTLDataWndVM())
|
|
BTLDataWnd.ShowDialog()
|
|
End Sub
|
|
|
|
#End Region ' Data
|
|
|
|
#Region "ChangeParameter"
|
|
|
|
''' <summary>
|
|
''' Returns a command that do Open.
|
|
''' </summary>
|
|
Public ReadOnly Property ChangeParameter_Command As ICommand
|
|
Get
|
|
If m_cmdChangeParameter Is Nothing Then
|
|
m_cmdChangeParameter = New Command(AddressOf ChangeParameter)
|
|
End If
|
|
Return m_cmdChangeParameter
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Execute the Open. This method is invoked by the OpenCommand.
|
|
''' </summary>
|
|
Friend Sub ChangeParameter()
|
|
Dim ChangeParameterWndVM As New ChangeParameterWndVM
|
|
Dim ChangeParameterWnd As New ChangeParameterWndV(Application.Current.MainWindow, ChangeParameterWndVM)
|
|
If ChangeParameterWnd.ShowDialog() Then
|
|
' faccio passare pezzi
|
|
If Not IsNothing(ChangeParameterWndVM.SelParam) Then
|
|
For Each Part In Map.refProjectVM.BTLStructureVM.BTLPartVMList
|
|
For Each Feature In Part.BTLFeatureVMList.Where(Function(x) x.nPRC = ChangeParameterWndVM.SelPRC.nPRC AndAlso CalcBeamPrivateProfileGRP(x.nSelGRP) = ChangeParameterWndVM.SelPRC.nGRP)
|
|
If ChangeParameterWndVM.SelParam.BTLParamM.nType = BTLParamType.CHECKBOX AndAlso Feature.bDO = ChangeParameterWndVM.SelParam.bActualValue Then
|
|
Feature.bDO = ChangeParameterWndVM.SelParam.bNewValue
|
|
Else
|
|
Dim ParamList As ObservableCollection(Of BTLParamVM)
|
|
If ChangeParameterWndVM.SelParam.BTLParamM.bIsP Then
|
|
ParamList = Feature.PBTLParamVMList
|
|
Else
|
|
ParamList = Feature.QBTLParamVMList
|
|
End If
|
|
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
|
|
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
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' ChangeParameter
|
|
|
|
#Region "Verify"
|
|
|
|
''' <summary>
|
|
''' Returns a command that do Open.
|
|
''' </summary>
|
|
Public ReadOnly Property Verify_Command As ICommand
|
|
Get
|
|
If m_cmdVerify Is Nothing Then
|
|
m_cmdVerify = New Command(AddressOf Verify)
|
|
End If
|
|
Return m_cmdVerify
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Execute the Open. This method is invoked by the OpenCommand.
|
|
''' </summary>
|
|
Friend Sub Verify()
|
|
Dim Calc As New CalcIntegration
|
|
Dim BarList() As CalcIntegration.Bar
|
|
If Map.refMainMenuVM.SelPage = Pages.VIEW Then
|
|
If ((Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift) Then
|
|
Dim TempBarList(Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1) As CalcIntegration.Bar
|
|
For PartIndex = 0 To Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1
|
|
Dim CurrPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList(PartIndex)
|
|
Dim Bar As New CalcIntegration.Bar With {.nBarId = CurrPart.nPartId,
|
|
.nBarType = ProjectType.PROJ,
|
|
.bBarOk = True}
|
|
Select Case CurrPart.nState
|
|
Case Core.CalcStates.OK
|
|
Bar.nCmdType = CalcIntegration.CmdType.GENERATE
|
|
Case Else
|
|
Bar.nCmdType = CalcIntegration.CmdType.CHECKGEN
|
|
End Select
|
|
TempBarList(PartIndex) = Bar
|
|
Next
|
|
BarList = TempBarList
|
|
ElseIf Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) Then
|
|
Dim TempBarList(0) As CalcIntegration.Bar
|
|
Dim Bar As New CalcIntegration.Bar With {.nBarId = Map.refProjectVM.BTLStructureVM.SelBTLPart.nPartId,
|
|
.nBarType = ProjectType.PROJ,
|
|
.bBarOk = True}
|
|
Select Case Map.refProjectVM.BTLStructureVM.SelBTLPart.nState
|
|
Case Core.CalcStates.OK
|
|
Bar.nCmdType = CalcIntegration.CmdType.GENERATE
|
|
Case Else
|
|
Bar.nCmdType = CalcIntegration.CmdType.CHECKGEN
|
|
End Select
|
|
TempBarList(0) = Bar
|
|
BarList = TempBarList
|
|
Else
|
|
Return
|
|
End If
|
|
Calc.Run(BarList, Map.refProjManagerVM.CurrProj.sProjDirPath, AddressOf ManageCalc)
|
|
|
|
ElseIf Map.refMainMenuVM.SelPage = Pages.MACHINING Then
|
|
If ((Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift) Then
|
|
Dim TempBarList(Map.refMachGroupPanelVM.MachGroupVMList.Count - 1) As CalcIntegration.Bar
|
|
For PartIndex = 0 To Map.refMachGroupPanelVM.MachGroupVMList.Count - 1
|
|
Dim CurrPart As MyMachGroupVM = Map.refMachGroupPanelVM.MachGroupVMList(PartIndex)
|
|
Dim Bar As New CalcIntegration.Bar With {.nBarId = CurrPart.Id,
|
|
.nBarType = ProjectType.PROD,
|
|
.bBarOk = True}
|
|
Select Case CurrPart.nState
|
|
Case Core.CalcStates.OK
|
|
Bar.nCmdType = CalcIntegration.CmdType.GENERATE
|
|
Case Else
|
|
Bar.nCmdType = CalcIntegration.CmdType.CHECKGEN
|
|
End Select
|
|
TempBarList(PartIndex) = Bar
|
|
Next
|
|
BarList = TempBarList
|
|
ElseIf Not IsNothing(Map.refMachGroupPanelVM.SelectedMachGroup) Then
|
|
Dim TempBarList(0) As CalcIntegration.Bar
|
|
Dim Bar As New CalcIntegration.Bar With {.nBarId = Map.refMachGroupPanelVM.SelectedMachGroup.Id,
|
|
.nBarType = ProjectType.PROD,
|
|
.bBarOk = True}
|
|
Dim SelMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup
|
|
Select Case SelMachGroup.nState
|
|
Case Core.CalcStates.OK
|
|
Bar.nCmdType = CalcIntegration.CmdType.GENERATE
|
|
Case Else
|
|
Bar.nCmdType = CalcIntegration.CmdType.CHECKGEN
|
|
End Select
|
|
TempBarList(0) = Bar
|
|
BarList = TempBarList
|
|
Else
|
|
Return
|
|
End If
|
|
Calc.Run(BarList, Map.refProdManagerVM.CurrProd.sProdDirPath, AddressOf ManageCalc)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ManageCalc(dProgress As Double, sProgress As String, ByRef bCancel As Boolean)
|
|
If dProgress = 0 Then
|
|
Map.refMyStatusBarVM.SetLoadingProgress_Visibility(True)
|
|
Map.refMyStatusBarVM.SetStopProgress_IsActive(True)
|
|
Map.refMyStatusBarVM.SetStopProgress_IsEnabled(True)
|
|
Map.refMyStatusBarVM.SetOutputMessage(sProgress)
|
|
Map.refMyStatusBarVM.SetStopProgress_IsActive(True)
|
|
Map.refMyStatusBarVM.SetStopProgress_IsEnabled(True)
|
|
ElseIf dProgress = 1 Then
|
|
Map.refMyStatusBarVM.SetLoadingProgress_Visibility(False)
|
|
Map.refMyStatusBarVM.SetStopProgress_IsActive(False)
|
|
Map.refMyStatusBarVM.SetStopProgress_IsEnabled(False)
|
|
Map.refMyStatusBarVM.SetOutputMessage(sProgress, 3)
|
|
End If
|
|
bCancel = Map.refMyStatusBarVM.bStopProgress
|
|
Map.refMyStatusBarVM.SetLoadingProgress(dProgress * 100)
|
|
Map.refMyStatusBarVM.SetOutputMessage(sProgress)
|
|
End Sub
|
|
|
|
#End Region ' Verify
|
|
|
|
#Region "Simulate"
|
|
|
|
''' <summary>
|
|
''' Returns a command that do Open.
|
|
''' </summary>
|
|
Public ReadOnly Property Simulate_Command As ICommand
|
|
Get
|
|
If m_cmdSimulate Is Nothing Then
|
|
m_cmdSimulate = New Command(AddressOf Simulate)
|
|
End If
|
|
Return m_cmdSimulate
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Execute the Open. This method is invoked by the OpenCommand.
|
|
''' </summary>
|
|
Friend Sub Simulate()
|
|
Dim Calc As New CalcIntegration
|
|
Dim BarList() As CalcIntegration.Bar
|
|
If Map.refMainMenuVM.SelPage = Pages.VIEW Then
|
|
If Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) Then
|
|
Dim TempBarList(0) As CalcIntegration.Bar
|
|
Dim Bar As New CalcIntegration.Bar With {.nBarId = Map.refProjectVM.BTLStructureVM.SelBTLPart.nPartId,
|
|
.nBarType = ProjectType.PROJ,
|
|
.bBarOk = True,
|
|
.nCmdType = CalcIntegration.CmdType.SIMULATE}
|
|
TempBarList(0) = Bar
|
|
BarList = TempBarList
|
|
Else
|
|
Return
|
|
End If
|
|
Calc.Run(BarList, Map.refProjManagerVM.CurrProj.sProjDirPath, AddressOf ManageCalc)
|
|
ElseIf Map.refMainMenuVM.SelPage = Pages.MACHINING Then
|
|
If Not IsNothing(Map.refMachGroupPanelVM.SelectedMachGroup) Then
|
|
Dim TempBarList(0) As CalcIntegration.Bar
|
|
Dim Bar As New CalcIntegration.Bar With {.nBarId = Map.refMachGroupPanelVM.SelectedMachGroup.Id,
|
|
.nBarType = ProjectType.PROD,
|
|
.bBarOk = True,
|
|
.nCmdType = CalcIntegration.CmdType.SIMULATE}
|
|
TempBarList(0) = Bar
|
|
BarList = TempBarList
|
|
Else
|
|
Return
|
|
End If
|
|
Calc.Run(BarList, Map.refProdManagerVM.CurrProd.sProdDirPath, AddressOf ManageCalc)
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' Simulate
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
End Class
|