629d16b4f1
- introdotto indice fisso ribs - introdotto ordine di stampa dei layer (shell, rib, ecc...) - corretta estensione in esportazione
1474 lines
58 KiB
VB.net
1474 lines
58 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.Collections.Specialized
|
|
Imports System.ComponentModel
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class Machining
|
|
Inherits VMBase
|
|
|
|
Public Enum MPAR_SLICINGTYPE As Integer
|
|
VERTICAL = 1
|
|
DEG45 = 2
|
|
DEG45_Y = 3
|
|
HORIZONTAL = 4
|
|
End Enum
|
|
|
|
Public Enum MPAR_STRANDORDERS As Integer
|
|
OUTTOIN = 1
|
|
INTOOUT = 2
|
|
End Enum
|
|
|
|
Public Enum MPAR_DIRECTIONS As Integer
|
|
CCW = 1
|
|
CW = 2
|
|
End Enum
|
|
|
|
Public Enum MPAR_LINKTYPES As Integer
|
|
NONE = 1
|
|
LINEAR = 2
|
|
BIARC = 3
|
|
End Enum
|
|
|
|
Public Enum MPAR_LEADINOUT As Integer
|
|
NONE = 1
|
|
LINEAR = 2
|
|
ARC = 3
|
|
End Enum
|
|
|
|
Public Enum MPAR_RIBSTYPE As Integer
|
|
INTERNAL = 1
|
|
EXTERNAL = 2
|
|
UNBOUNDED = 3
|
|
SUPPORT = 4
|
|
End Enum
|
|
|
|
Public Enum MPAR_INFILL As Integer
|
|
NONE = 1
|
|
OFFSET = 2
|
|
ZIGZAG = 3
|
|
End Enum
|
|
|
|
Public Enum MPAR_DYNAMIC_MODE As Integer
|
|
STANDARD = 1
|
|
FAST = 2
|
|
End Enum
|
|
|
|
Public Enum MPAR_PRINT_ORDER As Integer
|
|
SHELL = 1
|
|
EXTRA_SHELL = 2
|
|
INFILL = 3
|
|
AUX_SOLID = 4
|
|
RIB = 5
|
|
End Enum
|
|
|
|
Protected m_CathegoryList As New ObservableCollection(Of MachiningCathegory)
|
|
Public ReadOnly Property CathegoryList As ObservableCollection(Of MachiningCathegory)
|
|
Get
|
|
Return m_CathegoryList
|
|
End Get
|
|
End Property
|
|
|
|
Protected m_bIsModified As Boolean
|
|
Public ReadOnly Property bIsModified As Boolean
|
|
Get
|
|
Return m_bIsModified
|
|
End Get
|
|
End Property
|
|
Friend Sub UpdateIsModified()
|
|
m_bIsModified = m_CathegoryList.Any(Function(x) x.MachiningParamList.Any(Function(y) y.bIsModified)) OrElse bIsModifiedName
|
|
NotifyPropertyChanged(NameOf(ghName))
|
|
End Sub
|
|
|
|
Protected m_nIndex As Integer
|
|
Public ReadOnly Property nIndex As Integer
|
|
Get
|
|
Return m_nIndex
|
|
End Get
|
|
End Property
|
|
Friend Sub SetIndex(nValue As Integer)
|
|
m_nIndex = nValue
|
|
End Sub
|
|
|
|
Protected m_sGUID As String = ""
|
|
Public Property sGUID As String
|
|
Get
|
|
Return m_sGUID
|
|
End Get
|
|
Set(value As String)
|
|
m_sGUID = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_sOrigName As String = ""
|
|
Protected m_sName As String = ""
|
|
Public Property sName As String
|
|
Get
|
|
Return m_sName
|
|
End Get
|
|
Set(value As String)
|
|
m_sName = value
|
|
Map.refMachiningDbVM.SetNameVisibility(False)
|
|
UpdateIsModified()
|
|
Map.refMachiningDbVM.SetIsEnabled(True)
|
|
End Set
|
|
End Property
|
|
Public ReadOnly Property ghName As String
|
|
Get
|
|
Return m_sName & If(m_bIsModified, "*", "")
|
|
End Get
|
|
End Property
|
|
Public ReadOnly Property bIsModifiedName As Boolean
|
|
Get
|
|
Return m_sName <> m_sOrigName
|
|
End Get
|
|
End Property
|
|
|
|
Sub New()
|
|
End Sub
|
|
|
|
Sub New(nIndex As Integer)
|
|
m_nIndex = nIndex
|
|
If ReadMachiningParamString(nIndex, MAC_GUID, "", m_sGUID) > 0 Then
|
|
ReadMachiningParamString(nIndex, MAC_NAME, "", m_sName)
|
|
Else
|
|
nIndex = -1
|
|
m_sGUID = Guid.NewGuid.ToString()
|
|
m_sName = "PrintingParam"
|
|
End If
|
|
m_sOrigName = m_sName
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nIndex))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.LINK, nIndex))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.RIBS, nIndex))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nIndex))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nIndex))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, nIndex))
|
|
For Each Cathegory In m_CathegoryList
|
|
For Each MachiningParam In Cathegory.MachiningParamList
|
|
AddHandler MachiningParam.PropertyChanged, AddressOf OnMachiningParamPropertyChanged
|
|
Next
|
|
Next
|
|
End Sub
|
|
|
|
Sub New(sName As String, bSlicing45 As Boolean, dStrandH As Double, dStrandW As Double, nStrandCount As Integer, dOffset As Double, dStartPointOffsetOnSlice As Double,
|
|
dStrandOrder As MPAR_STRANDORDERS, dDirection As MPAR_DIRECTIONS, dLinkType As MPAR_LINKTYPES, dLinkParam As Double, dLinkZup As Double, dOffsetLeadPoint As Double,
|
|
dLeadIn As MPAR_LEADINOUT, dLeadInTangDist As Double, dLeadInOrthoDist As Double, dLeadOut As MPAR_LEADINOUT, dLeadOutTangDist As Double, dLeadOutOrthoDist As Double,
|
|
dCoastingLen As Double, dCoastingFeed As Double, dWipeLen As Double, dWipeFeedPu As Double, dFloorCount As Integer, dG0Feed As Double, dMaterial As String,
|
|
dToolDiam As Double, dRibsOverlap As Double, dRibsStrandCount As Integer, dRibsLink As Boolean, dRibsInvertOrder As Boolean, dRibsInvertDirection As Boolean,
|
|
dRibsLeadInInvert As Boolean, dRibsLeadInLen As Double, dRibsLeadOutInvert As Boolean, dRibsLeadOutLen As Double, dRibsLeadOutCoasting As Double,
|
|
dRibsLeadOutWipe As Double, dRibsLeadOutWipeDir As Double)
|
|
|
|
End Sub
|
|
|
|
Private Sub SaveName()
|
|
m_sOrigName = m_sName
|
|
End Sub
|
|
|
|
Private Sub ResetName()
|
|
m_sName = m_sOrigName
|
|
NotifyPropertyChanged(NameOf(ghName))
|
|
End Sub
|
|
|
|
Friend Sub Save()
|
|
If bIsModified Then
|
|
' salvo tutti i parametri su orig
|
|
SaveParams()
|
|
' resetto stato di modificata
|
|
UpdateIsModified()
|
|
' segno Db come modificato
|
|
Map.refMachiningDbVM.SetIsModified(True)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub SaveParams()
|
|
SaveName()
|
|
For Each Cathegory In m_CathegoryList
|
|
Cathegory.SaveParams()
|
|
Next
|
|
End Sub
|
|
|
|
Friend Sub ResetModification()
|
|
ResetName()
|
|
If bIsModified Then
|
|
' annullo le modifiche di tutti i parametri
|
|
ResetParams()
|
|
' resetto stato di modificata
|
|
UpdateIsModified()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ResetParams()
|
|
For Each Cathegory In m_CathegoryList
|
|
Cathegory.ResetParams()
|
|
Next
|
|
End Sub
|
|
|
|
Friend Sub WriteParamsOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
|
WriteMachiningParam(nIndex, MAC_GUID, m_sGUID, sFilePath)
|
|
WriteMachiningParam(nIndex, MAC_NAME, m_sName, sFilePath)
|
|
For Each Cathegory In m_CathegoryList
|
|
Cathegory.WriteParamOnDb(nIndex, sFilePath)
|
|
Next
|
|
End Sub
|
|
|
|
Friend Overridable Sub OnMachiningParamPropertyChanged(sender As Object, e As PropertyChangedEventArgs)
|
|
Select Case e.PropertyName
|
|
Case NameOf(sender.dValue), NameOf(sender.sValue), NameOf(sender.bValue), NameOf(sender.SelValue), NameOf(sender.Value)
|
|
UpdateIsModified()
|
|
Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
|
|
End Select
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class MachiningIndex
|
|
Inherits VMBase
|
|
|
|
Private Shared m_Empty As New MachiningIndex(-1, Guid.Empty, "None")
|
|
|
|
Private m_nIndex As Integer
|
|
Public ReadOnly Property nIndex As Integer
|
|
Get
|
|
Return m_nIndex
|
|
End Get
|
|
End Property
|
|
|
|
Private m_sGUID As Guid
|
|
Public ReadOnly Property sGUID As Guid
|
|
Get
|
|
Return m_sGUID
|
|
End Get
|
|
End Property
|
|
|
|
Private m_sName As String
|
|
Public ReadOnly Property sName As String
|
|
Get
|
|
Return m_sName
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(nIndex As Integer, GUID As Guid, sName As String)
|
|
m_nIndex = nIndex
|
|
m_sGUID = GUID
|
|
m_sName = sName
|
|
End Sub
|
|
|
|
Friend Shared Function Empty() As MachiningIndex
|
|
Return m_Empty
|
|
End Function
|
|
|
|
End Class
|
|
|
|
Public Class MachiningCathegory
|
|
Inherits VMBase
|
|
|
|
Public Enum Cathegories As Integer
|
|
GENERAL = 1
|
|
LINK = 2
|
|
RIBS = 8
|
|
SHELL_NUMBER = 9
|
|
AUX_SOLID = 10
|
|
MATERIALS = 11
|
|
End Enum
|
|
|
|
Protected m_Type As Cathegories
|
|
Public Overloads ReadOnly Property Type As Cathegories
|
|
Get
|
|
Return m_Type
|
|
End Get
|
|
End Property
|
|
|
|
Protected m_sName As String
|
|
Public ReadOnly Property sName As String
|
|
Get
|
|
Return m_sName
|
|
End Get
|
|
End Property
|
|
|
|
Protected m_MachiningParamList As List(Of MachiningParam)
|
|
Public ReadOnly Property MachiningParamList As List(Of MachiningParam)
|
|
Get
|
|
Return m_MachiningParamList
|
|
End Get
|
|
End Property
|
|
|
|
Protected m_Cathegory_IsExpanded As Boolean
|
|
Public Property Cathegory_IsExpanded As Boolean
|
|
Get
|
|
Return m_Cathegory_IsExpanded
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_Cathegory_IsExpanded = value
|
|
End Set
|
|
End Property
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(Type As Cathegories, nIndex As Integer)
|
|
m_Type = Type
|
|
Select Case m_Type
|
|
Case Cathegories.GENERAL
|
|
m_sName = "General"
|
|
m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.SLICINGTYPE, nIndex),
|
|
New CheckMachiningParam(MachiningParam.Params.SPIRALVASE, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.STRANDH, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.STRANDW, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.STRANDCOUNT, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.OFFSET, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.STRANDOVERLAP, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.STARTPOINTOFFSETONSLICE, nIndex),
|
|
New ComboMachiningParam(MachiningParam.Params.STRANDORDER, nIndex),
|
|
New ComboMachiningParam(MachiningParam.Params.DIRECTION, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.FLOORCOUNT, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.G0FEED, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.G0FEEDZ, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.TOOLDIAM, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.FLOWRATE_PC, nIndex),
|
|
New ComboMachiningParam(MachiningParam.Params.DYNAMIC_MODE, nIndex),
|
|
New OrderedMachiningParam(MachiningParam.Params.PRINT_ORDER, nIndex)})
|
|
Case Cathegories.LINK
|
|
m_sName = "Shell"
|
|
m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.LINKTYPE, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.LINKPARAM, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.LINKZUP, nIndex),
|
|
New ComboMachiningParam(MachiningParam.Params.LEADIN, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.LEADINTANGDIST, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.LEADINORTHODIST, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.OFFSETLEADPOINT, nIndex),
|
|
New ComboMachiningParam(MachiningParam.Params.LEADOUT, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.LEADOUTTANGDIST, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.LEADOUTORTHODIST, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.COASTINGLEN, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.WIPELEN, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nIndex)})
|
|
'New NumericMachiningParam(MachiningParam.Params.WIPEDIR, nIndex)})
|
|
Case Cathegories.RIBS
|
|
m_sName = "Ribs"
|
|
m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.RIBSTYPE, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nIndex),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSLINK, nIndex),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSINVERTORDER, nIndex),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nIndex),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSLEADININVERT, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADINLEN, nIndex),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSLEADOUTINVERT, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTLEN, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTCOASTING, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPE, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nIndex)})
|
|
Case Cathegories.SHELL_NUMBER
|
|
m_sName = "Reduce Shell Number"
|
|
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.SHELLNBRDIFFERENCE, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.SHELLNBRCOASTING, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.SHELLNBRWIPE, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.SHELLNBRWIPEDIR, nIndex)})
|
|
Case Cathegories.AUX_SOLID
|
|
m_sName = "Filled Solid"
|
|
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSOVERLAP, nIndex),
|
|
New ComboMachiningParam(MachiningParam.Params.AUXSOLIDSINFILL, nIndex),
|
|
New ComboMachiningParam(MachiningParam.Params.AUXSOLIDSSTRANDORDER, nIndex),
|
|
New ComboMachiningParam(MachiningParam.Params.AUXSOLIDSLINKTYPE, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSLINKPARAM, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSCOASTINGLEN, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPELEN, nIndex),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPEDIR, nIndex)})
|
|
Case Cathegories.MATERIALS
|
|
m_sName = "Materials"
|
|
Dim sMaterials As String = ""
|
|
ReadMachiningParamSplit(nIndex, MAC_MATERIALS, "", sMaterials)
|
|
Dim MaterialGuidList As List(Of String) = sMaterials.Split(";"c).ToList()
|
|
m_MachiningParamList = New List(Of MachiningParam)
|
|
For Each Material In Map.refTopPanelVM.MaterialList
|
|
m_MachiningParamList.Add(New MaterialMachiningParam(Material.sName, Material.sGUID, MaterialGuidList.Contains(Material.sGUID)))
|
|
Next
|
|
End Select
|
|
End Sub
|
|
|
|
Friend Sub SaveParams()
|
|
For Each Param In m_MachiningParamList
|
|
Param.SaveParam()
|
|
Next
|
|
End Sub
|
|
|
|
Friend Sub ResetParams()
|
|
For Each Param In m_MachiningParamList
|
|
Param.ResetParam()
|
|
Next
|
|
End Sub
|
|
|
|
Friend Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
|
If Type = Cathegories.MATERIALS Then
|
|
WriteMachiningParamSplit(nIndex, MAC_MATERIALS, "", sFilePath)
|
|
End If
|
|
For Each Param In m_MachiningParamList
|
|
Param.WriteParamOnDb(nIndex, sFilePath)
|
|
Next
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public MustInherit Class MachiningParam
|
|
Inherits VMBase
|
|
|
|
Public Enum Params As Integer
|
|
NAME = 2
|
|
SLICINGTYPE = 3
|
|
STRANDH = 4
|
|
STRANDW = 5
|
|
STRANDCOUNT = 6
|
|
OFFSET = 7
|
|
STARTPOINTOFFSETONSLICE = 8
|
|
STRANDORDER = 9
|
|
DIRECTION = 10
|
|
LINKTYPE = 11
|
|
LINKPARAM = 12
|
|
LINKZUP = 13
|
|
OFFSETLEADPOINT = 14
|
|
LEADIN = 15
|
|
LEADINTANGDIST = 16
|
|
LEADINORTHODIST = 17
|
|
LEADOUT = 18
|
|
LEADOUTTANGDIST = 19
|
|
LEADOUTORTHODIST = 20
|
|
COASTINGLEN = 21
|
|
COASTINGFEED_PC = 22
|
|
WIPELEN = 23
|
|
WIPEFEED_PC = 24
|
|
FLOORCOUNT = 25
|
|
G0FEED = 26
|
|
G0FEEDZ = 27
|
|
TOOLDIAM = 28
|
|
RIBSTYPE = 29
|
|
RIBSOVERLAP = 30
|
|
RIBSSTRANDCOUNT = 31
|
|
RIBSLINK = 32
|
|
RIBSINVERTORDER = 33
|
|
RIBSINVERTDIRECTION = 34
|
|
RIBSLEADININVERT = 35
|
|
RIBSLEADINLEN = 36
|
|
RIBSLEADOUTINVERT = 37
|
|
RIBSLEADOUTLEN = 38
|
|
RIBSLEADOUTCOASTING = 39
|
|
RIBSLEADOUTWIPE = 40
|
|
RIBSLEADOUTWIPEDIR = 41
|
|
SHELLNBRDIFFERENCE = 42
|
|
SHELLNBRCOASTING = 43
|
|
SHELLNBRWIPE = 44
|
|
SHELLNBRWIPEDIR = 45
|
|
AUXSOLIDSOVERLAP = 46
|
|
AUXSOLIDSINFILL = 47
|
|
AUXSOLIDSSTRANDORDER = 48
|
|
AUXSOLIDSLINKTYPE = 49
|
|
AUXSOLIDSLINKPARAM = 50
|
|
AUXSOLIDSSTARTPOINTOFFSETONSLICE = 51
|
|
AUXSOLIDSCOASTINGLEN = 52
|
|
AUXSOLIDSWIPELEN = 53
|
|
AUXSOLIDSWIPEDIR = 54
|
|
SPIRALVASE = 55
|
|
'WIPEDIR = 56
|
|
STRANDOVERLAP = 57
|
|
FLOWRATE_PC = 58
|
|
DYNAMIC_MODE = 59
|
|
PRINT_ORDER = 60
|
|
MATERIALS = 100
|
|
End Enum
|
|
|
|
Protected m_Type As Params
|
|
Public ReadOnly Property Type As Params
|
|
Get
|
|
Return m_Type
|
|
End Get
|
|
End Property
|
|
|
|
Protected m_sName As String
|
|
Public ReadOnly Property sName As String
|
|
Get
|
|
Return m_sName
|
|
End Get
|
|
End Property
|
|
|
|
Public MustOverride ReadOnly Property bIsModified As Boolean
|
|
|
|
Sub New(Type As Params)
|
|
m_Type = Type
|
|
Select Case m_Type
|
|
Case Params.SLICINGTYPE
|
|
m_sName = "Slicing direction"
|
|
Case Params.STRANDH
|
|
m_sName = "Strand Height"
|
|
Case Params.STRANDW
|
|
m_sName = "Strand Width"
|
|
Case Params.STRANDCOUNT
|
|
m_sName = "Strand Count"
|
|
Case Params.OFFSET
|
|
m_sName = "Offset"
|
|
Case Params.STARTPOINTOFFSETONSLICE
|
|
m_sName = "Start Point Offset On Layer"
|
|
Case Params.STRANDORDER
|
|
m_sName = "Strand Order"
|
|
Case Params.DIRECTION
|
|
m_sName = "Direction"
|
|
Case Params.LINKTYPE
|
|
m_sName = "Link Type"
|
|
Case Params.LINKPARAM
|
|
m_sName = "Link Param"
|
|
Case Params.LINKZUP
|
|
m_sName = "Link Z Up"
|
|
Case Params.OFFSETLEADPOINT
|
|
m_sName = "Offset Lead Point"
|
|
Case Params.LEADIN
|
|
m_sName = "Lead In"
|
|
Case Params.LEADINTANGDIST
|
|
m_sName = "Lead In Tang Dist"
|
|
Case Params.LEADINORTHODIST
|
|
m_sName = "Lead In Ortho Dist"
|
|
Case Params.LEADOUT
|
|
m_sName = "Lead Out"
|
|
Case Params.LEADOUTTANGDIST
|
|
m_sName = "Lead Out Tang Dist"
|
|
Case Params.LEADOUTORTHODIST
|
|
m_sName = "Lead Out Ortho Dist"
|
|
Case Params.COASTINGLEN
|
|
m_sName = "Coasting Len"
|
|
Case Params.COASTINGFEED_PC
|
|
m_sName = "Coasting Feed [%]"
|
|
Case Params.WIPELEN
|
|
m_sName = "Wipe Len"
|
|
Case Params.WIPEFEED_PC
|
|
m_sName = "Wipe Feed [%]"
|
|
Case Params.FLOORCOUNT
|
|
m_sName = "Floor Count"
|
|
Case Params.G0FEED
|
|
m_sName = "G0 Feed"
|
|
Case Params.G0FEEDZ
|
|
m_sName = "G0 Feed Z"
|
|
Case Params.TOOLDIAM
|
|
m_sName = "Nozzle Diameter"
|
|
Case Params.RIBSTYPE
|
|
m_sName = "Type"
|
|
Case Params.RIBSOVERLAP
|
|
m_sName = "Overlap [%]"
|
|
Case Params.RIBSSTRANDCOUNT
|
|
m_sName = "Strand Count"
|
|
Case Params.RIBSLINK
|
|
m_sName = "Link"
|
|
Case Params.RIBSINVERTORDER
|
|
m_sName = "Invert Order"
|
|
Case Params.RIBSINVERTDIRECTION
|
|
m_sName = "Invert Direction"
|
|
Case Params.RIBSLEADININVERT
|
|
m_sName = "Lead In Invert"
|
|
Case Params.RIBSLEADINLEN
|
|
m_sName = "Lead In Len"
|
|
Case Params.RIBSLEADOUTINVERT
|
|
m_sName = "Lead Out Invert"
|
|
Case Params.RIBSLEADOUTLEN
|
|
m_sName = "Lead Out Len"
|
|
Case Params.RIBSLEADOUTCOASTING
|
|
m_sName = "Lead Out Coasting"
|
|
Case Params.RIBSLEADOUTWIPE
|
|
m_sName = "Lead Out Wipe"
|
|
Case Params.RIBSLEADOUTWIPEDIR
|
|
m_sName = "Lead Out Wipe Dir [deg]"
|
|
Case Params.SHELLNBRDIFFERENCE
|
|
m_sName = "Difference"
|
|
Case Params.SHELLNBRCOASTING
|
|
m_sName = "Coasting"
|
|
Case Params.SHELLNBRWIPE
|
|
m_sName = "Wipe"
|
|
Case Params.SHELLNBRWIPEDIR
|
|
m_sName = "Wipe Direction [deg]"
|
|
Case Params.AUXSOLIDSOVERLAP
|
|
m_sName = "Overlap [%]"
|
|
Case Params.AUXSOLIDSINFILL
|
|
m_sName = "Infill"
|
|
Case Params.AUXSOLIDSSTRANDORDER
|
|
m_sName = "Strand Order"
|
|
Case Params.AUXSOLIDSLINKTYPE
|
|
m_sName = "Link Type"
|
|
Case Params.AUXSOLIDSLINKPARAM
|
|
m_sName = "Link Parameter"
|
|
Case Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE
|
|
m_sName = "Start Point Offset On Slice"
|
|
Case Params.AUXSOLIDSCOASTINGLEN
|
|
m_sName = "Coasting Length"
|
|
Case Params.AUXSOLIDSWIPELEN
|
|
m_sName = "Wipe Length"
|
|
Case Params.AUXSOLIDSWIPEDIR
|
|
m_sName = "Wipe Direction [deg]"
|
|
Case Params.SPIRALVASE
|
|
m_sName = "Spiral Vase"
|
|
'Case Params.WIPEDIR
|
|
' m_sName = "Wipe Direction [deg]"
|
|
Case Params.STRANDOVERLAP
|
|
m_sName = "Strand Overlap [%]"
|
|
Case Params.FLOWRATE_PC
|
|
m_sName = "Flow rate [%]"
|
|
Case Params.DYNAMIC_MODE
|
|
m_sName = "Dynamic Mode"
|
|
Case Params.PRINT_ORDER
|
|
m_sName = "Print Order"
|
|
End Select
|
|
End Sub
|
|
|
|
Sub New(sName As String)
|
|
m_Type = Params.MATERIALS
|
|
m_sName = sName
|
|
End Sub
|
|
|
|
Friend MustOverride Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
|
Friend Overridable Sub WriteParamInPart(nIndex As Integer)
|
|
End Sub
|
|
Friend MustOverride Sub SaveParam()
|
|
Friend MustOverride Sub ResetParam()
|
|
|
|
End Class
|
|
|
|
Public Class NumericMachiningParam
|
|
Inherits MachiningParam
|
|
|
|
Protected m_bIsLen As Boolean = False
|
|
|
|
Protected m_dValue As Double
|
|
Public ReadOnly Property dValue As Double
|
|
Get
|
|
Return m_dValue
|
|
End Get
|
|
End Property
|
|
Public Overridable Property sValue As String
|
|
Get
|
|
Return If(m_bIsLen, LenToString(m_dValue, 1), DoubleToString(m_dValue, 2))
|
|
End Get
|
|
Set(value As String)
|
|
If m_bIsLen Then
|
|
StringToLen(value, m_dValue)
|
|
Else
|
|
StringToDouble(value, m_dValue)
|
|
End If
|
|
NotifyPropertyChanged(NameOf(sValue))
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_dOrigValue As Double
|
|
Public ReadOnly Property dOrigValue As Double
|
|
Get
|
|
Return m_dOrigValue
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property bIsModified As Boolean
|
|
Get
|
|
Return m_dValue <> m_dOrigValue
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(Type As Params)
|
|
MyBase.New(Type)
|
|
End Sub
|
|
|
|
Sub New(Type As Params, nIndex As Integer)
|
|
MyBase.New(Type)
|
|
If nIndex = 0 Then
|
|
m_dValue = 0
|
|
m_bIsLen = True
|
|
Else
|
|
Select Case Type
|
|
Case Params.STRANDH
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_STRANDH, 0)
|
|
m_bIsLen = True
|
|
Case Params.STRANDW
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_STRANDW, 0)
|
|
m_bIsLen = True
|
|
Case Params.STRANDCOUNT
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_STRANDCOUNT, 0)
|
|
m_bIsLen = False
|
|
Case Params.OFFSET
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_OFFSET, 0)
|
|
m_bIsLen = True
|
|
Case Params.STRANDOVERLAP
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_STRANDOVERLAP, 0)
|
|
m_bIsLen = False
|
|
Case Params.STARTPOINTOFFSETONSLICE
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_STARTPOINTOFFSETONSLICE, 0)
|
|
m_bIsLen = True
|
|
Case Params.LINKPARAM
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_LINKPARAM, 0)
|
|
m_bIsLen = True
|
|
Case Params.LINKZUP
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_LINKZUP, 0)
|
|
m_bIsLen = True
|
|
Case Params.OFFSETLEADPOINT
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_OFFSETLEADPOINT, 0)
|
|
m_bIsLen = True
|
|
Case Params.LEADINTANGDIST
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_LEADINTANGDIST, 0)
|
|
m_bIsLen = True
|
|
Case Params.LEADINORTHODIST
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_LEADINORTHODIST, 0)
|
|
m_bIsLen = True
|
|
Case Params.LEADOUTTANGDIST
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_LEADOUTTANGDIST, 0)
|
|
m_bIsLen = True
|
|
Case Params.LEADOUTORTHODIST
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_LEADOUTORTHODIST, 0)
|
|
m_bIsLen = True
|
|
Case Params.COASTINGLEN
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_COASTINGLEN, 0)
|
|
m_bIsLen = True
|
|
Case Params.COASTINGFEED_PC
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_COASTINGFEEDPU, 0)
|
|
m_bIsLen = False
|
|
Case Params.WIPELEN
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_WIPELEN, 0)
|
|
m_bIsLen = True
|
|
Case Params.WIPEFEED_PC
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_WIPEFEEDPU, 0)
|
|
m_bIsLen = False
|
|
'Case Params.WIPEDIR
|
|
' m_dValue = ReadMachiningParamDouble(nIndex, MAC_WIPEDIR, 0)
|
|
' m_bIsLen = True
|
|
Case Params.FLOORCOUNT
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_FLOORCOUNT, 0)
|
|
m_bIsLen = False
|
|
Case Params.G0FEED
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_G0FEED, 10000)
|
|
m_bIsLen = True
|
|
Case Params.G0FEEDZ
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_G0FEEDZ, 1000)
|
|
m_bIsLen = True
|
|
Case Params.TOOLDIAM
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_TOOLDIAM, 0)
|
|
m_bIsLen = True
|
|
Case Params.RIBSOVERLAP
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSOVERLAP, 0)
|
|
m_bIsLen = False
|
|
Case Params.RIBSSTRANDCOUNT
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSSTRANDCOUNT, 0)
|
|
m_bIsLen = False
|
|
Case Params.RIBSLEADINLEN
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADINLEN, 0)
|
|
m_bIsLen = True
|
|
Case Params.RIBSLEADOUTLEN
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADOUTLEN, 0)
|
|
m_bIsLen = True
|
|
Case Params.RIBSLEADOUTCOASTING
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADOUTCOASTING, 0)
|
|
m_bIsLen = True
|
|
Case Params.RIBSLEADOUTWIPE
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADOUTWIPE, 0)
|
|
m_bIsLen = True
|
|
Case Params.RIBSLEADOUTWIPEDIR
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADOUTWIPEDIR, 0)
|
|
m_bIsLen = False
|
|
Case Params.SHELLNBRDIFFERENCE
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SHELLNBRDIFFERENCE, 0)
|
|
m_bIsLen = False
|
|
Case Params.SHELLNBRCOASTING
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SHELLNBRCOASTING, 0)
|
|
m_bIsLen = True
|
|
Case Params.SHELLNBRWIPE
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SHELLNBRWIPE, 0)
|
|
m_bIsLen = True
|
|
Case Params.SHELLNBRWIPEDIR
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SHELLNBRWIPEDIR, 0)
|
|
m_bIsLen = False
|
|
Case Params.AUXSOLIDSOVERLAP
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSOVERLAP, 0)
|
|
m_bIsLen = False
|
|
Case Params.AUXSOLIDSLINKPARAM
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSLINKPARAM, 0)
|
|
m_bIsLen = True
|
|
Case Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSSTARTPOINTOFFSETONSLICE, 0)
|
|
m_bIsLen = True
|
|
Case Params.AUXSOLIDSCOASTINGLEN
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSCOASTINGLEN, 0)
|
|
m_bIsLen = True
|
|
Case Params.AUXSOLIDSWIPELEN
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSWIPELEN, 0)
|
|
m_bIsLen = True
|
|
Case Params.AUXSOLIDSWIPEDIR
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSWIPEDIR, 0)
|
|
m_bIsLen = False
|
|
Case Params.FLOWRATE_PC
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_CONSTANT, 100)
|
|
m_bIsLen = False
|
|
End Select
|
|
End If
|
|
m_dOrigValue = m_dValue
|
|
End Sub
|
|
|
|
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
|
Dim sWriteValue As String = ""
|
|
If m_bIsLen Then
|
|
sWriteValue = LenToString(m_dValue, 2)
|
|
Else
|
|
sWriteValue = DoubleToString(m_dValue, 2)
|
|
End If
|
|
Select Case Type
|
|
Case Params.STRANDH
|
|
WriteMachiningParam(nIndex, MAC_STRANDH, sWriteValue, sFilePath)
|
|
Case Params.STRANDW
|
|
WriteMachiningParam(nIndex, MAC_STRANDW, sWriteValue, sFilePath)
|
|
Case Params.STRANDCOUNT
|
|
WriteMachiningParam(nIndex, MAC_STRANDCOUNT, sWriteValue, sFilePath)
|
|
Case Params.OFFSET
|
|
WriteMachiningParam(nIndex, MAC_OFFSET, sWriteValue, sFilePath)
|
|
Case Params.STRANDOVERLAP
|
|
WriteMachiningParam(nIndex, MAC_STRANDOVERLAP, sWriteValue, sFilePath)
|
|
Case Params.STARTPOINTOFFSETONSLICE
|
|
WriteMachiningParam(nIndex, MAC_STARTPOINTOFFSETONSLICE, sWriteValue, sFilePath)
|
|
Case Params.LINKPARAM
|
|
WriteMachiningParam(nIndex, MAC_LINKPARAM, sWriteValue, sFilePath)
|
|
Case Params.LINKZUP
|
|
WriteMachiningParam(nIndex, MAC_LINKZUP, sWriteValue, sFilePath)
|
|
Case Params.OFFSETLEADPOINT
|
|
WriteMachiningParam(nIndex, MAC_OFFSETLEADPOINT, sWriteValue, sFilePath)
|
|
Case Params.LEADINTANGDIST
|
|
WriteMachiningParam(nIndex, MAC_LEADINTANGDIST, sWriteValue, sFilePath)
|
|
Case Params.LEADINORTHODIST
|
|
WriteMachiningParam(nIndex, MAC_LEADINORTHODIST, sWriteValue, sFilePath)
|
|
Case Params.LEADOUTTANGDIST
|
|
WriteMachiningParam(nIndex, MAC_LEADOUTTANGDIST, sWriteValue, sFilePath)
|
|
Case Params.LEADOUTORTHODIST
|
|
WriteMachiningParam(nIndex, MAC_LEADOUTORTHODIST, sWriteValue, sFilePath)
|
|
Case Params.COASTINGLEN
|
|
WriteMachiningParam(nIndex, MAC_COASTINGLEN, sWriteValue, sFilePath)
|
|
Case Params.COASTINGFEED_PC
|
|
WriteMachiningParam(nIndex, MAC_COASTINGFEEDPU, sWriteValue, sFilePath)
|
|
Case Params.WIPELEN
|
|
WriteMachiningParam(nIndex, MAC_WIPELEN, sWriteValue, sFilePath)
|
|
Case Params.WIPEFEED_PC
|
|
WriteMachiningParam(nIndex, MAC_WIPEFEEDPU, sWriteValue, sFilePath)
|
|
'Case Params.WIPEDIR
|
|
' WriteMachiningParam(nIndex, MAC_WIPEDIR, sWriteValue, sFilePath)
|
|
Case Params.FLOORCOUNT
|
|
WriteMachiningParam(nIndex, MAC_FLOORCOUNT, sWriteValue, sFilePath)
|
|
Case Params.G0FEED
|
|
WriteMachiningParam(nIndex, MAC_G0FEED, sWriteValue, sFilePath)
|
|
Case Params.G0FEEDZ
|
|
WriteMachiningParam(nIndex, MAC_G0FEEDZ, sWriteValue, sFilePath)
|
|
Case Params.TOOLDIAM
|
|
WriteMachiningParam(nIndex, MAC_TOOLDIAM, sWriteValue, sFilePath)
|
|
Case Params.RIBSOVERLAP
|
|
WriteMachiningParam(nIndex, MAC_RIBSOVERLAP, sWriteValue, sFilePath)
|
|
Case Params.RIBSSTRANDCOUNT
|
|
WriteMachiningParam(nIndex, MAC_RIBSSTRANDCOUNT, sWriteValue, sFilePath)
|
|
Case Params.RIBSLEADINLEN
|
|
WriteMachiningParam(nIndex, MAC_RIBSLEADINLEN, sWriteValue, sFilePath)
|
|
Case Params.RIBSLEADOUTLEN
|
|
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTLEN, sWriteValue, sFilePath)
|
|
Case Params.RIBSLEADOUTCOASTING
|
|
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTCOASTING, sWriteValue, sFilePath)
|
|
Case Params.RIBSLEADOUTWIPE
|
|
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTWIPE, sWriteValue, sFilePath)
|
|
Case Params.RIBSLEADOUTWIPEDIR
|
|
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTWIPEDIR, sWriteValue, sFilePath)
|
|
Case Params.SHELLNBRDIFFERENCE
|
|
WriteMachiningParam(nIndex, MAC_SHELLNBRDIFFERENCE, sWriteValue, sFilePath)
|
|
Case Params.SHELLNBRCOASTING
|
|
WriteMachiningParam(nIndex, MAC_SHELLNBRCOASTING, sWriteValue, sFilePath)
|
|
Case Params.SHELLNBRWIPE
|
|
WriteMachiningParam(nIndex, MAC_SHELLNBRWIPE, sWriteValue, sFilePath)
|
|
Case Params.SHELLNBRWIPEDIR
|
|
WriteMachiningParam(nIndex, MAC_SHELLNBRWIPEDIR, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSOVERLAP
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSOVERLAP, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSLINKPARAM
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSLINKPARAM, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSSTARTPOINTOFFSETONSLICE, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSCOASTINGLEN
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSCOASTINGLEN, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSWIPELEN
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSWIPELEN, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSWIPEDIR
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSWIPEDIR, sWriteValue, sFilePath)
|
|
Case Params.FLOWRATE_PC
|
|
WriteMachiningParam(nIndex, MAC_CONSTANT, sWriteValue, sFilePath)
|
|
End Select
|
|
End Sub
|
|
|
|
Friend Overrides Sub SaveParam()
|
|
m_dOrigValue = m_dValue
|
|
End Sub
|
|
|
|
Friend Overrides Sub ResetParam()
|
|
m_dValue = m_dOrigValue
|
|
NotifyPropertyChanged(NameOf(sValue))
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class StringMachiningParam
|
|
Inherits MachiningParam
|
|
|
|
Protected m_sValue As String
|
|
Public Property sValue As String
|
|
Get
|
|
Return m_sValue
|
|
End Get
|
|
Set(value As String)
|
|
m_sValue = value
|
|
NotifyPropertyChanged(NameOf(sValue))
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_sOrigValue As String
|
|
Public ReadOnly Property sOrigValue As String
|
|
Get
|
|
Return m_sOrigValue
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property bIsModified As Boolean
|
|
Get
|
|
Return m_sValue <> m_sOrigValue
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(Type As Params, nIndex As Integer)
|
|
MyBase.New(Type)
|
|
m_sValue = sValue
|
|
m_sOrigValue = m_sValue
|
|
End Sub
|
|
|
|
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
|
Select Case Type
|
|
Case Params.STRANDH
|
|
'WritePrivateProfileString(nIndex, MAC_STRANDH, sWriteValue, sFilePath)
|
|
End Select
|
|
End Sub
|
|
|
|
Friend Overrides Sub SaveParam()
|
|
m_sOrigValue = m_sValue
|
|
End Sub
|
|
|
|
Friend Overrides Sub ResetParam()
|
|
m_sValue = m_sOrigValue
|
|
NotifyPropertyChanged(NameOf(sValue))
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class ComboMachiningParam
|
|
Inherits MachiningParam
|
|
|
|
Protected m_ValueList As List(Of IdNameStruct)
|
|
Public ReadOnly Property ValueList As List(Of IdNameStruct)
|
|
Get
|
|
Return m_ValueList
|
|
End Get
|
|
End Property
|
|
|
|
Protected m_SelValue As IdNameStruct
|
|
Public Overridable Property SelValue As IdNameStruct
|
|
Get
|
|
Return m_SelValue
|
|
End Get
|
|
Set(value As IdNameStruct)
|
|
m_SelValue = value
|
|
NotifyPropertyChanged(NameOf(SelValue))
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_OrigSelValue As IdNameStruct
|
|
Public ReadOnly Property OrigSelValue As IdNameStruct
|
|
Get
|
|
Return m_OrigSelValue
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property bIsModified As Boolean
|
|
Get
|
|
Return m_SelValue.Id <> m_OrigSelValue.Id
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(Type As Params)
|
|
MyBase.New(Type)
|
|
End Sub
|
|
|
|
Sub New(Type As Params, nIndex As Integer)
|
|
MyBase.New(Type)
|
|
If nIndex = 0 Then
|
|
m_ValueList = New List(Of IdNameStruct)
|
|
m_SelValue = Nothing
|
|
Else
|
|
Select Case Type
|
|
Case Params.SLICINGTYPE
|
|
Dim nSlicingType As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_SLICINGTYPE, 0, CurrentMachine.sMachIniFile)
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical")})
|
|
If nSlicingType >= 1 Then
|
|
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45deg X"))
|
|
If nSlicingType >= 2 Then
|
|
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45_Y, "45deg Y"))
|
|
If nSlicingType >= 3 Then
|
|
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal"))
|
|
End If
|
|
End If
|
|
End If
|
|
Dim nSelValue As Double = ReadMachiningParamDouble(nIndex, MAC_SLICINGTYPE, -1)
|
|
If nSelValue = -1 Then
|
|
Dim dSlicing45 As Double = 0
|
|
dSlicing45 = ReadMachiningParamDouble(nIndex, MAC_SLICING45, 0)
|
|
nSelValue = If(dSlicing45 = 0, Machining.MPAR_SLICINGTYPE.VERTICAL, Machining.MPAR_SLICINGTYPE.DEG45)
|
|
End If
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = nSelValue)
|
|
Case Params.STRANDORDER
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_STRANDORDERS.OUTTOIN, "From Outside To Inside"),
|
|
New IdNameStruct(Machining.MPAR_STRANDORDERS.INTOOUT, "From Inside To Outside")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_STRANDORDER, 0))
|
|
Case Params.DIRECTION
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_DIRECTIONS.CCW, "Counterclockwise"),
|
|
New IdNameStruct(Machining.MPAR_DIRECTIONS.CW, "Clockwise")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_DIRECTION, 0))
|
|
Case Params.LINKTYPE
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_LINKTYPES.NONE, "None"),
|
|
New IdNameStruct(Machining.MPAR_LINKTYPES.LINEAR, "Linear"),
|
|
New IdNameStruct(Machining.MPAR_LINKTYPES.BIARC, "Biarc")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_LINKTYPE, 0))
|
|
Case Params.LEADIN
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_LEADINOUT.NONE, "None"),
|
|
New IdNameStruct(Machining.MPAR_LEADINOUT.LINEAR, "Linear"),
|
|
New IdNameStruct(Machining.MPAR_LEADINOUT.ARC, "Arc")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_LEADIN, 0))
|
|
Case Params.LEADOUT
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_LEADINOUT.NONE, "None"),
|
|
New IdNameStruct(Machining.MPAR_LEADINOUT.LINEAR, "Linear"),
|
|
New IdNameStruct(Machining.MPAR_LEADINOUT.ARC, "Arc")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_LEADOUT, 0))
|
|
Case Params.RIBSTYPE
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_RIBSTYPE.INTERNAL, "Internal"),
|
|
New IdNameStruct(Machining.MPAR_RIBSTYPE.EXTERNAL, "External"),
|
|
New IdNameStruct(Machining.MPAR_RIBSTYPE.UNBOUNDED, "Unbounded"),
|
|
New IdNameStruct(Machining.MPAR_RIBSTYPE.SUPPORT, "Support")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_RIBSTYPE, 1))
|
|
Case Params.AUXSOLIDSINFILL
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_INFILL.NONE, "None"),
|
|
New IdNameStruct(Machining.MPAR_INFILL.OFFSET, "Offset"),
|
|
New IdNameStruct(Machining.MPAR_INFILL.ZIGZAG, "ZigZag")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSINFILL, 0))
|
|
Case Params.AUXSOLIDSSTRANDORDER
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_STRANDORDERS.OUTTOIN, "From Outside To Inside"),
|
|
New IdNameStruct(Machining.MPAR_STRANDORDERS.INTOOUT, "From Inside To Outside")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSSTRANDORDER, 0))
|
|
Case Params.AUXSOLIDSLINKTYPE
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_LINKTYPES.NONE, "None"),
|
|
New IdNameStruct(Machining.MPAR_LINKTYPES.LINEAR, "Linear"),
|
|
New IdNameStruct(Machining.MPAR_LINKTYPES.BIARC, "Biarc")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSLINKTYPE, 0))
|
|
Case Params.DYNAMIC_MODE
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_DYNAMIC_MODE.STANDARD, "Standard"),
|
|
New IdNameStruct(Machining.MPAR_DYNAMIC_MODE.FAST, "Fast")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_DYNAMICMODE, 1))
|
|
End Select
|
|
End If
|
|
m_OrigSelValue = m_SelValue
|
|
End Sub
|
|
|
|
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
|
Select Case Type
|
|
Case Params.SLICINGTYPE
|
|
WriteMachiningParam(nIndex, MAC_SLICINGTYPE, m_SelValue.Id, sFilePath)
|
|
Case Params.STRANDORDER
|
|
WriteMachiningParam(nIndex, MAC_STRANDORDER, m_SelValue.Id, sFilePath)
|
|
Case Params.DIRECTION
|
|
WriteMachiningParam(nIndex, MAC_DIRECTION, m_SelValue.Id, sFilePath)
|
|
Case Params.LINKTYPE
|
|
WriteMachiningParam(nIndex, MAC_LINKTYPE, m_SelValue.Id, sFilePath)
|
|
Case Params.LEADIN
|
|
WriteMachiningParam(nIndex, MAC_LEADIN, m_SelValue.Id, sFilePath)
|
|
Case Params.LEADOUT
|
|
WriteMachiningParam(nIndex, MAC_LEADOUT, m_SelValue.Id, sFilePath)
|
|
Case Params.RIBSTYPE
|
|
WriteMachiningParam(nIndex, MAC_RIBSTYPE, m_SelValue.Id, sFilePath)
|
|
Case Params.AUXSOLIDSINFILL
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSINFILL, m_SelValue.Id, sFilePath)
|
|
Case Params.AUXSOLIDSSTRANDORDER
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSSTRANDORDER, m_SelValue.Id, sFilePath)
|
|
Case Params.AUXSOLIDSLINKTYPE
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSLINKTYPE, m_SelValue.Id, sFilePath)
|
|
Case Params.DYNAMIC_MODE
|
|
WriteMachiningParam(nIndex, MAC_DYNAMICMODE, m_SelValue.Id, sFilePath)
|
|
End Select
|
|
End Sub
|
|
|
|
Friend Overrides Sub SaveParam()
|
|
m_OrigSelValue = m_SelValue
|
|
End Sub
|
|
|
|
Friend Overrides Sub ResetParam()
|
|
m_SelValue = m_OrigSelValue
|
|
NotifyPropertyChanged(NameOf(SelValue))
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class CheckMachiningParam
|
|
Inherits MachiningParam
|
|
|
|
Protected m_bValue As Boolean
|
|
Public Overridable Property bValue As Boolean
|
|
Get
|
|
Return m_bValue
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_bValue = value
|
|
NotifyPropertyChanged(NameOf(bValue))
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_bOrigValue As String
|
|
Public ReadOnly Property bOrigValue As String
|
|
Get
|
|
Return m_bOrigValue
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property bIsModified As Boolean
|
|
Get
|
|
Return m_bValue <> m_bOrigValue
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(Type As Params)
|
|
MyBase.New(Type)
|
|
End Sub
|
|
|
|
Sub New(Type As Params, nIndex As Integer)
|
|
MyBase.New(Type)
|
|
If nIndex = 0 Then
|
|
m_bValue = 0
|
|
Else
|
|
Select Case Type
|
|
Case Params.SPIRALVASE
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_SPIRALVASE, 0)
|
|
Case Params.RIBSLINK
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLINK, 0)
|
|
Case Params.RIBSINVERTORDER
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSINVERTORDER, 0)
|
|
Case Params.RIBSINVERTDIRECTION
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSINVERTDIRECTION, 0)
|
|
Case Params.RIBSLEADININVERT
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADININVERT, 0)
|
|
Case Params.RIBSLEADOUTINVERT
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADOUTINVERT, 0)
|
|
End Select
|
|
End If
|
|
m_bOrigValue = m_bValue
|
|
End Sub
|
|
|
|
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
|
Select Case Type
|
|
Case Params.SPIRALVASE
|
|
WriteMachiningParam(nIndex, MAC_SPIRALVASE, If(m_bValue, 1, 0), sFilePath)
|
|
Case Params.RIBSLINK
|
|
WriteMachiningParam(nIndex, MAC_RIBSLINK, If(m_bValue, 1, 0), sFilePath)
|
|
Case Params.RIBSINVERTORDER
|
|
WriteMachiningParam(nIndex, MAC_RIBSINVERTORDER, If(m_bValue, 1, 0), sFilePath)
|
|
Case Params.RIBSINVERTDIRECTION
|
|
WriteMachiningParam(nIndex, MAC_RIBSINVERTDIRECTION, If(m_bValue, 1, 0), sFilePath)
|
|
Case Params.RIBSLEADININVERT
|
|
WriteMachiningParam(nIndex, MAC_RIBSLEADININVERT, If(m_bValue, 1, 0), sFilePath)
|
|
Case Params.RIBSLEADOUTINVERT
|
|
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTINVERT, If(m_bValue, 1, 0), sFilePath)
|
|
End Select
|
|
End Sub
|
|
|
|
Friend Overrides Sub SaveParam()
|
|
m_bOrigValue = m_bValue
|
|
End Sub
|
|
|
|
Friend Overrides Sub ResetParam()
|
|
m_bValue = m_bOrigValue
|
|
NotifyPropertyChanged(NameOf(bValue))
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class MaterialMachiningParam
|
|
Inherits MachiningParam
|
|
|
|
Private m_sGUID As String
|
|
Public Property sGUID As String
|
|
Get
|
|
Return m_sGUID
|
|
End Get
|
|
Set(value As String)
|
|
m_sGUID = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_bValue As Boolean
|
|
Public Property bValue As Boolean
|
|
Get
|
|
Return m_bValue
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_bValue = value
|
|
NotifyPropertyChanged(NameOf(bValue))
|
|
End Set
|
|
End Property
|
|
|
|
Private m_bOrigValue As String
|
|
Public ReadOnly Property bOriValue As String
|
|
Get
|
|
Return m_bOrigValue
|
|
End Get
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property bIsModified As Boolean
|
|
Get
|
|
Return m_bValue <> m_bOrigValue
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(sName As String, sGUID As String, bValue As Boolean)
|
|
MyBase.New(sName)
|
|
m_sGUID = sGUID
|
|
m_bValue = bValue
|
|
m_bOrigValue = m_bValue
|
|
End Sub
|
|
|
|
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
|
Dim sMaterials As String = ""
|
|
ReadMachiningParamSplit(nIndex, MAC_MATERIALS, "", sMaterials, sFilePath)
|
|
Dim MaterialGuidList As New List(Of String)
|
|
If Not String.IsNullOrWhiteSpace(sMaterials) Then
|
|
MaterialGuidList = sMaterials.Split(";"c).ToList()
|
|
End If
|
|
If Not bValue Then
|
|
MaterialGuidList.Remove(m_sGUID)
|
|
ElseIf Not MaterialGuidList.Contains(m_sGUID) Then
|
|
MaterialGuidList.Add(m_sGUID)
|
|
End If
|
|
sMaterials = ""
|
|
For Index = 0 To MaterialGuidList.Count - 1
|
|
sMaterials &= MaterialGuidList(Index) & If(Index < MaterialGuidList.Count - 1, ";"c, "")
|
|
Next
|
|
WriteMachiningParamSplit(nIndex, MAC_MATERIALS, sMaterials, sFilePath)
|
|
End Sub
|
|
|
|
Friend Overrides Sub SaveParam()
|
|
m_bOrigValue = m_bValue
|
|
End Sub
|
|
|
|
Friend Overrides Sub ResetParam()
|
|
m_bValue = m_bOrigValue
|
|
NotifyPropertyChanged(NameOf(bValue))
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
Public Class OrderedMachiningParam
|
|
Inherits MachiningParam
|
|
|
|
Protected m_ValueList As ObservableCollection(Of IdNameStruct)
|
|
Public ReadOnly Property ValueList As ObservableCollection(Of IdNameStruct)
|
|
Get
|
|
Return m_ValueList
|
|
End Get
|
|
End Property
|
|
|
|
Protected m_SelValue As IdNameStruct
|
|
Public Overridable Property SelValue As IdNameStruct
|
|
Get
|
|
Return m_SelValue
|
|
End Get
|
|
Set(value As IdNameStruct)
|
|
m_SelValue = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_OrigValue As String
|
|
Public ReadOnly Property OrigValue As String
|
|
Get
|
|
Return m_OrigValue
|
|
End Get
|
|
End Property
|
|
|
|
Public Property Value As String
|
|
Get
|
|
Dim Temp As String = ""
|
|
For Each Item In m_ValueList
|
|
Temp &= Item.Id & ","
|
|
Next
|
|
Return Temp.TrimEnd(","c)
|
|
End Get
|
|
Set(value As String)
|
|
Select Case Type
|
|
Case Params.PRINT_ORDER
|
|
Dim StandardValueList() As String = {Machining.MPAR_PRINT_ORDER.SHELL,
|
|
Machining.MPAR_PRINT_ORDER.EXTRA_SHELL,
|
|
Machining.MPAR_PRINT_ORDER.INFILL,
|
|
Machining.MPAR_PRINT_ORDER.AUX_SOLID,
|
|
Machining.MPAR_PRINT_ORDER.RIB}
|
|
Dim StringValueList() As String = StandardValueList
|
|
If value.Length = 9 Then
|
|
StringValueList = value.Split(","c)
|
|
End If
|
|
If StringValueList.Count <> 5 Then
|
|
StringValueList = StandardValueList
|
|
End If
|
|
If Not StringValueList.Contains(Machining.MPAR_PRINT_ORDER.SHELL) OrElse
|
|
Not StringValueList.Contains(Machining.MPAR_PRINT_ORDER.EXTRA_SHELL) OrElse
|
|
Not StringValueList.Contains(Machining.MPAR_PRINT_ORDER.INFILL) OrElse
|
|
Not StringValueList.Contains(Machining.MPAR_PRINT_ORDER.AUX_SOLID) OrElse
|
|
Not StringValueList.Contains(Machining.MPAR_PRINT_ORDER.RIB) Then
|
|
StringValueList = StandardValueList
|
|
End If
|
|
m_ValueList.Clear()
|
|
For Each StringValue In StringValueList
|
|
Dim nValue As Integer = -1
|
|
Integer.TryParse(StringValue, nValue)
|
|
Dim ItemList As IdNameStruct
|
|
Select Case nValue
|
|
Case Machining.MPAR_PRINT_ORDER.SHELL
|
|
ItemList = New IdNameStruct(Machining.MPAR_PRINT_ORDER.SHELL, "Shell")
|
|
Case Machining.MPAR_PRINT_ORDER.EXTRA_SHELL
|
|
ItemList = New IdNameStruct(Machining.MPAR_PRINT_ORDER.EXTRA_SHELL, "Extra Shell")
|
|
Case Machining.MPAR_PRINT_ORDER.INFILL
|
|
ItemList = New IdNameStruct(Machining.MPAR_PRINT_ORDER.INFILL, "Infill")
|
|
Case Machining.MPAR_PRINT_ORDER.AUX_SOLID
|
|
ItemList = New IdNameStruct(Machining.MPAR_PRINT_ORDER.AUX_SOLID, "Filled Solids")
|
|
Case Machining.MPAR_PRINT_ORDER.RIB
|
|
ItemList = New IdNameStruct(Machining.MPAR_PRINT_ORDER.RIB, "Ribs")
|
|
End Select
|
|
m_ValueList.Add(ItemList)
|
|
Next
|
|
End Select
|
|
End Set
|
|
End Property
|
|
|
|
Public Overrides ReadOnly Property bIsModified As Boolean
|
|
Get
|
|
Return Value <> m_OrigValue
|
|
End Get
|
|
End Property
|
|
|
|
' Definizione comandi
|
|
Private m_cmdMoveUpOrder As ICommand
|
|
Private m_cmdMoveDownOrder As ICommand
|
|
Private m_cmdResetOrder As ICommand
|
|
|
|
Sub New(Type As Params)
|
|
MyBase.New(Type)
|
|
End Sub
|
|
|
|
Sub New(Type As Params, nIndex As Integer)
|
|
MyBase.New(Type)
|
|
If nIndex = 0 Then
|
|
m_ValueList = New ObservableCollection(Of IdNameStruct)
|
|
m_SelValue = Nothing
|
|
Else
|
|
Select Case Type
|
|
Case Params.PRINT_ORDER
|
|
m_ValueList = New ObservableCollection(Of IdNameStruct)
|
|
ReadMachiningParamString(nIndex, MAC_PRINTORDER, "", Value)
|
|
End Select
|
|
End If
|
|
m_OrigValue = Value
|
|
m_SelValue = Nothing
|
|
NotifyPropertyChanged(NameOf(SelValue))
|
|
End Sub
|
|
|
|
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
|
Select Case Type
|
|
Case Params.PRINT_ORDER
|
|
WriteMachiningParam(nIndex, MAC_PRINTORDER, Value, sFilePath)
|
|
End Select
|
|
End Sub
|
|
|
|
Friend Overrides Sub SaveParam()
|
|
m_OrigValue = Value
|
|
End Sub
|
|
|
|
Friend Overrides Sub ResetParam()
|
|
Value = m_OrigValue
|
|
m_SelValue = Nothing
|
|
NotifyPropertyChanged(NameOf(ValueList))
|
|
NotifyPropertyChanged(NameOf(SelValue))
|
|
End Sub
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "MoveUpOrder"
|
|
|
|
Public ReadOnly Property MoveUpOrder_Command As ICommand
|
|
Get
|
|
If m_cmdMoveUpOrder Is Nothing Then
|
|
m_cmdMoveUpOrder = New Command(AddressOf MoveUpOrder)
|
|
End If
|
|
Return m_cmdMoveUpOrder
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub MoveUpOrder()
|
|
If IsNothing(m_SelValue) Then Return
|
|
Dim nIndex As Integer = m_ValueList.IndexOf(m_SelValue)
|
|
If nIndex < 0 Then Return
|
|
If nIndex > 0 Then
|
|
m_ValueList.Move(nIndex, nIndex - 1)
|
|
NotifyPropertyChanged(NameOf(Value))
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' MoveUpOrder
|
|
|
|
#Region "MoveDownOrder"
|
|
|
|
Public ReadOnly Property MoveDownOrder_Command As ICommand
|
|
Get
|
|
If m_cmdMoveDownOrder Is Nothing Then
|
|
m_cmdMoveDownOrder = New Command(AddressOf MoveDownOrder)
|
|
End If
|
|
Return m_cmdMoveDownOrder
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub MoveDownOrder()
|
|
If IsNothing(m_SelValue) Then Return
|
|
Dim nIndex As Integer = m_ValueList.IndexOf(m_SelValue)
|
|
If nIndex < 0 Then Return
|
|
If nIndex < m_ValueList.Count - 1 Then
|
|
m_ValueList.Move(nIndex, nIndex + 1)
|
|
NotifyPropertyChanged(NameOf(Value))
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' MoveDownOrder
|
|
|
|
#Region "ResetOrder"
|
|
|
|
Public ReadOnly Property ResetOrder_Command As ICommand
|
|
Get
|
|
If m_cmdResetOrder Is Nothing Then
|
|
m_cmdResetOrder = New Command(AddressOf ResetOrder)
|
|
End If
|
|
Return m_cmdResetOrder
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub ResetOrder()
|
|
Dim CurrValue As String = Value
|
|
m_ValueList = New ObservableCollection(Of IdNameStruct)(m_ValueList.OrderBy(Function(x) x.Id))
|
|
If Value <> CurrValue Then
|
|
SelValue = Nothing
|
|
NotifyPropertyChanged(NameOf(ValueList))
|
|
NotifyPropertyChanged(NameOf(Value))
|
|
NotifyPropertyChanged(NameOf(SelValue))
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' ResetOrder
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
End Class
|