Compare commits

...

35 Commits

Author SHA1 Message Date
Demetrio Cassarino eec592c782 -aggiunto gestione lampadina su operazione selezionta
-aggiunto info note
2025-04-03 14:26:07 +02:00
Demetrio Cassarino dc6c075508 -sistemato accensione lampade su pulsante aggiorna 2025-03-27 16:20:24 +01:00
Demetrio Cassarino 2735c66b11 -sistemato gestione lampadina da simulazione a operazioni 2025-03-26 15:05:43 +01:00
Demetrio Cassarino bc22e32821 -aggiunto lampadina per lavorazioni per permettere la possbilità di spegnere la lavorazione 2025-03-26 08:24:39 +01:00
Dario Sassi 5624f05ad6 EgtCAM5 :
- eliminato Imports System.Windows.Forms.AxHost inutili (impedisce il riconoscimento della pressione del tasto CTRL in OnMouseSelectedPoint)
- corretta gestione marcatura oggetti su espansione albero entità.
2025-03-22 15:15:03 +01:00
Dario Sassi 0c68d8c142 EgtCAM5 :
- correzioni per ripristinare la selezione multipla di oggetti.
2025-03-22 11:03:11 +01:00
Dario Sassi e2480dcf1d EgtCAM5 2.7c2 :
- ricompilazione con cambio versione.
2025-03-21 19:06:29 +01:00
Dario Sassi cc63f278c6 Merge commit '54360bbccfcda35fbd2251b3ef6f2e3844d3cce4' 2025-03-21 18:55:50 +01:00
Demetrio Cassarino 54360bbccf -piccola modifca su inserimento note aggiunto ctrl+v 2025-03-21 11:15:44 +01:00
Demetrio Cassarino c71d7c84f7 Merge commit '9e9aad2eedf58f8dc9c14020f37af944aefc2e07' into feature/cw_ccw 2025-03-21 11:11:17 +01:00
Dario Sassi 9e9aad2eed EgtCAM5 :
- sistemata dipendenza nuova lavorazione 5assi da opzione chiave AdvancedMachinings.
2025-03-17 08:47:28 +01:00
Demetrio Cassarino a2a1b83888 Merge commit 'f44ae792c680605815a4359a0f9f3875e46ecda4' into feature/cw_ccw 2025-03-17 08:13:20 +01:00
Dario Sassi f44ae792c6 EgtCAM5 2.7c1 :
- modifica per esecuzione da Door con calcolo lavorazioni, simulazione e generazione CN (ora va in modalità Lavora).
2025-03-09 23:16:13 +01:00
Dario Sassi 4692bd0308 EgtCAM5 2.7b3 :
- modifiche varie per gestione import/insert del formato PLY.
2025-03-02 19:48:58 +01:00
Demetrio Cassarino 2e863c0ce2 Merge commit '34fa0909ab04096a26a602142ebd8b6bd6da80e5' into feature/cw_ccw 2025-02-10 12:49:54 +01:00
Emmanuele Sassi 1735e281e5 Merge branch 'master' of https://gitlab.steamware.net/egaltech/EgtCAM5 2025-02-06 10:42:57 +01:00
Emmanuele Sassi 125e7346d4 EgtCAM5 2.7b1 :
- Modifiche ad MTable
2025-02-06 10:42:23 +01:00
Emmanuele Sassi bd3cdf7ea0 - aggiunta selezione multipla su MTable
- aggiunto bottone link in MTable
- aggiunto sposta con salto in MTable
2025-02-06 10:38:07 +01:00
Dario Sassi d90a49248f EgtCAM5 :
-in disposizione attivato comando cancella grezzo.
2025-02-03 08:19:18 +01:00
Dario Sassi 3833b7c7c5 EgtCAM5 :
- in simulazione se programma minimizzato per velocizzare non si fa eseguire aggiornamento scena
- in disposizione sistemato conteggio bloccaggi utilizzati all'ingresso.
2025-02-02 13:05:31 +01:00
Dario Sassi 89b063b92f EgtCAM5 2.7a3 :
- in Disposizione modifiche per impostazione eventuale asse di tavola cui è agganciato il bloccaggio.
2025-01-31 16:15:20 +01:00
Dario Sassi df26bef2aa EgtCAM5 2.7a2 :
- piccola modifica per consentire di importare BTL con feature Variant definite tramite script lua.
2025-01-22 12:19:33 +01:00
Emmanuele Sassi 5cddbffb45 - aggiunta colonna link in Mtable 2025-01-20 10:31:02 +01:00
Dario Sassi 2daa33ba91 EgtCAM5 :
- aggiunto controllo validità oggetto nella gestione del tasto ESC.
2025-01-13 08:47:19 +01:00
Dario Sassi f83e8294bc EgtCAM5 2.7a1 :
- ricompilazione con cambio versione.
2025-01-10 17:30:29 +01:00
Dario Sassi 1dfc46e6ce Merge commit 'd7df513bf73ef06753dcb395cab2c2f1ff3b579f' 2025-01-10 16:46:11 +01:00
Demetrio Cassarino d7df513bf7 -aggiunto su selezione escape la possibilità di nascondere combobox note 2025-01-08 11:16:34 +01:00
Demetrio Cassarino 8aac3ea989 -aggiunto in errore macchina immagine di errrore 2024-12-19 11:52:20 +01:00
Demetrio Cassarino a514a70b5b Merge commit 'cf86b93725eb304415c0c3cd7ade9d2f6c8e404f' into feature/cw_ccw 2024-12-19 11:37:12 +01:00
Dario Sassi cf86b93725 EgtCAM5 2.6l3 :
- aggiunta gestione flag in import 3MF per mantenere la struttura gerarchica dei pezzi nel file (1) oppure no (0).
2024-12-17 10:27:24 +01:00
Dario Sassi fef104b371 EgtCAM5 2.6l1 :
- aggiunta gestione importazione formato OFF.
2024-11-29 19:00:25 +01:00
Dario Sassi afe756aada EgtCAM5 2.6k2 :
- ora al passaggio a LAVORA se c'è già un gruppo corrente si attiva quello, altrimenti il primo.
2024-11-20 19:56:07 +01:00
Demetrio Cassarino 34fa0909ab -aggiunto pulsante per info già presenti
-aggiunto selezione in scena e apertura in albero
-sitemato accensione luce
2024-11-20 08:10:50 +01:00
Demetrio Cassarino a662d1dca2 -aggiunto multi riga su info 2024-10-09 14:42:27 +02:00
Demetrio Cassarino e5a32f9c21 Merge remote-tracking branch 'origin/master' into feature/cw_ccw 2024-10-01 14:13:55 +02:00
41 changed files with 1816 additions and 494 deletions
+6 -3
View File
@@ -1,5 +1,7 @@
Imports System.Collections.ObjectModel Imports System.Collections.ObjectModel
Imports System.ComponentModel Imports System.ComponentModel
Imports EgtUILib
Imports EgtUILib.EgtInterface
' Classe che definisce un elemento di base del TreeView ' Classe che definisce un elemento di base del TreeView
Public Class TreeViewItemBase Public Class TreeViewItemBase
@@ -31,7 +33,7 @@ Public Class TreeViewItemBase
End Set End Set
End Property End Property
Private m_isExpanded As Boolean Friend m_isExpanded As Boolean
Public Property IsExpanded As Boolean Public Property IsExpanded As Boolean
Get Get
Return m_isExpanded Return m_isExpanded
@@ -92,6 +94,7 @@ Public Class InheritableTreeViewItem
Implements INotifyPropertyChanged Implements INotifyPropertyChanged
Friend m_Name As String Friend m_Name As String
Public Property Name As String Public Property Name As String
Get Get
Return m_Name Return m_Name
@@ -195,7 +198,6 @@ Public Class ParentItem
Inherits TreeViewItemBase Inherits TreeViewItemBase
Private m_sPictureString As String Private m_sPictureString As String
Private m_Items As ObservableCollection(Of ChildItem)
Public Property PictureString As String Public Property PictureString As String
Get Get
@@ -209,6 +211,7 @@ Public Class ParentItem
End Set End Set
End Property End Property
Private m_Items As ObservableCollection(Of ChildItem)
Public Property Items As ObservableCollection(Of ChildItem) Public Property Items As ObservableCollection(Of ChildItem)
Get Get
Return m_Items Return m_Items
@@ -255,4 +258,4 @@ Public Class ChildItem
MyBase.New(Name, IsSelected, IsExpanded, IsActive) MyBase.New(Name, IsSelected, IsExpanded, IsActive)
End Sub End Sub
End Class End Class
+5
View File
@@ -105,11 +105,15 @@ Module ConstIni
Public Const S_IMPORT As String = "Import" Public Const S_IMPORT As String = "Import"
Public Const K_DXFSCALE As String = "DxfScale" Public Const K_DXFSCALE As String = "DxfScale"
Public Const K_STLSCALE As String = "StlScale" Public Const K_STLSCALE As String = "StlScale"
Public Const K_OFFSCALE As String = "OffScale"
Public Const K_PLYSCALE As String = "PlyScale"
Public Const K_IMGSCALE As String = "ImgScale" Public Const K_IMGSCALE As String = "ImgScale"
Public Const K_CNCFLAG As String = "CncFlag" Public Const K_CNCFLAG As String = "CncFlag"
Public Const K_BTLFLAG As String = "BtlFlag" Public Const K_BTLFLAG As String = "BtlFlag"
Public Const K_BTLAUXDIR As String = "BtlAuxDir" Public Const K_BTLAUXDIR As String = "BtlAuxDir"
Public Const K_3MFFLAG As String = "3mfFlag"
Public Const K_ADVFLAG As String = "AdvFlag" Public Const K_ADVFLAG As String = "AdvFlag"
Public Const K_ADVTOLER As String = "AdvToler"
Public Const S_EXPORT As String = "Export" Public Const S_EXPORT As String = "Export"
Public Const K_DXFFLAG As String = "DxfFlag" Public Const K_DXFFLAG As String = "DxfFlag"
@@ -155,6 +159,7 @@ Module ConstIni
Public Const K_TABLESDIR As String = "TablesDir" Public Const K_TABLESDIR As String = "TablesDir"
Public Const K_CURRMTABLE As String = "CurrMTable" Public Const K_CURRMTABLE As String = "CurrMTable"
Public Const K_MTABLEWINPLACE As String = "MTableWinPlace" Public Const K_MTABLEWINPLACE As String = "MTableWinPlace"
Public Const K_OPTIMIZEMACHFORLINE As String = "OptimizeMachForLine"
Public Const S_GUNSTOCK As String = "GunStock" Public Const S_GUNSTOCK As String = "GunStock"
Public Const K_GUNSTOCKENABLE As String = "GsEnable" Public Const K_GUNSTOCKENABLE As String = "GsEnable"
@@ -0,0 +1,4 @@
Public Interface IListItemConverter
Function Convert(ByVal masterListItem As Object) As Object
Function ConvertBack(ByVal targetListItem As Object) As Object
End Interface
@@ -0,0 +1,80 @@
Imports System.Windows.Controls.Primitives
Imports System.ComponentModel
Public Class MultiSelectorBehaviours
Public Shared ReadOnly SynchronizedSelectedItemsProperty As DependencyProperty = DependencyProperty.RegisterAttached("SynchronizedSelectedItems", GetType(IList), GetType(MultiSelectorBehaviours), New PropertyMetadata(Nothing, AddressOf OnSynchronizedSelectedItemsChanged))
Public Shared ReadOnly SynchronizationManagerProperty As DependencyProperty = DependencyProperty.RegisterAttached("SynchronizationManager", GetType(SynchronizationManager), GetType(MultiSelectorBehaviours), New PropertyMetadata(Nothing))
Public Shared Function GetSynchronizedSelectedItems(ByVal dependencyObject As DependencyObject) As IList
Return CType(dependencyObject.GetValue(SynchronizedSelectedItemsProperty), IList)
End Function
Public Shared Sub SetSynchronizedSelectedItems(ByVal dependencyObject As DependencyObject, ByVal value As IList)
dependencyObject.SetValue(SynchronizedSelectedItemsProperty, value)
End Sub
Private Shared Function GetSynchronizationManager(ByVal dependencyObject As DependencyObject) As SynchronizationManager
Return CType(dependencyObject.GetValue(SynchronizationManagerProperty), SynchronizationManager)
End Function
Private Shared Sub SetSynchronizationManager(ByVal dependencyObject As DependencyObject, ByVal value As SynchronizationManager)
dependencyObject.SetValue(SynchronizationManagerProperty, value)
End Sub
Private Shared Sub OnSynchronizedSelectedItemsChanged(ByVal dependencyObject As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
If e.OldValue IsNot Nothing Then
Dim synchronizer As SynchronizationManager = GetSynchronizationManager(dependencyObject)
synchronizer.StopSynchronizing()
SetSynchronizationManager(dependencyObject, Nothing)
End If
Dim list As IList = TryCast(e.NewValue, IList)
Dim selector As Selector = TryCast(dependencyObject, Selector)
If list IsNot Nothing AndAlso selector IsNot Nothing Then
Dim synchronizer As SynchronizationManager = GetSynchronizationManager(dependencyObject)
If synchronizer Is Nothing Then
synchronizer = New SynchronizationManager(selector)
SetSynchronizationManager(dependencyObject, synchronizer)
End If
synchronizer.StartSynchronizingList()
End If
End Sub
Private Class SynchronizationManager
Private ReadOnly _multiSelector As Selector
Private _synchronizer As TwoListSynchronizer
Friend Sub New(ByVal selector As Selector)
_multiSelector = selector
End Sub
Public Sub StartSynchronizingList()
Dim list As IList = GetSynchronizedSelectedItems(_multiSelector)
If list IsNot Nothing Then
_synchronizer = New TwoListSynchronizer(GetSelectedItemsCollection(_multiSelector), list)
_synchronizer.StartSynchronizing()
End If
End Sub
Public Sub StopSynchronizing()
_synchronizer.StopSynchronizing()
End Sub
Public Shared Function GetSelectedItemsCollection(ByVal selector As Selector) As IList
If TypeOf selector Is MultiSelector Then
Return (TryCast(selector, MultiSelector)).SelectedItems
ElseIf TypeOf selector Is ListBox Then
Return (TryCast(selector, ListBox)).SelectedItems
Else
Throw New InvalidOperationException("Target object has no SelectedItems property to bind.")
End If
End Function
End Class
End Class
@@ -0,0 +1,163 @@
Imports System.Collections.Specialized
Public Class TwoListSynchronizer
Implements IWeakEventListener
Private Shared ReadOnly DefaultConverter As IListItemConverter = New DoNothingListItemConverter()
Private ReadOnly _masterList As IList
Private ReadOnly _masterTargetConverter As IListItemConverter
Private ReadOnly _targetList As IList
Public Sub New(ByVal masterList As IList, ByVal targetList As IList, ByVal masterTargetConverter As IListItemConverter)
_masterList = masterList
_targetList = targetList
_masterTargetConverter = masterTargetConverter
End Sub
Public Sub New(ByVal masterList As IList, ByVal targetList As IList)
Me.New(masterList, targetList, DefaultConverter)
End Sub
Private Delegate Sub ChangeListAction(ByVal list As IList, ByVal e As NotifyCollectionChangedEventArgs, ByVal converter As Converter(Of Object, Object))
Public Sub StartSynchronizing()
ListenForChangeEvents(_masterList)
ListenForChangeEvents(_targetList)
SetListValuesFromSource(_masterList, _targetList, New Converter(Of Object, Object)(AddressOf ConvertFromMasterToTarget))
If Not TargetAndMasterCollectionsAreEqual() Then
SetListValuesFromSource(_targetList, _masterList, New Converter(Of Object, Object)(AddressOf ConvertFromTargetToMaster))
End If
End Sub
Public Sub StopSynchronizing()
StopListeningForChangeEvents(_masterList)
StopListeningForChangeEvents(_targetList)
End Sub
Public Function ReceiveWeakEvent(ByVal managerType As Type, ByVal sender As Object, ByVal e As EventArgs) As Boolean Implements IWeakEventListener.ReceiveWeakEvent
HandleCollectionChanged(TryCast(sender, IList), TryCast(e, NotifyCollectionChangedEventArgs))
Return True
End Function
Protected Sub ListenForChangeEvents(ByVal list As IList)
If TypeOf list Is INotifyCollectionChanged Then
CollectionChangedEventManager.AddListener(TryCast(list, INotifyCollectionChanged), Me)
End If
End Sub
Protected Sub StopListeningForChangeEvents(ByVal list As IList)
If TypeOf list Is INotifyCollectionChanged Then
CollectionChangedEventManager.RemoveListener(TryCast(list, INotifyCollectionChanged), Me)
End If
End Sub
Private Sub AddItems(ByVal list As IList, ByVal e As NotifyCollectionChangedEventArgs, ByVal converter As Converter(Of Object, Object))
Dim itemCount As Integer = e.NewItems.Count
For i As Integer = 0 To itemCount - 1
Dim insertionPoint As Integer = e.NewStartingIndex + i
If insertionPoint > list.Count Then
list.Add(converter(e.NewItems(i)))
Else
list.Insert(insertionPoint, converter(e.NewItems(i)))
End If
Next
End Sub
Private Function ConvertFromMasterToTarget(ByVal masterListItem As Object) As Object
Return If(_masterTargetConverter Is Nothing, masterListItem, _masterTargetConverter.Convert(masterListItem))
End Function
Private Function ConvertFromTargetToMaster(ByVal targetListItem As Object) As Object
Return If(_masterTargetConverter Is Nothing, targetListItem, _masterTargetConverter.ConvertBack(targetListItem))
End Function
Private Sub HandleCollectionChanged(ByVal sender As Object, ByVal e As NotifyCollectionChangedEventArgs)
Dim sourceList As IList = TryCast(sender, IList)
Select Case e.Action
Case NotifyCollectionChangedAction.Add
PerformActionOnAllLists(AddressOf AddItems, sourceList, e)
Case NotifyCollectionChangedAction.Move
PerformActionOnAllLists(AddressOf MoveItems, sourceList, e)
Case NotifyCollectionChangedAction.Remove
PerformActionOnAllLists(AddressOf RemoveItems, sourceList, e)
Case NotifyCollectionChangedAction.Replace
PerformActionOnAllLists(AddressOf ReplaceItems, sourceList, e)
Case NotifyCollectionChangedAction.Reset
UpdateListsFromSource(TryCast(sender, IList))
Case Else
End Select
End Sub
Private Sub MoveItems(ByVal list As IList, ByVal e As NotifyCollectionChangedEventArgs, ByVal converter As Converter(Of Object, Object))
RemoveItems(list, e, converter)
AddItems(list, e, converter)
End Sub
Private Sub PerformActionOnAllLists(ByVal action As ChangeListAction, ByVal sourceList As IList, ByVal collectionChangedArgs As NotifyCollectionChangedEventArgs)
If sourceList Is _masterList Then
PerformActionOnList(_targetList, action, collectionChangedArgs, New Converter(Of Object, Object)(AddressOf ConvertFromMasterToTarget))
Else
PerformActionOnList(_masterList, action, collectionChangedArgs, New Converter(Of Object, Object)(AddressOf ConvertFromTargetToMaster))
End If
End Sub
Private Sub PerformActionOnList(ByVal list As IList, ByVal action As ChangeListAction, ByVal collectionChangedArgs As NotifyCollectionChangedEventArgs, ByVal converter As Converter(Of Object, Object))
StopListeningForChangeEvents(list)
action(list, collectionChangedArgs, converter)
ListenForChangeEvents(list)
End Sub
Private Sub RemoveItems(ByVal list As IList, ByVal e As NotifyCollectionChangedEventArgs, ByVal converter As Converter(Of Object, Object))
If e.OldItems.Count = 1 AndAlso e.OldStartingIndex <= list.Count - 1 Then
list.RemoveAt(e.OldStartingIndex)
Else
For Each Item In e.OldItems
list.Remove(Item)
Next
End If
End Sub
Private Sub ReplaceItems(ByVal list As IList, ByVal e As NotifyCollectionChangedEventArgs, ByVal converter As Converter(Of Object, Object))
RemoveItems(list, e, converter)
AddItems(list, e, converter)
End Sub
Private Sub SetListValuesFromSource(ByVal sourceList As IList, ByVal targetList As IList, ByVal converter As Converter(Of Object, Object))
StopListeningForChangeEvents(targetList)
targetList.Clear()
For Each o As Object In sourceList
targetList.Add(converter(o))
Next
ListenForChangeEvents(targetList)
End Sub
Private Function TargetAndMasterCollectionsAreEqual() As Boolean
Return _masterList.Cast(Of Object)().SequenceEqual(_targetList.Cast(Of Object)().[Select](Function(item) ConvertFromTargetToMaster(item)))
End Function
Private Sub UpdateListsFromSource(ByVal sourceList As IList)
If sourceList Is _masterList Then
SetListValuesFromSource(_masterList, _targetList, New Converter(Of Object, Object)(AddressOf ConvertFromMasterToTarget))
Else
SetListValuesFromSource(_targetList, _masterList, New Converter(Of Object, Object)(AddressOf ConvertFromTargetToMaster))
End If
End Sub
Friend Class DoNothingListItemConverter
Implements IListItemConverter
Public Function Convert(ByVal masterListItem As Object) As Object Implements IListItemConverter.Convert
Return masterListItem
End Function
Public Function ConvertBack(ByVal targetListItem As Object) As Object Implements IListItemConverter.ConvertBack
Return targetListItem
End Function
End Class
End Class
+6
View File
@@ -161,6 +161,9 @@
<DependentUpon>CurrSetUpV.xaml</DependentUpon> <DependentUpon>CurrSetUpV.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="CurrSetUp\CurrSetUpVM.vb" /> <Compile Include="CurrSetUp\CurrSetUpVM.vb" />
<Compile Include="DataGridMultiselectManaging\IListItemConverter.vb" />
<Compile Include="DataGridMultiselectManaging\MultiSelectorBehaviours.vb" />
<Compile Include="DataGridMultiselectManaging\TwoListSynchronizer.vb" />
<Compile Include="LeftTray\LeftTrayV.xaml.vb"> <Compile Include="LeftTray\LeftTrayV.xaml.vb">
<DependentUpon>LeftTrayV.xaml</DependentUpon> <DependentUpon>LeftTrayV.xaml</DependentUpon>
</Compile> </Compile>
@@ -1035,6 +1038,9 @@
<ItemGroup> <ItemGroup>
<Resource Include="Resources\DrawPanel\StmMoveVertex.png" /> <Resource Include="Resources\DrawPanel\StmMoveVertex.png" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Resource Include="Resources\TreeView\LampSel.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup> <PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5R32.exe <PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5R32.exe
+8 -6
View File
@@ -2,7 +2,6 @@
Imports System.IO Imports System.IO
Imports EgtCAM5.MyMachinePanelVM Imports EgtCAM5.MyMachinePanelVM
Imports System.Security.Cryptography Imports System.Security.Cryptography
Imports System.Windows.Forms.AxHost
Imports EgtUILib Imports EgtUILib
Imports EgtWPFLib5 Imports EgtWPFLib5
@@ -98,20 +97,23 @@ Public Class MyMachGroupPanelVM
' Vuoi creare un nuovo Gruppo di Lavoro con i pezzi selezionati ? - LAVORA ' Vuoi creare un nuovo Gruppo di Lavoro con i pezzi selezionati ? - LAVORA
If MessageBox.Show(EgtMsg(5552), EgtMsg(5002), MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then If MessageBox.Show(EgtMsg(5552), EgtMsg(5002), MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
Return If(AddNewMachGroup(nGroupId, vPart), 0, 1) Return If(AddNewMachGroup(nGroupId, vPart), 0, 1)
Else Else
Return -2 Return -2
End If End If
End If End If
' Se non ci sono pezzi selezionati ' Se non ci sono pezzi selezionati
Else Else
' se ci sono gruppi di lavorazione ' se ci sono gruppi di lavorazione
If bMachGroup Then If bMachGroup Then
nGroupId = EgtGetFirstMachGroup() nGroupId = EgtGetCurrMachGroup()
If nGroupId = GDB_ID.NULL Then
nGroupId = EgtGetFirstMachGroup()
End If
Return If(EgtSetCurrMachGroup(nGroupId), 0, 1) Return If(EgtSetCurrMachGroup(nGroupId), 0, 1)
' se altrimenti ammessi gruppi di lavoro vuoti ' se altrimenti ammessi gruppi di lavoro vuoti
ElseIf bAllowEmpty Then ElseIf bAllowEmpty Then
Return If(AddNewMachGroup(nGroupId, vPart), 0, 1) Return If(AddNewMachGroup(nGroupId, vPart), 0, 1)
' altrimenti esco ' altrimenti esco
Else Else
Return -1 Return -1
End If End If
+17 -11
View File
@@ -385,8 +385,8 @@ Public Class MainWindowVM
EgtSetLockId(sLockId) EgtSetLockId(sLockId)
End If End If
' Recupero livello e opzioni della chiave ' Recupero livello e opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(3279, 2611, 1, IniFile.m_nKeyLevel) And Dim bKey As Boolean = EgtGetKeyLevel(3279, 2703, 1, IniFile.m_nKeyLevel) And
EgtGetKeyOptions(3279, 2611, 1, IniFile.m_nKeyOptions) EgtGetKeyOptions(3279, 2703, 1, IniFile.m_nKeyOptions)
' Leggo e imposto livello utilizzatore ' Leggo e imposto livello utilizzatore
IniFile.m_nUserLevel = Math.Min(IniFile.m_nKeyLevel, GetPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1)) IniFile.m_nUserLevel = Math.Min(IniFile.m_nKeyLevel, GetPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1))
' Imposto abilitazione lavorazioni avanzate ' Imposto abilitazione lavorazioni avanzate
@@ -422,14 +422,6 @@ Public Class MainWindowVM
GetPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir) GetPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir)
GetPrivateProfileString(S_GEOMDB, K_DEFAULTFONT, "", OptionModule.m_sFontText) GetPrivateProfileString(S_GEOMDB, K_DEFAULTFONT, "", OptionModule.m_sFontText)
EgtSetFont(sNfeDir, OptionModule.m_sFontText) EgtSetFont(sNfeDir, OptionModule.m_sFontText)
' Imposto direttorio ausiliario per import/gestione BTL
Dim sBtlAuxDir As String = String.Empty
GetPrivateProfileString(S_IMPORT, K_BTLAUXDIR, "", sBtlAuxDir)
EgtSetBtlAuxDir(sBtlAuxDir)
' Imposto direttorio libreria per export ThreeJs
Dim sThreeJSLibDir As String = String.Empty
GetPrivateProfileString(S_EXPORT, K_THREEJSLIBDIR, "", sThreeJSLibDir)
EgtSetThreeJSLibDir(sThreeJSLibDir)
' Imposto dir di default per libreria Lua e lancio libreria di base ' Imposto dir di default per libreria Lua e lancio libreria di base
Dim sLuaLibsDir As String = String.Empty Dim sLuaLibsDir As String = String.Empty
GetPrivateProfileString(S_LUA, K_LIBSDIR, "", sLuaLibsDir) GetPrivateProfileString(S_LUA, K_LIBSDIR, "", sLuaLibsDir)
@@ -437,6 +429,14 @@ Public Class MainWindowVM
Dim sLuaBaseLib As String = String.Empty Dim sLuaBaseLib As String = String.Empty
GetPrivateProfileString(S_LUA, K_BASELIB, "EgtBase", sLuaBaseLib) GetPrivateProfileString(S_LUA, K_BASELIB, "EgtBase", sLuaBaseLib)
EgtLuaRequire(sLuaBaseLib) EgtLuaRequire(sLuaBaseLib)
' Imposto direttorio ausiliario per import/gestione BTL (sempre dopo impostazioni lua)
Dim sBtlAuxDir As String = String.Empty
GetPrivateProfileString(S_IMPORT, K_BTLAUXDIR, "", sBtlAuxDir)
EgtSetBtlAuxDir(sBtlAuxDir)
' Imposto direttorio libreria per export ThreeJs
Dim sThreeJSLibDir As String = String.Empty
GetPrivateProfileString(S_EXPORT, K_THREEJSLIBDIR, "", sThreeJSLibDir)
EgtSetThreeJSLibDir(sThreeJSLibDir)
' Imposto direttorio temporaneo a EgtInterface ' Imposto direttorio temporaneo a EgtInterface
EgtSetTempDir(m_sTempDir) EgtSetTempDir(m_sTempDir)
' Imposto IniFile a EgtInterface ' Imposto IniFile a EgtInterface
@@ -597,10 +597,16 @@ Public Class MainWindowVM
' pulisco output ' pulisco output
Map.refStatusBarVM.NotifyStatusOutput("") Map.refStatusBarVM.NotifyStatusOutput("")
Map.refInputExpanderVM.ResetInputBox() Map.refInputExpanderVM.ResetInputBox()
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 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 Map.refTopCommandBarVM.MachiningIsChecked AndAlso Map.refOperationParametersExpanderVM.OperationParameters.IsEnabled Then
Map.refMachiningParameterExpanderVM.FocusSlider() 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 OrElse e.Key = Key.Up, 1, -1)
Map.refMachiningParameterExpanderVM.SetSliderValue(nStep) Map.refMachiningParameterExpanderVM.SetSliderValue(nStep)
e.Handled = True e.Handled = True
End If End If
+3 -3
View File
@@ -30,7 +30,7 @@ Imports System.Windows
#End If #End If
<Assembly: AssemblyCompany("Egalware s.r.l.")> <Assembly: AssemblyCompany("Egalware s.r.l.")>
<Assembly: AssemblyProduct("EgtCAM5")> <Assembly: AssemblyProduct("EgtCAM5")>
<Assembly: AssemblyCopyright("Copyright © 2016-2024 by Egalware s.r.l.")> <Assembly: AssemblyCopyright("Copyright © 2016-2025 by Egalware s.r.l.")>
<Assembly: AssemblyTrademark("")> <Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(false)> <Assembly: ComVisible(false)>
@@ -70,6 +70,6 @@ Imports System.Windows
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.6.11.1")> <Assembly: AssemblyVersion("2.7.3.2")>
<Assembly: AssemblyFileVersion("2.6.11.1")> <Assembly: AssemblyFileVersion("2.7.3.2")>
@@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Expander IsExpanded="{Binding IsEnabled}" IsEnabled="{Binding IsEnabled}" <Expander IsExpanded="{Binding IsEnabled}" IsEnabled="{Binding IsEnabled}"
Style="{StaticResource ExpanderStyle}"> Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
<TextBlock Text="{Binding PropertiesMsg}"/> <TextBlock Text="{Binding PropertiesMsg}"/>
</Expander.Header> </Expander.Header>
@@ -1,9 +1,11 @@
<UserControl x:Class="InputExpanderV" <UserControl x:Class="InputExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<Expander Header="{Binding Title}" IsExpanded="{Binding IsExpanded}" IsEnabled="{Binding IsEnabled}" <Expander Header="{Binding Title}" IsExpanded="{Binding IsExpanded}" IsEnabled="{Binding IsEnabled}"
Style="{StaticResource ExpanderStyle}"> Style="{StaticResource ExpanderStyle}">
<StackPanel> <StackPanel>
<StackPanel.Style> <StackPanel.Style>
<Style TargetType="{x:Type StackPanel}"> <Style TargetType="{x:Type StackPanel}">
@@ -16,26 +18,80 @@
</StackPanel.Style> </StackPanel.Style>
<TextBlock Text="{Binding TextBlock}" <TextBlock Text="{Binding TextBlock}"
Visibility="{Binding TextVisibility}" Margin="5,5,0,5"/> Visibility="{Binding TextVisibility}" Margin="5,5,0,5"/>
<TextBox Text="{Binding TextBox,UpdateSourceTrigger=PropertyChanged}" <Grid>
Visibility="{Binding TextVisibility}" Margin="5,0,5,5"> <Grid.ColumnDefinitions>
<TextBox.InputBindings> <ColumnDefinition Width="1*"/>
<KeyBinding Key="Enter" Command="{Binding DoneCommand}"/> <ColumnDefinition Width="Auto"/>
<KeyBinding Key="S" Modifiers="Control" Command="{Binding ShowCommand}"/> </Grid.ColumnDefinitions>
</TextBox.InputBindings> <TextBox x:Name="Txt" Text="{Binding TextBox,UpdateSourceTrigger=PropertyChanged}"
</TextBox> PreviewKeyDown="TextBox_PreviewKeyDown" Height="Auto"
Visibility="{Binding TextVisibility}" Margin="5,0,5,5">
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding DoneCommand}"/>
<KeyBinding Key="S" Modifiers="Control" Command="{Binding ShowCommand}"/>
</TextBox.InputBindings>
</TextBox>
<Button Grid.Column="1"
Content="+"
Command="{Binding ShowInfoItemCommand}"
Visibility="{Binding ShowInfoItemVisibility}"
Width="20"
Height="20"
Margin="5,-1,5,0"
VerticalAlignment="Top"/>
</Grid>
<CheckBox Content="{Binding CheckBoxText}" IsChecked="{Binding IsChecked}" <CheckBox Content="{Binding CheckBoxText}" IsChecked="{Binding IsChecked}"
Visibility="{Binding CheckVisibility}" Margin="5,0,5,5"/> Visibility="{Binding CheckVisibility}" Margin="5,0,5,5"/>
<ComboBox ItemsSource="{Binding ComboItemsList}" SelectedIndex="{Binding ComboSelectedIndex}" <ComboBox ItemsSource="{Binding ComboItemsList}" SelectedIndex="{Binding ComboSelectedIndex}"
Visibility="{Binding ComboVisibility}" Margin="5,0,5,5"/> Visibility="{Binding ComboVisibility}" Margin="5,5,5,5"/>
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
MaxHeight="190"
Margin="2,5,0,10">
<ItemsControl ItemsSource="{Binding InfoList}"
Visibility="{Binding InfoVisibility}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Key}"
ToolTip="{Binding Key}"
Width="70"
HorizontalAlignment="Left"
Margin="0,6,0,0"/>
<TextBox Grid.Column="1"
Text="{Binding Valour, UpdateSourceTrigger=PropertyChanged}"
Margin="8,5,2,10">
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding DoneInfoCommand}"/>
</TextBox.InputBindings>
</TextBox>
<Button Grid.Column="2"
Content="-"
Command="{Binding RemoveInfoItemCommand}"
Width="20"
Height="20"
Margin="2,-2,4,5"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
<Grid Margin="5,0,5,5"> <Grid Margin="5,0,5,5">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Button Command="{Binding ShowCommand}" Visibility="{Binding ShowBtnVisibility}" <Button Command="{Binding ShowCommand}" Visibility="{Binding ShowBtnVisibility}"
Content="{Binding ShowMsg}" Style="{StaticResource EgtCAM5_InputButton}"/> Content="{Binding ShowMsg}" Style="{StaticResource EgtCAM5_InputButton}"/>
<Button Command="{Binding DoneCommand}" Grid.Column="1" <Button Command="{Binding DoneCommand}" Grid.Column="1"
Content="{Binding OkMsg}" Style="{StaticResource EgtCAM5_InputButton}"/> Content="{Binding OkMsg}" Style="{StaticResource EgtCAM5_InputButton}"/>
</Grid> </Grid>
</StackPanel> </StackPanel>
</Expander> </Expander>
@@ -1,3 +1,11 @@
Public Class InputExpanderV Public Class InputExpanderV
Private Sub TextBox_PreviewKeyDown(sender As Object, e As KeyEventArgs)
If (e.Key = Key.Enter And (Keyboard.Modifiers And ModifierKeys.Shift)= ModifierKeys.Shift) Or
(e.Key = Key.V And (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control) Then
Txt.AcceptsReturn = True
Txt.TextWrapping = TextWrapping.Wrap
End If
End Sub
End Class End Class
@@ -6,6 +6,23 @@ Public Class InputExpanderVM
#Region "FIELDS & PROPERTIES" #Region "FIELDS & PROPERTIES"
' Variabile temporanea per salvare bShow
Private m_tmpbShow As Boolean
Private m_tmpInfoList As New ObservableCollection(Of InfoItem)
''' <summary>
''' Lista temporanea delle info
''' </summary>
Private Property tmpInfoList As ObservableCollection(Of InfoItem)
Get
Return m_tmpInfoList
End Get
Set(value As ObservableCollection(Of InfoItem))
m_tmpInfoList = value
OnPropertyChanged(NameOf(tmpInfoList))
End Set
End Property
' Expander fields ' Expander fields
Private m_IsExpanded As Boolean Private m_IsExpanded As Boolean
Public Property IsExpanded As Boolean Public Property IsExpanded As Boolean
@@ -14,7 +31,7 @@ Public Class InputExpanderVM
End Get End Get
Set(value As Boolean) Set(value As Boolean)
m_IsExpanded = value m_IsExpanded = value
OnPropertyChanged("IsExpanded") OnPropertyChanged(NameOf(IsExpanded))
End Set End Set
End Property End Property
@@ -25,7 +42,7 @@ Public Class InputExpanderVM
End Get End Get
Set(value As Boolean) Set(value As Boolean)
m_IsEnabled = value m_IsEnabled = value
OnPropertyChanged("IsEnabled") OnPropertyChanged(NameOf(IsEnabled))
End Set End Set
End Property End Property
@@ -36,7 +53,7 @@ Public Class InputExpanderVM
End Get End Get
Set(value As String) Set(value As String)
m_Title = value m_Title = value
OnPropertyChanged("Title") OnPropertyChanged(NameOf(Title))
End Set End Set
End Property End Property
@@ -48,7 +65,7 @@ Public Class InputExpanderVM
End Get End Get
Set(value As String) Set(value As String)
m_TextBlock = value m_TextBlock = value
OnPropertyChanged("TextBlock") OnPropertyChanged(NameOf(TextBlock))
End Set End Set
End Property End Property
@@ -61,7 +78,7 @@ Public Class InputExpanderVM
Set(value As String) Set(value As String)
m_TextBox = value m_TextBox = value
Map.refProjectVM.NotifyInputText(value) Map.refProjectVM.NotifyInputText(value)
OnPropertyChanged("TextBox") OnPropertyChanged(NameOf(TextBox))
End Set End Set
End Property End Property
@@ -73,7 +90,7 @@ Public Class InputExpanderVM
Set(value As Visibility) Set(value As Visibility)
If value <> m_TextVisibility Then If value <> m_TextVisibility Then
m_TextVisibility = value m_TextVisibility = value
OnPropertyChanged("TextVisibility") OnPropertyChanged(NameOf(TextVisibility))
End If End If
End Set End Set
End Property End Property
@@ -85,7 +102,7 @@ Public Class InputExpanderVM
End Get End Get
Set(value As Boolean) Set(value As Boolean)
m_FocusTextBox = value m_FocusTextBox = value
OnPropertyChanged("FocusTextBox") OnPropertyChanged(NameOf(FocusTextBox))
End Set End Set
End Property End Property
@@ -97,7 +114,7 @@ Public Class InputExpanderVM
End Get End Get
Set(value As String) Set(value As String)
m_CheckBoxText = value m_CheckBoxText = value
OnPropertyChanged("CheckBoxText") OnPropertyChanged(NameOf(CheckBoxText))
End Set End Set
End Property End Property
@@ -110,7 +127,7 @@ Public Class InputExpanderVM
If value <> m_IsChecked Then If value <> m_IsChecked Then
Map.refProjectVM.SetLastBoolean(value) Map.refProjectVM.SetLastBoolean(value)
m_IsChecked = value m_IsChecked = value
OnPropertyChanged("IsChecked") OnPropertyChanged(NameOf(IsChecked))
End If End If
End Set End Set
End Property End Property
@@ -123,7 +140,7 @@ Public Class InputExpanderVM
Set(value As Visibility) Set(value As Visibility)
If value <> m_CheckVisibility Then If value <> m_CheckVisibility Then
m_CheckVisibility = value m_CheckVisibility = value
OnPropertyChanged("CheckVisibility") OnPropertyChanged(NameOf(CheckVisibility))
End If End If
End Set End Set
End Property End Property
@@ -136,19 +153,54 @@ Public Class InputExpanderVM
End Get End Get
Set(value As ObservableCollection(Of String)) Set(value As ObservableCollection(Of String))
m_ComboItemsList = value m_ComboItemsList = value
OnPropertyChanged("ComboItemsList") OnPropertyChanged(NameOf(ComboItemsList))
End Set End Set
End Property End Property
Private m_ComboSelectedIndex As Integer Private m_InfoList As New ObservableCollection(Of InfoItem)
''' <summary>
''' Lista delle info modificate
''' </summary>
Public Property InfoList As ObservableCollection(Of InfoItem)
Get
Return m_InfoList
End Get
Set(value As ObservableCollection(Of InfoItem))
m_InfoList = value
OnPropertyChanged(NameOf(InfoList))
End Set
End Property
Private m_ComboSelectedIndex As Integer = GDB_ID.NULL
Public Property ComboSelectedIndex As Integer Public Property ComboSelectedIndex As Integer
Get Get
Return m_ComboSelectedIndex Return m_ComboSelectedIndex
End Get End Get
Set(value As Integer) Set(value As Integer)
Map.refProjectVM.SetLastInteger(value) If m_tmpbShow Then Map.refProjectVM.SetLastInteger(value)
m_ComboSelectedIndex = value m_ComboSelectedIndex = value
OnPropertyChanged("ComboSelectedIndex") ' Assegno l'indice selezionato ad una variabile temporanea per utilizzarlo quando rimuovo l'info dalla lista
Dim tmpComboSelectedIndex As Integer = ComboSelectedIndex
' Controllo se l'indice è maggiore o uguale a zero e la lista tmp contiene valori
If m_ComboSelectedIndex >= 0 AndAlso tmpInfoList.Count > 0 Then
' Controllo se la info è contenuta nella lista ComboItemsList
If ComboItemsList.Contains(tmpInfoList(m_ComboSelectedIndex).sKey) Then
' Aggiungo la info alla lista per visualizzarla
InfoList.Add(New InfoItem(tmpInfoList(m_ComboSelectedIndex).nId, tmpInfoList(m_ComboSelectedIndex).sKey, tmpInfoList(m_ComboSelectedIndex).sValour))
' Nascondo la combobox
ComboVisibility = Visibility.Collapsed
' Rimuovo la info dalla ComboItemsList
ComboItemsList.Remove(tmpInfoList(m_ComboSelectedIndex).sKey)
End If
' Rimuovo la info dalla tmpInfoList
tmpInfoList.Remove(tmpInfoList(tmpComboSelectedIndex))
End If
' Rendo invisibile il pulsante per attivare la combo
If ComboItemsList.Count <= 0 Then ShowInfoItemVisibility = Visibility.Collapsed
m_ComboSelectedIndex = GDB_ID.NULL
OnPropertyChanged(NameOf(ComboSelectedIndex))
OnPropertyChanged(NameOf(ComboItemsList))
OnPropertyChanged(NameOf(InfoList))
End Set End Set
End Property End Property
@@ -160,7 +212,7 @@ Public Class InputExpanderVM
Set(value As Visibility) Set(value As Visibility)
If value <> m_ComboVisibility Then If value <> m_ComboVisibility Then
m_ComboVisibility = value m_ComboVisibility = value
OnPropertyChanged("ComboVisibility") OnPropertyChanged(NameOf(ComboVisibility))
End If End If
End Set End Set
End Property End Property
@@ -173,13 +225,47 @@ Public Class InputExpanderVM
End Get End Get
Set(value As Visibility) Set(value As Visibility)
m_ShowBtnVisibility = value m_ShowBtnVisibility = value
OnPropertyChanged("ShowBtnVisibility") OnPropertyChanged(NameOf(ShowBtnVisibility))
End Set
End Property
Private m_ShowInfoItemVisibility As Visibility
''' <summary>
''' Propietà visibilità bottone +
''' </summary>
Public Property ShowInfoItemVisibility As Visibility
Get
Return m_ShowInfoItemVisibility
End Get
Set(value As Visibility)
If value <> m_ShowInfoItemVisibility Then
m_ShowInfoItemVisibility = value
OnPropertyChanged(NameOf(ShowInfoItemVisibility))
End If
End Set
End Property
Private m_InfoVisibility As Visibility
''' <summary>
''' Propietà visibilità lista info modificate
''' </summary>
Public Property InfoVisibility As Visibility
Get
Return m_InfoVisibility
End Get
Set(value As Visibility)
If value <> m_InfoVisibility Then
m_InfoVisibility = value
OnPropertyChanged(NameOf(InfoVisibility))
End If
End Set End Set
End Property End Property
' Commands definition ' Commands definition
Private m_cmdShow As ICommand Private m_cmdShow As ICommand
Private m_cmdDone As ICommand Private m_cmdDone As ICommand
Private m_cmdShowInfoItem As ICommand
Private m_cmdRemoveInfoItem As ICommand
#Region "Messages" #Region "Messages"
@@ -257,7 +343,18 @@ Public Class InputExpanderVM
''' Execute the Point. This method is invoked by the PointCommand. ''' Execute the Point. This method is invoked by the PointCommand.
''' </summary> ''' </summary>
Public Sub Done(ByVal param As Object) Public Sub Done(ByVal param As Object)
Map.refProjectVM.Done(m_TextBox) ' Controllo se la lista contenente la info modificata sia presente
If InfoList.Count > 0 Then
' Ciclo sulla lista
For Each Item As InfoItem In InfoList
Map.refProjectVM.NotifyInputText((Item.Key & "=" & Item.Valour).Trim())
' Assegno a m_TextBox la info modificata
m_TextBox &= vbCrLf & (Item.Key & "=" & Item.Valour).Trim() & vbCrLf
Next
End If
' Rimuovo eventuali spazi
Dim tmpTextBox As String = m_TextBox.Replace(" ", "")
Map.refProjectVM.Done(tmpTextBox)
End Sub End Sub
''' <summary> ''' <summary>
@@ -269,6 +366,30 @@ Public Class InputExpanderVM
#End Region ' DoneCommand #End Region ' DoneCommand
#Region "ShowInfoItemCommand"
''' <summary>
''' Comando per la visualizzazione della combobox
''' </summary>
Public ReadOnly Property ShowInfoItemCommand As ICommand
Get
If m_cmdShowInfoItem Is Nothing Then
m_cmdShowInfoItem = New Command(AddressOf ShowInfoItem)
End If
Return m_cmdShowInfoItem
End Get
End Property
''' <summary>
''' Funzione per la visualizzazione della combobox
''' </summary>
''' <param name="param"></param>
Public Sub ShowInfoItem(ByVal param As Object)
ComboVisibility = Visibility.Visible
End Sub
#End Region ' ShowInfoItemCommand
#End Region #End Region
#Region "METHODS" #Region "METHODS"
@@ -279,13 +400,37 @@ Public Class InputExpanderVM
TextBlock = PrepareInputBoxParam.sLabel TextBlock = PrepareInputBoxParam.sLabel
TextBox = "" TextBox = ""
TextVisibility = Visibility.Visible TextVisibility = Visibility.Visible
' Controllo se il titolo è uguale a INFO se si
If Title = EgtMsg(5359).ToUpper() Then
' Metto tmpbShow a false
m_tmpbShow = False
' Rendo visibile la lista delle info selezionate
InfoVisibility = Visibility.Visible
' Pulisco la lista tmpInfoList
tmpInfoList.Clear()
' Pulisco la lista InfoList
InfoList.Clear()
' Pulisco la lista ComboItemsList
ComboItemsList.Clear()
' Popolo la lista InfoList
GetInfoList()
' Rendo visibile il pulsante che mostra la lista delle info
ShowInfoItemVisibility = If(m_ComboItemsList.Count > 0, Visibility.Visible, Visibility.Collapsed)
End If
End If End If
If PrepareInputBoxParam.sCheckLabel <> "" Then If PrepareInputBoxParam.sCheckLabel <> "" Then
CheckBoxText = PrepareInputBoxParam.sCheckLabel CheckBoxText = PrepareInputBoxParam.sCheckLabel
CheckVisibility = Visibility.Visible CheckVisibility = Visibility.Visible
End If End If
If PrepareInputBoxParam.bShowCombo Then If PrepareInputBoxParam.bShowCombo Then
' Assegno a tmpbShow PrepareInputBoxParam.bShowCombo
m_tmpbShow = PrepareInputBoxParam.bShowCombo
' Pulisco la lista ComboItemsList
ComboItemsList.Clear() ComboItemsList.Clear()
' Pulisco la lista tmpInfoList
tmpInfoList.Clear()
' Pulisco la lista InfoList
InfoList.Clear()
ComboVisibility = Visibility.Visible ComboVisibility = Visibility.Visible
End If End If
If PrepareInputBoxParam.bShowBtn Then If PrepareInputBoxParam.bShowBtn Then
@@ -302,6 +447,8 @@ Public Class InputExpanderVM
CheckVisibility = Visibility.Collapsed CheckVisibility = Visibility.Collapsed
ComboVisibility = Visibility.Collapsed ComboVisibility = Visibility.Collapsed
ShowBtnVisibility = Visibility.Collapsed ShowBtnVisibility = Visibility.Collapsed
ShowInfoItemVisibility = Visibility.Collapsed
InfoVisibility = Visibility.Collapsed
IsExpanded = False IsExpanded = False
IsEnabled = False IsEnabled = False
End Sub End Sub
@@ -329,12 +476,42 @@ Public Class InputExpanderVM
Private Function AddInputBoxCombo(ByVal sText As String, ByVal bSelected As Boolean) As Boolean Private Function AddInputBoxCombo(ByVal sText As String, ByVal bSelected As Boolean) As Boolean
ComboItemsList.Add(sText) ComboItemsList.Add(sText)
If bSelected Then If bSelected Then
ComboSelectedIndex = ComboItemsList.Count - 1 ComboSelectedIndex = ComboItemsList.Count - 1
End If End If
Return True Return True
End Function End Function
''' <summary>
''' Rimovi nota da info lista
''' </summary>
''' <param name="InfoItem">Informazione da eliminare</param>
Friend Sub RemoveItemInfo(InfoItem As InfoItem)
' Rimuovo info da lista modifica
InfoList.Remove(InfoItem)
' Riaggiungo la info eliminata
ComboItemsList.Add(InfoItem.sKey)
' Riaggiungo la info eliminata
tmpInfoList.Add(InfoItem)
' Rendo visibile il pulsante per attivare la combo
ShowInfoItemVisibility = Visibility.Visible
End Sub
Private Sub GetInfoList()
Dim tmpInfoList As String() = Nothing
Dim sKeyVal() As String = Nothing
Dim Index As Integer = 0
EgtGetAllInfo(Map.refManageLayerExpanderVM.m_nObjTreeOldId, tmpInfoList)
If Not IsNothing(tmpInfoList) Then
For Each ItemInfo As String In tmpInfoList
sKeyVal = ItemInfo.Trim().Split(New Char() {"="c})
InfoList.Add(New InfoItem(Index, sKeyVal(0), sKeyVal(1)))
Index += 1
Next
End If
End Sub
#End Region ' Methods #End Region ' Methods
End Class End Class
@@ -69,17 +69,17 @@ Public Class LayerTreeViewItem
Return m_bOnOff Return m_bOnOff
End Get End Get
Set(value As Boolean) Set(value As Boolean)
If Map.refProjectVM.GetController().GetStep() <> 0 Then Return 'If Map.refProjectVM.GetController().GetStep() <> 0 Then Return
If m_bOnOff <> value Then If m_bOnOff <> value Then
m_bOnOff = value m_bOnOff = value
' se abilitato, eseguo operazione ' se abilitato, eseguo operazione
If m_SendCmd Then If m_SendCmd Then
Map.refProjectVM.SetLastInteger(Id)
If value Then If value Then
Map.refProjectVM.ExecuteCommand(Controller.CMD.SHOW) EgtSetStatus(Id, GDB_ST.ON_)
Else Else
Map.refProjectVM.ExecuteCommand(Controller.CMD.HIDE) EgtSetStatus(Id, GDB_ST.OFF)
End If End If
EgtDraw()
End If End If
Dim bOnOffGroup As Boolean = ((Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift) AndAlso Items.Count > 0 Dim bOnOffGroup As Boolean = ((Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift) AndAlso Items.Count > 0
If bOnOffGroup Then If bOnOffGroup Then
@@ -103,6 +103,7 @@ Public Class LayerTreeViewItem
EgtDraw() EgtDraw()
End If End If
End If End If
Map.refProjectVM.EmitTitle()
End Set End Set
End Property End Property
@@ -1,9 +1,9 @@
<UserControl x:Class="ManageLayerExpanderV" <UserControl x:Class="ManageLayerExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:expression="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions" xmlns:expression="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
xmlns:local="clr-namespace:EgtCAM5"> xmlns:local="clr-namespace:EgtCAM5">
<Expander IsExpanded="True" Style="{StaticResource ExpanderStyle}"> <Expander IsExpanded="True" Style="{StaticResource ExpanderStyle}">
<Expander.Header> <Expander.Header>
@@ -20,11 +20,11 @@
<Button Content="{Binding NewLayerMsg}" Command="{Binding NewLayerCommand}" Height="30"/> <Button Content="{Binding NewLayerMsg}" Command="{Binding NewLayerCommand}" Height="30"/>
<Button Content="{Binding ColorMsg}" Command="{Binding LayerColorCommand}" Height="30"/> <Button Content="{Binding ColorMsg}" Command="{Binding LayerColorCommand}" Height="30"/>
</UniformGrid> </UniformGrid>
<TreeView Name="LayerTreeView" MinHeight="150" MaxHeight="250" <TreeView x:Name="LayerTreeView" MinHeight="300" MaxHeight="400"
ItemsSource="{Binding Path=LayerList}" ItemsSource="{Binding Path=LayerList}"
VirtualizingStackPanel.IsVirtualizing = "True" VirtualizingStackPanel.IsVirtualizing = "True"
VirtualizingStackPanel.VirtualizationMode = "Recycling"> VirtualizingStackPanel.VirtualizationMode = "Recycling">
<interactivity:Interaction.Triggers> <interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="MouseDoubleClick"> <interactivity:EventTrigger EventName="MouseDoubleClick">
<interactivity:InvokeCommandAction Command="{Binding TreeViewDoubleClickCommand}"/> <interactivity:InvokeCommandAction Command="{Binding TreeViewDoubleClickCommand}"/>
@@ -50,8 +50,8 @@
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<ToggleButton Style="{StaticResource EgtCAM5_LampToggleButton}" Grid.Column="0" <ToggleButton Style="{StaticResource EgtCAM5_LampToggleButton}" Grid.Column="0"
IsChecked="{Binding OnOff}" Visibility="{Binding IsHidden}" Focusable="False" Height="15" Width="15" Margin="0,0,5,0"/> IsChecked="{Binding OnOff}" Visibility="{Binding IsHidden}" Focusable="True" Height="15" Width="15" Margin="0,0,5,0"/>
<Image Grid.Column="1" Source="{Binding PictureString}" Height="15" Margin="0,0,5,0"/> <Image Grid.Column="1" Source="{Binding PictureString}" Height="15" Margin="0,0,5,0"/>
<TextBlock Grid.Column="2" Text="{Binding Name}" Margin="0,0,5,0"/> <TextBlock Grid.Column="2" Text="{Binding Name}" Margin="0,0,5,0"/>
<Ellipse Grid.Column="3" Height="10" Width="10" Fill="{Binding LayerColor}" /> <Ellipse Grid.Column="3" Height="10" Width="10" Fill="{Binding LayerColor}" />
@@ -61,7 +61,7 @@
</TreeView.Resources> </TreeView.Resources>
<!--Style dei nodi CathegoryItem che li riquadra di azzurro quando clicckati ed elimina l'ombra grigia <!--Style dei nodi CathegoryItem che li riquadra di azzurro quando clicckati ed elimina l'ombra grigia
che si presenta quando la categoria rimane vuota (ombra causata dal multibinding).--> che si presenta quando la categoria rimane vuota (ombra causata dal multibinding).-->
<TreeView.ItemContainerStyle> <TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}"> <Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
@@ -166,7 +166,7 @@ Public Class ManageLayerExpanderVM
Public Sub NewPart(ByVal param As Object) Public Sub NewPart(ByVal param As Object)
Map.refProjectVM.ExecuteCommand(Controller.CMD.NEWPART) Map.refProjectVM.ExecuteCommand(Controller.CMD.NEWPART)
' Seleziono nell'albero il layer del pezzo appena creato ' Seleziono nell'albero il layer del pezzo appena creato
SelectIdInObjTree(EgtGetCurrLayer(), False) SelectIdInObjTreeNoMark(EgtGetCurrLayer())
End Sub End Sub
#End Region ' NewPartCommand #End Region ' NewPartCommand
@@ -191,7 +191,7 @@ Public Class ManageLayerExpanderVM
Public Sub NewLayer(ByVal param As Object) Public Sub NewLayer(ByVal param As Object)
Map.refProjectVM.ExecuteCommand(Controller.CMD.NEWLAYER) Map.refProjectVM.ExecuteCommand(Controller.CMD.NEWLAYER)
' Seleziono nell'albero il layer appena creato ' Seleziono nell'albero il layer appena creato
SelectIdInObjTree(EgtGetCurrLayer(), False) SelectIdInObjTreeNoMark(EgtGetCurrLayer())
End Sub End Sub
#End Region ' NewLayerCommand #End Region ' NewLayerCommand
@@ -492,7 +492,7 @@ Public Class ManageLayerExpanderVM
Map.refProjectVM.SetLastInteger(RightClickedTreeItemId) Map.refProjectVM.SetLastInteger(RightClickedTreeItemId)
Map.refProjectVM.ExecuteCommand(Controller.CMD.DELETE) Map.refProjectVM.ExecuteCommand(Controller.CMD.DELETE)
' Seleziono prossimo ' Seleziono prossimo
SelectIdInObjTree(nNewId, False) SelectIdInObjTreeNoMark(nNewId)
End Sub End Sub
#End Region ' DeleteCommand #End Region ' DeleteCommand
@@ -528,16 +528,18 @@ Public Class ManageLayerExpanderVM
#Region "METHODS" #Region "METHODS"
Private WithEvents ObjTreeTimer As New System.Windows.Threading.DispatcherTimer Private WithEvents ObjTreeTimer As New System.Windows.Threading.DispatcherTimer
Private m_nObjTreeOldId As Integer = GDB_ID.NULL Friend m_nObjTreeOldId As Integer = GDB_ID.NULL
Private m_nObjTreeMenuId As Integer = GDB_ID.NULL Private m_nObjTreeMenuId As Integer = GDB_ID.NULL
Private m_bEnableUpdateObjInObjTree As Boolean = True Private m_bEnableUpdateObjInObjTree As Boolean = True
Friend Sub SelectIdInObjTreeNoMark(nId As Integer) Friend Sub SelectIdInObjTreeNoMark(nId As Integer)
SelectIdInObjTree(nId, False) LayerTreeViewItem.m_MarkOnSel = False
MySelectIdInObjTree(nId)
LayerTreeViewItem.m_MarkOnSel = True
End Sub End Sub
Friend Sub SelectIdInObjTree(nId As Integer) Friend Sub SelectIdInObjTree(nId As Integer)
SelectIdInObjTree(nId, True) MySelectIdInObjTree(nId)
End Sub End Sub
Friend Sub UpdateObjTreeOldId(ObjTreeOldId As Integer) Friend Sub UpdateObjTreeOldId(ObjTreeOldId As Integer)
@@ -581,7 +583,7 @@ Public Class ManageLayerExpanderVM
AddGroupInObjTree(GDB_ID.ROOT, GDB_LV.USER, GDB_MD.STD, 0, LayerList) AddGroupInObjTree(GDB_ID.ROOT, GDB_LV.USER, GDB_MD.STD, 0, LayerList)
If nOldId <> GDB_ID.NULL Then If nOldId <> GDB_ID.NULL Then
m_bEnableUpdateObjInObjTree = False m_bEnableUpdateObjInObjTree = False
If Not SelectIdInObjTree(nOldId, True) Then If Not MySelectIdInObjTree(nOldId) Then
Map.refInfoExpanderVM.SetInfoBox(String.Empty) Map.refInfoExpanderVM.SetInfoBox(String.Empty)
End If End If
m_bEnableUpdateObjInObjTree = True m_bEnableUpdateObjInObjTree = True
@@ -803,14 +805,11 @@ Public Class ManageLayerExpanderVM
Return nOldId Return nOldId
End Function End Function
Private Function SelectIdInObjTree(nId As Integer, bMark As Boolean) As Boolean Private Function MySelectIdInObjTree(nId As Integer) As Boolean
Dim tNode As LayerTreeViewItem = SearchIdInLayerList(LayerList, nId, True) Dim tNode As LayerTreeViewItem = SearchIdInLayerList(LayerList, nId, True)
If Not IsNothing(tNode) Then If Not IsNothing(tNode) Then
If Not bMark Then LayerTreeViewItem.m_MarkOnSel = False
tNode.IsSelected = True tNode.IsSelected = True
tNode.NotifyPropertyChanged("IsSelected") tNode.NotifyPropertyChanged("IsSelected")
If Not bMark Then LayerTreeViewItem.m_MarkOnSel = True
tNode.IsExpanded = True
m_nObjTreeOldId = nId m_nObjTreeOldId = nId
Return True Return True
Else Else
@@ -273,7 +273,7 @@ Public Class DispositionParameterExpanderVM
End If End If
Select Case m_ActiveObject Select Case m_ActiveObject
Case ObjectType.RAWPART Case ObjectType.RAWPART
' Abilito la selezione delle Fixture ' Abilito la selezione dei Grezzi
Map.refProjectVM.SceneSelType = SceneSelTypeOpt.RAWPART Map.refProjectVM.SceneSelType = SceneSelTypeOpt.RAWPART
Case ObjectType.FIXTURE Case ObjectType.FIXTURE
' Abilito la selezione delle Fixture ' Abilito la selezione delle Fixture
@@ -1,5 +1,4 @@
Imports System.Windows.Forms.AxHost Imports EgtUILib
Imports EgtUILib
Imports Microsoft.VisualBasic.ApplicationServices Imports Microsoft.VisualBasic.ApplicationServices
Public NotInheritable Class DispositionUtility Public NotInheritable Class DispositionUtility
@@ -775,6 +774,9 @@ Public NotInheritable Class DispositionUtility
m_nUsedHookId = nNearestHookId m_nUsedHookId = nNearestHookId
' Segno hook come utilizzato ' Segno hook come utilizzato
SetHookUsed(m_nUsedHookId, nMoveId, True) SetHookUsed(m_nUsedHookId, nMoveId, True)
Dim sLinkName As String = ""
EgtGetName( EgtGetParent( m_nUsedHookId), sLinkName)
EgtSetFixtureLink( nMoveId, sLinkName)
Return True Return True
End Function End Function
@@ -62,8 +62,8 @@ Public Class FixtureParametersVM
Dim nUsedFixtureId As Integer = EgtGetFirstFixture() Dim nUsedFixtureId As Integer = EgtGetFirstFixture()
While nUsedFixtureId <> GDB_ID.NULL While nUsedFixtureId <> GDB_ID.NULL
Dim sUsedFixtureName As String = String.Empty Dim sUsedFixtureName As String = String.Empty
EgtGetName(nUsedFixtureId, sUsedFixtureName)
For Index = 0 To m_FixtureTypeList.Count - 1 For Index = 0 To m_FixtureTypeList.Count - 1
EgtGetName(nUsedFixtureId, sUsedFixtureName)
If sUsedFixtureName = m_FixtureTypeList(Index).Name Then If sUsedFixtureName = m_FixtureTypeList(Index).Name Then
Dim CurrFixtureType As FixtureType = DirectCast(m_FixtureTypeList(Index), FixtureType) Dim CurrFixtureType As FixtureType = DirectCast(m_FixtureTypeList(Index), FixtureType)
CurrFixtureType.UsedNumber += 1 CurrFixtureType.UsedNumber += 1
@@ -76,6 +76,7 @@ Public Class FixtureParametersVM
Friend Sub UpdateFixtureTypeList() Friend Sub UpdateFixtureTypeList()
m_FixtureTypeList = New ObservableCollection(Of FixtureListItem)(FixtureType.ReadFixtureTypeFromMachIni()) m_FixtureTypeList = New ObservableCollection(Of FixtureListItem)(FixtureType.ReadFixtureTypeFromMachIni())
UpdateFixtureCount()
OnPropertyChanged("FixtureTypeList") OnPropertyChanged("FixtureTypeList")
End Sub End Sub
@@ -140,6 +141,7 @@ Public Class FixtureParametersVM
If Not PositionFixtureOnNearestHook(nAddedFixtureId) Then If Not PositionFixtureOnNearestHook(nAddedFixtureId) Then
' non ci sono punti liberi, quindi rimuovo la ventosa e segnalo ' non ci sono punti liberi, quindi rimuovo la ventosa e segnalo
EgtRemoveFixture(nAddedFixtureId) EgtRemoveFixture(nAddedFixtureId)
EgtSetFixtureLink( nAddedFixtureId, "")
MessageBox.Show("No free hook point!", "ERROR") MessageBox.Show("No free hook point!", "ERROR")
Return Return
End If End If
@@ -297,6 +299,7 @@ Public Class FixtureParametersVM
Else Else
DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId) DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId)
End If End If
EgtSetFixtureLink( nFixtureId, "")
Return True Return True
Else Else
EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook) EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook)
@@ -320,6 +323,7 @@ Public Class FixtureParametersVM
Else Else
DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId) DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId)
End If End If
EgtSetFixtureLink( nFixtureId, "")
Return True Return True
Else Else
EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook) EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook)
@@ -348,6 +352,7 @@ Public Class FixtureParametersVM
Else Else
DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId) DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId)
End If End If
EgtSetFixtureLink( nFixtureId, sBarName)
Return True Return True
Else Else
EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook) EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook)
@@ -373,6 +378,7 @@ Public Class FixtureParametersVM
Else Else
DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId) DispositionUtility.AddHookUsed( nCurrHookId, nFixtureId)
End If End If
EgtSetFixtureLink( nFixtureId, sCharName)
Return True Return True
Else Else
EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook) EgtStartPoint(nFixtHookId, GDB_ID.ROOT, ptFixtHook)
@@ -7,7 +7,7 @@
<CheckBox Content="Move with Fixture" IsChecked="{Binding MoveWithFixture, Mode=TwoWay}"/> <CheckBox Content="Move with Fixture" IsChecked="{Binding MoveWithFixture, Mode=TwoWay}"/>
<UniformGrid Columns="2" Margin="0,5,0,0"> <UniformGrid Columns="2" Margin="0,5,0,0">
<Button Content="New" Command="{Binding NewRawPartCommand}"/> <Button Content="New" Command="{Binding NewRawPartCommand}"/>
<Button Content="Remove"/> <!--Command="{Binding RemoveRawPartCommand}"--> <Button Content="Remove" Command="{Binding RemoveRawPartCommand}"/>
</UniformGrid> </UniformGrid>
<Grid Visibility="{Binding RawPartParamVisibility, Mode=OneWay}"> <Grid Visibility="{Binding RawPartParamVisibility, Mode=OneWay}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
@@ -117,7 +117,7 @@ Public Class RawPartOptionVM
End Property End Property
''' <summary> ''' <summary>
''' Execute the Point. This method is invoked by the DoneCommand. ''' Execute NewRawPart. This method is invoked by the DoneCommand.
''' </summary> ''' </summary>
Public Sub NewRawPart() Public Sub NewRawPart()
DispositionUtility.ShowParts() DispositionUtility.ShowParts()
@@ -127,6 +127,36 @@ Public Class RawPartOptionVM
#End Region ' NewRawPartCommand #End Region ' NewRawPartCommand
#Region "RemoveRawPartCommand"
''' <summary>
''' Returns a command that do Done.
''' </summary>
Public ReadOnly Property RemoveRawPartCommand As ICommand
Get
If m_cmdRemoveRawPart Is Nothing Then
m_cmdRemoveRawPart = New RelayCommand(AddressOf RemoveRawPart)
End If
Return m_cmdRemoveRawPart
End Get
End Property
''' <summary>
''' Execute RemoveRawPart. This method is invoked by the DoneCommand.
''' </summary>
Public Sub RemoveRawPart()
' ciclo sui grezzi selezionati
Dim nSelRawPartId As Integer = EgtGetFirstSelectedObj()
While nSelRawPartId <> GDB_ID.NULL
' rimuovo il grezzo dalla disposizione
EgtRemoveRawPart(nSelRawPartId)
nSelRawPartId = EgtGetNextSelectedObj()
End While
EgtDraw()
End Sub
#End Region ' RemoveRawPartCommand
#End Region ' Commands #End Region ' Commands
End Class End Class
@@ -5,26 +5,25 @@ Public Class DispositionOpListBoxItem
Public Property StatusAll As Boolean? Public Property StatusAll As Boolean?
Get Get
' Recupero gli indici delle operazioni della Disposizione corrente ' Ottieni gli indici delle operazioni e calcola il valore aggregato
Dim OpIndexes As List(Of Integer) = GetOpIndexes() Return GetUnifiedStatus(Function(item) item.Status)
' Ritorno il valore specificato in base agli stati delle operazioni di cui abbiamo raccolto gli indici
If OpIndexes.Count = 0 Then Return False
Dim bTemp As Boolean = DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(OpIndexes(0)), MachiningOpListBoxItem).Status
For OpInDispIndex = 1 To OpIndexes.Count - 1
If DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(OpIndexes(OpInDispIndex)), MachiningOpListBoxItem).Status <> bTemp Then Return Nothing
Next
Return bTemp
End Get End Get
Set(value As Boolean?) Set(value As Boolean?)
' Recupero gli indici delle operazioni della Disposizione corrente ' Aggiorna lo stato delle operazioni
Dim OpIndexes As List(Of Integer) = GetOpIndexes() UpdateAllStatus(value, Sub(item, val) item.Status = CBool(val))
If OpIndexes.Count = 0 Then NotifyPropertyChanged(NameOf(StatusAll))
NotifyPropertyChanged(NameOf(StatusAll)) End Set
Return End Property
End If
For Each OpInDispIndex In OpIndexes Public Property OnOffAll As Boolean?
DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(OpInDispIndex), MachiningOpListBoxItem).Status = If(IsNothing(value), False, CBool(value)) Get
Next ' Ottieni gli indici delle operazioni e calcola il valore aggregato
Return GetUnifiedStatus(Function(item) item.OnOff)
End Get
Set(value As Boolean?)
' Aggiorna lo stato delle operazioni
UpdateAllStatus(value, Sub(item, val) item.OnOff = val)
NotifyPropertyChanged(NameOf(OnOffAll))
End Set End Set
End Property End Property
@@ -53,6 +52,7 @@ Public Class DispositionOpListBoxItem
Exit For Exit For
End If End If
Next Next
' Inserisco in una lista gli indici delle operazioni della Disposizione (a partire dunque dall'indice trovato) ' Inserisco in una lista gli indici delle operazioni della Disposizione (a partire dunque dall'indice trovato)
Dim OpIndexes As New List(Of Integer)() Dim OpIndexes As New List(Of Integer)()
Dim OpIndex As Integer = DispIndex + 1 Dim OpIndex As Integer = DispIndex + 1
@@ -64,4 +64,28 @@ Public Class DispositionOpListBoxItem
Return OpIndexes Return OpIndexes
End Function End Function
' Metodo per calcolare il valore aggregato (Checked/Unchecked/Indeterminate)
Private Function GetUnifiedStatus(getStatus As Func(Of MachiningOpListBoxItem, Boolean?)) As Boolean?
Dim OpIndexes As List(Of Integer) = GetOpIndexes()
If OpIndexes.Count = 0 Then Return False
Dim firstStatus = getStatus(DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(OpIndexes(0)), MachiningOpListBoxItem))
For Each index In OpIndexes.Skip(1)
Dim currentStatus = getStatus(DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(index), MachiningOpListBoxItem))
If currentStatus <> firstStatus Then Return Nothing
Next
Return firstStatus
End Function
' Metodo per aggiornare lo stato di tutte le operazioni
Private Sub UpdateAllStatus(value As Boolean?, updateStatus As Action(Of MachiningOpListBoxItem, Boolean?))
Dim OpIndexes As List(Of Integer) = GetOpIndexes()
If OpIndexes.Count = 0 Then Return
For Each index In OpIndexes
Dim item = DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(index), MachiningOpListBoxItem)
updateStatus(item, If(IsNothing(value), False, CBool(value)))
Next
End Sub
End Class End Class
@@ -1,6 +1,4 @@
Imports System.ComponentModel Imports EgtUILib
Imports System.Collections.ObjectModel
Imports EgtUILib
Public Class MachiningOpListBoxItem Public Class MachiningOpListBoxItem
Inherits OperationListBoxItem Inherits OperationListBoxItem
@@ -28,11 +26,29 @@ Public Class MachiningOpListBoxItem
End If End If
OpIndex += 1 OpIndex += 1
Next Next
' Se Operazione selezionata metto la lampadina in stato false
For Each tmpItem As MachiningOpListBoxItem In Map.refOperationsListExpanderVM.tmpOperationList
If tmpItem.Id = Id Then
If tmpItem.OnOff Then
EgtSetStatus(tmpItem.Id, GDB_ST.OFF)
tmpItem.m_bThreeState = False
tmpItem.OnOff = False
Exit For
Else
EgtSetStatus(tmpItem.Id, GDB_ST.ON_)
tmpItem.OnOff = True
Exit For
End If
End If
Next
' Notifico StatusAll per calcolare lo stato della CheckBox della Disposizione ' Notifico StatusAll per calcolare lo stato della CheckBox della Disposizione
Map.refOperationsListExpanderVM.OperationList(DispIndex).NotifyPropertyChanged(NameOf(DispositionOpListBoxItem.StatusAll)) Map.refOperationsListExpanderVM.OperationList(DispIndex).NotifyPropertyChanged(NameOf(DispositionOpListBoxItem.StatusAll))
EgtSetOperationMode(Id, m_Status) EgtSetOperationMode(Id, m_Status)
EgtDraw() EgtDraw()
End If End If
Map.refProjectVM.EmitTitle()
NotifyPropertyChanged(NameOf(Status)) NotifyPropertyChanged(NameOf(Status))
End If End If
End Set End Set
@@ -101,10 +117,10 @@ Public Class MachiningOpListBoxItem
RaiseEvent m_ModifyNameGetFocus() RaiseEvent m_ModifyNameGetFocus()
' se esco da modifica ' se esco da modifica
End If End If
NotifyPropertyChanged("ModifiedName") NotifyPropertyChanged(NameOf(ModifiedName))
NotifyPropertyChanged("Name") NotifyPropertyChanged(NameOf(Name))
NotifyPropertyChanged("Name_Visibility") NotifyPropertyChanged(NameOf(Name_Visibility))
NotifyPropertyChanged("ModifyName_Visibility") NotifyPropertyChanged(NameOf(ModifyName_Visibility))
End Set End Set
End Property End Property
@@ -126,6 +142,35 @@ Public Class MachiningOpListBoxItem
End Get End Get
End Property End Property
Public m_bThreeState As Boolean = False
Private m_bOnOff As Boolean? = True
Public Property OnOff As Boolean?
Get
Return m_bOnOff
End Get
Set(value As Boolean?)
' Controllo se la lampadina è messa in stato Nothing e value e false
m_bOnOff = If(m_bThreeState AndAlso Not value, True, value)
Dim bOldEnMod As Boolean = EgtGetEnableModified()
EgtDisableModified()
' se abilitato, eseguo operazione
Dim status As Integer = GDB_ST.OFF
' Controllo se lo stato della lampadina è true o nullo
If m_bOnOff OrElse IsNothing(m_bOnOff) Then
status = GDB_ST.ON_
End If
' Modifica lo stato della checkbox all delle lampadine
ModifyStatusLamp()
' Setto lo stato della lampadina
EgtSetStatus(Id, status)
If bOldEnMod Then EgtEnableModified()
If Map.refOperationsListExpanderVM.ForceDrawInIsSelected Then EgtDraw()
m_bThreeState = False
Map.refProjectVM.EmitTitle()
NotifyPropertyChanged(NameOf(OnOff))
End Set
End Property
' Definizione comandi ' Definizione comandi
Private m_cmdModifyNameEnter As ICommand Private m_cmdModifyNameEnter As ICommand
Private m_cmdModifyNameEsc As ICommand Private m_cmdModifyNameEsc As ICommand
@@ -177,6 +222,21 @@ Public Class MachiningOpListBoxItem
End Select End Select
End Function End Function
Private Sub ModifyStatusLamp()
' Recupero l'indice dell'operazione a cui abbiamo appena modificato lo Status e l'indice della Disposizione che la contiene
Dim DispIndex As Integer = 0
Dim OpIndex As Integer = 0
For Each OpItem In Map.refOperationsListExpanderVM.OperationList
If EgtGetOperationType(OpItem.Id) = MCH_OY.DISP Then DispIndex = OpIndex
If OpItem.Id = Id Then
Exit For
End If
OpIndex += 1
Next
' Notifico StatusAll per calcolare lo stato della CheckBox della Disposizione
Map.refOperationsListExpanderVM.OperationList(DispIndex).NotifyPropertyChanged(NameOf(DispositionOpListBoxItem.OnOffAll))
End Sub
#Region "COMMANDS" #Region "COMMANDS"
#Region "ModifyNameEnterCommand" #Region "ModifyNameEnterCommand"
@@ -211,7 +271,7 @@ Public Class MachiningOpListBoxItem
m_CloseModifyLostFocus = False m_CloseModifyLostFocus = False
MessageBox.Show(EgtMsg(MSG_OPERATION + 22), EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Warning) MessageBox.Show(EgtMsg(MSG_OPERATION + 22), EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Warning)
m_IsActive_ModifyName = True m_IsActive_ModifyName = True
NotifyPropertyChanged("ModifyName_Visibility") NotifyPropertyChanged(NameOf(ModifyName_Visibility))
m_Spy = True m_Spy = True
Return Return
End If End If
@@ -36,7 +36,7 @@ Public Class OperationListBoxItem
Set(value As Boolean) Set(value As Boolean)
If Not IsNothing(value) Then If Not IsNothing(value) Then
Dim indexes As List(Of OperationListBoxItem) = New List(Of OperationListBoxItem) Dim indexes As New List(Of OperationListBoxItem)
Dim Count As Integer = 0 Dim Count As Integer = 0
For Each OperationListBoxItem In Map.refOperationsListExpanderVM.OperationList For Each OperationListBoxItem In Map.refOperationsListExpanderVM.OperationList
If OperationListBoxItem.IsSelected And OperationListBoxItem.Id <> m_Id Then If OperationListBoxItem.IsSelected And OperationListBoxItem.Id <> m_Id Then
@@ -45,6 +45,23 @@ Public Class OperationListBoxItem
End If End If
Next Next
' Se Operazione selezionata metto la lampadina in stato Nothing
For Each tmpItem As MachiningOpListBoxItem In Map.refOperationsListExpanderVM.tmpOperationList
If tmpItem.Id = Id Then
If IsNothing(tmpItem.OnOff) Then
EgtSetStatus(tmpItem.Id, GDB_ST.OFF)
tmpItem.m_bThreeState = False
tmpItem.OnOff = False
Exit For
ElseIf Not tmpitem.OnOff AndAlso Not m_IsSelected Then
EgtSetStatus(tmpItem.Id, GDB_ST.SEL)
tmpItem.OnOff = Nothing
tmpItem.m_bThreeState = True
Exit For
End If
End If
Next
If indexes.Count > 0 Then If indexes.Count > 0 Then
If EgtGetOperationPhase(Id) <> EgtGetOperationPhase(indexes(0).Id) Then If EgtGetOperationPhase(Id) <> EgtGetOperationPhase(indexes(0).Id) Then
Return Return
@@ -72,9 +89,9 @@ Public Class OperationListBoxItem
Map.refOperationsListExpanderVM.OnPropertyChanged("MoveUp_IsEnabled") Map.refOperationsListExpanderVM.OnPropertyChanged("MoveUp_IsEnabled")
Map.refOperationsListExpanderVM.OnPropertyChanged("MoveDown_IsEnabled") Map.refOperationsListExpanderVM.OnPropertyChanged("MoveDown_IsEnabled")
NotifyPropertyChanged("IsSelected") NotifyPropertyChanged(NameOf(IsSelected))
' Aggiorno visualizzazione ' Aggiorno visualizzazione
EgtDraw() If Map.refOperationsListExpanderVM.ForceDrawInIsSelected Then EgtDraw()
Return Return
End If End If
' Imposto la fase di lavorazione corrente ' Imposto la fase di lavorazione corrente
@@ -124,7 +141,7 @@ Public Class OperationListBoxItem
Map.refMachiningTreeExpanderVM.nSelectedOperationId = Me.Id Map.refMachiningTreeExpanderVM.nSelectedOperationId = Me.Id
End If End If
' Aggiorno visualizzazione ' Aggiorno visualizzazione
EgtDraw() If Map.refOperationsListExpanderVM.ForceDrawInIsSelected Then EgtDraw()
End If End If
' Resetto valori slider ' Resetto valori slider
If Not IsNothing(Map.refMachiningParameterExpanderVM) Then If Not IsNothing(Map.refMachiningParameterExpanderVM) Then
@@ -136,7 +153,7 @@ Public Class OperationListBoxItem
Map.refOperationsListExpanderVM.OnPropertyChanged("DuplicateCmd_IsEnabled") Map.refOperationsListExpanderVM.OnPropertyChanged("DuplicateCmd_IsEnabled")
Map.refOperationsListExpanderVM.OnPropertyChanged("MachToDb_IsEnabled") Map.refOperationsListExpanderVM.OnPropertyChanged("MachToDb_IsEnabled")
Map.refOperationsListExpanderVM.OnPropertyChanged("Rename_IsEnabled") Map.refOperationsListExpanderVM.OnPropertyChanged("Rename_IsEnabled")
NotifyPropertyChanged("IsSelected") NotifyPropertyChanged(NameOf(IsSelected))
End Set End Set
End Property End Property
@@ -1,10 +1,10 @@
<UserControl x:Class="OperationsListExpanderV" <UserControl x:Class="OperationsListExpanderV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtCAM5="clr-namespace:EgtCAM5" xmlns:EgtCAM5="clr-namespace:EgtCAM5"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"> xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
<StackPanel Name="OperationsListExpanderViewStackPanel" IsEnabled="{Binding OpersListViewIsEnabled}"> <StackPanel Name="OperationsListExpanderViewStackPanel" IsEnabled="{Binding OpersListViewIsEnabled}">
@@ -27,9 +27,9 @@
<DataTemplate DataType="{x:Type EgtCAM5:MachiningOpListBoxItem}"> <DataTemplate DataType="{x:Type EgtCAM5:MachiningOpListBoxItem}">
<DataTemplate.Resources> <DataTemplate.Resources>
<Style x:Key="LayoutRoot" TargetType="Grid"> <Style x:Key="LayoutRoot" TargetType="Grid">
<!--<Style.Triggers> <!--<Style.Triggers>-->
--><!--these are the triggers that make the code cursor jump from box 1 to box 2 to box 3.--><!-- <!--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"> <!--<DataTrigger Binding="{Binding ElementName=Box, Path=Visibility}" Value="Visible">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=Box}"/> <Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=Box}"/>
</DataTrigger> </DataTrigger>
</Style.Triggers>--> </Style.Triggers>-->
@@ -38,11 +38,12 @@
<Border Background="Transparent"> <Border Background="Transparent">
<Border.InputBindings> <Border.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" <MouseBinding MouseAction="LeftDoubleClick"
Command="{Binding DataContext.OperationListDoubleClickCommand, RelativeSource={RelativeSource AncestorType={x:Type EgtCAM5:OperationsListExpanderV}}}" Command="{Binding DataContext.OperationListDoubleClickCommand, RelativeSource={RelativeSource AncestorType={x:Type EgtCAM5:OperationsListExpanderV}}}"
CommandParameter="{Binding Id}"/> CommandParameter="{Binding Id}"/>
</Border.InputBindings> </Border.InputBindings>
<Grid Style="{StaticResource LayoutRoot}"> <Grid Style="{StaticResource LayoutRoot}">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
@@ -50,9 +51,13 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<CheckBox IsChecked="{Binding Status}" Margin="0,0,5,0"/> <CheckBox IsChecked="{Binding Status}" Margin="0,0,5,0"/>
<Image Source="{Binding Image}" Height="15" Margin="0,0,5,0"/> <Image Source="{Binding Image}" Height="15" Margin="0,0,5,0"/>
<TextBlock Grid.Column="1" Text="{Binding Name}" <!--<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"/>-->
<CheckBox Style="{StaticResource EgtCAM5_LampToggleButton}" Grid.Column="1"
IsChecked="{Binding OnOff}" 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"/> Visibility="{Binding Name_Visibility}" Margin="0,0,5,0"/>
<TextBox Grid.Column="1" Text="{Binding ModifiedName, UpdateSourceTrigger=PropertyChanged}" <TextBox Grid.Column="2" Text="{Binding ModifiedName, UpdateSourceTrigger=PropertyChanged}"
Width="150" Width="150"
x:Name="Box" x:Name="Box"
Visibility="{Binding ModifyName_Visibility}" Margin="0,0,5,0"> Visibility="{Binding ModifyName_Visibility}" Margin="0,0,5,0">
@@ -63,7 +68,7 @@
<KeyBinding Key="Escape" Command="{Binding ModifyNameEscCommand}"/> <KeyBinding Key="Escape" Command="{Binding ModifyNameEscCommand}"/>
</TextBox.InputBindings> </TextBox.InputBindings>
</TextBox> </TextBox>
<TextBlock Grid.Column="2" Text="{Binding Info}"/> <TextBlock Grid.Column="3" Text="{Binding Info}"/>
</Grid> </Grid>
</Border> </Border>
</DataTemplate> </DataTemplate>
@@ -71,14 +76,17 @@
<Border CornerRadius="1" Background="{StaticResource EgaltechBlue3}"> <Border CornerRadius="1" Background="{StaticResource EgaltechBlue3}">
<Border.InputBindings> <Border.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" <MouseBinding MouseAction="LeftDoubleClick"
Command="{Binding DataContext.OperationListDoubleClickCommand, RelativeSource={RelativeSource AncestorType={x:Type EgtCAM5:OperationsListExpanderV}}}" Command="{Binding DataContext.OperationListDoubleClickCommand, RelativeSource={RelativeSource AncestorType={x:Type EgtCAM5:OperationsListExpanderV}}}"
CommandParameter="{Binding Id}"/> CommandParameter="{Binding Id}"/>
</Border.InputBindings> </Border.InputBindings>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding StatusAll}" VerticalAlignment="Center" Margin="0,0,5,0"/> <CheckBox IsChecked="{Binding StatusAll}" VerticalAlignment="Center" Margin="0,0,5,0"/>
<CheckBox IsChecked="{Binding OnOffAll}" Style="{StaticResource EgtCAM5_LampToggleButton}" Height="15" Width="15" 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"/> <Image Source="{Binding Image}" Height="15" Margin="0,0,5,0"/>
<TextBlock Text="{Binding Name}" Foreground="White" <TextBlock Text="{Binding Name}" Foreground="White"
FontSize="15" FontWeight="SemiBold"/> FontSize="15" FontWeight="SemiBold"/>
</StackPanel> </StackPanel>
</Border> </Border>
</DataTemplate> </DataTemplate>
@@ -84,6 +84,7 @@ Public Class OperationsListExpanderVM
Set(value As Boolean) Set(value As Boolean)
If value <> m_ListIsExpanded Then If value <> m_ListIsExpanded Then
Map.refMachiningOptionPanelVM.Set_IsExpanded(MachiningOptionPanelVM.MachiningOptionPanelExpander.OPERATIONLIST, value) Map.refMachiningOptionPanelVM.Set_IsExpanded(MachiningOptionPanelVM.MachiningOptionPanelExpander.OPERATIONLIST, value)
SetStatusOnLamp()
End If End If
End Set End Set
End Property End Property
@@ -111,6 +112,37 @@ Public Class OperationsListExpanderVM
End Set End Set
End Property End Property
Private m_tmpOperationList As New ObservableCollection(Of MachiningOpListBoxItem)
Public Property tmpOperationList As ObservableCollection(Of MachiningOpListBoxItem)
Get
Return m_tmpOperationList
End Get
Set(value As ObservableCollection(Of MachiningOpListBoxItem))
m_tmpOperationList = value
End Set
End Property
Private m_StatusLampList As New ObservableCollection(Of StatusLamp)
Public Property StatusLampList As ObservableCollection(Of StatusLamp)
Get
Return m_StatusLampList
End Get
Set(value As ObservableCollection(Of StatusLamp))
m_StatusLampList = value
End Set
End Property
' Forza il disegno quando seleziono la lampadina
Private m_ForceDrawInIsSelected As Boolean = True
Public Property ForceDrawInIsSelected As Boolean
Get
Return m_ForceDrawInIsSelected
End Get
Set(value As Boolean)
m_ForceDrawInIsSelected = value
End Set
End Property
Public ReadOnly Property DuplicateCmd_IsEnabled As Boolean Public ReadOnly Property DuplicateCmd_IsEnabled As Boolean
Get Get
Dim SelType As Integer = MCH_OY.NONE Dim SelType As Integer = MCH_OY.NONE
@@ -258,7 +290,7 @@ Public Class OperationsListExpanderVM
#Region "CONSTRUCTOR" #Region "CONSTRUCTOR"
Sub New() Sub New()
m_bMoveThroughDisps = ( GetPrivateProfileInt( S_MACH, K_MOVETHROUGHDISPS, 0) <> 0) m_bMoveThroughDisps = (GetPrivateProfileInt(S_MACH, K_MOVETHROUGHDISPS, 0) <> 0)
' Creo riferimento a questa classe in Map ' Creo riferimento a questa classe in Map
Map.SetRefOperationsListExpanderVM(Me) Map.SetRefOperationsListExpanderVM(Me)
Me.ListIsExpanded = True Me.ListIsExpanded = True
@@ -333,7 +365,7 @@ Public Class OperationsListExpanderVM
For Each nId As Integer In vRawId For Each nId As Integer In vRawId
EgtKeepRawPart(nId, nLastPhase) EgtKeepRawPart(nId, nLastPhase)
Next Next
EgtKeepAllDispAxes( nLastPhase) EgtKeepAllDispAxes(nLastPhase)
For Each nId As Integer In vFxtId For Each nId As Integer In vFxtId
EgtKeepFixture(nId, nLastPhase) EgtKeepFixture(nId, nLastPhase)
Next Next
@@ -435,7 +467,7 @@ Public Class OperationsListExpanderVM
If EgtGetOperationMode(selOperation.Id) Then If EgtGetOperationMode(selOperation.Id) Then
Map.refOperationParametersExpanderVM.ParametersIsExpanded = True Map.refOperationParametersExpanderVM.ParametersIsExpanded = True
If EgtGetOperationType(selOperation.Id) <> MCH_OY.DISP Then If EgtGetOperationType(selOperation.Id) <> MCH_OY.DISP Then
Map.refMachiningParameterExpanderVM.SetSliderScale( EgtGetPreviewMachiningToolStepCount()) Map.refMachiningParameterExpanderVM.SetSliderScale(EgtGetPreviewMachiningToolStepCount())
Map.refMachiningParameterExpanderVM.ResetSliderValue() Map.refMachiningParameterExpanderVM.ResetSliderValue()
End If End If
End If End If
@@ -462,55 +494,55 @@ Public Class OperationsListExpanderVM
''' </summary> ''' </summary>
Public Sub MoveUp() Public Sub MoveUp()
' Verifico il numero di elementi selezionati ' Verifico il numero di elementi selezionati
Dim indexes As New List( Of Integer)() Dim indexes As New List(Of Integer)()
For index As Integer = 0 To OperationList.Count - 1 For index As Integer = 0 To OperationList.Count - 1
' Verifico gli elementi selezionati ' Verifico gli elementi selezionati
If OperationList.Item( index).IsSelected Then If OperationList.Item(index).IsSelected Then
' Se presente una disposizione esco ' Se presente una disposizione esco
If EgtGetOperationType( OperationList.Item( index).Id) = MCH_OY.DISP Then Return If EgtGetOperationType(OperationList.Item(index).Id) = MCH_OY.DISP Then Return
' Aggiungo l'operazione ' Aggiungo l'operazione
indexes.Add( index) indexes.Add(index)
End If End If
Next Next
Dim lenIndexes As Integer = indexes.Count Dim lenIndexes As Integer = indexes.Count
' Recupero Id ultima entità selezionata e precedente a quelle selezionate ' Recupero Id ultima entità selezionata e precedente a quelle selezionate
Dim LastSelectedId As Integer = OperationList( indexes( lenIndexes - 1)).Id Dim LastSelectedId As Integer = OperationList(indexes(lenIndexes - 1)).Id
Dim PreviousId As Integer = OperationList( indexes( 0) - 1).Id Dim PreviousId As Integer = OperationList(indexes(0) - 1).Id
' Sposto l'operazione precedente a quelle selezionate nell'ambiente Egt ' Sposto l'operazione precedente a quelle selezionate nell'ambiente Egt
If EgtRelocate( PreviousId, LastSelectedId, GDB_POS.AFTER) Then If EgtRelocate(PreviousId, LastSelectedId, GDB_POS.AFTER) Then
' Sposto l'operazione precedente a quelle selezionate nella grafica ' Sposto l'operazione precedente a quelle selezionate nella grafica
OperationList.Move( indexes(0) - 1, indexes( lenIndexes - 1)) ' + 1) OperationList.Move(indexes(0) - 1, indexes(lenIndexes - 1)) ' + 1)
' Ricalcolo le lavorazioni selezionate e quella che era precedente (e ora è seguente) ' Ricalcolo le lavorazioni selezionate e quella che era precedente (e ora è seguente)
If Not m_bMoveThroughDisps Then If Not m_bMoveThroughDisps Then
For index As Integer = 0 To indexes.Count - 1 For index As Integer = 0 To indexes.Count - 1
EgtSetCurrMachining( OperationList( indexes( index)).Id) EgtSetCurrMachining(OperationList(indexes(index)).Id)
EgtApplyMachining( False) EgtApplyMachining(False)
Next Next
EgtSetCurrMachining( PreviousId) EgtSetCurrMachining(PreviousId)
EgtApplyMachining( False) EgtApplyMachining(False)
EgtDraw() EgtDraw()
OnPropertyChanged( "MoveUp_IsEnabled") OnPropertyChanged("MoveUp_IsEnabled")
OnPropertyChanged( "MoveDown_IsEnabled") OnPropertyChanged("MoveDown_IsEnabled")
Map.refProjectVM.EmitTitle() Map.refProjectVM.EmitTitle()
Else Else
Dim nCurrPhase As Integer = EgtGetOperationPhase(LastSelectedId) Dim nCurrPhase As Integer = EgtGetOperationPhase(LastSelectedId)
For index As Integer = 0 To indexes.Count - 1 For index As Integer = 0 To indexes.Count - 1
Dim nOpeId As Integer = OperationList( indexes( index) - 1).Id Dim nOpeId As Integer = OperationList(indexes(index) - 1).Id
If EgtGetOperationType( nOpeId) <> MCH_OY.DISP Then If EgtGetOperationType(nOpeId) <> MCH_OY.DISP Then
EgtAdjustOperationPhase( nOpeId) EgtAdjustOperationPhase(nOpeId)
EgtSetCurrMachining( nOpeId) EgtSetCurrMachining(nOpeId)
EgtApplyMachining( False) EgtApplyMachining(False)
End If End If
Next Next
If EgtGetOperationType( PreviousId) <> MCH_OY.DISP Then If EgtGetOperationType(PreviousId) <> MCH_OY.DISP Then
EgtSetCurrMachining( PreviousId) EgtSetCurrMachining(PreviousId)
EgtApplyMachining( False) EgtApplyMachining(False)
End If End If
Dim nNewPhase As Integer = EgtGetOperationPhase(LastSelectedId) Dim nNewPhase As Integer = EgtGetOperationPhase(LastSelectedId)
If nNewPhase <> nCurrPhase Then EgtSetCurrPhase( nNewPhase) If nNewPhase <> nCurrPhase Then EgtSetCurrPhase(nNewPhase)
EgtDraw() EgtDraw()
OnPropertyChanged( NameOf(MoveUp_IsEnabled)) OnPropertyChanged(NameOf(MoveUp_IsEnabled))
OnPropertyChanged( NameOf(MoveDown_IsEnabled)) OnPropertyChanged(NameOf(MoveDown_IsEnabled))
Map.refProjectVM.EmitTitle() Map.refProjectVM.EmitTitle()
End If End If
End If End If
@@ -537,52 +569,52 @@ Public Class OperationsListExpanderVM
''' </summary> ''' </summary>
Public Sub MoveDown() Public Sub MoveDown()
' Verifico il numero di elementi selezionati ' Verifico il numero di elementi selezionati
Dim indexes As New List( Of Integer)() Dim indexes As New List(Of Integer)()
For index As Integer = 0 To OperationList.Count - 1 For index As Integer = 0 To OperationList.Count - 1
' Verifico gli elementi selezionati ' Verifico gli elementi selezionati
If OperationList.Item( index).IsSelected Then If OperationList.Item(index).IsSelected Then
' Se presente una disposizione esco ' Se presente una disposizione esco
If EgtGetOperationType( OperationList.Item( index).Id) = MCH_OY.DISP Then Return If EgtGetOperationType(OperationList.Item(index).Id) = MCH_OY.DISP Then Return
' Aggiungo l'operazione ' Aggiungo l'operazione
indexes.Add( index) indexes.Add(index)
End If End If
Next Next
Dim lenIndexes As Integer = indexes.Count Dim lenIndexes As Integer = indexes.Count
' Recupero Id prima entità selezionata e successiva a quelle selezionate ' Recupero Id prima entità selezionata e successiva a quelle selezionate
Dim FirstSelectedId As Integer = OperationList( indexes( 0)).Id Dim FirstSelectedId As Integer = OperationList(indexes(0)).Id
Dim NextId As Integer = OperationList( indexes( lenIndexes - 1) + 1).Id Dim NextId As Integer = OperationList(indexes(lenIndexes - 1) + 1).Id
' Sposto l'operazione successiva a quelle selezionate nell'ambiente Egt ' Sposto l'operazione successiva a quelle selezionate nell'ambiente Egt
If EgtRelocate( NextId, FirstSelectedId, GDB_POS.BEFORE) Then If EgtRelocate(NextId, FirstSelectedId, GDB_POS.BEFORE) Then
' Sposto l'operazione successiva a quelle selezionate nella grafica ' Sposto l'operazione successiva a quelle selezionate nella grafica
OperationList.Move( indexes( lenIndexes - 1) + 1, indexes( 0)) OperationList.Move(indexes(lenIndexes - 1) + 1, indexes(0))
' Ricalcolo la lavorazioni selezionate e quella che era seguente (e ora è precedente) ' Ricalcolo la lavorazioni selezionate e quella che era seguente (e ora è precedente)
If Not m_bMoveThroughDisps Then If Not m_bMoveThroughDisps Then
EgtSetCurrMachining( NextId) EgtSetCurrMachining(NextId)
EgtApplyMachining( False) EgtApplyMachining(False)
For index As Integer = 0 To indexes.Count - 1 For index As Integer = 0 To indexes.Count - 1
EgtSetCurrMachining( OperationList( indexes( index)).Id) EgtSetCurrMachining(OperationList(indexes(index)).Id)
EgtApplyMachining( False) EgtApplyMachining(False)
Next Next
EgtDraw() EgtDraw()
OnPropertyChanged( "MoveUp_IsEnabled") OnPropertyChanged("MoveUp_IsEnabled")
OnPropertyChanged( "MoveDown_IsEnabled") OnPropertyChanged("MoveDown_IsEnabled")
Map.refProjectVM.EmitTitle() Map.refProjectVM.EmitTitle()
Else Else
If EgtGetOperationType( NextId) <> MCH_OY.DISP Then If EgtGetOperationType(NextId) <> MCH_OY.DISP Then
EgtSetCurrMachining( NextId) EgtSetCurrMachining(NextId)
EgtApplyMachining( False) EgtApplyMachining(False)
End If End If
For index As Integer = 0 To indexes.Count - 1 For index As Integer = 0 To indexes.Count - 1
Dim nOpeId As Integer = OperationList( indexes( index) + 1).Id Dim nOpeId As Integer = OperationList(indexes(index) + 1).Id
If EgtGetOperationType( nOpeId) <> MCH_OY.DISP Then If EgtGetOperationType(nOpeId) <> MCH_OY.DISP Then
EgtAdjustOperationPhase( nOpeId) EgtAdjustOperationPhase(nOpeId)
EgtSetCurrMachining( nOpeId) EgtSetCurrMachining(nOpeId)
EgtApplyMachining( False) EgtApplyMachining(False)
End If End If
Next Next
EgtDraw() EgtDraw()
OnPropertyChanged( NameOf( MoveUp_IsEnabled)) OnPropertyChanged(NameOf(MoveUp_IsEnabled))
OnPropertyChanged( NameOf( MoveDown_IsEnabled)) OnPropertyChanged(NameOf(MoveDown_IsEnabled))
Map.refProjectVM.EmitTitle() Map.refProjectVM.EmitTitle()
End If End If
End If End If
@@ -608,6 +640,8 @@ Public Class OperationsListExpanderVM
''' Execute the Point. This method is invoked by the PointCommand. ''' Execute the Point. This method is invoked by the PointCommand.
''' </summary> ''' </summary>
Public Sub Update() Public Sub Update()
Dim tmpStatusLamp As New StatusLamp()
Map.refOperationsListExpanderVM.StatusLampList = tmpStatusLamp.LoadStatusLamp()
' Cursore di attesa ' Cursore di attesa
Application.Current.MainWindow.ForceCursor = True Application.Current.MainWindow.ForceCursor = True
Application.Current.MainWindow.Cursor = Cursors.Wait Application.Current.MainWindow.Cursor = Cursors.Wait
@@ -617,6 +651,7 @@ Public Class OperationsListExpanderVM
Dim bOk As Boolean = EgtApplyAllMachinings(bRecalc, False, sErr) Dim bOk As Boolean = EgtApplyAllMachinings(bRecalc, False, sErr)
EgtSetModified() EgtSetModified()
' Deseleziono l'Operazione selezionata e la de-evidenzio nel Disegno ' Deseleziono l'Operazione selezionata e la de-evidenzio nel Disegno
m_ForceDrawInIsSelected = False
For Each Operation In OperationList For Each Operation In OperationList
If Operation.IsSelected Then If Operation.IsSelected Then
Operation.IsSelected = False Operation.IsSelected = False
@@ -624,6 +659,9 @@ Public Class OperationsListExpanderVM
Next Next
' Ricarico la lista delle Operazioni ' Ricarico la lista delle Operazioni
LoadOperationList(GDB_ID.NULL) LoadOperationList(GDB_ID.NULL)
' Rimetto le lampadine in modo corretto
tmpStatusLamp.UpdateStatusLamp()
m_ForceDrawInIsSelected = True
' Aggiorno visualizzazione e ritorno a cursore standard ' Aggiorno visualizzazione e ritorno a cursore standard
EgtDraw() EgtDraw()
Application.Current.MainWindow.ForceCursor = False Application.Current.MainWindow.ForceCursor = False
@@ -999,7 +1037,9 @@ Public Class OperationsListExpanderVM
Private Sub LoadOperationList() Private Sub LoadOperationList()
OperationList.Clear() OperationList.Clear()
tmpOperationList.Clear()
Dim Id As Integer Dim Id As Integer
Dim OpStatusOnOff As Integer
Dim OpStatus As Boolean = True Dim OpStatus As Boolean = True
Dim OpName As String = String.Empty Dim OpName As String = String.Empty
Dim OpType As Integer = 0 Dim OpType As Integer = 0
@@ -1012,9 +1052,14 @@ Public Class OperationsListExpanderVM
If IsValidMachiningType(OpType) Then If IsValidMachiningType(OpType) Then
EgtSetCurrMachining(Id) EgtSetCurrMachining(Id)
OpStatus = EgtGetOperationMode(Id) OpStatus = EgtGetOperationMode(Id)
EgtGetStatus(Id, OpStatusOnOff)
EgtGetMachiningParam(MCH_MP.TOOL, OpTool) EgtGetMachiningParam(MCH_MP.TOOL, OpTool)
EgtGetMachiningParam(MCH_MP.NAME, OpMach) EgtGetMachiningParam(MCH_MP.NAME, OpMach)
OperationList.Add(New MachiningOpListBoxItem(Id, OpStatus, OpName, OpType, OpTool, OpMach)) ' Dichiarato per far si che le due liste operino in contemporaneo
Dim local_MachiningOpListBoxItem As New MachiningOpListBoxItem(Id, OpStatus, OpName, OpType, OpTool, OpMach)
OperationList.Add(local_MachiningOpListBoxItem)
' Lista creata per lavorare solo su le operazioni di macchina, utilizzata per la gestione dello spegnimento e accensione delle lamp
tmpOperationList.Add(local_MachiningOpListBoxItem)
ElseIf IsValidDispositionType(OpType) Then ElseIf IsValidDispositionType(OpType) Then
OpStatus = True OpStatus = True
OpTool = String.Empty OpTool = String.Empty
@@ -1256,7 +1301,7 @@ Public Class OperationsListExpanderVM
If m_NewMachining Then EndNewMachining(GDB_ID.NULL) If m_NewMachining Then EndNewMachining(GDB_ID.NULL)
' Disabilito visualizzazione utensile ' Disabilito visualizzazione utensile
If Not IsNothing(m_MachiningParameterExpander) Then If Not IsNothing(m_MachiningParameterExpander) Then
Map.refMachiningParameterExpanderVM.SetViewTool( False) Map.refMachiningParameterExpanderVM.SetViewTool(False)
End If End If
' Deseleziono le operazioni correnti per eliminare il mark ' Deseleziono le operazioni correnti per eliminare il mark
For Each Operation In OperationList For Each Operation In OperationList
@@ -1266,6 +1311,97 @@ Public Class OperationsListExpanderVM
Next Next
End Sub End Sub
Private Sub SetStatusOnLamp()
If Not IsNothing(m_tmpOperationList) Then
For Each ItemOp As MachiningOpListBoxItem In m_tmpOperationList
If Not ItemOp.OnOff Then
EgtSetStatus(ItemOp.Id, GDB_ST.OFF)
End If
Next
End If
EgtDraw()
End Sub
#End Region ' Methods
End Class
Public Class StatusLamp
#Region "FIELDS & PROPERTIES"
' Id dell'operazione
Private m_nId As Integer
Public Property nId As Integer
Get
Return m_nId
End Get
Set(value As Integer)
m_nId = value
End Set
End Property
' Stato della lampadina: vero, falso e nullo
Private m_bStatusLamp As Boolean?
Public Property bStatusLamp As Boolean?
Get
Return m_bStatusLamp
End Get
Set(value? As Boolean)
m_bStatusLamp = value
End Set
End Property
#End Region ' Fields & Properties
#Region "CONSTRUCTOR"
Sub New(nId As Integer, bStatusLamp As Boolean?)
m_nId = nId
m_bStatusLamp = bStatusLamp
End Sub
Sub New()
End Sub
#End Region ' Constructor
#Region "METHODS"
''' <summary>
''' Funzione che salva gli stati di tutte le lampadine delle operazioni
''' </summary>
''' <returns></returns>
Public Function LoadStatusLamp() As ObservableCollection(Of StatusLamp)
' Utilizzo di LINQ per creare la lista in modo più conciso, carico gli stati delle lampadine per tenerli salvati
Return New ObservableCollection(Of StatusLamp)(Map.refOperationsListExpanderVM.tmpOperationList.Select(Function(ItemOp) New StatusLamp(ItemOp.Id, ItemOp.OnOff)))
End Function
''' <summary>
''' Funzione che aggiorna lo stato delle lampadine delle operazioni
''' </summary>
Public Sub UpdateStatusLamp()
' Verifica che tmpOperationList non sia nulla
If IsNothing(Map.refOperationsListExpanderVM.tmpOperationList) Then Return
Dim tmpStatusLamp As StatusLamp
For Each ItemOp As MachiningOpListBoxItem In Map.refOperationsListExpanderVM.tmpOperationList
' Recuero lo stato della lampadina
tmpStatusLamp = Map.refOperationsListExpanderVM.StatusLampList.FirstOrDefault(Function(x) x.nId = ItemOp.Id)
' Controllo se lo stato della lampadina è falso nella lista StatusLampList
If Not tmpStatusLamp.bStatusLamp Then
' Rimetto lo stato della lampadina a falso nella OperationList
EgtSetStatus(ItemOp.Id, GDB_ST.OFF)
ItemOp.OnOff = False
' Controllo se lo stato della lampadina è nullo nella lista StatusLampList
ElseIf IsNothing(tmpStatusLamp.bStatusLamp) Then
' Rimetto lo stato della lampadina a nullo nella OperationList
EgtSetStatus(ItemOp.Id, GDB_ST.SEL)
ItemOp.OnOff = Nothing
End If
Next
End Sub
#End Region ' Methods #End Region ' Methods
End Class End Class
@@ -1,5 +1,4 @@
Imports System.Collections.ObjectModel Imports System.IO
Imports System.IO
Imports EgtUILib Imports EgtUILib
Imports EgtWPFLib5 Imports EgtWPFLib5
@@ -18,6 +17,9 @@ Public Class SimulationExpanderVM
Set(value As Boolean) Set(value As Boolean)
If value <> m_Simulation_IsExpanded Then If value <> m_Simulation_IsExpanded Then
Map.refMachiningOptionPanelVM.Set_IsExpanded(MachiningOptionPanelVM.MachiningOptionPanelExpander.SIMULATION, value) Map.refMachiningOptionPanelVM.Set_IsExpanded(MachiningOptionPanelVM.MachiningOptionPanelExpander.SIMULATION, value)
Map.refOperationsListExpanderVM.StatusLampList.Clear()
Dim tmpStatusLamp As New StatusLamp()
Map.refOperationsListExpanderVM.StatusLampList = tmpStatusLamp.LoadStatusLamp()
End If End If
End Set End Set
End Property End Property
@@ -348,8 +350,10 @@ Public Class SimulationExpanderVM
End If End If
' Aggiorno stato visualizzazione macchina (dipende anche da utensile) ' Aggiorno stato visualizzazione macchina (dipende anche da utensile)
UpdateMachView() UpdateMachView()
' Aggiorno visualizzazione ' Aggiorno visualizzazione (solo se interfaccia non minimizzata, per aumentare velocità)
EgtDraw() If Application.Current.MainWindow.WindowState <> WindowState.Minimized Then
EgtDraw()
End If
' Aggiorno dati CNC ' Aggiorno dati CNC
If nShowDataCounter = 5 Or GetSimulationStatus() = MCH_SIM_ST.UI_PAUSE Or GetSimulationStatus() = MCH_SIM_ST.UI_STOP Then If nShowDataCounter = 5 Or GetSimulationStatus() = MCH_SIM_ST.UI_PAUSE Or GetSimulationStatus() = MCH_SIM_ST.UI_STOP Then
ShowCncData() ShowCncData()
+6
View File
@@ -23,7 +23,10 @@ Friend Module OptionModule
' Parametri per import ' Parametri per import
Friend m_dDxfScaleFactor As Double Friend m_dDxfScaleFactor As Double
Friend m_dStlScaleFactor As Double Friend m_dStlScaleFactor As Double
Friend m_dOffScaleFactor As Double
Friend m_dPlyScaleFactor As Double
Friend m_dImgScaleFactor As Double Friend m_dImgScaleFactor As Double
Friend m_dAdvImpTolerance As Double
' Parametri per export ' Parametri per export
Friend m_nExportDxfFlag As Integer Friend m_nExportDxfFlag As Integer
@@ -117,7 +120,10 @@ Friend Module OptionModule
' Inizializzo variabili per import ' Inizializzo variabili per import
m_dDxfScaleFactor = GetPrivateProfileDouble(S_IMPORT, K_DXFSCALE, 1) m_dDxfScaleFactor = GetPrivateProfileDouble(S_IMPORT, K_DXFSCALE, 1)
m_dStlScaleFactor = GetPrivateProfileDouble(S_IMPORT, K_STLSCALE, 1) m_dStlScaleFactor = GetPrivateProfileDouble(S_IMPORT, K_STLSCALE, 1)
m_dOffScaleFactor = GetPrivateProfileDouble(S_IMPORT, K_OFFSCALE, 1)
m_dPlyScaleFactor = GetPrivateProfileDouble(S_IMPORT, K_PLYSCALE, 1)
m_dImgScaleFactor = GetPrivateProfileDouble(S_IMPORT, K_IMGSCALE, 1) m_dImgScaleFactor = GetPrivateProfileDouble(S_IMPORT, K_IMGSCALE, 1)
m_dAdvImpTolerance = GetPrivateProfileDouble(S_IMPORT, K_ADVTOLER, 0.05)
' Inizializzo variabili per export ' Inizializzo variabili per export
m_nExportDxfFlag = GetPrivateProfileInt(S_EXPORT, K_DXFFLAG, EEX_FL.COMP_LAYER) m_nExportDxfFlag = GetPrivateProfileInt(S_EXPORT, K_DXFFLAG, EEX_FL.COMP_LAYER)
m_nImgWidth = GetPrivateProfileInt(S_EXPORT, K_IMGWIDTH, 400) m_nImgWidth = GetPrivateProfileInt(S_EXPORT, K_IMGWIDTH, 400)
+40 -5
View File
@@ -136,6 +136,9 @@
</TabItem> </TabItem>
<TabItem Header="{Binding ImportMsg}"> <TabItem Header="{Binding ImportMsg}">
<StackPanel Margin="5,5,5,0"> <StackPanel Margin="5,5,5,0">
<GroupBox Grid.Column="1" Grid.RowSpan="2"
Header=""
Margin="0,0,0,5">
<Grid Margin="0,5,0,0"> <Grid Margin="0,5,0,0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
@@ -147,10 +150,12 @@
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="1" <TextBlock Grid.Row="0" Grid.Column="1"
VerticalAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"
Text="{Binding UnitScaleMsg}" /> Text="{Binding UnitScaleMsg}"/>
<TextBlock Grid.Row="0" Grid.Column="2" <TextBlock Grid.Row="0" Grid.Column="2"
VerticalAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"
Text="{Binding FactorScaleMsg}"/> Text="{Binding FactorScaleMsg}"/>
@@ -159,12 +164,12 @@
<ComboBox Grid.Row="1" Grid.Column="1" <ComboBox Grid.Row="1" Grid.Column="1"
ItemsSource="{Binding ScaleDXFList, Mode=OneWay}" ItemsSource="{Binding ScaleDXFList, Mode=OneWay}"
SelectedItem="{Binding SelectedDXFScale, UpdateSourceTrigger=PropertyChanged}" Height="25" SelectedItem="{Binding SelectedDXFScale, UpdateSourceTrigger=PropertyChanged}" Height="25"
Margin="10,0,0,5"/> Margin="10,5,0,5"/>
<TextBox Grid.Row="1" Grid.Column="2" <TextBox Grid.Row="1" Grid.Column="2"
Text="{Binding DxfScaleFactor}" Height="25" Text="{Binding DxfScaleFactor}" Height="25"
IsEnabled="{Binding DXFScaleEnable, UpdateSourceTrigger=LostFocus}" IsEnabled="{Binding DXFScaleEnable, UpdateSourceTrigger=LostFocus}"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,0,0,5"/> Margin="10,5,0,5"/>
<TextBlock Grid.Row="2" Grid.Column="0" <TextBlock Grid.Row="2" Grid.Column="0"
Text="{Binding StlScaleFactorMsg}" VerticalAlignment="Center"/> Text="{Binding StlScaleFactorMsg}" VerticalAlignment="Center"/>
<ComboBox Grid.Row="2" Grid.Column="1" <ComboBox Grid.Row="2" Grid.Column="1"
@@ -177,17 +182,47 @@
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
<TextBlock Grid.Row="3" Grid.Column="0" <TextBlock Grid.Row="3" Grid.Column="0"
Text="{Binding ImageScaleFactorMsg}" VerticalAlignment="Center"/> Text="{Binding OffScaleFactorMsg}" VerticalAlignment="Center"/>
<ComboBox Grid.Row="3" Grid.Column="1" <ComboBox Grid.Row="3" Grid.Column="1"
ItemsSource="{Binding ScaleOffList, Mode=OneWay}"
SelectedItem="{Binding SelectedOffScale, UpdateSourceTrigger=PropertyChanged}" Height="25"
Margin="10,0,0,5"/>
<TextBox Grid.Row="3" Grid.Column="2"
Text="{Binding OffScaleFactor}" Height="25"
IsEnabled="{Binding OffScaleEnable, UpdateSourceTrigger=LostFocus}"
VerticalContentAlignment="Center"
Margin="10,0,0,5"/>
<TextBlock Grid.Row="4" Grid.Column="0"
Text="{Binding PlyScaleFactorMsg}" VerticalAlignment="Center"/>
<ComboBox Grid.Row="4" Grid.Column="1"
ItemsSource="{Binding ScalePlyList, Mode=OneWay}"
SelectedItem="{Binding SelectedPlyScale, UpdateSourceTrigger=PropertyChanged}" Height="25"
Margin="10,0,0,5"/>
<TextBox Grid.Row="4" Grid.Column="2"
Text="{Binding PlyScaleFactor}" Height="25"
IsEnabled="{Binding PlyScaleEnable, UpdateSourceTrigger=LostFocus}"
VerticalContentAlignment="Center"
Margin="10,0,0,5"/>
<TextBlock Grid.Row="5" Grid.Column="0"
Text="{Binding ImageScaleFactorMsg}" VerticalAlignment="Center"/>
<ComboBox Grid.Row="5" Grid.Column="1"
ItemsSource="{Binding ScaleImageList, Mode=OneWay}" ItemsSource="{Binding ScaleImageList, Mode=OneWay}"
SelectedItem="{Binding SelectedImageScale, UpdateSourceTrigger=PropertyChanged}" Height="25" SelectedItem="{Binding SelectedImageScale, UpdateSourceTrigger=PropertyChanged}" Height="25"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
<TextBox Grid.Row="3" Grid.Column="2" <TextBox Grid.Row="5" Grid.Column="2"
Text="{Binding ImageScaleFactor}" Height="25" Text="{Binding ImageScaleFactor}" Height="25"
IsEnabled="{Binding ImageScaleEnable, UpdateSourceTrigger=LostFocus}" IsEnabled="{Binding ImageScaleEnable, UpdateSourceTrigger=LostFocus}"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Margin="10,0,0,5"/> Margin="10,0,0,5"/>
</Grid> </Grid>
</GroupBox>
<UniformGrid Grid.ColumnSpan="2" Columns="2"
Margin="0,5,0,5">
<TextBlock Text="{Binding AdvImpToleranceMsg}" VerticalAlignment="Center"/>
<TextBox Text="{Binding AdvImpTolerance}" Height="25"
VerticalContentAlignment="Center"
Margin="10,0,0,0"/>
</UniformGrid>
</StackPanel> </StackPanel>
</TabItem> </TabItem>
<TabItem Header="{Binding ExportMsg}"> <TabItem Header="{Binding ExportMsg}">
+151 -7
View File
@@ -65,6 +65,20 @@ Public Class OptionWindowVM
End Get End Get
End Property End Property
Private m_ScaleOffList As List(Of String) = New List(Of String)({"mm", "inch", EgtMsg(MSG_OPTIONPAGE + 46)})
Public ReadOnly Property ScaleOffList As List(Of String)
Get
Return m_ScaleOffList
End Get
End Property
Private m_ScalePlyList As List(Of String) = New List(Of String)({"mm", "inch", EgtMsg(MSG_OPTIONPAGE + 46)})
Public ReadOnly Property ScalePlyList As List(Of String)
Get
Return m_ScalePlyList
End Get
End Property
Private m_ScaleImageList As List(Of String) = New List(Of String)({"mm", "inch", EgtMsg(MSG_OPTIONPAGE + 46)}) Private m_ScaleImageList As List(Of String) = New List(Of String)({"mm", "inch", EgtMsg(MSG_OPTIONPAGE + 46)})
Public ReadOnly Property ScaleImageList As List(Of String) Public ReadOnly Property ScaleImageList As List(Of String)
Get Get
@@ -346,6 +360,36 @@ Public Class OptionWindowVM
End Set End Set
End Property End Property
Public Property OffScaleFactor As String
Get
Return LenToString(OptionModule.m_dOffScaleFactor, 5)
End Get
Set(value As String)
Dim dVal As Double = 0
If StringToLen(value, dVal) AndAlso dVal > 0 Then
OptionModule.m_dOffScaleFactor = dVal
WritePrivateProfileString(S_IMPORT, K_OFFSCALE, DoubleToString(OptionModule.m_dOffScaleFactor, 5))
Map.refProjectVM.GetController().SetScaleForOffImport(OptionModule.m_dOffScaleFactor)
NotifyPropertyChanged("OffScaleFactor")
End If
End Set
End Property
Public Property PlyScaleFactor As String
Get
Return LenToString(OptionModule.m_dPlyScaleFactor, 5)
End Get
Set(value As String)
Dim dVal As Double = 0
If StringToLen(value, dVal) AndAlso dVal > 0 Then
OptionModule.m_dPlyScaleFactor = dVal
WritePrivateProfileString(S_IMPORT, K_PLYSCALE, DoubleToString(OptionModule.m_dPlyScaleFactor, 5))
Map.refProjectVM.GetController().SetScaleForPLyImport(OptionModule.m_dPlyScaleFactor)
NotifyPropertyChanged("PlyScaleFactor")
End If
End Set
End Property
Public Property ImageScaleFactor As String Public Property ImageScaleFactor As String
Get Get
Return LenToString(OptionModule.m_dImgScaleFactor, 5) Return LenToString(OptionModule.m_dImgScaleFactor, 5)
@@ -361,6 +405,20 @@ Public Class OptionWindowVM
End Set End Set
End Property End Property
Public Property AdvImpTolerance As String
Get
Return LenToString(OptionModule.m_dAdvImpTolerance, 5)
End Get
Set(value As String)
Dim dVal As Double = 0
If StringToLen(value, dVal) AndAlso dVal > 0 Then
OptionModule.m_dAdvImpTolerance = dVal
Map.refProjectVM.GetController.SetAdvImpTolerance(OptionModule.m_dAdvImpTolerance)
WritePrivateProfileString(S_IMPORT, K_ADVTOLER, DoubleToString(OptionModule.m_dAdvImpTolerance, 5))
End If
End Set
End Property
Public Property ImageWidth As String Public Property ImageWidth As String
Get Get
Return OptionModule.m_nImgWidth.ToString() Return OptionModule.m_nImgWidth.ToString()
@@ -515,6 +573,28 @@ Public Class OptionWindowVM
End Set End Set
End Property End Property
Private m_OffScaleEnable As Boolean = False
Public Property OffScaleEnable As Boolean
Get
Return m_OffScaleEnable
End Get
Set(value As Boolean)
m_OffScaleEnable = value
NotifyPropertyChanged("OffScaleEnable")
End Set
End Property
Private m_PlyScaleEnable As Boolean = False
Public Property PlyScaleEnable As Boolean
Get
Return m_PlyScaleEnable
End Get
Set(value As Boolean)
m_PlyScaleEnable = value
NotifyPropertyChanged("PlyScaleEnable")
End Set
End Property
Private m_ImageScaleEnable As Boolean = False Private m_ImageScaleEnable As Boolean = False
Public Property ImageScaleEnable As Boolean Public Property ImageScaleEnable As Boolean
Get Get
@@ -576,6 +656,56 @@ Public Class OptionWindowVM
End Set End Set
End Property End Property
Public Property SelectedOffScale As String
Get
If Math.Abs(OptionModule.m_dOffScaleFactor - ONEMM) < EPS_SMALL * 10 Then
Return ScaleOffList(ScaleOffList.IndexOf("mm"))
ElseIf Math.Abs(OptionModule.m_dOffScaleFactor - ONEINCH) < EPS_SMALL * 10 Then
Return ScaleOffList(ScaleOffList.IndexOf("inch"))
Else
OffScaleEnable = True
Return ScaleOffList(ScaleOffList.IndexOf(EgtMsg(MSG_OPTIONPAGE + 46)))
End If
End Get
Set(value As String)
If value = "mm" Then
OffScaleFactor = LenToString(ONEMM, 3)
OffScaleEnable = False
ElseIf value = "inch" Then
OffScaleFactor = LenToString(ONEINCH, 4)
OffScaleEnable = False
Else
OffScaleFactor = LenToString(OptionModule.m_dOffScaleFactor, 4)
OffScaleEnable = True
End If
End Set
End Property
Public Property SelectedPlyScale As String
Get
If Math.Abs(OptionModule.m_dPlyScaleFactor - ONEMM) < EPS_SMALL * 10 Then
Return ScalePlyList(ScalePlyList.IndexOf("mm"))
ElseIf Math.Abs(OptionModule.m_dPlyScaleFactor - ONEINCH) < EPS_SMALL * 10 Then
Return ScalePlyList(ScalePlyList.IndexOf("inch"))
Else
PlyScaleEnable = True
Return ScalePlyList(ScalePlyList.IndexOf(EgtMsg(MSG_OPTIONPAGE + 46)))
End If
End Get
Set(value As String)
If value = "mm" Then
PlyScaleFactor = LenToString(ONEMM, 3)
PlyScaleEnable = False
ElseIf value = "inch" Then
PlyScaleFactor = LenToString(ONEINCH, 4)
PLyScaleEnable = False
Else
PLyScaleFactor = LenToString(OptionModule.m_dPlyScaleFactor, 4)
PLyScaleEnable = True
End If
End Set
End Property
Public Property SelectedImageScale As String Public Property SelectedImageScale As String
Get Get
If Math.Abs(OptionModule.m_dImgScaleFactor - ONEMM) < EPS_SMALL * 10 Then If Math.Abs(OptionModule.m_dImgScaleFactor - ONEMM) < EPS_SMALL * 10 Then
@@ -808,28 +938,42 @@ Public Class OptionWindowVM
Public ReadOnly Property ImportMsg As String Public ReadOnly Property ImportMsg As String
Get Get
Return EgtMsg(MSG_OPTIONPAGE + 19) Return EgtMsg(6519) ' Import
End Get End Get
End Property End Property
Public ReadOnly Property DxfScaleFactorMsg As String Public ReadOnly Property DxfScaleFactorMsg As String
Get Get
Return EgtMsg(MSG_OPTIONPAGE + 20) Return EgtMsg(6520) ' DXF
End Get End Get
End Property End Property
Public ReadOnly Property StlScaleFactorMsg As String Public ReadOnly Property StlScaleFactorMsg As String
Get Get
Return EgtMsg(MSG_OPTIONPAGE + 21) Return EgtMsg(6521) ' STL
End Get
End Property
Public ReadOnly Property OffScaleFactorMsg As String
Get
Return EgtMsg(6561) ' OFF
End Get
End Property
Public ReadOnly Property PlyScaleFactorMsg As String
Get
Return EgtMsg(6563) ' PLY
End Get End Get
End Property End Property
Public ReadOnly Property ImageScaleFactorMsg As String Public ReadOnly Property ImageScaleFactorMsg As String
Get Get
Return EgtMsg(MSG_OPTIONPAGE + 22) Return EgtMsg(6522) ' Immagini
End Get
End Property
Public ReadOnly Property AdvImpToleranceMsg As String
Get
Return EgtMsg(6562) ' Tolleranza di importazione
End Get End Get
End Property End Property
Public ReadOnly Property ExportMsg As String Public ReadOnly Property ExportMsg As String
Get Get
Return EgtMsg(MSG_OPTIONPAGE + 23) Return EgtMsg(6523) ' Export
End Get End Get
End Property End Property
Public ReadOnly Property UnitScaleMsg As String Public ReadOnly Property UnitScaleMsg As String
@@ -1256,7 +1400,7 @@ Public Class OptionWindowVM
' L'aggiornamento della macchina "{0}" non è riuscito. ' L'aggiornamento della macchina "{0}" non è riuscito.
Dim sKo As String = String.Format(EgtMsg(MSG_OPTIONPAGE + 35), sMachName) Dim sKo As String = String.Format(EgtMsg(MSG_OPTIONPAGE + 35), sMachName)
EgtOutLog(sKo) EgtOutLog(sKo)
MessageBox.Show(sKo, EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK) MessageBox.Show(sKo, EgtMsg(MSG_MESSAGEBOX + 1), MessageBoxButton.OK, MessageBoxImage.Error)
Return Return
End Try End Try
End If End If
+34 -15
View File
@@ -4,7 +4,6 @@ Imports System.IO
Imports System.Globalization Imports System.Globalization
Imports EgtUILib Imports EgtUILib
Imports EgtWPFLib5 Imports EgtWPFLib5
Imports EgtWPFLib5.EgtFloating
Public Class ProjectVM Public Class ProjectVM
Inherits TabViewModel Inherits TabViewModel
@@ -58,11 +57,12 @@ Public Class ProjectVM
End Get End Get
End Property End Property
#End Region
#End Region
#Region "EGTUILIB FIELDS" #Region "EGTUILIB FIELDS"
Private m_bCPlaneTypePos As Boolean Private m_bCPlaneTypePos As Boolean
' Variabile per implementazione eventi ' Variabile per implementazione eventi
Private m_InputText As String Private m_InputText As String
@@ -244,14 +244,14 @@ Public Class ProjectVM
Dim sTitle As String = EgtMsg(10101) Dim sTitle As String = EgtMsg(10101)
MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error) MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error)
End If End If
' Se altrimenti manca il collegamento con la chiave di rete ' Se altrimenti manca il collegamento con la chiave di rete
ElseIf IniFile.m_nKeyLevel = -9 Then ElseIf IniFile.m_nKeyLevel = -9 Then
EgtOutLog("Missing Link with Net Dongle") EgtOutLog("Missing Link with Net Dongle")
' Box di avviso chiave mancante : "Collegamento con la Chiave di rete non riuscito. \n Verificare la connessione." "Errore" ' Box di avviso chiave mancante : "Collegamento con la Chiave di rete non riuscito. \n Verificare la connessione." "Errore"
Dim sText As String = EgtMsg(10108) & vbCrLf & EgtMsg(10109) Dim sText As String = EgtMsg(10108) & vbCrLf & EgtMsg(10109)
Dim sTitle As String = EgtMsg(10101) Dim sTitle As String = EgtMsg(10101)
MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error) MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error)
' Altrimenti manca la licenza ' Altrimenti manca la licenza
Else Else
EgtOutLog("Problems with Licence") EgtOutLog("Problems with Licence")
' Box di avviso licenza con problemi : sKeyInfo \n "Programma senza licenza. \n Caricala e riavvia il programma." "Errore" ' Box di avviso licenza con problemi : sKeyInfo \n "Programma senza licenza. \n Caricala e riavvia il programma." "Errore"
@@ -348,6 +348,7 @@ Public Class ProjectVM
End If End If
End If End If
m_Controller.SetSurfTmTolerance(OptionModule.m_dGeometryTolerance) m_Controller.SetSurfTmTolerance(OptionModule.m_dGeometryTolerance)
m_Controller.SetAdvImpTolerance(OptionModule.m_dAdvImpTolerance)
m_Controller.SetUseCustomColors(True, S_SCENE, K_CUSTOMCOLORS) m_Controller.SetUseCustomColors(True, S_SCENE, K_CUSTOMCOLORS)
' imposto unità di misura per interfaccia utente ' imposto unità di misura per interfaccia utente
IniFile.m_bMmUnits = (GetPrivateProfileInt(S_SCENE, K_MMUNITS, 1) <> 0) IniFile.m_bMmUnits = (GetPrivateProfileInt(S_SCENE, K_MMUNITS, 1) <> 0)
@@ -405,6 +406,8 @@ Public Class ProjectVM
' Imposto default per import ' Imposto default per import
m_Controller.SetScaleForDxfImport(OptionModule.m_dDxfScaleFactor) m_Controller.SetScaleForDxfImport(OptionModule.m_dDxfScaleFactor)
m_Controller.SetScaleForStlImport(OptionModule.m_dStlScaleFactor) m_Controller.SetScaleForStlImport(OptionModule.m_dStlScaleFactor)
m_Controller.SetScaleForOffImport(OptionModule.m_dOffScaleFactor)
m_Controller.SetScaleForPlyImport(OptionModule.m_dPlyScaleFactor)
m_Controller.SetScaleForImageImport(OptionModule.m_dImgScaleFactor) m_Controller.SetScaleForImageImport(OptionModule.m_dImgScaleFactor)
' Imposto default per export ' Imposto default per export
m_Controller.SetDefaultForDxfExport(OptionModule.m_nExportDxfFlag) m_Controller.SetDefaultForDxfExport(OptionModule.m_nExportDxfFlag)
@@ -486,7 +489,7 @@ Public Class ProjectVM
End If End If
' Esecuzione ' Esecuzione
bOk = ExecBeam(sFile, sMachine, nFlag, True) bOk = ExecBeam(sFile, sMachine, nFlag, True)
' altrimenti pareti ' altrimenti pareti
Else Else
' Verifica abilitazione elaborazione pareti ' Verifica abilitazione elaborazione pareti
If Not VerifyWall(sFile, sMachine, nFlag) Then If Not VerifyWall(sFile, sMachine, nFlag) Then
@@ -500,12 +503,12 @@ Public Class ProjectVM
If nFlag = 0 Or nFlag = 3 Or nFlag = 4 Then If nFlag = 0 Or nFlag = 3 Or nFlag = 4 Then
Map.refMachinePanelVM.SaveCurrentMachine() Map.refMachinePanelVM.SaveCurrentMachine()
Map.refMainWindowVM.CloseApplicationCmd() Map.refMainWindowVM.CloseApplicationCmd()
' Altrimenti se richiesta visualizzazione DB utensili ' Altrimenti se richiesta visualizzazione DB utensili
ElseIf nFlag = 11 And bOk Then ElseIf nFlag = 11 And bOk Then
MyMachinePanelVM.ToolDb() MyMachinePanelVM.ToolDb()
Map.refMachinePanelVM.SaveCurrentMachine() Map.refMachinePanelVM.SaveCurrentMachine()
Map.refMainWindowVM.CloseApplicationCmd() Map.refMainWindowVM.CloseApplicationCmd()
' Altrimenti se richiesta visualizzazione DB lavorazioni ' Altrimenti se richiesta visualizzazione DB lavorazioni
ElseIf nFlag = 12 And bOk Then ElseIf nFlag = 12 And bOk Then
MyMachinePanelVM.MachDb() MyMachinePanelVM.MachDb()
If bBeam Then If bBeam Then
@@ -515,7 +518,7 @@ Public Class ProjectVM
End If End If
Map.refMachinePanelVM.SaveCurrentMachine() Map.refMachinePanelVM.SaveCurrentMachine()
Map.refMainWindowVM.CloseApplicationCmd() Map.refMainWindowVM.CloseApplicationCmd()
' Altrimenti se errore ' Altrimenti se errore
ElseIf Not bOk Then ElseIf Not bOk Then
EgtZoom(ZM.ALL) EgtZoom(ZM.ALL)
End If End If
@@ -539,7 +542,13 @@ Public Class ProjectVM
' Esecuzione ' Esecuzione
OpenDoorFile(sFile, bNcGen, bExit, nProbing) OpenDoorFile(sFile, bNcGen, bExit, nProbing)
' Se richiesta uscita immediata ' Se richiesta uscita immediata
If bExit Then Map.refMainWindowVM.CloseApplicationCmd() If bExit Then
Map.refMainWindowVM.CloseApplicationCmd()
End If
' Se applicate lavorazioni, vado in modalità Lavora
If EgtGetCurrMachGroup() <> GDB_ID.NULL Then
Map.refTopCommandBarVM.SetMachiningMode()
End If
Return Return
End If End If
' Se file tol, gestione aggiornamento dei dati degli utensili ' Se file tol, gestione aggiornamento dei dati degli utensili
@@ -607,7 +616,7 @@ Public Class ProjectVM
Select Case nFileType Select Case nFileType
Case FT.NGE, FT.NFE Case FT.NGE, FT.NFE
Return m_Controller.OpenProject(sFile, False) Return m_Controller.OpenProject(sFile, False)
Case FT.DXF, FT.STL, FT._3MF, FT._3DM, FT.OBJ, FT.CNC, FT.CSF, FT.BTL, FT.BTLX, FT.IMG, FT.PNT, FT.IGES, FT.STEP_, FT.ACIS, FT.PARASOLID, FT.JT, FT.VRML, FT.C3D Case FT.DXF, FT.STL, FT._3MF, FT._3DM, FT.OFF, FT.PLY, FT.OBJ, FT.CNC, FT.CSF, FT.BTL, FT.BTLX, FT.IMG, FT.PNT, FT.IGES, FT.STEP_, FT.ACIS, FT.PARASOLID, FT.JT, FT.VRML, FT.C3D
Return m_Controller.ImportProject(sFile, False) Return m_Controller.ImportProject(sFile, False)
Case FT.TSC, FT.LUA Case FT.TSC, FT.LUA
Return m_Controller.Exec(sFile, False) Return m_Controller.Exec(sFile, False)
@@ -620,7 +629,6 @@ Public Class ProjectVM
' Formato descrizione porte ' Formato descrizione porte
If Path.GetExtension(sFile).ToLower() = ".ddf" Then If Path.GetExtension(sFile).ToLower() = ".ddf" Then
nErr = ExecDoors(m_ProjectScene, sFile, bNcGen, bBatch, nProbing) nErr = ExecDoors(m_ProjectScene, sFile, bNcGen, bBatch, nProbing)
'CreateDoors(sFile, bNcGen, bBatch, nProbing)
Map.refProjectVM.EmitTitle() Map.refProjectVM.EmitTitle()
Return True Return True
End If End If
@@ -1318,6 +1326,15 @@ Public Class ProjectVM
ElseIf IniFile.m_ProjectMode = ProjectModeOpt.MACHINING And m_SceneSelType = SceneSelTypeOpt.MACHINING And ElseIf IniFile.m_ProjectMode = ProjectModeOpt.MACHINING And m_SceneSelType = SceneSelTypeOpt.MACHINING And
(EgtGetType(nId) = GDB_TY.SRF_MESH Or EgtGetType(nId) = GDB_TY.SRF_FRGN) Then (EgtGetType(nId) = GDB_TY.SRF_MESH Or EgtGetType(nId) = GDB_TY.SRF_FRGN) Then
If Not EgtIsSelectedObj(nId) Then m_Controller.MouseSelectedObj(nId, bLast) If Not EgtIsSelectedObj(nId) Then m_Controller.MouseSelectedObj(nId, bLast)
ElseIf Not Keyboard.IsKeyDown(Key.LeftShift) Then
m_Controller.MouseSelectedObj(nId, False)
If EgtIsSelectedObj(nId) Then
' Selezione layer in albero
Map.refManageLayerExpanderVM.UpdateObjInObjTreeNoMark(nId)
Map.refManageLayerExpanderVM.SelectIdInObjTreeNoMark(nId)
Map.refManageLayerExpanderVM.UpdateObjTree()
End If
EgtDraw()
Else Else
m_Controller.MouseSelectedObj(nId, bLast) m_Controller.MouseSelectedObj(nId, bLast)
End If End If
@@ -1384,7 +1401,7 @@ Public Class ProjectVM
' Visualizzo numerazione ' Visualizzo numerazione
Analyze.CreateAnalyzeGroup() Analyze.CreateAnalyzeGroup()
Analyze.CreateCurveCompoPntNbrs(nId) Analyze.CreateCurveCompoPntNbrs(nId)
' Se superficie trimesh, visualizzo dati faccetta toccata ' Se superficie trimesh, visualizzo dati faccetta toccata
ElseIf EgtGetType(nId) = GDB_TY.SRF_MESH Then ElseIf EgtGetType(nId) = GDB_TY.SRF_MESH Then
Dim nFac As Integer = EgtSurfTmFacetFromTria(nId, nSub) Dim nFac As Integer = EgtSurfTmFacetFromTria(nId, nSub)
If nFac <> -1 Then If nFac <> -1 Then
@@ -1405,10 +1422,10 @@ Public Class ProjectVM
" / φ=" + DoubleToString(dPhi, 2) + " θ=" + DoubleToString(dTheta, 2) " / φ=" + DoubleToString(dPhi, 2) + " θ=" + DoubleToString(dTheta, 2)
Map.refStatusBarVM.NotifyStatusOutput(sOut) Map.refStatusBarVM.NotifyStatusOutput(sOut)
End If End If
' Se Regione, visualizzo dati parte toccata ' Se Regione, visualizzo dati parte toccata
ElseIf EgtGetType(nId) = GDB_TY.SRF_FRGN Then ElseIf EgtGetType(nId) = GDB_TY.SRF_FRGN Then
Dim nChk As Integer = nSub Dim nChk As Integer = nSub
If nChk >= 0 AndAlso nChk < EgtSurfFrChunkCount( nId) Then If nChk >= 0 AndAlso nChk < EgtSurfFrChunkCount(nId) Then
' Visualizzo la normale e il contorno della parte ' Visualizzo la normale e il contorno della parte
Analyze.CreateAnalyzeGroup() Analyze.CreateAnalyzeGroup()
Analyze.CreateChunkNormal(nId, nChk) Analyze.CreateChunkNormal(nId, nChk)
@@ -1547,6 +1564,8 @@ Public Class ProjectVM
nFlag = GetPrivateProfileInt(S_IMPORT, K_CNCFLAG, EIC_FL.NONE) nFlag = GetPrivateProfileInt(S_IMPORT, K_CNCFLAG, EIC_FL.NONE)
ElseIf nType = FT.BTL Or nType = FT.BTLX Then ElseIf nType = FT.BTL Or nType = FT.BTLX Then
nFlag = GetPrivateProfileInt(S_IMPORT, K_BTLFLAG, EIB_FL.NONE) nFlag = GetPrivateProfileInt(S_IMPORT, K_BTLFLAG, EIB_FL.NONE)
ElseIf nType = FT._3MF
nFlag = GetPrivateProfileInt(S_IMPORT, K_3MFFLAG, EI3_FL.NONE)
ElseIf nType = FT.OBJ Or nType = FT.IGES Or nType = FT.STEP_ Or nType = FT.ACIS Or ElseIf nType = FT.OBJ Or nType = FT.IGES Or nType = FT.STEP_ Or nType = FT.ACIS Or
nType = FT.PARASOLID Or nType = FT.JT Or nType = FT.VRML Or nType = FT.C3D Then nType = FT.PARASOLID Or nType = FT.JT Or nType = FT.VRML Or nType = FT.C3D Then
nFlag = GetPrivateProfileInt(S_IMPORT, K_ADVFLAG, 0) nFlag = GetPrivateProfileInt(S_IMPORT, K_ADVFLAG, 0)
Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

