Compare commits

..

14 Commits

Author SHA1 Message Date
Nicola Pievani 1ddb8a27fb Aggiunto comando "Muovi" per i tagli diretti 2023-10-24 17:37:11 +02:00
Nicola Pievani 41ca5127c6 Merge commit '6fc916051c7939ae1e0d42d2919eeb126499becc' into Features/Add_Single_CUT 2023-10-23 18:11:56 +02:00
Nicola Pievani 860823c929 Nuova impaginazione dati Split, correzione apertura file Log 2023-10-23 18:11:29 +02:00
Nicola Pievani 9cd0b4aefa Gestione Selezione multipla da Scena 2023-10-20 14:39:14 +02:00
Nicola Pievani 6fc916051c Gestione colore testi Compo 2023-10-19 18:08:45 +02:00
Nicola Pievani 8df36d2768 Aggiornata pagina CSV 2023-10-19 17:20:33 +02:00
Nicola Pievani 997ca13934 Merge commit '9b6761af37c0801aa8825592aed0941c2d3d5238' into Features/Manage_Icons 2023-10-19 14:55:22 +02:00
Nicola Pievani 9b6761af37 Gestione comando Escape per interrompere 2023-10-19 11:05:08 +02:00
Nicola Pievani 732c05fd9c Creazione taglio SplitCut da contorno pezzo 2023-10-18 13:38:40 +02:00
Nicola Pievani 71372bf51a Merge commit '30cc0e29e4b79b951543f4d56293bbffae853233' into Features/Add_Single_CUT 2023-10-18 10:34:02 +02:00
Nicola Pievani a63089a0c8 Gestione eliminazione tagli diretti 2023-10-06 17:43:10 +02:00
Nicola Pievani 5d6c666128 Inizio inserimento tagli separazione in Splitting 2023-10-05 18:45:39 +02:00
Demetrio Cassarino 30cc0e29e4 Aggiornamento label grafica 2023-10-04 08:45:15 +02:00
Demetrio Cassarino 882f7ba82f Creazioen label apertura file log 2023-10-03 17:35:40 +02:00
29 changed files with 1667 additions and 421 deletions
+27 -27
View File
@@ -3,60 +3,60 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
DockPanel.Dock="Bottom">
<Grid Visibility="{Binding Top_Visibility}"
<Grid Visibility="{Binding Top_Visibility}"
Margin="0,0,0,5">
<TextBlock Text="{Binding TopMsg}"/>
<CheckBox IsChecked="{Binding TopIsChecked}"
<TextBlock Text="{Binding TopMsg}" Foreground="{DynamicResource Omag_White}"/>
<CheckBox IsChecked="{Binding TopIsChecked}"
HorizontalAlignment="Right" Margin="6,0,6,0"/>
</Grid>
</Grid>
<Button Content="{Binding TrfDataMsg}"
<Button Content="{Binding TrfDataMsg}"
Command="{Binding TrfData_Command}"
Visibility="{Binding TrfData_Visibility}"
Margin="0,0,0,5"
Style="{StaticResource CompoWindow_Button}"/>
<Button Content="{Binding CsvDataMsg}"
<Button Content="{Binding CsvDataMsg}"
Command="{Binding CsvData_Command}"
Visibility="{Binding CsvData_Visibility}"
Margin="0,0,0,5"
Style="{StaticResource CompoWindow_Button}"/>
<Grid Visibility="{Binding PartName_Visibility}"
<Grid Visibility="{Binding PartName_Visibility}"
Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding PartNameMsg}" Grid.Column="0"/>
<EgtWPFLib5:EgtTextBox Text="{Binding PartName}" Grid.Column="1" Width="130"/>
<TextBlock Text="{Binding PartNameMsg}" Grid.Column="0" Foreground="{DynamicResource Omag_White}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding PartName}" Grid.Column="1" Width="130"/>
</Grid>
</Grid>
<Grid Visibility="{Binding PartNum_Visibility}"
<Grid Visibility="{Binding PartNum_Visibility}"
Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding PartNumMsg}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding PartNum}" Grid.Column="1" Width="60"/>
<TextBlock Text="{Binding PartNumMsg}" Foreground="{DynamicResource Omag_White}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding PartNum}" Grid.Column="1" Width="60"/>
</Grid>
</Grid>
<UniformGrid Columns="2"
<UniformGrid Columns="2"
Margin="0,0,0,5"
Visibility="{Binding OkExit_Visibility}">
<Button Content="{Binding OkMsg}"
<Button Content="{Binding OkMsg}"
Command="{Binding OkCommand}"
Style="{StaticResource CompoWindow_Button}"/>
<Button Content="{Binding ExitMsg}" IsCancel="True"
<Button Content="{Binding ExitMsg}" IsCancel="True"
Style="{StaticResource CompoWindow_Button}"/>
</UniformGrid>
</UniformGrid>
</StackPanel>
+63 -63
View File
@@ -4,13 +4,13 @@
xmlns:OmagOFFICE="clr-namespace:OmagOFFICE"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<DockPanel>
<DockPanel>
<UniformGrid Columns="3"
DockPanel.Dock="Top"
Visibility="{Binding SideEntity_Visibility}"
Margin="0,0,0,0">
<!--Inclina lati-->
<ToggleButton
IsChecked="{Binding SideAngle_IsChecked}"
@@ -21,7 +21,7 @@
<AccessText TextWrapping="Wrap" Text="{Binding SideAngleMsg}"/>
</ToggleButton.Content>
</ToggleButton>
<!--FiloTop-->
<!--<ToggleButton Padding="0"
IsChecked="{Binding FiloTop_IsChecked}"
@@ -32,7 +32,7 @@
<AccessText TextWrapping="Wrap" Text="{Binding FiloTopMsg}"/>
</ToggleButton.Content>
</ToggleButton>-->
<!--Incidi-->
<ToggleButton Padding="0"
IsChecked="{Binding Engrave_IsChecked}"
@@ -50,100 +50,100 @@
Margin="1.75,0,0,0"
IsEnabled="{Binding Drip_IsEnabled}">
<ToggleButton.Content>
<AccessText TextWrapping="Wrap" Text="{Binding DripMsg}" />
<AccessText TextWrapping="Wrap" Text="{Binding DripMsg}" />
</ToggleButton.Content>
</ToggleButton>
</UniformGrid>
<StackPanel DockPanel.Dock="Bottom">
<ContentControl Content="{Binding CompoManagerControl,
<StackPanel DockPanel.Dock="Bottom">
<ContentControl Content="{Binding CompoManagerControl,
UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding CompoManagerControl_Visibility}"/>
<Button Command="{Binding BackCommand}"
<Button Command="{Binding BackCommand}"
Visibility="{Binding Back_Visibility}"
Style="{StaticResource CompoWindow_Button}"
Focusable="False"
Margin="0,0,0,5">
<Image Source="/Resources/MachiningTab/BackArrow.png"/>
</Button>
</StackPanel>
<Image Source="/Resources/MachiningTab/BackArrow.png"/>
</Button>
<Grid>
<ContentControl VerticalAlignment="Center"
</StackPanel>
<Grid>
<ContentControl VerticalAlignment="Center"
Content="{Binding SideEntityControl}"/>
<StackPanel VerticalAlignment="Center"
<StackPanel VerticalAlignment="Center"
Visibility="{Binding Measure_Visibility}">
<ItemsControl ItemsSource="{Binding CompoParamList}">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type OmagOFFICE:TextParamItem}">
<Grid Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" VerticalAlignment="Center"/>
<EgtWPFLib5:EgtTextBox Grid.Column="1"
<ItemsControl ItemsSource="{Binding CompoParamList}">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type OmagOFFICE:TextParamItem}">
<Grid Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" VerticalAlignment="Center" Foreground="{DynamicResource Omag_White}"/>
<EgtWPFLib5:EgtTextBox Grid.Column="1"
Text="{Binding Value}" IsEnabled="{Binding IsEnable}"/>
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type OmagOFFICE:CheckParamItem}">
<Grid Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}"/>
<CheckBox Grid.Column="1"
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type OmagOFFICE:CheckParamItem}">
<Grid Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" Foreground="{DynamicResource Omag_White}"/>
<CheckBox Grid.Column="1"
IsChecked="{Binding Value}" IsEnabled="{Binding IsEnable}"
HorizontalAlignment="Center"/>
</Grid>
</DataTemplate>
</ItemsControl.Resources>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</Grid>
</DataTemplate>
</ItemsControl.Resources>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ItemsControl>
<TextBlock Text="{Binding OutputMessage}"
<TextBlock Text="{Binding OutputMessage}"
Foreground="{Binding MsgColor}"
TextWrapping="Wrap"
TextAlignment="Justify"
Margin="0,0,0,5"/>
<Button Content="{Binding InternalMsg}"
<Button Content="{Binding InternalMsg}"
Command="{Binding InternalCommand}"
Visibility="{Binding Internal_Visibility}"
Style="{StaticResource CompoWindow_Button}"/>
<Button Content="{Binding AlzAndFrontMsg}"
<Button Content="{Binding AlzAndFrontMsg}"
Command="{Binding AlzAndFrontCommand}"
Visibility="{Binding AlzAndFront_Visibility}"
Style="{StaticResource CompoWindow_Button}"/>
<UniformGrid Columns="2"
<UniformGrid Columns="2"
Margin="0,0,0,5"
Visibility="{Binding AddRemove_Visibility}">
<Button Content="{Binding AddMsg}"
<Button Content="{Binding AddMsg}"
Command="{Binding AddCommand}"
Style="{StaticResource CompoWindow_Button}"/>
<Button Content="{Binding CancelMsg}"
<Button Content="{Binding CancelMsg}"
Command="{Binding CancelCommand}"
Style="{StaticResource CompoWindow_Button}"/>
</UniformGrid>
</UniformGrid>
</StackPanel>
</Grid>
</DockPanel>
</StackPanel>
</Grid>
</DockPanel>
</UserControl>
Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

