54c5d41c67
- correzione contextMenu in ManagePart - Tooltip su tutte le icone - gestione disattivazione interfaccia durante import
186 lines
6.8 KiB
VB.net
186 lines
6.8 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.IO
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class MyInstrumentPanelVM
|
|
Inherits InstrumentPanelVM
|
|
|
|
Private m_PrevSelObjs As New List(Of Integer)
|
|
Friend ReadOnly Property PrevSelObjs As List(Of Integer)
|
|
Get
|
|
Return m_PrevSelObjs
|
|
End Get
|
|
End Property
|
|
|
|
Private m_PrevPage As Pages
|
|
Friend ReadOnly Property PrevPage As Pages
|
|
Get
|
|
Return m_PrevPage
|
|
End Get
|
|
End Property
|
|
|
|
Private m_InstrumentPanel_IsEnabled As Boolean = True
|
|
Public Property InstrumentPanel_IsEnabled As Boolean
|
|
Get
|
|
Return m_InstrumentPanel_IsEnabled
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_InstrumentPanel_IsEnabled = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_bEdgeAnalysis_IsChecked As Boolean
|
|
Public Property bEdgeAnalysis_IsChecked As Boolean
|
|
Get
|
|
Return m_bEdgeAnalysis_IsChecked
|
|
End Get
|
|
Set(value As Boolean)
|
|
' verifico che non sia in corso un altro comando
|
|
If Map.refSceneHostVM.MainController.GetStep <> 0 Then Return
|
|
m_bEdgeAnalysis_IsChecked = value
|
|
If value Then
|
|
' salvo pagina precedente ed imposto pagina nulla
|
|
m_PrevPage = Map.refTopPanelVM.SelPage
|
|
Map.refTopPanelVM.SelPage = Pages.NULL
|
|
' 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)
|
|
' Disabilito segnalazione modificato
|
|
Dim DisableMgr As New DisableModifiedMgr
|
|
' salvo selezione precedente e deseleziono altri oggetti
|
|
Dim nSelObjId As Integer = EgtGetFirstSelectedObj()
|
|
While nSelObjId <> GDB_ID.NULL
|
|
m_PrevSelObjs.Add(nSelObjId)
|
|
nSelObjId = EgtGetNextSelectedObj()
|
|
End While
|
|
' eseguo comando su tutti i pezzi
|
|
Dim sResult As String = "Chunk Number for every part:"
|
|
For Each CurrPart In Map.refTopPanelVM.PartList
|
|
EgtDeselectAll()
|
|
Dim nPrintSolidId As Integer = EgtGetFirstInGroup(CurrPart.nPrintSolidLayerId)
|
|
Dim nChunkLayerId As Integer = EgtGetFirstNameInGroup(CurrPart.nPartId, LAY_CHUNKS)
|
|
If nChunkLayerId = GDB_ID.NULL Then
|
|
nChunkLayerId = EgtCreateGroup(CurrPart.nPartId)
|
|
EgtSetName(nChunkLayerId, LAY_CHUNKS)
|
|
End If
|
|
EgtSelectObj(nPrintSolidId)
|
|
EgtSetCurrPartLayer(CurrPart.nPartId, nChunkLayerId)
|
|
' estraggo bordi superficie
|
|
Dim nCount As Integer = 0
|
|
If EgtGetType(nPrintSolidId) = GDB_TY.SRF_FRGN Then
|
|
For nChunk As Integer = 0 To EgtSurfFrChunkCount(nPrintSolidId) - 1
|
|
EgtExtractSurfFrChunkLoops(nPrintSolidId, nChunk, nChunkLayerId, nCount)
|
|
Next
|
|
ElseIf EgtGetType(nPrintSolidId) = GDB_TY.SRF_MESH Then
|
|
EgtExtractSurfTmLoops(nPrintSolidId, nChunkLayerId, nCount)
|
|
ElseIf EgtGetType(nPrintSolidId) = GDB_TY.SRF_BEZ Then
|
|
EgtExtractSurfBezierLoops(nPrintSolidId, nChunkLayerId, nCount)
|
|
End If
|
|
sResult &= Environment.NewLine & CurrPart.sName & " = " & nCount
|
|
Next
|
|
EgtDeselectAll()
|
|
' li seleziono per evidenziarli
|
|
For Each CurrPart In Map.refTopPanelVM.PartList
|
|
Dim nChunkLayerId As Integer = EgtGetFirstNameInGroup(CurrPart.nPartId, LAY_CHUNKS)
|
|
Dim nChunkId As Integer = EgtGetFirstInGroup(nChunkLayerId)
|
|
While nChunkId <> GDB_ID.NULL
|
|
EgtSelectObj(nChunkId)
|
|
nChunkId = EgtGetNext(nChunkId)
|
|
End While
|
|
Next
|
|
EgtDraw()
|
|
' Ripristino stato segnalazione modifica
|
|
DisableMgr.ReEnable()
|
|
MessageBox.Show(sResult)
|
|
Else
|
|
' Disabilito segnalazione modificato
|
|
Dim DisableMgr As New DisableModifiedMgr
|
|
' cancello tutti i gruppi con i chunk
|
|
For Each CurrPart In Map.refTopPanelVM.PartList
|
|
Dim nChunkLayerId As Integer = EgtGetFirstNameInGroup(CurrPart.nPartId, LAY_CHUNKS)
|
|
If nChunkLayerId <> GDB_ID.NULL Then EgtErase(nChunkLayerId)
|
|
Next
|
|
' ripristino selezioni precedenti
|
|
For Each Id In m_PrevSelObjs
|
|
EgtSelectObj(Id)
|
|
Next
|
|
' Ripristino stato segnalazione modifica
|
|
DisableMgr.ReEnable()
|
|
EgtDraw()
|
|
' ripristino pagina precedente
|
|
Map.refTopPanelVM.SelPage = m_PrevPage
|
|
' 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)
|
|
End If
|
|
End Set
|
|
End Property
|
|
|
|
Private m_bEdgeAnalysis_IsEnabled As Boolean = True
|
|
Public Property bEdgeAnalysis_IsEnabled As Boolean
|
|
Get
|
|
Return m_bEdgeAnalysis_IsEnabled
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_bEdgeAnalysis_IsEnabled = value
|
|
End Set
|
|
End Property
|
|
Friend Sub SetEdgeAnalysisIsEnabled(value As Boolean)
|
|
m_bEdgeAnalysis_IsEnabled = value
|
|
NotifyPropertyChanged(NameOf(bEdgeAnalysis_IsEnabled))
|
|
End Sub
|
|
|
|
#Region "Tooltip"
|
|
|
|
Public ReadOnly Property GetDist_ToolTip As String
|
|
Get
|
|
Return "Distance"
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property EdgeAnalysis_ToolTip As String
|
|
Get
|
|
Return "Edge Analysis"
|
|
End Get
|
|
End Property
|
|
|
|
#End Region ' Tooltip
|
|
|
|
#Region "CONSTRUCTORS"
|
|
|
|
Sub New()
|
|
' imposto riferimento in Map
|
|
Map.SetRefInstrumentPanelVM(Me)
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTORS
|
|
|
|
#Region "METHODS"
|
|
|
|
Public Overrides Function OnPostGetDistIsChecked() As Boolean
|
|
Map.refSceneHostVM.MainScene.SetStatusNull()
|
|
Return True
|
|
End Function
|
|
|
|
Friend Sub SetGetDistance_IsChecked(bIsChecked As Boolean)
|
|
GetDistIsChecked = bIsChecked
|
|
End Sub
|
|
|
|
Friend Sub SetInstrumentPanelIsEnabled(bIsEnabled As Boolean)
|
|
m_InstrumentPanel_IsEnabled = bIsEnabled
|
|
NotifyPropertyChanged(NameOf(InstrumentPanel_IsEnabled))
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
End Class
|