Imports System.Collections.ObjectModel Imports EgtUILib Imports EgtWPFLib5 Public Class Print3dPartVM Inherits VMBase Private m_nPartId As Integer Public ReadOnly Property nPartId As Integer Get Return m_nPartId End Get End Property ' solido/superficie da stampare Private m_nPrintSolidLayerId As Integer = GDB_ID.NULL Public ReadOnly Property nPrintSolidLayerId As Integer Get Return m_nPrintSolidLayerId End Get End Property Public ReadOnly Property nPrintSolidId As Integer Get Return EgtGetFirstInGroup(m_nPrintSolidLayerId) End Get End Property ' riferimento del solido/superficie di stampa Private m_nReferenceLayerId As Integer = GDB_ID.NULL Public ReadOnly Property nReferenceLayerId As Integer Get Return m_nReferenceLayerId End Get End Property ' riferimento del solido/superficie di stampa Private m_nReferenceId As Integer = GDB_ID.NULL Public ReadOnly Property nReferenceId As Integer Get Return m_nReferenceId End Get End Property ' punto/curva di inizio stampa Private m_nMachStartLayerId As Integer = GDB_ID.NULL Public ReadOnly Property nMachStartLayerId As Integer Get Return m_nMachStartLayerId End Get End Property ' solidi ausiliari Private m_nAuxSolidsLayerId As Integer = GDB_ID.NULL Public ReadOnly Property nAuxSolidsLayerId As Integer Get Return m_nAuxSolidsLayerId End Get End Property ' numero di strati Private m_nShellNumberLayerId As Integer = GDB_ID.NULL Public ReadOnly Property nShellNumberLayerId As Integer Get Return m_nShellNumberLayerId End Get End Property ' setti Private m_nRibsLayerId As Integer = GDB_ID.NULL Public ReadOnly Property nRibsLayerId As Integer Get Return m_nRibsLayerId End Get End Property ' gruppo others Private m_nOthersLayerId As Integer = GDB_ID.NULL Public ReadOnly Property nOthersLayerId As Integer Get Return m_nOthersLayerId End Get End Property Private m_sName As String Public ReadOnly Property sName As String Get Return m_sName End Get End Property Public ReadOnly Property sImportedFileName As String Get Return If(Not String.IsNullOrWhiteSpace(m_sImportedFilePath), IO.Path.GetFileName(m_sImportedFilePath), "") End Get End Property Private m_sImportedFilePath As String Public Property sImportedFilePath As String Get Return m_sImportedFilePath End Get Set(value As String) m_sImportedFilePath = value End Set End Property Private m_LayerList As New ObservableCollection(Of Print3dLayerVM) Public ReadOnly Property LayerList As ObservableCollection(Of Print3dLayerVM) Get Return m_LayerList End Get End Property #Region "Default Machining Params" #End Region ' Default Machining Params #Region "CONSTRUCTOR" Sub New(nPartId As Integer, sImportedFilePath As String) m_nPartId = nPartId m_sName = IO.Path.GetFileName(sImportedFilePath) m_sImportedFilePath = sImportedFilePath End Sub Sub New(nPartId As Integer, nPrintSolidLayerId As Integer, nReferenceLayerId As Integer, nReferenceId As Integer, nMachStartLayerId As Integer, nRibsLayerId As Integer, nShellNumberLayerId As Integer, nAuxSolidsLayerId As Integer, nOthersLayerId As Integer, sImportedFilePath As String) m_nPartId = nPartId m_nPrintSolidLayerId = nPrintSolidLayerId m_nReferenceLayerId = nReferenceLayerId m_nReferenceId = nReferenceId m_nMachStartLayerId = nMachStartLayerId m_nAuxSolidsLayerId = nAuxSolidsLayerId m_nRibsLayerId = nRibsLayerId m_nShellNumberLayerId = nShellNumberLayerId m_nOthersLayerId = nOthersLayerId If Not EgtGetInfo(nPartId, PART_NAME, m_sName) Then m_sName = IO.Path.GetFileName(sImportedFilePath) End If m_sImportedFilePath = sImportedFilePath RefreshPrintLayers() End Sub #End Region ' CONSTRUCTOR #Region "METHODS" Friend Sub RefreshPrintLayers() m_LayerList.Clear() Dim nSliceId As Integer = EgtGetFirstInGroup(nPartId) While nSliceId <> GDB_ID.NULL Dim nSliceIndex As Integer = 0 If EgtGetInfo(nSliceId, "SliceNbr", nSliceIndex) Then m_LayerList.Add(New Print3dLayerVM(nSliceId, nSliceIndex)) End If nSliceId = EgtGetNextGroup(nSliceId) End While Map.refSliderManagerVM.RefreshSlider(1, m_LayerList.Count()) End Sub Friend Sub UpdateReferenceId(nNewReferenceId As Integer) m_nReferenceId = nNewReferenceId End Sub Friend Sub UpdateName(Name As String) m_sName = Name NotifyPropertyChanged(NameOf(sName)) End Sub #End Region ' METHODS End Class