Files
icarus/Icarus/MachiningDb/Machining.vb
T
2022-10-03 18:08:20 +02:00

1190 lines
51 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.ComponentModel
Imports EgtUILib
Imports EgtWPFLib5
Public Class Machining
Inherits VMBase
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_INFILL As Integer
NONE = 1
OFFSET = 2
ZIGZAG = 3
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))
NotifyPropertyChanged(NameOf(ghName))
End Sub
Protected m_nIndex As Integer
Public ReadOnly Property nIndex As Integer
Get
Return m_nIndex
End Get
End Property
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
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)
NotifyPropertyChanged(NameOf(ghName))
End Set
End Property
Public ReadOnly Property ghName As String
Get
Return m_sName & If(m_bIsModified, "*", "")
End Get
End Property
Sub New()
End Sub
Sub New(nIndex As Integer)
m_nIndex = nIndex
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
If GetPrivateProfileString(nIndex, MAC_GUID, "", m_sGUID, sMacIniFilePath) > 0 Then
GetPrivateProfileString(nIndex, MAC_NAME, "", m_sName, sMacIniFilePath)
Else
nIndex = -1
m_sGUID = Guid.NewGuid.ToString()
m_sName = "PrintingParam"
End If
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.LEADIN, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.LEADOUT, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.COASTING, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.WIPE, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.TOOL, 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(nIndex As Integer, sGUID As String, sName As String)
' m_nIndex = nIndex
' m_sName = sName
' m_sGUID = sGUID
' ReadAllParams()
'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 ReadAllParams()
' Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
' m_bSlicing45 = GetPrivateProfileDouble(m_nIndex, MAC_SLICING45, 0, sMacIniFilePath)
' m_dStrandH = GetPrivateProfileDouble(m_nIndex, MAC_STRANDH, 0, sMacIniFilePath)
' m_dStrandW = GetPrivateProfileDouble(m_nIndex, MAC_STRANDW, 0, sMacIniFilePath)
' m_nStrandCount = GetPrivateProfileDouble(m_nIndex, MAC_STRANDCOUNT, 0, sMacIniFilePath)
' m_dOffset = GetPrivateProfileDouble(m_nIndex, MAC_OFFSET, 0, sMacIniFilePath)
' m_dStartPointOffsetOnSlice = GetPrivateProfileDouble(m_nIndex, MAC_STARTPOINTOFFSETONSLICE, 0, sMacIniFilePath)
' m_dStrandOrder = GetPrivateProfileDouble(m_nIndex, MAC_STRANDORDER, 0, sMacIniFilePath)
' m_dDirection = GetPrivateProfileDouble(m_nIndex, MAC_DIRECTION, 0, sMacIniFilePath)
' m_dLinkType = GetPrivateProfileDouble(m_nIndex, MAC_LINKTYPE, 0, sMacIniFilePath)
' m_dLinkParam = GetPrivateProfileDouble(m_nIndex, MAC_LINKPARAM, 0, sMacIniFilePath)
' m_dLinkZup = GetPrivateProfileDouble(m_nIndex, MAC_LINKZUP, 0, sMacIniFilePath)
' m_dOffsetLeadPoint = GetPrivateProfileDouble(m_nIndex, MAC_OFFSETLEADPOINT, 0, sMacIniFilePath)
' m_dLeadIn = GetPrivateProfileDouble(m_nIndex, MAC_LEADIN, 0, sMacIniFilePath)
' m_dLeadInTangDist = GetPrivateProfileDouble(m_nIndex, MAC_LEADINTANGDIST, 0, sMacIniFilePath)
' m_dLeadInOrthoDist = GetPrivateProfileDouble(m_nIndex, MAC_LEADINORTHODIST, 0, sMacIniFilePath)
' m_dLeadOut = GetPrivateProfileDouble(m_nIndex, MAC_LEADOUT, 0, sMacIniFilePath)
' m_dLeadOutTangDist = GetPrivateProfileDouble(m_nIndex, MAC_LEADOUTTANGDIST, 0, sMacIniFilePath)
' m_dLeadOutOrthoDist = GetPrivateProfileDouble(m_nIndex, MAC_LEADOUTORTHODIST, 0, sMacIniFilePath)
' m_dCoastingLen = GetPrivateProfileDouble(m_nIndex, MAC_COASTINGLEN, 0, sMacIniFilePath)
' m_dCoastingFeed = GetPrivateProfileDouble(m_nIndex, MAC_COASTINGFEED, 0, sMacIniFilePath)
' m_dWipeLen = GetPrivateProfileDouble(m_nIndex, MAC_WIPELEN, 0, sMacIniFilePath)
' m_dWipeFeedPu = GetPrivateProfileDouble(m_nIndex, MAC_WIPEFEEDPU, 0, sMacIniFilePath)
' m_dFloorCount = GetPrivateProfileDouble(m_nIndex, MAC_FLOORCOUNT, 0, sMacIniFilePath)
' m_dG0Feed = GetPrivateProfileDouble(m_nIndex, MAC_G0FEED, 0, sMacIniFilePath)
' m_dToolDiam = GetPrivateProfileDouble(m_nIndex, MAC_TOOLDIAM, 0, sMacIniFilePath)
' m_dRibsOverlap = GetPrivateProfileDouble(m_nIndex, MAC_RIBSOVERLAP, 0, sMacIniFilePath)
' m_dRibsStrandCount = GetPrivateProfileDouble(m_nIndex, MAC_RIBSSTRANDCOUNT, 0, sMacIniFilePath)
' m_dRibsLink = GetPrivateProfileDouble(m_nIndex, MAC_RIBSLINK, 0, sMacIniFilePath)
' m_dRibsInvertOrder = GetPrivateProfileDouble(m_nIndex, MAC_RIBSINVERTORDER, 0, sMacIniFilePath)
' m_dRibsInvertDirection = GetPrivateProfileDouble(m_nIndex, MAC_RIBSINVERTDIRECTION, 0, sMacIniFilePath)
' m_dRibsLeadInInvert = GetPrivateProfileDouble(m_nIndex, MAC_RIBSLEADININVERT, 0, sMacIniFilePath)
' m_dRibsLeadInLen = GetPrivateProfileDouble(m_nIndex, MAC_RIBSLEADINLEN, 0, sMacIniFilePath)
' m_dRibsLeadOutInvert = GetPrivateProfileDouble(m_nIndex, MAC_RIBSLEADOUTINVERT, 0, sMacIniFilePath)
' m_dRibsLeadOutLen = GetPrivateProfileDouble(m_nIndex, MAC_RIBSLEADOUTLEN, 0, sMacIniFilePath)
' m_dRibsLeadOutCoasting = GetPrivateProfileDouble(m_nIndex, MAC_RIBSLEADOUTCOASTING, 0, sMacIniFilePath)
' m_dRibsLeadOutWipe = GetPrivateProfileDouble(m_nIndex, MAC_RIBSLEADOUTWIPE, 0, sMacIniFilePath)
' m_dRibsLeadOutWipeDir = GetPrivateProfileDouble(m_nIndex, MAC_RIBSLEADOUTWIPEDIR, 0, sMacIniFilePath)
'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()
For Each Cathegory In m_CathegoryList
Cathegory.SaveParams()
Next
End Sub
Friend Sub ResetModification()
If bIsModified Then
' annullo le modifiche di tutti i parametri
SaveParams()
' 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)
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
WritePrivateProfileString(nIndex, MAC_GUID, m_sGUID, sMacIniFilePath)
WritePrivateProfileString(nIndex, MAC_NAME, m_sName, sMacIniFilePath)
For Each Cathegory In m_CathegoryList
Cathegory.WriteParamOnDb(nIndex)
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)
m_bIsModified = m_CathegoryList.Any(Function(x) x.MachiningParamList.Any(Function(y) y.bIsModified))
NotifyPropertyChanged(NameOf(ghName))
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
LEADIN = 3
LEADOUT = 4
COASTING = 5
WIPE = 6
TOOL = 7
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 CheckMachiningParam(MachiningParam.Params.SLICING45, 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.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)})
Case Cathegories.LINK
m_sName = "Link"
m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.LINKTYPE, nIndex),
New NumericMachiningParam(MachiningParam.Params.LINKPARAM, nIndex),
New NumericMachiningParam(MachiningParam.Params.LINKZUP, nIndex)})
Case Cathegories.LEADIN
m_sName = "Lead In"
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.OFFSETLEADPOINT, nIndex),
New ComboMachiningParam(MachiningParam.Params.LEADIN, nIndex),
New NumericMachiningParam(MachiningParam.Params.LEADINTANGDIST, nIndex),
New NumericMachiningParam(MachiningParam.Params.LEADINORTHODIST, nIndex)})
Case Cathegories.LEADOUT
m_sName = "Lead Out"
m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.LEADOUT, nIndex),
New NumericMachiningParam(MachiningParam.Params.LEADOUTTANGDIST, nIndex),
New NumericMachiningParam(MachiningParam.Params.LEADOUTORTHODIST, nIndex)})
Case Cathegories.COASTING
m_sName = "Coasting"
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.COASTINGLEN, nIndex),
New NumericMachiningParam(MachiningParam.Params.COASTINGFEED, nIndex)})
Case Cathegories.WIPE
m_sName = "Wipe"
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.WIPELEN, nIndex),
New NumericMachiningParam(MachiningParam.Params.WIPEFEEDPU, nIndex)})
Case Cathegories.TOOL
m_sName = "Tool"
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.TOOLDIAM, nIndex)})
Case Cathegories.RIBS
m_sName = "Ribs"
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nIndex),
New NumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nIndex),
New NumericMachiningParam(MachiningParam.Params.RIBSLINK, nIndex),
New NumericMachiningParam(MachiningParam.Params.RIBSINVERTORDER, nIndex),
New NumericMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nIndex),
New NumericMachiningParam(MachiningParam.Params.RIBSLEADININVERT, nIndex),
New NumericMachiningParam(MachiningParam.Params.RIBSLEADINLEN, nIndex),
New NumericMachiningParam(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 sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
Dim sMaterials As String = ""
GetPrivateProfileString(nIndex, MAC_MATERIALS, "", sMaterials, sMacIniFilePath)
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)
If Type = Cathegories.MATERIALS Then
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
WritePrivateProfileString(nIndex, MAC_MATERIALS, "", sMacIniFilePath)
End If
For Each Param In m_MachiningParamList
Param.WriteParamOnDb(nIndex)
Next
End Sub
End Class
Public MustInherit Class MachiningParam
Inherits VMBase
Public Enum Params As Integer
NAME = 2
SLICING45 = 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 = 22
WIPELEN = 23
WIPEFEEDPU = 24
FLOORCOUNT = 25
G0FEED = 26
TOOLDIAM = 27
RIBSOVERLAP = 28
RIBSSTRANDCOUNT = 29
RIBSLINK = 30
RIBSINVERTORDER = 31
RIBSINVERTDIRECTION = 32
RIBSLEADININVERT = 33
RIBSLEADINLEN = 34
RIBSLEADOUTINVERT = 35
RIBSLEADOUTLEN = 36
RIBSLEADOUTCOASTING = 37
RIBSLEADOUTWIPE = 38
RIBSLEADOUTWIPEDIR = 39
SHELLNBRDIFFERENCE = 40
SHELLNBRCOASTING = 41
SHELLNBRWIPE = 42
SHELLNBRWIPEDIR = 43
AUXSOLIDSOVERLAP = 44
AUXSOLIDSINFILL = 45
AUXSOLIDSSTRANDORDER = 46
AUXSOLIDSLINKTYPE = 47
AUXSOLIDSLINKPARAM = 48
AUXSOLIDSSTARTPOINTOFFSETONSLICE = 49
AUXSOLIDSCOASTINGLEN = 50
AUXSOLIDSWIPELEN = 51
AUXSOLIDSWIPEDIR = 52
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.SLICING45
m_sName = "Slicing 45°"
Case Params.STRANDH
m_sName = "StrandH"
Case Params.STRANDW
m_sName = "StrandW"
Case Params.STRANDCOUNT
m_sName = "Strand Count"
Case Params.OFFSET
m_sName = "Offset"
Case Params.STARTPOINTOFFSETONSLICE
m_sName = "Start Point Offset On Slice"
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
m_sName = "Coasting Feed"
Case Params.WIPELEN
m_sName = "Wipe Len"
Case Params.WIPEFEEDPU
m_sName = "Wipe Feed Pu"
Case Params.FLOORCOUNT
m_sName = "Floor Count"
Case Params.G0FEED
m_sName = "G0 Feed"
Case Params.TOOLDIAM
m_sName = "Tool Diam"
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"
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"
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"
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)
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), m_dValue)
End Get
Set(value As String)
If m_bIsLen Then
StringToLen(value, m_dValue)
Else
m_dValue = value
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)
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
Select Case Type
Case Params.STRANDH
m_dValue = GetPrivateProfileDouble(nIndex, MAC_STRANDH, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.STRANDW
m_dValue = GetPrivateProfileDouble(nIndex, MAC_STRANDW, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.STRANDCOUNT
m_dValue = GetPrivateProfileDouble(nIndex, MAC_STRANDCOUNT, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.OFFSET
m_dValue = GetPrivateProfileDouble(nIndex, MAC_OFFSET, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.STARTPOINTOFFSETONSLICE
m_dValue = GetPrivateProfileDouble(nIndex, MAC_STARTPOINTOFFSETONSLICE, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.LINKPARAM
m_dValue = GetPrivateProfileDouble(nIndex, MAC_LINKPARAM, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.LINKZUP
m_dValue = GetPrivateProfileDouble(nIndex, MAC_LINKZUP, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.OFFSETLEADPOINT
m_dValue = GetPrivateProfileDouble(nIndex, MAC_OFFSETLEADPOINT, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.LEADINTANGDIST
m_dValue = GetPrivateProfileDouble(nIndex, MAC_LEADINTANGDIST, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.LEADINORTHODIST
m_dValue = GetPrivateProfileDouble(nIndex, MAC_LEADINORTHODIST, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.LEADOUTTANGDIST
m_dValue = GetPrivateProfileDouble(nIndex, MAC_LEADOUTTANGDIST, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.LEADOUTORTHODIST
m_dValue = GetPrivateProfileDouble(nIndex, MAC_LEADOUTORTHODIST, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.COASTINGLEN
m_dValue = GetPrivateProfileDouble(nIndex, MAC_COASTINGLEN, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.COASTINGFEED
m_dValue = GetPrivateProfileDouble(nIndex, MAC_COASTINGFEED, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.WIPELEN
m_dValue = GetPrivateProfileDouble(nIndex, MAC_WIPELEN, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.WIPEFEEDPU
m_dValue = GetPrivateProfileDouble(nIndex, MAC_WIPEFEEDPU, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.FLOORCOUNT
m_dValue = GetPrivateProfileDouble(nIndex, MAC_FLOORCOUNT, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.G0FEED
m_dValue = GetPrivateProfileDouble(nIndex, MAC_G0FEED, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.TOOLDIAM
m_dValue = GetPrivateProfileDouble(nIndex, MAC_TOOLDIAM, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSOVERLAP
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSOVERLAP, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSSTRANDCOUNT
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSSTRANDCOUNT, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSLINK
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSLINK, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSINVERTORDER
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSINVERTORDER, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSINVERTDIRECTION
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSINVERTDIRECTION, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSLEADININVERT
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSLEADININVERT, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSLEADINLEN
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSLEADINLEN, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSLEADOUTINVERT
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSLEADOUTINVERT, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSLEADOUTLEN
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSLEADOUTLEN, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSLEADOUTCOASTING
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSLEADOUTCOASTING, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSLEADOUTWIPE
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSLEADOUTWIPE, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.RIBSLEADOUTWIPEDIR
m_dValue = GetPrivateProfileDouble(nIndex, MAC_RIBSLEADOUTWIPEDIR, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.SHELLNBRDIFFERENCE
m_dValue = GetPrivateProfileDouble(nIndex, MAC_SHELLNBRDIFFERENCE, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.SHELLNBRCOASTING
m_dValue = GetPrivateProfileDouble(nIndex, MAC_SHELLNBRCOASTING, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.SHELLNBRWIPE
m_dValue = GetPrivateProfileDouble(nIndex, MAC_SHELLNBRWIPE, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.SHELLNBRWIPEDIR
m_dValue = GetPrivateProfileDouble(nIndex, MAC_SHELLNBRWIPEDIR, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.AUXSOLIDSOVERLAP
m_dValue = GetPrivateProfileDouble(nIndex, MAC_AUXSOLIDSOVERLAP, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.AUXSOLIDSLINKPARAM
m_dValue = GetPrivateProfileDouble(nIndex, MAC_AUXSOLIDSLINKPARAM, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE
m_dValue = GetPrivateProfileDouble(nIndex, MAC_AUXSOLIDSSTARTPOINTOFFSETONSLICE, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.AUXSOLIDSCOASTINGLEN
m_dValue = GetPrivateProfileDouble(nIndex, MAC_AUXSOLIDSCOASTINGLEN, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.AUXSOLIDSWIPELEN
m_dValue = GetPrivateProfileDouble(nIndex, MAC_AUXSOLIDSWIPELEN, 0, sMacIniFilePath)
m_bIsLen = True
Case Params.AUXSOLIDSWIPEDIR
m_dValue = GetPrivateProfileDouble(nIndex, MAC_AUXSOLIDSWIPEDIR, 0, sMacIniFilePath)
m_bIsLen = True
End Select
m_dOrigValue = m_dValue
End Sub
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
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
WritePrivateProfileString(nIndex, MAC_STRANDH, sWriteValue, sMacIniFilePath)
Case Params.STRANDW
WritePrivateProfileString(nIndex, MAC_STRANDW, sWriteValue, sMacIniFilePath)
Case Params.STRANDCOUNT
WritePrivateProfileString(nIndex, MAC_STRANDCOUNT, sWriteValue, sMacIniFilePath)
Case Params.OFFSET
WritePrivateProfileString(nIndex, MAC_OFFSET, sWriteValue, sMacIniFilePath)
Case Params.STARTPOINTOFFSETONSLICE
WritePrivateProfileString(nIndex, MAC_STARTPOINTOFFSETONSLICE, sWriteValue, sMacIniFilePath)
Case Params.LINKPARAM
WritePrivateProfileString(nIndex, MAC_LINKPARAM, sWriteValue, sMacIniFilePath)
Case Params.LINKZUP
WritePrivateProfileString(nIndex, MAC_LINKZUP, sWriteValue, sMacIniFilePath)
Case Params.OFFSETLEADPOINT
WritePrivateProfileString(nIndex, MAC_OFFSETLEADPOINT, sWriteValue, sMacIniFilePath)
Case Params.LEADINTANGDIST
WritePrivateProfileString(nIndex, MAC_LEADINTANGDIST, sWriteValue, sMacIniFilePath)
Case Params.LEADINORTHODIST
WritePrivateProfileString(nIndex, MAC_LEADINORTHODIST, sWriteValue, sMacIniFilePath)
Case Params.LEADOUTTANGDIST
WritePrivateProfileString(nIndex, MAC_LEADOUTTANGDIST, sWriteValue, sMacIniFilePath)
Case Params.LEADOUTORTHODIST
WritePrivateProfileString(nIndex, MAC_LEADOUTORTHODIST, sWriteValue, sMacIniFilePath)
Case Params.COASTINGLEN
WritePrivateProfileString(nIndex, MAC_COASTINGLEN, sWriteValue, sMacIniFilePath)
Case Params.COASTINGFEED
WritePrivateProfileString(nIndex, MAC_COASTINGFEED, sWriteValue, sMacIniFilePath)
Case Params.WIPELEN
WritePrivateProfileString(nIndex, MAC_WIPELEN, sWriteValue, sMacIniFilePath)
Case Params.WIPEFEEDPU
WritePrivateProfileString(nIndex, MAC_WIPEFEEDPU, sWriteValue, sMacIniFilePath)
Case Params.FLOORCOUNT
WritePrivateProfileString(nIndex, MAC_FLOORCOUNT, sWriteValue, sMacIniFilePath)
Case Params.G0FEED
WritePrivateProfileString(nIndex, MAC_G0FEED, sWriteValue, sMacIniFilePath)
Case Params.TOOLDIAM
WritePrivateProfileString(nIndex, MAC_TOOLDIAM, sWriteValue, sMacIniFilePath)
Case Params.RIBSOVERLAP
WritePrivateProfileString(nIndex, MAC_RIBSOVERLAP, sWriteValue, sMacIniFilePath)
Case Params.RIBSSTRANDCOUNT
WritePrivateProfileString(nIndex, MAC_RIBSSTRANDCOUNT, sWriteValue, sMacIniFilePath)
Case Params.RIBSLINK
WritePrivateProfileString(nIndex, MAC_RIBSLINK, sWriteValue, sMacIniFilePath)
Case Params.RIBSINVERTORDER
WritePrivateProfileString(nIndex, MAC_RIBSINVERTORDER, sWriteValue, sMacIniFilePath)
Case Params.RIBSINVERTDIRECTION
WritePrivateProfileString(nIndex, MAC_RIBSINVERTDIRECTION, sWriteValue, sMacIniFilePath)
Case Params.RIBSLEADININVERT
WritePrivateProfileString(nIndex, MAC_RIBSLEADININVERT, sWriteValue, sMacIniFilePath)
Case Params.RIBSLEADINLEN
WritePrivateProfileString(nIndex, MAC_RIBSLEADINLEN, sWriteValue, sMacIniFilePath)
Case Params.RIBSLEADOUTINVERT
WritePrivateProfileString(nIndex, MAC_RIBSLEADOUTINVERT, sWriteValue, sMacIniFilePath)
Case Params.RIBSLEADOUTLEN
WritePrivateProfileString(nIndex, MAC_RIBSLEADOUTLEN, sWriteValue, sMacIniFilePath)
Case Params.RIBSLEADOUTCOASTING
WritePrivateProfileString(nIndex, MAC_RIBSLEADOUTCOASTING, sWriteValue, sMacIniFilePath)
Case Params.RIBSLEADOUTWIPE
WritePrivateProfileString(nIndex, MAC_RIBSLEADOUTWIPE, sWriteValue, sMacIniFilePath)
Case Params.RIBSLEADOUTWIPEDIR
WritePrivateProfileString(nIndex, MAC_RIBSLEADOUTWIPEDIR, sWriteValue, sMacIniFilePath)
Case Params.SHELLNBRDIFFERENCE
WritePrivateProfileString(nIndex, MAC_SHELLNBRDIFFERENCE, sWriteValue, sMacIniFilePath)
Case Params.SHELLNBRCOASTING
WritePrivateProfileString(nIndex, MAC_SHELLNBRCOASTING, sWriteValue, sMacIniFilePath)
Case Params.SHELLNBRWIPE
WritePrivateProfileString(nIndex, MAC_SHELLNBRWIPE, sWriteValue, sMacIniFilePath)
Case Params.SHELLNBRWIPEDIR
WritePrivateProfileString(nIndex, MAC_SHELLNBRWIPEDIR, sWriteValue, sMacIniFilePath)
Case Params.AUXSOLIDSOVERLAP
WritePrivateProfileString(nIndex, MAC_AUXSOLIDSOVERLAP, sWriteValue, sMacIniFilePath)
Case Params.AUXSOLIDSLINKPARAM
WritePrivateProfileString(nIndex, MAC_AUXSOLIDSLINKPARAM, sWriteValue, sMacIniFilePath)
Case Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE
WritePrivateProfileString(nIndex, MAC_AUXSOLIDSSTARTPOINTOFFSETONSLICE, sWriteValue, sMacIniFilePath)
Case Params.AUXSOLIDSCOASTINGLEN
WritePrivateProfileString(nIndex, MAC_AUXSOLIDSCOASTINGLEN, sWriteValue, sMacIniFilePath)
Case Params.AUXSOLIDSWIPELEN
WritePrivateProfileString(nIndex, MAC_AUXSOLIDSWIPELEN, sWriteValue, sMacIniFilePath)
Case Params.AUXSOLIDSWIPEDIR
WritePrivateProfileString(nIndex, MAC_AUXSOLIDSWIPEDIR, sWriteValue, sMacIniFilePath)
End Select
End Sub
Friend Overrides Sub SaveParam()
m_dOrigValue = m_dValue
End Sub
Friend Overrides Sub ResetParam()
m_dValue = m_dOrigValue
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)
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
Select Case Type
Case Params.STRANDH
'WritePrivateProfileString(nIndex, MAC_STRANDH, sWriteValue, sMacIniFilePath)
End Select
End Sub
Friend Overrides Sub SaveParam()
m_sOrigValue = m_sValue
End Sub
Friend Overrides Sub ResetParam()
m_sValue = m_sOrigValue
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, nIndex As Integer)
MyBase.New(Type)
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
Select Case Type
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 = GetPrivateProfileDouble(nIndex, MAC_STRANDORDER, 0, sMacIniFilePath))
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 = GetPrivateProfileDouble(nIndex, MAC_DIRECTION, 0, sMacIniFilePath))
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 = GetPrivateProfileDouble(nIndex, MAC_LINKTYPE, 0, sMacIniFilePath))
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 = GetPrivateProfileDouble(nIndex, MAC_LEADIN, 0, sMacIniFilePath))
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 = GetPrivateProfileDouble(nIndex, MAC_LEADOUT, 0, sMacIniFilePath))
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 = GetPrivateProfileDouble(nIndex, MAC_AUXSOLIDSINFILL, 0, sMacIniFilePath))
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 = GetPrivateProfileDouble(nIndex, MAC_AUXSOLIDSSTRANDORDER, 0, sMacIniFilePath))
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 = GetPrivateProfileDouble(nIndex, MAC_AUXSOLIDSLINKTYPE, 0, sMacIniFilePath))
End Select
m_OrigSelValue = m_SelValue
End Sub
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
Select Case Type
Case Params.STRANDORDER
WritePrivateProfileString(nIndex, MAC_STRANDORDER, m_SelValue.Id, sMacIniFilePath)
Case Params.DIRECTION
WritePrivateProfileString(nIndex, MAC_DIRECTION, m_SelValue.Id, sMacIniFilePath)
Case Params.LINKTYPE
WritePrivateProfileString(nIndex, MAC_LINKTYPE, m_SelValue.Id, sMacIniFilePath)
Case Params.LEADIN
WritePrivateProfileString(nIndex, MAC_LEADIN, m_SelValue.Id, sMacIniFilePath)
Case Params.LEADOUT
WritePrivateProfileString(nIndex, MAC_LEADOUT, m_SelValue.Id, sMacIniFilePath)
Case Params.AUXSOLIDSINFILL
WritePrivateProfileString(nIndex, MAC_AUXSOLIDSINFILL, m_SelValue.Id, sMacIniFilePath)
Case Params.AUXSOLIDSSTRANDORDER
WritePrivateProfileString(nIndex, MAC_AUXSOLIDSSTRANDORDER, m_SelValue.Id, sMacIniFilePath)
Case Params.AUXSOLIDSLINKTYPE
WritePrivateProfileString(nIndex, MAC_AUXSOLIDSLINKTYPE, m_SelValue.Id, sMacIniFilePath)
End Select
End Sub
Friend Overrides Sub SaveParam()
m_OrigSelValue = m_SelValue
End Sub
Friend Overrides Sub ResetParam()
m_SelValue = m_OrigSelValue
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, nIndex As Integer)
MyBase.New(Type)
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
Select Case Type
Case Params.SLICING45
m_bValue = GetPrivateProfileDouble(nIndex, MAC_SLICING45, 0, sMacIniFilePath)
End Select
m_bOrigValue = m_bValue
End Sub
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
Select Case Type
Case Params.SLICING45
WritePrivateProfileString(nIndex, MAC_SLICING45, If(m_bValue, 1, 0), sMacIniFilePath)
End Select
End Sub
Friend Overrides Sub SaveParam()
m_bOrigValue = m_bValue
End Sub
Friend Overrides Sub ResetParam()
m_bValue = m_bOrigValue
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)
Dim sMacIniFilePath As String = Map.refMainWindowVM.MainWindowM.sMachiningsDir & "/Machinings.ini"
Dim sMaterials As String = ""
GetPrivateProfileString(nIndex, MAC_MATERIALS, "", sMaterials, sMacIniFilePath)
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
WritePrivateProfileString(nIndex, MAC_MATERIALS, sMaterials, sMacIniFilePath)
End Sub
Friend Overrides Sub SaveParam()
m_bOrigValue = m_bValue
End Sub
Friend Overrides Sub ResetParam()
m_bValue = m_bOrigValue
End Sub
End Class