Files
icarus/Icarus/ViewModel/Print3dPartVM.vb
T
Emmanuele Sassi 0c2a5343ee - disabilitato tutto quando sta importando progetto
- gestiti frame del pezzo e di stampa con z = 0
2023-03-13 16:20:28 +01:00

191 lines
5.5 KiB
VB.net

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 pezzo solido/superficie da stampare
Private m_nPartReferenceLayerId As Integer = GDB_ID.NULL
Public ReadOnly Property nPartReferenceLayerId As Integer
Get
Return m_nPartReferenceLayerId
End Get
End Property
Private m_nPartReferenceId As Integer = GDB_ID.NULL
Public ReadOnly Property nPartReferenceId As Integer
Get
Dim nTemp As Integer = EgtGetFirstInGroup(nPartReferenceLayerId)
If nTemp <> GDB_ID.NULL Then
Return nTemp
Else
Return m_nReferenceId
End If
End Get
End Property
' riferimento di stampa del pezzo solido/superficie (sempre Z 0)
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, nPartReferenceLayerId 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_nPartReferenceLayerId = nPartReferenceLayerId
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