diff --git a/Icarus/Constants/Const3dPrint.vb b/Icarus/Constants/Const3dPrint.vb index 163f2db..621584c 100644 --- a/Icarus/Constants/Const3dPrint.vb +++ b/Icarus/Constants/Const3dPrint.vb @@ -104,6 +104,9 @@ Public Const MAC_G0FEED = "G0Feed" Public Const MAC_G0FEEDZ = "G0FeedZ" Public Const MAC_TOOLDIAM = "ToolDiam" + Public Const MAC_PREFLOWDELAY = "PreFlowDelay" + Public Const MAC_POSTFLOWDELAY = "PostFlowDelay" + Public Const MAC_SCREWBACK = "ScrewBack" Public Const MAC_RIBSTYPE = "RibsType" Public Const MAC_RIBSOVERLAP = "RibsOverlap" Public Const MAC_RIBSSTRANDCOUNT = "RibsStrandCount" diff --git a/Icarus/CurrMachiningPanel/CurrMachining.vb b/Icarus/CurrMachiningPanel/CurrMachining.vb index 723d3d5..60ea195 100644 --- a/Icarus/CurrMachiningPanel/CurrMachining.vb +++ b/Icarus/CurrMachiningPanel/CurrMachining.vb @@ -199,74 +199,95 @@ Public Class CurrMachiningCathegory Select Case m_Type Case Cathegories.GENERAL m_sName = "General" - m_MachiningParamList = New List(Of MachiningParam)({New CurrComboMachiningParam(MachiningParam.Params.SLICINGTYPE, nPartId, nIndex, bForceFromDb), - New CurrCheckMachiningParam(MachiningParam.Params.SPIRALVASE, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.STRANDH, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.STRANDW, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.STRANDCOUNT, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.OFFSET, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.STRANDOVERLAP, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.STARTPOINTOFFSETONSLICE, nPartId, nIndex, bForceFromDb), - New CurrComboMachiningParam(MachiningParam.Params.STRANDORDER, nPartId, nIndex, bForceFromDb), - New CurrComboMachiningParam(MachiningParam.Params.DIRECTION, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.FLOORCOUNT, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.G0FEED, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.G0FEEDZ, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.TOOLDIAM, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.FLOWRATE_PC, nPartId, nIndex, bForceFromDb), - New CurrComboMachiningParam(MachiningParam.Params.DYNAMIC_MODE, nPartId, nIndex, bForceFromDb), - New CurrOrderedMachiningParam(MachiningParam.Params.PRINT_ORDER, nPartId, nIndex, bForceFromDb)}) + m_MachiningParamList = New List(Of MachiningParam)({New CurrComboMachiningParam(MachiningParam.Params.SLICINGTYPE, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.SPIRALVASE, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.STRANDH, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.STRANDW, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.STRANDCOUNT, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.OFFSET, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.STRANDOVERLAP, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.STARTPOINTOFFSETONSLICE, nPartId, nIndex, bForceFromDb, Me), + New CurrComboMachiningParam(MachiningParam.Params.STRANDORDER, nPartId, nIndex, bForceFromDb, Me), + New CurrComboMachiningParam(MachiningParam.Params.DIRECTION, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.FLOORCOUNT, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.G0FEED, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.G0FEEDZ, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.LINKZUP, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.TOOLDIAM, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.FLOWRATE_PC, nPartId, nIndex, bForceFromDb, Me), + New CurrComboMachiningParam(MachiningParam.Params.DYNAMIC_MODE, nPartId, nIndex, bForceFromDb, Me), + New CurrOrderedMachiningParam(MachiningParam.Params.PRINT_ORDER, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.PREFLOWDELAY, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.POSTFLOWDELAY, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.SCREWBACK, nPartId, nIndex, bForceFromDb, Me)}) Case Cathegories.LINK m_sName = "Shell" - m_MachiningParamList = New List(Of MachiningParam)({New CurrComboMachiningParam(MachiningParam.Params.LINKTYPE, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.LINKPARAM, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.LINKZUP, nPartId, nIndex, bForceFromDb), - New CurrComboMachiningParam(MachiningParam.Params.LEADIN, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.LEADINTANGDIST, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.LEADINORTHODIST, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.OFFSETLEADPOINT, nPartId, nIndex, bForceFromDb), - New CurrComboMachiningParam(MachiningParam.Params.LEADOUT, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.LEADOUTTANGDIST, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.LEADOUTORTHODIST, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.COASTINGLEN, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.WIPELEN, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nPartId, nIndex, bForceFromDb)}) - 'New CurrNumericMachiningParam(MachiningParam.Params.WIPEDIR, nPartId, nIndex, bForceFromDb)}) + m_MachiningParamList = New List(Of MachiningParam)({New CurrComboMachiningParam(MachiningParam.Params.LINKTYPE, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.LINKPARAM, nPartId, nIndex, bForceFromDb, Me), + New CurrComboMachiningParam(MachiningParam.Params.LEADIN, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.LEADINTANGDIST, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.LEADINORTHODIST, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.OFFSETLEADPOINT, nPartId, nIndex, bForceFromDb, Me), + New CurrComboMachiningParam(MachiningParam.Params.LEADOUT, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.LEADOUTTANGDIST, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.LEADOUTORTHODIST, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.COASTINGLEN, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.WIPELEN, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nPartId, nIndex, bForceFromDb, Me)}) + 'New CurrNumericMachiningParam(MachiningParam.Params.WIPEDIR, nPartId, nIndex, bForceFromDb, Me)}) Case Cathegories.RIBS m_sName = "Ribs" - m_MachiningParamList = New List(Of MachiningParam)({New CurrComboMachiningParam(MachiningParam.Params.RIBSTYPE, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nPartId, nIndex, bForceFromDb), - New CurrCheckMachiningParam(MachiningParam.Params.RIBSLINK, nPartId, nIndex, bForceFromDb), - New CurrCheckMachiningParam(MachiningParam.Params.RIBSINVERTORDER, nPartId, nIndex, bForceFromDb), - New CurrCheckMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nPartId, nIndex, bForceFromDb), - New CurrCheckMachiningParam(MachiningParam.Params.RIBSINVERTSTRANDORDER, nPartId, nIndex, bForceFromDb), - New CurrCheckMachiningParam(MachiningParam.Params.RIBSLEADININVERT, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADINLEN, nPartId, nIndex, bForceFromDb), - New CurrCheckMachiningParam(MachiningParam.Params.RIBSLEADOUTINVERT, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTLEN, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTCOASTING, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPE, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nPartId, nIndex, bForceFromDb), - New CurrCheckMachiningParam(MachiningParam.Params.RIBSLIMITUNBOUNDEDWITHSOLID, nPartId, nIndex, bForceFromDb)}) + m_MachiningParamList = New List(Of MachiningParam)({New CurrComboMachiningParam(MachiningParam.Params.RIBSTYPE, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.RIBSLIMITUNBOUNDEDWITHSOLID, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.RIBSLINK, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.RIBSINVERTORDER, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.RIBSINVERTSTRANDORDER, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.RIBSLEADININVERT, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADINLEN, nPartId, nIndex, bForceFromDb, Me), + New CurrCheckMachiningParam(MachiningParam.Params.RIBSLEADOUTINVERT, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTLEN, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTCOASTING, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPE, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nPartId, nIndex, bForceFromDb, Me)}) Case Cathegories.SHELL_NUMBER m_sName = "Reduce Shell Number" - m_MachiningParamList = New List(Of MachiningParam)({New CurrNumericMachiningParam(MachiningParam.Params.SHELLNBRDIFFERENCE, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.SHELLNBRCOASTING, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.SHELLNBRWIPE, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.SHELLNBRWIPEDIR, nPartId, nIndex, bForceFromDb)}) + m_MachiningParamList = New List(Of MachiningParam)({New CurrNumericMachiningParam(MachiningParam.Params.SHELLNBRDIFFERENCE, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.SHELLNBRCOASTING, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.SHELLNBRWIPE, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.SHELLNBRWIPEDIR, nPartId, nIndex, bForceFromDb, Me)}) Case Cathegories.AUX_SOLID m_sName = "Filled Solid" - m_MachiningParamList = New List(Of MachiningParam)({New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSOVERLAP, nPartId, nIndex, bForceFromDb), - New CurrComboMachiningParam(MachiningParam.Params.AUXSOLIDSINFILL, nPartId, nIndex, bForceFromDb), - New CurrComboMachiningParam(MachiningParam.Params.AUXSOLIDSSTRANDORDER, nPartId, nIndex, bForceFromDb), - New CurrComboMachiningParam(MachiningParam.Params.AUXSOLIDSLINKTYPE, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSLINKPARAM, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSCOASTINGLEN, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPELEN, nPartId, nIndex, bForceFromDb), - New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPEDIR, nPartId, nIndex, bForceFromDb)}) + m_MachiningParamList = New List(Of MachiningParam)({New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSOVERLAP, nPartId, nIndex, bForceFromDb, Me), + New CurrComboMachiningParam(MachiningParam.Params.AUXSOLIDSINFILL, nPartId, nIndex, bForceFromDb, Me), + New CurrComboMachiningParam(MachiningParam.Params.AUXSOLIDSSTRANDORDER, nPartId, nIndex, bForceFromDb, Me), + New CurrComboMachiningParam(MachiningParam.Params.AUXSOLIDSLINKTYPE, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSLINKPARAM, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSCOASTINGLEN, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPELEN, nPartId, nIndex, bForceFromDb, Me), + New CurrNumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPEDIR, nPartId, nIndex, bForceFromDb, Me)}) + End Select + ' verifico dipendenze tra parametri + Select Case m_Type + Case Cathegories.LINK + For Each Param In {MachiningParam.Params.LINKTYPE, MachiningParam.Params.LEADIN} + Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param) + MachiningParam.ManageDependencyParam() + 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 End Select End Sub @@ -326,8 +347,8 @@ Public Class CurrNumericMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean) - MyBase.New(Type, nIndex) + Sub New(Type As Params, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean, Cathegory As MachiningCathegory) + MyBase.New(Type, nIndex, Cathegory) Dim bReadFromPart As Boolean = False Select Case Type Case Params.STRANDH @@ -396,6 +417,15 @@ Public Class CurrNumericMachiningParam Case Params.TOOLDIAM bReadFromPart = EgtGetInfo(nPartId, MAC_TOOLDIAM, m_dValue) m_bIsLen = True + Case Params.PREFLOWDELAY + bReadFromPart = EgtGetInfo(nPartId, MAC_PREFLOWDELAY, m_dValue) + m_bIsLen = True + Case Params.POSTFLOWDELAY + bReadFromPart = EgtGetInfo(nPartId, MAC_POSTFLOWDELAY, m_dValue) + m_bIsLen = True + Case Params.SCREWBACK + bReadFromPart = EgtGetInfo(nPartId, MAC_SCREWBACK, m_dValue) + m_bIsLen = True Case Params.RIBSOVERLAP bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSOVERLAP, m_dValue) m_bIsLen = False @@ -456,9 +486,9 @@ Public Class CurrNumericMachiningParam Dim DbMachining As Machining = Map.refMachiningDbVM.MachiningList.FirstOrDefault(Function(x) x.nIndex = nIndex) Select Case Type Case Params.STRANDH, Params.STRANDW, Params.STRANDCOUNT, Params.OFFSET, Params.STRANDOVERLAP, Params.STARTPOINTOFFSETONSLICE, - Params.FLOORCOUNT, Params.G0FEED, Params.G0FEEDZ, Params.TOOLDIAM, Params.FLOWRATE_PC + Params.FLOORCOUNT, Params.G0FEED, Params.G0FEEDZ, Params.LINKZUP, Params.TOOLDIAM, Params.FLOWRATE_PC, Params.PREFLOWDELAY, Params.POSTFLOWDELAY, Params.SCREWBACK m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type) - Case Params.LINKPARAM, Params.LINKZUP, Params.OFFSETLEADPOINT, Params.LEADINTANGDIST, Params.LEADINORTHODIST, + Case Params.LINKPARAM, Params.OFFSETLEADPOINT, Params.LEADINTANGDIST, Params.LEADINORTHODIST, Params.LEADOUTTANGDIST, Params.LEADOUTORTHODIST, Params.COASTINGLEN, Params.COASTINGFEED_PC, Params.WIPELEN, Params.WIPEFEED_PC ' Params.WIPEDIR m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.LINK).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type) @@ -537,6 +567,12 @@ Public Class CurrNumericMachiningParam EgtSetInfo(nPartId, MAC_G0FEEDZ, sWriteValue) Case Params.TOOLDIAM EgtSetInfo(nPartId, MAC_TOOLDIAM, sWriteValue) + Case Params.PREFLOWDELAY + EgtSetInfo(nPartId, MAC_PREFLOWDELAY, sWriteValue) + Case Params.POSTFLOWDELAY + EgtSetInfo(nPartId, MAC_POSTFLOWDELAY, sWriteValue) + Case Params.SCREWBACK + EgtSetInfo(nPartId, MAC_SCREWBACK, sWriteValue) Case Params.RIBSOVERLAP EgtSetInfo(nPartId, MAC_RIBSOVERLAP, sWriteValue) Case Params.RIBSSTRANDCOUNT @@ -629,8 +665,8 @@ Public Class CurrStringMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nIndex As Integer) - MyBase.New(Type, nIndex) + Sub New(Type As Params, nIndex As Integer, Cathegory As MachiningCathegory) + MyBase.New(Type, nIndex, Cathegory) m_sValue = sValue m_sOrigValue = m_sValue End Sub @@ -685,6 +721,7 @@ Public Class CurrComboMachiningParam m_SelValue = value NotifyPropertyChanged(NameOf(SelValue)) NotifyPropertyChanged(NameOf(bIsModifiedFromDb)) + ManageDependencyParam() End Set End Property @@ -704,8 +741,8 @@ Public Class CurrComboMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean) - MyBase.New(Type, nIndex) + Sub New(Type As Params, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean, Cathegory As MachiningCathegory) + MyBase.New(Type, nIndex, Cathegory) Dim bReadFromPart As Boolean = False Select Case Type Case Params.SLICINGTYPE @@ -913,8 +950,8 @@ Public Class CurrCheckMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean) - MyBase.New(Type, nIndex) + Sub New(Type As Params, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean, Cathegory As MachiningCathegory) + MyBase.New(Type, nIndex, Cathegory) Dim bReadFromPart As Boolean = False Select Case Type Case Params.SPIRALVASE @@ -1024,8 +1061,8 @@ Public Class CurrOrderedMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean) - MyBase.New(Type, nIndex) + Sub New(Type As Params, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean, Cathegory As MachiningCathegory) + MyBase.New(Type, nIndex, Cathegory) Dim bReadFromPart As Boolean = False Select Case Type Case Params.PRINT_ORDER diff --git a/Icarus/CurrMachiningPanel/CurrMachiningPanelV.xaml b/Icarus/CurrMachiningPanel/CurrMachiningPanelV.xaml index 3da9b78..6b3c6bf 100644 --- a/Icarus/CurrMachiningPanel/CurrMachiningPanelV.xaml +++ b/Icarus/CurrMachiningPanel/CurrMachiningPanelV.xaml @@ -46,7 +46,8 @@ - + @@ -70,7 +71,8 @@ - + @@ -97,7 +99,8 @@ + Margin="0,1,2.5,1" + IsEnabled="{Binding bIsActive}"> diff --git a/Icarus/FilledSolidParamPanel/FilledSolidParamPanelV.xaml b/Icarus/FilledSolidParamPanel/FilledSolidParamPanelV.xaml index ef39a21..7e7b77d 100644 --- a/Icarus/FilledSolidParamPanel/FilledSolidParamPanelV.xaml +++ b/Icarus/FilledSolidParamPanel/FilledSolidParamPanelV.xaml @@ -33,7 +33,8 @@ - + @@ -57,7 +58,8 @@ - + diff --git a/Icarus/FilledSolidParamPanel/FilledSolidParamPanelVM.vb b/Icarus/FilledSolidParamPanel/FilledSolidParamPanelVM.vb index 5e8247c..51f79b9 100644 --- a/Icarus/FilledSolidParamPanel/FilledSolidParamPanelVM.vb +++ b/Icarus/FilledSolidParamPanel/FilledSolidParamPanelVM.vb @@ -42,17 +42,25 @@ Public Class FilledSolidParamPanelVM m_Type = Cathegories.AUX_SOLID m_sName = "Filled Solid" - m_MachiningParamList = New List(Of MachiningParam)({New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSOVERLAP, nFilledSolidId, nPartId), - New FilledSolidComboMachiningParam(MachiningParam.Params.AUXSOLIDSINFILL, nFilledSolidId, nPartId), - New FilledSolidComboMachiningParam(MachiningParam.Params.AUXSOLIDSSTRANDORDER, nFilledSolidId, nPartId), - New FilledSolidComboMachiningParam(MachiningParam.Params.AUXSOLIDSLINKTYPE, nFilledSolidId, nPartId), - New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSLINKPARAM, nFilledSolidId, nPartId), - New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE, nFilledSolidId, nPartId), - New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSCOASTINGLEN, nFilledSolidId, nPartId), - New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPELEN, nFilledSolidId, nPartId), - New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPEDIR, nFilledSolidId, nPartId)}) + m_MachiningParamList = New List(Of MachiningParam)({New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSOVERLAP, nFilledSolidId, nPartId, Me), + New FilledSolidComboMachiningParam(MachiningParam.Params.AUXSOLIDSINFILL, nFilledSolidId, nPartId, Me), + New FilledSolidComboMachiningParam(MachiningParam.Params.AUXSOLIDSSTRANDORDER, nFilledSolidId, nPartId, Me), + New FilledSolidComboMachiningParam(MachiningParam.Params.AUXSOLIDSLINKTYPE, nFilledSolidId, nPartId, Me), + New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSLINKPARAM, nFilledSolidId, nPartId, Me), + New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE, nFilledSolidId, nPartId, Me), + New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSCOASTINGLEN, nFilledSolidId, nPartId, Me), + New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPELEN, nFilledSolidId, nPartId, Me), + New FilledSolidNumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPEDIR, nFilledSolidId, nPartId, Me)}) NotifyPropertyChanged(NameOf(MachiningParamList)) NotifyPropertyChanged(NameOf(sName)) + ' verifico dipendenze tra parametri + Select Case m_Type + 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 + End Select End Sub Friend Sub SaveCurrParams() @@ -178,8 +186,8 @@ Public Class FilledSolidNumericMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nFilledSolidId As Integer, nPartId As Integer) - MyBase.New(Type) + Sub New(Type As Params, nFilledSolidId As Integer, nPartId As Integer, Cathegory As MachiningCathegory) + MyBase.New(Type, Cathegory) Dim bReadFromPart As Boolean = False Select Case Type Case Params.AUXSOLIDSOVERLAP @@ -305,6 +313,7 @@ Public Class FilledSolidComboMachiningParam m_SelValue = value NotifyPropertyChanged(NameOf(SelValue)) NotifyPropertyChanged(NameOf(bIsModifiedFromPart)) + ManageDependencyParam() End Set End Property @@ -324,8 +333,8 @@ Public Class FilledSolidComboMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nRibId As Integer, nPartId As Integer) - MyBase.New(Type) + Sub New(Type As Params, nRibId As Integer, nPartId As Integer, Cathegory As MachiningCathegory) + MyBase.New(Type, Cathegory) Dim bReadFromRib As Boolean = False Dim bReadFromPart As Boolean = False Select Case Type diff --git a/Icarus/MachiningDb/Machining.vb b/Icarus/MachiningDb/Machining.vb index a679690..cee6db9 100644 --- a/Icarus/MachiningDb/Machining.vb +++ b/Icarus/MachiningDb/Machining.vb @@ -1,8 +1,10 @@ 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 @@ -314,74 +316,77 @@ Public Class MachiningCathegory Select Case m_Type Case Cathegories.GENERAL m_sName = "General" - m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.SLICINGTYPE, nIndex), - New CheckMachiningParam(MachiningParam.Params.SPIRALVASE, nIndex), - New NumericMachiningParam(MachiningParam.Params.STRANDH, nIndex), - New NumericMachiningParam(MachiningParam.Params.STRANDW, nIndex), - New NumericMachiningParam(MachiningParam.Params.STRANDCOUNT, nIndex), - New NumericMachiningParam(MachiningParam.Params.OFFSET, nIndex), - New NumericMachiningParam(MachiningParam.Params.STRANDOVERLAP, nIndex), - New NumericMachiningParam(MachiningParam.Params.STARTPOINTOFFSETONSLICE, nIndex), - New ComboMachiningParam(MachiningParam.Params.STRANDORDER, nIndex), - New ComboMachiningParam(MachiningParam.Params.DIRECTION, nIndex), - New NumericMachiningParam(MachiningParam.Params.FLOORCOUNT, nIndex), - New NumericMachiningParam(MachiningParam.Params.G0FEED, nIndex), - New NumericMachiningParam(MachiningParam.Params.G0FEEDZ, nIndex), - New NumericMachiningParam(MachiningParam.Params.TOOLDIAM, nIndex), - New NumericMachiningParam(MachiningParam.Params.FLOWRATE_PC, nIndex), - New ComboMachiningParam(MachiningParam.Params.DYNAMIC_MODE, nIndex), - New OrderedMachiningParam(MachiningParam.Params.PRINT_ORDER, nIndex)}) + 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.FLOORCOUNT, 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)}) Case Cathegories.LINK m_sName = "Shell" - m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.LINKTYPE, nIndex), - New NumericMachiningParam(MachiningParam.Params.LINKPARAM, nIndex), - New NumericMachiningParam(MachiningParam.Params.LINKZUP, nIndex), - New ComboMachiningParam(MachiningParam.Params.LEADIN, nIndex), - New NumericMachiningParam(MachiningParam.Params.LEADINTANGDIST, nIndex), - New NumericMachiningParam(MachiningParam.Params.LEADINORTHODIST, nIndex), - New NumericMachiningParam(MachiningParam.Params.OFFSETLEADPOINT, nIndex), - New ComboMachiningParam(MachiningParam.Params.LEADOUT, nIndex), - New NumericMachiningParam(MachiningParam.Params.LEADOUTTANGDIST, nIndex), - New NumericMachiningParam(MachiningParam.Params.LEADOUTORTHODIST, nIndex), - New NumericMachiningParam(MachiningParam.Params.COASTINGLEN, nIndex), - New NumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nIndex), - New NumericMachiningParam(MachiningParam.Params.WIPELEN, nIndex), - New NumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nIndex)}) - 'New NumericMachiningParam(MachiningParam.Params.WIPEDIR, nIndex)}) + m_MachiningParamList = New List(Of MachiningParam)({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.WIPEDIR, nIndex, Me)}) Case Cathegories.RIBS m_sName = "Ribs" - m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.RIBSTYPE, nIndex), - New NumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nIndex), - New NumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nIndex), - New CheckMachiningParam(MachiningParam.Params.RIBSLINK, nIndex), - New CheckMachiningParam(MachiningParam.Params.RIBSINVERTORDER, nIndex), - New CheckMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nIndex), - New CheckMachiningParam(MachiningParam.Params.RIBSINVERTSTRANDORDER, nIndex), - New CheckMachiningParam(MachiningParam.Params.RIBSLEADININVERT, nIndex), - New NumericMachiningParam(MachiningParam.Params.RIBSLEADINLEN, nIndex), - New CheckMachiningParam(MachiningParam.Params.RIBSLEADOUTINVERT, nIndex), - New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTLEN, nIndex), - New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTCOASTING, nIndex), - New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPE, nIndex), - New NumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nIndex), - New CheckMachiningParam(MachiningParam.Params.RIBSLIMITUNBOUNDEDWITHSOLID, nIndex)}) + m_MachiningParamList = New List(Of MachiningParam)({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.RIBSSTRANDCOUNT, nIndex, Me), + New CheckMachiningParam(MachiningParam.Params.RIBSLINK, 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)}) 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)}) + 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.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)}) + m_MachiningParamList = New List(Of MachiningParam)({New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSOVERLAP, nIndex, Me), + New ComboMachiningParam(MachiningParam.Params.AUXSOLIDSINFILL, 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.AUXSOLIDSCOASTINGLEN, nIndex, Me), + New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPELEN, nIndex, Me), + New NumericMachiningParam(MachiningParam.Params.AUXSOLIDSWIPEDIR, nIndex, Me)}) Case Cathegories.MATERIALS m_sName = "Materials" Dim sMaterials As String = "" @@ -389,7 +394,25 @@ Public Class MachiningCathegory 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))) + 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} + Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param) + MachiningParam.ManageDependencyParam() + 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 End Select End Sub @@ -433,26 +456,29 @@ Public MustInherit Class MachiningParam DIRECTION = 10 FLOORCOUNT = 11 G0FEED = 12 - G0FEEDZ = 13 - TOOLDIAM = 14 - FLOWRATE_PC = 15 - DYNAMIC_MODE = 16 - PRINT_ORDER = 17 + LINKZUP = 13 + G0FEEDZ = 14 + TOOLDIAM = 15 + FLOWRATE_PC = 16 + DYNAMIC_MODE = 17 + PRINT_ORDER = 18 + PREFLOWDELAY = 19 + POSTFLOWDELAY = 20 + SCREWBACK = 21 LINKTYPE = 51 LINKPARAM = 52 - LINKZUP = 53 - LEADIN = 54 - LEADINTANGDIST = 55 - LEADINORTHODIST = 56 - OFFSETLEADPOINT = 57 - LEADOUT = 58 - LEADOUTTANGDIST = 59 - LEADOUTORTHODIST = 60 - COASTINGLEN = 61 - COASTINGFEED_PC = 62 - WIPELEN = 63 - WIPEFEED_PC = 64 - 'WIPEDIR = 65 + LEADIN = 53 + LEADINTANGDIST = 54 + LEADINORTHODIST = 55 + OFFSETLEADPOINT = 56 + LEADOUT = 57 + LEADOUTTANGDIST = 58 + LEADOUTORTHODIST = 59 + COASTINGLEN = 60 + COASTINGFEED_PC = 61 + WIPELEN = 62 + WIPEFEED_PC = 63 + 'WIPEDIR = 64 RIBSTYPE = 101 RIBSOVERLAP = 102 RIBSSTRANDCOUNT = 103 @@ -500,8 +526,16 @@ Public MustInherit Class MachiningParam Public MustOverride ReadOnly Property bIsModified As Boolean - Sub New(Type As Params) + Protected m_Cathegory As MachiningCathegory + Public ReadOnly Property Cathegory As MachiningCathegory + Get + Return m_Cathegory + 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 direction" @@ -555,6 +589,12 @@ Public MustInherit Class MachiningParam 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.RIBSTYPE m_sName = "Type" Case Params.RIBSOVERLAP @@ -626,8 +666,9 @@ Public MustInherit Class MachiningParam End Select End Sub - Sub New(sName As String) + Sub New(sName As String, Cathegory As MachiningCathegory) m_Type = Params.MATERIALS + m_Cathegory = Cathegory m_sName = sName End Sub @@ -689,12 +730,23 @@ Public Class NumericMachiningParam End Get End Property - Sub New(Type As Params) - MyBase.New(Type) + 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, nIndex As Integer) - MyBase.New(Type) + 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 GetMainPrivateProfileString(S_MINMAX, Type, "", sMinMax) > 0 Then @@ -779,6 +831,15 @@ Public Class NumericMachiningParam 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, 0) + m_bIsLen = False Case Params.RIBSOVERLAP m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSOVERLAP, 0) m_bIsLen = False @@ -890,6 +951,12 @@ Public Class NumericMachiningParam 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.RIBSOVERLAP WriteMachiningParam(nIndex, MAC_RIBSOVERLAP, sWriteValue, sFilePath) Case Params.RIBSSTRANDCOUNT @@ -967,8 +1034,8 @@ Public Class StringMachiningParam End Get End Property - Sub New(Type As Params, nIndex As Integer) - MyBase.New(Type) + Sub New(Type As Params, nIndex As Integer, Cathegory As MachiningCathegory) + MyBase.New(Type, Cathegory) m_sValue = sValue m_sOrigValue = m_sValue End Sub @@ -1009,6 +1076,7 @@ Public Class ComboMachiningParam Set(value As IdNameStruct) m_SelValue = value NotifyPropertyChanged(NameOf(SelValue)) + ManageDependencyParam() End Set End Property @@ -1025,12 +1093,23 @@ Public Class ComboMachiningParam End Get End Property - Sub New(Type As Params) - MyBase.New(Type) + 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, nIndex As Integer) - MyBase.New(Type) + 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 @@ -1107,6 +1186,35 @@ Public Class ComboMachiningParam 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 ComboMachiningParam As ComboMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSSTRANDORDER) + ComboMachiningParam.SetIsActive(m_SelValue.Id = Machining.MPAR_INFILL.OFFSET) + ComboMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSLINKTYPE) + ComboMachiningParam.SetIsActive(m_SelValue.Id = Machining.MPAR_INFILL.OFFSET) + Dim NumMachiningParam As NumericMachiningParam = m_Cathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.AUXSOLIDSLINKPARAM) + NumMachiningParam.SetIsActive(m_SelValue.Id = Machining.MPAR_INFILL.OFFSET) + End Select + End Sub + Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "") Select Case Type Case Params.SLICINGTYPE @@ -1172,12 +1280,23 @@ Public Class CheckMachiningParam End Get End Property - Sub New(Type As Params) - MyBase.New(Type) + 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, nIndex As Integer) - MyBase.New(Type) + 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 @@ -1272,8 +1391,8 @@ Public Class MaterialMachiningParam End Get End Property - Sub New(sName As String, sGUID As String, bValue As Boolean) - MyBase.New(sName) + 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 @@ -1398,12 +1517,12 @@ Public Class OrderedMachiningParam Private m_cmdMoveDownOrder As ICommand Private m_cmdResetOrder As ICommand - Sub New(Type As Params) - MyBase.New(Type) + Sub New(Type As Params, Cathegory As MachiningCathegory) + MyBase.New(Type, Cathegory) End Sub - Sub New(Type As Params, nIndex As Integer) - MyBase.New(Type) + 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 diff --git a/Icarus/MachiningDb/MachiningDbV.xaml b/Icarus/MachiningDb/MachiningDbV.xaml index c63a231..dfde83e 100644 --- a/Icarus/MachiningDb/MachiningDbV.xaml +++ b/Icarus/MachiningDb/MachiningDbV.xaml @@ -134,7 +134,8 @@ - + @@ -149,7 +150,8 @@ - + @@ -167,7 +169,8 @@ + Margin="0,1,2.5,1" + IsEnabled="{Binding bIsActive}"> diff --git a/Icarus/RibParamPanel/RibParamPanelVM.vb b/Icarus/RibParamPanel/RibParamPanelVM.vb index ad3e7df..8df312d 100644 --- a/Icarus/RibParamPanel/RibParamPanelVM.vb +++ b/Icarus/RibParamPanel/RibParamPanelVM.vb @@ -42,19 +42,19 @@ Public Class RibParamPanelVM m_Type = Cathegories.RIBS m_sName = "Ribs" - m_MachiningParamList = New List(Of MachiningParam)({New RibComboMachiningParam(MachiningParam.Params.RIBSTYPE, nRibId, nPartId), - New RibNumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nRibId, nPartId), - New RibNumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nRibId, nPartId), - New RibCheckMachiningParam(MachiningParam.Params.RIBSLINK, nRibId, nPartId), - New RibCheckMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nRibId, nPartId), - New RibCheckMachiningParam(MachiningParam.Params.RIBSINVERTSTRANDORDER, nRibId, nPartId), - New RibCheckMachiningParam(MachiningParam.Params.RIBSLEADININVERT, nRibId, nPartId), - New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADINLEN, nRibId, nPartId), - New RibCheckMachiningParam(MachiningParam.Params.RIBSLEADOUTINVERT, nRibId, nPartId), - New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTLEN, nRibId, nPartId), - New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTCOASTING, nRibId, nPartId), - New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPE, nRibId, nPartId), - New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nRibId, nPartId)}) + m_MachiningParamList = New List(Of MachiningParam)({New RibComboMachiningParam(MachiningParam.Params.RIBSTYPE, nRibId, nPartId, Me), + New RibNumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nRibId, nPartId, Me), + New RibNumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nRibId, nPartId, Me), + New RibCheckMachiningParam(MachiningParam.Params.RIBSLINK, nRibId, nPartId, Me), + New RibCheckMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nRibId, nPartId, Me), + New RibCheckMachiningParam(MachiningParam.Params.RIBSINVERTSTRANDORDER, nRibId, nPartId, Me), + New RibCheckMachiningParam(MachiningParam.Params.RIBSLEADININVERT, nRibId, nPartId, Me), + New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADINLEN, nRibId, nPartId, Me), + New RibCheckMachiningParam(MachiningParam.Params.RIBSLEADOUTINVERT, nRibId, nPartId, Me), + New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTLEN, nRibId, nPartId, Me), + New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTCOASTING, nRibId, nPartId, Me), + New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPE, nRibId, nPartId, Me), + New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADOUTWIPEDIR, nRibId, nPartId, Me)}) NotifyPropertyChanged(NameOf(MachiningParamList)) NotifyPropertyChanged(NameOf(sName)) End Sub @@ -224,8 +224,8 @@ Public Class RibNumericMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nRibId As Integer, nPartId As Integer) - MyBase.New(Type) + Sub New(Type As Params, nRibId As Integer, nPartId As Integer, Cathegory As MachiningCathegory) + MyBase.New(Type, Cathegory) Dim bReadFromPart As Boolean = False Select Case Type Case Params.RIBSOVERLAP @@ -420,8 +420,8 @@ Public Class RibComboMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nRibId As Integer, nPartId As Integer) - MyBase.New(Type) + Sub New(Type As Params, nRibId As Integer, nPartId As Integer, Cathegory As MachiningCathegory) + MyBase.New(Type, Cathegory) Dim bReadFromRib As Boolean = False Dim bReadFromPart As Boolean = False Select Case Type @@ -525,8 +525,8 @@ Public Class RibCheckMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nRibId As Integer, nPartId As Integer) - MyBase.New(Type) + Sub New(Type As Params, nRibId As Integer, nPartId As Integer, Cathegory As MachiningCathegory) + MyBase.New(Type, Cathegory) Dim bReadFromPart As Boolean = False Select Case Type Case Params.RIBSLINK diff --git a/Icarus/ShellNumberParamPanel/ShellNumberParamPanelVM.vb b/Icarus/ShellNumberParamPanel/ShellNumberParamPanelVM.vb index 70544c1..f516bda 100644 --- a/Icarus/ShellNumberParamPanel/ShellNumberParamPanelVM.vb +++ b/Icarus/ShellNumberParamPanel/ShellNumberParamPanelVM.vb @@ -41,10 +41,10 @@ Public Class ShellNumberParamPanelVM m_Type = Cathegories.SHELL_NUMBER m_sName = "Reduce Shell Number" - m_MachiningParamList = New List(Of MachiningParam)({New ShellNumberNumericMachiningParam(MachiningParam.Params.SHELLNBRDIFFERENCE, nShellNumberId, nPartId), - New ShellNumberNumericMachiningParam(MachiningParam.Params.SHELLNBRCOASTING, nShellNumberId, nPartId), - New ShellNumberNumericMachiningParam(MachiningParam.Params.SHELLNBRWIPE, nShellNumberId, nPartId), - New ShellNumberNumericMachiningParam(MachiningParam.Params.SHELLNBRWIPEDIR, nShellNumberId, nPartId)}) + m_MachiningParamList = New List(Of MachiningParam)({New ShellNumberNumericMachiningParam(MachiningParam.Params.SHELLNBRDIFFERENCE, nShellNumberId, nPartId, Me), + New ShellNumberNumericMachiningParam(MachiningParam.Params.SHELLNBRCOASTING, nShellNumberId, nPartId, Me), + New ShellNumberNumericMachiningParam(MachiningParam.Params.SHELLNBRWIPE, nShellNumberId, nPartId, Me), + New ShellNumberNumericMachiningParam(MachiningParam.Params.SHELLNBRWIPEDIR, nShellNumberId, nPartId, Me)}) NotifyPropertyChanged(NameOf(MachiningParamList)) NotifyPropertyChanged(NameOf(sName)) End Sub @@ -164,8 +164,8 @@ Public Class ShellNumberNumericMachiningParam ' Definizione comandi Private m_cmdResetParam As ICommand - Sub New(Type As Params, nShellNumberId As Integer, nPartId As Integer) - MyBase.New(Type) + Sub New(Type As Params, nShellNumberId As Integer, nPartId As Integer, Cathegory As MachiningCathegory) + MyBase.New(Type, Cathegory) Dim bReadFromPart As Boolean = False Select Case Type Case Params.SHELLNBRDIFFERENCE