Files
icarus/Icarus/ManagePartPanel/ManagePartUtility.vb
T
Emmanuele Sassi 54c5d41c67 - correzione eliminazione superficie pezzo
- correzione contextMenu in ManagePart
- Tooltip su tutte le icone
- gestione disattivazione interfaccia durante import
2023-03-13 18:32:58 +01:00

1052 lines
46 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.Windows.Forms.VisualStyles.VisualStyleElement
Imports EgtUILib
Imports EgtWPFLib5
Public Class PartManager_GeomEntity
Inherits VMBase
' layer sotto cui e' questa entita'
Private m_OrigLayer As ManagePart_Layer
Friend ReadOnly Property OrigLayer As ManagePart_Layer
Get
Return m_OrigLayer
End Get
End Property
Private m_bIsSelected As Boolean
Public Property bIsSelected As Boolean
Get
Return m_bIsSelected
End Get
Set(value As Boolean)
m_bIsSelected = value
' seleziono in scena
EgtDeselectAll()
If Not IsNothing(value) Then
EgtSelectObj(m_nId)
End If
EgtDraw()
' segno come elemento selezionato in treeview
Map.refManagePartPanelVM.SetSelPartManager_GeomEntity(Me)
End Set
End Property
Private m_nId As Integer = GDB_ID.NULL
Public ReadOnly Property nId As Integer
Get
Return m_nId
End Get
End Property
Private m_sName As String
Public Property sName As String
Get
Return m_sName
End Get
Set(value As String)
m_sName = value
SetTextBoxVisibility(False)
NotifyPropertyChanged(NameOf(sName))
If Map.refManagePartPanelVM.Type = ManagePartPanelVM.ManagePartType.MODIFY Then
EgtSetInfo(m_nId, ENTITY_NAME, value)
End If
Map.refManagePartPanelVM.SetIsEnabled(True)
End Set
End Property
Public ReadOnly Property ghName As String
Get
Return m_nId
End Get
End Property
Private m_MenuList As New ObservableCollection(Of GeomEntity_MenuItem)
Public Property MenuList As ObservableCollection(Of GeomEntity_MenuItem)
Get
Return m_MenuList
End Get
Set(value As ObservableCollection(Of GeomEntity_MenuItem))
m_MenuList = value
End Set
End Property
Private m_UserShouldEditValueNow As Boolean = False
Public Property UserShouldEditValueNow As Boolean
Get
Return m_UserShouldEditValueNow
End Get
Set(value As Boolean)
m_UserShouldEditValueNow = value
End Set
End Property
Friend Sub SetUserShouldEditValueNow()
m_UserShouldEditValueNow = True
NotifyPropertyChanged(NameOf(UserShouldEditValueNow))
m_UserShouldEditValueNow = False
NotifyPropertyChanged(NameOf(UserShouldEditValueNow))
End Sub
Private m_TextBox_Visibility As Visibility = Visibility.Collapsed
Public ReadOnly Property TextBox_Visibility As Visibility
Get
Return m_TextBox_Visibility
End Get
End Property
Private m_TextBlock_Visibility As Visibility = Visibility.Visible
Public ReadOnly Property TextBlock_Visibility As Visibility
Get
Return m_TextBlock_Visibility
End Get
End Property
' Definizione comandi
Private m_cmdGeomEntityDoubleClick As ICommand
Sub New(OrigLayer As ManagePart_Layer, nId As Integer)
m_nId = nId
Dim sName As String = ""
EgtGetInfo(m_nId, ENTITY_NAME, sName)
m_sName = If(String.IsNullOrWhiteSpace(sName), m_nId, sName)
m_OrigLayer = OrigLayer
' aggiungo voci layer a contextmenu
UpdateContextMenu()
End Sub
Friend Sub UpdateContextMenu()
m_MenuList.Clear()
Select Case Map.refManagePartPanelVM.Type
Case ManagePartPanelVM.ManagePartType.IMPORT
Dim bIsSurface As Boolean = False
For Each ProjectPart In Map.refManagePartPanelVM.ManagerPartList
' verifico in quali layer puo' andare questo elemento
Dim EntityType As GDB_TY = EgtGetType(nId)
Dim nPrintSolidCount As Integer = 0
Dim ManageLayer As ManagePart_Layer = ProjectPart.LayerList.FirstOrDefault(Function(x) x.Type = ManagePart_Layer.LayerType.PRINT_SOLID)
If Not IsNothing(ManageLayer) Then
nPrintSolidCount = ManageLayer.EntityList.Count
End If
Select Case EntityType
Case GDB_TY.GEO_POINT, GDB_TY.CRV_COMPO, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_LINE
If Not IsNothing(OrigLayer) Then
' recupero i layer
If Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.MACH_START Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.MACH_START, ProjectPart))
If Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.OTHERS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
Else
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.MACH_START, ProjectPart))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
End If
Case GDB_TY.SRF_MESH
bIsSurface = True
If Not IsNothing(OrigLayer) Then
' verifico se volume chiuso
If nPrintSolidCount = 0 AndAlso (Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.PRINT_SOLID) Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.PRINT_SOLID, ProjectPart))
If Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.SHELL_NUMBER Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.SHELL_NUMBER, ProjectPart))
If Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.AUX_SOLIDS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.AUX_SOLIDS, ProjectPart))
If Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.RIBS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.RIBS, ProjectPart))
If Not ProjectPart Is OrigLayer.OrigPart OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.OTHERS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
Else
If nPrintSolidCount = 0 Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.PRINT_SOLID, ProjectPart))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.SHELL_NUMBER, ProjectPart))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.AUX_SOLIDS, ProjectPart))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.RIBS, ProjectPart))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
End If
End Select
Next
If bIsSurface Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.NEWPART))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.CHANGENAME))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.DELETE))
Case ManagePartPanelVM.ManagePartType.MODIFY
Dim bIsSurface As Boolean = False
For Each ProjectPart In Map.refTopPanelVM.PartList
' verifico in quali layer puo' andare questo elemento
Dim EntityType As GDB_TY = EgtGetType(nId)
Dim nPrintSolidCount As Integer = EgtGetGroupObjs(ProjectPart.nPrintSolidLayerId)
Select Case EntityType
Case GDB_TY.GEO_POINT, GDB_TY.CRV_COMPO, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_LINE
If Not IsNothing(OrigLayer) Then
' recupero i layer
If ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.MACH_START Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.MACH_START, ProjectPart))
If ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.OTHERS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
Else
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.MACH_START, ProjectPart))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
End If
Case GDB_TY.SRF_MESH
bIsSurface = True
If Not IsNothing(OrigLayer) Then
' verifico se volume chiuso
If nPrintSolidCount = 0 AndAlso (ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.PRINT_SOLID) Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.PRINT_SOLID, ProjectPart))
If ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.SHELL_NUMBER Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.SHELL_NUMBER, ProjectPart))
If ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.AUX_SOLIDS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.AUX_SOLIDS, ProjectPart))
If ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.RIBS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.RIBS, ProjectPart))
If ProjectPart.nPartId <> OrigLayer.OrigPart.PrintPart.nPartId OrElse OrigLayer.Type <> ManagePart_Layer.LayerType.OTHERS Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
Else
If nPrintSolidCount = 0 Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.PRINT_SOLID, ProjectPart))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.SHELL_NUMBER, ProjectPart))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.AUX_SOLIDS, ProjectPart))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.RIBS, ProjectPart))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.OTHERS, ProjectPart))
End If
End Select
Next
If bIsSurface Then m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.NEWPART))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.CHANGENAME))
m_MenuList.Add(New GeomEntity_MenuItem(Me, ManagePart_Layer.LayerType.DELETE))
End Select
End Sub
Friend Sub UpdateOrigLayer(NewLayer As ManagePart_Layer)
m_OrigLayer = NewLayer
End Sub
Friend Sub SetTextBoxVisibility(bValue As Boolean)
m_TextBox_Visibility = If(bValue, Visibility.Visible, Visibility.Collapsed)
m_TextBlock_Visibility = If(Not bValue, Visibility.Visible, Visibility.Collapsed)
NotifyPropertyChanged(NameOf(TextBox_Visibility))
NotifyPropertyChanged(NameOf(TextBlock_Visibility))
If bValue Then SetUserShouldEditValueNow()
End Sub
#Region "COMMANDS"
#Region "GeomEntityDoubleClick"
Public ReadOnly Property GeomEntityDoubleClick_Command As ICommand
Get
If m_cmdGeomEntityDoubleClick Is Nothing Then
m_cmdGeomEntityDoubleClick = New Command(AddressOf GeomEntityDoubleClick)
End If
Return m_cmdGeomEntityDoubleClick
End Get
End Property
Public Sub GeomEntityDoubleClick()
If Not IsNothing(Map.refManagePartPanelVM.SelManagerLayer) Then
Map.refManagePartPanelVM.ImportedEntityList.Remove(Me)
' aggiorno riferimenti layer e context menu
UpdateOrigLayer(Map.refManagePartPanelVM.SelManagerLayer)
UpdateContextMenu()
Map.refManagePartPanelVM.SelManagerLayer.EntityList.Add(Me)
End If
End Sub
#End Region ' ImportedEntity
#End Region ' COMMANDS
End Class
Public Class ManagePart_Part
Inherits VMBase
Private m_bIsSelected As Boolean
Public Property bIsSelected As Boolean
Get
Return m_bIsSelected
End Get
Set(value As Boolean)
m_bIsSelected = value
Map.refManagePartPanelVM.SetSelManagerPart(Me)
End Set
End Property
Private m_nId As Integer
Public ReadOnly Property nId As Integer
Get
Return m_nId
End Get
End Property
Private m_PrintPart As Print3dPartVM
Public ReadOnly Property PrintPart As Print3dPartVM
Get
Return m_PrintPart
End Get
End Property
Private m_sName As String
Public Property sName As String
Get
Return m_sName
End Get
Set(value As String)
m_sName = value
SetTextBoxVisibility(False)
NotifyPropertyChanged(NameOf(sName))
If Map.refManagePartPanelVM.Type = ManagePartPanelVM.ManagePartType.MODIFY Then
m_PrintPart.UpdateName(value)
EgtSetInfo(m_PrintPart.nPartId, PART_NAME, value)
End If
Map.refManagePartPanelVM.SetIsEnabled(True)
End Set
End Property
Private m_MenuList As New List(Of ManagerPart_MenuItem)
Public Property MenuList As List(Of ManagerPart_MenuItem)
Get
Return m_MenuList
End Get
Set(value As List(Of ManagerPart_MenuItem))
m_MenuList = value
End Set
End Property
Private m_LayerList As New ObservableCollection(Of ManagePart_Layer)
Public ReadOnly Property LayerList As ObservableCollection(Of ManagePart_Layer)
Get
Return m_LayerList
End Get
End Property
Private m_UserShouldEditValueNow As Boolean = False
Public Property UserShouldEditValueNow As Boolean
Get
Return m_UserShouldEditValueNow
End Get
Set(value As Boolean)
m_UserShouldEditValueNow = value
End Set
End Property
Friend Sub SetUserShouldEditValueNow()
m_UserShouldEditValueNow = True
NotifyPropertyChanged(NameOf(UserShouldEditValueNow))
m_UserShouldEditValueNow = False
NotifyPropertyChanged(NameOf(UserShouldEditValueNow))
End Sub
Private m_TextBox_Visibility As Visibility = Visibility.Collapsed
Public ReadOnly Property TextBox_Visibility As Visibility
Get
Return m_TextBox_Visibility
End Get
End Property
Private m_TextBlock_Visibility As Visibility = Visibility.Visible
Public ReadOnly Property TextBlock_Visibility As Visibility
Get
Return m_TextBlock_Visibility
End Get
End Property
Sub New(PrintPart As Print3dPartVM)
m_PrintPart = PrintPart
'NotifyPropertyChanged(NameOf(sName))
If Map.refManagePartPanelVM.ManagerPartList.Count = 0 Then
m_nId = 1
Else
m_nId = Map.refManagePartPanelVM.ManagerPartList.Max(Function(x) x.nId) + 1
End If
If Not IsNothing(PrintPart) Then
m_sName = m_PrintPart.sName
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.PRINT_SOLID, "Print", PrintPart))
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.MACH_START, "Layer Start", PrintPart))
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.RIBS, "Ribs", PrintPart))
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.SHELL_NUMBER, "Reduce Shell Number", PrintPart))
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.AUX_SOLIDS, "Filled Solids", PrintPart))
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.OTHERS, "Others", PrintPart))
Else
m_sName = "Part" & m_nId
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.PRINT_SOLID, "Print"))
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.MACH_START, "Layer Start"))
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.RIBS, "Ribs"))
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.SHELL_NUMBER, "Reduce Shell Number"))
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.AUX_SOLIDS, "Filled Solids"))
m_LayerList.Add(New ManagePart_Layer(Me, ManagePart_Layer.LayerType.OTHERS, "Others"))
End If
' creo context menu per cambio nome ed eliminazione
m_MenuList.Add(New ManagerPart_MenuItem(Me, ManagerPart_MenuItem.PartMenuCmd.CHANGENAME))
m_MenuList.Add(New ManagerPart_MenuItem(Me, ManagerPart_MenuItem.PartMenuCmd.DELETE))
End Sub
Friend Sub SetTextBoxVisibility(bValue As Boolean)
m_TextBox_Visibility = If(bValue, Visibility.Visible, Visibility.Collapsed)
m_TextBlock_Visibility = If(Not bValue, Visibility.Visible, Visibility.Collapsed)
NotifyPropertyChanged(NameOf(TextBox_Visibility))
NotifyPropertyChanged(NameOf(TextBlock_Visibility))
If bValue Then SetUserShouldEditValueNow()
End Sub
End Class
Public Class ManagePart_Layer
Inherits VMBase
Public Enum LayerType As Integer
PRINT_SOLID = 1
'REFERENCE = 2
MACH_START = 3
RIBS = 4
SHELL_NUMBER = 5
AUX_SOLIDS = 6
OTHERS = 7
CHANGENAME = 15
DELETE = 16
NEWPART = 17
End Enum
' enita' di origine
Private m_OrigPart As ManagePart_Part
Public ReadOnly Property OrigPart As ManagePart_Part
Get
Return m_OrigPart
End Get
End Property
Private m_nLayerId As Integer
Friend ReadOnly Property nLayerId As Integer
Get
Return m_nLayerId
End Get
End Property
Private m_bIsSelected As Boolean
Public Property bIsSelected As Boolean
Get
Return m_bIsSelected
End Get
Set(value As Boolean)
m_bIsSelected = value
Map.refManagePartPanelVM.SetSelManagerLayer(Me)
End Set
End Property
Private m_Type As LayerType
Public Property Type As LayerType
Get
Return m_Type
End Get
Set(value As LayerType)
m_Type = value
End Set
End Property
Private m_sName As String
Public Property sName As String
Get
Return m_sName
End Get
Set(value As String)
m_sName = value
End Set
End Property
Private m_MenuList As New List(Of ManagerLayer_MenuItem)
Public Property MenuList As List(Of ManagerLayer_MenuItem)
Get
Return m_MenuList
End Get
Set(value As List(Of ManagerLayer_MenuItem))
m_MenuList = value
End Set
End Property
Private m_EntityList As New ObservableCollection(Of PartManager_GeomEntity)
Public Property EntityList As ObservableCollection(Of PartManager_GeomEntity)
Get
Return m_EntityList
End Get
Set(value As ObservableCollection(Of PartManager_GeomEntity))
m_EntityList = value
End Set
End Property
Sub New(OrigPart As ManagePart_Part, Type As LayerType, sName As String)
m_OrigPart = OrigPart
m_Type = Type
m_sName = sName
If Map.refManagePartPanelVM.Type = ManagePartPanelVM.ManagePartType.MODIFY Then
' creo context menu per importazione solido da stampare
m_MenuList.Add(New ManagerLayer_MenuItem(Me, ManagerLayer_MenuItem.LayerMenuCmd.IMPORTPRINT))
End If
End Sub
Sub New(OrigPart As ManagePart_Part, Type As LayerType, sName As String, PrintPart As Print3dPartVM)
m_OrigPart = OrigPart
m_Type = Type
m_sName = sName
Select Case Type
Case LayerType.PRINT_SOLID
m_nLayerId = PrintPart.nPrintSolidLayerId
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
If nEntityId <> GDB_ID.NULL Then
m_EntityList.Add(New PartManager_GeomEntity(Me, nEntityId))
End If
' se sono in modifica
If Map.refManagePartPanelVM.Type = ManagePartPanelVM.ManagePartType.MODIFY Then
' creo context menu per importazione solido da stampare
m_MenuList.Add(New ManagerLayer_MenuItem(Me, ManagerLayer_MenuItem.LayerMenuCmd.IMPORTPRINT))
End If
Case LayerType.MACH_START
m_nLayerId = PrintPart.nMachStartLayerId
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
While nEntityId <> GDB_ID.NULL
m_EntityList.Add(New PartManager_GeomEntity(Me, nEntityId))
nEntityId = EgtGetNext(nEntityId)
End While
Case LayerType.RIBS
m_nLayerId = PrintPart.nRibsLayerId
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
While nEntityId <> GDB_ID.NULL
Dim RibType As Integer = RibEntity.RibTypes.FROMDRAW
EgtGetInfo(nEntityId, KEY_RIB_TYPE, RibType)
If RibType = RibEntity.RibTypes.FROMIMPORT Then
m_EntityList.Add(New PartManager_GeomEntity(Me, nEntityId))
End If
nEntityId = EgtGetNext(nEntityId)
End While
Case LayerType.SHELL_NUMBER
m_nLayerId = PrintPart.nShellNumberLayerId
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
While nEntityId <> GDB_ID.NULL
Dim ShellType As Integer = ShellNumberEntity.ShellNumberTypes.FROMDRAW
EgtGetInfo(nEntityId, KEY_SHELLNBR_TYPE, ShellType)
If ShellType = ShellNumberEntity.ShellNumberTypes.FROMIMPORT Then
m_EntityList.Add(New PartManager_GeomEntity(Me, nEntityId))
End If
nEntityId = EgtGetNext(nEntityId)
End While
Case LayerType.AUX_SOLIDS
m_nLayerId = PrintPart.nAuxSolidsLayerId
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
While nEntityId <> GDB_ID.NULL
Dim FIlledSolidType As Integer = FilledSolidEntity.FilledSolidTypes.FROMDRAW
EgtGetInfo(nEntityId, KEY_AUXSOLID_TYPE, FIlledSolidType)
If FIlledSolidType = FilledSolidEntity.FilledSolidTypes.FROMIMPORT Then
m_EntityList.Add(New PartManager_GeomEntity(Me, nEntityId))
End If
nEntityId = EgtGetNext(nEntityId)
End While
Case LayerType.OTHERS
m_nLayerId = PrintPart.nOthersLayerId
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
While nEntityId <> GDB_ID.NULL
m_EntityList.Add(New PartManager_GeomEntity(Me, nEntityId))
nEntityId = EgtGetNext(nEntityId)
End While
End Select
End Sub
End Class
Public Class GeomEntity_MenuItem
Inherits VMBase
' enita' di origine
Private m_OrigEntity As PartManager_GeomEntity
' pezzo in cui spostare
Private m_GeomPart As Print3dPartVM
Private m_Part As ManagePart_Part
' tipo del layer indicato
Private m_Type As ManagePart_Layer.LayerType
Public Property Type As ManagePart_Layer.LayerType
Get
Return m_Type
End Get
Set(value As ManagePart_Layer.LayerType)
m_Type = value
End Set
End Property
Public ReadOnly Property sMsg As String
Get
Dim sType As String = ""
Select Case m_Type
Case ManagePart_Layer.LayerType.PRINT_SOLID
sType = "Print"
Case ManagePart_Layer.LayerType.MACH_START
sType = "Layer Start"
Case ManagePart_Layer.LayerType.RIBS
sType = "Ribs"
Case ManagePart_Layer.LayerType.SHELL_NUMBER
sType = "Reduce shell number"
Case ManagePart_Layer.LayerType.AUX_SOLIDS
sType = "Filled Solids"
Case ManagePart_Layer.LayerType.OTHERS
sType = "Others"
Case ManagePart_Layer.LayerType.NEWPART
Return "Create New Part"
Case ManagePart_Layer.LayerType.CHANGENAME
Return "Change Name"
Case ManagePart_Layer.LayerType.DELETE
Return "Delete Entity"
End Select
Dim PartName As String = ""
If Map.refManagePartPanelVM.ManagerPartList.Count > 1 Then
Dim NewPart As ManagePart_Part = Nothing
Select Case Map.refManagePartPanelVM.Type
Case ManagePartPanelVM.ManagePartType.IMPORT
NewPart = Map.refManagePartPanelVM.ManagerPartList.FirstOrDefault(Function(x) x Is m_Part)
Case ManagePartPanelVM.ManagePartType.MODIFY
NewPart = Map.refManagePartPanelVM.ManagerPartList.FirstOrDefault(Function(x) x.PrintPart.nPartId = m_GeomPart.nPartId)
End Select
If Not IsNothing(NewPart) Then
PartName = " (" & NewPart.sName & ")"
End If
End If
Return "Move to " & sType & PartName
End Get
End Property
' Definizione comando
Private m_cmdCommand As ICommand
Sub New(OrigEntity As PartManager_GeomEntity, Type As ManagePart_Layer.LayerType, GeomPart As Print3dPartVM)
m_OrigEntity = OrigEntity
m_Type = Type
m_GeomPart = GeomPart
End Sub
Sub New(OrigEntity As PartManager_GeomEntity, Type As ManagePart_Layer.LayerType, Part As ManagePart_Part)
m_OrigEntity = OrigEntity
m_Type = Type
m_Part = Part
End Sub
Sub New(OrigEntity As PartManager_GeomEntity, Type As ManagePart_Layer.LayerType)
m_OrigEntity = OrigEntity
m_Type = Type
End Sub
#Region "Command"
Public ReadOnly Property MenuItem_Command As ICommand
Get
If m_cmdCommand Is Nothing Then
m_cmdCommand = New Command(AddressOf Command)
End If
Return m_cmdCommand
End Get
End Property
Public Sub Command()
If m_Type = ManagePart_Layer.LayerType.CHANGENAME Then
m_OrigEntity.SetTextBoxVisibility(True)
Map.refManagePartPanelVM.SetIsEnabled(True)
Return
ElseIf m_Type = ManagePart_Layer.LayerType.DELETE Then
If MessageBox.Show("Are you sure you want to delete this entity?", "Delete confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
EgtErase(m_OrigEntity.nId)
' se l'entita' e' gia' in lista pezzi
If Not IsNothing(m_OrigEntity.OrigLayer) Then
' elimino dalla lista pezzi
m_OrigEntity.OrigLayer.EntityList.Remove(m_OrigEntity)
Else
' altrimenti lo elimino dalla lista entita' importate
Map.refManagePartPanelVM.ImportedEntityList.Remove(m_OrigEntity)
End If
' se e' presente elimino flag di spostamento a 45 gradi
Dim nPartId As Integer = EgtGetParent(EgtGetParent(m_OrigEntity.nId))
EgtRemoveInfo(nPartId, KEY_MOVEDPART)
EgtDraw()
' aggiorno riferimenti nel context menu item
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
' Imposto flag di ricalcolo slice
If Map.refManagePartPanelVM.Type = ManagePartPanelVM.ManagePartType.MODIFY Then
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
End If
End If
Return
ElseIf m_Type = ManagePart_Layer.LayerType.NEWPART Then
Select Case Map.refManagePartPanelVM.Type
Case ManagePartPanelVM.ManagePartType.IMPORT
Dim NewPart As ManagePart_Part = New ManagePart_Part(Nothing)
Map.refManagePartPanelVM.ManagerPartList.Add(NewPart)
' se l'entita' e' gia' in lista pezzi
If Not IsNothing(m_OrigEntity.OrigLayer) Then
' elimino dalla lista pezzi
m_OrigEntity.OrigLayer.EntityList.Remove(m_OrigEntity)
Else
' altrimenti lo elimino dalla lista entita' importate
Map.refManagePartPanelVM.ImportedEntityList.Remove(m_OrigEntity)
End If
If Not IsNothing(NewPart) Then
Dim NewLayer As ManagePart_Layer = NewPart.LayerList.FirstOrDefault(Function(x) x.Type = ManagePart_Layer.LayerType.PRINT_SOLID)
If Not IsNothing(NewLayer) Then
NewLayer.EntityList.Add(m_OrigEntity)
' aggiorno riferimenti nell'entita'
m_OrigEntity.UpdateOrigLayer(NewLayer)
' aggiorno colore
EgtSetColor(m_OrigEntity.nId, GetColor(LayerType.PRINTPART))
End If
End If
' aggiorno i contextmenu di tutti gli entity
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
Case ManagePartPanelVM.ManagePartType.MODIFY
' recupero path da vecchio pezzo
Dim sFilePath As String = ""
EgtGetInfo(m_OrigEntity.OrigLayer.OrigPart.PrintPart.nPartId, FILE_PATH, sFilePath)
'Dim frImportedPart As New Frame3d
'EgtGetGroupGlobFrame(m_nImportedPartId, frImportedPart)
' creo pezzo
Dim nPartId As Integer = EgtCreateGroup(GDB_ID.ROOT) ', frImportedPart)
EgtSetName(nPartId, PART)
Dim nFrameId As Integer = GDB_ID.NULL
Dim b3PrintSolid As New BBox3d
' creo layer solido di stampa
Dim nPrintPartLayerId As Integer = EgtCreateGroup(nPartId)
EgtSetName(nPrintPartLayerId, PRINT_SOLID)
EgtSetColor(nPrintPartLayerId, GeomEntityColors.c3Print)
EgtRelocateGlob(m_OrigEntity.nId, nPrintPartLayerId, GDB_POS.LAST_SON)
' calcolo box superficie per creazione riferimento
EgtGetBBoxGlob(m_OrigEntity.nId, GDB_BB.STANDARD, b3PrintSolid)
' creo layer mach start
Dim nMachStartLayerId As Integer = EgtCreateGroup(nPartId)
EgtSetName(nMachStartLayerId, LAY_MACH_START)
EgtSetColor(nMachStartLayerId, GeomEntityColors.c3MachStart)
Dim nMachStartId As Integer = GDB_ID.NULL
' creo punto di partenza
Dim ptStart As Point3d = b3PrintSolid.Center() - 0.6 * b3PrintSolid.DimY() * Vector3d.Y_AX() - 0.5 * b3PrintSolid.DimZ() * Vector3d.Z_AX()
nMachStartId = EgtCreateGeoPoint(nMachStartLayerId, ptStart, GDB_RT.GLOB)
EgtSetName(nMachStartId, START_GEOM)
' creo layer ribs
Dim nRibsLayerId As Integer = EgtCreateGroup(nPartId)
EgtSetName(nRibsLayerId, LAY_RIBS)
EgtSetColor(nRibsLayerId, GeomEntityColors.c3Rib)
' creo layer shell number
Dim nShellNumberLayerId As Integer = EgtCreateGroup(nPartId)
EgtSetName(nShellNumberLayerId, LAY_SHELL_NBR)
EgtSetColor(nShellNumberLayerId, GeomEntityColors.c3ShellNumber)
' creo layer aux
Dim nAuxSolidsLayerId As Integer = EgtCreateGroup(nPartId)
EgtSetName(nAuxSolidsLayerId, LAY_AUX_SOLIDS)
EgtSetColor(nAuxSolidsLayerId, GeomEntityColors.c3AuxSolids)
' creo layer others
Dim nOthersLayerId As Integer = EgtCreateGroup(nPartId)
EgtSetName(nOthersLayerId, LAY_OTHERS)
EgtSetColor(nOthersLayerId, GeomEntityColors.c3Others)
' aggiungo riferimento
Dim nPartReferenceLayerId As Integer = EgtCreateGroup(nPartId)
EgtSetName(nPartReferenceLayerId, LAY_PARTREFERENCE)
Dim nReferenceLayerId As Integer = EgtCreateGroup(nPartId)
EgtSetName(nReferenceLayerId, LAY_REFERENCE)
EgtSetInfo(nReferenceLayerId, KEY_REFERENCE, ReferenceBtn.References.BL)
' appoggio il pezzo sulla tavola
EgtMove(nPartId, New Vector3d(0, 0, -b3PrintSolid.Min.z))
' lo aggiungo a lista pezzi
EgtSetInfo(nPartId, FILE_PATH, sFilePath)
EgtSetInfo(nPartId, "PartOnTable", 1)
Dim NewPart As New Print3dPartVM(nPartId, nPrintPartLayerId, nPartReferenceLayerId, nReferenceLayerId, nFrameId, nMachStartLayerId, nRibsLayerId, nShellNumberLayerId, nAuxSolidsLayerId, nOthersLayerId, sFilePath)
Map.refTopPanelVM.PartList.Add(NewPart)
' aggiorno riferimento
Map.refReferencePanelVM.UpdateFramePosition(NewPart)
Dim ManagePart_Part As ManagePart_Part = New ManagePart_Part(NewPart)
' elimino da posizione originale
m_OrigEntity.OrigLayer.EntityList.Remove(m_OrigEntity)
EgtSetInfo(nPartId, PART_NAME, ManagePart_Part.sName)
' lo aggiungo a lista
Map.refManagePartPanelVM.ManagerPartList.Add(ManagePart_Part)
' aggiorno riferimenti nel context menu item
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
' Imposto flag di ricalcolo slice
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
End Select
' aggiorno visibilita' da check di categoria
Dim PrintViewlayer As ViewLayer = Map.refViewLayerManagerVM.LayerList.FirstOrDefault(Function(x) x.Type = ViewLayer.ViewLayerType.PRINT_SOLID)
EgtSetStatus(m_OrigEntity.nId, If(IsNothing(PrintViewlayer.bIsVisible) OrElse PrintViewlayer.bIsVisible, GDB_ST.ON_, GDB_ST.OFF))
EgtDraw()
Return
End If
Select Case Map.refManagePartPanelVM.Type
Case ManagePartPanelVM.ManagePartType.IMPORT
' se l'entita' e' gia' in lista pezzi
If Not IsNothing(m_OrigEntity.OrigLayer) Then
' elimino dalla lista pezzi
m_OrigEntity.OrigLayer.EntityList.Remove(m_OrigEntity)
Else
' altrimenti lo elimino dalla lista entita' importate
Map.refManagePartPanelVM.ImportedEntityList.Remove(m_OrigEntity)
End If
Dim NewPart As ManagePart_Part = Map.refManagePartPanelVM.ManagerPartList.FirstOrDefault(Function(x) x Is m_Part)
If Not IsNothing(NewPart) Then
Dim NewLayer As ManagePart_Layer = NewPart.LayerList.FirstOrDefault(Function(x) x.Type = m_Type)
If Not IsNothing(NewLayer) Then
NewLayer.EntityList.Add(m_OrigEntity)
' aggiorno riferimenti nell'entita'
m_OrigEntity.UpdateOrigLayer(NewLayer)
' aggiorno colore
EgtSetColor(m_OrigEntity.nId, GetColor(m_Type))
' aggiorno visibilita' da check di categoria
Dim PrintViewlayer As ViewLayer = Map.refViewLayerManagerVM.LayerList.FirstOrDefault(Function(x) x.Type = m_Type)
EgtSetStatus(m_OrigEntity.nId, If(IsNothing(PrintViewlayer.bIsVisible) OrElse PrintViewlayer.bIsVisible, GDB_ST.ON_, GDB_ST.OFF))
EgtDraw()
End If
End If
' aggiorno riferimenti nel context menu item
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
Case ManagePartPanelVM.ManagePartType.MODIFY
Dim bIsMovedPartOrRib As Boolean = False
' recupero layer da pezzo
Dim nLayerId As Integer = GDB_ID.NULL
Select Case m_Type
Case ManagePart_Layer.LayerType.PRINT_SOLID
nLayerId = m_GeomPart.nPrintSolidLayerId
Case ManagePart_Layer.LayerType.MACH_START
nLayerId = m_GeomPart.nMachStartLayerId
Case ManagePart_Layer.LayerType.RIBS
nLayerId = m_GeomPart.nRibsLayerId
Case ManagePart_Layer.LayerType.SHELL_NUMBER
nLayerId = m_GeomPart.nShellNumberLayerId
Case ManagePart_Layer.LayerType.AUX_SOLIDS
nLayerId = m_GeomPart.nAuxSolidsLayerId
Case ManagePart_Layer.LayerType.OTHERS
nLayerId = m_GeomPart.nOthersLayerId
End Select
' sposto entita'
If EgtRelocateGlob(m_OrigEntity.nId, nLayerId) Then
' elimino info vecchio layer
Select Case m_OrigEntity.OrigLayer.Type
Case ManagePart_Layer.LayerType.PRINT_SOLID
'EgtResetMark(m_OrigEntity.nId)
' se e' presente flag di spostamento a 45 gradi
Dim nPartId As Integer = EgtGetParent(EgtGetParent(m_OrigEntity.nId))
Dim vtMoved As Vector3d
If EgtGetInfo(nPartId, KEY_MOVEDPART, vtMoved) Then
' lo sposto e rimuovo info
EgtMove(m_OrigEntity.nId, -vtMoved, GDB_RT.GLOB)
EgtRemoveInfo(nPartId, KEY_MOVEDPART)
End If
bIsMovedPartOrRib = True
Case ManagePart_Layer.LayerType.MACH_START
Case ManagePart_Layer.LayerType.RIBS
EgtRemoveInfo(m_OrigEntity.nId, KEY_RIB_TYPE)
EgtRemoveInfo(m_OrigEntity.nId, RIB_ID)
bIsMovedPartOrRib = True
Case ManagePart_Layer.LayerType.SHELL_NUMBER
EgtRemoveInfo(m_OrigEntity.nId, KEY_SHELLNBR_TYPE)
Case ManagePart_Layer.LayerType.AUX_SOLIDS
EgtRemoveInfo(m_OrigEntity.nId, KEY_AUXSOLID_TYPE)
Case ManagePart_Layer.LayerType.OTHERS
End Select
' sposto in lista
m_OrigEntity.OrigLayer.EntityList.Remove(m_OrigEntity)
Dim bUpdateAllContextMenu As Boolean = False
Dim NewPart As ManagePart_Part = Map.refManagePartPanelVM.ManagerPartList.FirstOrDefault(Function(x) x.PrintPart.nPartId = m_GeomPart.nPartId)
If Not IsNothing(NewPart) Then
Dim NewLayer As ManagePart_Layer = NewPart.LayerList.FirstOrDefault(Function(x) x.Type = m_Type)
If Not IsNothing(NewLayer) Then
NewLayer.EntityList.Add(m_OrigEntity)
bUpdateAllContextMenu = (m_OrigEntity.OrigLayer.Type = ManagePart_Layer.LayerType.PRINT_SOLID) OrElse (NewLayer.Type = ManagePart_Layer.LayerType.PRINT_SOLID)
' aggiorno riferimenti nell'entita'
m_OrigEntity.UpdateOrigLayer(NewLayer)
End If
End If
' aggiungo info nuovo layer
Select Case m_Type
Case ManagePart_Layer.LayerType.PRINT_SOLID
EgtSetName(m_OrigEntity.nId, PRINT_SOLID)
' rimuovo eventuale nota spostamento per 45 gradi
EgtRemoveInfo(m_OrigEntity.OrigLayer.OrigPart.nId, KEY_MOVEDPART)
bIsMovedPartOrRib = True
Case ManagePart_Layer.LayerType.MACH_START
EgtSetName(m_OrigEntity.nId, LAY_MACH_START)
Case ManagePart_Layer.LayerType.RIBS
EgtSetName(m_OrigEntity.nId, LAY_RIBS)
EgtSetInfo(m_OrigEntity.nId, KEY_RIB_TYPE, RibEntity.RibTypes.FROMIMPORT)
EgtSetInfo(m_OrigEntity.nId, RIB_ID, RibPanelVM.GetNextRibIndex())
bIsMovedPartOrRib = True
Case ManagePart_Layer.LayerType.SHELL_NUMBER
EgtSetName(m_OrigEntity.nId, LAY_SHELL_NBR)
EgtSetInfo(m_OrigEntity.nId, KEY_SHELLNBR_TYPE, ShellNumberEntity.ShellNumberTypes.FROMIMPORT)
Case ManagePart_Layer.LayerType.AUX_SOLIDS
EgtSetName(m_OrigEntity.nId, LAY_AUX_SOLIDS)
EgtSetInfo(m_OrigEntity.nId, KEY_AUXSOLID_TYPE, RibEntity.RibTypes.FROMIMPORT)
Case ManagePart_Layer.LayerType.OTHERS
EgtSetName(m_OrigEntity.nId, LAY_OTHERS)
End Select
' resetto colore entita'
EgtResetColor(m_OrigEntity.nId)
' se spostato un Rib, aggiorno posizione riferimento e pezzo
If bIsMovedPartOrRib Then
Map.refReferencePanelVM.UpdateFramePosition(NewPart.PrintPart)
Map.refDispositionPanelVM.UpdateZPos()
Map.refSliceManagerVM.UpdateDimensions()
End If
EgtDraw()
' aggiorno riferimenti nel context menu item
If bUpdateAllContextMenu Then
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
Else
m_OrigEntity.UpdateContextMenu()
End If
End If
' Imposto flag di ricalcolo slice
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
End Select
End Sub
#End Region ' Command
End Class
Public Class ManagerPart_MenuItem
Inherits VMBase
Public Enum PartMenuCmd
CHANGENAME = 1
DELETE = 2
End Enum
Private m_OrigPart As ManagePart_Part
' tipo del comando
Private m_Type As PartMenuCmd
Public Property Type As PartMenuCmd
Get
Return m_Type
End Get
Set(value As PartMenuCmd)
m_Type = value
End Set
End Property
Public ReadOnly Property sMsg As String
Get
Select Case m_Type
Case PartMenuCmd.CHANGENAME
Return "Change Name"
Case Else ' PartMenuCmd.DELETE
Return "Delete Part"
End Select
End Get
End Property
' Definizione comando
Private m_cmdCommand As ICommand
Sub New(OrigPart As ManagePart_Part, Type As PartMenuCmd)
m_OrigPart = OrigPart
m_Type = Type
End Sub
#Region "Command"
Public ReadOnly Property MenuItem_Command As ICommand
Get
If m_cmdCommand Is Nothing Then
m_cmdCommand = New Command(AddressOf Command)
End If
Return m_cmdCommand
End Get
End Property
Public Sub Command()
Select Case m_Type
Case PartMenuCmd.CHANGENAME
m_OrigPart.SetTextBoxVisibility(True)
Map.refManagePartPanelVM.SetIsEnabled(True)
Case PartMenuCmd.DELETE
If Map.refManagePartPanelVM.ManagerPartList.Count <= 1 Then Return
Select Case Map.refManagePartPanelVM.Type
Case ManagePartPanelVM.ManagePartType.IMPORT
For Each Layer In m_OrigPart.LayerList
For EntityIndex = Layer.EntityList.Count - 1 To 0 Step -1
Dim Entity As PartManager_GeomEntity = Layer.EntityList(EntityIndex)
' le rimuovo da lista entita' pezzo
Layer.EntityList.Remove(Entity)
' la rimetto in lista importati
Map.refManagePartPanelVM.ImportedEntityList.Add(Entity)
Next
Next
' elimino pezzo da lista
Map.refManagePartPanelVM.ManagerPartList.Remove(m_OrigPart)
Case ManagePartPanelVM.ManagePartType.MODIFY
' elimino pezzo geometrico
EgtErase(m_OrigPart.PrintPart.nPartId)
' elimino pezzo da lista
Map.refManagePartPanelVM.ManagerPartList.Remove(m_OrigPart)
Dim bSelFirstPart As Boolean = m_OrigPart.PrintPart.nPartId = Map.refTopPanelVM.SelPart.nPartId
' elimino pezzo da lista Top
Map.refTopPanelVM.PartList.Remove(m_OrigPart.PrintPart)
EgtDraw()
If bSelFirstPart Then Map.refTopPanelVM.SelFirstPart()
End Select
' aggiorno riferimenti nel context menu item
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
' Imposto flag di ricalcolo slice
If Not IsNothing(Map.refTopPanelVM.SelPart) Then ' in prima importazione non c'e' alcun pezzo selezionato
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
End If
End Select
End Sub
#End Region ' Command
End Class
Public Class ManagerLayer_MenuItem
Inherits VMBase
Public Enum LayerMenuCmd
IMPORTPRINT = 1
End Enum
Private m_OrigLayer As ManagePart_Layer
Friend ReadOnly Property OrigLayer As ManagePart_Layer
Get
Return m_OrigLayer
End Get
End Property
' tipo del comando
Private m_Type As LayerMenuCmd
Public Property Type As LayerMenuCmd
Get
Return m_Type
End Get
Set(value As LayerMenuCmd)
m_Type = value
End Set
End Property
Public ReadOnly Property sMsg As String
Get
Select Case m_Type
Case Else ' PartMenuCmd.IMPORTPRINT
Return "Import Print"
End Select
End Get
End Property
' Definizione comando
Private m_cmdCommand As ICommand
Sub New(OrigLayer As ManagePart_Layer, Type As LayerMenuCmd)
m_OrigLayer = OrigLayer
m_Type = Type
End Sub
#Region "Command"
Public ReadOnly Property MenuItem_Command As ICommand
Get
If m_cmdCommand Is Nothing Then
m_cmdCommand = New Command(AddressOf Command)
End If
Return m_cmdCommand
End Get
End Property
Public Sub Command()
If Map.refSceneHostVM.MainController.GetStep <> 0 Then Return
Select Case m_Type
Case Else ' PartMenuCmd.IMPORTPRINT
Dim bDeleteOldPrint As Boolean = False
If m_OrigLayer.EntityList.Count > 0 Then
If MessageBox.Show("Importing a new print solid the current one will be deleted. Are you sure you want to proced?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning) <> MessageBoxResult.Yes Then
Return
Else
bDeleteOldPrint = True
End If
End If
Map.refSceneHostVM.InsertPrint(Me)
End Select
End Sub
#End Region ' Command
End Class