Compare commits

...

63 Commits

Author SHA1 Message Date
Dario Sassi 8724a8cee9 EgtCAM5 :
- riordino posizioni parametri generici svuotature in lista operazioni.
2026-05-10 11:38:01 +02:00
Dario Sassi 17917c682e EgtCAM5 3.1e2 :
- ricompilazione con cambio versione.
2026-05-08 17:14:30 +02:00
Demetrio Cassarino d339d58ad1 -piccola modifica gestione AdvancedParamIsExpander 2026-05-08 16:54:16 +02:00
Demetrio Cassarino 6efad10da5 corretto commit 2026-05-08 15:25:28 +02:00
Demetrio Cassarino 77a708f35f -gestito apertura expander advanced con slider
-piccola modifica per visualizzare parametri EPICYCLESRAD e EPICYCLESDIST in pocketing
2026-05-08 15:24:14 +02:00
Dario Sassi 7668db1917 EgtCAM5 3.1e1 :
- ricompilazione con cambio versione.
2026-05-07 12:25:00 +02:00
Dario Sassi 2ad2f50a4f EgtCAM5 3.1d2 :
- bloccata l'uscita diretta con ALT+F4 che evitava la richiesta di salvataggio del lavoro in corso.
2026-04-28 19:26:17 +02:00
Dario Sassi 051cbb2a5a EgtCAM5 :
- modifiche per parametri da visualizzare in fresatura di tipo STONE.
2026-04-23 18:17:02 +02:00
Dario Sassi cf978712ba EgtCAM5 :
- correzione per problema blocco selezione lavorazione al rientro nella lista.
2026-04-12 21:49:59 +02:00
Dario Sassi 3e41014f5b EgtCAM5 :
- corretto aggiornamento visualizzazione PreviewTool di tipo corretto al rientro nella lavorazione.
2026-04-07 17:53:05 +02:00
Dario Sassi a62a53ea61 EgtCAM5 :
- modifica disegno utensile per preview in lavorazione.
2026-04-03 17:52:17 +02:00
Riccardo Elitropi 60adc08781 EgtCAM5 3.1d1 :
- Aggiunto parametro Overlap per Sgrossature.
2026-04-01 18:07:53 +02:00
Dario Sassi 06510d5925 EgtCAM5 :
- correzione selezione per lavorazioni.
2026-03-31 11:42:26 +02:00
Dario Sassi d8c97cf352 Merge commit '78310cd71187b942ed8c0e7d9728bd19ae207448' 2026-03-26 16:15:28 +01:00
Demetrio Cassarino 78310cd711 Merge commit '4e947f293e849ceeef263f4cc6d65bd3278e4db0' into features/NewProjectGrid 2026-03-26 15:17:59 +01:00
Demetrio Cassarino e48cbffa6b -aggiunto modifica per salvare dimensioni finestra ExecuteWindow 2026-03-26 15:17:46 +01:00
Dario Sassi 4e947f293e EgtCAM5 :
- piccole migliorie a ExecuteWindow.
2026-03-25 08:45:26 +01:00
Dario Sassi 014ce6db17 Merge remote-tracking branch 'origin/features/NewProjectGrid' 2026-03-25 08:13:42 +01:00
Dario Sassi 705aeaaab7 EgtCAM5 :
- piccola miglioria alla modifica precedente.
2026-03-24 13:35:11 +01:00
Dario Sassi 228c4f9a48 EgtCAM5 :
- correzione gestione geometria selezionata con più sottoentità per la lavorazione corrente.
2026-03-24 13:30:20 +01:00
Demetrio Cassarino 375c53122c -sistemato apertura e chiusura su infoexpander 2026-03-20 15:43:08 +01:00
Dario Sassi bb22395a22 Merge commit 'e2e365765d81fa12bad9018462bb335b668844f3' 2026-03-18 12:15:30 +01:00
Demetrio Cassarino e2e365765d -migliorata gestione griglia dinamica 2026-03-18 09:22:27 +01:00
Dario Sassi 4eac19a2ff EgtCAM5 :
- piccole modifiche ad analisi superfici di Bezier.
2026-03-13 13:39:21 +01:00
Dario Sassi c276398b29 Merge commit 'e88e19ed3fc5c09b063227daf658e5440c25b3ca' 2026-03-13 09:56:20 +01:00
Demetrio Cassarino e88e19ed3f -migliorata gestione griglia dinamica chiusura expander 2026-03-13 09:48:53 +01:00
Demetrio Cassarino 87fba7e739 Merge commit '92a6cefe6762d632438a17ce7c29f07ec82361f9' into features/ButtonPreview 2026-03-13 09:09:37 +01:00
Dario Sassi 92a6cefe67 EgtCAM5 3.1c2 :
- ricompilazione con cambio versione.
2026-03-12 19:18:23 +01:00
Dario Sassi 9193518d4f Merge commit 'dda46787db9dbbb232e2c81b4ef093fba7036ec3' 2026-03-12 18:27:27 +01:00
Daniele Bariletti 6e06d76a7c - modificata la funzione EgtSurfBezParamsFromPoint 2026-03-12 18:15:59 +01:00
Demetrio Cassarino dda46787db -introdotto griglia dinamica per gestire spostamento colonne 2026-03-12 11:31:10 +01:00
Daniele Bariletti ca2144f058 - miglioria all'analisi di una surf di bezier. 2026-03-11 16:12:15 +01:00
Daniele Bariletti e0ea153122 - aggiunta funzione per tagliare una trimesh con una curva chiusa. 2026-03-11 13:13:25 +01:00
Daniele Bariletti 0b471786cc - aggiunta funzione analizza per le superfici di bezier. 2026-03-10 17:41:01 +01:00
Dario Sassi ece48a6523 Merge commit '5e151fd7ec16aba3cacac08b98ec3cfd04521f8a' 2026-03-06 12:25:55 +01:00
Demetrio Cassarino 5e151fd7ec -gestito in modo corretto la visualizzazione del tool tramite tasti su/giù da tastiera 2026-03-06 12:13:12 +01:00
Dario Sassi ade3d5c1aa Merge commit 'b3db41c0ae4c74d40e57806c3ef462c4462985ba' 2026-03-06 11:31:58 +01:00
Demetrio Cassarino b3db41c0ae -modificata gestione tasti su slider ora solo con destra/sinistra mentre su/giù mette il focus sul bottone preview 2026-03-06 11:24:11 +01:00
Dario Sassi ad21ccf4d8 Merge commit '29dd3ca6d42fd61a1f8315615a14181412dfc4b2' 2026-03-05 16:07:55 +01:00
Demetrio Cassarino 29dd3ca6d4 -piccola modifica al bottone previewtool 2026-03-05 16:06:54 +01:00
Demetrio Cassarino 2174bdfd20 Merge commit 'd28ac71a5e79d7c5038e4ffb7e402ee7fc0a549b' into features/ButtonPreview 2026-03-05 16:02:22 +01:00
Dario Sassi d28ac71a5e EgtCAM5 :
- piccoli ritocchi ai disegni per MachiningToolPreview.
2026-03-05 15:52:09 +01:00
Dario Sassi 1f92a28e44 Merge commit '3944eb085fcaae0278ab3c3a951045e997808361' 2026-03-05 15:26:36 +01:00
Demetrio Cassarino 3944eb085f -aggiornato pulsante visualizzazione tool con immagini 2026-03-05 12:19:21 +01:00
Dario Sassi 30b436c33b Merge commit 'd2f947b9b18849e47b5b77c015fea225e59f7aa9' 2026-03-05 12:12:48 +01:00
Demetrio Cassarino d2f947b9b1 -aggiornato in updatemachine visualizzazione corretta tool 2026-03-05 11:35:17 +01:00
Demetrio Cassarino 50c06fee70 Merge commit '265938c37f9b9a5c61da5157f5f60c9f74d0ac52' into features/ButtonPreview 2026-03-05 11:32:43 +01:00
Dario Sassi 265938c37f EgtCAM5 :
- correzione a MachiningPrevieTool nel caso di Update/Apply.
2026-03-05 11:17:45 +01:00
Dario Sassi 3d4cfc0eb8 Merge commit 'c5ddcff63f810dedc6fe57acfd64edac298f4f4a' 2026-03-05 10:08:30 +01:00
Demetrio Cassarino c5ddcff63f -sistemato errore su aggiorna macchina 2026-03-05 09:00:14 +01:00
Demetrio Cassarino dc7a3b78cd Merge commit '4147457b7d66c393119cab246288fa2cbbbf6457' into features/ButtonPreview 2026-03-05 08:42:21 +01:00
Dario Sassi 4147457b7d EgtCAM5 :
- correzione nel passaggio da Machining a Draw.
2026-03-05 08:11:40 +01:00
Dario Sassi f2d465ff14 Merge commit '3cac37cb0da6c974ca32899dadb544fc34b2609c' 2026-03-04 17:21:19 +01:00
Demetrio Cassarino 3cac37cb0d -aggiunto pulsante a 3 step per visualizzare l'utensile e la testa 2026-03-04 17:02:20 +01:00
Dario Sassi ffa0ce03bb EgtCAM5 3.1c1 :
- ricompilazione con cambio versione.
2026-03-03 18:37:24 +01:00
Dario Sassi 68063e5b39 EgtCAM5 :
- correzioni per visibilità di ReversePost toolbar.
2026-02-22 16:28:30 +01:00
Dario Sassi 18505bfa5d EgtCAM5 3.1b1 :
- correzioni a recupero nome da nota NcName di Gruppo di Lavoro per file di generazione e stima.
2026-02-19 11:30:36 +01:00
Dario Sassi a7999c4182 EgtCAM5 3.1a4 :
- ricompilazione con cambio versione.
2026-02-10 09:43:11 +01:00
Dario Sassi b0186d096f EgtCAM5 :
- miglioria nella gestione del rilascio istanza all'uscita.
2026-01-27 16:23:27 +01:00
Dario Sassi 6e5f917d6f EgtCAM5 :
- piccola miglioria nel log per indicare tutte le estensioni presenti.
2026-01-23 19:19:26 +01:00
Dario Sassi 5819bc4bf8 EgtCAM5 :
- in lavorazioni anteprima utensile migliorata gestione frecce avanti/indietro.
2026-01-21 16:00:10 +01:00
Dario Sassi dee67518e7 EgtCAM5 :
- correzione in gestione geometria selezionata per lavorazioni.
2026-01-21 13:28:39 +01:00
Dario Sassi 50f5e0528f Merge commit '08ea864a5e0a20abacc061e8ec962b9d42797da1' 2026-01-16 14:46:30 +01:00
49 changed files with 1397 additions and 419 deletions
+3
View File
@@ -51,6 +51,9 @@ Module ConstGen
' Chiave di Info in gruppo di lavoro per none part-program
Public Const KEY_MCHGRP_NCNAME As String = "NcName"
' File Dimensioni Griglia CAM5
Public Const DIMENSION_FILE_NAME As String = "Dimension.ini"
' Costante per flag di BBox
Public Const BBFLAG As Integer = GDB_BB.ONLY_VISIBLE + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM
+5
View File
@@ -223,4 +223,9 @@ Module ConstIni
Public Const S_MRUGUNSTOCKPEZ As String = "MruGunStockPez"
Public Const K_FILE As String = "File"
Public Const S_EXECUTEWINDOW As String = "ExecuteWindow"
Public Const K_LEFT As String = "Left"
Public Const K_TOP As String = "Top"
Public Const K_WIDTH As String = "Width"
Public Const K_HEIGHT As String = "Height"
End Module
+2
View File
@@ -1530,6 +1530,8 @@ Public Class DrawPanelVM
Public Sub SolidIntersectSurf(ByVal param As Object)
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.CUTSURFSURF)
ElseIf (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.TRIMSURFTMWITHCURVE)
Else
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.SOLIDINTERSECTSURF)
End If
+11
View File
@@ -322,6 +322,7 @@
<Compile Include="Utility\Analyze.vb" />
<Compile Include="Utility\BasePanelVM.vb" />
<Compile Include="Utility\BindingProxy.vb" />
<Compile Include="Utility\DynamicGridModule.vb" />
<Compile Include="Utility\Map.vb" />
<Compile Include="Internals\MruList.vb" />
<Compile Include="Utility\MachineModel.vb" />
@@ -401,6 +402,7 @@
</Compile>
<Compile Include="PopUpViewPanel\PopUpViewPanelVM.vb" />
<Compile Include="Utility\SelData.vb" />
<Compile Include="Utility\WindowStateBehavior.vb" />
<Compile Include="ViewPanel\ViewPanelV.xaml.vb">
<DependentUpon>ViewPanelV.xaml</DependentUpon>
</Compile>
@@ -1086,6 +1088,15 @@
<ItemGroup>
<Resource Include="Resources\ExecuteWindow\reload.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\ToolPreview\Head.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\ToolPreview\Tool.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\ToolPreview\Delete.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5R32.exe
+4 -2
View File
@@ -4,13 +4,14 @@
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
Title="Execute Window"
Height="500" Width="400"
Height="500" Width="600"
IsResizable="True"
IsMinimizable="False"
WindowStartupLocation="CenterOwner"
ShowInTaskbar="False"
TitleBarHeight="32"
PreviewKeyDown="EgtCustomWindow_PreviewKeyDown"
EgtCAM5:WindowStateIniBehavior.PersistenceKey="Dimension"
CloseCommand="{Binding Close_Command,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}">
<Grid>
@@ -28,7 +29,8 @@
Grid.ColumnSpan="2"
Content="{Binding OkMsg}"
Command="{Binding Ok_Command}"
Style="{StaticResource EgtCAM5_InputButton}"/>
Style="{StaticResource EgtCAM5_InputButton}"
Margin="0,5,0,10"/>
<Button Grid.Column="1"
Command="{Binding Reload_Command}"
IsEnabled="{Binding bReload_IsEnable}"
+9 -2
View File
@@ -4,13 +4,13 @@ Imports EgtWPFLib5
Class MainWindowV
Inherits EgtCustomWindow
Private Sub Me_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
Private Sub MainWindow_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
If Not ProjectVM.GetAppToShow() Then
Me.ShowInTaskbar = False
End If
End Sub
Private Sub EgtCustomWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
' Posizione e dimensioni del Form
Dim WinPos As New WinPos
If ProjectVM.GetAppToShow() Then
@@ -21,6 +21,13 @@ Class MainWindowV
WinPosToWindow(Me, WinPos)
End Sub
Private Sub MainWindowV_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles Me.Closing
If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt AndAlso Keyboard.IsKeyDown(Key.F4) Then
e.Cancel = True
Return
End If
End Sub
Private Sub MainWindow_Drop(sender As Object, e As DragEventArgs)
' Se drag di file
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
+44 -31
View File
@@ -46,6 +46,13 @@ Public Class MainWindowVM
End Set
End Property
Private m_sDimensionDir As String = String.Empty
Public ReadOnly Property DimensionDir As String
Get
Return m_sDimensionDir
End Get
End Property
Private m_cmdMainWindow_ContentRendered As ICommand
Private m_cmdAboutBox As ICommand
' MainWindow Activated Event
@@ -97,11 +104,11 @@ Public Class MainWindowVM
Public ReadOnly Property IconSource As String
Get
#If PLATFORM = "x64" Then
#If PLATFORM = "x64" Then
Return "/Resources/EgtCAM5_64.ico"
#else
Return "/Resources/EgtCAM5.ico"
#End If
#Else
Return "/Resources/EgtCAM5.ico"
#End If
End Get
End Property
@@ -164,7 +171,6 @@ Public Class MainWindowVM
Public Sub CloseApplication(ByVal param As Object)
If IniFile.m_bScriptRunning Then
If Not IniFile.m_bFailedRun Then
'MessageBox.Show("Can't exit now. Wait until the end of the script execution", "", MessageBoxButton.OK, MessageBoxImage.Stop)
Return
End If
End If
@@ -189,13 +195,7 @@ Public Class MainWindowVM
' Salvo impostazione macchina corrente
Map.refMachinePanelVM.SaveCurrentMachine()
' Aggiorno istanze usate
m_objMutex.WaitOne(1000)
Dim nTmp As Integer = GetPrivateProfileInt(S_GENERAL, K_INSTANCES, 0)
nTmp -= (1 << (IniFile.m_nInstance - 1))
WritePrivateProfileString(S_GENERAL, K_INSTANCES, nTmp.ToString())
m_objMutex.ReleaseMutex()
' Rilascio mutex
If Not IsNothing(m_objMutex) Then m_objMutex.Close()
ReleaseInstance()
' Chiudo la finestra principale del programma
Application.Current.MainWindow.Close()
Else
@@ -203,15 +203,9 @@ Public Class MainWindowVM
End If
End Sub
Private Function OnTerminateProcess( nExitCode As Integer) As Boolean
Private Function OnTerminateProcess(nExitCode As Integer) As Boolean
' Aggiorno istanze usate
m_objMutex.WaitOne(1000)
Dim nTmp As Integer = GetPrivateProfileInt(S_GENERAL, K_INSTANCES, 0)
nTmp -= (1 << (IniFile.m_nInstance - 1))
WritePrivateProfileString(S_GENERAL, K_INSTANCES, nTmp.ToString())
m_objMutex.ReleaseMutex()
' Rilascio mutex
If Not IsNothing(m_objMutex) Then m_objMutex.Close()
ReleaseInstance()
' Dichiaro di procedere con la terminazione del programma
Return True
End Function
@@ -306,12 +300,9 @@ Public Class MainWindowVM
Map.refMainWindowVM.ManageClosingApplication()
' Terminazione generale di EgtInterface
EgtExit()
' Rilascio mutex
If Not IsNothing(m_objMutex) Then m_objMutex.Close()
' Aggiorno istanze usate
Dim nTmp As Integer = GetPrivateProfileInt(S_GENERAL, K_INSTANCES, 0)
nTmp -= (1 << (IniFile.m_nInstance - 1))
WritePrivateProfileString(S_GENERAL, K_INSTANCES, nTmp.ToString())
ReleaseInstance()
' Termino
Application.Current.Shutdown()
End Sub
@@ -362,6 +353,8 @@ Public Class MainWindowVM
Else
IniFile.m_sToolMakersDir = m_sDataRoot & "\" & TOOLMAKER_DFL_DIR
End If
' Recupero percorso file Dimension
m_sDimensionDir = m_sConfigDir & "\" & DIMENSION_FILE_NAME
' Verifico indice di istanza
ManageInstance()
' Imposto tipo di chiave
@@ -385,8 +378,8 @@ Public Class MainWindowVM
EgtSetLockId(sLockId)
End If
' Recupero livello e opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(3279, 3101, 1, IniFile.m_nKeyLevel) And
EgtGetKeyOptions(3279, 3101, 1, IniFile.m_nKeyOptions)
Dim bKey As Boolean = EgtGetKeyLevel(3279, 3105, 1, IniFile.m_nKeyLevel) And
EgtGetKeyOptions(3279, 3105, 1, IniFile.m_nKeyOptions)
' Leggo e imposto livello utilizzatore
IniFile.m_nUserLevel = Math.Min(IniFile.m_nKeyLevel, GetPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1))
' Imposto abilitazione lavorazioni avanzate
@@ -529,6 +522,17 @@ Public Class MainWindowVM
End If
End If
End Sub
Private Sub ReleaseInstance()
' Aggiorno istanze usate
Dim bOk As Boolean = m_objMutex.WaitOne(1000)
Dim nTmp As Integer = GetPrivateProfileInt(S_GENERAL, K_INSTANCES, 0)
nTmp -= (1 << (IniFile.m_nInstance - 1))
WritePrivateProfileString(S_GENERAL, K_INSTANCES, nTmp.ToString())
If bOk Then m_objMutex.ReleaseMutex()
' Rilascio mutex
If Not IsNothing(m_objMutex) Then m_objMutex.Close()
End Sub
Friend Sub NotifyMainWindow_ContentRendered()
' Notifico ProjectVM
@@ -597,18 +601,27 @@ Public Class MainWindowVM
' pulisco output
Map.refStatusBarVM.NotifyStatusOutput("")
Map.refInputExpanderVM.ResetInputBox()
If not IsNothing( Map.refMachiningParameterExpanderVM) Then
If Not IsNothing(Map.refMachiningParameterExpanderVM) Then
' Nascondo la combobox delle usernotes
Map.refMachiningParameterExpanderVM.CurrOperation.SetComboAddVisibility(Visibility.Collapsed)
'riattivo il pulsante per visualizzare la combobox delle note
Map.refMachiningParameterExpanderVM.CurrOperation.SetShowNoteListCombo_IsEnable(True)
End If
ElseIf e.Key = Key.Left OrElse e.Key = Key.Right OrElse e.Key = Key.Up OrElse e.Key = Key.Down AndAlso
Map.refTopCommandBarVM.MachiningIsChecked AndAlso Map.refOperationParametersExpanderVM.OperationParameters.IsEnabled Then
ElseIf (e.Key = Key.Left OrElse e.Key = Key.Right) AndAlso Map.refTopCommandBarVM.MachiningIsChecked AndAlso Map.refOperationParametersExpanderVM.OperationParameters.IsEnabled Then
If Map.refMachiningParameterExpanderVM.CurrOperation.AdvancedParamIsExpander Then Map.refMachiningParameterExpanderVM.CurrOperation.AdvancedParamIsExpander = True
Map.refMachiningParameterExpanderVM.FocusSlider()
Dim nStep As Integer = If(e.Key = Key.Right OrElse e.Key = Key.Up, 1, -1)
Dim nStep As Integer = If(e.Key = Key.Right, 1, -1)
Map.refMachiningParameterExpanderVM.SetSliderValue(nStep)
e.Handled = True
ElseIf (e.Key = Key.Up OrElse e.Key = Key.Down) AndAlso Map.refTopCommandBarVM.MachiningIsChecked AndAlso Map.refOperationParametersExpanderVM.OperationParameters.IsEnabled Then
If Map.refMachiningParameterExpanderVM.CurrOperation.AdvancedParamIsExpander Then Map.refMachiningParameterExpanderVM.CurrOperation.AdvancedParamIsExpander = True
Map.refMachiningParameterExpanderVM.FocusButtonPreview()
If e.Key = Key.Down Then
Map.refMachiningParameterExpanderVM.RevertPreviewMachiningTool()
Else
Map.refMachiningParameterExpanderVM.PreviewMachiningTool()
End If
e.Handled = True
End If
End Sub
+2 -2
View File
@@ -70,6 +70,6 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("3.1.1.3")>
<Assembly: AssemblyFileVersion("3.1.1.3")>
<Assembly: AssemblyVersion("3.1.5.2")>
<Assembly: AssemblyFileVersion("3.1.5.2")>
@@ -7,10 +7,8 @@
<Expander.Header>
<TextBlock Text="{Binding PropertiesMsg}"/>
</Expander.Header>
<UniformGrid>
<TextBox Text="{Binding InfoBox, Mode=OneWay}" MaxHeight="100" IsReadOnly="True"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"/>
</UniformGrid>
<TextBox Text="{Binding InfoBox, Mode=OneWay}" IsReadOnly="True"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"/>
</Expander>
</UserControl>
@@ -21,6 +21,7 @@ Public Class InfoExpanderVM
Set(value As Boolean)
If value <> m_IsExpanded Then
m_IsExpanded = value
Map.refDrawOptionPanelVM.SetInfoRowIsExpanded(m_IsExpanded)
OnPropertyChanged("IsEnabled")
End If
End Set
@@ -22,6 +22,7 @@ Public Class LayerTreeViewItem
Return m_isSelected
End Get
Set(value As Boolean)
If value Then Map.refDrawOptionPanelVM.SetInfoRowIsExpanded(value)
If (value <> m_isSelected) Then
m_isSelected = value
If value Then
@@ -5,7 +5,7 @@
xmlns:expression="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
xmlns:local="clr-namespace:EgtCAM5">
<Expander IsExpanded="True" Style="{StaticResource ExpanderStyle}">
<Expander IsExpanded="{Binding ManageLayerIsExpanded}" Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding HeaderName}" Margin="0,0,5,0"/>
@@ -13,7 +13,11 @@
</StackPanel>
</Expander.Header>
<StackPanel>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<UniformGrid Rows="1">
<Button Content="{Binding NewPartMsg}" Command="{Binding NewPartCommand}" Height="30"/>
@@ -21,7 +25,7 @@
<Button Content="{Binding ColorMsg}" Command="{Binding LayerColorCommand}" Height="30"/>
</UniformGrid>
<TreeView x:Name="LayerTreeView" MinHeight="300" MaxHeight="400"
<TreeView Grid.Row="1" x:Name="LayerTreeView"
ItemsSource="{Binding Path=LayerList}"
VirtualizingStackPanel.IsVirtualizing = "True"
VirtualizingStackPanel.VirtualizationMode = "Recycling">
@@ -116,6 +120,6 @@
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>
</StackPanel>
</Grid>
</Expander>
</UserControl>
@@ -55,6 +55,22 @@ Public Class ManageLayerExpanderVM
End Get
End Property
Private m_ManageLayerIsExpanded As Boolean
Public Property ManageLayerIsExpanded As Boolean
Get
Return m_ManageLayerIsExpanded
End Get
Set(value As Boolean)
m_ManageLayerIsExpanded = value
Map.refDrawOptionPanelVM.SetManageLayerRowIsExpanded(m_ManageLayerIsExpanded)
OnPropertyChanged("ManageLayerIsExpanded")
End Set
End Property
Friend Sub SetManageLayerIsExpanded(value As Boolean)
m_ManageLayerIsExpanded = value
OnPropertyChanged("ManageLayerIsExpanded")
End Sub
#Region "Messages"
Public ReadOnly Property NewPartMsg As String
@@ -140,6 +156,7 @@ Public Class ManageLayerExpanderVM
Map.SetRefManageLayerExpanderVM(Me)
'Imposto tempo di evidenziazione delle entità clickate
ObjTreeTimer.Interval = TimeSpan.FromMilliseconds(1000)
SetManageLayerIsExpanded(True)
End Sub
#End Region ' Constructor
@@ -241,6 +258,7 @@ Public Class ManageLayerExpanderVM
If m_nObjTreeOldId <> GDB_ID.NULL Then
Map.refProjectVM.SetLastInteger(m_nObjTreeOldId)
Map.refProjectVM.ExecuteCommand(Controller.CMD.SETCURRPARTLAYER)
Map.refDrawOptionPanelVM.SetInfoRowIsExpanded(True)
End If
End Sub
+20 -6
View File
@@ -1,15 +1,29 @@
<UserControl x:Class="DrawOptionPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="250"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5">
<StackPanel Name="ciao" Background="Transparent" Margin="0,0,3.5001,0" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}">
<Grid x:Name="DrawGrid" Background="Transparent" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}">
<Grid.RowDefinitions>
<RowDefinition MinHeight="100" MaxHeight="800"
EgtCAM5:DrawOptionPanelVM.RowId="ManageLayer"
EgtCAM5:DrawOptionPanelVM.IsExpanded="{Binding ManageLayerRowIsExpanded}"
EgtCAM5:DrawOptionPanelVM.TargetSplitter="{Binding ElementName=ManagerLayerGridSplitter}"/>
<RowDefinition MinHeight="100" MaxHeight="400"
EgtCAM5:DrawOptionPanelVM.RowId="Info"
EgtCAM5:DrawOptionPanelVM.IsExpanded="{Binding InfoRowIsExpanded}"
EgtCAM5:DrawOptionPanelVM.TargetSplitter="{Binding ElementName=InfoGridSplitter}"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--ContentPresenter that contains the ManageLayerExpander-->
<ContentPresenter Content="{Binding ManageLayerExpander,Mode=OneWay}"/>
<GridSplitter x:Name="ManagerLayerGridSplitter" Style="{StaticResource General_GridSplitter}"/>
<!--ContentPresenter that contains the InfoExpander-->
<ContentPresenter Content="{Binding InfoExpander}"/>
<ContentPresenter Grid.Row="1" Content="{Binding InfoExpander}"/>
<GridSplitter x:Name="InfoGridSplitter" Grid.Row="1" Style="{StaticResource General_GridSplitter}"/>
<!--ContentPresenter that contains the InputExpander-->
<ContentPresenter Content="{Binding InputExpander}"/>
</StackPanel>
<ContentPresenter Grid.Row="2" Content="{Binding InputExpander}"/>
</Grid>
</UserControl>
</UserControl>
+25 -2
View File
@@ -1,7 +1,30 @@
Public Class DrawOptionPanelV
Private Sub Me_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
Dim x = ciao.MaxHeight
Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Map.SetRefDrawOptionPanelV(Me)
If Not IsActivePlugin() Then
AddHandler DrawGrid.Loaded,
Sub()
DynamicGridModule.RestoreDrawGridLayout(DrawGrid, "ManageLayer", 0, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_DRAW_PLUGIN, DynamicGridModule.PROJECT_DRAW))
DynamicGridModule.RestoreDrawGridLayout(DrawGrid, "Info", 1, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_DRAW_PLUGIN, DynamicGridModule.PROJECT_DRAW))
DrawGrid.UpdateLayout()
End Sub
AddHandler ManagerLayerGridSplitter.DragCompleted,
Sub()
DynamicGridModule.SaveDrawGridLayout(DrawGrid, "ManageLayer", If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_DRAW_PLUGIN, DynamicGridModule.PROJECT_DRAW))
End Sub
AddHandler InfoGridSplitter.DragCompleted,
Sub()
DynamicGridModule.SaveDrawGridLayout(DrawGrid, "Info", If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_DRAW_PLUGIN, DynamicGridModule.PROJECT_DRAW))
End Sub
End If
End Sub
End Class
+112 -1
View File
@@ -1,4 +1,4 @@
Imports EgtUILib
Imports System.IO
Public Class DrawOptionPanelVM
Inherits ViewModelBase
@@ -37,6 +37,28 @@ Public Class DrawOptionPanelVM
End Get
End Property
Private m_ManageLayerRowIsExpanded As Boolean = True
Public ReadOnly Property ManageLayerRowIsExpanded As Boolean
Get
Return m_ManageLayerRowIsExpanded
End Get
End Property
Friend Sub SetManageLayerRowIsExpanded(value As Boolean)
m_ManageLayerRowIsExpanded = value
OnPropertyChanged("ManageLayerRowIsExpanded")
End Sub
Private m_InfoRowIsExpanded As Boolean = True
Public ReadOnly Property InfoRowIsExpanded As Boolean
Get
Return m_InfoRowIsExpanded
End Get
End Property
Friend Sub SetInfoRowIsExpanded(value As Boolean)
m_InfoRowIsExpanded = value
OnPropertyChanged("InfoRowIsExpanded")
End Sub
#Region "CONSTRUCTOR"
Sub New()
@@ -60,4 +82,93 @@ Public Class DrawOptionPanelVM
#End Region ' METHODS
#Region "DEPENCY PROPERTY"
Public Shared ReadOnly RowIdProperty As DependencyProperty =
DependencyProperty.RegisterAttached(
"RowId",
GetType(String),
GetType(DrawOptionPanelVM),
New PropertyMetadata(Nothing)
)
Public Shared Sub SetRowId(element As DependencyObject, value As String)
element.SetValue(RowIdProperty, value)
End Sub
Public Shared Function GetRowId(element As DependencyObject) As String
Return CType(element.GetValue(RowIdProperty), String)
End Function
Public Shared ReadOnly IsExpandedProperty As DependencyProperty =
DependencyProperty.RegisterAttached(
"IsExpanded",
GetType(Boolean),
GetType(DrawOptionPanelVM),
New PropertyMetadata(True, AddressOf OnIsExpandedChanged)
)
Public Shared Sub SetIsExpanded(element As DependencyObject, value As Boolean)
element.SetValue(IsExpandedProperty, value)
End Sub
Public Shared Function GetIsExpanded(element As DependencyObject) As Boolean
Return CType(element.GetValue(IsExpandedProperty), Boolean)
End Function
Public Shared Function GetTargetSplitter(d As DependencyObject) As GridSplitter
Return CType(d.GetValue(TargetSplitterProperty), GridSplitter)
End Function
Public Shared Sub SetTargetSplitter(d As DependencyObject, value As GridSplitter)
d.SetValue(TargetSplitterProperty, value)
End Sub
Public Shared ReadOnly TargetSplitterProperty As DependencyProperty =
DependencyProperty.RegisterAttached(
"TargetSplitter",
GetType(GridSplitter),
GetType(DrawOptionPanelVM),
New PropertyMetadata(Nothing)
)
Private Shared Sub OnIsExpandedChanged(d As DependencyObject, e As DependencyPropertyChangedEventArgs)
Dim row As RowDefinition = TryCast(d, RowDefinition)
If IsNothing(row) Then Return
Dim isExpanded As Boolean = CBool(e.NewValue)
Dim splitter = DrawOptionPanelVM.GetTargetSplitter(row)
If splitter IsNot Nothing Then
splitter.IsEnabled = isExpanded
splitter.Visibility = If(isExpanded, Visibility.Visible, Visibility.Collapsed)
End If
Dim rowId As String = GetRowId(row)
Dim rowHeight As Double = 0
If rowId = "ManageLayer" Then
rowHeight = 400
ElseIf rowId = "Info" Then
rowHeight = 150
End If
If Not isExpanded Then
row.ClearValue(RowDefinition.HeightProperty)
row.Height = New GridLength(1, GridUnitType.Auto)
row.MinHeight = 0
Else
If File.Exists(Map.refMainWindowVM.DimensionDir) Then
DynamicGridModule.RestoreDrawGridLayout(Map.refDrawOptionPanelV.DrawGrid, "ManageLayer", 0, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_DRAW_PLUGIN, DynamicGridModule.PROJECT_DRAW))
DynamicGridModule.RestoreDrawGridLayout(Map.refDrawOptionPanelV.DrawGrid, "Info", 1, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_DRAW_PLUGIN, DynamicGridModule.PROJECT_DRAW))
Map.refDrawOptionPanelV.DrawGrid.UpdateLayout()
Else
row.Height = New GridLength(rowHeight)
End If
End If
End Sub
#End Region ' Depency Property
End Class
@@ -18,6 +18,7 @@ Public Class EstimationsExpanderVM
Set(value As Boolean)
If value <> m_Estimation_IsExpanded Then
Map.refMachiningOptionPanelVM.Set_IsExpanded(MachiningOptionPanelVM.MachiningOptionPanelExpander.ESTIMATIONS, value)
Map.refMachiningOptionPanelVM.SetOperationsListRowIsExpanded(False)
End If
End Set
End Property
@@ -138,7 +139,7 @@ Public Class EstimationsExpanderVM
If Not String.IsNullOrEmpty(sCurrFilePath) Then
sInfo = "EgtCAM5 - " & sCurrFilePath
If EgtGetInfo(EgtGetCurrMachGroup(), KEY_MCHGRP_NCNAME, sEstFile) AndAlso Not String.IsNullOrWhiteSpace(sEstFile) Then
sEstFile = Path.ChangeExtension(Path.GetDirectoryName(sCurrFilePath) & "\" & sEstFile, ".html")
sEstFile = Path.ChangeExtension(Path.GetDirectoryName(sCurrFilePath) & "\" & Path.GetFileName( sEstFile), ".html")
Else
sEstFile = Path.ChangeExtension(sCurrFilePath, Nothing)
If IniFile.m_bMachiningGroup Then
@@ -94,26 +94,11 @@ Public Class MachiningTreeExpanderVM
' Sposto la lavorazione aggiunta subito dopo quella appena selezionata
EgtRelocate(MachiningId, nSelectedOperationId, GDB_POS.AFTER)
End If
' Recupero geometria correntemente selezionata e la metto in un vettore
Dim SelectedEntities As New List(Of Integer)
Dim EntityId As Integer = EgtGetFirstSelectedObj()
While EntityId <> GDB_ID.NULL
SelectedEntities.Add(EntityId)
EntityId = EgtGetNextSelectedObj()
End While
' Imposto l'operazione appena creata come corrente
EgtSetCurrMachining(MachiningId)
' Gestione speciale per superfici ( si aggiunge l'identificazione della faccia)
If SelectedEntities.Count() > 0 AndAlso EgtGetType(SelectedEntities(0)) = GDB_TY.SRF_MESH Then
Dim vId() As Integer = Nothing
Dim vSub() As Integer = Nothing
SelData.GetAllIdSub(vId, vSub)
EgtSetMachiningGeometry(vId, vSub)
' Gestione standard per altre entità (curve, regioni, ...)
Else
' Imposto il vettore come geometria di lavorazione
EgtSetMachiningGeometry(SelectedEntities.ToArray)
End If
' Imposto geometria da lavorare (tutta quella selezionata)
Dim vId() As Integer = Nothing
Dim vSub() As Integer = Nothing
SelData.GetAllSelectedGeom(vId, vSub)
EgtSetMachiningGeometry(vId, vSub)
' Calcolo la lavorazione con la nuova geometria
EgtApplyMachining(True)
EgtDraw()
@@ -80,28 +80,25 @@
<Button Name="ApplyMachBtn" Height="30" Content="{Binding UpdateMachiningBtnMsg}"
Command="{Binding UpdateMachiningCommand}" Background="{Binding UpdateMachiningBtn_Background}"/>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Margin="0,2.5,0,2.5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<CheckBox Name="ViewToolBtn"
Content="{Binding ViewToolBtnMsg}"
IsChecked="{Binding ViewTool}"
Style="{StaticResource ViewTool_CheckBox}"/>
<Button Command="{Binding PreviewMachiningTool_Command}"
x:Name="ButtonPreview"
Style="{StaticResource PreviewTool_Button}">
<Image Source="{Binding sToolPreview_Image}" Stretch="Uniform"/>
</Button>
<Slider Grid.Row="1"
<Slider Grid.Column="1"
x:Name="SliderV"
Value="{Binding SliderValue}"
IsEnabled="{Binding IsChecked, ElementName=ViewToolBtn}"
IsEnabled="{Binding Slider_IsEnable}"
TickFrequency="{Binding SliderTick}"
Minimum="1"
Maximum="{Binding SliderScale}"
IsSnapToTickEnabled="False"
Style="{StaticResource SliderValue_Slider}"/>
</Grid>
@@ -1,5 +1,5 @@
Imports EgtWPFLib5
Imports EgtWPFLib5.EgtFloating
Imports EgtCAM5.MachiningParameterExpanderVM
Imports EgtUILib
Public Class MachiningParameterExpanderV
@@ -9,9 +9,12 @@ Public Class MachiningParameterExpanderV
InitializeComponent()
' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
Me.SliderV.Focusable = False
' Associo il gestore evento m_EventFocusOnSlider all'evento generato da FocusOnSlider
AddHandler Map.refMachiningParameterExpanderVM.m_EventFocusOnSlider, AddressOf FocusOnSlider
' Associo il gestore evento m_EventFocusOnButtonPreview all'evento generato da FocusOnButtonPreview
AddHandler Map.refMachiningParameterExpanderVM.m_EventFocusOnButtonPreview, AddressOf FocusOnButtonPreview
End Sub
''' <summary>
@@ -21,4 +24,11 @@ Public Class MachiningParameterExpanderV
Me.SliderV.Focus()
End Sub
''' <summary>
''' Funzione che mette il focus sul bottone
''' </summary>
Friend Sub FocusOnButtonPreview()
Me.ButtonPreview.Focus()
End Sub
End Class
@@ -1,6 +1,4 @@
Imports System.ComponentModel
Imports System.Collections.ObjectModel
Imports EgtUILib
Imports EgtUILib
Imports EgtWPFLib5
Public Class MachiningParameterExpanderVM
@@ -10,6 +8,32 @@ Public Class MachiningParameterExpanderVM
''' Evento che permette di mettere il focus sullo slider
''' </summary>
Friend Event m_EventFocusOnSlider()
''' <summary>
''' Evento che permette di mettere il focus sul bottone
''' </summary>
Friend Event m_EventFocusOnButtonPreview()
Private m_nPreviewMachiningTool As Integer = MCH_LOOK.NONE
Public ReadOnly Property nPreviewMachiningTool As Integer
Get
Return m_nPreviewMachiningTool
End Get
End Property
Friend Sub SetPreviewMachiningTool(value As MCH_LOOK)
m_nPreviewMachiningTool = value
NotifyPropertyChanged(NameOf(nPreviewMachiningTool))
End Sub
Private m_sToolPreview_Image As String
Public ReadOnly Property sToolPreview_Image As String
Get
Return m_sToolPreview_Image
End Get
End Property
Friend Sub SetToolPreview_Image(value As String)
m_sToolPreview_Image = value
NotifyPropertyChanged(NameOf(sToolPreview_Image))
End Sub
Private WithEvents m_CurrOperation As MachiningTreeViewItem
Public Property CurrOperation As MachiningTreeViewItem
@@ -54,29 +78,6 @@ Public Class MachiningParameterExpanderVM
End Get
End Property
Private m_bPreviewTool As Boolean = False
Public Property ViewTool As Boolean
Get
Return m_bPreviewTool
End Get
Set(value As Boolean)
If value Then
EgtPreparePreviewMachiningTool()
m_bPreviewTool = True
ResetSliderValue()
Else
EgtRemovePreviewMachiningTool()
m_bPreviewTool = False
ResetSliderValue()
End If
EgtDraw()
End Set
End Property
Friend Sub SetViewTool(value As Boolean)
ViewTool = value
NotifyPropertyChanged("ViewTool")
End Sub
' Slider per muovere l'utensile in aggiunta ai pulsanti indietro e avanti
Private m_SliderScale As Integer = 100
Public ReadOnly Property SliderScale As Integer
@@ -85,15 +86,15 @@ Public Class MachiningParameterExpanderVM
End Get
End Property
Friend Sub SetSliderScale(value As Integer)
m_SliderScale = Math.Max( value, 1)
m_SliderScale = Math.Max(value, 1)
If m_SliderScale <= 10 Then
m_SliderTick = 1
Else
m_SliderTick = CInt( m_SliderScale / 10)
m_SliderTick = CInt(m_SliderScale / 10)
End If
NotifyPropertyChanged( NameOf(SliderScale))
NotifyPropertyChanged( NameOf(SliderTick))
End Sub
NotifyPropertyChanged(NameOf(SliderScale))
NotifyPropertyChanged(NameOf(SliderTick))
End Sub
Private m_SliderTick As Integer = 10
Public ReadOnly Property SliderTick As Integer
@@ -109,7 +110,7 @@ Public Class MachiningParameterExpanderVM
Return m_SliderValue
End Get
Set(value As Integer)
If m_bPreviewTool Then
If m_nPreviewMachiningTool = MCH_LOOK.TAB_TOOL OrElse m_nPreviewMachiningTool = MCH_LOOK.TAB_HEAD Then
Dim nId As Integer = EgtPreviewMachiningTool(m_nPtEntId, value - m_SliderValue)
If nId <> GDB_ID.NULL Then m_nPtEntId = nId
EgtDraw()
@@ -118,7 +119,7 @@ Public Class MachiningParameterExpanderVM
End Set
End Property
Friend Sub ResetSliderValue()
If m_bPreviewTool Then
If m_nPreviewMachiningTool = MCH_LOOK.TAB_TOOL OrElse m_nPreviewMachiningTool = MCH_LOOK.TAB_HEAD Then
m_nPtEntId = EgtPreviewMachiningTool(GDB_ID.NULL, MCH_PTM.AFTER)
Else
m_nPtEntId = GDB_ID.NULL
@@ -127,8 +128,9 @@ Public Class MachiningParameterExpanderVM
NotifyPropertyChanged(NameOf(SliderValue))
End Sub
Friend Sub SetSliderValue(value As Integer)
If m_nPreviewMachiningTool = MCH_LOOK.NONE Then Return
Dim nOldSliderValue As Integer = m_SliderValue
m_SliderValue = Math.Min( Math.Max( m_SliderValue + value, 1), m_SliderScale)
m_SliderValue = Math.Min(Math.Max(m_SliderValue + value, 1), m_SliderScale)
Dim nStep As Integer = m_SliderValue - nOldSliderValue
If nStep = 0 Then Return
Dim nId As Integer = EgtPreviewMachiningTool(m_nPtEntId, nStep)
@@ -137,6 +139,17 @@ Public Class MachiningParameterExpanderVM
NotifyPropertyChanged(NameOf(SliderValue))
End Sub
Private m_Slider_IsEnable As Boolean
Public ReadOnly Property Slider_IsEnable As Boolean
Get
Return m_Slider_IsEnable
End Get
End Property
Friend Sub SetSlider_IsEnable(value As Boolean)
m_Slider_IsEnable = value
NotifyPropertyChanged(NameOf(Slider_IsEnable))
End Sub
Dim WoodDrillParamExpanderV As WoodDrillingParameterExpanderV
Dim WoodSawParamExpanderV As WoodSawingParameterExpanderV
Dim WoodMillParamExpanderV As WoodMillingParameterExpanderV
@@ -175,7 +188,11 @@ Public Class MachiningParameterExpanderVM
Dim nType As Integer
EgtGetMachiningParam(MCH_MP.NAME, sName)
EgtGetMachiningParam(MCH_MP.TYPE, nType)
Dim oldValue As Boolean = If(Not IsNothing(m_CurrOperation), m_CurrOperation.AdvancedParamIsExpander, False)
Dim oldOperation As MachiningTreeViewItem = If(Not IsNothing(m_CurrOperation), m_CurrOperation, Nothing)
m_CurrOperation = New MachiningTreeViewItem(sName, DirectCast(nType, MCH_MY))
m_CurrOperation.AdvancedParamIsExpander = oldValue
m_CurrOperation.ReadOperationParam()
@@ -238,8 +255,7 @@ Public Class MachiningParameterExpanderVM
If MatType = MaterialType.STONE5 Then
' se macchina di tipo STONE ricavo il tipo di utensile
Dim sMachiningToolName = String.Empty
EgtMdbSetCurrMachining(sName)
EgtMdbGetCurrMachiningParam(MCH_MP.TOOL, sMachiningToolName)
EgtGetMachiningParam(MCH_MP.TOOL, sMachiningToolName)
EgtTdbSetCurrTool(sMachiningToolName)
Dim dValue As Double = 0
Dim nToolType As Integer
@@ -319,9 +335,8 @@ Public Class MachiningParameterExpanderVM
#End Region ' Messages
' Definizione comando
Private m_cmdNextStepTool As ICommand
Private m_cmdPrevStepTool As ICommand
Private m_cmdUpdateMachining As ICommand
Private m_cmdPreviewMachiningTool As ICommand
#Region "CONSTRUCTOR"
@@ -342,6 +357,51 @@ Public Class MachiningParameterExpanderVM
RaiseEvent m_EventFocusOnSlider()
End Sub
''' <summary>
''' Funzione che attiva l'evento che mette il focus sul bottone
''' </summary>
Public Sub FocusButtonPreview()
RaiseEvent m_EventFocusOnButtonPreview()
End Sub
Friend Sub PreviewMachiningTool()
Select Case nPreviewMachiningTool
Case MCH_LOOK.NONE
SetPreviewMachiningTool(MCH_LOOK.TAB_TOOL)
SetToolPreview_Image("pack://application:,,,/Resources/ToolPreview/Tool.png")
SetSlider_IsEnable(True)
Case MCH_LOOK.TAB_TOOL
SetPreviewMachiningTool(MCH_LOOK.TAB_HEAD)
SetToolPreview_Image("pack://application:,,,/Resources/ToolPreview/Head.png")
SetSlider_IsEnable(True)
Case MCH_LOOK.TAB_HEAD
SetPreviewMachiningTool(MCH_LOOK.NONE)
SetToolPreview_Image("pack://application:,,,/Resources/ToolPreview/Delete.png")
SetSlider_IsEnable(False)
End Select
EgtChangePreviewMachiningToolShow(nPreviewMachiningTool)
EgtDraw()
End Sub
Friend Sub RevertPreviewMachiningTool()
Select Case nPreviewMachiningTool
Case MCH_LOOK.NONE
SetPreviewMachiningTool(MCH_LOOK.TAB_HEAD)
SetToolPreview_Image("pack://application:,,,/Resources/ToolPreview/Head.png")
SetSlider_IsEnable(True)
Case MCH_LOOK.TAB_TOOL
SetPreviewMachiningTool(MCH_LOOK.NONE)
SetToolPreview_Image("pack://application:,,,/Resources/ToolPreview/Delete.png")
SetSlider_IsEnable(False)
Case MCH_LOOK.TAB_HEAD
SetPreviewMachiningTool(MCH_LOOK.TAB_TOOL)
SetToolPreview_Image("pack://application:,,,/Resources/ToolPreview/Tool.png")
SetSlider_IsEnable(True)
End Select
EgtChangePreviewMachiningToolShow(nPreviewMachiningTool)
EgtDraw()
End Sub
#End Region ' Methods
#Region "COMMANDS"
@@ -382,28 +442,11 @@ Public Class MachiningParameterExpanderVM
' Aggiorno parametri di lavorazione
m_CurrOperation.WriteOperationParam()
' Carico tutta la geometria selezionata in una lista
Dim SelectedGeometry As New List(Of Integer)
Dim EntityIndex As Integer = EgtGetFirstSelectedObj()
While EntityIndex <> GDB_ID.NULL
SelectedGeometry.Add(EntityIndex)
EntityIndex = EgtGetNextSelectedObj()
End While
' Gestione speciale per superfici ( si aggiunge l'identificazione della faccia)
If SelectedGeometry.Count() > 0 AndAlso
(EgtGetType(SelectedGeometry(0)) = GDB_TY.SRF_MESH Or EgtGetType(SelectedGeometry(0)) = GDB_TY.SRF_FRGN) Then
' Aggiorno lista speciale con facce
SelData.VerifyIdSub()
' Imposto geometria
Dim vId() As Integer = Nothing
Dim vSub() As Integer = Nothing
SelData.GetAllIdSub(vId, vSub)
EgtSetMachiningGeometry(vId, vSub)
' Gestione standard per altre entità (curve, testi, ...)
Else
' Imposto geometria
EgtSetMachiningGeometry(SelectedGeometry.ToArray)
End If
' Imposto geometria da lavorare (tutta quella selezionata)
Dim vId() As Integer = Nothing
Dim vSub() As Integer = Nothing
SelData.GetAllSelectedGeom(vId, vSub)
EgtSetMachiningGeometry(vId, vSub)
' Rigenero la lavorazione
If Not EgtApplyMachining(bRecalc) Then
@@ -427,8 +470,11 @@ Public Class MachiningParameterExpanderVM
End If
' Restart visualizzazione utensile
SetSliderScale( EgtGetPreviewMachiningToolStepCount())
SetViewTool(True)
EgtPreparePreviewMachiningTool()
EgtChangePreviewMachiningToolShow(nPreviewMachiningTool)
SetSliderScale(EgtGetPreviewMachiningToolStepCount())
SetSlider_IsEnable(True)
ResetSliderValue()
IsModified(False)
ErrorOnOperation(False)
EgtDraw()
@@ -437,6 +483,23 @@ Public Class MachiningParameterExpanderVM
#End Region ' UpdateMachiningCommand
#Region "PreviewMachiningTool_Command"
Public ReadOnly Property PreviewMachiningTool_Command As ICommand
Get
If m_cmdPreviewMachiningTool Is Nothing Then
m_cmdPreviewMachiningTool = New RelayCommand(AddressOf PreviewMachiningTool)
End If
Return m_cmdPreviewMachiningTool
End Get
End Property
Public Sub PreviewMachiningTool(ByVal param As Object)
PreviewMachiningTool()
End Sub
#End Region ' PreviewMachiningTool_Command
#End Region ' Commands
Private Sub IsModified(IsModified As Boolean) Handles m_CurrOperation.m_IsModified
@@ -129,13 +129,8 @@
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ParamTxBx="{Binding Path=OffSr,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
ParamTxBx="{Binding Path=OffSl,
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SideAngleTxBl}"
ParamTxBx="{Binding Path=SideAngle,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
@@ -151,8 +146,13 @@
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"
Visibility="{Binding Epicycles_Visibility}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding SideAngleTxBl}"
ParamTxBx="{Binding Path=SideAngle,
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ParamTxBx="{Binding Path=OffSr,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
@@ -119,24 +119,21 @@
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
ParamCmBxList="{Binding Path=LeadInTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
ParamCmBxList="{Binding Path=LeadOutTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StepParTxBl}"
ParamTxBx="{Binding Path=StepPar,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSrTxBl}"
ParamTxBx="{Binding Path=OffSr,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OffsetSlTxBl}"
ParamTxBx="{Binding Path=OffSl,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
@@ -252,6 +249,62 @@
</Grid>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadInTypeTxBl}"
ParamCmBxList="{Binding Path=LeadInTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding StartAddLenTxBl}"
ParamTxBx="{Binding Path=StartAddLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LiTangTxBl}"
ParamTxBx="{Binding Path=LiTang,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LiElevTxBl}"
ParamTxBx="{Binding Path=LiElev,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<EgtWPFLib5:ComboParamV ParamTxBl="{Binding LeadOutTypeTxBl}"
ParamCmBxList="{Binding Path=LeadOutTypeList,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
Style="{DynamicResource ComboParamV_Margin}"/>
</Expander.Header>
<StackPanel>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding EndAddLenTxBl}"
ParamTxBx="{Binding Path=EndAddLen,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LoTangTxBl}"
ParamTxBx="{Binding Path=LoTang,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<EgtWPFLib5:StringParamV ParamTxBl="{Binding LoElevTxBl}"
ParamTxBx="{Binding Path=LoElev,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
</StackPanel>
</Expander>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<TextBlock Text="{Binding ToolExpanderHeader}"/>
@@ -92,7 +92,12 @@
ValidatesOnDataErrors=True}"
ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
Style="{DynamicResource ComboParamV_Margin}"/>
<UniformGrid Columns="2">
<EgtWPFLib5:StringParamV ParamTxBl="{Binding OverLapTxBl}"
ParamTxBx="{Binding Path=OverLap,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Style="{DynamicResource StringParamV_Margin}"/>
<UniformGrid Columns="2">
<TextBlock Text="{Binding UserNotesTxBl}"
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
@@ -37,14 +37,23 @@ Public Class OperationListBoxItem
If Not IsNothing(value) Then
Dim indexes As List(Of OperationListBoxItem) = New List(Of OperationListBoxItem)
Dim Count As Integer = 0
Dim nLastInd As Integer = -1
Dim nInd As Integer = 0
For Each OperationListBoxItem In Map.refOperationsListExpanderVM.OperationList
If OperationListBoxItem.IsSelected And OperationListBoxItem.Id <> m_Id Then
Count = Count + 1
indexes.Add(OperationListBoxItem)
nLastInd = nInd
End If
nInd += 1
Next
' Per evitare problemi con primo Item selezionato quando ListView non ancora esistente
If indexes.Count = 1 And nLastInd = 0 Then
Map.refOperationsListExpanderVM.OperationList(0).IsSelected = False
indexes.Clear()
End If
' E' possibile selezionare più lavorazioni solo se della stessa fase
If indexes.Count > 0 Then
If EgtGetOperationPhase(Id) <> EgtGetOperationPhase(indexes(0).Id) Then
Return
@@ -52,10 +61,11 @@ Public Class OperationListBoxItem
End If
m_IsSelected = value
' Verifico se c'è l'operazione precedente
If Not value Or
indexes.Any(Function(i) i.Type = MCH_OY.DISP) Or
(Not indexes.Any(Function(i) i.Type = MCH_OY.DISP) And Type = MCH_OY.DISP And Count > 0) Then
(Not indexes.Any(Function(i) i.Type = MCH_OY.DISP) And Type = MCH_OY.DISP And indexes.Count > 0) Then
m_IsSelected = False
@@ -77,6 +87,7 @@ Public Class OperationListBoxItem
If Map.refOperationsListExpanderVM.ForceDrawInIsSelected Then EgtDraw()
Return
End If
' Imposto la fase di lavorazione corrente
EgtSetCurrPhase(EgtGetOperationPhase(Id))
' Abilito la selezione dei Percorsi di Lavorazione
@@ -1,7 +1,4 @@
Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Imports EgtUILib
Public Class OperationParametersExpanderVM
Inherits ViewModelBase
@@ -32,6 +29,7 @@ Public Class OperationParametersExpanderVM
' disattivo MTable e SpecialPanel se vado sulla modifica di una lavorazione
Map.refDoorPanelVM.MTableIsEnabled(Not m_ParametersIsExpanded)
Map.refSpecialPanelVM.SpecialPanelIsEnabled(Not m_ParametersIsExpanded)
Map.refMachiningOptionPanelVM.SetOperationsListRowIsExpanded(False)
End Set
End Property
@@ -181,7 +179,12 @@ Public Class OperationParametersExpanderVM
Map.refProjectVM.SceneSelMode = OptionModule.m_SelGeomProbing
End Select
' Imposto visualizzazione utensile
Map.refMachiningParameterExpanderVM.SetViewTool( True)
'Map.refMachiningParameterExpanderVM.SetPreviewMachiningTool(MCH_LOOK.TAB_TOOL)
'Map.refMachiningParameterExpanderVM.SetToolPreview_Image("pack://application:,,,/Resources/ToolPreview/Tool.png")
'Map.refMachiningParameterExpanderVM.SetSlider_IsEnable(True)
EgtPreparePreviewMachiningTool()
Map.refMachiningParameterExpanderVM.PreviewMachiningTool()
EgtDraw()
End If
OnPropertyChanged("ParametersIsExpanded")
Return True
@@ -211,7 +214,10 @@ Public Class OperationParametersExpanderVM
EgtDraw()
Else
' Nascondo visualizzazione utensile
Map.refMachiningParameterExpanderVM.SetViewTool( False)
Map.refMachiningParameterExpanderVM.SetPreviewMachiningTool(MCH_LOOK.NONE)
Map.refMachiningParameterExpanderVM.SetSlider_IsEnable(False)
Map.refMachiningParameterExpanderVM.ResetSliderValue()
EgtRemovePreviewMachiningTool()
End If
ParametersExpanderName = String.Empty
' Disabilito la selezione delle lavorazioni
@@ -1,177 +1,176 @@
<UserControl x:Class="OperationsListExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<StackPanel Name="OperationsListExpanderViewStackPanel" IsEnabled="{Binding OpersListViewIsEnabled}">
<Expander Header="{Binding OperationListHeader}"
IsEnabled="{Binding OpersListViewIsEnabled}"
IsExpanded="{Binding ListIsExpanded}" Name="OperationsListExpander"
Style="{StaticResource ExpanderStyle}">
<Expander.InputBindings>
<KeyBinding Key="Escape" Command="{Binding CancelOperationCommand}" CommandParameter="Escape"/>
</Expander.InputBindings>
<Expander Header="{Binding OperationListHeader}" IsExpanded="{Binding ListIsExpanded}" Name="OperationsListExpander"
Style="{StaticResource ExpanderStyle}">
<Expander.InputBindings>
<KeyBinding Key="Escape" Command="{Binding CancelOperationCommand}" CommandParameter="Escape"/>
</Expander.InputBindings>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel>
<UniformGrid Rows="1">
<Button Content="{Binding NewMachiningBtnContent}" Command="{Binding NewMachiningCommand}" Height="30"/>
<Button Content="{Binding NewPositioningBtnContent}" Command="{Binding NewPositioningCommand}" Height="30"/>
<Button Content="{Binding CancelOperationBtnContent}" Command="{Binding CancelOperationCommand}" Height="30"/>
</UniformGrid>
<UniformGrid Rows="1">
<Button Content="{Binding NewMachiningBtnContent}" Command="{Binding NewMachiningCommand}" Height="30"/>
<Button Content="{Binding NewPositioningBtnContent}" Command="{Binding NewPositioningCommand}" Height="30"/>
<Button Content="{Binding CancelOperationBtnContent}" Command="{Binding CancelOperationCommand}" Height="30"/>
</UniformGrid>
<ListBox IsSynchronizedWithCurrentItem="False" ItemsSource="{Binding OperationList}"
Height="200" x:Name="OperationList" IsEnabled="{Binding IsEnabledOperationList}" SelectionMode="Extended">
<ListBox.Resources>
<DataTemplate DataType="{x:Type EgtCAM5:MachiningOpListBoxItem}">
<DataTemplate.Resources>
<Style x:Key="LayoutRoot" TargetType="Grid">
<!--<Style.Triggers>
--><!--these are the triggers that make the code cursor jump from box 1 to box 2 to box 3.--><!--
<DataTrigger Binding="{Binding ElementName=Box, Path=Visibility}" Value="Visible">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=Box}"/>
</DataTrigger>
</Style.Triggers>-->
</Style>
</DataTemplate.Resources>
<Border Background="Transparent">
<Border.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick"
<ListBox Grid.Row="1"
ItemsSource="{Binding OperationList}"
IsSynchronizedWithCurrentItem="True"
x:Name="OperationList" IsEnabled="{Binding IsEnabledOperationList}" SelectionMode="Extended">
<ListBox.Resources>
<DataTemplate DataType="{x:Type EgtCAM5:MachiningOpListBoxItem}">
<DataTemplate.Resources>
<Style x:Key="LayoutRoot" TargetType="Grid"/>
</DataTemplate.Resources>
<Border Background="Transparent">
<Border.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick"
Command="{Binding DataContext.OperationListDoubleClickCommand, RelativeSource={RelativeSource AncestorType={x:Type EgtCAM5:OperationsListExpanderV}}}"
CommandParameter="{Binding Id}"/>
</Border.InputBindings>
<Grid Style="{StaticResource LayoutRoot}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<CheckBox IsChecked="{Binding Status}" Margin="0,0,5,0"/>
<Image Source="{Binding Image}" Height="15" Margin="0,0,5,0"/>
<ToggleButton Style="{StaticResource EgtCAM5_LampToggleButton}" Grid.Column="1"
IsChecked="{Binding OnOff}" Visibility="{Binding IsHidden}" Focusable="True" Height="15" Width="15" Margin="0,0,5,0"/>
</Border.InputBindings>
<Grid Style="{StaticResource LayoutRoot}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<CheckBox IsChecked="{Binding Status}" Margin="0,0,5,0"/>
<Image Source="{Binding Image}" Height="15" Margin="0,0,5,0"/>
<ToggleButton Style="{StaticResource EgtCAM5_LampToggleButton}" Grid.Column="1"
IsChecked="{Binding OnOff}" Visibility="{Binding IsHidden}" Focusable="True" Height="15" Width="15" Margin="0,0,5,0"/>
<TextBlock Grid.Column="2" Text="{Binding Name}"
Visibility="{Binding Name_Visibility}" Margin="0,0,5,0"/>
<TextBox Grid.Column="2" Text="{Binding ModifiedName, UpdateSourceTrigger=PropertyChanged}"
Width="150"
x:Name="Box"
Visibility="{Binding ModifyName_Visibility}" Margin="0,0,5,0">
<!--IsVisibleChanged="MachiningOpListBoxItem_IsVisibleChanged"
<TextBlock Grid.Column="2" Text="{Binding Name}"
Visibility="{Binding Name_Visibility}" Margin="0,0,5,0"/>
<TextBox Grid.Column="2" Text="{Binding ModifiedName, UpdateSourceTrigger=PropertyChanged}"
Width="150"
x:Name="Box"
Visibility="{Binding ModifyName_Visibility}" Margin="0,0,5,0">
<!--IsVisibleChanged="MachiningOpListBoxItem_IsVisibleChanged"
LostKeyboardFocus="MachiningOpListBoxItem_LostKeyboardFocus">-->
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding ModifyNameEnterCommand}"/>
<KeyBinding Key="Escape" Command="{Binding ModifyNameEscCommand}"/>
</TextBox.InputBindings>
</TextBox>
<TextBlock Grid.Column="3" Text="{Binding Info}"/>
</Grid>
</Border>
</DataTemplate>
<DataTemplate DataType="{x:Type EgtCAM5:DispositionOpListBoxItem}">
<Border CornerRadius="1" Background="{StaticResource EgaltechBlue3}">
<Border.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick"
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding ModifyNameEnterCommand}"/>
<KeyBinding Key="Escape" Command="{Binding ModifyNameEscCommand}"/>
</TextBox.InputBindings>
</TextBox>
<TextBlock Grid.Column="3" Text="{Binding Info}"/>
</Grid>
</Border>
</DataTemplate>
<DataTemplate DataType="{x:Type EgtCAM5:DispositionOpListBoxItem}">
<Border CornerRadius="1" Background="{StaticResource EgaltechBlue3}">
<Border.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick"
Command="{Binding DataContext.OperationListDoubleClickCommand, RelativeSource={RelativeSource AncestorType={x:Type EgtCAM5:OperationsListExpanderV}}}"
CommandParameter="{Binding Id}"/>
</Border.InputBindings>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding StatusAll}" VerticalAlignment="Center" Margin="0,0,5,0"/>
<CheckBox IsChecked="{Binding OnOffAll}" VerticalAlignment="Center" Margin="0,0,5,0"/>
<!--<ToggleButton Style="{StaticResource EgtCAM5_LampToggleButton}"
</Border.InputBindings>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding StatusAll}" VerticalAlignment="Center" Margin="0,0,5,0"/>
<CheckBox IsChecked="{Binding OnOffAll}" VerticalAlignment="Center" Margin="0,0,5,0"/>
<!--<ToggleButton Style="{StaticResource EgtCAM5_LampToggleButton}"
IsChecked="{Binding OnOffAll}" Visibility="{Binding IsHidden}" Focusable="True" Height="15" Width="15" Margin="0,0,5,0"/>-->
<Image Source="{Binding Image}" Height="15" Margin="0,0,5,0"/>
<TextBlock Text="{Binding Name}" Foreground="White"
FontSize="15" FontWeight="SemiBold"/>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.Resources>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<!--<Interactivity:Interaction.Triggers>
<Image Source="{Binding Image}" Height="15" Margin="0,0,5,0"/>
<TextBlock Text="{Binding Name}" Foreground="White"
FontSize="15" FontWeight="SemiBold"/>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.Resources>
<!--<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>-->
<!--<Interactivity:Interaction.Triggers>
<Interactivity:EventTrigger EventName="MouseDoubleClick">
<Interactivity:InvokeCommandAction Command="{Binding OperationListDoubleClickCommand}"/>
</Interactivity:EventTrigger>
</Interactivity:Interaction.Triggers>-->
<!--<Interactivity:Interaction.Behaviors>
<!--<Interactivity:Interaction.Behaviors>
<EgtCAM5:ScrollIntoViewForListBox/>
</Interactivity:Interaction.Behaviors>-->
<ListBox.InputBindings>
<KeyBinding Key="Delete" Command="{Binding CancelOperationCommand}"/>
</ListBox.InputBindings>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Selector.IsSelectionActive" Value="False"/>
<Condition Property="IsSelected" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="Bd" Value="{StaticResource Item.SelectedActive.Background}"/>
<Setter Property="BorderBrush" TargetName="Bd" Value="{StaticResource Item.SelectedActive.Border}"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Selector.IsSelectionActive" Value="True"/>
<Condition Property="IsSelected" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="Bd" Value="{StaticResource Item.SelectedActive.Background}"/>
<Setter Property="BorderBrush" TargetName="Bd" Value="{StaticResource Item.SelectedActive.Border}"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="{Binding DuplicateMachMsg}"
Command="{Binding DuplicateMachCommand}"
IsEnabled="{Binding DuplicateCmd_IsEnabled}">
</MenuItem>
<MenuItem Header="{Binding MachToDbMsg}"
Command="{Binding MachToDbCommand}"
IsEnabled="{Binding MachToDb_IsEnabled}">
</MenuItem>
<MenuItem Header="{Binding RenameMsg}"
Command="{Binding RenameCommand}"
IsEnabled="{Binding Rename_IsEnabled}">
</MenuItem>
</ContextMenu>
</ListBox.ContextMenu>
<ListBox.Style>
<Style TargetType="ListBox">
<EventSetter Event="SelectionChanged" Handler="ItemsControl_SelectionChanged"/>
</Style>
</ListBox.Style>
</ListBox>
<ListBox.InputBindings>
<KeyBinding Key="Delete" Command="{Binding CancelOperationCommand}"/>
</ListBox.InputBindings>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Selector.IsSelectionActive" Value="False"/>
<Condition Property="IsSelected" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="Bd" Value="{StaticResource Item.SelectedActive.Background}"/>
<Setter Property="BorderBrush" TargetName="Bd" Value="{StaticResource Item.SelectedActive.Border}"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Selector.IsSelectionActive" Value="True"/>
<Condition Property="IsSelected" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="Bd" Value="{StaticResource Item.SelectedActive.Background}"/>
<Setter Property="BorderBrush" TargetName="Bd" Value="{StaticResource Item.SelectedActive.Border}"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="{Binding DuplicateMachMsg}"
Command="{Binding DuplicateMachCommand}"
IsEnabled="{Binding DuplicateCmd_IsEnabled}">
</MenuItem>
<MenuItem Header="{Binding MachToDbMsg}"
Command="{Binding MachToDbCommand}"
IsEnabled="{Binding MachToDb_IsEnabled}">
</MenuItem>
<MenuItem Header="{Binding RenameMsg}"
Command="{Binding RenameCommand}"
IsEnabled="{Binding Rename_IsEnabled}">
</MenuItem>
</ContextMenu>
</ListBox.ContextMenu>
<ListBox.Style>
<Style TargetType="ListBox">
<EventSetter Event="SelectionChanged" Handler="ItemsControl_SelectionChanged"/>
</Style>
</ListBox.Style>
</ListBox>
<UniformGrid Rows="1">
<Button Content="{Binding MoveUpMsg}" Command="{Binding MoveUpCommand}" Height="30" IsEnabled="{Binding MoveUp_IsEnabled}" />
<Button Content="{Binding MoveDownMsg}" Command="{Binding MoveDownCommand}" Height="30" IsEnabled="{Binding MoveDown_IsEnabled}"/>
<Button Content="{Binding UpdateMsg}" Command="{Binding UpdateCommand}" Height="30"/>
<Button Content="{Binding SetUpMsg}" Command="{Binding SetUpCommand}" Height="30"/>
</UniformGrid>
<UniformGrid Grid.Row="2" Rows="1">
<Button Content="{Binding MoveUpMsg}" Command="{Binding MoveUpCommand}" Height="30" IsEnabled="{Binding MoveUp_IsEnabled}" />
<Button Content="{Binding MoveDownMsg}" Command="{Binding MoveDownCommand}" Height="30" IsEnabled="{Binding MoveDown_IsEnabled}"/>
<Button Content="{Binding UpdateMsg}" Command="{Binding UpdateCommand}" Height="30"/>
<Button Content="{Binding SetUpMsg}" Command="{Binding SetUpCommand}" Height="30"/>
</UniformGrid>
</StackPanel>
</Expander>
</StackPanel>
</Grid>
</Expander>
</UserControl>
@@ -85,6 +85,7 @@ Public Class OperationsListExpanderVM
If value <> m_ListIsExpanded Then
Map.refMachiningOptionPanelVM.Set_IsExpanded(MachiningOptionPanelVM.MachiningOptionPanelExpander.OPERATIONLIST, value)
SetStatusOnLamp()
Map.refMachiningOptionPanelVM.SetOperationsListRowIsExpanded(value)
End If
End Set
End Property
@@ -469,8 +470,11 @@ Public Class OperationsListExpanderVM
If EgtGetOperationType(selOperation.Id) <> MCH_OY.DISP Then
Map.refMachiningParameterExpanderVM.SetSliderScale(EgtGetPreviewMachiningToolStepCount())
Map.refMachiningParameterExpanderVM.ResetSliderValue()
EgtDraw()
End If
End If
Map.refMachiningOptionPanelVM.SetOperationsListRowIsExpanded(False)
End Sub
#End Region ' OperationListDoubleClickCommand
@@ -650,20 +654,17 @@ Public Class OperationsListExpanderVM
Dim sErr As String = String.Empty
Dim bOk As Boolean = EgtApplyAllMachinings(bRecalc, False, sErr)
EgtSetModified()
' Deseleziono l'Operazione selezionata e la de-evidenzio nel Disegno
' Aggiorno geometrie di lavorazione selezionate e marcate
m_ForceDrawInIsSelected = False
For Each Operation In OperationList
If Operation.IsSelected Then
Operation.IsSelected = False
Operation.IsSelected = True
End If
Next
' Ricarico la lista delle Operazioni
LoadOperationList(GDB_ID.NULL)
' Rimetto le lampadine in modo corretto
tmpStatusLamp.UpdateStatusLamp()
m_ForceDrawInIsSelected = True
' Aggiorno visualizzazione e ritorno a cursore standard
EgtDraw()
' Ripristino cursore
Application.Current.MainWindow.ForceCursor = False
Application.Current.MainWindow.Cursor = Cursors.Arrow
' In caso di errori, li segnalo
@@ -1301,8 +1302,11 @@ Public Class OperationsListExpanderVM
' Annullo creazione nuova lavorazione
If m_NewMachining Then EndNewMachining(GDB_ID.NULL)
' Disabilito visualizzazione utensile
If Not IsNothing(m_MachiningParameterExpander) Then
Map.refMachiningParameterExpanderVM.SetViewTool(False)
If Not IsNothing(Map.refMachiningParameterExpanderVM) Then
Map.refMachiningParameterExpanderVM.SetPreviewMachiningTool(MCH_LOOK.NONE)
Map.refMachiningParameterExpanderVM.SetSlider_IsEnable(False)
Map.refMachiningParameterExpanderVM.ResetSliderValue()
EgtRemovePreviewMachiningTool()
End If
' Deseleziono le operazioni correnti per eliminare il mark
For Each Operation In OperationList
@@ -20,6 +20,7 @@ Public Class SimulationExpanderVM
Map.refOperationsListExpanderVM.StatusLampList.Clear()
Dim tmpStatusLamp As New StatusLamp()
Map.refOperationsListExpanderVM.StatusLampList = tmpStatusLamp.LoadStatusLamp()
Map.refMachiningOptionPanelVM.SetOperationsListRowIsExpanded(False)
End If
End Set
End Property
@@ -448,7 +449,7 @@ Public Class SimulationExpanderVM
sInfo = "EgtCAM5 ver." & Map.refMainWindowVM.Version() & " - " & sCurrFilePath
#End If
If EgtGetInfo(EgtGetCurrMachGroup(), KEY_MCHGRP_NCNAME, sCncFile) AndAlso Not String.IsNullOrWhiteSpace(sCncFile) Then
sCncFile = Path.GetDirectoryName(sCurrFilePath) & "\" & sCncFile
sCncFile = Path.GetDirectoryName(sCurrFilePath) & "\" & Path.GetFileName(sCncFile)
Else
sCncFile = Path.ChangeExtension(sCurrFilePath, Nothing)
If IniFile.m_bMachiningGroup Then
+21 -8
View File
@@ -1,24 +1,37 @@
<UserControl x:Class="MachiningOptionPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="250"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5">
<StackPanel Name="ciao" Background="Transparent" Margin="0,0,3.5001,0" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}">
<Grid x:Name="MachiningGrid" Background="Transparent" MaxHeight="{Binding MaxHeight,RelativeSource={RelativeSource AncestorType={x:Type EgtFloating:EgtFloatingPanel}}}">
<Grid.RowDefinitions>
<RowDefinition MinHeight="100" Height="400" MaxHeight="800"
EgtCAM5:MachiningOptionPanelVM.IsExpanded="{Binding OperationsListRowIsExpanded}"
EgtCAM5:MachiningOptionPanelVM.TargetSplitter="{Binding ElementName=MachiningGridSplitter}"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--ContentPresenter that contains the OperationsListExpander-->
<ContentPresenter Content="{Binding OperationsListExpander,Mode=OneWay}"/>
<GridSplitter Name="MachiningGridSplitter" Style="{StaticResource General_GridSplitter}"/>
<!--ContentPresenter that contains the OperationParametersExpander-->
<ContentPresenter Content="{Binding OperationParametersExpander,Mode=OneWay}"/>
<ContentPresenter Grid.Row="1" Content="{Binding OperationParametersExpander,Mode=OneWay}"/>
<!--ContentPresenter that contains the MachiningsTreeExpander-->
<ContentPresenter Content="{Binding MachiningsTreeExpander}"/>
<ContentPresenter Grid.Row="2" Content="{Binding MachiningsTreeExpander}"/>
<!--ContentPresenter that contains the SimulationExpander-->
<ContentPresenter Content="{Binding SimulationExpander}"/>
<ContentPresenter Grid.Row="3" Content="{Binding SimulationExpander}"/>
<!--ContentPresenter that contains the EstimationsExpander-->
<ContentPresenter Content="{Binding EstimationsExpander}"/>
<ContentPresenter Grid.Row="4" Content="{Binding EstimationsExpander}"/>
<Button Content="{Binding GenerateMsg}" Height="30"
<Button Grid.Row="5"
Content="{Binding GenerateMsg}" Height="30"
IsEnabled="{Binding GenerateIsEnabled}"
Command="{Binding GenerateCommand}"/>
</StackPanel>
</Grid>
</UserControl>
+20 -2
View File
@@ -1,7 +1,25 @@
Public Class MachiningOptionPanelV
Private Sub Me_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
Dim x = ciao.MaxHeight
Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Map.SetRefMachiningOptionPanelV(Me)
If Not IsActivePlugin() Then
AddHandler MachiningGrid.Loaded,
Sub()
DynamicGridModule.RestoreMachiningGridLayout(MachiningGrid, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_MACHINING_PLUGIN, DynamicGridModule.PROJECT_MACHINING))
MachiningGrid.UpdateLayout()
End Sub
AddHandler MachiningGridSplitter.DragCompleted,
Sub()
DynamicGridModule.SaveMachiningGridLayout(MachiningGrid, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_MACHINING_PLUGIN, DynamicGridModule.PROJECT_MACHINING))
End Sub
End If
End Sub
End Class
+75
View File
@@ -1,4 +1,5 @@
Imports EgtUILib
Imports System.IO
Public Class MachiningOptionPanelVM
Inherits ViewModelBase
@@ -132,6 +133,17 @@ Public Class MachiningOptionPanelVM
End Get
End Property
Private m_OperationsListRowIsExpanded As Boolean = True
Public ReadOnly Property OperationsListRowIsExpanded As Boolean
Get
Return m_OperationsListRowIsExpanded
End Get
End Property
Friend Sub SetOperationsListRowIsExpanded(value As Boolean)
m_OperationsListRowIsExpanded = value
OnPropertyChanged("OperationsListRowIsExpanded")
End Sub
#Region "Messages"
Public ReadOnly Property GenerateMsg As String
@@ -195,4 +207,67 @@ Public Class MachiningOptionPanelVM
#End Region ' COMMANDS
#Region "DEPENCY PROPERTY"
Public Shared ReadOnly IsExpandedProperty As DependencyProperty =
DependencyProperty.RegisterAttached(
"IsExpanded",
GetType(Boolean),
GetType(MachiningOptionPanelVM),
New PropertyMetadata(True, AddressOf OnIsExpandedChanged)
)
Public Shared Sub SetIsExpanded(element As DependencyObject, value As Boolean)
element.SetValue(IsExpandedProperty, value)
End Sub
Public Shared Function GetIsExpanded(element As DependencyObject) As Boolean
Return CType(element.GetValue(IsExpandedProperty), Boolean)
End Function
Public Shared Function GetTargetSplitter(d As DependencyObject) As GridSplitter
Return CType(d.GetValue(TargetSplitterProperty), GridSplitter)
End Function
Public Shared Sub SetTargetSplitter(d As DependencyObject, value As GridSplitter)
d.SetValue(TargetSplitterProperty, value)
End Sub
Public Shared ReadOnly TargetSplitterProperty As DependencyProperty =
DependencyProperty.RegisterAttached(
"TargetSplitter",
GetType(GridSplitter),
GetType(MachiningOptionPanelVM),
New PropertyMetadata(Nothing)
)
Private Shared Sub OnIsExpandedChanged(d As DependencyObject, e As DependencyPropertyChangedEventArgs)
Dim row As RowDefinition = TryCast(d, RowDefinition)
If IsNothing(row) Then Return
Dim isExpanded As Boolean = CBool(e.NewValue)
Dim splitter = MachiningOptionPanelVM.GetTargetSplitter(row)
If Not IsNothing(splitter) Then
splitter.IsEnabled = isExpanded
splitter.Visibility = If(isExpanded, Visibility.Visible, Visibility.Collapsed)
End If
If Not isExpanded Then
row.ClearValue(RowDefinition.HeightProperty)
row.Height = New GridLength(1, GridUnitType.Auto)
row.MinHeight = 0
Else
If File.Exists(Map.refMainWindowVM.DimensionDir) Then
DynamicGridModule.RestoreMachiningGridLayout(Map.refMachiningOptionPanelV.MachiningGrid, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_MACHINING_PLUGIN, DynamicGridModule.PROJECT_MACHINING))
Map.refMachiningOptionPanelV.MachiningGrid.UpdateLayout()
Else
row.Height = New GridLength(350)
End If
End If
End Sub
#End Region ' Depency Property
End Class
+1 -1
View File
@@ -1,6 +1,6 @@
<EgtFloating:EgtFloatingPanel x:Class="OptionPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="250"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5"
TitleBarOrientation="Vertical"
Visibility="{Binding Panel_Visibility}">
+1
View File
@@ -60,6 +60,7 @@ Public Class OptionPanelVM
Map.refSimulationExpanderVM.Simulation_IsExpanded = False
Map.refEstimationsExpanderVM.Estimation_IsExpanded = False
End If
If Not IsNothing(Map.refManageLayerExpanderVM) Then Map.refManageLayerExpanderVM.SetManageLayerIsExpanded(True)
NotifyPropertyChanged("ModePanel")
End Sub
+1 -1
View File
@@ -13,7 +13,7 @@
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="DockPanel.Dock" Value="{Binding}" />
<Setter Property="DockPanel.Dock" Value="{Binding}"/>
</Style>
</ItemsControl.ItemContainerStyle>
+120 -24
View File
@@ -1,8 +1,10 @@
Imports System.Windows.Forms.Integration
Imports System.Windows.Interop
Imports System.Globalization
Imports System.IO
Imports System.Globalization
Imports System.Windows.Forms.Integration
Imports System.Windows.Interop
Imports System.Windows.Threading
Imports EgtUILib
Imports EgtUILib.EgtInterface
Imports EgtWPFLib5
Public Class ProjectVM
@@ -57,9 +59,15 @@ Public Class ProjectVM
End Get
End Property
Private m_DynamicGrid As New Grid()
Public ReadOnly Property DynamicGrid As Grid
Get
Return m_DynamicGrid
End Get
End Property
#End Region
#Region "EGTUILIB FIELDS"
Private m_bCPlaneTypePos As Boolean
@@ -79,6 +87,17 @@ Public Class ProjectVM
TMDbParamVisibility.bFirst = True
' Inizializza i parametri della scena
'InitializeEgtProject()
Dim m_TopTrayV As New TopTrayV
Dim m_LeftTrayV As New LeftTrayV
Dim m_RightTrayV As New RightTrayV
Dim m_BottomTrayV As New BottomTrayV
Dim m_SceneContentControlV As New SceneContentControlV
DynamicGridModule.CreateDynamicGrid()
Dim gridSplitter As GridSplitter = DynamicGridModule.CreateGridSplitter()
' aggiungo componenti interfaccia
Dim bPlugin As Boolean = False
Dim PluginDirNameList() As String = {}
@@ -105,12 +124,17 @@ Public Class ProjectVM
Dim ConfigurationData As IPluginConfigData = Map.refMainWindowVM.GetConfigData(Of IPluginConfigData)(PluginName & ".ConfigurationData")
If Not IsNothing(ConfigurationData) And ConfigurationData.ControlList.Count > 0 Then
For Each Element In ConfigurationData.ControlList
PopolateGridWithPlugIn(m_TopTrayV, m_RightTrayV, m_BottomTrayV, m_SceneContentControlV, gridSplitter)
Select Case Element.Name
Case PLUGIN_RIGHT_TRAY
m_PanelList.Add(New RightTrayV)
'm_PanelList.Add(New RightTrayV)
'aggiungo RightTrayV alla griglia
m_DynamicGrid.Children.Add(m_RightTrayV)
Map.refOptionPanelVM.SetPanelViewState(Element.ViewPanelState)
Case PLUGIN_LEFT_TRAY
m_PanelList.Add(New LeftTrayV)
'm_PanelList.Add(New LeftTrayV)
' aggiungo LeftTrayV alla griglia
m_DynamicGrid.Children.Add(m_LeftTrayV)
Case Else
m_PanelList.Add(Map.refMainWindowVM.GetControlByName(Of IPluginControl)(Element))
End Select
@@ -118,17 +142,43 @@ Public Class ProjectVM
End If
End If
Next
m_PanelList.Add(New BottomTrayV)
m_PanelList.Add(New TopTrayV)
'm_PanelList.Add(New BottomTrayV)
'm_PanelList.Add(New TopTrayV)
' aggiungo gridSplitter alla griglia
m_DynamicGrid.Children.Add(gridSplitter)
' aggiungo BottomTrayV alla griglia
m_DynamicGrid.Children.Add(m_BottomTrayV)
' aggiungo TopTrayV alla griglia
m_DynamicGrid.Children.Add(m_TopTrayV)
' nascondo tasti gestione progetto se attivo plugin
Map.refTopCommandBarVM.SetProjectManagerVisibility(False)
Else
m_PanelList.Add(New TopTrayV)
m_PanelList.Add(New LeftTrayV)
m_PanelList.Add(New RightTrayV)
m_PanelList.Add(New BottomTrayV)
'm_PanelList.Add(New TopTrayV)
'm_PanelList.Add(New LeftTrayV)
'm_PanelList.Add(New RightTrayV)
'm_PanelList.Add(New BottomTrayV)
DynamicGridModule.PopulateGrid(m_TopTrayV, m_LeftTrayV, m_RightTrayV, m_BottomTrayV, m_SceneContentControlV, gridSplitter)
' aggiungo TopTrayV alla griglia
m_DynamicGrid.Children.Add(m_TopTrayV)
' aggiungo LeftTrayV alla griglia
m_DynamicGrid.Children.Add(m_LeftTrayV)
' aggiungo gridSplitter alla griglia
m_DynamicGrid.Children.Add(gridSplitter)
' aggiungo RightTrayV alla griglia
m_DynamicGrid.Children.Add(m_RightTrayV)
' aggiungo BottomTrayV alla griglia
m_DynamicGrid.Children.Add(m_BottomTrayV)
End If
m_PanelList.Add(New SceneContentControlV)
'm_PanelList.Add(New SceneContentControlV)
' aggiungo SceneContentControlV alla griglia
m_DynamicGrid.Children.Add(m_SceneContentControlV)
' Carico le dimensioni salvate su ini se presenti
AddHandler m_DynamicGrid.Loaded,
Sub()
DynamicGridModule.RestoreGridLayout(If(IsActivePlugin(), DynamicGridModule.PROJECT_EGTCAM5_PLUGIN, DynamicGridModule.PROJECT_EGTCAM5))
m_DynamicGrid.UpdateLayout()
End Sub
m_PanelList.Add(m_DynamicGrid)
End Sub
#End Region
@@ -212,6 +262,27 @@ Public Class ProjectVM
Dim sOut As String = "Doors ver. " & sVersion & " " & IniFile.m_sDoorsDirPath
EgtOutLog(sOut)
End If
If IniFile.IsActiveWindow() Then
bExtensions = True
Dim sVersion As String = "---"
IniFile.GetSpecialLuaVersion(IniFile.m_sWindowDirPath, sVersion)
Dim sOut As String = "Window ver. " & sVersion & " " & IniFile.m_sWindowDirPath
EgtOutLog(sOut)
End If
If IniFile.IsActiveTrimming() Then
bExtensions = True
Dim sVersion As String = "---"
IniFile.GetSpecialLuaVersion(IniFile.m_sTrimmingDirPath, sVersion)
Dim sOut As String = "Trimming ver. " & sVersion & " " & IniFile.m_sTrimmingDirPath
EgtOutLog(sOut)
End If
If IniFile.IsActiveReversePost() Then
bExtensions = True
Dim sVersion As String = "---"
IniFile.GetSpecialLuaVersion(IniFile.m_sReversePostDirPath, sVersion)
Dim sOut As String = "ReversePost ver. " & sVersion & " " & IniFile.m_sReversePostDirPath
EgtOutLog(sOut)
End If
If IniFile.IsActiveGunStock() Then
bExtensions = True
Dim sVersion As String = "---"
@@ -366,9 +437,9 @@ Public Class ProjectVM
Dim nShowCurveDir As Integer = GetPrivateProfileInt(S_SCENE, K_CURVEDIR, 0)
Map.refShowPanelVM.ShowCurveDir(nShowCurveDir)
' qualità di visualizzazione delle superfici
OptionModule.SetShowSurfQuality( False)
OptionModule.SetShowSurfQuality(False)
' tipo visualizzazione per Zmap
EgtSetShowZmap( OptionModule.m_nShowZmapType, False)
EgtSetShowZmap(OptionModule.m_nShowZmapType, False)
' dimensione lineare max in pixel delle textures
Dim nTxrMaxLinPix As Integer = GetPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096)
EgtSetTextureMaxLinPixels(nTxrMaxLinPix)
@@ -1113,7 +1184,7 @@ Public Class ProjectVM
EgtGetPlaneSnapPoint(e.Location, Vector3d.Z_AX, TableRef.z, ptCurr)
DispositionUtility.VtHookFinder(nFixtureId, ptCurr)
Exit While
ElseIf DispositionUtility.VerifyTableAxis( nFixtureId) Then
ElseIf DispositionUtility.VerifyTableAxis(nFixtureId) Then
m_SelType = DispositionUtility.SelType.BARS
m_nIdToSel = nFixtureId
' Drag possibile
@@ -1211,7 +1282,7 @@ Public Class ProjectVM
m_nIdToDesel = GDB_ID.NULL
EgtDraw()
Return
' altrimenti verifico il tipo del primo oggetto selezionato
' altrimenti verifico il tipo del primo oggetto selezionato
Else
Dim nFirstSelId As Integer = EgtGetFirstSelectedObj()
' se è un riferimento resetto lo stato di selezione ed esco
@@ -1322,6 +1393,13 @@ Public Class ProjectVM
EgtDraw()
End If
End If
' Carico se presenti le dimensioni della griglia
Application.Current.Dispatcher.BeginInvoke(
Sub()
DynamicGridModule.RestoreDrawGridLayout(Map.refDrawOptionPanelV.DrawGrid, "ManageLayer", 0, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_DRAW_PLUGIN, DynamicGridModule.PROJECT_DRAW))
DynamicGridModule.RestoreDrawGridLayout(Map.refDrawOptionPanelV.DrawGrid, "Info", 1, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_DRAW_PLUGIN, DynamicGridModule.PROJECT_DRAW))
End Sub,
DispatcherPriority.Render)
End Sub
Private Sub OnMouseSelectedColor(ByVal sender As Object, ByVal nId As Integer) Handles m_ProjectScene.OnMouseSelectedColor
@@ -1378,7 +1456,7 @@ Public Class ProjectVM
m_Controller.MouseMoveInSelectionPoint(PtP)
End Sub
Private Sub OnMouseAnalyzedEx(sender As Object, nId As Integer, nSub As Integer, ptSel As Point3d) Handles m_ProjectScene.OnMouseAnalyzedEx
Private Sub OnMouseAnalyzedEx(sender As Object, nId As Integer, nSub As Integer, ptSel As Point3d, nModKey As Integer) Handles m_ProjectScene.OnMouseAnalyzedEx
Map.refManageLayerExpanderVM.UpdateObjInObjTree(nId)
Map.refManageLayerExpanderVM.SelectIdInObjTree(nId)
' Cancello geometria e info di eventuale precedente analisi
@@ -1392,16 +1470,14 @@ Public Class ProjectVM
' Se superficie trimesh, visualizzo dati faccetta toccata
ElseIf EgtGetType(nId) = GDB_TY.SRF_MESH Then
Dim nFac As Integer = EgtSurfTmFacetFromTria(nId, nSub)
If nFac <> -1 Then
If nFac >= 0 Then
' Visualizzo la normale e il contorno della faccia
Analyze.CreateAnalyzeGroup()
Analyze.CreateFacetNormal(nId, nFac)
Analyze.CreateFacetLoops(nId, nFac)
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
If nModKey = Scene.MODKEY.SHIFT Then
Analyze.CreateTriaLoop(nId, nSub)
End If
' Recupero i dati (in globale o griglia a seconda della impostazione)
Dim ptC As Point3d
Dim vtN As Vector3d
@@ -1413,8 +1489,7 @@ Public Class ProjectVM
" : C(" + LenToString(ptC.x, 3) + "," + LenToString(ptC.y, 3) + "," + LenToString(ptC.z, 3) + ")" +
" N(" + DoubleToString(vtN.x, 4) + "," + DoubleToString(vtN.y, 4) + "," + DoubleToString(vtN.z, 4) + ")" +
" / φ=" + DoubleToString(dPhi, 2) + " θ=" + DoubleToString(dTheta, 2)
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
If nModKey = Scene.MODKEY.SHIFT Then
sOut &= ", Triangle " + nSub.ToString()
End If
Map.refStatusBarVM.NotifyStatusOutput(sOut)
@@ -1440,6 +1515,25 @@ Public Class ProjectVM
" / φ=" + DoubleToString(dPhi, 2) + " θ=" + DoubleToString(dTheta, 2)
Map.refStatusBarVM.NotifyStatusOutput(sOut)
End If
' Se Superficie di Bezier
ElseIf EgtGetType(nId) = GDB_TY.SRF_BEZ Then
' Visualizzo il punto selezionato, la normale e le tangenti nelle direzioni dei parametri
Analyze.CreateAnalyzeGroup()
Dim dU, dV As Double
Dim vtN As Vector3d
If Analyze.CreateSBzPointNormalAndTangents(nId, ptSel, dU, dV, vtN) Then
Dim dLen, dPhi, dTheta As Double
vtN.ToSpherical(dLen, dTheta, dPhi)
' Emetto info sulla barra di stato
Dim sOut As String = "U=" + DoubleToString(dU, 4) + ",V=" + DoubleToString(dV, 4) +
" : P(" + LenToString(ptSel.x, 3) + "," + LenToString(ptSel.y, 3) + "," + LenToString(ptSel.z, 3) + ")" +
" N(" + DoubleToString(vtN.x, 4) + "," + DoubleToString(vtN.y, 4) + "," + DoubleToString(vtN.z, 4) + ")" +
" / φ=" + DoubleToString(dPhi, 2) + " θ=" + DoubleToString(dTheta, 2)
Map.refStatusBarVM.NotifyStatusOutput(sOut)
If nModKey = Scene.MODKEY.SHIFT Then
Analyze.CreateSBzIsoParam(nId, dU, dV)
End If
End If
End If
' Aggiorno la visualizzazione
EgtDraw()
@@ -1454,6 +1548,8 @@ Public Class ProjectVM
If e.KeyData = System.Windows.Forms.Keys.Delete AndAlso Map.refTopCommandBarVM.DrawIsChecked Then
m_Controller.SetLastInteger(GDB_ID.SEL)
m_Controller.ExecuteCommand(Controller.CMD.DELETE)
' controllo per chiudere expander info
If Not Map.refInfoExpanderVM.IsEnabled Then Map.refDrawOptionPanelV.DrawGrid.RowDefinitions(1).Height = New GridLength(1, GridUnitType.Auto)
' Con END eseguo deselezione di tutto
ElseIf e.KeyData = System.Windows.Forms.Keys.End Then
m_Controller.MouseDeselectedAll(True)
Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

