Inizio gestione cambio tavola
This commit is contained in:
@@ -293,6 +293,10 @@
|
||||
<DependentUpon>SplitModeV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningTab\SplitModeVM.vb" />
|
||||
<Compile Include="OptionPanel\NestingTab\ChangeTableV.xaml.vb">
|
||||
<DependentUpon>ChangeTableV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\NestingTab\ChangeTableVM.vb" />
|
||||
<Compile Include="OptionPanel\NestingTab\MultiSelectionV.xaml.vb">
|
||||
<DependentUpon>MultiSelectionV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -499,6 +503,10 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\NestingTab\ChangeTableV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\NestingTab\MultiSelectionV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@@ -982,6 +990,9 @@
|
||||
<Resource Include="Resources\NewIcons\LightArrowOff.png" />
|
||||
<Resource Include="Resources\NewIcons\LightArrowOn.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\table.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagOFFICE\OmagOFFICER32.exe
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<EgtWPFLib5:EgtCustomWindow x:Class="ChangeTableV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="30" IsResizable="False"
|
||||
IsMinimizable="False" WindowStartupLocation="CenterOwner"
|
||||
CloseCommand="{Binding CloseCommand,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"
|
||||
Title="{Binding sTitle}" Height="150" Width="320">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="2*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<ItemsControl ItemsSource="{Binding CurrTableList}">
|
||||
<!--Definisco l'organizzazione dei comandi-->
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<!--Definisco il contenuto del comando-->
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<RadioButton GroupName="TabGrp"
|
||||
IsChecked="{Binding IsActive}"
|
||||
Width="60" Height="60">
|
||||
|
||||
<RadioButton.Style>
|
||||
<Style TargetType="ToggleButton" BasedOn="{StaticResource ChangeTable_ToggleButton}">
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter Property="Foreground" Value="white"/>
|
||||
<Setter Property="Background" Value="BlueViolet"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</RadioButton.Style>
|
||||
<Grid>
|
||||
<!--Nome della tavole: Tab #-->
|
||||
<TextBlock Text="{Binding sName}" HorizontalAlignment="Center"
|
||||
Background="Transparent"/>
|
||||
<!--Rappresentazione di una tavola di lavoro-->
|
||||
<Image Source="{Binding ImgTab}" Margin="0,20,0,0"/>
|
||||
</Grid>
|
||||
|
||||
</RadioButton>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<Button Content="Ok" Margin="5" Command="{Binding OkCommand}"/>
|
||||
<Button Content="Cancel" Margin="5" Command="{Binding CancelCommand}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</EgtWPFLib5:EgtCustomWindow>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class ChangeTableV
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,140 @@
|
||||
Imports System.ComponentModel
|
||||
Imports System.Windows.Forms
|
||||
Imports EgtUILib
|
||||
|
||||
Public Class ChangeTableVM
|
||||
Inherits VMBase
|
||||
Private m_refChanTableV As ChangeTableV
|
||||
|
||||
Public Enum EnumDialogResult
|
||||
OK
|
||||
CANCEL
|
||||
End Enum
|
||||
|
||||
Private m_MyDialogResult As EnumDialogResult
|
||||
Public ReadOnly Property MyDialogResult As EnumDialogResult
|
||||
Get
|
||||
Return m_MyDialogResult
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sTitle As String = "Seleziona tavola di lavoro"
|
||||
Public ReadOnly Property sTitle As String
|
||||
Get
|
||||
Return m_sTitle
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_nSelectedTable As Integer = 0
|
||||
Public ReadOnly Property nSelectedTable As Integer
|
||||
Get
|
||||
Return m_nSelectedTable
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_cmdOk As ICommand
|
||||
Private m_cmdCancel As ICommand
|
||||
|
||||
Sub New(refV As ChangeTableV)
|
||||
m_refChanTableV = refV
|
||||
' Procedo alla creazione della lista delle tavole disponibili
|
||||
Initialized()
|
||||
End Sub
|
||||
|
||||
Private m_CurrTableList As New List(Of TableToChange)
|
||||
Public ReadOnly Property CurrTableList As List(Of TableToChange)
|
||||
Get
|
||||
Return m_CurrTableList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private Sub Initialized()
|
||||
' recuepero l'inidce della tavola corrente
|
||||
Dim nIndeXCurrTab As Integer = GetCurrentTable()
|
||||
' creo la lista delle tavole disponibili (attivo il bottone della tavola attualmente in uso)
|
||||
For nInd As Integer = 0 To GetTableCount() - 1
|
||||
m_CurrTableList.Add(New TableToChange("Tab", (nInd + 1), ((nInd + 1) = nIndeXCurrTab)))
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property OkCommand() 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 ReadOnly Property CancelCommand() As ICommand
|
||||
Get
|
||||
If m_cmdCancel Is Nothing Then
|
||||
m_cmdCancel = New Command(AddressOf Cancel)
|
||||
End If
|
||||
Return m_cmdCancel
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private Sub Ok()
|
||||
' recupero l'indice della tavola impostata
|
||||
For Each ItemTab As TableToChange In CurrTableList
|
||||
If ItemTab.IsActive Then
|
||||
m_nSelectedTable = ItemTab.nIndex
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
m_MyDialogResult = EnumDialogResult.OK
|
||||
' procedo alla chiusura della finetra
|
||||
m_refChanTableV.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub Cancel()
|
||||
m_MyDialogResult = EnumDialogResult.CANCEL
|
||||
' procedo alla chiusura della finetra
|
||||
m_refChanTableV.Close()
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class TableToChange
|
||||
Inherits VMBase
|
||||
|
||||
Private Property m_sName As String = "Tab"
|
||||
Public ReadOnly Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ImgTab As String
|
||||
Get
|
||||
Return "\Resources\NewIcons\table.png"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private Property m_nIndex As Integer = 3
|
||||
Public ReadOnly Property nIndex As Integer
|
||||
Get
|
||||
Return m_nIndex
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bIsActive As Boolean = False
|
||||
Public Property IsActive As Boolean
|
||||
Get
|
||||
Return m_bIsActive
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bIsActive = value
|
||||
NotifyPropertyChanged("IsActive")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub New(Name As String, Ind As Integer, IsCurrent As Boolean)
|
||||
m_sName = Name & " " & Ind.ToString
|
||||
m_nIndex = Ind
|
||||
m_bIsActive = IsCurrent
|
||||
NotifyPropertyChanged("IsActive")
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -1,5 +1,6 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtUILib
|
||||
Imports OmagOFFICE.ChangeTableVM
|
||||
|
||||
Public Class NestingTabVM
|
||||
Inherits VMBase
|
||||
@@ -2204,6 +2205,8 @@ Public Class NestingTabVM
|
||||
While nId <> GDB_ID.NULL
|
||||
' Recupero l'identificativo del pezzo cui appartiene
|
||||
Dim nPartId As Integer = EgtGetParent(EgtGetParent(nId))
|
||||
Dim sNamePartId As String = String.Empty
|
||||
EgtGetName(nPartId, sNamePartId)
|
||||
Dim bPartInTable As Boolean = (EgtGetParent(nPartId) = GetRawId())
|
||||
If EgtIsPart(nPartId) Or bPartInTable Then
|
||||
Dim nStat As Integer = GDB_ST.ON_
|
||||
@@ -2241,7 +2244,105 @@ Public Class NestingTabVM
|
||||
' Drag possibile
|
||||
m_bDrag = True
|
||||
Exit While
|
||||
End If
|
||||
|
||||
Else
|
||||
' verifico se l'elemento selezionato è il nome della tavola
|
||||
If EgtGetType(nId) = GDB_TY.EXT_TEXT AndAlso (sNamePartId = MAIN_TAB Or
|
||||
sNamePartId = SECOND_TAB Or
|
||||
sNamePartId = THIRD_TAB Or
|
||||
sNamePartId = FORTH_TAB) Then
|
||||
|
||||
' Apro la finestra per la selezione della tavola da usare
|
||||
Dim ChgTbV As New ChangeTableV
|
||||
Dim ChgTbVM As New ChangeTableVM(ChgTbV)
|
||||
ChgTbV.DataContext = ChgTbVM
|
||||
ChgTbV.ShowDialog()
|
||||
|
||||
' se non è stata eseguita nessuna scelta esco dal ciclo
|
||||
If ChgTbVM.MyDialogResult = EnumDialogResult.CANCEL Or ChgTbVM.nSelectedTable = 0 Then Exit While
|
||||
|
||||
' recupero il nome della tavola corrente
|
||||
Dim sOtherTab As String = GetTableName(ChgTbVM.nSelectedTable)
|
||||
|
||||
EgtChangeTable(sOtherTab, True)
|
||||
'm_CurrProjPage.AdjustAdditionalTable(True)
|
||||
EgtSetMachineLook(MCH_LOOK.TAB)
|
||||
' aggiorno le lavorazioni
|
||||
UpdateAllMachiningsToolpaths()
|
||||
' aggiorno i movimenti pezzi tra disposizioni
|
||||
For nI As Integer = 1 To EgtGetPhaseCount()
|
||||
EgtSetCurrPhase(nI)
|
||||
Dim nDispId As Integer = EgtGetPhaseDisposition(nI)
|
||||
SpecialApplyDisposition(nDispId, True)
|
||||
Next
|
||||
' aggiorno posizionamento ventose per lavorazioni da sotto
|
||||
UpdateVacuumsForDrip()
|
||||
'' dichiaro tutto aggiornato
|
||||
'm_CurrProjPage.SetOrderMachiningFlag()
|
||||
EgtSetCurrPhase(1)
|
||||
' aggiorno posizione pezzi in parcheggio
|
||||
Dim nPPId As Integer = EgtGetFirstPart()
|
||||
While nPPId <> GDB_ID.NULL
|
||||
PackPartInStore(nPPId)
|
||||
nPPId = EgtGetNextPart(nPPId)
|
||||
End While
|
||||
'' se prevista rotazione
|
||||
'If GetPrivateProfileInt(S_TABLE, K_CHANGETABWD, 0, m_MainWindow.GetMachIniFile()) = 2 Then
|
||||
' ' Dati tavola
|
||||
' Dim b3Tab As New BBox3d
|
||||
' EgtGetTableArea(1, b3Tab)
|
||||
' ' Box lastra
|
||||
' Dim b3OrigRaw As New BBox3d
|
||||
' GetRawBox(b3OrigRaw)
|
||||
' ' Allargo i limiti della tavola in tutte le fasi
|
||||
' Const TAB_OFFS As Double = 3000
|
||||
' For nI As Integer = 1 To EgtGetPhaseCount()
|
||||
' EgtSetCurrPhase(nI)
|
||||
' EgtSetTableAreaOffset(TAB_OFFS, TAB_OFFS, TAB_OFFS, TAB_OFFS)
|
||||
' Next
|
||||
' ' aggiorno posizionamento ventose per lavorazioni da sotto
|
||||
' UpdateVacuumsForDrip()
|
||||
' ' dichiaro tutto aggiornato
|
||||
' m_CurrProjPage.SetOrderMachiningFlag()
|
||||
' EgtSetCurrPhase(1)
|
||||
' ' Rotazione
|
||||
' Dim dAngRot As Double = If(sOtherTab = SECOND_TAB, 180, -180)
|
||||
' If Not RotateAllRawParts(dAngRot, False) Then
|
||||
' m_CurrProjPage.SetWarningMessage(EgtMsg(90339)) 'Rotazione impossibile
|
||||
' End If
|
||||
' ' Traslazione per riportare la lastra nella stessa posizione rispetto all'angolo BL che diveta TR e viceversa
|
||||
' Dim b3Raw As New BBox3d
|
||||
' GetRawBox(b3Raw)
|
||||
' Dim vtMove As Vector3d
|
||||
' If sOtherTab = SECOND_TAB Then
|
||||
' Dim vtDiffIni As Vector3d = b3OrigRaw.Min() - b3Tab.Min()
|
||||
' Dim vtDiffFin As Vector3d = b3Tab.Max() - b3Raw.Max()
|
||||
' vtMove = vtDiffFin - vtDiffIni
|
||||
' Else
|
||||
' Dim vtDiffIni As Vector3d = b3Tab.Max() - b3OrigRaw.Max()
|
||||
' Dim vtDiffFin As Vector3d = b3Raw.Min() - b3Tab.Min()
|
||||
' vtMove = -(vtDiffFin - vtDiffIni)
|
||||
' End If
|
||||
' vtMove.z = 0
|
||||
' MoveAllRawParts(vtMove)
|
||||
' ' Ripristino i limiti della tavola in tutte le fasi
|
||||
' For nI As Integer = 1 To EgtGetPhaseCount()
|
||||
' EgtSetCurrPhase(nI)
|
||||
' EgtSetTableAreaOffset(0, 0, 0, 0)
|
||||
' Next
|
||||
' EgtSetCurrPhase(1)
|
||||
' HideAllMachinings()
|
||||
'End If
|
||||
|
||||
' visualizzazione
|
||||
EgtZoom(ZM.ALL)
|
||||
' Elimino il datacontext della finsetra per la selezione della tavola
|
||||
ChgTbVM = Nothing
|
||||
Exit While
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
' Dati per drag
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 5.1 KiB |
@@ -595,6 +595,12 @@
|
||||
<Setter Property="Height" Value="40"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ChangeTable_ToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
|
||||
<Setter Property="Height" Value="50"/>
|
||||
<Setter Property="Width" Value="50"/>
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="Option_ColorButton" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Padding" Value="5"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||
|
||||
Reference in New Issue
Block a user