+87 -76
View File
@@ -13,101 +13,112 @@
MaxWidth="500"
ResizeMode="NoResize">
<DockPanel Margin="5,5,5,0">
<DockPanel Margin="5,5,5,0" Background="{StaticResource Omag_DarkGray}">
<TextBlock Text="{Binding CsvPath}"
DockPanel.Dock="Top"
Margin="0,0,0,5"/>
<UniformGrid Columns="2"
DockPanel.Dock="Bottom"
<UniformGrid Columns="15"
DockPanel.Dock="Top"
Margin="0,0,0,5">
<Button Content="{Binding InsertMsg}"
<Button Command="{Binding NewCommand}"
Margin="0,0,2.5,0"
Style = "{DynamicResource CSV_Button}">
<Image Source="/Resources/TopCommandBar/Reset.png" Stretch="Uniform"/>
</Button>
<Button Command="{Binding OpenCommand}"
Margin="2.5,0,2.5,0"
Style = "{DynamicResource CSV_Button}">
<Image Source="/Resources/TopCommandBar/Import.png" Stretch="Uniform"/>
</Button>
<ToggleButton IsChecked="{Binding Plus_IsChecked}"
Style="{DynamicResource CSV_ToggleButton}"
Margin="2.5,0,2.5,0">
<Image Source="/Resources/CsvWindow/CsvPlus - Color.png"/>
</ToggleButton>
<ToggleButton IsChecked="{Binding Minus_IsChecked}"
Style="{DynamicResource CSV_ToggleButton}"
Margin="2.5,0,0,0">
<Image Source="/Resources/CsvWindow/CsvMinus - Color.png"/>
</ToggleButton>
<Button ToolTip="{Binding InsertMsg}"
Command="{Binding InsertCommand}"
Margin="0,0,2.5,0"
Style="{StaticResource CompoWindow_Button}"/>
<Button Content="{Binding RemoveMsg}"
Style = "{DynamicResource CSV_Button}">
<Image Source="/Resources/CsvWindow/Inserisci-pezzo CSV.png" Stretch="Uniform"/>
</Button>
<Button ToolTip="{Binding RemoveMsg}"
Command="{Binding RemoveCommand}"
Margin="2.5,0,0,0"
Style="{StaticResource CompoWindow_Button}"/>
</UniformGrid>
Style = "{DynamicResource CSV_Button}">
<Image Source="/Resources/CsvWindow/Parcheggia-pezzo CSV.png" Stretch="Uniform"/>
</Button>
</UniformGrid>
<UniformGrid Columns="4"
DockPanel.Dock="Bottom"
Margin="0,0,0,5">
<Button Command="{Binding NewCommand}"
Margin="0,0,2.5,0">
<Image Source="/Resources/CsvWindow/CsvNew.png"/>
</Button>
<Button Command="{Binding OpenCommand}"
Margin="2.5,0,2.5,0">
<Image Source="/Resources/CsvWindow/CsvOpen.png"/>
</Button>
<ToggleButton IsChecked="{Binding Plus_IsChecked}"
Margin="2.5,0,2.5,0">
<Image Source="/Resources/CsvWindow/CsvPlus.png"/>
</ToggleButton>
<ToggleButton IsChecked="{Binding Minus_IsChecked}"
Margin="2.5,0,0,0">
<Image Source="/Resources/CsvWindow/CsvMinus.png"/>
</ToggleButton>
</UniformGrid>
<TreeView ItemsSource="{Binding CsvTypeList}"
<TextBlock Text="{Binding CsvPath}"
DockPanel.Dock="Top"
Foreground="{StaticResource Omag_White}"
Margin="0,0,0,5"/>
<TreeView ItemsSource="{Binding CsvTypeList}"
Background="Transparent"
BorderThickness="0"
Margin="0,0,0,5" >
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<EventSetter Event="MouseUp" Handler="PartTypeClick"/>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<EventSetter Event="MouseUp" Handler="PartTypeClick"/>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type OmagOFFICE:CsvPartType}"
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type OmagOFFICE:CsvPartType}"
ItemsSource="{Binding CsvPartList}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{Binding PictureString}" Height="32" Width="32" Margin="0,8,6,4" />
<TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="15" Margin="10" />
<Image Grid.Column="0" Source="{Binding PictureString}" Height="32" Width="32" Margin="0,8,6,4" />
<TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="15" Margin="10" Foreground="{StaticResource Omag_White}"/>
</Grid>
<HierarchicalDataTemplate.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="MouseUp" Handler="PartItemClick"/>
<Style.Triggers>
<DataTrigger Binding="{Binding bIsActive}" Value="False">
<Setter Property="Foreground" Value="{StaticResource Omag_Gray}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</HierarchicalDataTemplate.ItemContainerStyle>
</Grid>
<HierarchicalDataTemplate.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="MouseUp" Handler="PartItemClick"/>
<Style.Triggers>
<DataTrigger Binding="{Binding bIsActive}" Value="true">
<Setter Property="Foreground" Value="{StaticResource Omag_White}"/>
</DataTrigger>
<DataTrigger Binding="{Binding bIsActive}" Value="False">
<Setter Property="Foreground" Value="{StaticResource Omag_Gray}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</HierarchicalDataTemplate.ItemContainerStyle>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type OmagOFFICE:CsvPartItem}">
<Grid Width="246" Margin="0,5,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<DataTemplate DataType="{x:Type OmagOFFICE:CsvPartItem}">
<Grid Width="246" Margin="0,5,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Name}" Height="18" FontSize="14" HorizontalAlignment="Right"/>
<TextBlock Grid.Column="1" Text="{Binding sText1}" Height="18" FontSize="14" HorizontalAlignment="Center"/>
<TextBlock Grid.Column="2" Text="{Binding sText2}" Height="18" FontSize="14" HorizontalAlignment="Left"/>
<TextBlock Grid.Column="0" Text="{Binding Name}" Height="18" FontSize="14" HorizontalAlignment="Right"/>
<TextBlock Grid.Column="1" Text="{Binding sText1}" Height="18" FontSize="14" HorizontalAlignment="Center"/>
<TextBlock Grid.Column="2" Text="{Binding sText2}" Height="18" FontSize="14" HorizontalAlignment="Left"/>
</Grid>
</DataTemplate>
</TreeView.Resources>
</Grid>
</DataTemplate>
</TreeView.Resources>
</TreeView>
</TreeView>
</DockPanel>
</DockPanel>
</EgtWPFLib5:EgtCustomWindow>
+93 -29
View File
@@ -1,4 +1,5 @@
Imports EgtUILib
Imports System.Security.Cryptography
Imports EgtUILib
Friend Module CamAuto
@@ -32,7 +33,7 @@ Friend Module CamAuto
Return bOk
End Function
Friend Function AddWaterJetMachining( nOperId As Integer, ByRef nWarn As Integer) As Boolean
Friend Function AddWaterJetMachining(nOperId As Integer, ByRef nWarn As Integer) As Boolean
EgtLuaCreateGlobTable("CAM")
SetLuaStandardCamParams()
EgtLuaSetGlobIntVar("CAM.OPERID", nOperId)
@@ -157,6 +158,69 @@ Friend Module CamAuto
Return bOk
End Function
Friend Function ResetAllSplitCut() As Boolean
Dim PartList As New List(Of Integer)
' Ricerca nei grezzi dei pezzi (devono essere ricercati tra quelli presenti nei grezzi)
Dim bOk As Boolean = True
' Recupero il numero di fasi presenti nel progetto
Dim nPhaseCount As Integer = EgtGetPhaseCount()
For nPhase As Integer = 1 To nPhaseCount
EgtSetCurrPhase(nPhase)
Dim nRawId As Integer = EgtGetFirstRawPart()
While nRawId <> GDB_ID.NULL
Dim nParId As Integer = EgtGetFirstPartInRawPart(nRawId)
If EgtVerifyRawPartPhase(nRawId, nPhase) Then
While nParId <> GDB_ID.NULL
Dim nNextParId As Integer = EgtGetNextPartInRawPart(nParId)
' verifico se il pezzo passato è un taglio di sepatazione (il nome deve contenere "SpliCut")
Dim sName As String = String.Empty
If EgtGetName(nParId, sName) AndAlso sName.Contains(SPLIT_CUT) Then
' Rimuovo il pezzo dal grezzo
If EgtRemovePartFromRawPart(nParId) Then
' Salvo l'indice del pezzo se non è stato già inserito
Dim nIndex As Integer = PartList.FirstOrDefault(Function(nId) nId = nParId)
If nIndex = 0 Then PartList.Add(nParId)
End If
End If
nParId = nNextParId
End While
End If
nRawId = EgtGetNextRawPart(nRawId)
End While
Next
' Reimposto la prima fase del progetto
EgtSetCurrPhase(1)
' Procedo ad eliminare il pezzo
For Each Item As Integer In PartList
bOk = bOk And EgtErase(Item)
Next
Return bOk
End Function
Friend Function RemoveCurrentSplitCut(nIdSplitCut As Integer) As Boolean
Dim bOk As Boolean = False
Dim nCurrPhase As Integer = EgtGetCurrPhase()
Dim nRawId As Integer = EgtGetFirstRawPart()
While nRawId <> GDB_ID.NULL
Dim nParId As Integer = EgtGetFirstPartInRawPart(nRawId)
If EgtVerifyRawPartPhase(nRawId, nCurrPhase) Then
While nParId <> GDB_ID.NULL
If nParId = nIdSplitCut Then
' Rimuovo il pezzo dal grezzo
bOk = EgtRemovePartFromRawPart(nParId)
Exit While
End If
nParId = EgtGetNextPartInRawPart(nParId)
End While
End If
If bOk Then Exit While
nRawId = EgtGetNextRawPart(nRawId)
End While
' Elimino il pezzo
bOk = bOk And EgtErase(nIdSplitCut)
Return bOk
End Function
' verifico che il contorno passato non sia stato separato
Friend Function VerifyOutLoopIsClosed(nIdLayerOutLoop As Integer) As Boolean
Dim nIdMy As Integer = EgtGetFirstInGroup(nIdLayerOutLoop)
@@ -260,7 +324,7 @@ Friend Module CamAuto
EgtGetGroupObjs(EgtGetFirstNameInGroup(nPartId, NAME_UNDERDRILL)) = 0 Then
Return True
End If
' Se tutti i pezzi
' Se tutti i pezzi
Else
' Salvo fase attualmente corrente
Dim nOriPhase As Integer = EgtGetCurrPhase()
@@ -401,9 +465,9 @@ Friend Module CamAuto
Dim sTool2 As String = String.Empty
EgtGetMachiningParam(MCH_MP.TUUID, sTuuid)
EgtTdbGetToolFromUUID(sTuuid, sTool)
If String.IsNullOrWhiteSpace( sTool) Then
If String.IsNullOrWhiteSpace(sTool) Then
Dim sMchTool As String = ""
EgtGetMachiningParam( MCH_MP.TOOL, sMchTool)
EgtGetMachiningParam(MCH_MP.TOOL, sMchTool)
bOk = False
If sMissingTools.IndexOf(sMchTool) = -1 Then
sMissingTools = sMissingTools & sMchTool & ", "
@@ -417,7 +481,7 @@ Friend Module CamAuto
sTool2 = sTool & "-2"
End If
If String.Compare(sTool, CurrentMachine.sCurrSaw) <> 0 AndAlso
( String.IsNullOrWhiteSpace( sTool2) OrElse String.Compare(sTool2, CurrentMachine.sCurrSaw) <> 0) AndAlso
(String.IsNullOrWhiteSpace(sTool2) OrElse String.Compare(sTool2, CurrentMachine.sCurrSaw) <> 0) AndAlso
String.Compare(sTool, CurrentMachine.sCurrDripSaw) <> 0 Then
bOk = False
If sMissingTools.IndexOf(sTool) = -1 Then
@@ -483,7 +547,7 @@ Friend Module CamAuto
Dim nOperId As Integer = EgtGetFirstOperation()
While nOperId <> GDB_ID.NULL
' verifico sia una lavorazione valida di taglio con lama
If IsValidMachining( nOperId) And EgtGetOperationType( nOperId) = MCH_OY.SAWING Then
If IsValidMachining(nOperId) And EgtGetOperationType(nOperId) = MCH_OY.SAWING Then
' verifica interferenza
Dim nFlag As Integer = FMI_TYPE.NONE
If Not VerifyComposedMachining(nOperId, nFlag) Then
@@ -604,8 +668,8 @@ Friend Module CamAuto
If nOriLeadIn <> MCH_SAW_LI.STRICT Then
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.STRICT)
Dim dUserAddLen As Double = 0
EgtGetInfo( nMchId, INFO_MCH_USER_SAL, dUserAddLen)
EgtRemoveInfo( nMchId, INFO_MCH_USER_SAL)
EgtGetInfo(nMchId, INFO_MCH_USER_SAL, dUserAddLen)
EgtRemoveInfo(nMchId, INFO_MCH_USER_SAL)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen - dUserAddLen - dSafeLen)
@@ -624,8 +688,8 @@ Friend Module CamAuto
If nOriLeadOut <> MCH_SAW_LO.STRICT Then
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.STRICT)
Dim dUserAddLen As Double = 0
EgtGetInfo( nMchId, INFO_MCH_USER_EAL, dUserAddLen)
EgtRemoveInfo( nMchId, INFO_MCH_USER_EAL)
EgtGetInfo(nMchId, INFO_MCH_USER_EAL, dUserAddLen)
EgtRemoveInfo(nMchId, INFO_MCH_USER_EAL)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen - dUserAddLen - dSafeLen)
@@ -956,13 +1020,13 @@ Friend Module CamAuto
Dim nRawId As Integer = EgtGetFirstRawPart()
If nRawId = GDB_ID.NULL Then Return False
' Se non ci sono pezzi, esco
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart( nRawId)
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart(nRawId)
If nPart1Id = GDB_ID.NULL Then Return True
' Verifico se cornice curva
Dim nDir As Integer = 0
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
Dim bSwap As Boolean = ( nDir = 0)
Dim bCurved As Boolean = ( nDir >= 2)
Dim bSwap As Boolean = (nDir = 0)
Dim bCurved As Boolean = (nDir >= 2)
' Recupero la lavorazione corrente di sgrossatura con lama
Dim sCurrSawRou As String = CurrentMachine.sCurrSawRoughing
If String.IsNullOrEmpty(sCurrSawRou) Then Return True
@@ -989,8 +1053,8 @@ Friend Module CamAuto
' Imposto la geometria
EgtSetMachiningGeometry(vId)
' Imposto trim iniziale e finale
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
' Se cornice curva, imposto SCC
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
' Applico la lavorazione
@@ -1005,13 +1069,13 @@ Friend Module CamAuto
Dim nRawId As Integer = EgtGetFirstRawPart()
If nRawId = GDB_ID.NULL Then Return False
' Se non ci sono pezzi, esco
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart( nRawId)
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart(nRawId)
If nPart1Id = GDB_ID.NULL Then Return True
' Verifico se cornice curva
Dim nDir As Integer = 0
EgtGetInfo( nPart1Id, INFO_FRAME_DIR, nDir)
Dim bSwap As Boolean = ( nDir = 0)
Dim bCurved As Boolean = ( nDir >= 2)
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
Dim bSwap As Boolean = (nDir = 0)
Dim bCurved As Boolean = (nDir >= 2)
' Recupero la lavorazione corrente di finitura con lama
Dim sCurrSawFin As String = CurrentMachine.sCurrSawFinishing
If String.IsNullOrEmpty(sCurrSawFin) Then Return True
@@ -1048,8 +1112,8 @@ Friend Module CamAuto
' Imposto la geometria
EgtSetMachiningGeometry(vId)
' Imposto trim iniziale e finale
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
' Se cornice curva, imposto SCC
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
' Applico la lavorazione
@@ -1064,13 +1128,13 @@ Friend Module CamAuto
Dim nRawId As Integer = EgtGetFirstRawPart()
If nRawId = GDB_ID.NULL Then Return False
' Se non ci sono pezzi, esco
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart( nRawId)
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart(nRawId)
If nPart1Id = GDB_ID.NULL Then Return True
' Verifico se cornice curva
Dim nDir As Integer = 0
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
Dim bSwap As Boolean = ( nDir = 0)
Dim bCurved As Boolean = ( nDir >= 2)
Dim bSwap As Boolean = (nDir = 0)
Dim bCurved As Boolean = (nDir >= 2)
' Recupero la lavorazione corrente di spatolatura con lama
Dim sCurrSawSideFin As String = CurrentMachine.sCurrSawSideFinishing
If String.IsNullOrEmpty(sCurrSawSideFin) Then Return True
@@ -1091,8 +1155,8 @@ Friend Module CamAuto
' Imposto la geometria
EgtSetMachiningGeometry(vId)
' Imposto trim iniziale e finale
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
' Se cornice curva, imposto SCC
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
' Applico la lavorazione
@@ -1231,14 +1295,14 @@ Friend Module CamAuto
dStartDist = dEndDist
dEndDist = dTemp
End If
' altrimenti
' altrimenti
Else
Dim vtSide As Vector3d
' Se faccia non limitata da altre o sopra la limitante
If bFree Then
EgtSetMachiningParam(MCH_MP.FACEUSE, MCH_MIL_FU.ORTUP_DOWN)
vtSide = Vector3d.Z_AX()
' altrimenti è stata trovata una faccia adiacente limitante
' altrimenti è stata trovata una faccia adiacente limitante
Else
If vtAdjN.x > 10 * EPS_SMALL Then
EgtSetMachiningParam(MCH_MP.FACEUSE, MCH_MIL_FU.ORTUP_LEFT)
+2
View File
@@ -260,6 +260,8 @@ Module ConstMach
Public Const INFO_AUX_SPLIT_WJ As String = "AUX_SPLIT_WJ"
' Info in OutLoop per punto inzio lavorazione WaterJet
Public Const INFO_START As String = "Start"
' Nome dei tagli diretti inseriti in fase di Splitting
Public Const SPLIT_CUT As String = "SplitCut"
' Nome di pezzo che è una cornice
Public Const NAME_FRAME As String = "Frame"
+3 -3
View File
@@ -17,9 +17,9 @@
<Button Command="{Binding MachOptionsCommand}" ToolTip="{Binding OptionsToolTip}" Style="{StaticResource ToolBar_Button}">
<Image Source="/Resources/TopCommandBar/Options.png" Stretch="Uniform" />
</Button>
<Button Command="{Binding SetUpCommand}" ToolTip="{Binding SetUpToolTip}"
Style="{StaticResource ToolBar_TextButton}" Width="70" Content="{Binding SetUpMsg}"
Background="{Binding SetUp_Background}"/>
<Button Command="{Binding SetUpCommand}" ToolTip="{Binding SetUpToolTip}" Style="{StaticResource ToolBar_Button}">
<Image Source="/Resources/NewIcons/ToolChangerPos.png" Stretch="Uniform" />
</Button>
<Button Command="{Binding WaterjetDbCommand}" ToolTip="{Binding WaterjetDbToolTip}"
Style="{StaticResource ToolBar_TextButton}" Width="70" Content="{Binding WaterjetDbMsg}" Visibility="{Binding WjDb_Visibility}"/>
</DockPanel>
+4
View File
@@ -14,6 +14,10 @@
<OmagOFFICE:TopCommandBarV DataContext="{StaticResource TopCommandBarVM}"/>
</EgtWPFLib5:EgtCustomWindow.TitlePanel>
<EgtWPFLib5:EgtCustomWindow.InputBindings>
<KeyBinding Key="Escape" Command="{Binding EscapeCommand}"/>
</EgtWPFLib5:EgtCustomWindow.InputBindings>
<!--Pannello principale -->
<DockPanel>
+22
View File
@@ -45,6 +45,7 @@ Public Class MainWindowVM
' definizione comandi
Private m_cmdAboutBox As ICommand
Private m_cmdCloseApplication As ICommand
Private m_cmdEscape As ICommand
#Region "CONSTRUCTOR"
@@ -136,6 +137,27 @@ Public Class MainWindowVM
#Region "COMMANDS"
#Region "Escape"
Public ReadOnly Property EscapeCommand() As ICommand
Get
If m_cmdEscape Is Nothing Then
m_cmdEscape = New Command(AddressOf Escape)
End If
Return m_cmdEscape
End Get
End Property
Public Sub Escape()
If Not IsNothing(OmagOFFICEMap.refSplitModeVM) Then
OmagOFFICEMap.refSplitModeVM.DeactiveSplitCut()
OmagOFFICEMap.refSplitModeVM.DeselectWJBridgesPart()
OmagOFFICEMap.refSplitModeVM.ResetAllMark()
End If
End Sub
#End Region
#Region "AboutBoxCommand"
' Returns a command that manage the MainWindow_Unloaded command
+36
View File
@@ -924,6 +924,42 @@
<ItemGroup>
<Resource Include="Resources\TopCommandBar\Modify.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Crea-taglio.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Attrezzaggio.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Rimuovi-taglio.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Modifica-taglio.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Crea-taglio-parallelo.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\CsvWindow\CsvMinus - Color.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\CsvWindow\CsvPlus - Color.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\CsvWindow\Inserisci-pezzo CSV.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\CsvWindow\Parcheggia-pezzo CSV.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Linea-Elimina.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Linea-Muovi.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Linea-Copia.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagOFFICE\OmagOFFICER32.exe
+319 -168
View File
@@ -3,6 +3,9 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="Transparent">
<UserControl.InputBindings>
<KeyBinding Key="Escape" Command="{Binding SplitCutCommand}" />
</UserControl.InputBindings>
<StackPanel IsEnabled="{Binding SplitModeIsEnabled}">
@@ -32,7 +35,7 @@
</ListBox>
</Border>
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,0,0,2.5">
<Button Grid.Column="1"
IsEnabled="{Binding bEnabledCommandMove}"
@@ -51,401 +54,549 @@
</StackPanel>
<Border Style="{StaticResource Border}" Margin="0,1,0,5">
<Expander Name="myExpander4" Background="Transparent"
Foreground="{DynamicResource Omag_White}"
HorizontalAlignment="Stretch" Header="Attiva tagli"
ExpandDirection="Down" IsExpanded="{Binding bOnOffCut_IsExpanded}">
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Margin="2,2.5,2,0">
<GroupBox Header="Attiva tagli" Style="{StaticResource GroupBoxSplit}">
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Margin="2,2.5,2,0">
<!--<Button Content="{Binding OnOffMsg}"
<!--<Button Content="{Binding OnOffMsg}"
Style="{StaticResource OptionPanel_TextWrapButton}"
Command="{Binding OnOffCommand}"
Margin="0,0,2.5,0"/>-->
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding OnOffMsg}"
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding OnOffMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding OnOffCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/ON_OFF-singolo-taglio.png"
<StackPanel>
<Image Source="/Resources/NewIcons/ON_OFF-singolo-taglio.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<!--<Button Content="{Binding AllOnMsg}"
<!--<Button Content="{Binding AllOnMsg}"
Style="{StaticResource OptionPanel_TextWrapButton}"
Command="{Binding AllOnCommand}"
Margin="2.5,0,2.5,0"/>-->
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding AllOnMsg}"
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding AllOnMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding AllOnCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Tutti-ON.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Tutti-ON.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<!--<Button Content="{Binding AllOffMsg}"
<!--<Button Content="{Binding AllOffMsg}"
Style="{StaticResource OptionPanel_TextWrapButton}"
Command="{Binding AllOffCommand}"
Margin="2.5,0,0,0"/>-->
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding AllOffMsg}"
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding AllOffMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding AllOffCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Tutti-OFF.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Tutti-OFF.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
</StackPanel>
</Expander>
</Border>
</GroupBox>
<Border Style="{StaticResource Border}" Margin="0,1,0,5">
<Expander Name="myExpander0" Background="Transparent"
Foreground="{DynamicResource Omag_White}"
HorizontalAlignment="Stretch" Header="Tagli di separazione"
ExpandDirection="Down" IsExpanded="{Binding bSpLitCut_IsExpanded}">
<GroupBox Header="Tagli di separazione" Style="{StaticResource GroupBoxSplit}">
<StackPanel Margin="0,0,0,-2.5">
<StackPanel>
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,2.5,0,1">
<Grid>
<!--<Button Content="{Binding CutMsg}"
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,2.5,0,1">
<Grid>
<!--<Button Content="{Binding CutMsg}"
Style="{StaticResource OptionPanel_TextWrapButton}"
Command="{Binding CutCommand}"
Visibility="{Binding CutBtnVisibility}"
Margin="0,0,2.5,0"/>-->
<StackPanel Visibility="{Binding CutBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding CutMsg}"
<StackPanel Visibility="{Binding CutBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding CutMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding CutCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Allunga-o-accorcia.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Allunga-o-accorcia.png"
Height="40" Margin="0,2,0,0"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<!--<ToggleButton Grid.Row="0"
<!--<ToggleButton Grid.Row="0"
Content="{Binding BridgeMsg}"
Style="{StaticResource OptionPanel_ToggleWrapButton}"
IsChecked="{Binding BridgeBtn_IsChecked}"
Visibility="{Binding BridgeBtnVisibility}"
Margin="0,0,2.5,0" Padding="0"/>-->
<StackPanel Visibility="{Binding BridgeBtnVisibility}" Margin="1,0,0,0">
<ToggleButton ToolTip="{Binding BridgeMsg}"
<StackPanel Visibility="{Binding BridgeBtnVisibility}" Margin="1,0,0,0">
<ToggleButton ToolTip="{Binding BridgeMsg}"
Style="{StaticResource Split_ToggleButton_Img}"
IsChecked="{Binding BridgeBtn_IsChecked}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Ponticelli.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Ponticelli.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</ToggleButton>
</StackPanel>
</ToggleButton>
</StackPanel>
</Grid>
</Grid>
<Grid>
<!--<Button Content="{Binding CutStartMsg}"
<Grid>
<!--<Button Content="{Binding CutStartMsg}"
Style="{StaticResource OptionPanel_TextWrapButton}"
Command="{Binding CutStartCommand}"
Visibility="{Binding CutStartBtnVisibility}"
Margin="2.5,0,2.5,0"/>-->
<StackPanel Visibility="{Binding CutStartBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding CutStartMsg}"
<StackPanel Visibility="{Binding CutStartBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding CutStartMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding CutStartCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Inizio-allunga-o-accorcia.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Inizio-allunga-o-accorcia.png"
Height="40" Margin="0,2,0,0"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<!--<Button Content="{Binding QualityMsg}"
<!--<Button Content="{Binding QualityMsg}"
Style="{StaticResource OptionPanel_TextWrapButton}"
Command="{Binding QualityCommand}"
Visibility="{Binding QualityBtnVisibility}"
Margin="2.5,0,2.5,0"/>!-->
<StackPanel Visibility="{Binding QualityBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding QualityMsg}"
<StackPanel Visibility="{Binding QualityBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding QualityMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding QualityCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Quality.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Quality.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
</Grid>
</Grid>
<Grid>
<StackPanel Visibility="{Binding CutEndBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding CutEndMsg}"
<Grid>
<StackPanel Visibility="{Binding CutEndBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding CutEndMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding CutEndCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Fine-allunga-o-accorcia.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Fine-allunga-o-accorcia.png"
Height="40" Margin="0,2,0,0"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<StackPanel Visibility="{Binding BridgeDeleteBtnVisibility}" Margin="1,0,0,0">
<ToggleButton ToolTip="{Binding BridgeDeleteMsg}"
<StackPanel Visibility="{Binding BridgeDeleteBtnVisibility}" Margin="1,0,0,0">
<ToggleButton ToolTip="{Binding BridgeDeleteMsg}"
Style="{StaticResource Split_ToggleButton_Img}"
IsChecked="{Binding BridgeDeleteBtn_IsChecked}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Ponticelli_delete.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Ponticelli_delete.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</ToggleButton>
</StackPanel>
</ToggleButton>
</Grid>
</StackPanel>
</Grid>
</StackPanel>
<UniformGrid Columns="4" Margin="0,0,0,-2.5">
<!--Bottone invisibile per permetter il corretto allineamento-->
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,2.5,0,1">
<!--Bottone invisibile per permetter il corretto allineamento-->
<!--
<Button Content="{Binding }" Grid.Column="0"
Style="{StaticResource OptionPanel_TextWrapButton}"
Command="{Binding }"
Visibility="Hidden"
Margin="0,0,1,0"/>
Margin="0,0,1,0"/>-->
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
<Button ToolTip="{Binding AllExtendMsg}"
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="2" Margin="1,0,0,0">
<Button ToolTip="{Binding AllExtendMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding AllExtendCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Tutti-allunga.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Tutti-allunga.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<StackPanel Visibility="{Binding AllReduceBtnVisibility}" Grid.Column="2" Margin="1,0,0,0">
<Button ToolTip="{Binding AllReduceMsg}"
<StackPanel Visibility="{Binding AllReduceBtnVisibility}" Grid.Column="2" Margin="1,0,0,0">
<Button ToolTip="{Binding AllReduceMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding AllReduceCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Tutti-accorcia.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</StackPanel>
<!--<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,2.5,0,1">
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
<ToggleButton ToolTip="{Binding AllExtendMsg}"
Style="{StaticResource Split_ToggleButton_Img}"
IsChecked="{Binding CreateCut_IsChecked}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="40" Height="40"
Margin="1,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Tutti-accorcia.png"
<Image Source="/Resources/NewIcons/Crea-taglio.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</ToggleButton>
</StackPanel>
</UniformGrid>
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
<ToggleButton ToolTip="{Binding AllExtendMsg}"
Style="{StaticResource Split_ToggleButton_Img}"
IsChecked="{Binding RemoveCut_IsChecked}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="40" Height="40"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Rimuovi-taglio.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</ToggleButton>
</StackPanel>
</StackPanel>
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
<ToggleButton ToolTip="{Binding AllExtendMsg}"
Style="{StaticResource Split_ToggleButton_Img}"
IsChecked="{Binding CreateParallelCut_IsChecked}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="40" Height="40"
Margin="1,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Crea-taglio-parallelo.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</ToggleButton>
</StackPanel>
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
<ToggleButton ToolTip="{Binding AllExtendMsg}"
Style="{StaticResource Split_ToggleButton_Img}"
IsChecked="{Binding CreateParallelCut_IsChecked}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="40" Height="40"
Margin="1,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Modifica-taglio.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</ToggleButton>
</StackPanel>
</StackPanel>-->
</GroupBox>
</StackPanel>
<GroupBox Header="Modifica attacchi tagli" Style="{StaticResource GroupBoxSplit}">
<StackPanel Margin="0,0,0,-2.5">
<UniformGrid Columns="4" Margin="0,2.5,0,1">
<StackPanel Visibility="{Binding OutCenStartBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding OutCenStartMsg}"
</Expander>
</Border>
<Border Style="{StaticResource Border}" Margin="0,1,0,5">
<Expander Name="myExpander2" Background="Transparent"
Foreground="{DynamicResource Omag_White}"
HorizontalAlignment="Stretch" Header="Tagli diretti di separazione"
ExpandDirection="Down" IsExpanded="{Binding bDirectSpLitCut_IsExpanded}">
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,2.5,0,1">
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
<ToggleButton ToolTip="Crea"
Style="{StaticResource Split_ToggleButton_Img}"
IsChecked="{Binding CreateCut_IsChecked}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="40" Height="40"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Linea.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</ToggleButton>
</StackPanel>
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
<ToggleButton ToolTip="Elimina"
Style="{StaticResource Split_ToggleButton_Img}"
IsChecked="{Binding RemoveCut_IsChecked}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="40" Height="40"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Linea-Elimina.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</ToggleButton>
</StackPanel>
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
<ToggleButton ToolTip="Copia"
Style="{StaticResource Split_ToggleButton_Img}"
IsChecked="{Binding CreateParallelCut_IsChecked}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="40" Height="40"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Linea-Copia.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</ToggleButton>
</StackPanel>
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
<ToggleButton ToolTip="Muovi"
Style="{StaticResource Split_ToggleButton_Img}"
IsChecked="{Binding ModifyCut_IsChecked}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="40" Height="40"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Linea-Muovi.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</ToggleButton>
</StackPanel>
</StackPanel>
</Expander>
</Border>
<Border Style="{StaticResource Border}" Margin="0,1,0,0">
<Expander Name="myExpander1" Background="Transparent"
Foreground="{DynamicResource Omag_White}"
HorizontalAlignment="Stretch" Header="Modifica attacchi tagli"
ExpandDirection="Down" IsExpanded="{Binding bModifyCut_IsExpanded}">
<StackPanel Margin="0,0,0,-2.5">
<UniformGrid Columns="4" Margin="0,2.5,0,1">
<StackPanel Visibility="{Binding OutCenStartBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding OutCenStartMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding OutCenStartCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Inizio-centro-fuori.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Inizio-centro-fuori.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<StackPanel Visibility="{Binding AllOutStartBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding AllOutStartMsg}"
<StackPanel Visibility="{Binding AllOutStartBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding AllOutStartMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding AllOutStartCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Inizio-tutti-fuori.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Inizio-tutti-fuori.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<StackPanel Visibility="{Binding AllCenStartBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding AllCenStartMsg}"
<StackPanel Visibility="{Binding AllCenStartBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding AllCenStartMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding AllCenStartCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Inizio-tutti-centro.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Inizio-tutti-centro.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<StackPanel Visibility="{Binding OutCenEndBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding OutCenEndMsg}"
<StackPanel Visibility="{Binding OutCenEndBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding OutCenEndMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding OutCenEndCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Fine-Centro-Fuori.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Fine-Centro-Fuori.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
</UniformGrid>
</UniformGrid>
<UniformGrid Columns="4" Margin="0,0,0,1">
<UniformGrid Columns="4" Margin="0,0,0,1">
<StackPanel Visibility="{Binding AllOutEndBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding AllOutEndMsg}"
<StackPanel Visibility="{Binding AllOutEndBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding AllOutEndMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding AllOutEndCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Fine-tutti-fuori.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Fine-tutti-fuori.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<StackPanel Visibility="{Binding AllCenEndBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding AllCenEndMsg}"
<StackPanel Visibility="{Binding AllCenEndBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding AllCenEndMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding AllCenEndCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Fine-tutti-centro.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Fine-tutti-centro.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding ModifStartMsg}"
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding ModifStartMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding ModifStartCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Modifica-Inizio.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Modifica-Inizio.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding ModifEndMsg}"
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding ModifEndMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding ModifEndCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Modifica-Fine.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Modifica-Fine.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
</UniformGrid>
</UniformGrid>
<UniformGrid Columns="4" Margin="0,0,0,1">
<UniformGrid Columns="4" Margin="0,0,0,1">
<!--Bottone invisibile per permetter il corretto allineamento-->
<Button Content="{Binding }" Grid.Column="0"
<!--Bottone invisibile per permetter il corretto allineamento-->
<Button Content="{Binding }" Grid.Column="0"
Style="{StaticResource OptionPanel_TextWrapButton}"
Command="{Binding }"
Visibility="Hidden"
Margin="0,0,1,0"/>
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding PauseMsg}"
<StackPanel Margin="1,0,0,0">
<Button ToolTip="{Binding PauseMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding PauseCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Pausa-ON_OFF.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Pausa-ON_OFF.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</StackPanel>
<StackPanel Visibility="{Binding InvertBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding InvertMsg}"
<StackPanel Visibility="{Binding InvertBtnVisibility}" Margin="1,0,0,0">
<Button ToolTip="{Binding InvertMsg}"
Style="{StaticResource Split_Button_Img}"
Command="{Binding InvertCommand}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,0">
<StackPanel>
<Image Source="/Resources/NewIcons/Inverti.png"
<StackPanel>
<Image Source="/Resources/NewIcons/Inverti.png"
Style="{StaticResource ImgButton}"/>
</StackPanel>
</Button>
</StackPanel>
</Button>
</UniformGrid>
</StackPanel>
</UniformGrid>
</StackPanel>
</GroupBox>
</Expander>
</Border>
</StackPanel>
</UserControl>
+612 -24
View File
@@ -1,6 +1,10 @@
Imports System.Collections.ObjectModel
Imports System.Drawing
Imports System.Reflection
Imports System.Security.Cryptography
Imports EgtUILib
Imports EgtWPFLib5
Imports EgtWPFLib5.EgtCustomWindow
Public Class SplitModeVM
Inherits VMBase
@@ -39,6 +43,17 @@ Public Class SplitModeVM
Private m_ptSrtBridge As New Point3d
Private m_ptEndBridge As New Point3d
' Punti per creazione tagli odi separazione
Private m_ptStartPoint As Point3d
Private m_bGetStartPoint As Boolean = False
Private m_ptEndPoint As Point3d
Private m_bGetEndPoint As Boolean = False
Private m_IdSplitLine As Integer = GDB_ID.NULL
Private m_IdSplitGroup As Integer = GDB_ID.NULL
Private m_IdSplitGroupLayer As Integer = GDB_ID.NULL
Private m_IdCurrRawSolid As Integer = GDB_ID.NULL
Private m_IdSplitLineRemove As Integer = GDB_ID.NULL
' Flag di pagina attiva
Private m_bActive As Boolean = False
' Drag
@@ -268,6 +283,54 @@ Public Class SplitModeVM
End Set
End Property
Private m_bOnOffCut_IsExpanded As Boolean = True
Public Property bOnOffCut_IsExpanded As Boolean
Get
Return m_bOnOffCut_IsExpanded
End Get
Set(value As Boolean)
m_bOnOffCut_IsExpanded = value
NotifyPropertyChanged(NameOf(bOnOffCut_IsExpanded))
WriteMainPrivateProfileString("Split", "OnOffCut", If(m_bOnOffCut_IsExpanded, "1", "0"))
End Set
End Property
Private m_bSpLitCut_IsExpanded As Boolean = True
Public Property bSpLitCut_IsExpanded As Boolean
Get
Return m_bSpLitCut_IsExpanded
End Get
Set(value As Boolean)
m_bSpLitCut_IsExpanded = value
NotifyPropertyChanged(NameOf(bSpLitCut_IsExpanded))
WriteMainPrivateProfileString("Split", "SplitCut", If(m_bSpLitCut_IsExpanded, "1", "0"))
End Set
End Property
Private m_bDirectSpLitCut_IsExpanded As Boolean = True
Public Property bDirectSpLitCut_IsExpanded As Boolean
Get
Return m_bDirectSpLitCut_IsExpanded
End Get
Set(value As Boolean)
m_bDirectSpLitCut_IsExpanded = value
NotifyPropertyChanged(NameOf(bDirectSpLitCut_IsExpanded))
WriteMainPrivateProfileString("Split", "DirectSplitCut", If(m_bDirectSpLitCut_IsExpanded, "1", "0"))
End Set
End Property
Private m_bModifyCut_IsExpanded As Boolean = True
Public Property bModifyCut_IsExpanded As Boolean
Get
Return m_bModifyCut_IsExpanded
End Get
Set(value As Boolean)
m_bModifyCut_IsExpanded = value
NotifyPropertyChanged(NameOf(bModifyCut_IsExpanded))
WriteMainPrivateProfileString("Split", "ModifyCut", If(m_bModifyCut_IsExpanded, "1", "0"))
End Set
End Property
Private m_BridgeBtn_IsChecked As Boolean = False
Public Property BridgeBtn_IsChecked As Boolean
Get
@@ -292,6 +355,82 @@ Public Class SplitModeVM
End Set
End Property
#Region "SPLIT CUT"
Private m_CreateCut_IsChecked As Boolean
Public Property CreateCut_IsChecked As Boolean
Get
Return m_CreateCut_IsChecked
End Get
Set(value As Boolean)
m_CreateCut_IsChecked = value
m_RemoveCut_IsChecked = False
m_CreateParallelCut_IsChecked = False
m_ModifyCut_IsChecked = False
NotifyPropertyChanged(NameOf(RemoveCut_IsChecked))
NotifyPropertyChanged(NameOf(CreateParallelCut_IsChecked))
NotifyPropertyChanged(NameOf(ModifyCut_IsChecked))
CreateCutIsChecked()
NotifyPropertyChanged(NameOf(CreateCut_IsChecked))
End Set
End Property
Private m_RemoveCut_IsChecked As Boolean
Public Property RemoveCut_IsChecked As Boolean
Get
Return m_RemoveCut_IsChecked
End Get
Set(value As Boolean)
m_RemoveCut_IsChecked = value
m_CreateCut_IsChecked = False
m_CreateParallelCut_IsChecked = False
m_ModifyCut_IsChecked = False
NotifyPropertyChanged(NameOf(CreateCut_IsChecked))
NotifyPropertyChanged(NameOf(CreateParallelCut_IsChecked))
NotifyPropertyChanged(NameOf(ModifyCut_IsChecked))
RemoveCutIsChecked()
NotifyPropertyChanged(NameOf(RemoveCut_IsChecked))
End Set
End Property
Private m_CreateParallelCut_IsChecked As Boolean
Public Property CreateParallelCut_IsChecked As Boolean
Get
Return m_CreateParallelCut_IsChecked
End Get
Set(value As Boolean)
m_CreateParallelCut_IsChecked = value
m_CreateCut_IsChecked = False
m_RemoveCut_IsChecked = False
m_ModifyCut_IsChecked = False
NotifyPropertyChanged(NameOf(CreateCut_IsChecked))
NotifyPropertyChanged(NameOf(RemoveCut_IsChecked))
NotifyPropertyChanged(NameOf(ModifyCut_IsChecked))
CreateParellelCutIsChecked()
NotifyPropertyChanged(NameOf(CreateParallelCut_IsChecked))
End Set
End Property
Private m_ModifyCut_IsChecked As Boolean
Public Property ModifyCut_IsChecked As Boolean
Get
Return m_ModifyCut_IsChecked
End Get
Set(value As Boolean)
m_ModifyCut_IsChecked = value
m_CreateCut_IsChecked = False
m_RemoveCut_IsChecked = False
m_CreateParallelCut_IsChecked = False
NotifyPropertyChanged(NameOf(CreateCut_IsChecked))
NotifyPropertyChanged(NameOf(RemoveCut_IsChecked))
NotifyPropertyChanged(NameOf(CreateParallelCut_IsChecked))
ModifyCutIsChecked()
NotifyPropertyChanged(NameOf(ModifyCut_IsChecked))
End Set
End Property
#End Region ' Split Cut
#Region "Messages"
Public ReadOnly Property OnOffMsg As String
@@ -380,13 +519,13 @@ Public Class SplitModeVM
Public ReadOnly Property ModifStartMsg As String
Get
Return EgtMsg( 90373) ' Inizio Modif.
Return EgtMsg(90373) ' Inizio Modif.
End Get
End Property
Public ReadOnly Property ModifEndMsg As String
Get
Return EgtMsg( 90374) ' Fine Modif.
Return EgtMsg(90374) ' Fine Modif.
End Get
End Property
@@ -460,6 +599,14 @@ Public Class SplitModeVM
Friend Function InitSplitRaw() As Boolean
m_bActive = True
m_bOnOffCut_IsExpanded = GetMainPrivateProfileInt("Split", "OnOffCut", 0) <> 0
NotifyPropertyChanged(NameOf(bOnOffCut_IsExpanded))
m_bSpLitCut_IsExpanded = GetMainPrivateProfileInt("Split", "SplitCut", 0) <> 0
NotifyPropertyChanged(NameOf(bSpLitCut_IsExpanded))
m_bDirectSpLitCut_IsExpanded = GetMainPrivateProfileInt("Split", "DirectSplitCut", 0) <> 0
NotifyPropertyChanged(NameOf(bDirectSpLitCut_IsExpanded))
m_bModifyCut_IsExpanded = GetMainPrivateProfileInt("Split", "ModifyCut", 0) <> 0
NotifyPropertyChanged(NameOf(bModifyCut_IsExpanded))
' aggiorno la visualizzazione dei comandi per generare i bridge
m_BridgeBtn_IsChecked = False
NotifyPropertyChanged(NameOf(BridgeBtn_IsChecked))
@@ -536,6 +683,17 @@ Public Class SplitModeVM
' eventualmente interrompo la creazione dei ponticelli
DeselectWJBridgesPart()
' Interrompo la creazione di tagli di separazione
ResetSplitCut()
m_CreateCut_IsChecked = False
NotifyPropertyChanged(NameOf(CreateCut_IsChecked))
m_RemoveCut_IsChecked = False
NotifyPropertyChanged(NameOf(RemoveCut_IsChecked))
m_CreateParallelCut_IsChecked = False
NotifyPropertyChanged(NameOf(CreateParallelCut_IsChecked))
m_ModifyCut_IsChecked = False
NotifyPropertyChanged(NameOf(ModifyCut_IsChecked))
' Rimuovo evidenziazione e numeri
RemoveMarkAndNumbers()
' Ripristino colori lavorazioni
@@ -671,7 +829,7 @@ Public Class SplitModeVM
' Aggiorno le lavorazioni (eliminato sort per lasciare ordine immutato)
If CurrentMachine.WaterJettingActive Then ResetAllMachinings()
EstCalc.SetOrderMachiningFlag()
If CurrentMachine.WaterJettingActive Then
If CurrentMachine.WaterJettingActive Then
Dim bModif As Boolean = TestAllMachiningsForStrict()
If bModif Then OmagOFFICEMap.refStatusBarVM.SetOutputMessage(EgtMsg(90321), 3, MSG_TYPE.WARNING) 'Ridotte alcune lavorazioni per evitare interferenze
End If
@@ -730,6 +888,30 @@ Public Class SplitModeVM
EnableButtons()
End Sub
' Aggiorno le lavorazioni
Private Sub PreviewMachinigList()
' Visualizzo solo anteprime di lavorazioni della fase
ShowOnePhaseMachiningPreview(m_nCurrPhase)
' Preparo la lista delle lavorazioni
CalculateSplitMachList(m_nCurrPhase, m_MachiningList)
' azzero i contatori delle lavorazioni
m_nCountSawing = 0
m_nCountWaterjetting = 0
m_nCountOtherMachining = 0
' Aggiorno visualizzazione delle lavorazioni
EgtEmptyGroup(m_nNbrGrpId)
For nI As Integer = 0 To m_MachiningList.Count() - 1
' sistemo colore
ColorMachining(m_MachiningList(nI))
' assegno numerazione
NumberDirectionMachining(nI)
' conto il numero di tipi di lavorazioni
CountMachiningType(m_MachiningList(nI), m_nCountSawing, m_nCountWaterjetting, m_nCountOtherMachining)
Next
' Preparo la lista degli Item
ShowMachiningList()
End Sub
Private Sub ShowMachiningList()
m_ItemList.Clear()
For i As Integer = 1 To m_MachiningList.Count()
@@ -777,14 +959,14 @@ Public Class SplitModeVM
If OmagOFFICEMap.refMachiningTabVM.ByHand Then
' Ci deve essere almeno 1 taglio disabilitato e 1 e 1 solo passante
OmagOFFICEMap.refMachiningTabVM.NextIsEnabled = (GetDisabledCutsCount() > 0 And GetSplitCutsCount() = 1)
' Altrimenti
' Altrimenti
Else
' Ci deve essere almeno 1 taglio disabilitato e almeno 1 passante oppure fase successiva alla prima
OmagOFFICEMap.refMachiningTabVM.NextIsEnabled = (GetDisabledCutsCount() > 0 And
(GetSplitCutsCount() > 0 Or m_nCurrPhase > 1)) Or
CurrentMachine.bRawFinalMove
End If
' altrimenti sto solo visualizzando
' altrimenti sto solo visualizzando
Else
OmagOFFICEMap.refMachiningTabVM.NextIsEnabled = (m_nCurrPhase < EgtGetPhaseCount())
End If
@@ -1200,6 +1382,84 @@ Public Class SplitModeVM
End If
End Sub
Private Sub CreateCutIsChecked()
' attivo la scena per renderla attiva
If m_CreateCut_IsChecked Then
' OmagOFFICEMap.refSceneHostVM.MainScene.SetStatusSelPoint()
OmagOFFICEMap.refSceneHostVM.MainScene.SetStatusNull()
ResetSplitCut()
Else
' ????????
ResetSplitCut()
End If
End Sub
Private Sub RemoveCutIsChecked()
If m_RemoveCut_IsChecked Then
OmagOFFICEMap.refSceneHostVM.MainScene.SetStatusNull()
ResetSplitCut()
Else
' ????????
ResetSplitCut()
End If
End Sub
Private Sub CreateParellelCutIsChecked()
If m_CreateParallelCut_IsChecked Then
OmagOFFICEMap.refSceneHostVM.MainScene.SetStatusNull()
ResetSplitCut()
Else
' ????????
ResetSplitCut()
End If
End Sub
Private Sub ModifyCutIsChecked()
If m_CreateParallelCut_IsChecked Then
OmagOFFICEMap.refSceneHostVM.MainScene.SetStatusNull()
ResetSplitCut()
Else
' ????????
ResetSplitCut()
End If
End Sub
' Forzo la fine della creazione di un elemento SplitCut
Private Sub ResetSplitCut()
EgtResetMark(m_IdCurrRawSolid)
If m_IdSplitGroup <> GDB_ID.NULL Then
EgtErase(m_IdSplitGroup)
EgtDraw()
End If
m_bGetStartPoint = False
m_bGetEndPoint = False
m_IdSplitLine = GDB_ID.NULL
m_IdSplitGroup = GDB_ID.NULL
m_IdSplitGroupLayer = GDB_ID.NULL
m_IdCurrRawSolid = GDB_ID.NULL
m_IdSplitLineRemove = GDB_ID.NULL
End Sub
' spegno il comando Split correntemente attivo
Public Sub DeactiveSplitCut()
ResetSplitCut()
m_RemoveCut_IsChecked = False
m_CreateCut_IsChecked = False
m_CreateParallelCut_IsChecked = False
m_ModifyCut_IsChecked = False
NotifyPropertyChanged(NameOf(CreateCut_IsChecked))
NotifyPropertyChanged(NameOf(CreateParallelCut_IsChecked))
NotifyPropertyChanged(NameOf(RemoveCut_IsChecked))
NotifyPropertyChanged(NameOf(ModifyCut_IsChecked))
End Sub
Public Sub ResetAllMark()
For Each Item As NameIdLsBxItem In m_ItemList
Item.IsSelected = False
MarkMachining(Item.Ind, False)
Next
End Sub
#End Region ' METHODS
#Region "COMMANDS"
@@ -2608,7 +2868,7 @@ Public Class SplitModeVM
EgtDraw()
End Sub
Private Sub DeselectWJBridgesPart()
Public Sub DeselectWJBridgesPart()
' se in fase di definzione di un ponticello lo elimino
If m_nIdSelectedSideWJ_Srt <> GDB_ID.NULL And m_nIdSelectedSideWJ_End = GDB_ID.NULL And m_nIdBridge <> GDB_ID.NULL Then
EgtErase(EgtGetParent(m_nIdBridge))
@@ -2695,7 +2955,69 @@ Public Class SplitModeVM
#End Region ' Quality
' Genera la lavorazione associata al percoso indicato
Private Function CreateSingleCut() As Boolean
Dim bOk As Boolean = False
' Verifico sia definito il punto iniziale e il grezzo
If Not (m_bGetStartPoint And m_bGetEndPoint) AndAlso m_IdCurrRawSolid <> GDB_ID.NULL Then
Return False
End If
' Spessore grezzo
Dim ptRawMin, ptRawMax As Point3d
If Not EgtGetRawPartBBox(m_IdCurrRawSolid, ptRawMin, ptRawMax) Then Return False
Dim dRawHeight As Double = ptRawMax.z - ptRawMin.z
' Recupero spessore lama corrente
Dim sSaw As String = CurrentMachine.sCurrSaw
Dim sSawing As String = CurrentMachine.sCurrSawing
EgtTdbSetCurrTool(sSaw)
Dim dThick As Double = 0
' Se è impostata una lavorazione di lama
If Not String.IsNullOrEmpty(sSawing) Then
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
End If
' Recupero pezzo per il taglio diretto
Dim nPartId = m_IdSplitGroup
' Calcolo punto di inserimento nel grezzo
Dim ptMin, ptMax As Point3d
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, ptMin, ptMax)
Dim ptTabOri As Point3d
EgtGetTableRef(1, ptTabOri)
'Dim ptIns As Point3d = ptMin + (ptTabOri - ptRawMin)
Dim ptOri As New Point3d
Dim ptIns As Point3d = ptOri + (ptMin - ptRawMin)
ptIns.z = dRawHeight
' Imposto la fase corrente
EgtSetCurrPhase(m_nCurrPhase)
' Inserisco il taglio nel grezzo : CamAuto.GetCurrentRaw()
EgtAddPartToRawPart(nPartId, ptIns, m_IdCurrRawSolid)
' Inserisco la lavorazione
bOk = AddMachinings(nPartId) AndAlso UpdateAllMachiningsToolpaths()
'' Spengo la linea
'If bOk Then
' EgtSetStatus(m_IdSplitLine, GDB_ST.OFF)
'End If
Return bOk
End Function
Private Function RemoveCut(nId As Integer) As Boolean
Dim bOk As Boolean = False
Dim nIdCurrMachGroup As Integer = EgtGetCurrMachGroup()
Dim ParentId As Integer = EgtGetParent(nId)
While ParentId <> GDB_ID.NULL
Dim sCutName As String = String.Empty
EgtGetName(ParentId, sCutName)
If sCutName.Contains(SPLIT_CUT & "_" & nIdCurrMachGroup.ToString) Then
bOk = RemoveCurrentSplitCut(ParentId)
Return bOk
End If
ParentId = EgtGetParent(ParentId)
End While
Return bOk
End Function
Friend Sub OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
' Se tasto premuoto allora attivo la selezione multipla da Scena
Dim bKeyCtrlPressed = (Keyboard.Modifiers And ModifierKeys.Control) > 0
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
If Not m_bActive OrElse OmagOFFICEMap.refMachiningTabVM.IsShow Then Return
' Si può selezionare solo con il tasto sinistro e se stato NULL
@@ -2728,6 +3050,136 @@ Public Class SplitModeVM
Return
End If
' Recupero le coordinate del punto corrente (solo se esiste la selezione di un grezzo corrente -> vedi sotto)
If m_CreateCut_IsChecked AndAlso m_IdCurrRawSolid <> GDB_ID.NULL Then
Dim ptCurr As Point3d
EgtUnProjectPoint(e.Location, ptCurr)
If m_bGetStartPoint And Not m_bGetEndPoint Then
m_ptEndPoint = ptCurr
m_bGetEndPoint = True
End If
If Not m_bGetStartPoint Then
m_ptStartPoint = ptCurr
m_bGetStartPoint = True
m_IdSplitGroup = EgtCreateGroup(GDB_ID.ROOT)
Dim nIdCurrMachGroup As Integer = EgtGetCurrMachGroup()
EgtSetName(m_IdSplitGroup, SPLIT_CUT & "_" & nIdCurrMachGroup.ToString & "." & EgtGetCurrPhase())
m_IdSplitGroupLayer = EgtCreateGroup(m_IdSplitGroup)
EgtSetName(m_IdSplitGroupLayer, NAME_OUTLOOP)
End If
If m_bGetStartPoint And m_bGetEndPoint Then
' procedo a disegnare la linea tra i due punti indicati
Dim ptRawMin, ptRawMax As Point3d
If EgtGetRawPartBBox(m_IdCurrRawSolid, ptRawMin, ptRawMax) Then
m_ptStartPoint.z = ptRawMax.z
m_ptEndPoint.z = ptRawMax.z
EgtModifyCurveEndPoint(m_IdSplitLine, m_ptEndPoint)
CreateSingleCut()
' Resetto tutte le variabili utilizzate
EgtResetMark(m_IdCurrRawSolid)
m_bGetStartPoint = False
m_bGetEndPoint = False
m_IdSplitLine = GDB_ID.NULL
m_IdSplitGroup = GDB_ID.NULL
m_IdSplitGroupLayer = GDB_ID.NULL
m_IdCurrRawSolid = GDB_ID.NULL
m_IdSplitLineRemove = GDB_ID.NULL
' Aggiorno la visualizzazione
PreviewMachinigList()
EgtDraw()
End If
End If
Return
ElseIf m_CreateCut_IsChecked AndAlso m_IdCurrRawSolid = GDB_ID.NULL Then
' Verifico se selezionato grezzo
EgtSetObjFilterForSelWin(False, False, True, False, False)
Dim nSelRaw As Integer
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSelRaw)
Dim nIdRaw As Integer = EgtGetFirstObjInSelWin()
While nIdRaw <> GDB_ID.NULL
Dim sRawName As String = String.Empty
If EgtGetName(nIdRaw, sRawName) AndAlso sRawName = NAME_RAW_SOLID Then
m_IdCurrRawSolid = EgtGetParent(nIdRaw)
EgtSetMark(m_IdCurrRawSolid)
EgtDraw()
Return
End If
nIdRaw = EgtGetNextObjInSelWin()
End While
Return
End If
If m_CreateParallelCut_IsChecked AndAlso m_IdCurrRawSolid = GDB_ID.NULL Then
' Verifico se selezionato grezzo
EgtSetObjFilterForSelWin(False, False, True, False, False)
Dim nSelRaw As Integer
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSelRaw)
Dim nIdRaw As Integer = EgtGetFirstObjInSelWin()
While nIdRaw <> GDB_ID.NULL
Dim sRawName As String = String.Empty
If EgtGetName(nIdRaw, sRawName) AndAlso sRawName = NAME_RAW_SOLID Then
m_IdCurrRawSolid = EgtGetParent(nIdRaw)
EgtSetMark(m_IdCurrRawSolid)
EgtDraw()
Return
End If
nIdRaw = EgtGetNextObjInSelWin()
End While
Return
ElseIf m_CreateParallelCut_IsChecked AndAlso m_IdCurrRawSolid <> GDB_ID.NULL AndAlso m_bGetStartPoint AndAlso Not m_bGetEndPoint Then
m_bGetEndPoint = True
CreateSingleCut()
' Resetto tutte le variabili utilizzate
EgtResetMark(m_IdCurrRawSolid)
m_bGetStartPoint = False
m_bGetEndPoint = False
m_IdSplitLine = GDB_ID.NULL
m_IdSplitGroup = GDB_ID.NULL
m_IdSplitGroupLayer = GDB_ID.NULL
m_IdCurrRawSolid = GDB_ID.NULL
m_IdSplitLineRemove = GDB_ID.NULL
' Aggiorno la visualizzazione
PreviewMachinigList()
EgtDraw()
Return
End If
If m_ModifyCut_IsChecked AndAlso m_IdCurrRawSolid = GDB_ID.NULL Then
' Verifico se selezionato grezzo
EgtSetObjFilterForSelWin(False, False, True, False, False)
Dim nSelRaw As Integer
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSelRaw)
Dim nIdRaw As Integer = EgtGetFirstObjInSelWin()
While nIdRaw <> GDB_ID.NULL
Dim sRawName As String = String.Empty
If EgtGetName(nIdRaw, sRawName) AndAlso sRawName = NAME_RAW_SOLID Then
m_IdCurrRawSolid = EgtGetParent(nIdRaw)
EgtSetMark(m_IdCurrRawSolid)
EgtDraw()
Return
End If
nIdRaw = EgtGetNextObjInSelWin()
End While
Return
ElseIf m_ModifyCut_IsChecked AndAlso m_IdCurrRawSolid <> GDB_ID.NULL AndAlso m_bGetStartPoint AndAlso Not m_bGetEndPoint Then
m_bGetEndPoint = True
CreateSingleCut()
RemoveCut(m_IdSplitLineRemove)
' Resetto tutte le variabili utilizzate
EgtResetMark(m_IdCurrRawSolid)
m_bGetStartPoint = False
m_bGetEndPoint = False
m_IdSplitLine = GDB_ID.NULL
m_IdSplitGroup = GDB_ID.NULL
m_IdSplitGroupLayer = GDB_ID.NULL
m_IdCurrRawSolid = GDB_ID.NULL
m_IdSplitLineRemove = GDB_ID.NULL
' Aggiorno la visualizzazione
PreviewMachinigList()
EgtDraw()
Return
End If
' Reset drag
m_nDragInd = -1
m_nDragType = 0
@@ -2739,6 +3191,95 @@ Public Class SplitModeVM
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
Dim nId As Integer = EgtGetFirstObjInSelWin()
While nId <> GDB_ID.NULL
' --------------------------------- SPLIT CUT ---------------------------------
' Se attiva l'eliminazione di un taglio di separazione
If m_RemoveCut_IsChecked Then
RemoveCut(nId)
' Aggiorno la visualizzazione
PreviewMachinigList()
EgtDraw()
Return
End If
' Recupero le info del pezzo selezionato per procedere a generare
If m_CreateParallelCut_IsChecked AndAlso m_IdCurrRawSolid <> GDB_ID.NULL Then
Dim sMyName As String = ""
EgtGetName(nId, sMyName)
If String.Compare(sMyName, NAME_PV_CUT) = 0 Then
Dim nPvId As Integer = EgtGetParent(EgtGetParent(nId))
Dim sPvid As String = String.Empty
EgtGetName(nPvId, sPvid)
If sPvid.StartsWith("Saw") Then
sPvid = sPvid.Remove(0, 3)
If IsNumeric(sPvid) Then
Dim nIdLine As Integer = CInt(sPvid)
m_IdSplitGroup = EgtCreateGroup(GDB_ID.ROOT)
Dim nIdCurrMachGroup As Integer = EgtGetCurrMachGroup()
EgtSetName(m_IdSplitGroup, SPLIT_CUT & "_" & nIdCurrMachGroup.ToString & "." & EgtGetCurrPhase())
m_IdSplitGroupLayer = EgtCreateGroup(m_IdSplitGroup)
EgtSetName(m_IdSplitGroupLayer, NAME_OUTLOOP)
m_IdSplitLine = EgtCopyGlob(nIdLine, m_IdSplitGroupLayer)
' Recupero la dimennsione del taglio (non basta copiare la geometria)
Dim dUsal As Double = 0
Dim dUeal As Double = 0
Dim nMchId As Integer = GDB_ID.NULL
If EgtGetInfo(nPvId, "MId", nMchId) Then
EgtGetInfo(nMchId, INFO_MCH_USER_SAL, dUsal)
EgtGetInfo(nMchId, INFO_MCH_USER_EAL, dUeal)
End If
' Aggiorno la dimensione della geometria
EgtExtendCurveStartByLen(m_IdSplitLine, dUsal)
EgtExtendCurveEndByLen(m_IdSplitLine, dUeal)
EgtDeselectObj(nId)
m_bGetStartPoint = True
End If
End If
Return
End If
Return
End If
If m_ModifyCut_IsChecked AndAlso m_IdCurrRawSolid <> GDB_ID.NULL Then
Dim sMyName As String = ""
EgtGetName(nId, sMyName)
If String.Compare(sMyName, NAME_PV_CUT) = 0 Then
Dim nPvId As Integer = EgtGetParent(EgtGetParent(nId))
Dim sPvId As String = String.Empty
EgtGetName(nPvId, sPvId)
If sPvId.StartsWith("Saw") Then
sPvId = sPvId.Remove(0, 3)
If IsNumeric(sPvId) Then
Dim nIdLine As Integer = CInt(sPvId)
m_IdSplitGroup = EgtCreateGroup(GDB_ID.ROOT)
Dim nIdCurrMachGroup As Integer = EgtGetCurrMachGroup()
EgtSetName(m_IdSplitGroup, SPLIT_CUT & "_" & nIdCurrMachGroup.ToString & "." & EgtGetCurrPhase())
m_IdSplitGroupLayer = EgtCreateGroup(m_IdSplitGroup)
EgtSetName(m_IdSplitGroupLayer, NAME_OUTLOOP)
m_IdSplitLine = EgtCopyGlob(nIdLine, m_IdSplitGroupLayer)
' Recupero la dimennsione del taglio (non basta copiare la geometria)
Dim dUsal As Double = 0
Dim dUeal As Double = 0
Dim nMchId As Integer = GDB_ID.NULL
If EgtGetInfo(nPvId, "MId", nMchId) Then
EgtGetInfo(nMchId, INFO_MCH_USER_SAL, dUsal)
EgtGetInfo(nMchId, INFO_MCH_USER_EAL, dUeal)
End If
' Aggiorno la dimensione della geometria
EgtExtendCurveStartByLen(m_IdSplitLine, dUsal)
EgtExtendCurveEndByLen(m_IdSplitLine, dUeal)
EgtDeselectObj(nId)
' Salvo l'Id del tagli da eliminare
m_IdSplitLineRemove = nId
m_bGetStartPoint = True
EgtDraw()
End If
End If
Return
End If
Return
End If
' --------------------------------- SPLIT CUT ---------------------------------
' Verifico sia un attacco o uscita di taglio con lama
Dim nType As Integer = 0
Dim sName As String = ""
@@ -2803,7 +3344,14 @@ Public Class SplitModeVM
If m_nSelected >= 0 AndAlso EgtUnProjectPoint(e.Location, m_ptDragPrev) Then
Dim nItemIndex = 0
For Each Item In ItemList
Item.IsSelected = (nItemIndex = m_nSelected)
If Not bKeyCtrlPressed Then
Item.IsSelected = (nItemIndex = m_nSelected)
Else
' procedo ad rendere attivo solo l'elemnento selezionato
If nItemIndex = m_nSelected Then
Item.IsSelected = True
End If
End If
nItemIndex += 1
Next
Else
@@ -2828,6 +3376,46 @@ Public Class SplitModeVM
Return
End If
' Recupero le coordinate del punto corrente
If m_CreateCut_IsChecked Then
If m_bGetStartPoint And Not m_bGetEndPoint Then
m_ptEndPoint = ptCurr
End If
If m_bGetStartPoint And Not m_bGetEndPoint Then
' procedo a disegnare la linea tra i due punti indicati
Dim ptRawMin, ptRawMax As Point3d
If EgtGetRawPartBBox(m_IdCurrRawSolid, ptRawMin, ptRawMax) Then
m_ptStartPoint.z = ptRawMax.z
m_ptEndPoint.z = ptRawMax.z
If m_IdSplitLine = GDB_ID.NULL Then
m_IdSplitLine = EgtCreateLine(m_IdSplitGroupLayer, m_ptStartPoint, m_ptEndPoint)
Else
EgtModifyCurveEndPoint(m_IdSplitLine, m_ptEndPoint)
End If
EgtDraw()
End If
End If
Return
End If
If m_CreateParallelCut_IsChecked AndAlso m_IdSplitLine <> GDB_ID.NULL Then
Dim mPoint3d As Point3d
EgtMidPoint(m_IdSplitLine, mPoint3d)
mPoint3d.z = 0
ptCurr.z = 0
EgtMove(m_IdSplitLine, ptCurr - mPoint3d)
EgtDraw()
End If
If m_ModifyCut_IsChecked AndAlso m_IdSplitLine <> GDB_ID.NULL Then
Dim mPoint3d As Point3d
EgtMidPoint(m_IdSplitLine, mPoint3d)
mPoint3d.z = 0
ptCurr.z = 0
EgtMove(m_IdSplitLine, ptCurr - mPoint3d)
EgtDraw()
End If
' Se drag non abilitato o in corso
If m_nDragInd = -1L Or m_bDragging Then Return
m_bDragging = True
@@ -2878,19 +3466,19 @@ Public Class SplitModeVM
dUeal = dOrigUeal + dDelta
' Se c'è limite alla lunghezza libera
If m_MachiningList(m_nDragInd).m_dEndFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, CurrentMachine.sMachIniFile), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUeal = Math.Min(dUeal, m_MachiningList(m_nDragInd).m_dEndFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, CurrentMachine.sMachIniFile), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUeal = Math.Min(dUeal, m_MachiningList(m_nDragInd).m_dEndFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then
m_bDragging = False
Return
@@ -2951,10 +3539,10 @@ Public Class SplitModeVM
Return m_sName
End Get
Set(value As String)
If value <> m_sName Then
m_sName = value
NotifyPropertyChanged("Name")
End If
If value <> m_sName Then
m_sName = value
NotifyPropertyChanged("Name")
End If
End Set
End Property
+2
View File
@@ -1994,6 +1994,8 @@ Public Class NestingTabVM
ResetAllStartCurv()
' cancello tutti i ponticelli disegnati
ResetAllBridges()
' cancello tutti i tagli di separazione disegnati
ResetAllSplitCut()
' Cancello tutte le lavorazioni
CamAuto.EraseMachinings(GDB_ID.NULL)
' Reinserisco tutte le lavorazioni piane
+36 -27
View File
@@ -5,63 +5,72 @@
xmlns:OmagOFFICE="clr-namespace:OmagOFFICE"
Width="190">
<TabControl Name="Tabs" SelectedIndex="{Binding SelItem}" Background="Transparent"
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<TabControl Name="Tabs" SelectedIndex="{Binding SelItem}" Background="Transparent"
Padding="0,0,0,0"
Margin="5,0.5,5,0"
Style="{StaticResource TabControlOptinPanel}">
<TabItem ToolTip="{Binding RawPartTabMsg}" IsEnabled="{Binding RawTabIsEnabled}"
<TabItem ToolTip="{Binding RawPartTabMsg}" IsEnabled="{Binding RawTabIsEnabled}"
Margin="0,0,0,0"
Style="{StaticResource TabItemOptinPanel}">
<TabItem.Header>
<StackPanel Orientation="Horizontal" Width="35" Height="35">
<Image Source="/Resources/NewIcons/icone-tagli-5.png" Stretch="UniformToFill"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Width="35" Height="35">
<Image Source="/Resources/NewIcons/icone-tagli-5.png" Stretch="UniformToFill"/>
</StackPanel>
</TabItem.Header>
<TabItem.Content>
<OmagOFFICE:RawPartTabV DataContext="{StaticResource RawPartTabVM}"/>
<OmagOFFICE:RawPartTabV DataContext="{StaticResource RawPartTabVM}"/>
</TabItem.Content>
</TabItem>
<TabItem ToolTip="{Binding NestingTabMsg}" IsEnabled="{Binding NestTabIsEnabled}"
</TabItem>
<TabItem ToolTip="{Binding NestingTabMsg}" IsEnabled="{Binding NestTabIsEnabled}"
Margin="0,0,0,0"
Style="{StaticResource TabItemOptinPanel}">
<TabItem.Header>
<StackPanel Orientation="Horizontal" Width="35" Height="35">
<Image Source="/Resources/NewIcons/Nest.png" Stretch="Uniform" />
</StackPanel>
<StackPanel Orientation="Horizontal" Width="35" Height="35">
<Image Source="/Resources/NewIcons/Nest.png" Stretch="Uniform" />
</StackPanel>
</TabItem.Header>
<TabItem.Content>
<OmagOFFICE:NestingTabV DataContext="{StaticResource NestingTabVM}"/>
<OmagOFFICE:NestingTabV DataContext="{StaticResource NestingTabVM}"/>
</TabItem.Content>
<!--<TabItem.Style>
<Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource TabItemOptinPanel}">
<EventSetter Event="PreviewMouseDown" Handler="NestingTab_Click"/>
</Style>
</TabItem.Style>-->
</TabItem>
<TabItem ToolTip="{Binding MachiningTabMsg}" IsEnabled="{Binding MachTabIsEnabled}"
</TabItem>
<TabItem ToolTip="{Binding MachiningTabMsg}" IsEnabled="{Binding MachTabIsEnabled}"
Margin="0,0,0,0"
Style="{StaticResource TabItemOptinPanel}">
<TabItem.Header>
<StackPanel Orientation="Horizontal" Width="35" Height="35">
<Image Source="/Resources/NewIcons/Split.png" Stretch="Uniform" />
</StackPanel>
<StackPanel Orientation="Horizontal" Width="35" Height="35">
<Image Source="/Resources/NewIcons/Split.png" Stretch="Uniform" />
</StackPanel>
</TabItem.Header>
<TabItem.Content>
<OmagOFFICE:MachiningTabV DataContext="{StaticResource MachiningTabVM}"/>
<OmagOFFICE:MachiningTabV DataContext="{StaticResource MachiningTabVM}"/>
</TabItem.Content>
</TabItem>
<TabItem ToolTip="{Binding SimulTabMsg}" IsEnabled="{Binding SimulTabIsEnabled}"
</TabItem>
<TabItem ToolTip="{Binding SimulTabMsg}" IsEnabled="{Binding SimulTabIsEnabled}"
Margin="0,0,0,0"
Style="{StaticResource TabItemOptinPanel}">
<TabItem.Header>
<StackPanel Orientation="Horizontal" Width="35" Height="35">
<Image Source="/Resources/NewIcons/Simula.png" Stretch="Uniform" />
</StackPanel>
<StackPanel Orientation="Horizontal" Width="35" Height="35">
<Image Source="/Resources/NewIcons/Simula.png" Stretch="Uniform" />
</StackPanel>
</TabItem.Header>
<TabItem.Content>
<OmagOFFICE:SimulTabV DataContext="{StaticResource SimulTabVM}"/>
<OmagOFFICE:SimulTabV DataContext="{StaticResource SimulTabVM}"/>
</TabItem.Content>
</TabItem>
</TabControl>
</TabItem>
</TabControl>
<!--Se click + Key Shift sopra Label apertura dellì file Log-->
<Label Grid.Row="1"
Background="Transparent"
MouseLeftButtonDown="Label_MouseLeftButtonDown"/>
</Grid>
</UserControl>
+33 -1
View File
@@ -1,4 +1,7 @@
Public Class OptionPanelV
Imports System.IO
Imports EgtUILib
Public Class OptionPanelV
Private m_OptionPanelVM As OptionPanelVM
@@ -24,6 +27,35 @@
If Not OmagOFFICEMap.refOptionPanelVM.NestTabIsEnabled Then e.Handled = True
End Sub
Private Sub Label_MouseLeftButtonDown(sender As Object, e As MouseButtonEventArgs)
If Not (Keyboard.Modifiers And ModifierKeys.Shift) > 0 Then Return
Dim sTmpDir As String = String.Empty
If Not EgtInterface.EgtGetTempDir(sTmpDir) Then Return
' Genero file CNC (lancio anche se errore in precedenza)
Dim sLog1 As String = sTmpDir & "\OmagOFFICELog1.txt"
Dim sLog2 As String = sTmpDir & "\OmagOFFICELog2.txt"
Dim sLog As String = ""
If File.Exists(sLog1) AndAlso File.Exists(sLog2) Then
If File.GetLastAccessTimeUtc(sLog1) > File.GetLastAccessTimeUtc(sLog2) Then
sLog = sLog1
Else
sLog = sLog2
End If
ElseIf File.Exists(sLog1) AndAlso Not File.Exists(sLog2) Then
sLog = sLog1
ElseIf File.Exists(sLog2) AndAlso Not File.Exists(sLog1) Then
sLog = sLog2
End If
Try
Process.Start("Notepad.exe", sLog)
Catch ex As Exception
ex.ToString()
End Try
'End If
End Sub
#End Region ' EVENTS
End Class
+2 -2
View File
@@ -215,12 +215,12 @@
</StackPanel>
</GroupBox>
<Button Content="{Binding ConfirmPhotoMsg}"
<Button Content="{Binding ConfirmPhotoMsg}"
Command="{Binding ConfirmPhotoCommand}"
Visibility="{Binding ConfirmPhotoVisibility}"
Style="{StaticResource OptionPanel_TextButton}"
Margin="0,0,0,5"/>
<!--<EgtPHOTOLib:ProjectSlabV DataContext="{StaticResource ProjectSlabVM}"/>-->
<!--<EgtPHOTOLib:ProjectSlabV DataContext="{StaticResource ProjectSlabVM}"/>-->
</StackPanel>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

