6d18e9eba5
- correzione per conversioni di stringhe in double e viceversa.
2156 lines
102 KiB
VB.net
2156 lines
102 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.Collections.Specialized
|
|
Imports System.ComponentModel
|
|
Imports System.Reflection
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
Imports Icarus.Machining
|
|
|
|
Public Class Machining
|
|
Inherits VMBase
|
|
|
|
Public Enum MPAR_SLICINGTYPE As Integer
|
|
VERTICAL = 1
|
|
DEG45 = 2
|
|
DEG45_Y = 3
|
|
HORIZONTAL = 4
|
|
MULTIPLANAR = 5
|
|
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_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_UNBOUNDED = 5
|
|
RIB_EXTERNAL = 6
|
|
RIB_INTERNAL = 7
|
|
RIB_SUPPORT = 8
|
|
End Enum
|
|
|
|
Public Enum MPAR_INFILL_TYPE As Integer
|
|
NONE = 0
|
|
OFFSET = 16
|
|
ZIGZAG = 17
|
|
LINES = 32
|
|
GRID = 33
|
|
ZIGZAG_GRID = 34
|
|
HONEYCOMB = 35
|
|
HONEYCOMB_GRID = 36
|
|
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 = "New Machining"
|
|
End If
|
|
m_sOrigName = m_sName
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nIndex, Me))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.LINK, nIndex, Me))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.RIBS, nIndex, Me))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nIndex, Me))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nIndex, Me))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.INFILL, nIndex, Me))
|
|
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, nIndex, Me))
|
|
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 Overridable 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
|
|
|
|
Protected Overridable 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
|
|
INFILL = 11
|
|
MATERIALS = 12
|
|
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
|
|
|
|
Protected m_Machining As Machining
|
|
Friend ReadOnly Property Machining As Machining
|
|
Get
|
|
Return m_Machining
|
|
End Get
|
|
End Property
|
|
|
|
Sub New()
|
|
|
|
End Sub
|
|
|
|
Sub New(Type As Cathegories, nIndex As Integer, Machining As Machining)
|
|
m_Machining = Machining
|
|
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, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.SPIRALVASE, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.STRANDH, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.STRANDW, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.STRANDCOUNT, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.OFFSET, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.STRANDOVERLAP, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.STARTPOINTOFFSETONSLICE, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.STRANDORDER, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.DIRECTION, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.G0FEED, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.G0FEEDZ, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.LINKZUP, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.TOOLDIAM, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.FLOWRATE_PC, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.DYNAMIC_MODE, nIndex, Me),
|
|
New OrderedMachiningParam(MachiningParam.Params.PRINT_ORDER, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.PREFLOWDELAY, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.POSTFLOWDELAY, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.SCREWBACK, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.SLICINGHEIGHT, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.MAXSLICESNUMBER, nIndex, Me)})
|
|
Case Cathegories.LINK
|
|
m_sName = "Shell"
|
|
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.INNERSHELLWIDTH, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.OFFSETLEADPOINT, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.LINKTYPE, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.LINKPARAM, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.LEADIN, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.LEADINTANGDIST, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.LEADINORTHODIST, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.LEADOUT, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.LEADOUTTANGDIST, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.LEADOUTORTHODIST, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.COASTINGLEN, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.WIPELEN, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.SPIRALVASELEN, nIndex, Me)})
|
|
'New NumericMachiningParam(MachiningParam.Params.WIPEDIR, nIndex, Me)})
|
|
Case Cathegories.RIBS
|
|
m_sName = "Ribs"
|
|
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.RIBSSTRANDWIDTH, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.RIBSTYPE, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSLIMITUNBOUNDEDWITHSOLID, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSSTRANDOVERLAP, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSLINK, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLINKFILLET, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSMERGEWITHSHELL, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSINVERTMERGEDSHELLMAINLINK, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSINVERTORDER, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSINVERTSTRANDORDER, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSLEADININVERT, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADINLEN, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.RIBSLEADOUTINVERT, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTLEN, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTCOASTING, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPE, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.RIBSLEADFILLET, nIndex, Me)})
|
|
Case Cathegories.SHELL_NUMBER
|
|
m_sName = "Reduce Shell Number"
|
|
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.SHELLNBRDIFFERENCE, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.SHELLNBRCOASTING, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.SHELLNBRWIPE, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.SHELLNBRWIPEDIR, nIndex, Me)})
|
|
Case Cathegories.AUX_SOLID
|
|
m_sName = "Filled Solid"
|
|
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSSTRANDWIDTH, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.AUXSOLIDSINFILL, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.AUXSOLIDSINFILLLINK, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSSTRANDCOUNT, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.AUXSOLIDSSTRANDORDER, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.AUXSOLIDSLINKTYPE, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSLINKPARAM, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSOFFSETLEADPOINT, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSDENSITY, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSGRIDOVERLAP, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSDIRECTION, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSOFFSETX, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSOFFSETY, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSOVERLAP, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSCOASTINGLEN, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPELEN, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPEDIR, nIndex, Me)})
|
|
Case Cathegories.INFILL
|
|
m_sName = "Infill"
|
|
m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.INFILLSTRANDWIDTH, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.FLOORCOUNT, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.FLOORTYPE, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.CEILCOUNT, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.CEILTYPE, nIndex, Me),
|
|
New ComboMachiningParam(MachiningParam.Params.INFILLTYPE, nIndex, Me),
|
|
New CheckMachiningParam(MachiningParam.Params.INFILLLINK, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.INFILLDENSITY, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.INFILLGRIDOVERLAP, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.INFILLDIRECTION, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.INFILLOFFSETX, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.INFILLOFFSETY, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.INFILLOVERLAP, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.INFILLCOASTING, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.INFILLWIPE, nIndex, Me),
|
|
New NumericMachiningParam(MachiningParam.Params.INFILLWIPEDIR, nIndex, Me)})
|
|
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), Me))
|
|
Next
|
|
End Select
|
|
' verifico dipendenze tra parametri
|
|
Select Case m_Type
|
|
Case Cathegories.LINK
|
|
For Each Param In {MachiningParam.Params.LINKTYPE, MachiningParam.Params.LEADIN, MachiningParam.Params.LEADOUT}
|
|
Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
|
|
MachiningParam.ManageDependencyParam()
|
|
Next
|
|
For Each Param In {MachiningParam.Params.SPIRALVASE}
|
|
Dim GeneralCathegory As MachiningCathegory = Machining.CathegoryList.FirstOrDefault(Function(z) z.Type = Cathegories.GENERAL)
|
|
Dim MachiningParam As CheckMachiningParam = GeneralCathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
|
|
MachiningParam.ManageDependencyParam(Me)
|
|
Next
|
|
Case Cathegories.RIBS
|
|
For Each Param In {MachiningParam.Params.RIBSTYPE}
|
|
Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
|
|
MachiningParam.ManageDependencyParam()
|
|
Next
|
|
Case Cathegories.AUX_SOLID
|
|
For Each Param In {MachiningParam.Params.AUXSOLIDSINFILL}
|
|
Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
|
|
MachiningParam.ManageDependencyParam()
|
|
Next
|
|
For Each Param In {MachiningParam.Params.AUXSOLIDSSTRANDCOUNT}
|
|
Dim MachiningParam As NumericMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
|
|
MachiningParam.ManageDependencyParam()
|
|
Next
|
|
Case Cathegories.INFILL
|
|
For Each Param In {MachiningParam.Params.FLOORCOUNT, MachiningParam.Params.CEILCOUNT}
|
|
Dim MachiningParam As NumericMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
|
|
MachiningParam.ManageDependencyParam()
|
|
Next
|
|
For Each Param In {MachiningParam.Params.INFILLTYPE}
|
|
Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
|
|
MachiningParam.ManageDependencyParam()
|
|
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 MinMaxTypes As Integer
|
|
ABSOLUT = 1
|
|
PERCENTAGE = 2
|
|
End Enum
|
|
|
|
Public Enum Params As Integer
|
|
SLICINGTYPE = 1
|
|
SPIRALVASE = 2
|
|
STRANDH = 3
|
|
STRANDW = 4
|
|
STRANDCOUNT = 5
|
|
OFFSET = 6
|
|
STRANDOVERLAP = 7
|
|
STARTPOINTOFFSETONSLICE = 8
|
|
STRANDORDER = 9
|
|
DIRECTION = 10
|
|
G0FEED = 12
|
|
LINKZUP = 13
|
|
G0FEEDZ = 14
|
|
TOOLDIAM = 15
|
|
FLOWRATE_PC = 16
|
|
DYNAMIC_MODE = 17
|
|
PRINT_ORDER = 18
|
|
PREFLOWDELAY = 19
|
|
POSTFLOWDELAY = 20
|
|
SCREWBACK = 21
|
|
SLICINGHEIGHT = 22
|
|
MAXSLICESNUMBER = 23
|
|
LINKTYPE = 51
|
|
LINKPARAM = 52
|
|
LEADIN = 53
|
|
LEADINTANGDIST = 54
|
|
LEADINORTHODIST = 55
|
|
OFFSETLEADPOINT = 56
|
|
LEADOUT = 57
|
|
LEADOUTTANGDIST = 58
|
|
LEADOUTORTHODIST = 59
|
|
COASTINGLEN = 60
|
|
COASTINGFEED_PC = 61
|
|
WIPELEN = 62
|
|
WIPEFEED_PC = 63
|
|
INNERSHELLWIDTH = 64
|
|
SPIRALVASELEN = 65
|
|
'WIPEDIR = 64
|
|
RIBSTYPE = 101
|
|
RIBSOVERLAP = 102
|
|
RIBSSTRANDCOUNT = 103
|
|
RIBSLINK = 104
|
|
RIBSMERGEWITHSHELL = 105
|
|
RIBSINVERTMERGEDSHELLMAINLINK = 106
|
|
RIBSINVERTORDER = 107
|
|
RIBSINVERTDIRECTION = 108
|
|
RIBSINVERTSTRANDORDER = 109
|
|
RIBSLEADININVERT = 110
|
|
RIBSLEADINLEN = 111
|
|
RIBSLEADOUTINVERT = 112
|
|
RIBSLEADOUTLEN = 113
|
|
RIBSLEADOUTCOASTING = 114
|
|
RIBSLEADOUTWIPE = 115
|
|
RIBSLEADOUTWIPEDIR = 116
|
|
RIBSLIMITUNBOUNDEDWITHSOLID = 117
|
|
RIBSSTRANDWIDTH = 118
|
|
RIBSLINKFILLET = 119
|
|
RIBSLEADFILLET = 120
|
|
RIBSSTRANDOVERLAP = 121
|
|
SHELLNBRDIFFERENCE = 151
|
|
SHELLNBRCOASTING = 152
|
|
SHELLNBRWIPE = 153
|
|
SHELLNBRWIPEDIR = 154
|
|
AUXSOLIDSOVERLAP = 201
|
|
AUXSOLIDSINFILL = 202
|
|
AUXSOLIDSSTRANDORDER = 203
|
|
AUXSOLIDSLINKTYPE = 204
|
|
AUXSOLIDSLINKPARAM = 205
|
|
AUXSOLIDSSTARTPOINTOFFSETONSLICE = 206
|
|
AUXSOLIDSOFFSETLEADPOINT = 207
|
|
AUXSOLIDSDENSITY = 208
|
|
AUXSOLIDSGRIDOVERLAP = 209
|
|
AUXSOLIDSDIRECTION = 210
|
|
AUXSOLIDSOFFSETX = 211
|
|
AUXSOLIDSOFFSETY = 212
|
|
AUXSOLIDSCOASTINGLEN = 213
|
|
AUXSOLIDSWIPELEN = 214
|
|
AUXSOLIDSWIPEDIR = 215
|
|
AUXSOLIDSSTRANDCOUNT = 216
|
|
AUXSOLIDSINFILLLINK = 217
|
|
AUXSOLIDSSTRANDWIDTH = 218
|
|
FLOORCOUNT = 250
|
|
FLOORTYPE = 251
|
|
CEILCOUNT = 252
|
|
CEILTYPE = 253
|
|
INFILLTYPE = 254
|
|
INFILLLINK = 255
|
|
INFILLDENSITY = 256
|
|
INFILLOVERLAP = 257
|
|
INFILLGRIDOVERLAP = 258
|
|
INFILLDIRECTION = 259
|
|
INFILLOFFSETX = 260
|
|
INFILLOFFSETY = 261
|
|
INFILLCOASTING = 262
|
|
INFILLWIPE = 263
|
|
INFILLWIPEDIR = 264
|
|
INFILLSTRANDWIDTH = 265
|
|
Materials = 500
|
|
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
|
|
|
|
Protected m_Cathegory As MachiningCathegory
|
|
Public ReadOnly Property Cathegory As MachiningCathegory
|
|
Get
|
|
Return m_Cathegory
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property bIsBeta As Boolean
|
|
Get
|
|
Select Case m_Type
|
|
Case Params.FLOORCOUNT, Params.FLOORTYPE, Params.CEILCOUNT, Params.CEILTYPE, Params.INFILLTYPE
|
|
Return True
|
|
Case Else
|
|
Return False
|
|
End Select
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property IsBeta_Visibility As Visibility
|
|
Get
|
|
Return If(bIsBeta, Visibility.Visible, Visibility.Collapsed)
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(Type As Params, Cathegory As MachiningCathegory)
|
|
m_Type = Type
|
|
m_Cathegory = Cathegory
|
|
Select Case m_Type
|
|
Case Params.SLICINGTYPE
|
|
m_sName = "Slicing Type"
|
|
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.INNERSHELLWIDTH
|
|
m_sName = "Custom Inner Shell Width"
|
|
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.SPIRALVASELEN
|
|
m_sName = "Spiral Trans Len"
|
|
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.PREFLOWDELAY
|
|
m_sName = "Pre Flow Delay"
|
|
Case Params.POSTFLOWDELAY
|
|
m_sName = "Post Flow Delay"
|
|
Case Params.SCREWBACK
|
|
m_sName = "Screw Back"
|
|
Case Params.SLICINGHEIGHT
|
|
m_sName = "Slicing Height"
|
|
Case Params.MAXSLICESNUMBER
|
|
m_sName = "Max Slices Number"
|
|
Case Params.RIBSSTRANDWIDTH
|
|
m_sName = "Custom Strand Width"
|
|
Case Params.RIBSTYPE
|
|
m_sName = "Type"
|
|
Case Params.RIBSOVERLAP
|
|
m_sName = "Overlap [%]"
|
|
Case Params.RIBSSTRANDOVERLAP
|
|
m_sName = "Strand Overlap [%]"
|
|
Case Params.RIBSSTRANDCOUNT
|
|
m_sName = "Strand Count"
|
|
Case Params.RIBSLINK
|
|
m_sName = "Link"
|
|
Case Params.RIBSLINKFILLET
|
|
m_sName = "Link Fillet"
|
|
Case Params.RIBSMERGEWITHSHELL
|
|
m_sName = "Merge With Shell"
|
|
Case Params.RIBSINVERTMERGEDSHELLMAINLINK
|
|
m_sName = "Invert Merged Shell Main Link"
|
|
Case Params.RIBSINVERTORDER
|
|
m_sName = "Invert Order"
|
|
Case Params.RIBSINVERTDIRECTION
|
|
m_sName = "Invert Direction"
|
|
Case Params.RIBSINVERTSTRANDORDER
|
|
m_sName = "Invert Strand Order"
|
|
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.RIBSLEADFILLET
|
|
m_sName = "Lead Fillet"
|
|
Case Params.RIBSLIMITUNBOUNDEDWITHSOLID
|
|
m_sName = "Limit Unbounded With Solid"
|
|
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.AUXSOLIDSSTRANDWIDTH
|
|
m_sName = "Custom Strand Width"
|
|
Case Params.AUXSOLIDSOVERLAP
|
|
m_sName = "Overlap [%]"
|
|
Case Params.AUXSOLIDSINFILL
|
|
m_sName = "Infill"
|
|
Case Params.AUXSOLIDSINFILLLINK
|
|
m_sName = "Infill Link"
|
|
Case Params.AUXSOLIDSSTRANDCOUNT
|
|
m_sName = "Strand Count"
|
|
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.AUXSOLIDSOFFSETLEADPOINT
|
|
m_sName = "Offset Lead Point"
|
|
Case Params.AUXSOLIDSDENSITY
|
|
m_sName = "Density [%]"
|
|
Case Params.AUXSOLIDSGRIDOVERLAP
|
|
m_sName = "Grid Overlap [%]"
|
|
Case Params.AUXSOLIDSDIRECTION
|
|
m_sName = "Direction"
|
|
Case Params.AUXSOLIDSOFFSETX
|
|
m_sName = "Offset X"
|
|
Case Params.AUXSOLIDSOFFSETY
|
|
m_sName = "Offset Y"
|
|
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"
|
|
Case Params.INFILLSTRANDWIDTH
|
|
m_sName = "Custom Strand Width"
|
|
Case Params.FLOORTYPE
|
|
m_sName = "Floor Type"
|
|
Case Params.CEILCOUNT
|
|
m_sName = "Ceil Count"
|
|
Case Params.CEILTYPE
|
|
m_sName = "Ceil Type"
|
|
Case Params.INFILLTYPE
|
|
m_sName = "Infill Type"
|
|
Case Params.INFILLLINK
|
|
m_sName = "Link"
|
|
Case Params.INFILLDENSITY
|
|
m_sName = "Density [%]"
|
|
Case Params.INFILLOVERLAP
|
|
m_sName = "Overlap [%]"
|
|
Case Params.INFILLGRIDOVERLAP
|
|
m_sName = "Grid Overlap [%]"
|
|
Case Params.INFILLDIRECTION
|
|
m_sName = "Direction"
|
|
Case Params.INFILLOFFSETX
|
|
m_sName = "Offset X"
|
|
Case Params.INFILLOFFSETY
|
|
m_sName = "Offset Y"
|
|
Case Params.INFILLCOASTING
|
|
m_sName = "Coasting"
|
|
Case Params.INFILLWIPE
|
|
m_sName = "Wipe"
|
|
Case Params.INFILLWIPEDIR
|
|
m_sName = "Wipe Direction"
|
|
End Select
|
|
End Sub
|
|
|
|
Sub New(sName As String, Cathegory As MachiningCathegory)
|
|
m_Type = Params.MATERIALS
|
|
m_Cathegory = Cathegory
|
|
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_bIsActiveMinMax As Boolean = False
|
|
Protected m_MinMaxLinkedParam As Params = 0
|
|
Protected m_MinMaxType As MinMaxTypes = 0
|
|
Protected m_dMinValue As Double
|
|
Protected m_dMaxValue As Double
|
|
|
|
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, 2), DoubleToString(m_dValue, 2))
|
|
End Get
|
|
Set(value As String)
|
|
Dim dTempValue As Double = 0
|
|
If m_bIsLen Then
|
|
StringToLen(value, dTempValue)
|
|
Else
|
|
StringToDouble(value, dTempValue)
|
|
End If
|
|
If m_bIsActiveMinMax Then
|
|
If m_MinMaxType = MinMaxTypes.ABSOLUT Then
|
|
If dTempValue >= m_dMinValue AndAlso dTempValue <= m_dMaxValue Then
|
|
m_dValue = dTempValue
|
|
End If
|
|
ElseIf m_MinMaxType = MinMaxTypes.PERCENTAGE Then
|
|
Dim LinkedParam As MachiningParam = Nothing
|
|
' cerco il parametro a cui e' collegato
|
|
For Each CurrCathegory In Map.refMachiningDbVM.SelMachining.CathegoryList
|
|
LinkedParam = CurrCathegory.MachiningParamList.FirstOrDefault(Function(x) x.Type = m_MinMaxLinkedParam)
|
|
If Not IsNothing(LinkedParam) Then Exit For
|
|
Next
|
|
If Not IsNothing(LinkedParam) AndAlso TypeOf LinkedParam Is NumericMachiningParam Then
|
|
Dim NumericLinkedParam As NumericMachiningParam = DirectCast(LinkedParam, NumericMachiningParam)
|
|
If dTempValue >= NumericLinkedParam.dValue * m_dMinValue / 100 AndAlso dTempValue <= NumericLinkedParam.dValue * m_dMaxValue / 100 Then
|
|
m_dValue = dTempValue
|
|
End If
|
|
Else
|
|
m_dValue = dTempValue
|
|
End If
|
|
End If
|
|
Else
|
|
m_dValue = dTempValue
|
|
End If
|
|
NotifyPropertyChanged(NameOf(sValue))
|
|
ManageDependencyParam()
|
|
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
|
|
|
|
Protected m_bIsActive As Boolean = True
|
|
Public ReadOnly Property bIsActive As Boolean
|
|
Get
|
|
Return m_bIsActive
|
|
End Get
|
|
End Property
|
|
Friend Sub SetIsActive(bValue As Boolean)
|
|
m_bIsActive = bValue
|
|
NotifyPropertyChanged(NameOf(bIsActive))
|
|
End Sub
|
|
|
|
Sub New(Type As Params, Cathegory As MachiningCathegory)
|
|
MyBase.New(Type, Cathegory)
|
|
End Sub
|
|
|
|
Sub New(Type As Params, nIndex As Integer, Cathegory As MachiningCathegory)
|
|
MyBase.New(Type, Cathegory)
|
|
' leggo ed imposto eventuali min e max
|
|
Dim sMinMax As String = ""
|
|
If GetPrivateProfileString(S_MINMAX, Type, "", sMinMax, CurrentMachine.sMachIniFile) > 0 Then
|
|
Dim sMinMaxValues() As String = sMinMax.Split(","c)
|
|
Dim dMin As Double = 0
|
|
Dim dMax As Double = 0
|
|
If sMinMaxValues.Count() = 2 Then
|
|
If StringToDouble(sMinMaxValues(0), dMin) AndAlso StringToDouble(sMinMaxValues(1), dMax) Then
|
|
m_MinMaxType = MinMaxTypes.ABSOLUT
|
|
m_dMinValue = dMin
|
|
m_dMaxValue = dMax
|
|
m_bIsActiveMinMax = True
|
|
End If
|
|
ElseIf sMinMaxValues.Count() > 2 Then
|
|
Dim nMinMaxType As Integer = 0
|
|
If StringToDouble(sMinMaxValues(0), nMinMaxType) AndAlso nMinMaxType = 1 Then
|
|
If StringToDouble(sMinMaxValues(0), dMin) AndAlso StringToDouble(sMinMaxValues(1), dMax) Then
|
|
m_MinMaxType = nMinMaxType
|
|
m_dMinValue = dMin
|
|
m_dMaxValue = dMax
|
|
m_bIsActiveMinMax = True
|
|
End If
|
|
ElseIf StringToDouble(sMinMaxValues(0), nMinMaxType) AndAlso nMinMaxType = 2 Then
|
|
Dim nMinMaxLinkedParam As Integer = 0
|
|
If sMinMaxValues.Count() >= 4 AndAlso Integer.TryParse(sMinMaxValues(1), nMinMaxLinkedParam) AndAlso StringToDouble(sMinMaxValues(2), dMin) AndAlso StringToDouble(sMinMaxValues(3), dMax) Then
|
|
m_MinMaxLinkedParam = nMinMaxLinkedParam
|
|
m_MinMaxType = nMinMaxType
|
|
m_dMinValue = dMin
|
|
m_dMaxValue = dMax
|
|
m_bIsActiveMinMax = True
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
If Type = Params.SLICINGHEIGHT Then
|
|
m_dMinValue = 0
|
|
m_dMaxValue = CurrentMachine.dSlicingMaxHeight
|
|
m_MinMaxType = MinMaxTypes.ABSOLUT
|
|
m_bIsActiveMinMax = True
|
|
End If
|
|
' leggo parametri da Db
|
|
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.INNERSHELLWIDTH
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INNERSHELLWIDTH, 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.SPIRALVASELEN
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SPIRALVASELEN, 0)
|
|
m_bIsLen = True
|
|
'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.PREFLOWDELAY
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_PREFLOWDELAY, 0)
|
|
m_bIsLen = False
|
|
Case Params.POSTFLOWDELAY
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_POSTFLOWDELAY, 0)
|
|
m_bIsLen = False
|
|
Case Params.SCREWBACK
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SCREWBACK, 45)
|
|
m_bIsLen = False
|
|
Case Params.SLICINGHEIGHT
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SLICINGHEIGHT, CurrentMachine.dSlicingMaxHeight)
|
|
m_bIsLen = False
|
|
Case Params.MAXSLICESNUMBER
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_MAXSLICESNUMBER, 0)
|
|
m_bIsLen = False
|
|
Case Params.RIBSSTRANDWIDTH
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSSTRANDWIDTH, 0)
|
|
m_bIsLen = True
|
|
Case Params.RIBSOVERLAP
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSOVERLAP, 0)
|
|
m_bIsLen = False
|
|
Case Params.RIBSSTRANDOVERLAP
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSSTRANDOVERLAP, 0)
|
|
m_bIsLen = False
|
|
Case Params.RIBSSTRANDCOUNT
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSSTRANDCOUNT, 0)
|
|
m_bIsLen = False
|
|
Case Params.RIBSLINKFILLET
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLINKFILLET, 0)
|
|
m_bIsLen = True
|
|
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.RIBSLEADFILLET
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADFILLET, 0)
|
|
m_bIsLen = True
|
|
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.AUXSOLIDSSTRANDWIDTH
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSSTRANDWIDTH, 0)
|
|
m_bIsLen = True
|
|
Case Params.AUXSOLIDSSTRANDCOUNT
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSSTRANDCOUNT, 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.AUXSOLIDSOFFSETLEADPOINT
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSOFFSETLEADPOINT, 0)
|
|
m_bIsLen = True
|
|
Case Params.AUXSOLIDSDENSITY
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSDENSITY, 0)
|
|
m_bIsLen = False
|
|
Case Params.AUXSOLIDSGRIDOVERLAP
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSGRIDOVERLAP, 0)
|
|
m_bIsLen = True
|
|
Case Params.AUXSOLIDSDIRECTION
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSDIRECTION, 0)
|
|
m_bIsLen = False
|
|
Case Params.AUXSOLIDSOFFSETX
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSOFFSETX, 0)
|
|
m_bIsLen = True
|
|
Case Params.AUXSOLIDSOFFSETY
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSOFFSETY, 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
|
|
Case Params.INFILLSTRANDWIDTH
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INFILLSTRANDWIDTH, 0)
|
|
m_bIsLen = True
|
|
Case Params.CEILCOUNT
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_CEILCOUNT, 0)
|
|
m_bIsLen = False
|
|
Case Params.INFILLDENSITY
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INFILLDENSITY, 0)
|
|
m_bIsLen = False
|
|
Case Params.INFILLOVERLAP
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INFILLOVERLAP, 0)
|
|
m_bIsLen = False
|
|
Case Params.INFILLGRIDOVERLAP
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INFILLGRIDOVERLAP, 0)
|
|
m_bIsLen = False
|
|
Case Params.INFILLDIRECTION
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INFILLDIRECTION, 0)
|
|
m_bIsLen = False
|
|
Case Params.INFILLOFFSETX
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INFILLOFFSETX, 0)
|
|
m_bIsLen = True
|
|
Case Params.INFILLOFFSETY
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INFILLOFFSETY, 0)
|
|
m_bIsLen = True
|
|
Case Params.INFILLCOASTING
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INFILLCOASTING, 0)
|
|
m_bIsLen = True
|
|
Case Params.INFILLWIPE
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INFILLWIPE, 0)
|
|
m_bIsLen = True
|
|
Case Params.INFILLWIPEDIR
|
|
m_dValue = ReadMachiningParamDouble(nIndex, MAC_INFILLWIPEDIR, 0)
|
|
m_bIsLen = False
|
|
End Select
|
|
End If
|
|
m_dOrigValue = m_dValue
|
|
End Sub
|
|
|
|
Friend Sub ManageDependencyParam()
|
|
' gestisco dis/attivazione parametri dipendenti
|
|
Select Case m_Type
|
|
Case Params.FLOORCOUNT
|
|
Dim ComboMachiningParam As ComboMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.FLOORTYPE)
|
|
ComboMachiningParam.SetIsActive(m_dValue <> 0)
|
|
Case Params.CEILCOUNT
|
|
Dim ComboMachiningParam As ComboMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.CEILTYPE)
|
|
ComboMachiningParam.SetIsActive(m_dValue <> 0)
|
|
Case Params.AUXSOLIDSSTRANDCOUNT
|
|
Dim AuxSolidsInfillParam As ComboMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSINFILL)
|
|
Dim ComboMachiningParam As ComboMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSSTRANDORDER)
|
|
ComboMachiningParam.SetIsActive(m_dValue > 0 OrElse AuxSolidsInfillParam.SelValue.Id = Machining.MPAR_INFILL_TYPE.OFFSET)
|
|
ComboMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSLINKTYPE)
|
|
ComboMachiningParam.SetIsActive(m_dValue > 0 OrElse AuxSolidsInfillParam.SelValue.Id = Machining.MPAR_INFILL_TYPE.OFFSET)
|
|
Dim NumericMachiningParam As NumericMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSLINKPARAM)
|
|
NumericMachiningParam.SetIsActive(m_dValue > 0 OrElse AuxSolidsInfillParam.SelValue.Id = Machining.MPAR_INFILL_TYPE.OFFSET)
|
|
NumericMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE)
|
|
NumericMachiningParam.SetIsActive(m_dValue > 0 OrElse AuxSolidsInfillParam.SelValue.Id = Machining.MPAR_INFILL_TYPE.OFFSET)
|
|
NumericMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSOFFSETLEADPOINT)
|
|
NumericMachiningParam.SetIsActive(m_dValue > 0 OrElse AuxSolidsInfillParam.SelValue.Id = Machining.MPAR_INFILL_TYPE.OFFSET)
|
|
End Select
|
|
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.INNERSHELLWIDTH
|
|
WriteMachiningParam(nIndex, MAC_INNERSHELLWIDTH, 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.SPIRALVASELEN
|
|
WriteMachiningParam(nIndex, MAC_SPIRALVASELEN, 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.PREFLOWDELAY
|
|
WriteMachiningParam(nIndex, MAC_PREFLOWDELAY, sWriteValue, sFilePath)
|
|
Case Params.POSTFLOWDELAY
|
|
WriteMachiningParam(nIndex, MAC_POSTFLOWDELAY, sWriteValue, sFilePath)
|
|
Case Params.SCREWBACK
|
|
WriteMachiningParam(nIndex, MAC_SCREWBACK, sWriteValue, sFilePath)
|
|
Case Params.SLICINGHEIGHT
|
|
WriteMachiningParam(nIndex, MAC_SLICINGHEIGHT, sWriteValue, sFilePath)
|
|
Case Params.MAXSLICESNUMBER
|
|
WriteMachiningParam(nIndex, MAC_MAXSLICESNUMBER, sWriteValue, sFilePath)
|
|
Case Params.RIBSSTRANDWIDTH
|
|
WriteMachiningParam(nIndex, MAC_RIBSSTRANDWIDTH, sWriteValue, sFilePath)
|
|
Case Params.RIBSOVERLAP
|
|
WriteMachiningParam(nIndex, MAC_RIBSOVERLAP, sWriteValue, sFilePath)
|
|
Case Params.RIBSSTRANDOVERLAP
|
|
WriteMachiningParam(nIndex, MAC_RIBSSTRANDOVERLAP, sWriteValue, sFilePath)
|
|
Case Params.RIBSSTRANDCOUNT
|
|
WriteMachiningParam(nIndex, MAC_RIBSSTRANDCOUNT, sWriteValue, sFilePath)
|
|
Case Params.RIBSLINKFILLET
|
|
WriteMachiningParam(nIndex, MAC_RIBSLINKFILLET, 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.RIBSLEADFILLET
|
|
WriteMachiningParam(nIndex, MAC_RIBSLEADFILLET, 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.AUXSOLIDSSTRANDWIDTH
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSSTRANDWIDTH, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSSTRANDCOUNT
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSSTRANDCOUNT, 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.AUXSOLIDSOFFSETLEADPOINT
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSOFFSETLEADPOINT, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSDENSITY
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSDENSITY, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSGRIDOVERLAP
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSGRIDOVERLAP, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSDIRECTION
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSDIRECTION, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSOFFSETX
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSOFFSETX, sWriteValue, sFilePath)
|
|
Case Params.AUXSOLIDSOFFSETY
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSOFFSETY, 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)
|
|
Case Params.INFILLSTRANDWIDTH
|
|
WriteMachiningParam(nIndex, MAC_INFILLSTRANDWIDTH, sWriteValue, sFilePath)
|
|
Case Params.CEILCOUNT
|
|
WriteMachiningParam(nIndex, MAC_CEILCOUNT, sWriteValue, sFilePath)
|
|
Case Params.INFILLDENSITY
|
|
WriteMachiningParam(nIndex, MAC_INFILLDENSITY, sWriteValue, sFilePath)
|
|
Case Params.INFILLOVERLAP
|
|
WriteMachiningParam(nIndex, MAC_INFILLOVERLAP, sWriteValue, sFilePath)
|
|
Case Params.INFILLGRIDOVERLAP
|
|
WriteMachiningParam(nIndex, MAC_INFILLGRIDOVERLAP, sWriteValue, sFilePath)
|
|
Case Params.INFILLDIRECTION
|
|
WriteMachiningParam(nIndex, MAC_INFILLDIRECTION, sWriteValue, sFilePath)
|
|
Case Params.INFILLOFFSETX
|
|
WriteMachiningParam(nIndex, MAC_INFILLOFFSETX, sWriteValue, sFilePath)
|
|
Case Params.INFILLOFFSETY
|
|
WriteMachiningParam(nIndex, MAC_INFILLOFFSETY, sWriteValue, sFilePath)
|
|
Case Params.INFILLCOASTING
|
|
WriteMachiningParam(nIndex, MAC_INFILLCOASTING, sWriteValue, sFilePath)
|
|
Case Params.INFILLWIPE
|
|
WriteMachiningParam(nIndex, MAC_INFILLWIPE, sWriteValue, sFilePath)
|
|
Case Params.INFILLWIPEDIR
|
|
WriteMachiningParam(nIndex, MAC_INFILLWIPEDIR, 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, Cathegory As MachiningCathegory)
|
|
MyBase.New(Type, Cathegory)
|
|
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))
|
|
ManageDependencyParam()
|
|
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
|
|
|
|
Protected m_bIsActive As Boolean = True
|
|
Public ReadOnly Property bIsActive As Boolean
|
|
Get
|
|
Return m_bIsActive
|
|
End Get
|
|
End Property
|
|
Friend Sub SetIsActive(bValue As Boolean)
|
|
m_bIsActive = bValue
|
|
NotifyPropertyChanged(NameOf(bIsActive))
|
|
End Sub
|
|
|
|
Sub New(Type As Params, Cathegory As MachiningCathegory)
|
|
MyBase.New(Type, Cathegory)
|
|
End Sub
|
|
|
|
Sub New(Type As Params, nIndex As Integer, Cathegory As MachiningCathegory)
|
|
MyBase.New(Type, Cathegory)
|
|
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"))
|
|
If nSlicingType >= 4 Then
|
|
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR, "MultiPlanar"))
|
|
End If
|
|
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, Machining.MPAR_STRANDORDERS.OUTTOIN))
|
|
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, Machining.MPAR_DIRECTIONS.CCW))
|
|
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, Machining.MPAR_LEADINOUT.NONE))
|
|
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, Machining.MPAR_LEADINOUT.NONE))
|
|
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, Machining.MPAR_LEADINOUT.NONE))
|
|
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, Machining.MPAR_RIBSTYPE.INTERNAL))
|
|
Case Params.AUXSOLIDSINFILL
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_INFILL_TYPE.NONE, "None"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.OFFSET, "Offset"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.ZIGZAG, "ZigZag"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.LINES, "Lines"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.GRID, "Grid"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.ZIGZAG_GRID, "Zigzag Grid"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.HONEYCOMB, "Honeycomb"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.HONEYCOMB_GRID, "Honeycomb Grid")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSINFILL, Machining.MPAR_INFILL_TYPE.NONE))
|
|
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, Machining.MPAR_STRANDORDERS.OUTTOIN))
|
|
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, Machining.MPAR_LINKTYPES.NONE))
|
|
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, Machining.MPAR_DYNAMIC_MODE.STANDARD))
|
|
Case Params.FLOORTYPE
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_INFILL_TYPE.OFFSET, "Offset"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.ZIGZAG, "ZigZag")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_FLOORTYPE, Machining.MPAR_INFILL_TYPE.OFFSET))
|
|
Case Params.CEILTYPE
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_INFILL_TYPE.OFFSET, "Offset"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.ZIGZAG, "ZigZag")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_CEILTYPE, Machining.MPAR_INFILL_TYPE.OFFSET))
|
|
Case Params.INFILLTYPE
|
|
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_INFILL_TYPE.NONE, "None"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.LINES, "Lines"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.GRID, "Grid"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.ZIGZAG_GRID, "Zigzag Grid"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.HONEYCOMB, "Honeycomb"),
|
|
New IdNameStruct(Machining.MPAR_INFILL_TYPE.HONEYCOMB_GRID, "Honeycomb Grid")})
|
|
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_INFILLTYPE, Machining.MPAR_INFILL_TYPE.NONE))
|
|
End Select
|
|
End If
|
|
m_OrigSelValue = m_SelValue
|
|
End Sub
|
|
|
|
Friend Sub ManageDependencyParam()
|
|
' gestisco dis/attivazione parametri dipendenti
|
|
Select Case m_Type
|
|
Case Params.LINKTYPE
|
|
Dim NumMachiningParam As NumericMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.LINKPARAM)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_LINKTYPES.NONE)
|
|
Case Params.LEADIN
|
|
Dim NumMachiningParam As NumericMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.LEADINTANGDIST)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_LEADINOUT.NONE)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.LEADINORTHODIST)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_LEADINOUT.NONE)
|
|
Case Params.LEADOUT
|
|
Dim NumMachiningParam As NumericMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.LEADOUTTANGDIST)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_LEADINOUT.NONE)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.LEADOUTORTHODIST)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_LEADINOUT.NONE)
|
|
Case Params.RIBSTYPE
|
|
Dim CheckMachiningParam As CheckMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.RIBSLIMITUNBOUNDEDWITHSOLID)
|
|
CheckMachiningParam.SetIsActive(m_SelValue.Id = MPAR_RIBSTYPE.UNBOUNDED)
|
|
Case Params.AUXSOLIDSINFILL
|
|
Dim AuxSolidsStrandCountParam As NumericMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSSTRANDCOUNT)
|
|
Dim ComboMachiningParam As ComboMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSSTRANDORDER)
|
|
ComboMachiningParam.SetIsActive(m_SelValue.Id = Machining.MPAR_INFILL_TYPE.OFFSET OrElse AuxSolidsStrandCountParam.dValue > 0)
|
|
ComboMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSLINKTYPE)
|
|
ComboMachiningParam.SetIsActive(m_SelValue.Id = Machining.MPAR_INFILL_TYPE.OFFSET OrElse AuxSolidsStrandCountParam.dValue > 0)
|
|
Dim NumMachiningParam As NumericMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSLINKPARAM)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id = Machining.MPAR_INFILL_TYPE.OFFSET OrElse AuxSolidsStrandCountParam.dValue > 0)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id = Machining.MPAR_INFILL_TYPE.OFFSET OrElse AuxSolidsStrandCountParam.dValue > 0)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSOFFSETLEADPOINT)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id = Machining.MPAR_INFILL_TYPE.OFFSET OrElse AuxSolidsStrandCountParam.dValue > 0)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSDENSITY)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.ZIGZAG AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.OFFSET)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSGRIDOVERLAP)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.ZIGZAG AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.OFFSET AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.LINES AndAlso
|
|
m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.GRID)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSDIRECTION)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.ZIGZAG AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.OFFSET)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSOFFSETX)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.ZIGZAG AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.OFFSET)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSOFFSETY)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.ZIGZAG AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.OFFSET)
|
|
Dim CheckMachiningParam As CheckMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSINFILLLINK)
|
|
CheckMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.ZIGZAG AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.OFFSET)
|
|
Case Params.INFILLTYPE
|
|
Dim NumMachiningParam As NumericMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.INFILLDENSITY)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.INFILLGRIDOVERLAP)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.LINES AndAlso m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.GRID)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.INFILLDIRECTION)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.INFILLOFFSETX)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE)
|
|
NumMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.INFILLOFFSETY)
|
|
NumMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE)
|
|
Dim CheckMachiningParam As CheckMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.INFILLLINK)
|
|
CheckMachiningParam.SetIsActive(m_SelValue.Id <> Machining.MPAR_INFILL_TYPE.NONE)
|
|
End Select
|
|
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)
|
|
Case Params.FLOORTYPE
|
|
WriteMachiningParam(nIndex, MAC_FLOORTYPE, m_SelValue.Id, sFilePath)
|
|
Case Params.CEILTYPE
|
|
WriteMachiningParam(nIndex, MAC_CEILTYPE, m_SelValue.Id, sFilePath)
|
|
Case Params.INFILLTYPE
|
|
WriteMachiningParam(nIndex, MAC_INFILLTYPE, 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))
|
|
ManageDependencyParam()
|
|
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
|
|
|
|
Protected m_bIsActive As Boolean = True
|
|
Public ReadOnly Property bIsActive As Boolean
|
|
Get
|
|
Return m_bIsActive
|
|
End Get
|
|
End Property
|
|
Friend Sub SetIsActive(bValue As Boolean)
|
|
m_bIsActive = bValue
|
|
NotifyPropertyChanged(NameOf(bIsActive))
|
|
End Sub
|
|
|
|
Sub New(Type As Params, Cathegory As MachiningCathegory)
|
|
MyBase.New(Type, Cathegory)
|
|
End Sub
|
|
|
|
Sub New(Type As Params, nIndex As Integer, Cathegory As MachiningCathegory)
|
|
MyBase.New(Type, Cathegory)
|
|
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.RIBSMERGEWITHSHELL
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSMERGEWITHSHELL, 0)
|
|
Case Params.RIBSINVERTMERGEDSHELLMAINLINK
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSINVERTMERGEDSHELLMAINLINK, 0)
|
|
Case Params.RIBSINVERTORDER
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSINVERTORDER, 0)
|
|
Case Params.RIBSINVERTDIRECTION
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSINVERTDIRECTION, 0)
|
|
Case Params.RIBSINVERTSTRANDORDER
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSINVERTSTRANDORDER, 0)
|
|
Case Params.RIBSLEADININVERT
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADININVERT, 0)
|
|
Case Params.RIBSLEADOUTINVERT
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADOUTINVERT, 0)
|
|
Case Params.RIBSLIMITUNBOUNDEDWITHSOLID
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLIMITUNBOUNDEDWITHSOLID, 0)
|
|
Case Params.AUXSOLIDSINFILLLINK
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSINFILLLINK, 0)
|
|
Case Params.INFILLLINK
|
|
m_bValue = ReadMachiningParamDouble(nIndex, MAC_INFILLLINK, 0)
|
|
End Select
|
|
End If
|
|
m_bOrigValue = m_bValue
|
|
End Sub
|
|
|
|
Friend Sub ManageDependencyParam(Optional Cathegory As MachiningCathegory = Nothing)
|
|
' gestisco dis/attivazione parametri dipendenti
|
|
Select Case m_Type
|
|
Case Params.SPIRALVASE
|
|
Dim ShellCathegory As MachiningCathegory = If(Not IsNothing(Cathegory), Cathegory, m_Cathegory.Machining.CathegoryList.FirstOrDefault(Function(z) z.Type= MachiningCathegory.Cathegories.LINK))
|
|
Dim NumMachiningParam As NumericMachiningParam = ShellCathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.SPIRALVASELEN)
|
|
NumMachiningParam.SetIsActive(m_bValue)
|
|
End Select
|
|
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.RIBSMERGEWITHSHELL
|
|
WriteMachiningParam(nIndex, MAC_RIBSMERGEWITHSHELL, If(m_bValue, 1, 0), sFilePath)
|
|
Case Params.RIBSINVERTMERGEDSHELLMAINLINK
|
|
WriteMachiningParam(nIndex, MAC_RIBSINVERTMERGEDSHELLMAINLINK, 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.RIBSINVERTSTRANDORDER
|
|
WriteMachiningParam(nIndex, MAC_RIBSINVERTSTRANDORDER, 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)
|
|
Case Params.RIBSLIMITUNBOUNDEDWITHSOLID
|
|
WriteMachiningParam(nIndex, MAC_RIBSLIMITUNBOUNDEDWITHSOLID, If(m_bValue, 1, 0), sFilePath)
|
|
Case Params.AUXSOLIDSINFILLLINK
|
|
WriteMachiningParam(nIndex, MAC_AUXSOLIDSINFILLLINK, If(m_bValue, 1, 0), sFilePath)
|
|
Case Params.INFILLLINK
|
|
WriteMachiningParam(nIndex, MAC_INFILLLINK, 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, Cathegory As MachiningCathegory)
|
|
MyBase.New(sName, Cathegory)
|
|
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_StandardValueOrderList As List(Of Integer)
|
|
|
|
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 StringValueList() As String
|
|
Dim IntegerValueList As New List(Of Integer)
|
|
If value.Length = 15 Then
|
|
StringValueList = value.Split(","c)
|
|
For Each StringValue In StringValueList
|
|
Dim IntegerValue As Integer = 0
|
|
If Integer.TryParse(StringValue, IntegerValue) Then
|
|
IntegerValueList.Add(IntegerValue)
|
|
End If
|
|
Next
|
|
End If
|
|
If IntegerValueList.Count <> 8 Then
|
|
IntegerValueList = m_StandardValueOrderList
|
|
End If
|
|
If Not IntegerValueList.Contains(Machining.MPAR_PRINT_ORDER.SHELL) OrElse
|
|
Not IntegerValueList.Contains(Machining.MPAR_PRINT_ORDER.EXTRA_SHELL) OrElse
|
|
Not IntegerValueList.Contains(Machining.MPAR_PRINT_ORDER.INFILL) OrElse
|
|
Not IntegerValueList.Contains(Machining.MPAR_PRINT_ORDER.AUX_SOLID) OrElse
|
|
Not IntegerValueList.Contains(Machining.MPAR_PRINT_ORDER.RIB_UNBOUNDED) OrElse
|
|
Not IntegerValueList.Contains(Machining.MPAR_PRINT_ORDER.RIB_EXTERNAL) OrElse
|
|
Not IntegerValueList.Contains(Machining.MPAR_PRINT_ORDER.RIB_INTERNAL) OrElse
|
|
Not IntegerValueList.Contains(Machining.MPAR_PRINT_ORDER.RIB_SUPPORT) Then
|
|
IntegerValueList = m_StandardValueOrderList
|
|
End If
|
|
OrderByReference(m_ValueList, IntegerValueList)
|
|
End Select
|
|
End Set
|
|
End Property
|
|
|
|
Public Shared Sub OrderByReference(collection As ObservableCollection(Of IdNameStruct), comparison As List(Of Integer))
|
|
For i As Integer = 0 To comparison.Count - 1
|
|
Dim Index As Integer = i
|
|
If Not comparison.ElementAt(i).Equals(collection.ElementAt(i)) Then
|
|
collection.Move(collection.IndexOf(collection.FirstOrDefault(Function(x) x.Id = comparison(Index))), i)
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
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, Cathegory As MachiningCathegory)
|
|
MyBase.New(Type, Cathegory)
|
|
End Sub
|
|
|
|
Sub New(Type As Params, nIndex As Integer, Cathegory As MachiningCathegory)
|
|
MyBase.New(Type, Cathegory)
|
|
If nIndex = 0 Then
|
|
Select Case Type
|
|
Case Params.PRINT_ORDER
|
|
m_StandardValueOrderList = New List(Of Integer)({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_UNBOUNDED,
|
|
Machining.MPAR_PRINT_ORDER.RIB_EXTERNAL,
|
|
Machining.MPAR_PRINT_ORDER.RIB_INTERNAL,
|
|
Machining.MPAR_PRINT_ORDER.RIB_SUPPORT})
|
|
m_ValueList = New ObservableCollection(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_PRINT_ORDER.SHELL, "Shell"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.EXTRA_SHELL, "Extra Shell"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.INFILL, "Infill"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.AUX_SOLID, "Filled Solid"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.RIB_UNBOUNDED, "Unbounded Rib"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.RIB_EXTERNAL, "External Rib"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.RIB_INTERNAL, "Internal Rib"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.RIB_SUPPORT, "Support Rib")})
|
|
m_SelValue = Nothing
|
|
End Select
|
|
Else
|
|
Select Case Type
|
|
Case Params.PRINT_ORDER
|
|
m_StandardValueOrderList = New List(Of Integer)({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_UNBOUNDED,
|
|
Machining.MPAR_PRINT_ORDER.RIB_EXTERNAL,
|
|
Machining.MPAR_PRINT_ORDER.RIB_INTERNAL,
|
|
Machining.MPAR_PRINT_ORDER.RIB_SUPPORT})
|
|
m_ValueList = New ObservableCollection(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_PRINT_ORDER.SHELL, "Shell"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.EXTRA_SHELL, "Extra Shell"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.INFILL, "Infill"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.AUX_SOLID, "Filled Solid"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.RIB_UNBOUNDED, "Unbounded Rib"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.RIB_EXTERNAL, "External Rib"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.RIB_INTERNAL, "Internal Rib"),
|
|
New IdNameStruct(Machining.MPAR_PRINT_ORDER.RIB_SUPPORT, "Support Rib")})
|
|
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
|
|
OrderByReference(m_ValueList, m_StandardValueOrderList)
|
|
m_ValueList = New ObservableCollection(Of IdNameStruct)(m_ValueList.OrderBy(Function(x) x.Id))
|
|
If Value <> CurrValue Then
|
|
NotifyPropertyChanged(NameOf(ValueList))
|
|
NotifyPropertyChanged(NameOf(Value))
|
|
NotifyPropertyChanged(NameOf(SelValue))
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' ResetOrder
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
End Class
|