Files
icarus/Icarus/ViewModel/Print3dPartVM.vb
2022-10-25 21:15:37 +02:00

165 lines
4.8 KiB
VB.net

Imports System.Collections.ObjectModel
Imports EgtUILib
Public Class Print3dPartVM
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
Private m_nPrintSolidId As Integer = GDB_ID.NULL
Public ReadOnly Property nPrintSolidId As Integer
Get
Return m_nPrintSolidId
End Get
End Property
' solido/superficie originale
Private m_nOriginalPartLayerId As Integer = GDB_ID.NULL
Public ReadOnly Property nOriginalPartLayerId As Integer
Get
Return m_nOriginalPartLayerId
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
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_sImportedFilePath = sImportedFilePath
End Sub
Sub New(nPartId As Integer, nPrintSolidLayerId As Integer, nPrintSolidId As Integer, nOriginalPartLayerId 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_nPrintSolidId = nPrintSolidId
m_nOriginalPartLayerId = nOriginalPartLayerId
m_nReferenceLayerId = nReferenceLayerId
m_nReferenceId = nReferenceId
m_nMachStartLayerId = nMachStartLayerId
m_nAuxSolidsLayerId = nAuxSolidsLayerId
m_nRibsLayerId = nRibsLayerId
m_nShellNumberLayerId = nShellNumberLayerId
m_nOthersLayerId = nOthersLayerId
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
#End Region ' METHODS
End Class