+326 -1
View File
@@ -221,6 +221,32 @@
</Setter>
</Style>
<Style x:Key="CSV_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Height" Value="30"/>
<Setter Property="Width" Value="30"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="{StaticResource BorderBtn_Thickness}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" CornerRadius="0" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
<ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="OpacityMask" Value="#54707070"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="#008BFF"/>
<Setter Property="BorderBrush" Value="#008BFF"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="WaterjetDB_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Height" Value="30"/>
<Setter Property="Width" Value="30"/>
@@ -511,6 +537,12 @@
<Setter Property="Width" Value="30"/>
</Style>
<Style x:Key="CSV_ToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Height" Value="30"/>
<Setter Property="Width" Value="30"/>
</Style>
<Style x:Key="ToolBar_TextToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Height" Value="30"/>
<Setter Property="Width" Value="70"/>
@@ -554,6 +586,7 @@
<Style x:Key="CompoWindow_ToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Height" Value="40"/>
<Setter Property="Foreground" Value="{StaticResource Omag_White}"/>
</Style>
<Style x:Key="CompoWindow_WrapToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
@@ -1144,7 +1177,7 @@
<Style x:Key="ImgButton" TargetType="{x:Type Image}" >
<Setter Property="Height" Value="35"/>
<Setter Property="Width" Value="35"/>
<Setter Property="Margin" Value="0,2,0,0"/>
<Setter Property="Margin" Value="0,0,0,0"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
@@ -1182,4 +1215,296 @@
<Setter Property="BorderThickness" Value="{StaticResource BorderBtn_Thickness}"/>
</Style>
<!-- ______________________________________________________________________________________________________________________________________________ -->
<!-- Expander -->
<SolidColorBrush x:Key="Expander.Static.Circle.Stroke" Color="DarkGray"/>
<SolidColorBrush x:Key="Expander.Static.Circle.Fill" Color="Transparent"/>
<SolidColorBrush x:Key="Expander.Static.Arrow.Stroke" Color="#666"/>
<SolidColorBrush x:Key="Expander.MouseOver.Circle.Stroke" Color="#FF3C7FB1"/>
<SolidColorBrush x:Key="Expander.MouseOver.Circle.Fill" Color="Transparent"/>
<SolidColorBrush x:Key="Expander.MouseOver.Arrow.Stroke" Color="#222"/>
<SolidColorBrush x:Key="Expander.Pressed.Circle.Stroke" Color="#FF526C7B"/>
<SolidColorBrush x:Key="Expander.Pressed.Circle.Fill" Color="Transparent"/>
<SolidColorBrush x:Key="Expander.Pressed.Arrow.Stroke" Color="#FF003366"/>
<SolidColorBrush x:Key="Expander.Disabled.Circle.Stroke" Color="DarkGray"/>
<SolidColorBrush x:Key="Expander.Disabled.Circle.Fill" Color="Transparent"/>
<SolidColorBrush x:Key="Expander.Disabled.Arrow.Stroke" Color="#666"/>
<Style x:Key="ExpanderHeaderFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Border>
<Rectangle Margin="0" StrokeDashArray="1 2" Stroke="black" SnapsToDevicePixels="true" StrokeThickness="1"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--ExpanderDirection: Down (in uso nella pagin Split)-->
<Style x:Key="ExpanderDownHeaderStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border Padding="{TemplateBinding Padding}">
<Grid Background="Transparent" SnapsToDevicePixels="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="15"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Rectangle x:Name="circle" Fill="Transparent" HorizontalAlignment="Center" Height="15"
Stroke="Transparent" VerticalAlignment="Center" Width="15"/>
<Path x:Name="arrow" Data="M 1,4.5 L 4.5,1 L 8,4.5" HorizontalAlignment="Center" Stroke="White"
SnapsToDevicePixels="false" StrokeThickness="2" VerticalAlignment="Center"/>
<ContentPresenter Grid.Column="1" HorizontalAlignment="Left" Margin="4,0,0,0" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="true">
<Setter Property="Data" TargetName="arrow" Value="M 1,4.5 L 4.5,1 L 8,4.5"/>
</Trigger>
<!--<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.MouseOver.Circle.Stroke}"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.MouseOver.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.MouseOver.Arrow.Stroke}"/>
</Trigger>-->
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Fill" TargetName="circle" Value="#008BFF"/>
<Setter Property="Stroke" TargetName="circle" Value="#008BFF"/>
</Trigger>
<!--<Trigger Property="IsPressed" Value="true">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.Pressed.Circle.Stroke}"/>
<Setter Property="StrokeThickness" TargetName="circle" Value="1.5"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.Pressed.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.Pressed.Arrow.Stroke}"/>
</Trigger>-->
<Trigger Property="IsPressed" Value="true">
<Setter Property="Fill" TargetName="circle" Value="#E1B957"/>
<Setter Property="Stroke" TargetName="circle" Value="#E1B957"/>
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter Property="ToggleButton.Background" Value="{StaticResource Omag_Blue}" />
<Setter Property="ToggleButton.BorderBrush" Value="{StaticResource Omag_Blue}" />
<Setter Property="ToggleButton.Foreground" Value="{StaticResource Omag_Yellow}"/>
</Trigger>
<!--<Trigger Property="IsEnabled" Value="false">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.Disabled.Circle.Stroke}"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.Disabled.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.Disabled.Arrow.Stroke}"/>
</Trigger>-->
<Trigger Property="IsEnabled" Value="false">
<!--<Setter Property="ToggleButton.Background" Value="#FFF4F4F4"/>
<Setter Property="ToggleButton.BorderBrush" Value="#FFADB2B5"/>
<Setter Property="ToggleButton.Foreground" Value="#FF838383"/>-->
<Setter Property="OpacityMask" Value="#54707070"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ExpanderUpHeaderStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border Padding="{TemplateBinding Padding}">
<Grid Background="Transparent" SnapsToDevicePixels="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="19"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<TransformGroup.Children>
<TransformCollection>
<RotateTransform Angle="180"/>
</TransformCollection>
</TransformGroup.Children>
</TransformGroup>
</Grid.LayoutTransform>
<Ellipse x:Name="circle" Fill="{StaticResource Expander.Static.Circle.Fill}" HorizontalAlignment="Center" Height="19"
Stroke="{StaticResource Expander.Static.Circle.Stroke}" VerticalAlignment="Center" Width="19"/>
<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" Stroke="{StaticResource Expander.Static.Arrow.Stroke}" SnapsToDevicePixels="false" StrokeThickness="2" VerticalAlignment="Center"/>
</Grid>
<ContentPresenter Grid.Column="1" HorizontalAlignment="Left" Margin="4,0,0,0" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="true">
<Setter Property="Data" TargetName="arrow" Value="M 1,4.5 L 4.5,1 L 8,4.5"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.MouseOver.Circle.Stroke}"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.MouseOver.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.MouseOver.Arrow.Stroke}"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.Pressed.Circle.Stroke}"/>
<Setter Property="StrokeThickness" TargetName="circle" Value="1.5"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.Pressed.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.Pressed.Arrow.Stroke}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.Disabled.Circle.Stroke}"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.Disabled.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.Disabled.Arrow.Stroke}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ExpanderLeftHeaderStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border Padding="{TemplateBinding Padding}">
<Grid Background="Transparent" SnapsToDevicePixels="False">
<Grid.RowDefinitions>
<RowDefinition Height="19"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<TransformGroup.Children>
<TransformCollection>
<RotateTransform Angle="90"/>
</TransformCollection>
</TransformGroup.Children>
</TransformGroup>
</Grid.LayoutTransform>
<Ellipse x:Name="circle" Fill="{StaticResource Expander.Static.Circle.Fill}" HorizontalAlignment="Center" Height="19" Stroke="{StaticResource Expander.Static.Circle.Stroke}" VerticalAlignment="Center" Width="19"/>
<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" Stroke="{StaticResource Expander.Static.Arrow.Stroke}" SnapsToDevicePixels="false" StrokeThickness="2" VerticalAlignment="Center"/>
</Grid>
<ContentPresenter HorizontalAlignment="Center" Margin="0,4,0,0" RecognizesAccessKey="True" Grid.Row="1" SnapsToDevicePixels="True" VerticalAlignment="Top"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="true">
<Setter Property="Data" TargetName="arrow" Value="M 1,4.5 L 4.5,1 L 8,4.5"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.MouseOver.Circle.Stroke}"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.MouseOver.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.MouseOver.Arrow.Stroke}"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.Pressed.Circle.Stroke}"/>
<Setter Property="StrokeThickness" TargetName="circle" Value="1.5"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.Pressed.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.Pressed.Arrow.Stroke}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.Disabled.Circle.Stroke}"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.Disabled.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.Disabled.Arrow.Stroke}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ExpanderRightHeaderStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border Padding="{TemplateBinding Padding}">
<Grid Background="Transparent" SnapsToDevicePixels="False">
<Grid.RowDefinitions>
<RowDefinition Height="19"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<TransformGroup.Children>
<TransformCollection>
<RotateTransform Angle="-90"/>
</TransformCollection>
</TransformGroup.Children>
</TransformGroup>
</Grid.LayoutTransform>
<Ellipse x:Name="circle" Fill="{StaticResource Expander.Static.Circle.Fill}" HorizontalAlignment="Center" Height="19" Stroke="{StaticResource Expander.Static.Circle.Stroke}" VerticalAlignment="Center" Width="19"/>
<Path x:Name="arrow" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" Stroke="{StaticResource Expander.Static.Arrow.Stroke}" SnapsToDevicePixels="false" StrokeThickness="2" VerticalAlignment="Center"/>
</Grid>
<ContentPresenter HorizontalAlignment="Center" Margin="0,4,0,0" RecognizesAccessKey="True" Grid.Row="1" SnapsToDevicePixels="True" VerticalAlignment="Top"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="true">
<Setter Property="Data" TargetName="arrow" Value="M 1,4.5 L 4.5,1 L 8,4.5"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.MouseOver.Circle.Stroke}"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.MouseOver.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.MouseOver.Arrow.Stroke}"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.Pressed.Circle.Stroke}"/>
<Setter Property="StrokeThickness" TargetName="circle" Value="1.5"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.Pressed.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.Pressed.Arrow.Stroke}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Stroke" TargetName="circle" Value="{StaticResource Expander.Disabled.Circle.Stroke}"/>
<Setter Property="Fill" TargetName="circle" Value="{StaticResource Expander.Disabled.Circle.Fill}"/>
<Setter Property="Stroke" TargetName="arrow" Value="{StaticResource Expander.Disabled.Arrow.Stroke}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Expander}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Expander}">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" SnapsToDevicePixels="true">
<DockPanel>
<ToggleButton x:Name="HeaderSite" ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" DockPanel.Dock="Top" FontStretch="{TemplateBinding FontStretch}" Foreground="{TemplateBinding Foreground}" FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}" FontStyle="{TemplateBinding FontStyle}" FontFamily="{TemplateBinding FontFamily}" FontWeight="{TemplateBinding FontWeight}" FontSize="{TemplateBinding FontSize}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Margin="1" MinWidth="0" MinHeight="0" Padding="{TemplateBinding Padding}" Style="{StaticResource ExpanderDownHeaderStyle}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
<ContentPresenter x:Name="ExpandSite" DockPanel.Dock="Bottom" Focusable="false" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Visibility="Collapsed"/>
</DockPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="true">
<Setter Property="Visibility" TargetName="ExpandSite" Value="Visible"/>
</Trigger>
<Trigger Property="ExpandDirection" Value="Right">
<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Right"/>
<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Left"/>
<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderRightHeaderStyle}"/>
</Trigger>
<Trigger Property="ExpandDirection" Value="Up">
<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Top"/>
<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Bottom"/>
<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderUpHeaderStyle}"/>
</Trigger>
<Trigger Property="ExpandDirection" Value="Left">
<Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Left"/>
<Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Right"/>
<Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderLeftHeaderStyle}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>