191 lines
10 KiB
VB.net
191 lines
10 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class CopyFromWndVM
|
|
Inherits VMBase
|
|
|
|
Friend Event m_CloseWindow(bDialogResult As Boolean)
|
|
|
|
Private m_RibList As ObservableCollection(Of RibEntity)
|
|
Public ReadOnly Property RibList As ObservableCollection(Of RibEntity)
|
|
Get
|
|
Return m_RibList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_SelRib As RibEntity
|
|
Public Property SelRib As RibEntity
|
|
Get
|
|
Return m_SelRib
|
|
End Get
|
|
Set(value As RibEntity)
|
|
m_SelRib = value
|
|
End Set
|
|
End Property
|
|
|
|
' Definizione comandi
|
|
Private m_cmdOk As ICommand
|
|
Private m_cmdCancel As ICommand
|
|
|
|
Sub New()
|
|
m_RibList = New ObservableCollection(Of RibEntity)(Map.refRibPanelVM.RibList)
|
|
m_RibList.Remove(m_RibList.FirstOrDefault(Function(x) x.nExtrusionId = Map.refRibPanelVM.SelRib.nExtrusionId))
|
|
If m_RibList.Count > 0 Then
|
|
m_SelRib = m_RibList(0)
|
|
End If
|
|
End Sub
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "Ok"
|
|
|
|
Public ReadOnly Property Ok_Command As ICommand
|
|
Get
|
|
If m_cmdOk Is Nothing Then
|
|
m_cmdOk = New Command(AddressOf Ok)
|
|
End If
|
|
Return m_cmdOk
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Ok()
|
|
If IsNothing(m_SelRib) Then
|
|
MessageBox.Show("Please select the rib from which to copy the parameters!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning)
|
|
Return
|
|
End If
|
|
' copio i parametri nella rib corrente
|
|
Dim ParamList As New List(Of MachiningParam.Params)({MachiningParam.Params.RIBSSTRANDWIDTH,
|
|
MachiningParam.Params.RIBSTYPE,
|
|
MachiningParam.Params.RIBSOVERLAP,
|
|
MachiningParam.Params.RIBSSTRANDCOUNT,
|
|
MachiningParam.Params.RIBSLINK,
|
|
MachiningParam.Params.RIBSMERGEWITHSHELL,
|
|
MachiningParam.Params.RIBSINVERTDIRECTION,
|
|
MachiningParam.Params.RIBSINVERTSTRANDORDER,
|
|
MachiningParam.Params.RIBSLEADININVERT,
|
|
MachiningParam.Params.RIBSLEADINLEN,
|
|
MachiningParam.Params.RIBSLEADOUTINVERT,
|
|
MachiningParam.Params.RIBSLEADOUTLEN,
|
|
MachiningParam.Params.RIBSLEADOUTCOASTING,
|
|
MachiningParam.Params.RIBSLEADOUTWIPE,
|
|
MachiningParam.Params.RIBSLEADOUTWIPEDIR})
|
|
For Each Param In ParamList
|
|
Select Case Map.refRibPanelVM.SelRib.Type
|
|
Case RibEntity.RibTypes.FROMDRAW
|
|
CopyParam(Param, m_SelRib.nExtrusionId, Map.refRibPanelVM.SelRib.nCurveId)
|
|
CopyParam(Param, m_SelRib.nExtrusionId, Map.refRibPanelVM.SelRib.nExtrusionId)
|
|
Case RibEntity.RibTypes.FROMIMPORT
|
|
CopyParam(Param, m_SelRib.nExtrusionId, Map.refRibPanelVM.SelRib.nExtrusionId)
|
|
End Select
|
|
Next
|
|
'' ricarico i parametri
|
|
'Map.refRibParamPanelVM.Init()
|
|
RaiseEvent m_CloseWindow(True)
|
|
End Sub
|
|
|
|
Private Sub CopyParam(Type As MachiningParam.Params, nFromId As Integer, nToId As Integer)
|
|
Dim bRead As Boolean = False
|
|
Select Case Type
|
|
Case MachiningParam.Params.RIBSTYPE
|
|
Dim RibTypeParam As RibComboMachiningParam = Nothing
|
|
Dim nRibParam As Integer = 0
|
|
Select Case Type
|
|
Case MachiningParam.Params.RIBSTYPE
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSTYPE)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSTYPE, nRibParam)
|
|
End Select
|
|
If Not IsNothing(RibTypeParam) AndAlso bRead Then
|
|
RibTypeParam.SelValue = RibTypeParam.ValueList.FirstOrDefault(Function(x) x.Id = nRibParam)
|
|
Else
|
|
RibTypeParam.SelValue = RibTypeParam.PartSelValue
|
|
End If
|
|
Case MachiningParam.Params.RIBSSTRANDWIDTH, MachiningParam.Params.RIBSOVERLAP, MachiningParam.Params.RIBSSTRANDCOUNT, MachiningParam.Params.RIBSLEADINLEN, MachiningParam.Params.RIBSLEADOUTLEN,
|
|
MachiningParam.Params.RIBSLEADOUTCOASTING, MachiningParam.Params.RIBSLEADOUTWIPE, MachiningParam.Params.RIBSLEADOUTWIPEDIR
|
|
Dim RibTypeParam As RibNumericMachiningParam = Nothing
|
|
Dim dRibParam As Double = 0
|
|
Select Case Type
|
|
Case MachiningParam.Params.RIBSSTRANDWIDTH
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSSTRANDWIDTH)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSSTRANDWIDTH, dRibParam)
|
|
Case MachiningParam.Params.RIBSOVERLAP
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSOVERLAP)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSOVERLAP, dRibParam)
|
|
Case MachiningParam.Params.RIBSSTRANDCOUNT
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSSTRANDCOUNT)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSSTRANDCOUNT, dRibParam)
|
|
Case MachiningParam.Params.RIBSLEADINLEN
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSLEADINLEN)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSLEADINLEN, dRibParam)
|
|
Case MachiningParam.Params.RIBSLEADOUTLEN
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSLEADOUTLEN)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSLEADOUTLEN, dRibParam)
|
|
Case MachiningParam.Params.RIBSLEADOUTCOASTING
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSLEADOUTCOASTING)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSLEADOUTCOASTING, dRibParam)
|
|
Case MachiningParam.Params.RIBSLEADOUTWIPE
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSLEADOUTWIPE)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSLEADOUTWIPE, dRibParam)
|
|
Case MachiningParam.Params.RIBSLEADOUTWIPEDIR
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSLEADOUTWIPEDIR)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSLEADOUTWIPEDIR, dRibParam)
|
|
End Select
|
|
If Not IsNothing(RibTypeParam) AndAlso bRead Then
|
|
RibTypeParam.SetValue(dRibParam)
|
|
Else
|
|
RibTypeParam.SetValue(RibTypeParam.dPartValue)
|
|
End If
|
|
Case MachiningParam.Params.RIBSLINK, MachiningParam.Params.RIBSMERGEWITHSHELL, MachiningParam.Params.RIBSINVERTDIRECTION, MachiningParam.Params.RIBSINVERTSTRANDORDER, MachiningParam.Params.RIBSLEADININVERT, MachiningParam.Params.RIBSLEADOUTINVERT
|
|
Dim RibTypeParam As RibCheckMachiningParam = Nothing
|
|
Dim bRibParam As Boolean = False
|
|
Select Case Type
|
|
Case MachiningParam.Params.RIBSLINK
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSLINK)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSLINK, bRibParam)
|
|
Case MachiningParam.Params.RIBSMERGEWITHSHELL
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSMERGEWITHSHELL)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSMERGEWITHSHELL, bRibParam)
|
|
Case MachiningParam.Params.RIBSINVERTDIRECTION
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSINVERTDIRECTION)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSINVERTDIRECTION, bRibParam)
|
|
Case MachiningParam.Params.RIBSINVERTSTRANDORDER
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSINVERTSTRANDORDER)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSINVERTSTRANDORDER, bRibParam)
|
|
Case MachiningParam.Params.RIBSLEADININVERT
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSLEADININVERT)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSLEADININVERT, bRibParam)
|
|
Case MachiningParam.Params.RIBSLEADOUTINVERT
|
|
RibTypeParam = Map.refRibParamPanelVM.MachiningParamList.FirstOrDefault(Function(x) x.Type = MachiningParam.Params.RIBSLEADOUTINVERT)
|
|
bRead = EgtGetInfo(nFromId, MAC_RIBSLEADOUTINVERT, bRibParam)
|
|
End Select
|
|
If Not IsNothing(RibTypeParam) AndAlso bRead Then
|
|
RibTypeParam.bValue = bRibParam
|
|
Else
|
|
RibTypeParam.bValue = RibTypeParam.bPartValue
|
|
End If
|
|
End Select
|
|
End Sub
|
|
|
|
#End Region ' Ok
|
|
|
|
#Region "Cancel"
|
|
|
|
Public ReadOnly Property Cancel_Command As ICommand
|
|
Get
|
|
If m_cmdCancel Is Nothing Then
|
|
m_cmdCancel = New Command(AddressOf Cancel)
|
|
End If
|
|
Return m_cmdCancel
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Cancel()
|
|
RaiseEvent m_CloseWindow(False)
|
|
End Sub
|
|
|
|
#End Region ' Cancel
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
End Class
|