4d37978789
- modifiche per gestione griglia come tavola / standard.
198 lines
6.5 KiB
VB.net
198 lines
6.5 KiB
VB.net
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class SimulationPanelVM
|
|
Inherits VMBase
|
|
|
|
#Region "FIELDS & PROPERTIES"
|
|
|
|
Private m_dPrevAngVertDegView As Double
|
|
Private m_dPrevAngHorizDegView As Double
|
|
|
|
Private m_MySimul As MySimulation
|
|
Public Property MySimul As MySimulation
|
|
Get
|
|
Return m_MySimul
|
|
End Get
|
|
Set(value As MySimulation)
|
|
m_MySimul = value
|
|
NotifyPropertyChanged("MySimul")
|
|
End Set
|
|
End Property
|
|
|
|
|
|
' Definizione comandi
|
|
Private m_cmdOk As ICommand
|
|
|
|
#Region "ToolTip"
|
|
|
|
Public ReadOnly Property OneStepToolTip As String
|
|
Get
|
|
Return EgtMsg(MSG_SIMULATION + 8)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property PlayPauseToolTip As String
|
|
Get
|
|
Return EgtMsg(MSG_SIMULATION + 9)
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property StopHomeToolTip As String
|
|
Get
|
|
Return EgtMsg(MSG_SIMULATION + 10)
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' ToolTip
|
|
|
|
#End Region ' FIELDS & PROPERTIES
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Sub New()
|
|
' Creo riferimento a questa classe in OmagOFFICEMap
|
|
Map.SetRefSimulationPanelVM(Me)
|
|
MySimul = New MySimulation
|
|
' leggo vista macchina da ini e la imposto
|
|
Dim DefaultMachViewMode As Integer = GetMainPrivateProfileInt(S_SIMUL, K_MACHVIEWMODE, 3)
|
|
MySimul.SetMachLook(DefaultMachViewMode)
|
|
Map.refMachineViewPanelVM.RefreshSelViewSlider()
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTOR
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Sub Refresh(PrevMeasureUnit As MeasureUnitOpt)
|
|
|
|
End Sub
|
|
|
|
Friend Sub InitSimulation()
|
|
' Deseleziono tutto
|
|
EgtDeselectAll()
|
|
' Costringo ad aggiornare UI
|
|
UpdateUI()
|
|
' Disabilito impostazione modificato
|
|
EgtDisableModified()
|
|
' Imposto prima fase
|
|
EgtSetCurrPhase(1)
|
|
' Costringo ad aggiornare UI
|
|
UpdateUI()
|
|
'Cambio la vista della scena
|
|
EgtGetGenericView(m_dPrevAngVertDegView, m_dPrevAngHorizDegView)
|
|
EgtSetView(VT.ISO_SW, False)
|
|
EgtSetMachineLook(MySimul.GetMachLook())
|
|
' Nascondo griglia
|
|
EgtSetGridShow(False, False)
|
|
EgtZoom(ZM.ALL)
|
|
' Avvio ambiente di simulazione
|
|
If Not EgtSimInit() OrElse Not EgtSimStart() Then
|
|
If EgtGetLastMachMgrErrorId() <> 0 Then
|
|
Dim sErr As String = EgtGetLastMachMgrErrorString()
|
|
MessageBox.Show(sErr, EgtMsg(MSG_SIMULATION + 5), MessageBoxButton.OK, MessageBoxImage.Exclamation)
|
|
Else
|
|
MessageBox.Show(EgtMsg(MSG_MESSAGEBOX + 10), EgtMsg(MSG_SIMULATION + 5), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
End If
|
|
End If
|
|
' Imposto stato corrente
|
|
MySimul.SetSimulationStatus(MCH_SIM_ST.UI_STOP)
|
|
MySimul.SetShowPlay(True)
|
|
MySimul.SetSliderX(GetMainPrivateProfileDouble(S_SIMUL, K_SLIDERX, 1))
|
|
Dim SliderVal As Double = GetMainPrivateProfileDouble(S_SIMUL, K_SLIDERVAL, 10)
|
|
MySimul.SliderValue = SliderVal
|
|
MySimul.ShowCncData()
|
|
MySimul.StatusMsg = EgtMsg(MSG_SIMULATIONPAGEUC + 14) ' Home
|
|
' nascondo slider strati e layer da visualizzare
|
|
Map.refSliderManagerVM.SetSliderVisibility(False)
|
|
Map.refViewLayerManagerVM.SetViewLayerManagerVisibility(False)
|
|
' disattivo comandi progetto
|
|
Map.refProjManagerVM.SetProjCmdIsEnabled(False)
|
|
' disabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
|
|
Map.refProjManagerVM.SetProjCmdIsEnabled(False)
|
|
Map.refTopPanelVM.SetTopPanelIsEnabled(False)
|
|
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(False)
|
|
Map.refSliceManagerVM.SetButtonsIsEnabled(False)
|
|
Map.refSliderManagerVM.SetLayerIndexIsEnabled(False)
|
|
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(False)
|
|
Map.refInstrumentPanelVM.SetEdgeAnalysisIsEnabled(False)
|
|
EgtDraw()
|
|
End Sub
|
|
|
|
Private Function LoadCurrTools() As Boolean
|
|
'' Se macchina con cambio utensile non devo fare alcunché
|
|
'If CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.TOOLCHANGER Then
|
|
' Return True
|
|
'End If
|
|
'' Imposto la lama corrente
|
|
'Dim sSaw As String = CurrentMachine.sCurrSaw
|
|
'If Not EgtLoadTool("H1", 1, sSaw) Then
|
|
' Return False
|
|
'End If
|
|
'' Imposto eventuale secondo utensile montato
|
|
'If CurrentMachine.MountedToolConfig = CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL Then
|
|
' Dim sTool As String = CurrentMachine.sCurrDrill
|
|
' If String.IsNullOrEmpty(sTool) Then sTool = CurrentMachine.sCurrMill
|
|
' If Not String.IsNullOrEmpty(sTool) AndAlso Not EgtLoadTool("H1", 2, sTool) Then
|
|
' Return False
|
|
' End If
|
|
'End If
|
|
Return True
|
|
End Function
|
|
|
|
Friend Sub ExitSimulation()
|
|
Map.refMyStatusBarVM.ClearOutputMessage()
|
|
' Mi assicuro di terminare la simulazione
|
|
MySimul.ResetSimulation()
|
|
'' Nascondo tutte le lavorazioni
|
|
'CamAuto.HideAllMachinings()
|
|
' Abilito impostazione modificato
|
|
EgtEnableModified()
|
|
' Ripristino vista griglia
|
|
EgtSetGridShow(OptionModule.m_bGridVisibility, OptionModule.m_bGridVisibility)
|
|
' Cambio la vista della scena
|
|
EgtSetGenericView(m_dPrevAngVertDegView, m_dPrevAngHorizDegView, False)
|
|
EgtZoom(ZM.ALL)
|
|
' mostro slider strati e layer da visualizzare
|
|
Map.refSliderManagerVM.SetSliderVisibility(True)
|
|
Map.refViewLayerManagerVM.SetViewLayerManagerVisibility(True)
|
|
' disattivo comandi progetto
|
|
Map.refProjManagerVM.SetProjCmdIsEnabled(True)
|
|
' riabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
|
|
Map.refProjManagerVM.SetProjCmdIsEnabled(True)
|
|
Map.refTopPanelVM.SetTopPanelIsEnabled(True)
|
|
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(True)
|
|
Map.refSliceManagerVM.SetButtonsIsEnabled(True)
|
|
Map.refSliderManagerVM.SetLayerIndexIsEnabled(True)
|
|
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(True)
|
|
Map.refInstrumentPanelVM.SetEdgeAnalysisIsEnabled(True)
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "Ok"
|
|
|
|
Public ReadOnly Property Ok_Command As ICommand
|
|
Get
|
|
If m_cmdOk Is Nothing Then
|
|
m_cmdOk = New Command(AddressOf Ok)
|
|
End If
|
|
Return m_cmdOk
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Ok()
|
|
' reset gruppo
|
|
EgtResetCurrMachGroup()
|
|
' eseguo script di uscita da gruppo corrente
|
|
Map.refSliceManagerVM.ExecExitMachScript()
|
|
' ripristino modalita' standard
|
|
Map.refTopPanelVM.SelPage = Pages.SLICE
|
|
End Sub
|
|
|
|
#End Region ' Ok
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
End Class
|