+2 -1
View File
@@ -2,6 +2,7 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:EgtCAM5"
DockPanel.Dock="Right">
DockPanel.Dock="Right"
Margin="1,0,0,0">
<local:OptionPanelV DataContext="{StaticResource OptionPanelViewModel}"/>
</Grid>
+6 -2
View File
@@ -1,4 +1,5 @@
Imports System.IO
Imports System.Windows.Threading
Imports EgtUILib
Public Class SpecialPanelVM
@@ -32,10 +33,10 @@ Public Class SpecialPanelVM
Map.SetRefSpecialPanelVM(Me)
' se attivo, inizializzo i bottoni leggendoli da file ini
If IniFile.IsActiveSpecialPanel(False) Then
Dim BtlIndexMax As Integer = If( IniFile.m_nUserLevel > 5, 199, 99)
Dim BtlIndexMax As Integer = If(IniFile.m_nUserLevel > 5, 199, 99)
For BtnIndex As Integer = 1 To BtlIndexMax
Dim CurrBtn As ButtonListItem = Nothing
If GetPrivateProfileButton(S_SPECIAL, K_BUTTON & BtnIndex, "", CurrBtn)Then
If GetPrivateProfileButton(S_SPECIAL, K_BUTTON & BtnIndex, "", CurrBtn) Then
m_ButtonList.Add(CurrBtn)
End If
Next
@@ -191,6 +192,9 @@ Public Class ButtonItem
Map.refProjectVM.PreExecScript(False)
Map.refProjectVM.ExecScript(m_sLuaCmdPath, bRaiseEvent)
m_sCurrBarName = Nothing
' Carico se presenti le dimensioni della griglia
DynamicGridModule.RestoreDrawGridLayout(Map.refDrawOptionPanelV.DrawGrid, "ManageLayer", 0, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_DRAW_PLUGIN, DynamicGridModule.PROJECT_DRAW))
DynamicGridModule.RestoreDrawGridLayout(Map.refDrawOptionPanelV.DrawGrid, "Info", 1, If(IniFile.IsActivePlugin(), DynamicGridModule.PROJECT_DRAW_PLUGIN, DynamicGridModule.PROJECT_DRAW))
End Sub
Private Shared Sub OnPreControllerExec(sFilePath As String) Handles m_ProjectVM.OnPreControllerExec
+3 -1
View File
@@ -811,6 +811,7 @@ Public Class TopCommandBarVM
Map.refDoorPanelVM.SetDoorPanelVisibility(IniFile.IsActiveDoors())
Map.refWindowPanelVM.SetWindowPanelVisibility(IniFile.IsActiveWindow())
Map.refTrimmingPanelVM.SetTrimmingPanelVisibility(IniFile.IsActiveTrimming())
Map.refReversePostPanelVM.SetReversePostPanelVisibility(IniFile.IsActiveReversePost())
Map.refGunStockPanelVM.SetGunStockPanelVisibility(IniFile.IsActiveGunStock())
If Not IsNothing(Map.refDrawPanelVM) Then Map.refDrawPanelVM.SetDrawPanelVisibility(True)
Map.refMachGroupPanelVM.SetMachGroupPanelVisibility(False)
@@ -860,7 +861,8 @@ Public Class TopCommandBarVM
Map.refBeamWallPanelVM.SetBeamWallPanelVisibility(False)
Map.refDoorPanelVM.SetDoorPanelVisibility(IniFile.IsActiveDoors())
Map.refWindowPanelVM.SetWindowPanelVisibility(False)
Map.refTrimmingPanelVM.SettrimmingPanelVisibility(False)
Map.refTrimmingPanelVM.SetTrimmingPanelVisibility(False)
Map.refReversePostPanelVM.SetReversePostPanelVisibility(False)
Map.refGunStockPanelVM.SetGunStockPanelVisibility(False)
If Not IsNothing(Map.refDrawPanelVM) Then Map.refDrawPanelVM.SetDrawPanelVisibility(False)
Map.refMachGroupPanelVM.SetMachGroupPanelVisibility(IniFile.m_bMachiningGroup)
+1 -1
View File
@@ -32,7 +32,7 @@
<local:DoorPanelV DataContext="{StaticResource DoorsPanelViewModel}"/>
<local:WindowPanelV DataContext="{StaticResource WindowPanelViewModel}"/>
<local:TrimmingPanelV DataContext="{StaticResource TrimmingPanelViewModel}"/>
<local:TrimmingPanelV DataContext="{StaticResource ReversePostPanelViewModel}"/>
<local:ReversePostPanelV DataContext="{StaticResource ReversePostPanelViewModel}"/>
<local:GunStockPanelV DataContext="{StaticResource GunStockPanelViewModel}"/>
<local:SpecialPanelV DataContext="{StaticResource SpecialPanelViewModel}"/>
+59 -8
View File
@@ -1,4 +1,5 @@
Imports EgtUILib
Imports System.Data
Imports EgtUILib
Module Analyze
@@ -109,26 +110,26 @@ Module Analyze
If m_AnaGrpId = GDB_ID.NULL Then Return False
Dim bEnMod As Boolean = EgtGetEnableModified()
EgtDisableModified()
'Riferimento della griglia corrente
' Salvo riferimento della griglia corrente
Dim refGrid As Frame3d = EgtGetGridFrame()
'Nuovo riferimento griglia con Z come versore estrusione della curva
' Nuovo riferimento griglia con Z come versore estrusione della curva
Dim vtExtr As Vector3d : EgtCurveExtrusion( nId, vtExtr)
If Not vtExtr.IsSmall() Then
Dim refCrv As New Frame3d : refCrv.Setup( EgtGetGridOrigin(), vtExtr)
EgtSetGridFrame( refCrv)
End If
'Recupero il numero di curve semplici
' Recupero il numero di curve semplici
Dim dStart, dEnd As Double
EgtCurveDomain( nId, dStart, dEnd)
Dim nCount As Integer = CInt( dEnd - dStart) - 1
' Ciclo sulle curve semplici
For i As Integer = 0 To nCount
'Scrivo il punto iniziale di ogni curva componente
' Scrivo il punto iniziale di ogni curva componente
Dim ptS As Point3d
EgtAtParamPoint( nId, i, GDB_ID.GRID, ptS)
Dim nPntId As Integer = EgtCreateGeoPoint( m_AnaGrpId, ptS, GDB_RT.GRID)
EgtSetColor( nPntId, New Color3d( 255, 0,0))
'Scrivo il numero identificativo di ogni curva componente
' Scrivo il numero identificativo di ogni curva componente
Dim ptP As Point3d
EgtAtParamPoint( nId, i + 0.5, GDB_ID.GRID, ptP)
Dim dLen As Double = 2 * Point3d.Dist( ptS, ptP)
@@ -136,17 +137,67 @@ Module Analyze
Dim nTxtId As Integer = EgtCreateTextAdv( m_AnaGrpId, ptP, 0, i.ToString(), "", 100, False, dH, 1, 0, INS_POS.MC, GDB_RT.GRID)
EgtSetColor( nTxtId, New Color3d( 255, 0,0))
Next
'Se curva aperta aggiungo il punto finale
' Se curva aperta aggiungo il punto finale
If Not EgtCurveIsClosed( nId) Then
Dim ptE As Point3d
EgtEndPoint( nId, GDB_ID.GRID, ptE)
Dim nPntId As Integer = EgtCreateGeoPoint( m_AnaGrpId, ptE, GDB_RT.GRID)
EgtSetColor( nPntId, New Color3d( 255, 0,0))
End If
'Reimposto il riferimento originale alla griglia
' Reimposto il riferimento originale alla griglia
EgtSetGridFrame( refGrid)
If bEnMod Then EgtEnableModified()
Return True
End Function
Function CreateSBzPointNormalAndTangents( nId As Integer, ptBez As Point3d, ByRef dU As Double, ByRef dV As Double, ByRef vtN As Vector3d) As Boolean
Dim ptP As Point3d
Dim vtDirU, vtDirV As Vector3d
Dim bOk As Boolean = EgtSurfBezierParamsFromPoint( nId, ptBez, GDB_ID.ROOT, dU, dV) AndAlso
EgtSurfBezierGetPointNrmD1( nId, dU, dV, SRF_SIDE.FROM_MINUS, SRF_SIDE.FROM_MINUS, GDB_ID.ROOT,
ptP, vtN, vtDirU, vtDirV)
If bOk AndAlso m_AnaGrpId <> GDB_ID.NULL Then
Dim bEnMod As Boolean = EgtGetEnableModified()
EgtDisableModified()
' Disegno Punto
Dim nPntId As Integer = EgtCreateGeoPoint( m_AnaGrpId, ptBez, GDB_RT.GLOB)
EgtSetColor( nPntId, New Color3d( 255, 0, 0))
EgtSetStatus( nPntId, GDB_ST.SEL)
' Disegno Vettore Normale
Dim nNormId As Integer = EgtCreateGeoVector( m_AnaGrpId, 50 * vtN, ptBez, GDB_RT.GLOB)
EgtSetColor( nNormId, New Color3d( 255, 0, 0))
EgtSetStatus( nNormId, GDB_ST.SEL)
' Disegno tangente in U
Dim dModU As Double = vtDirU.Len()
If dModU > EPS_ZERO Then
Dim nTgUId As Integer = EgtCreateGeoVector( m_AnaGrpId, 25 / dModU * vtDirU, ptBez, GDB_RT.GLOB)
EgtSetColor( nTgUId, New Color3d( 0, 128, 192))
EgtSetStatus( nTgUId, GDB_ST.SEL)
End If
' Disegno tangente in V
Dim dModV As Double = vtDirV.Len()
If dModV > EPS_ZERO Then
Dim nTgVId As Integer = EgtCreateGeoVector( m_AnaGrpId, 25 / dModV * vtDirV, ptBez, GDB_RT.GLOB)
EgtSetColor( nTgVId, New Color3d( 255, 128, 0))
EgtSetStatus( nTgVId, GDB_ST.SEL)
End If
If bEnMod Then EgtEnableModified()
End If
Return bOk
End Function
Function CreateSBzIsoParam( nId As Integer, ByRef dU As Double, ByRef dV As Double) As Boolean
If m_AnaGrpId = GDB_ID.NULL Then Return False
Dim bEnMod As Boolean = EgtGetEnableModified()
EgtDisableModified()
Dim nCrvUId As Integer = EgtSurfBezierGetCurveU( nId, dV, m_AnaGrpId)
EgtSetColor( nCrvUId, New Color3d( 0, 128, 192))
EgtSetStatus( nCrvUId, GDB_ST.SEL)
Dim nCrvVId As Integer = EgtSurfBezierGetCurveV( nId, dU, m_AnaGrpId)
EgtSetColor( nCrvVId, New Color3d( 255, 128, 0))
EgtSetStatus( nCrvVId, GDB_ST.SEL)
If bEnMod Then EgtEnableModified()
Return ( nCrvUId <> GDB_ID.NULL And nCrvVId <> GDB_ID.NULL)
End Function
End Module
+24 -3
View File
@@ -41,8 +41,6 @@
<EgtCAM5:ReversePostPanelVM x:Key="ReversePostPanelViewModel"/>
<EgtCAM5:GunStockPanelVM x:Key="GunStockPanelViewModel"/>
<EgtCAM5:MyMachGroupPanelVM x:Key="MachGroupPanelViewModel"/>
<!--<EgtCAM5:MachGroupPanelVM x:Key="MachGroupPanelViewModel"/>-->
<!--<EgtCAM5:OperationExpanderVM x:Key="OperationExpanderViewModel"/>-->
<!--
This template applies a StatusBarView to an instance
@@ -144,6 +142,13 @@
</Setter>
</Style>
<Style x:Key="PreviewTool_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Width" Value="30"/>
<Setter Property="Height" Value="30"/>
<Setter Property="IsDefault" Value="True"/>
</Style>
<!-- ______________________________________________________________________________________________________________________________________________ -->
<!-- Expander Style -->
@@ -789,6 +794,8 @@
<Style x:Key="ExecuteWindow_TextBox" TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="AcceptsReturn" Value="True"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="FontFamily" Value="Consolas"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Margin" Value="5"/>
</Style>
@@ -1270,9 +1277,12 @@
<!-- Style Slider -->
<Style x:Key="SliderValue_Slider" TargetType="{x:Type Slider}">
<Setter Property="Width" Value="235"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Width" Value="Auto"/>
<Setter Property="SmallChange" Value="1"/>
<Setter Property="TickPlacement" Value="TopLeft"/>
<Setter Property="Margin" Value="1,2,0,2"/>
<Setter Property="IsSnapToTickEnabled" Value="False"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5"/>
@@ -1315,4 +1325,15 @@
<Setter Property="CornerRadius" Value="1"/>
</Style>
<!-- ______________________________________________________________________________________________________________________________________________ -->
<!-- Style GridSplitter-->
<Style x:Key="General_GridSplitter" TargetType="{x:Type GridSplitter}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Bottom"/>
<Setter Property="Height" Value="5"/>
</Style>
</ResourceDictionary>
+244
View File
@@ -0,0 +1,244 @@
Imports EgtWPFLib5
Module DynamicGridModule
Friend Const PROJECT_EGTCAM5 As String = "Project_EgtCAM5"
Friend Const PROJECT_EGTCAM5_PLUGIN As String = "Project_EgtCAM5_PlugIn"
Friend Const PROJECT_MACHINING As String = "Project_Machinig"
Friend Const PROJECT_MACHINING_PLUGIN As String = "Project_Machinig_PlugIn"
Friend Const PROJECT_DRAW As String = "Project_Draw"
Friend Const PROJECT_DRAW_PLUGIN As String = "Project_Draw_PlugIn"
''' <summary>
''' Funzione per popolare la griglia
''' </summary>
''' <param name="m_TopTrayV"></param>
''' <param name="m_LeftTrayV"></param>
''' <param name="m_RightTrayV"></param>
''' <param name="m_BottomTrayV"></param>
''' <param name="m_SceneContentControlV"></param>
''' <param name="gridSplitter"></param>
Friend Sub PopulateGrid(m_TopTrayV As TopTrayV, m_LeftTrayV As LeftTrayV, m_RightTrayV As RightTrayV, m_BottomTrayV As BottomTrayV, m_SceneContentControlV As SceneContentControlV, gridSplitter As GridSplitter)
' aggiungo TopTrayV
Grid.SetRow(m_TopTrayV, 0)
Grid.SetColumnSpan(m_TopTrayV, 3)
' aggiungo LeftTrayV
Grid.SetRow(m_LeftTrayV, 1)
Grid.SetColumn(m_LeftTrayV, 0)
' aggiungo RightTrayV
Grid.SetRow(m_RightTrayV, 1)
Grid.SetColumn(m_RightTrayV, 2)
'aggiungo gridSplitter
Grid.SetRow(gridSplitter, 1)
Grid.SetColumn(gridSplitter, 2)
' aggiungo BottomTrayV
Grid.SetRow(m_BottomTrayV, 2)
Grid.SetColumn(m_BottomTrayV, 1)
' aggiungo Scena
Grid.SetRow(m_SceneContentControlV, 1)
Grid.SetColumn(m_SceneContentControlV, 1)
End Sub
''' <summary>
''' Funzione per popolare la griglia con PlugIn
''' </summary>
''' <param name="m_TopTrayV"></param>
''' <param name="m_RightTrayV"></param>
''' <param name="m_BottomTrayV"></param>
''' <param name="m_SceneContentControlV"></param>
''' <param name="gridSplitter"></param>
Friend Sub PopolateGridWithPlugIn(m_TopTrayV As TopTrayV, m_RightTrayV As RightTrayV, m_BottomTrayV As BottomTrayV, m_SceneContentControlV As SceneContentControlV, gridSplitter As GridSplitter)
' aggiungo TopTrayV
Grid.SetRow(m_TopTrayV, 0)
Grid.SetColumn(m_TopTrayV, 1)
' aggiungo RightTrayV
Grid.SetRow(m_RightTrayV, 0)
Grid.SetColumn(m_RightTrayV, 2)
'aggiungo gridSplitter
Grid.SetRow(gridSplitter, 0)
Grid.SetColumn(gridSplitter, 2)
' aggiungo BottomTrayV
Grid.SetRow(m_BottomTrayV, 2)
Grid.SetColumn(m_BottomTrayV, 1)
' aggiungo Scena
Grid.SetRow(m_SceneContentControlV, 1)
Grid.SetColumn(m_SceneContentControlV, 1)
End Sub
''' <summary>
''' Creazione GridSplitter
''' </summary>
''' <returns></returns>
Friend Function CreateGridSplitter() As GridSplitter
' creo gridsplitter
Dim gridSplitter As New GridSplitter With {
.Width = 30,
.HorizontalAlignment = HorizontalAlignment.Left,
.VerticalAlignment = VerticalAlignment.Stretch,
.Background = Brushes.Transparent
}
AddHandler gridSplitter.DragCompleted,
Sub()
SaveGridLayout(If(IsActivePlugin(), PROJECT_EGTCAM5_PLUGIN, PROJECT_EGTCAM5))
End Sub
Return gridSplitter
End Function
''' <summary>
''' Creazione Griglia Dinamica
''' </summary>
Friend Sub CreateDynamicGrid()
' creo colonne griglia dinamica
Dim gridCol1 As New ColumnDefinition With {
.Width = New GridLength(1, GridUnitType.Auto)
}
Dim gridCol2 As New ColumnDefinition With {
.Width = New GridLength(1, GridUnitType.Star)
}
Dim gridCol3 As New ColumnDefinition With {
.Width = New GridLength(250),
.MinWidth = 150
}
' aggiungo le colonne alla griglia
Map.refProjectVM.DynamicGrid.ColumnDefinitions.Add(gridCol1)
Map.refProjectVM.DynamicGrid.ColumnDefinitions.Add(gridCol2)
Map.refProjectVM.DynamicGrid.ColumnDefinitions.Add(gridCol3)
' creo righe griglia dinamica
Dim gridRow1 As New RowDefinition With {
.Height = New GridLength(1, GridUnitType.Auto)
}
Dim gridRow2 As New RowDefinition With {
.Height = New GridLength(1, GridUnitType.Star)
}
Dim gridRow3 As New RowDefinition With {
.Height = New GridLength(1, GridUnitType.Auto)
}
' aggiungo righe alla griglia
Map.refProjectVM.DynamicGrid.RowDefinitions.Add(gridRow1)
Map.refProjectVM.DynamicGrid.RowDefinitions.Add(gridRow2)
Map.refProjectVM.DynamicGrid.RowDefinitions.Add(gridRow3)
End Sub
Friend Sub SaveGridLayout(GridTitle As String)
Dim Index As Integer = 0
' Salvo colonna 2
Dim valueCol2 As String = 0 & "," & 0 & "," & Map.refProjectVM.DynamicGrid.ColumnDefinitions(2).ActualWidth.ToString()
EgtUILib.WritePrivateProfileString(GridTitle, Index.ToString(), valueCol2, Map.refMainWindowVM.DimensionDir)
Index = 1
For i As Integer = 1 To Map.refProjectVM.DynamicGrid.RowDefinitions.Count - 1
Dim row = Map.refProjectVM.DynamicGrid.RowDefinitions(i)
Dim value As String = i.ToString() & "," & 1 & "," & row.ActualHeight.ToString()
EgtUILib.WritePrivateProfileString(GridTitle, Index.ToString(), value, Map.refMainWindowVM.DimensionDir)
Index += 1
Next
End Sub
Friend Sub RestoreGridLayout(GridTitle As String)
Dim Index As Integer = 0
Dim IndexRow As Integer = 1
Dim sValue = String.Empty
While EgtUILib.GetPrivateProfileString(GridTitle, Index.ToString(), String.Empty, sValue, Map.refMainWindowVM.DimensionDir) > 0
Dim sValueParams() As String = sValue.Split(","c)
If sValueParams.Count >= 3 Then
' cancello spazi
For I As Integer = 0 To sValueParams.Count - 1
sValueParams(I) = sValueParams(I).Trim()
Next
' creo valore
Dim nDimType As Integer
Dim GridLenValue As Double
Integer.TryParse(sValueParams(1), nDimType)
StringToDoubleAdv(sValueParams(2), GridLenValue)
If nDimType = 0 Then
Map.refProjectVM.DynamicGrid.ColumnDefinitions(2).Width = New GridLength(GridLenValue, GridUnitType.Pixel)
Else
Map.refProjectVM.DynamicGrid.RowDefinitions(IndexRow).Height = If(GridLenValue = 0, New GridLength(1, GridUnitType.Auto), New GridLength(GridLenValue, GridUnitType.Star))
IndexRow += 1
End If
End If
Index += 1
End While
End Sub
Friend Sub SaveMachiningGridLayout(MachGrid As Grid, GridTitle As String)
Dim Index As Integer = 0
' Salvo riga 0
Dim valueRow As String = Index & "," & Index & "," & MachGrid.RowDefinitions(Index).ActualHeight.ToString()
EgtUILib.WritePrivateProfileString(GridTitle, Index.ToString(), valueRow, Map.refMainWindowVM.DimensionDir)
End Sub
Friend Sub RestoreMachiningGridLayout(MachGrid As Grid, GridTitle As String)
Dim Index As Integer = 0
Dim sValue = String.Empty
While EgtUILib.GetPrivateProfileString(GridTitle, Index.ToString(), String.Empty, sValue, Map.refMainWindowVM.DimensionDir) > 0
Dim sValueParams() As String = sValue.Split(","c)
If sValueParams.Count >= 3 Then
' cancello spazi
For I As Integer = 0 To sValueParams.Count - 1
sValueParams(I) = sValueParams(I).Trim()
Next
' creo valore
Dim GridLenValue As Double
StringToDoubleAdv(sValueParams(2), GridLenValue)
MachGrid.RowDefinitions(0).Height = New GridLength(GridLenValue)
End If
Index += 1
End While
End Sub
Friend Sub SaveDrawGridLayout(MachGrid As Grid, RowId As String, GridTitle As String)
Dim Index As Integer = 0
Dim valueRow As String = String.Empty
' Salvo riga 0
If RowId = "ManageLayer" Then
valueRow = Index & "," & Index & "," & MachGrid.RowDefinitions(Index).ActualHeight.ToString()
EgtUILib.WritePrivateProfileString(GridTitle, Index.ToString(), valueRow, Map.refMainWindowVM.DimensionDir)
Else
Index = 1
valueRow = Index & "," & 0 & "," & MachGrid.RowDefinitions(Index).ActualHeight.ToString()
EgtUILib.WritePrivateProfileString(GridTitle, Index.ToString(), valueRow, Map.refMainWindowVM.DimensionDir)
End If
End Sub
Friend Sub RestoreDrawGridLayout(MachGrid As Grid, RowId As String, Index As Integer, GridTitle As String)
Dim sValue = String.Empty
EgtUILib.GetPrivateProfileString(GridTitle, Index.ToString(), String.Empty, sValue, Map.refMainWindowVM.DimensionDir)
Dim sValueParams() As String = sValue.Split(","c)
If sValueParams.Count >= 3 Then
' cancello spazi
For I As Integer = 0 To sValueParams.Count - 1
sValueParams(I) = sValueParams(I).Trim()
Next
' creo valore
Dim GridLenValue As Double
StringToDoubleAdv(sValueParams(2), GridLenValue)
If RowId = "ManageLayer" Then
MachGrid.RowDefinitions(0).Height = New GridLength(GridLenValue)
Else
MachGrid.RowDefinitions(1).Height = New GridLength(GridLenValue)
End If
Else
If RowId = "ManageLayer" Then
MachGrid.RowDefinitions(0).Height = New GridLength(400)
Else
MachGrid.RowDefinitions(1).Height = New GridLength(150)
End If
End If
End Sub
End Module
+25
View File
@@ -38,6 +38,8 @@ Module Map
Private m_refReversePostPanelVM As ReversePostPanelVM
Private m_refGunStockPanelVM As GunStockPanelVM
Private m_refMachiningParameterExpanderVM As MachiningParameterExpanderVM
Private m_refMachiningOptionPanelV As MachiningOptionPanelV
Private m_refDrawOptionPanelV As DrawOptionPanelV
#Region "Get"
@@ -171,6 +173,11 @@ Module Map
Return m_refTrimmingPanelVM
End Get
End Property
Public ReadOnly Property refReversePostPanelVM As ReversePostPanelVM
Get
Return m_refReversePostPanelVM
End Get
End Property
Public ReadOnly Property refSpecialPanelVM As SpecialPanelVM
Get
Return m_refSpecialPanelVM
@@ -206,6 +213,16 @@ Module Map
Return m_refMachiningParameterExpanderVM
End Get
End Property
Public ReadOnly Property refMachiningOptionPanelV As MachiningOptionPanelV
Get
Return m_refMachiningOptionPanelV
End Get
End Property
Public ReadOnly Property refDrawOptionPanelV As DrawOptionPanelV
Get
Return m_refDrawOptionPanelV
End Get
End Property
#End Region ' Get
@@ -344,6 +361,14 @@ Module Map
m_refMachiningParameterExpanderVM = MachiningParameterExpanderVM
Return Not IsNothing(m_refMachiningParameterExpanderVM)
End Function
Friend Function SetRefMachiningOptionPanelV(MachiningOptionPanelV As MachiningOptionPanelV) As Boolean
m_refMachiningOptionPanelV = MachiningOptionPanelV
Return Not IsNothing(m_refMachiningOptionPanelV)
End Function
Friend Function SetRefDrawOptionPanelV(DrawOptionPanelV As DrawOptionPanelV) As Boolean
m_refDrawOptionPanelV = DrawOptionPanelV
Return Not IsNothing(m_refDrawOptionPanelV)
End Function
#End Region ' Set
+24 -19
View File
@@ -96,30 +96,35 @@ Module SelData
Return False
End Function
Friend Function GetIdSubCount() As Integer
Return m_IdSub.Count()
End Function
Friend Function GetIdSub(nInd As Integer, ByRef nId As Integer, ByRef nSub As Integer) As Boolean
If nInd < 0 Or nInd > m_IdSub.Count() - 1 Then
nId = GDB_ID.NULL
Return False
End If
nId = m_IdSub(nInd).m_nId
nSub = m_IdSub(nInd).m_nSub
Friend Function GetAllSelectedGeom(ByRef vId() As Integer, ByRef vSub() As Integer) As Boolean
VerifyIdSub()
' Recupero tutte le entità selezionate con le loro eventuali sotto-parti
Dim MyId As New List(Of Integer)
Dim MySub As New List(Of Integer)
Dim nEntId As Integer = EgtGetFirstSelectedObj()
While nEntId <> GDB_ID.NULL
Dim MyEntSub As New List(Of Integer)
GetSubFromId( nEntId, MyEntSub)
For Each nEntSub As Integer In MyEntSub
MyId.Add(nEntId)
MySub.Add(nEntSub)
Next
nEntId = EgtGetNextSelectedObj()
End While
vId = MyId.ToArray()
vSub = MySub.ToArray()
Return True
End Function
Friend Function GetAllIdSub(ByRef vId() As Integer, ByRef vSub() As Integer) As Boolean
Dim MyId(m_IdSub.Count() - 1) As Integer
Dim MySub(m_IdSub.Count() - 1) As Integer
Friend Function GetSubFromId(nId As Integer, ByRef vSub As List(Of Integer)) As Boolean
For i As Integer = 0 To m_IdSub.Count() - 1
MyId(i) = m_IdSub(i).m_nId
MySub(i) = m_IdSub(i).m_nSub
If m_IdSub(i).m_nId = nId Then
vSub.Add(m_IdSub(i).m_nSub)
End If
Next
vId = MyId
vSub = MySub
Return True
If vSub.Count > 0 Then Return True
vSub.Add(-1)
Return False
End Function
Private Function VerifySelGroup() As Boolean
+74
View File
@@ -0,0 +1,74 @@
Public Class WindowStateIniBehavior
Private Shared ReadOnly IsReady As New Dictionary(Of Window, Boolean)
Public Shared Function GetPersistenceKey(obj As DependencyObject) As String
Return CStr(obj.GetValue(PersistenceKeyProperty))
End Function
Public Shared Sub SetPersistenceKey(obj As DependencyObject, value As String)
obj.SetValue(PersistenceKeyProperty, value)
End Sub
Public Shared ReadOnly PersistenceKeyProperty As DependencyProperty =
DependencyProperty.RegisterAttached(
"PersistenceKey",
GetType(String),
GetType(WindowStateIniBehavior),
New PropertyMetadata(Nothing, AddressOf OnKeyChanged)
)
Private Shared Sub OnKeyChanged(d As DependencyObject, e As DependencyPropertyChangedEventArgs)
Dim Window = TryCast(d, Window)
If IsNothing(Window) Then Return
IsReady(Window) = False
AddHandler Window.Loaded, Sub() LoadState(Window)
AddHandler Window.ContentRendered,
Sub()
IsReady(Window) = True
End Sub
AddHandler Window.LocationChanged, Sub() SaveState(Window)
AddHandler Window.SizeChanged, Sub() SaveState(Window)
End Sub
Private Shared Sub SaveState(Window As Window)
If Not IsReady(Window) Then Return
EgtUILib.WritePrivateProfileString(S_EXECUTEWINDOW, K_LEFT, Window.Left.ToString(), Map.refMainWindowVM.DimensionDir)
EgtUILib.WritePrivateProfileString(S_EXECUTEWINDOW, K_TOP, Window.Top.ToString(), Map.refMainWindowVM.DimensionDir)
EgtUILib.WritePrivateProfileString(S_EXECUTEWINDOW, K_WIDTH, Window.Width.ToString(), Map.refMainWindowVM.DimensionDir)
EgtUILib.WritePrivateProfileString(S_EXECUTEWINDOW, K_HEIGHT, Window.Height.ToString(), Map.refMainWindowVM.DimensionDir)
End Sub
Private Shared Sub LoadState(Window As Window)
Dim sLeft As String = String.Empty
Dim dLeft As Double = 0
EgtUILib.GetPrivateProfileString(S_EXECUTEWINDOW, K_LEFT, String.Empty, sLeft, Map.refMainWindowVM.DimensionDir)
If sLeft IsNot String.Empty Then StringToDouble(sLeft, dLeft)
Dim sTopD As String = String.Empty
Dim dTop As Double = 0.0
EgtUILib.GetPrivateProfileString(S_EXECUTEWINDOW, K_TOP, String.Empty, sTopD, Map.refMainWindowVM.DimensionDir)
If sTopD IsNot String.Empty Then StringToDouble(sTopD, dTop)
Dim sWidth As String = String.Empty
Dim dWidth As Double = 0.0
EgtUILib.GetPrivateProfileString(S_EXECUTEWINDOW, K_WIDTH, String.Empty, sWidth, Map.refMainWindowVM.DimensionDir)
If sWidth IsNot String.Empty Then StringToDouble(sWidth, dWidth)
Dim sHeight As String = String.Empty
Dim dHeight As Double = 0.0
EgtUILib.GetPrivateProfileString(S_EXECUTEWINDOW, K_HEIGHT, String.Empty, sHeight, Map.refMainWindowVM.DimensionDir)
If sWidth IsNot String.Empty Then StringToDouble(sHeight, dHeight)
If dLeft > 0 Then Window.Left = dLeft
If dTop > 0 Then Window.Top = dTop
If dWidth > 0 Then Window.Width = dWidth
If dHeight > 0 Then Window.Height = dHeight
End Sub
End Class