+270 -242
View File
@@ -139,254 +139,265 @@
<TabControl Grid.Row="1" Margin="5,0,5,5" SelectionChanged="TabControl_SelectionChanged"> <TabControl Grid.Row="1" Margin="5,0,5,5" SelectionChanged="TabControl_SelectionChanged">
<TabItem Header="Association Table"> <TabItem Header="Association Table">
<TabItem.Content> <TabItem.Content>
<DataGrid Name="AssociationDataGrid" <Grid>
ItemsSource="{Binding Path=SelectedItem.AssociationList, <FrameworkElement x:Name="dummyElement" Visibility="Collapsed"/>
ElementName=TablesListBox}" <DataGrid Name="AssociationDataGrid"
SelectedItem="{Binding Path=SelectedItem.SelectedAssociation, ItemsSource="{Binding Path=SelectedItem.AssociationList,
ElementName=TablesListBox,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ElementName=TablesListBox}"
IsSynchronizedWithCurrentItem="False" EgtCAM5:MultiSelectorBehaviours.SynchronizedSelectedItems="{Binding SelectedItem.SelectedAssociations,
AutoGenerateColumns="False" ElementName=TablesListBox}"
CanUserSortColumns="False" IsSynchronizedWithCurrentItem="False"
CanUserResizeColumns="False" AutoGenerateColumns="False"
CanUserResizeRows="False" CanUserSortColumns="False"
CanUserReorderColumns="False" CanUserResizeColumns="False"
SelectionMode="Single" CanUserResizeRows="False"
ScrollViewer.CanContentScroll="True" CanUserReorderColumns="False"
ScrollViewer.VerticalScrollBarVisibility="Auto" SelectionMode="Extended"
ScrollViewer.HorizontalScrollBarVisibility="Hidden" PreviewMouseDown="DataGrid_PreviewMouseDown"
VirtualizingStackPanel.IsVirtualizing="False"> PreviewMouseUp="DataGrid_PreviewMouseUp"
<Interactivity:Interaction.Behaviors> PreviewMouseMove="DataGrid_PreviewMouseMove"
<EgtCAM5:ScrollIntoViewForDataGrid/> ScrollViewer.CanContentScroll="True"
</Interactivity:Interaction.Behaviors> ScrollViewer.VerticalScrollBarVisibility="Auto"
<DataGrid.InputBindings> ScrollViewer.HorizontalScrollBarVisibility="Hidden"
<KeyBinding Key="F3" Modifiers="Control" Command="{Binding SearchNextCommand}"/> VirtualizingStackPanel.IsVirtualizing="False">
<KeyBinding Key="F3" Modifiers="Shift" Command="{Binding SearchPreviousCommand}"/> <Interactivity:Interaction.Behaviors>
</DataGrid.InputBindings> <EgtCAM5:ScrollIntoViewForDataGrid/>
<DataGrid.RowStyle> </Interactivity:Interaction.Behaviors>
<Style TargetType="DataGridRow"> <DataGrid.InputBindings>
<Style.Resources> <KeyBinding Key="F3" Modifiers="Control" Command="{Binding SearchNextCommand}"/>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="{x:Static SystemColors.HighlightColor}"/> <KeyBinding Key="F3" Modifiers="Shift" Command="{Binding SearchPreviousCommand}"/>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="{x:Static SystemColors.HighlightTextColor}"/> </DataGrid.InputBindings>
</Style.Resources> <DataGrid.RowStyle>
<Setter Property="IsSelected" Value="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> <Style TargetType="DataGridRow">
<EventSetter Event="PreviewMouseDown" Handler="LeftTableMouseDown"/> <Style.Resources>
<Style.Triggers> <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="{x:Static SystemColors.HighlightColor}"/>
<DataTrigger Binding="{Binding IsValidForSearch}" Value="True"> <SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="{x:Static SystemColors.HighlightTextColor}"/>
<Setter Property="Background" Value="{StaticResource EgaltechGreen}"></Setter> </Style.Resources>
</DataTrigger> <Setter Property="IsSelected" Value="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</Style.Triggers> <EventSetter Event="PreviewMouseDown" Handler="LeftTableMouseDown"/>
</Style> <Style.Triggers>
</DataGrid.RowStyle> <DataTrigger Binding="{Binding IsValidForSearch}" Value="True">
<DataGrid.Columns> <Setter Property="Background" Value="{StaticResource EgaltechGreen}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<!--Colonna On--> <!--Colonna On-->
<DataGridCheckBoxColumn Width="Auto" Binding="{Binding OnPar}"> <DataGridCheckBoxColumn Width="Auto" Binding="{Binding OnPar}">
<DataGridCheckBoxColumn.Header> <DataGridCheckBoxColumn.Header>
<TextBlock Text="{Binding Path=DataContext.OnHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.OnHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridCheckBoxColumn.Header> </DataGridCheckBoxColumn.Header>
</DataGridCheckBoxColumn> </DataGridCheckBoxColumn>
<!--Colonna Name--> <!--Colonna Name-->
<DataGridTemplateColumn Width="1*"> <DataGridTemplateColumn Width="1*">
<DataGridTemplateColumn.Header> <DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.GeomNameHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.GeomNameHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridTemplateColumn.Header> </DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate> <DataTemplate>
<ComboBox IsEditable="False" <ComboBox IsEditable="False"
SelectedItem="{Binding Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=NamesList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/> ItemsSource="{Binding Path=NamesList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" <TextBlock Text="{Binding Path=Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> ToolTip="{Binding Path=Name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
<!--Colonna Operation--> <!--Colonna Operation-->
<DataGridTemplateColumn Width="0.75*"> <DataGridTemplateColumn Width="0.75*">
<DataGridTemplateColumn.Header> <DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.OperationHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.OperationHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridTemplateColumn.Header> </DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate> <DataTemplate>
<ComboBox IsEditable="False" <ComboBox IsEditable="False"
SelectedItem="{Binding Oper,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Oper,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=OperationsList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/> ItemsSource="{Binding Path=OperationsList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=Oper,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Text="{Binding Path=Oper,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
<!--Colonna Machine Id--> <!--Colonna Machine Id-->
<DataGridTemplateColumn Width="38"> <DataGridTemplateColumn Width="38">
<DataGridTemplateColumn.Header> <DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.MIdHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.MIdHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridTemplateColumn.Header> </DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate> <DataTemplate>
<ComboBox IsEditable="False" <ComboBox IsEditable="False"
SelectedItem="{Binding MachId,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding MachId,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Source={x:Reference TablesListBox}, Path=SelectedItem.MachIdList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/> ItemsSource="{Binding Source={x:Reference TablesListBox}, Path=SelectedItem.MachIdList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=MachId,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" <TextBlock Text="{Binding Path=MachId,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
HorizontalAlignment="Center"/> HorizontalAlignment="Center"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
<!--Colonna Shift--> <!--Colonna Shift-->
<DataGridTemplateColumn Width="38"> <DataGridTemplateColumn Width="38">
<DataGridTemplateColumn.Header> <DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.ShiftHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.ShiftHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridTemplateColumn.Header> </DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate> <DataTemplate>
<ComboBox IsEditable="False" <ComboBox IsEditable="False"
SelectedItem="{Binding Shift,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Shift,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=ShiftList,Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/> ItemsSource="{Binding Path=ShiftList,Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=Shift,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" <TextBlock Text="{Binding Path=Shift,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
HorizontalAlignment="Center"/> HorizontalAlignment="Center"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
<!--Colonna MachiningType--> <!--Colonna MachiningType-->
<DataGridTemplateColumn Width="0.5*"> <DataGridTemplateColumn Width="0.5*">
<DataGridTemplateColumn.Header> <DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.MachTypeHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.MachTypeHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridTemplateColumn.Header> </DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate> <DataTemplate>
<ComboBox IsEditable="False" <ComboBox IsEditable="False"
SelectedItem="{Binding SelectedMachType,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedMachType,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=MachTypeList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding Path=MachTypeList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="TypeName"/> DisplayMemberPath="TypeName"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=SelectedMachType.TypeName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Text="{Binding Path=SelectedMachType.TypeName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
<!--Colonna Machining--> <!--Colonna Machining-->
<DataGridTemplateColumn Width="1*"> <DataGridTemplateColumn Width="1*">
<DataGridTemplateColumn.Header> <DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.MachHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.MachHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridTemplateColumn.Header> </DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate> <DataTemplate>
<ComboBox IsEditable="False" <ComboBox IsEditable="False"
SelectedItem="{Binding Mach, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Mach, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=MachList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/> ItemsSource="{Binding Path=MachList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=Mach, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" <TextBlock Text="{Binding Path=Mach, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=Mach, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> ToolTip="{Binding Path=Mach, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
<!--Colonna MachiningUpType--> <!--Colonna MachiningUpType-->
<DataGridTemplateColumn Width="0.5*"> <DataGridTemplateColumn Width="0.5*">
<DataGridTemplateColumn.Header> <DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.MachTypeHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.MachTypeHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridTemplateColumn.Header> </DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate> <DataTemplate>
<ComboBox IsEditable="False" <ComboBox IsEditable="False"
SelectedItem="{Binding SelectedMachUpType,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedMachUpType,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=MachTypeList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding Path=MachTypeList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="TypeName"/> DisplayMemberPath="TypeName"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=SelectedMachUpType.TypeName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Text="{Binding Path=SelectedMachUpType.TypeName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
<!--Colonna Machining Up--> <!--Colonna Machining Up-->
<DataGridTemplateColumn Width="1*"> <DataGridTemplateColumn Width="1*">
<DataGridTemplateColumn.Header> <DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.MachUpHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.MachUpHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridTemplateColumn.Header> </DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate> <DataTemplate>
<ComboBox IsEditable="False" <ComboBox IsEditable="False"
SelectedItem="{Binding MachUp,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding MachUp,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=MachUpList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/> ItemsSource="{Binding Path=MachUpList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=MachUp,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" <TextBlock Text="{Binding Path=MachUp,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=MachUp,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> ToolTip="{Binding Path=MachUp,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
<!--Colonna MachiningDownType--> <!--Colonna MachiningDownType-->
<DataGridTemplateColumn Width="0.5*"> <DataGridTemplateColumn Width="0.5*">
<DataGridTemplateColumn.Header> <DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.MachTypeHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.MachTypeHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridTemplateColumn.Header> </DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate> <DataTemplate>
<ComboBox IsEditable="False" <ComboBox IsEditable="False"
SelectedItem="{Binding SelectedMachDownType,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedMachDownType,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=MachTypeList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding Path=MachTypeList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="TypeName"/> DisplayMemberPath="TypeName"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=SelectedMachDownType.TypeName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Text="{Binding Path=SelectedMachDownType.TypeName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
<!--Colonna Machining Down--> <!--Colonna Machining Down-->
<DataGridTemplateColumn Width="1*"> <DataGridTemplateColumn Width="1*">
<DataGridTemplateColumn.Header> <DataGridTemplateColumn.Header>
<TextBlock Text="{Binding Path=DataContext.MachDownHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/> <TextBlock Text="{Binding Path=DataContext.MachDownHdr,RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
</DataGridTemplateColumn.Header> </DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate> <DataTemplate>
<ComboBox IsEditable="False" <ComboBox IsEditable="False"
SelectedItem="{Binding MachDw,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding MachDw,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=MachDownList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/> ItemsSource="{Binding Path=MachDownList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Path=MachDw,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" <TextBlock Text="{Binding Path=MachDw,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=MachDw,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> ToolTip="{Binding Path=MachDw,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> </DataGridTemplateColumn>
</DataGrid.Columns> <DataGridTextColumn Header="Link"
Binding="{Binding Path=Link}"
Foreground="Black"
IsReadOnly="True"
Visibility="{Binding Path=DataContext.Link_Visibility, Source={x:Reference dummyElement}}"/>
</DataGrid.Columns>
</DataGrid> </DataGrid>
</Grid>
</TabItem.Content> </TabItem.Content>
</TabItem> </TabItem>
@@ -548,6 +559,18 @@
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition >
<ColumnDefinition.Style>
<Style TargetType="{x:Type ColumnDefinition}">
<Setter Property="Width" Value="1*"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Visibility, ElementName=LinkBtn}" Value="Collapsed">
<Setter Property="Width" Value="Auto"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ColumnDefinition.Style>
</ColumnDefinition>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
@@ -594,20 +617,25 @@
CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}" CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}"
IsEnabled="{Binding MoveRow_IsEnabled}" IsEnabled="{Binding MoveRow_IsEnabled}"
Grid.Column="4"/> Grid.Column="4"/>
<Button x:Name="LinkBtn" Content="Link" Command="{Binding LinkCommand}"
CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}"
IsEnabled="{Binding Link_IsEnabled}"
Visibility="{Binding Link_Visibility}"
Grid.Column="5"/>
<Button Content="Group" Command="{Binding GroupCommand}" <Button Content="Group" Command="{Binding GroupCommand}"
CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}" CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}"
IsEnabled="{Binding Group_IsEnabled}" IsEnabled="{Binding Group_IsEnabled}"
Grid.Column="5"/> Grid.Column="6"/>
<Button Content="Position" Command="{Binding PositionCommand}" <Button Content="Position" Command="{Binding PositionCommand}"
CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}" CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}"
IsEnabled="{Binding Position_IsEnabled}" IsEnabled="{Binding Position_IsEnabled}"
Grid.Column="6"/> Grid.Column="7"/>
<Button Content="{Binding AddMachBtn}" Command="{Binding AddMachCommand}" <Button Content="{Binding AddMachBtn}" Command="{Binding AddMachCommand}"
CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}" CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}"
Grid.Column="7"/> Grid.Column="8"/>
<Button Content="{Binding RemoveMachBtn}" Command="{Binding RemoveMachCommand}" <Button Content="{Binding RemoveMachBtn}" Command="{Binding RemoveMachCommand}"
CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}" CommandParameter="{Binding Path=SelectedItem, ElementName=TablesListBox}"
Grid.Column="8"/> Grid.Column="9"/>
</Grid> </Grid>
</Grid> </Grid>
+28
View File
@@ -1,6 +1,7 @@
Imports System.Windows Imports System.Windows
Imports System.Windows.Controls.Primitives Imports System.Windows.Controls.Primitives
Imports EgtWPFLib5 Imports EgtWPFLib5
Imports EgtUILib
Public Class MTableDbV Public Class MTableDbV
@@ -155,4 +156,31 @@ Public Class MTableDbV
WinPosFromWindowToIni(Me, S_DOORS, K_MTABLEWINPLACE) WinPosFromWindowToIni(Me, S_DOORS, K_MTABLEWINPLACE)
End Sub End Sub
Public Sub DataGrid_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs)
If e.ChangedButton = MouseButton.Left Then
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
e.Handled = True
End If
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control AndAlso TypeOf sender Is DataGrid AndAlso DirectCast(sender, DataGrid).SelectedItems.Count >= 2 Then
e.Handled = True
End If
End If
End Sub
Public Sub DataGrid_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs)
End Sub
Public Sub DataGrid_PreviewMouseMove(sender As Object, e As MouseEventArgs)
Dim Element As Object = e.OriginalSource
While Not IsNothing(Element) AndAlso Not TypeOf Element Is ScrollBar
Element = VisualTreeHelper.GetParent(Element)
End While
' verifico che non sia ScrollBar, di modo che questa continui a funzionare, ma non possa selezionare piu' righe trascinando
If IsNothing(Element) OrElse Not TypeOf Element Is ScrollBar Then
e.Handled = True
End If
End Sub
End Class End Class
+100 -10
View File
@@ -1,7 +1,9 @@
Imports System.Collections.ObjectModel Imports System.Collections.ObjectModel
Imports System.Collections.Specialized
Imports System.ComponentModel Imports System.ComponentModel
Imports System.IO Imports System.IO
Imports System.Text.RegularExpressions Imports System.Text.RegularExpressions
Imports System.Windows.Forms.LinkLabel
Imports EgtUILib Imports EgtUILib
Imports EgtWPFLib5 Imports EgtWPFLib5
@@ -156,6 +158,24 @@ Public Class MTableDbVM
End Set End Set
End Property End Property
Private m_Link_Visibility As Visibility = Visibility.Collapsed
Public ReadOnly Property Link_Visibility As Visibility
Get
Return m_Link_Visibility
End Get
End Property
Private m_Link_IsEnabled As Boolean
Public Property Link_IsEnabled As Boolean
Get
Return m_Link_IsEnabled
End Get
Set(value As Boolean)
m_Link_IsEnabled = value
NotifyPropertyChanged(NameOf(Link_IsEnabled))
End Set
End Property
#Region "Messages" #Region "Messages"
Public ReadOnly Property Title As String Public ReadOnly Property Title As String
@@ -359,6 +379,7 @@ Public Class MTableDbVM
Private m_cmdMoveRowDown As ICommand Private m_cmdMoveRowDown As ICommand
Private m_cmdGroup As ICommand Private m_cmdGroup As ICommand
Private m_cmdPosition As ICommand Private m_cmdPosition As ICommand
Private m_cmdLink As ICommand
Private m_cmdCloseMTableWindow As ICommand Private m_cmdCloseMTableWindow As ICommand
#Region "CONSTRUCTOR" #Region "CONSTRUCTOR"
@@ -385,6 +406,9 @@ Public Class MTableDbVM
' Altrimenti recupero macchina corrente all'apertura della finestra per poterla ripristinare alla fine ' Altrimenti recupero macchina corrente all'apertura della finestra per poterla ripristinare alla fine
EgtGetCurrMachineName(m_sPreviousActiveMachine) EgtGetCurrMachineName(m_sPreviousActiveMachine)
End If End If
' leggo abilitazione link
m_Link_Visibility = If(GetMainPrivateProfileInt(S_DOORS, K_OPTIMIZEMACHFORLINE, 0) = 1, Visibility.Visible, Visibility.Collapsed)
NotifyPropertyChanged(NameOf(Link_Visibility))
' Azzero indice per nome tabella di default ' Azzero indice per nome tabella di default
MTableListBoxItem.NewMTableIndex = 0 MTableListBoxItem.NewMTableIndex = 0
' Creo liste operazioni e proprietà ' Creo liste operazioni e proprietà
@@ -404,17 +428,29 @@ Public Class MTableDbVM
If EgtVerifyMachinesDir() AndAlso Not bActiveMTableFound AndAlso m_TablesList.Count > 0 Then If EgtVerifyMachinesDir() AndAlso Not bActiveMTableFound AndAlso m_TablesList.Count > 0 Then
m_TablesList(0).IsSelected = True m_TablesList(0).IsSelected = True
If Not m_TablesList(0).IsSelected Then If Not m_TablesList(0).IsSelected Then
m_TablesList.RemoveAt( 0) m_TablesList.RemoveAt(0)
return Return
End If End If
m_TablesList(0).SelMachine = m_TablesList(0).ActiveMachinesList(0) m_TablesList(0).SelMachine = m_TablesList(0).ActiveMachinesList(0)
End If End If
For Each Table In TablesList
AddHandler Table.SelectedAssociations.CollectionChanged, AddressOf SelectedAssociations_CollectionChanged
Next
End Sub End Sub
#End Region #End Region
#Region "METHODS" #Region "METHODS"
Private Sub SelectedAssociations_CollectionChanged(sender As Object, e As NotifyCollectionChangedEventArgs)
For Each Table In TablesList
If Table.IsSelected Then
AddRemoveRow_IsEnabled = Table.SelectedAssociations.Count = 1
Link_IsEnabled = Table.SelectedAssociations.Count = 2
End If
Next
End Sub
Private Sub UpdateTables() Private Sub UpdateTables()
m_TablesList.Clear() m_TablesList.Clear()
' se trovo la cartella carico la lista di tabelle ' se trovo la cartella carico la lista di tabelle
@@ -1220,7 +1256,7 @@ Public Class MTableDbVM
Dim SelectedMTable As MTableListBoxItem = DirectCast(param, MTableListBoxItem) Dim SelectedMTable As MTableListBoxItem = DirectCast(param, MTableListBoxItem)
If Not IsNothing(SelectedMTable) AndAlso Not IsNothing(SelectedMTable.SelectedAssociation) Then If Not IsNothing(SelectedMTable) AndAlso Not IsNothing(SelectedMTable.SelectedAssociation) Then
Dim SelectedIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociation) Dim SelectedIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociation)
Dim NewEmptyRow As MTableAssociationGridBoxItem = New MTableAssociationGridBoxItem(False, String.Empty, 1, 0, String.Empty, Nothing, String.Empty, Nothing, String.Empty, Nothing, String.Empty, SelectedMTable.ActiveMachinesList, SelectedMTable.AssociationList) Dim NewEmptyRow As MTableAssociationGridBoxItem = New MTableAssociationGridBoxItem(False, String.Empty, 1, 0, String.Empty, Nothing, String.Empty, Nothing, String.Empty, Nothing, String.Empty, 0, SelectedMTable.ActiveMachinesList, SelectedMTable.AssociationList)
SelectedMTable.AssociationList.Insert(SelectedIndex + 1, NewEmptyRow) SelectedMTable.AssociationList.Insert(SelectedIndex + 1, NewEmptyRow)
SelectedMTable.SelectedAssociation = NewEmptyRow SelectedMTable.SelectedAssociation = NewEmptyRow
SelectedMTable.NotifyPropertyChanged("SelectedAssociation") SelectedMTable.NotifyPropertyChanged("SelectedAssociation")
@@ -1319,10 +1355,21 @@ Public Class MTableDbVM
' Left table Movement ' Left table Movement
Public Sub LeftTableMoveRowUp(SelectedMTable As MTableListBoxItem) Public Sub LeftTableMoveRowUp(SelectedMTable As MTableListBoxItem)
Dim SelectedIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociation) If SelectedMTable.SelectedAssociations.Count < 2 Then
If SelectedIndex >= 1 Then Dim SelectedIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociation)
SelectedMTable.AssociationList.Move(SelectedIndex, SelectedIndex - 1) If SelectedIndex >= 1 Then
SelectedMTable.AssociationList.Move(SelectedIndex, SelectedIndex - 1)
End If
ElseIf SelectedMTable.SelectedAssociations.Count > 2 Then
Return
Else
Dim MoveIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociations(0))
Dim DestinationIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociations(1))
If DestinationIndex >= 0 Then
SelectedMTable.AssociationList.Move(MoveIndex, If(MoveIndex > DestinationIndex, DestinationIndex, Math.Max(0, DestinationIndex - 1)))
End If
End If End If
End Sub End Sub
Public Sub RightTableMoveRowUp(SelectedMTable As MTableListBoxItem) Public Sub RightTableMoveRowUp(SelectedMTable As MTableListBoxItem)
@@ -1572,9 +1619,19 @@ Public Class MTableDbVM
' Spostamento sulla tabella delle associazioni ' Spostamento sulla tabella delle associazioni
Public Sub LeftTableMoveRowDown(SelectedMTable As MTableListBoxItem) Public Sub LeftTableMoveRowDown(SelectedMTable As MTableListBoxItem)
Dim SelectedIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociation) If SelectedMTable.SelectedAssociations.Count < 2 Then
If SelectedIndex < SelectedMTable.AssociationList.Count - 1 Then Dim SelectedIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociation)
SelectedMTable.AssociationList.Move(SelectedIndex, SelectedIndex + 1) If SelectedIndex < SelectedMTable.AssociationList.Count - 1 Then
SelectedMTable.AssociationList.Move(SelectedIndex, SelectedIndex + 1)
End If
ElseIf SelectedMTable.SelectedAssociations.Count > 2 Then
Return
Else
Dim MoveIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociations(0))
Dim DestinationIndex As Integer = SelectedMTable.AssociationList.IndexOf(SelectedMTable.SelectedAssociations(1))
If DestinationIndex < SelectedMTable.AssociationList.Count Then
SelectedMTable.AssociationList.Move(MoveIndex, If(MoveIndex > DestinationIndex, DestinationIndex + 1, DestinationIndex))
End If
End If End If
End Sub End Sub
@@ -1586,6 +1643,39 @@ Public Class MTableDbVM
#End Region ' MoveRowDownCommand #End Region ' MoveRowDownCommand
#Region "Link"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property LinkCommand As ICommand
Get
If m_cmdLink Is Nothing Then
m_cmdLink = New Command(AddressOf Link)
End If
Return m_cmdLink
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub Link(param As Object)
Dim SelectedMTable As MTableListBoxItem = DirectCast(param, MTableListBoxItem)
If IsNothing(SelectedMTable) OrElse SelectedMTable.SelectedAssociations.Count <> 2 Then Return
'If (SelectedMTable.SelectedAssociations(0).nLink = 0 AndAlso SelectedMTable.SelectedAssociations(1).nLink <> 0) OrElse (SelectedMTable.SelectedAssociations(0).nLink <> 0 AndAlso SelectedMTable.SelectedAssociations(1).nLink = 0) Then Return
If SelectedMTable.SelectedAssociations(0).nLink = 0 AndAlso SelectedMTable.SelectedAssociations(1).nLink = 0 Then
Dim nNewIndex As Integer = SelectedMTable.AssociationList.Max(Function(x) x.nLink) + 1
SelectedMTable.SelectedAssociations(0).SetLink(nNewIndex)
SelectedMTable.SelectedAssociations(1).SetLink(-nNewIndex)
ElseIf SelectedMTable.SelectedAssociations(0).nLink = Math.Abs(SelectedMTable.SelectedAssociations(1).nLink) OrElse SelectedMTable.SelectedAssociations(1).nLink = Math.Abs(SelectedMTable.SelectedAssociations(0).nLink) Then
SelectedMTable.SelectedAssociations(0).SetLink(0)
SelectedMTable.SelectedAssociations(1).SetLink(0)
End If
End Sub
#End Region ' MoveRowDownCommand
#Region "GroupCommand" #Region "GroupCommand"
''' <summary> ''' <summary>
+60 -8
View File
@@ -5,6 +5,7 @@ Imports System.IO
Imports EgtUILib Imports EgtUILib
Imports EgtWPFLib5 Imports EgtWPFLib5
Imports EgtCAM5.MachineModel Imports EgtCAM5.MachineModel
Imports System.Collections.Specialized
Public Class MTableListBoxItem Public Class MTableListBoxItem
Inherits VMBase Inherits VMBase
@@ -148,10 +149,30 @@ Public Class MTableListBoxItem
Private m_SelectedAssociation As MTableAssociationGridBoxItem Private m_SelectedAssociation As MTableAssociationGridBoxItem
Public Property SelectedAssociation As MTableAssociationGridBoxItem Public Property SelectedAssociation As MTableAssociationGridBoxItem
Get Get
Return m_SelectedAssociation Return m_SelectedAssociations(0)
End Get End Get
Set(value As MTableAssociationGridBoxItem) Set(value As MTableAssociationGridBoxItem)
m_SelectedAssociation = value Dim bFound As Boolean = False
For ItemIndex = m_SelectedAssociations.Count - 1 To 0 Step -1
If m_SelectedAssociations(ItemIndex) Is value Then
bFound = True
Else
m_SelectedAssociations.RemoveAt(ItemIndex)
End If
If Not bFound Then
m_SelectedAssociations.Add(value)
End If
Next
End Set
End Property
Private m_SelectedAssociations As New ObservableCollection(Of MTableAssociationGridBoxItem)
Public Property SelectedAssociations As ObservableCollection(Of MTableAssociationGridBoxItem)
Get
Return m_SelectedAssociations
End Get
Set(value As ObservableCollection(Of MTableAssociationGridBoxItem))
m_SelectedAssociations = value
End Set End Set
End Property End Property
@@ -169,6 +190,11 @@ Public Class MTableListBoxItem
Sub New(sTableName As String, sTableNamePath As String) Sub New(sTableName As String, sTableNamePath As String)
TableName = sTableName TableName = sTableName
m_TableNamePath = sTableNamePath m_TableNamePath = sTableNamePath
AddHandler m_SelectedAssociations.CollectionChanged, AddressOf SelectedAssociations_CollectionChanged
End Sub
Private Sub SelectedAssociations_CollectionChanged(sender As Object, e As NotifyCollectionChangedEventArgs)
End Sub End Sub
Private Function ReadMTableFile() As Boolean Private Function ReadMTableFile() As Boolean
@@ -176,7 +202,7 @@ Public Class MTableListBoxItem
SharedMachIndex += 1 SharedMachIndex += 1
ActiveMachinesList.Add(New MTableMachineListBoxItem(String.Empty, False, False, SharedMachIndex)) ActiveMachinesList.Add(New MTableMachineListBoxItem(String.Empty, False, False, SharedMachIndex))
m_MachIdList.Add(SharedMachIndex) m_MachIdList.Add(SharedMachIndex)
AssociationList.Add(New MTableAssociationGridBoxItem(False, String.Empty, Nothing, 0, String.Empty, Nothing, String.Empty, Nothing, String.Empty, Nothing, String.Empty, ActiveMachinesList, m_AssociationList)) AssociationList.Add(New MTableAssociationGridBoxItem(False, String.Empty, Nothing, 0, String.Empty, Nothing, String.Empty, Nothing, String.Empty, Nothing, String.Empty, 0, ActiveMachinesList, m_AssociationList))
Return True Return True
End If End If
' resetto indici macchine impostati in tabella ' resetto indici macchine impostati in tabella
@@ -836,7 +862,7 @@ Public Class MTableAssociationGridBoxItem
If Not IsNothing(m_SelectedMachType) Then If Not IsNothing(m_SelectedMachType) Then
m_RefMachItem = ManageOrderedMachining(Mach, nOldMachId, RefMachItem) m_RefMachItem = ManageOrderedMachining(Mach, nOldMachId, RefMachItem)
If String.IsNullOrWhiteSpace(m_Mach) Then NotifyPropertyChanged("Mach") If String.IsNullOrWhiteSpace(m_Mach) Then NotifyPropertyChanged("Mach")
End If End If
If Not IsNothing(m_SelectedMachUpType) Then If Not IsNothing(m_SelectedMachUpType) Then
m_RefMachUpItem = ManageOrderedMachining(MachUp, nOldMachId, RefMachUpItem) m_RefMachUpItem = ManageOrderedMachining(MachUp, nOldMachId, RefMachUpItem)
If String.IsNullOrWhiteSpace(m_MachUp) Then NotifyPropertyChanged("MachUp") If String.IsNullOrWhiteSpace(m_MachUp) Then NotifyPropertyChanged("MachUp")
@@ -1074,8 +1100,33 @@ Public Class MTableAssociationGridBoxItem
End Set End Set
End Property End Property
Private m_Link As Integer
Public Property Link As String
Get
Return m_Link.ToString()
End Get
Set(value As String)
Dim nValue As Integer = 0
If Integer.TryParse(value, nValue) Then
m_IsModified = True
m_Link = nValue
Else
NotifyPropertyChanged(NameOf(Link))
End If
End Set
End Property
Public ReadOnly Property nLink As Integer
Get
Return m_Link
End Get
End Property
Public Sub SetLink(value As Integer)
m_Link = value
NotifyPropertyChanged(NameOf(Link))
End Sub
Sub New(bOn As Boolean, sName As String, nMachId As Integer, nShift As Integer, sOper As String, Sub New(bOn As Boolean, sName As String, nMachId As Integer, nShift As Integer, sOper As String,
RefMachItem As MTableMachiningGridBoxItem, sMach As String, RefMachUpItem As MTableMachiningGridBoxItem, sMachUp As String, RefMachDwItem As MTableMachiningGridBoxItem, sMachDw As String, RefMachItem As MTableMachiningGridBoxItem, sMach As String, RefMachUpItem As MTableMachiningGridBoxItem, sMachUp As String, RefMachDwItem As MTableMachiningGridBoxItem, sMachDw As String, nLink As Integer,
ByRef ActiveMachinesList As ObservableCollection(Of MTableMachineListBoxItem), ByRef AssociationList As ObservableCollection(Of MTableAssociationGridBoxItem)) ByRef ActiveMachinesList As ObservableCollection(Of MTableMachineListBoxItem), ByRef AssociationList As ObservableCollection(Of MTableAssociationGridBoxItem))
OnPar = bOn OnPar = bOn
@@ -1118,7 +1169,7 @@ Public Class MTableAssociationGridBoxItem
' Assegno l'operazione ' Assegno l'operazione
Oper = sOper Oper = sOper
' dall'MId recupero la macchina a cui si riferisce questa associazione e la imposto come corrente ' dall'MId recupero la macchina a cui si riferisce questa associazione e la imposto come corrente
If not IsNothing(m_ActiveMachinesList(m_MachId - 1).SelectedMachine) Then If Not IsNothing(m_ActiveMachinesList(m_MachId - 1).SelectedMachine) Then
EgtSetCurrMachine(m_ActiveMachinesList(m_MachId - 1).SelectedMachine.Name) EgtSetCurrMachine(m_ActiveMachinesList(m_MachId - 1).SelectedMachine.Name)
' Imposto MachType selezionato cercando il tipo delle lavorazioni ' Imposto MachType selezionato cercando il tipo delle lavorazioni
If EgtMdbSetCurrMachining(sMach) Then If EgtMdbSetCurrMachining(sMach) Then
@@ -1191,6 +1242,7 @@ Public Class MTableAssociationGridBoxItem
m_RefMachDwItem = RefMachDwItem m_RefMachDwItem = RefMachDwItem
End If End If
End If End If
m_Link = nLink
m_IsModified = False m_IsModified = False
End Sub End Sub
@@ -1207,7 +1259,7 @@ Public Class MTableAssociationGridBoxItem
End If End If
Next Next
End If End If
' Se il nuovo valore è valido ' Se il nuovo valore è valido
Else Else
' Se non esiste già il rispettivo item nella lista lavorazioni ordinata lo creo ' Se non esiste già il rispettivo item nella lista lavorazioni ordinata lo creo
If IsNothing(RefMachItem) Then If IsNothing(RefMachItem) Then
@@ -1223,7 +1275,7 @@ Public Class MTableAssociationGridBoxItem
m_ActiveMachinesList(MachIndex).MachiningList.Insert(0, RefMachItem) m_ActiveMachinesList(MachIndex).MachiningList.Insert(0, RefMachItem)
End If End If
Next Next
' altrimenti lo aggiorno con la nuova lavorazione ' altrimenti lo aggiorno con la nuova lavorazione
Else Else
RefMachItem.Machining = Mach RefMachItem.Machining = Mach
End If End If
+8 -3
View File
@@ -26,6 +26,7 @@ Module TableUtility
Private Const MACHDW As String = "MachDw" Private Const MACHDW As String = "MachDw"
Private Const MACHID As String = "MachId" Private Const MACHID As String = "MachId"
Private Const SHIFT As String = "Shift" Private Const SHIFT As String = "Shift"
Private Const LINK As String = "Link"
Private Const PROPERTYTABLE As String = "PropertyTable" Private Const PROPERTYTABLE As String = "PropertyTable"
Private Const OPER As String = "Oper" Private Const OPER As String = "Oper"
Private Const GROUP As String = "Group" Private Const GROUP As String = "Group"
@@ -93,6 +94,7 @@ Module TableUtility
Dim nMachId As Integer = 1 Dim nMachId As Integer = 1
Dim nShift As Integer = 0 Dim nShift As Integer = 0
Dim sOper As String = String.Empty Dim sOper As String = String.Empty
Dim nLink As Integer = 0
If Not String.IsNullOrEmpty(sName) Then If Not String.IsNullOrEmpty(sName) Then
Dim sOn As String = SearchKey(FileContent(LineIndex), ONCONST) Dim sOn As String = SearchKey(FileContent(LineIndex), ONCONST)
If Not String.IsNullOrEmpty(sOn) Then If Not String.IsNullOrEmpty(sOn) Then
@@ -166,7 +168,9 @@ Module TableUtility
End If End If
End If End If
Next Next
Table.AssociationList.Add(New MTableAssociationGridBoxItem(bOn, sName, nMachId, nShift, sOper, MachItem, sMach, MachUpItem, sMachUp, MachDwItem, sMachDw, Table.ActiveMachinesList, Table.AssociationList)) Dim sLink As String = SearchKey(FileContent(LineIndex), LINK)
Integer.TryParse(sLink, nLink)
Table.AssociationList.Add(New MTableAssociationGridBoxItem(bOn, sName, nMachId, nShift, sOper, MachItem, sMach, MachUpItem, sMachUp, MachDwItem, sMachDw, nLink, Table.ActiveMachinesList, Table.AssociationList))
End If End If
End If End If
If bPropertyTable Then If bPropertyTable Then
@@ -237,7 +241,7 @@ Module TableUtility
End If End If
' se nessuna lavorazione, ne aggiungo una vuota ' se nessuna lavorazione, ne aggiungo una vuota
If Table.AssociationList.Count = 0 Then If Table.AssociationList.Count = 0 Then
Table.AssociationList.Add(New MTableAssociationGridBoxItem(False, String.Empty, 0, 0, String.Empty, Nothing, String.Empty, Nothing, String.Empty, Nothing, String.Empty, Table.ActiveMachinesList, Table.AssociationList)) Table.AssociationList.Add(New MTableAssociationGridBoxItem(False, String.Empty, 0, 0, String.Empty, Nothing, String.Empty, Nothing, String.Empty, Nothing, String.Empty, 0, Table.ActiveMachinesList, Table.AssociationList))
End If End If
Return True Return True
End Function End Function
@@ -476,7 +480,8 @@ Module TableUtility
", MachUp = '" & SelectedTable.AssociationList(Index).MachUp & "'", String.Empty) & ", MachUp = '" & SelectedTable.AssociationList(Index).MachUp & "'", String.Empty) &
If(Not String.IsNullOrEmpty(SelectedTable.AssociationList(Index).MachDw), ", MachDwOrd = '" & SelectedTable.AssociationList(Index).RefMachDwItem.RWGroupId & "'" & If(Not String.IsNullOrEmpty(SelectedTable.AssociationList(Index).MachDw), ", MachDwOrd = '" & SelectedTable.AssociationList(Index).RefMachDwItem.RWGroupId & "'" &
", MachDwJoin = '" & If(SelectedTable.AssociationList(Index).RefMachDwItem.Join, 1, 0) & "'" & ", MachDwJoin = '" & If(SelectedTable.AssociationList(Index).RefMachDwItem.Join, 1, 0) & "'" &
", MachDw = '" & SelectedTable.AssociationList(Index).MachDw & "'", String.Empty) & " }" ", MachDw = '" & SelectedTable.AssociationList(Index).MachDw & "'", String.Empty) &
If(Not String.IsNullOrEmpty(SelectedTable.AssociationList(Index).Link), ", Link = '" & SelectedTable.AssociationList(Index).Link & "'", String.Empty) & " }"
If Index < SelectedTable.AssociationList.Count - 1 Then If Index < SelectedTable.AssociationList.Count - 1 Then
CurrentLine &= " ," CurrentLine &= " ,"
End If End If
+110
View File
@@ -1,4 +1,6 @@
Imports EgtUILib Imports EgtUILib
Imports EgtWPFLib5
Imports EgtWPFLib5.MachiningTreeViewItem
Public Class PrepareInputBoxParam Public Class PrepareInputBoxParam
Friend sTitle As String Friend sTitle As String
@@ -62,4 +64,112 @@ Public Class NewMachOpParam
Me.SelMachOpId = SelMachOpId Me.SelMachOpId = SelMachOpId
End Sub End Sub
End Class
Public Class InfoItem
Inherits VMBase
#Region "FIELDS & PROPERTIES"
Friend nId As Integer
''' <summary>
''' Indice lista info note
''' </summary>
Public ReadOnly Property Id As Integer
Get
Return Id
End Get
End Property
Friend sKey As String
''' <summary>
''' Chiave lista info note
''' </summary>
Public ReadOnly Property Key As String
Get
Return sKey
End Get
End Property
Friend sValour As String
''' <summary>
''' Valore lista info note
''' </summary>
Public Property Valour As String
Get
Return sValour
End Get
Set(value As String)
sValour = value
NotifyPropertyChanged(NameOf(Valour))
End Set
End Property
#End Region ' Fields & Properties
' Comandi
Private m_cmdRemoveInfoItem As ICommand
Private m_cmdDoneInfo As ICommand
#Region "CONSTRUCTORS"
Sub New(nId As Integer, sKey As String, sValue As String)
Me.nId = nId
Me.sKey = sKey
Me.sValour = sValue
End Sub
#End Region ' Constructors
#Region "COMMANDS"
#Region "RemoveItemNoteCommand"
''' <summary>
''' Comando per rimuovere l'informazione selezionata dalla combobox
''' </summary>
Public ReadOnly Property RemoveInfoItemCommand As ICommand
Get
If m_cmdRemoveInfoItem Is Nothing Then
m_cmdRemoveInfoItem = New Command(AddressOf RemoveInfoItem)
End If
Return m_cmdRemoveInfoItem
End Get
End Property
''' <summary>
''' Rimuove l'informazione selezionata dalla combobox
''' </summary>
''' <param name="param"></param>
Public Sub RemoveInfoItem(ByVal param As Object)
Map.refInputExpanderVM.RemoveItemInfo(Me)
End Sub
#End Region ' RemoveItemNoteCommand
#Region "DoneInfoCommand"
''' <summary>
''' Comando per la conferma modifica o aggiunta nuova informazione
''' </summary>
Public ReadOnly Property DoneInfoCommand As ICommand
Get
If m_cmdDoneInfo Is Nothing Then
m_cmdDoneInfo = New Command(AddressOf DoneInfo)
End If
Return m_cmdDoneInfo
End Get
End Property
''' <summary>
''' Conferma modifica o aggiunta nuova informazione
''' </summary>
Public Sub DoneInfo(ByVal param As Object)
Map.refInputExpanderVM.Done(Me)
End Sub
#End Region ' DoneInfoCommand
#End Region ' Commands
End Class End Class
+6 -2
View File
@@ -219,8 +219,12 @@ Public Class TopCommandBarVM
Dim bAllowEmpty As Boolean = (Keyboard.IsKeyDown(Key.LeftShift) OrElse Keyboard.IsKeyDown(Key.RightShift)) Dim bAllowEmpty As Boolean = (Keyboard.IsKeyDown(Key.LeftShift) OrElse Keyboard.IsKeyDown(Key.RightShift))
' Cerco di preimpostare come corrente la macchina opportuna ' Cerco di preimpostare come corrente la macchina opportuna
If Not bAllowEmpty AndAlso EgtGetSelectedObjCount() = 0 AndAlso EgtGetMachGroupCount() > 0 Then If Not bAllowEmpty AndAlso EgtGetSelectedObjCount() = 0 AndAlso EgtGetMachGroupCount() > 0 Then
Dim nMchGrpId As Integer = EgtGetCurrMachGroup()
If nMchGrpId = GDB_ID.NULL Then
nMchGrpId = EgtGetFirstMachGroup()
End If
Dim sMachineName As String = "" Dim sMachineName As String = ""
if EgtGetMachGroupMachineName( EgtGetFirstMachGroup(), sMachineName) Then If EgtGetMachGroupMachineName(nMchGrpId, sMachineName) Then
Map.refMachinePanelVM.SelectedMachine = Map.refMachinePanelVM.MachinesList.FirstOrDefault(Function(x) x.Name = sMachineName) Map.refMachinePanelVM.SelectedMachine = Map.refMachinePanelVM.MachinesList.FirstOrDefault(Function(x) x.Name = sMachineName)
End If End If
End If End If
@@ -232,7 +236,7 @@ Public Class TopCommandBarVM
If EgtGetCurrMachGroup() = GDB_ID.NULL Then If EgtGetCurrMachGroup() = GDB_ID.NULL Then
ExecExitMachScript() ExecExitMachScript()
EgtDraw() EgtDraw()
' altrimenti, aggiusto... ' altrimenti, aggiusto...
Else Else
' se parametri di una lavorazione aperti, disattivo database utensili, lavorazioni e setup ' se parametri di una lavorazione aperti, disattivo database utensili, lavorazioni e setup
Dim bIsEnabled As Boolean = Not IsNothing(Map.refOperationParametersExpanderVM) AndAlso Not Map.refOperationParametersExpanderVM.ParametersIsExpanded Dim bIsEnabled As Boolean = Not IsNothing(Map.refOperationParametersExpanderVM) AndAlso Not Map.refOperationParametersExpanderVM.ParametersIsExpanded
+8 -4
View File
@@ -667,13 +667,17 @@
<Image.Style> <Image.Style>
<Style> <Style>
<Setter Property="Image.Source" <Setter Property="Image.Source"
Value="/Resources/TreeView/LampOff.png" /> Value="/Resources/TreeView/LampOff.png" />
<Style.Triggers> <Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, <DataTrigger Binding="{Binding IsChecked,
RelativeSource={RelativeSource AncestorType= RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True">
{x:Type ToggleButton}}}" Value="True">
<Setter Property="Image.Source" <Setter Property="Image.Source"
Value="/Resources/TreeView/LampOn.png" /> Value="/Resources/TreeView/LampOn.png" />
</DataTrigger>
<DataTrigger Binding="{Binding IsChecked,
RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="{x:Null}">
<Setter Property="Image.Source"
Value="/Resources/TreeView/LampSel.png" />
</DataTrigger> </DataTrigger>
</Style.Triggers> </Style.Triggers>
</Style> </Style>
+4 -4
View File
@@ -38,16 +38,16 @@ Public Module MachineModel
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_CHISELING, 0, m_sCurrMachIniFilePath) <> 0 Then If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_CHISELING, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.CHISELING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 9)}) ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.CHISELING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 9)})
End If End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_WATERJETTING, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.WATERJETTING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 12)})
End If
If IniFile.IsKeyEnabledAdvancedMachining() AndAlso EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SURFROUGHING, 0, m_sCurrMachIniFilePath) <> 0 Then If IniFile.IsKeyEnabledAdvancedMachining() AndAlso EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SURFROUGHING, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.SURFROUGHING, .TypeName = EgtMsg(31212)}) ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.SURFROUGHING, .TypeName = EgtMsg(31212)})
End If End If
If IniFile.IsKeyEnabledAdvancedMachining() AndAlso EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SURFFINISHING, 0, m_sCurrMachIniFilePath) <> 0 Then If IniFile.IsKeyEnabledAdvancedMachining() AndAlso EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SURFFINISHING, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.SURFFINISHING, .TypeName = EgtMsg(31211)}) ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.SURFFINISHING, .TypeName = EgtMsg(31211)})
End If End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_WATERJETTING, 0, m_sCurrMachIniFilePath) <> 0 Then If IniFile.IsKeyEnabledAdvancedMachining() AndAlso EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_5AXMILLING, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.WATERJETTING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 12)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_5AXMILLING, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.FIVEAXISMILLING, .TypeName = EgtMsg(31213)}) ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.FIVEAXISMILLING, .TypeName = EgtMsg(31213)})
End If End If
Return ActiveMachiningsFamiliesList.ToArray Return ActiveMachiningsFamiliesList.ToArray