Compare commits

...

42 Commits

Author SHA1 Message Date
SaraP 5ce753e4b7 Correzione errore disegno 3D frontalini 2021-09-27 16:38:06 +02:00
SaraP d7445f828a Aggiunto disegno 3D frontalini (prima implementazione) 2021-09-27 14:54:07 +02:00
SaraP 3d44bbaa5c Disegno 3D alzatine nel VeinMatching 2021-09-24 16:08:53 +02:00
NicolaP fc68efd4f4 Correzione Merge 2021-09-23 20:20:23 +02:00
NicolaP 191a973ee3 Merge remote-tracking branch 'origin/master' into Features/Alzatine_e_Frontalini 2021-09-23 19:46:21 +02:00
NicolaP e3f628a07d Controllo e verifica nuova console 2021-09-23 19:31:07 +02:00
NicolaP 2035c83062 Correzione errore in VeinMatch 2021-09-22 10:00:14 +02:00
NicolaP 3aa9129acc Correzione spessore 3D 2021-09-22 09:31:32 +02:00
NicolaP 8ccfda96f8 Merge branch 'Features/Alzatine_e_Frontalini' of https://gitlab.steamware.net/egaltech/OmagCUT into Features/Alzatine_e_Frontalini 2021-09-22 09:24:00 +02:00
NicolaP 8a67feab0f Aggiunto spessore per generazione 3D 2021-09-22 09:20:15 +02:00
NicolaP f76d91fc20 Merge remote-tracking branch 'origin/HEAD' 2021-09-22 08:35:46 +02:00
Emmanuele Sassi 372b084d53 Aggiunta tasto volantino 2021-09-21 16:23:05 +02:00
SaraP 00f30c943c Traslazioni e rotazioni per 3D VeinMatching 2021-09-21 08:43:08 +02:00
NicolaP 4418d53557 Cambio versione ver_2.3i3 2021-09-20 18:29:03 +02:00
NicolaP 0fe95e4ccc Correzione gestione Kerf 2021-09-20 18:28:09 +02:00
NicolaP c2d150b402 Gestione oggetti per 3D VeinMatching 2021-09-20 14:57:36 +02:00
NicolaP 80857bb4e1 Inserito comando £D per gestire l'assemblato del piano cucina 2021-09-15 15:25:37 +02:00
NicolaP 584a635ff4 Merge branch 'master' into Features/Alzatine_e_Frontalini 2021-09-15 15:02:31 +02:00
NicolaP 01e0fa3a9c Inserisco nel VienMath i disegni dei pezzi 2021-09-15 12:46:38 +02:00
NicolaP eb3d3c8af9 Gestione lavorazione arco approssimato 2021-09-09 19:53:35 +02:00
NicolaP 5e0db28b31 Merge commit 'd4141d142378fe0abdfc5a9a8cda9af73563af0d' into Features/Alzatine_e_Frontalini 2021-09-09 15:22:27 +02:00
NicolaP 1af5f6789f Importazione deelle alette nel progetto 2021-09-08 20:03:22 +02:00
NicolaP 403a3ae648 Correzione nuovi avvio programma 2021-09-06 19:55:21 +02:00
NicolaP cc1cd85b58 Merge branch 'master' into Features/Alzatine_e_Frontalini 2021-09-06 11:25:50 +02:00
NicolaP 575ce93877 Inserita costante per gestione ThreadSleep 2021-09-06 10:04:55 +02:00
NicolaP 1ec369dc5f Inserita gestione avvio del programma e immagini 2021-09-06 10:02:10 +02:00
NicolaP 47ab815e80 Aggiunte immagini inviate da OMAG 2021-09-06 10:00:44 +02:00
NicolaP c6482d0f53 Fix: variabili non inizializzate 2021-09-01 16:31:35 +02:00
NicolaP 489b50b45b Merge branch 'Features/Selezione_avvio' into Features/Alzatine_e_Frontalini 2021-09-01 16:30:20 +02:00
NicolaP baa39cf299 Gestione lavorazioni dalla pagina CurrProject 2021-09-01 16:13:38 +02:00
NicolaP 84d10074d0 Merge commit '9e1b7da21effa21289de8025055a6e7e8bff5551' into Features/Alzatine_e_Frontalini 2021-08-11 14:31:46 +02:00
NicolaP 4d09bd0fd5 Merge commit 'ddab78b62054faa02a0bca229322dc903c03dc19' into Features/Alzatine_e_Frontalini 2021-08-09 11:33:38 +02:00
NicolaP 290db84246 Disabilito bottoni per incisini e tagli inclinati 2021-07-19 14:53:25 +02:00
NicolaP 23c14b1bb6 Merge branch 'Features/Semplificazione_selezione_lavorazioni' into Features/Alzatine_e_Frontalini 2021-07-19 12:40:04 +02:00
NicolaP ddb7c9e7f4 Selezione delle lavorazioni dalla pagina progetto 2021-07-19 12:39:33 +02:00
NicolaP c2621a49bb Merge branch 'Features/Svuotature' into Features/Alzatine_e_Frontalini 2021-06-24 13:13:28 +02:00
Nicola Pievani 27015dd589 Correzione comunicazione punto per Test Check Up 2021-05-31 18:50:35 +02:00
Nicola Pievani ff3cac4fe9 Merge branch 'master' into Features/Selezione_avvio 2021-05-27 19:43:12 +02:00
Nicola Pievani 4ded60f9f7 Merge branch 'Features/Conferma_Ciclo_Start' into develop 2021-05-13 17:25:43 +02:00
Nicola Pievani 9e830bf2a5 Finestra conferma Ciclo Start 2021-05-13 17:23:56 +02:00
Nicola Pievani 1c84885a44 Miglioramento grafica 2021-05-13 17:21:53 +02:00
Nicola Pievani f2694511e5 Modalità di avvio in OptioPage 2021-05-13 14:25:20 +02:00
56 changed files with 1631 additions and 287 deletions
+1
View File
@@ -107,6 +107,7 @@
Public Const K_ZBJOG As String = "ZBJog"
Public Const K_POWERON As String = "PowerON"
Public Const K_POWEROFF As String = "PowerOFF"
Public Const K_REMOTE As String = "Remote"
Public Const S_PRODUCTIONLINE As String = "ProductionLine"
Public Const K_ACTIVE As String = "Active"
+92 -19
View File
@@ -28,7 +28,7 @@
<ColumnDefinition Width="7*"/>
</Grid.ColumnDefinitions>
<Button Name="PhotoBtn" Grid.Column="0" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
<Button Name="PhotoBtn" Grid.Column="0" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
<Image Source="{DynamicResource PhotoImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
<Button Name="RawPartBtn" Grid.Column="1" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
@@ -61,20 +61,87 @@
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Button Name="ManualBtn" Grid.Column="2" Grid.Row="0"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
<Button Name="SingleCutBtn" Grid.Row="1"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
<Button Name="MultipleCutBtn" Grid.Row="2"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
<Button Name="GridCutBtn" Grid.Row="3"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
<Button Name="FlatteningCutBtn" Grid.Row="4"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
<Button Name="ManualBtn" Grid.Column="2" Grid.Row="0"
Style="{DynamicResource OmagCut_YellowIconButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="140"/>
</Grid.ColumnDefinitions>
<Image Source="{DynamicResource Movimento-manualeImg}" Style="{DynamicResource OmagCut_ButtonIcon}" Grid.Column="0" />
<TextBlock Name="ManualTxt" Grid.Column="1"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</Grid>
</Button>
<Button Name="SingleCutBtn" Grid.Row="1"
Style="{DynamicResource OmagCut_YellowIconButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="140"/>
</Grid.ColumnDefinitions>
<Image Source="{DynamicResource Taglio-singoloImg}" Style="{DynamicResource OmagCut_ButtonIcon}" Grid.Column="0" />
<TextBlock Name="SingleCutTxt" Grid.Column="1"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</Grid>
</Button>
<Button Name="MultipleCutBtn" Grid.Row="2"
Style="{DynamicResource OmagCut_YellowIconButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="140"/>
</Grid.ColumnDefinitions>
<Image Source="{DynamicResource Taglio-multiploImg}" Style="{DynamicResource OmagCut_ButtonIcon}" Grid.Column="0" />
<TextBlock Name="MultipleCutTxt" Grid.Column="1"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</Grid>
</Button>
<Button Name="GridCutBtn" Grid.Row="3"
Style="{DynamicResource OmagCut_YellowIconButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="140"/>
</Grid.ColumnDefinitions>
<Image Source="{DynamicResource Taglio-grigliaImg}" Style="{DynamicResource OmagCut_ButtonIcon}" Grid.Column="0" />
<TextBlock Name="GridCutTxt" Grid.Column="1"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</Grid>
</Button>
<Button Name="FlatteningCutBtn" Grid.Row="4"
Style="{DynamicResource OmagCut_YellowIconButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="140"/>
</Grid.ColumnDefinitions>
<Image Source="{DynamicResource SpianaturaImg}" Style="{DynamicResource OmagCut_ButtonIcon}" Grid.Column="0" />
<TextBlock Name="FlatteningCutTxt" Grid.Column="1"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</Grid>
</Button>
<Button Name="PolishingBtn" Grid.Row="5"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
<Button Name="CopyTemplateBtn" Grid.Row="6"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
<Button Name="CopyTemplateBtn" Grid.Row="6"
Style="{DynamicResource OmagCut_YellowIconButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="140"/>
</Grid.ColumnDefinitions>
<Image Source="{DynamicResource Copia-dimaImg}" Style="{DynamicResource OmagCut_ButtonIcon}" Grid.Column="0" />
<TextBlock Name="CopyTemplateTxt" Grid.Column="1"
Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</Grid>
</Button>
<Button Name="SawTestBtn" Grid.Row="7"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
</Grid>
@@ -97,7 +164,8 @@
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
@@ -124,13 +192,18 @@
<!--<Image Source="{DynamicResource VacuumImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>-->
</ToggleButton>
<!--Comando asse Z-B-->
<ToggleButton Name="ZBBtn" Grid.Column="4"
<!--Comando asse Z-B-->
<ToggleButton Name="ZBBtn" Grid.Column="4"
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}">
<!--<Image Source="{DynamicResource VacuumImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>-->
</ToggleButton>
<!--<Image Source="{DynamicResource VacuumImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>-->
</ToggleButton>
<Button Name="ManualModeBtn" Grid.Column="7"
<!--Comando Remote-->
<ToggleButton Name="RemoteBtn" Grid.Column="5"
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}">
<!--<Image Source="{DynamicResource VacuumImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>-->
</ToggleButton>
<Button Name="ManualModeBtn" Grid.Column="8"
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource ManualImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>
</Button>
+135 -27
View File
@@ -73,7 +73,7 @@ Public Class DirectCutPageUC
'Posizionemento nella griglia delle Page UserControl
m_MachineButtons.SetValue(Grid.RowProperty, 2)
m_MachineButtons.SetValue(Grid.ColumnSpanProperty, 6)
m_MachineButtons.SetValue(Grid.ColumnSpanProperty, 7)
m_ManualAxesMove.SetValue(Grid.RowProperty, 1)
If m_bManulaCut Then
m_SingleCutAuto.SetValue(Grid.RowProperty, 1)
@@ -89,15 +89,14 @@ Public Class DirectCutPageUC
m_ControlsMachineButton.SetValue(Grid.RowProperty, 1)
m_VacuumMachineButton.SetValue(Grid.RowProperty, 1)
Dim bCollapsedNewBottonsConsole As Boolean = False
' verifico che sia presente almeno uno dei bottoni della nuova console (SOLO PER MACCHINA CON paragrafo [ControlMachButtons])
Dim bCollapsedNewBottonsConsole As Boolean = Not m_ControlsMachineButton.GetPrivateProfileMachineButtons("JogButtons", "Button1", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, m_MainWindow.GetMachIniFile())
m_NewMachineButtonsType = m_ControlsMachineButton.GetPrivateProfileMachineButtons(S_CONTROLMACHBUTTONS, "Button1", Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, m_MainWindow.GetMachIniFile())
If Not m_NewMachineButtonsType Then
'Assegno MachineButtons alla pagina
LowerButtonGrid.Children.Add(m_MachineButtons)
ControlsMachineBtn.Visibility = Windows.Visibility.Collapsed
VacuumMachineBtn.Visibility = Windows.Visibility.Collapsed
' per le configurazioni diverse dalla Digitale5
bCollapsedNewBottonsConsole = True
End If
If GetPrivateProfileInt(S_NUMERICALCONTROL, K_TYPE, 0, m_MainWindow.GetMachIniFile()) = 0 Then
@@ -105,30 +104,43 @@ Public Class DirectCutPageUC
ManualModeBtn.Visibility = Windows.Visibility.Hidden
End If
ManualBtn.Content = EgtMsg(90201)
SingleCutBtn.Content = EgtMsg(90202)
MultipleCutBtn.Content = EgtMsg(90203)
GridCutBtn.Content = EgtMsg(90204)
FlatteningCutBtn.Content = EgtMsg(90206)
' ManualBtn.Content = EgtMsg(90201)
ManualTxt.Text = EgtMsg(90201)
'SingleCutBtn.Content = EgtMsg(90202)
SingleCutTxt.Text = EgtMsg(90202)
'MultipleCutBtn.Content = EgtMsg(90203)
MultipleCutTxt.Text = EgtMsg(90203)
'GridCutBtn.Content = EgtMsg(90204)
GridCutTxt.Text = EgtMsg(90204)
'FlatteningCutBtn.Content = EgtMsg(90206)
FlatteningCutTxt.Text = EgtMsg(90206)
PolishingBtn.Content = EgtMsg(90231)
CopyTemplateBtn.Content = EgtMsg(90209)
'CopyTemplateBtn.Content = EgtMsg(90209)
CopyTemplateTxt.Text = EgtMsg(90209)
SawTestBtn.Content = EgtMsg(90207)
' nuovi bottoni 20/05/2021 - modifica specifiche 04/08/2021
' leggo il numero di assi attivi nella macchina
Dim AxesNumber = GetPrivateProfileInt(S_AXES, K_AXESNUM, 5, m_MainWindow.GetMachIniFile())
Dim x As Integer = GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile())
If GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile()) = 1 And Not bCollapsedNewBottonsConsole Then
XYBtn.Content = "X - Y"
ZCBtn.Content = "Z - C"
If AxesNumber < 5 Then
ZBBtn.Visibility = Windows.Visibility.Collapsed
End If
ZBBtn.Content = "Z - B"
Else
XYBtn.Visibility = Windows.Visibility.Collapsed
ZCBtn.Visibility = Windows.Visibility.Collapsed
ZBBtn.Visibility = Windows.Visibility.Collapsed
End If
'' leggo se è stata configurata la nuova conole
'If GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile()) = 1 And Not bCollapsedNewBottonsConsole Then
' XYBtn.Content = "X - Y"
' XYBtn.Foreground = Brushes.White
' ZCBtn.Content = "Z - C"
' ZCBtn.Foreground = Brushes.White
' If AxesNumber < 5 Then
' ZBBtn.Visibility = Windows.Visibility.Collapsed
' End If
' ZBBtn.Content = "Z - B"
' ZBBtn.Foreground = Brushes.White
' RemoteBtn.Content = "Remote"
' RemoteBtn.Foreground = Brushes.White
'Else
' XYBtn.Visibility = Windows.Visibility.Collapsed
' ZCBtn.Visibility = Windows.Visibility.Collapsed
' ZBBtn.Visibility = Windows.Visibility.Collapsed
'End If
End Sub
@@ -168,6 +180,8 @@ Public Class DirectCutPageUC
End If
End If
End While
' attivo la visualizzazione dei comandi
SetVisibilityJogButtuns()
' lo stato di questi comandi vieni carico dalla lettura del PLC (refresh)
'----------- FINE NUOVI BOTTONI------------
@@ -221,6 +235,35 @@ Public Class DirectCutPageUC
End Sub
Private Sub SetVisibilityJogButtuns()
XYBtn.Visibility = Visibility.Collapsed
ZCBtn.Visibility = Visibility.Collapsed
ZBBtn.Visibility = Visibility.Collapsed
RemoteBtn.Visibility = Visibility.Collapsed
Dim Item As MachineButton = Nothing
For Each Item In m_ButtonJogList
Select Case Item.StateFlag.Trim
Case K_XYJOG
XYBtn.Visibility = Visibility.Visible
XYBtn.Foreground = Brushes.White
XYBtn.Content = "X - Y"
Case K_ZCJOG
ZCBtn.Visibility = Visibility.Visible
ZCBtn.Foreground = Brushes.White
ZCBtn.Content = "Z - C"
Case K_ZBJOG
ZBBtn.Visibility = Visibility.Visible
ZBBtn.Foreground = Brushes.White
ZBBtn.Content = "Z - B"
Case K_REMOTE
RemoteBtn.Visibility = Visibility.Visible
RemoteBtn.Foreground = Brushes.White
RemoteBtn.Content = "Remote"
End Select
Next
End Sub
Private Sub PhotoBtn_Click(sender As Object, e As RoutedEventArgs) Handles PhotoBtn.Click
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' Se macchina fotografica collegata, faccio una foto
@@ -320,7 +363,16 @@ Public Class DirectCutPageUC
'------------------NUOVI BOTTONI PER GESTIONE JOYSTICK-------------------------------------------------
Private Sub XYBtn_Click(sender As Object, e As RoutedEventArgs) Handles XYBtn.Click
Dim XYJogButton As MachineButton = m_ButtonJogList(0)
' riverco in elenco il bottone XYJog
Dim XYJogButton As MachineButton = Nothing
Dim ItemButton As MachineButton = Nothing
For Each ItemButton In m_ButtonJogList
If ItemButton.StateFlag = K_XYJOG Then
XYJogButton = ItemButton
Exit For
End If
Next
If IsNothing(XYJogButton) Then Return
' eseguo lo script lua associato
XYJogButton.ExecuteMDICommand(XYJogButton.TLuaScriptName)
' che comunica al PLC di cambiare lo stato, la modifica dello stato è intercettata dalla funzione Refresh che avvia il metodo Changed
@@ -343,7 +395,16 @@ Public Class DirectCutPageUC
End Sub
Private Sub ZCBtn_Click(sender As Object, e As RoutedEventArgs) Handles ZCBtn.Click
Dim ZJogButton As MachineButton = m_ButtonJogList(1)
' riverco in elenco il bottone ZCYJog
Dim ZJogButton As MachineButton = Nothing
Dim ItemButton As MachineButton = Nothing
For Each ItemButton In m_ButtonJogList
If ItemButton.StateFlag = K_ZCJOG Then
ZJogButton = ItemButton
Exit For
End If
Next
If IsNothing(ZJogButton) Then Return
' eseguo lo script lua associato
ZJogButton.ExecuteMDICommand(ZJogButton.TLuaScriptName)
End Sub
@@ -364,9 +425,18 @@ Public Class DirectCutPageUC
End Sub
Private Sub ZBBtn_Click(sender As Object, e As RoutedEventArgs) Handles ZBBtn.Click
Dim BCJogButton As MachineButton = m_ButtonJogList(2)
' riverco in elenco il bottone ZCYJog
Dim ZBJogButton As MachineButton = Nothing
Dim ItemButton As MachineButton = Nothing
For Each ItemButton In m_ButtonJogList
If ItemButton.StateFlag = K_ZBJOG Then
ZBJogButton = ItemButton
Exit For
End If
Next
If IsNothing(ZBJogButton) Then Return
' eseguo lo script lua associato
BCJogButton.ExecuteMDICommand(BCJogButton.TLuaScriptName)
ZBJogButton.ExecuteMDICommand(ZBJogButton.TLuaScriptName)
End Sub
Friend Sub ZBJogChanged(bBCAxes As Boolean)
@@ -383,6 +453,44 @@ Public Class DirectCutPageUC
ZBBtn.IsChecked = bBCAxes
End If
End Sub
Private Sub RemoteBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemoteBtn.Click
Dim RemoteButton As MachineButton = Nothing
Dim ItemButton As MachineButton = Nothing
For Each ItemButton In m_ButtonJogList
If ItemButton.StateFlag = K_REMOTE Then
RemoteButton = ItemButton
Exit For
End If
Next
If IsNothing(RemoteButton) Then Return
' eseguo lo script lua associato
Dim CurrentBtn As Primitives.ToggleButton = e.Source
Dim sLuaFileName As String = String.Empty
' verifico lo stato del bottone per avviare il giusto script
If CurrentBtn.IsChecked() Then
sLuaFileName = RemoteButton.TLuaScriptName
Else
sLuaFileName = RemoteButton.FLuaScriptName
End If
RemoteButton.ExecuteMDICommand(sLuaFileName)
End Sub
Friend Sub RemoteChanged(bRemote As Boolean)
' devo decodificare il tipo di pulsante, quindi eseguire la conversione...
Dim RemoteButton As TwoStateButton = Nothing
For Each MachineButton As MachineButton In m_ButtonJogList
If MachineButton.StateFlag.Trim = K_REMOTE Then
RemoteButton = MachineButton
Exit For
End If
Next
If Not IsNothing(RemoteButton) Then
RemoteButton.SetIsChecked(bRemote)
RemoteBtn.IsChecked = bRemote
End If
End Sub
'------------------NUOVI BOTTONI PER GESTIONE JOYSTICK-------------------------------------------------
Private Sub MachViewModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachViewModeBtn.Click
If m_bShowMachine Then
+11
View File
@@ -121,6 +121,8 @@ Public Class MachineButtonsUC
CurrToggleBtn.Content = "Z - C"
ElseIf StateFlagArray(nIndex) = K_ZBJOG Then
CurrToggleBtn.Content = "Z - B"
ElseIf StateFlagArray(nIndex) = K_REMOTE Then
CurrToggleBtn.Content = "Remote"
End If
Catch ex As Exception
EgtOutLog("Error loading content " & StateFlagArray(nIndex))
@@ -602,6 +604,15 @@ Public Class MachineButtonsUC
' selezoiono lo stato del bottone
GetToggleButton(nIndex + 1).IsChecked = bBCAxes
End Sub
Friend Sub RemoteChanged(ByVal bRemote As Boolean)
' recupero le asscociazioni con i bottoni
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, K_REMOTE)
If nIndex = -1 Then Return
' selezoiono lo stato del bottone
GetToggleButton(nIndex + 1).IsChecked = bRemote
End Sub
'-----------------------------------------------------------------------------------------------------------------
Private Function GetToggleButton(ByVal nIndex As Integer) As Primitives.ToggleButton
+33 -10
View File
@@ -46,6 +46,8 @@ Public Class AlzFrontUC
' raggio circoscritto al pezzo
Private m_dBBoxRad As Double
' dimensione dei caratteri
Private m_dH As Double
Private Sub AlzFrontPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
@@ -66,12 +68,11 @@ Public Class AlzFrontUC
' nascondo il bottone Back della pagina Draw
m_MainWindow.m_DrawPageUC.BackBtn.Visibility = Visibility.Hidden
m_MainWindow.m_DrawPageUC.MessageGrid.Visibility = Visibility.Hidden
' Abilito bottoni angoli di fianco e lavorazioni da sotto
m_MainWindow.m_DrawPageUC.SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
m_MainWindow.m_DrawPageUC.FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
m_MainWindow.m_DrawPageUC.EngraveBtn.IsEnabled = True
m_MainWindow.m_DrawPageUC.DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
' Disabilito bottoni angoli di fianco e lavorazioni da sotto
m_MainWindow.m_DrawPageUC.SideAngleBtn.IsEnabled = False
m_MainWindow.m_DrawPageUC.FiloTopBtn.IsEnabled = False
m_MainWindow.m_DrawPageUC.EngraveBtn.IsEnabled = False
m_MainWindow.m_DrawPageUC.DripCutBtn.IsEnabled = False
' nome dei parametri condivisi
Parameter1TxBl.Text = "Altezza"
@@ -142,6 +143,7 @@ Public Class AlzFrontUC
' Aggiungo il lato alla lista di quelli su cui è possibile mettere una alzatina o un frontalino
Dim sNameCurrLine As String = String.Empty
Dim nInfo As Integer = 0
Dim dSideAng As Integer = 0
EgtSetName(CurrLine, "A" & nEntityIndex.ToString)
EgtGetName(CurrLine, sNameCurrLine)
' inserisco la numerazione dei lati della figura
@@ -155,6 +157,13 @@ Public Class AlzFrontUC
Else
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine))
End If
' inserisco riferimento univoco al lato (solo se non esiste)
Dim sInfoRef As String = String.Empty
EgtGetInfo(CurrLine, "RefAF", sInfoRef)
If String.IsNullOrEmpty(sInfoRef) Then
Dim sRefGUID As String = System.Guid.NewGuid().ToString()
EgtSetInfo(CurrLine, "RefAF", sRefGUID)
End If
nEntityIndex += 1
Else
EgtSetName(CurrLine, "B" & nOtherIndex.ToString)
@@ -190,8 +199,8 @@ Public Class AlzFrontUC
End If
End If
End If
' aggiungo l'Info che comunica se il lato è stato modificato
InitList()
End Sub
@@ -269,9 +278,9 @@ Public Class AlzFrontUC
Friend Function AddTextToLine(sText As String, TextLayer As Integer, CurrLine As Integer, dDistance As Double,
dBBoxRad As Double, bTextExt As Boolean, Optional bRot As Boolean = False) As Integer
' Calcolo altezza testo
Dim dH As Double = 0.05 * dBBoxRad
m_dH = 0.05 * dBBoxRad
' Creo testo
Dim nText As Integer = EgtCreateTextAdv(TextLayer, Point3d.ORIG(), 0, sText, "", 500, False, dH, 1, 0, INS_POS.MC)
Dim nText As Integer = EgtCreateTextAdv(TextLayer, Point3d.ORIG(), 0, sText, "", 500, False, m_dH, 1, 0, INS_POS.MC)
' Calcolo posizionamento
' BBox del testo e suo centro
Dim ptMinBBox As Point3d
@@ -659,6 +668,13 @@ Public Class AlzFrontUC
Return sSideName
End Function
Private Sub InitList()
' quando avvio la pagina inizializzo tutti i lati comunicando che non sono stati modificati
For j As Integer = 0 To AlzFrontEntityList.Count() - 1
EgtSetInfo(AlzFrontEntityList(j).Id, "IsModify", 0)
Next
End Sub
' aggiorno lo stato della dell'oggetto
Private Sub RefreshList(sSideName As String, sOppositeNameCheck As String, bIsAlz As Boolean, bIsChecked As Boolean)
For j As Integer = 0 To AlzFrontEntityList.Count() - 1
@@ -668,6 +684,7 @@ Public Class AlzFrontUC
AlzFrontEntityList(j).Type = AlzFrontEntity.AlzFront.NONE
' insrisco l'informazione nelle info del lato
EgtSetInfo(AlzFrontEntityList(j).Id, INFO_ALZFRONT, 0)
EgtSetInfo(AlzFrontEntityList(j).Id, "IsModify", 1)
Exit For
End If
' se selezione di Alz. o Front.
@@ -680,6 +697,7 @@ Public Class AlzFrontUC
End If
' insrisco l'informazione nelle info del lato
EgtSetInfo(AlzFrontEntityList(j).Id, INFO_ALZFRONT, 1)
EgtSetInfo(AlzFrontEntityList(j).Id, "IsModify", 1)
Else
AlzFrontEntityList(j).Type = AlzFrontEntity.AlzFront.FRONTALINO
' deseleziono il Check opposto
@@ -689,6 +707,7 @@ Public Class AlzFrontUC
End If
' inserisco l'informazione nelle info del lato
EgtSetInfo(AlzFrontEntityList(j).Id, INFO_ALZFRONT, 2)
EgtSetInfo(AlzFrontEntityList(j).Id, "IsModify", 1)
End If
' termino il ciclo
Exit For
@@ -737,6 +756,10 @@ Public Class AlzFrontUC
If StringToLen(Parameter2FTxBx.Text, dVal) Then
EgtLuaSetGlobNumVar("CMP.F_DeltaAng", dVal)
End If
' parametri per la scrittura dei caratteri
EgtLuaSetGlobNumVar("CMP.BBoxRad", m_dBBoxRad)
EgtLuaSetGlobNumVar("CMP.HeightText", m_dH)
Dim sMsg As String = String.Empty
' eseguo la funzione per il disegno della componente (CMP_Draw)
+203 -5
View File
@@ -212,6 +212,14 @@ Public Class DrawPageUC
Dim DstLnColor As New Color3d(255, 0, 0)
GetPrivateProfileColor(S_SCENE, K_DISTLINE, DstLnColor, m_MainWindow.GetIniFile())
DrawScene.SetDistLineMaterial(DstLnColor)
'' imposto il colore di sfondo del disegno
'Dim BAckTopColor As New Color3d(192, 192, 192)
'GetPrivateProfileColor(S_SCENE, "BackTop", BAckTopColor, m_MainWindow.GetIniFile())
'Dim BackBottom As New Color3d(192, 192, 192)
'GetPrivateProfileColor(S_SCENE, "BackBottom", BackBottom, m_MainWindow.GetIniFile())
'DrawScene.SetViewBackground(BAckTopColor, BackBottom)
' imposto parametri OpenGL
Dim nDriver As Integer = GetPrivateProfileInt(S_OPENGL, K_DRIVER, 3, m_MainWindow.GetIniFile())
Dim b2Buff As Boolean = (GetPrivateProfileInt(S_OPENGL, K_DOUBLEBUFFER, 1, m_MainWindow.GetIniFile()) <> 0)
@@ -705,10 +713,6 @@ Public Class DrawPageUC
EgtSetCurrentContext(DrawScene.GetCtx())
' Cancello layer regioni per selezione buchi
Dim Pz As Integer = EgtGetFirstGroupInGroup(GDB_ID.ROOT)
' ciclo su tutti i pezzi presenti nel file nge
Dim NxtPz As Integer = EgtGetNextGroup(Pz)
Dim SelectRegion As Integer = EgtGetFirstNameInGroup(Pz, "SelectRegion")
EgtErase(SelectRegion)
' Cancello layer etichette, quotatura,ausiliario e box
@@ -873,6 +877,199 @@ Public Class DrawPageUC
Return True
End Function
' permette di inserire più di un part
Private Function MakeMultipleInsert(ByVal nNbr As Integer, sName As String) As Boolean
' Imposto il contesto corrente
EgtSetCurrentContext(DrawScene.GetCtx())
Dim Pz As Integer = -1
Dim NxtPz As Integer = -1
' Cancello layer regioni per selezione buchi
Pz = EgtGetFirstGroupInGroup(GDB_ID.ROOT)
While Pz <> -1
' imposto il contesto corrente
EgtSetCurrentContext(DrawScene.GetCtx())
' salvo il file temporaneo per studio delle alzatine
EgtSaveFile("c:\EgtData\OmagCUT\Temp\TempAlzatine.nge", NGE.CMPTEXT)
' cerco un altro pezzo nell'elenco
NxtPz = EgtGetNextPart(Pz)
Dim SelectRegion As Integer = EgtGetFirstNameInGroup(Pz, "SelectRegion")
EgtErase(SelectRegion)
' Cancello layer etichette, quotatura,ausiliario e box
EgtErase(EgtGetFirstNameInGroup(Pz, "LayAux"))
EgtErase(EgtGetFirstNameInGroup(Pz, "Etichette"))
EgtErase(EgtGetFirstNameInGroup(Pz, "Quotature"))
EgtErase(EgtGetFirstNameInGroup(Pz, "Box"))
' Cancello layer etichette dei componenti interni (buchi)
Dim nHLId As Integer = EgtGetFirstNameInGroup(Pz, "HoleLabels")
While nHLId <> GDB_ID.NULL
EgtErase(nHLId)
nHLId = EgtGetFirstNameInGroup(Pz, "HoleLabels")
End While
' Attivo visualizzazione misura
Dim nRegLayId As Integer = EgtGetFirstNameInGroup(Pz, NAME_REGION)
Dim nId As Integer = EgtGetFirstInGroup(nRegLayId)
While nId <> GDB_ID.NULL
If EgtGetType(nId) = GDB_TY.EXT_TEXT Then
EgtSetStatus(nId, GDB_ST.ON_)
End If
nId = EgtGetNext(nId)
End While
' Calcolo dimensione ingombro Pezzo tramite OutLoop
Dim nOutLoopLayer = EgtGetFirstNameInGroup(Pz, NAME_OUTLOOP)
Dim b3Part As New BBox3d
EgtGetBBoxGlob(nOutLoopLayer, GDB_BB.STANDARD, b3Part)
' Muovo la regione in Z per evitare problemi in visualizzazione
EgtMove(nRegLayId, New Vector3d(0, 0, DELTAZ_REG), GDB_RT.GLOB)
' Se pezzo con dati TRF
If m_bTrfData Then
' Nome da dati Trf
Dim nTextId = EgtGetFirstInGroup(nRegLayId)
While nTextId <> GDB_ID.NULL
If EgtGetType(nTextId) = GDB_TY.EXT_TEXT Then
Dim sText As String = m_TrfOrderCode & "-" & m_TrfOrderDesc
Dim sText2 As String = m_TrfMatCode & "-" & m_TrfSurfCode
Dim sText3 As String = LenToString(b3Part.DimX(), 0) & " x " & LenToString(b3Part.DimY(), 0) & " x " & LenToString(m_TrfThickness, 0)
Dim dRatio As Double = Math.Max(b3Part.DimX(), b3Part.DimY()) / Math.Min(b3Part.DimX(), b3Part.DimY())
If dRatio < 5 Then
sText = sText & "<br/>" & sText2 & "<br/>" & sText3
Else
sText = sText & " " & sText2 & " " & sText3
End If
EgtModifyText(nTextId, sText)
Dim ptCen As Point3d
EgtCenterPoint(nTextId, ptCen)
Dim b3Text As New BBox3d
EgtGetBBoxGlob(nTextId, GDB_BB.STANDARD, b3Text)
Dim dCoeff As Double = Math.Min(b3Part.DimX() / b3Text.DimX(), b3Part.DimY() / b3Text.DimY()) / 1.25
If dCoeff < 1 Then EgtScale(nTextId, New Frame3d(ptCen), dCoeff, dCoeff, dCoeff)
Exit While
End If
nTextId = EgtGetNext(nTextId)
End While
' Info di pezzo da dati Trf
EgtSetInfo(Pz, "OC", m_TrfOrderCode)
EgtSetInfo(Pz, "OD", m_TrfOrderDesc)
EgtSetInfo(Pz, "PC", m_TrfPartCode)
EgtSetInfo(Pz, "MT", m_TrfMatCode)
EgtSetInfo(Pz, "SRF", m_TrfSurfCode)
EgtSetInfo(Pz, "L", DoubleToString(b3Part.DimX(), 1))
EgtSetInfo(Pz, "W", DoubleToString(b3Part.DimY(), 1))
EgtSetInfo(Pz, "T", m_TrfThickness)
EgtSetInfo(Pz, "V1", DoubleToString(b3Part.DimX(), 1))
EgtSetInfo(Pz, "V2", DoubleToString(b3Part.DimY(), 1))
' Se altrimenti pezzo con dati Csv
ElseIf m_bCsvData Then
' Nome del pezzo
EgtSetName(Pz, m_sCsvName)
' Dati Csv
EgtSetInfo(Pz, INFO_CSV_PART, m_sCsvName)
EgtSetInfo(Pz, INFO_CSV_ORD, m_sCsvOrder)
EgtSetInfo(Pz, INFO_CSV_DIST, m_sCsvList)
EgtSetInfo(Pz, INFO_CSV_MAT, m_MainWindow.m_CurrentMachine.CurrMat.sName)
EgtSetInfo(Pz, INFO_CSV_V1, DoubleToString(b3Part.DimX(), 1))
EgtSetInfo(Pz, INFO_CSV_V2, DoubleToString(b3Part.DimY(), 1))
' Se definito nome lo inserisco nel testo
If Not String.IsNullOrWhiteSpace(m_sCsvName) Then
Dim nTextId = EgtGetFirstInGroup(nRegLayId)
While nTextId <> GDB_ID.NULL
If EgtGetType(nTextId) = GDB_TY.EXT_TEXT Then
Dim sText As String = String.Empty
EgtTextGetContent(nTextId, sText)
Dim sNewText = m_sCsvName & "<br/>" & sText
EgtModifyText(nTextId, sNewText)
Exit While
End If
nTextId = EgtGetNext(nTextId)
End While
End If
' Altrimenti pezzo con dati normali
Else
' Se definito nome lo inserisco nel testo
If Not String.IsNullOrWhiteSpace(sName) Then
Dim nTextId = EgtGetFirstInGroup(nRegLayId)
While nTextId <> GDB_ID.NULL
If EgtGetType(nTextId) = GDB_TY.EXT_TEXT Then
Dim sText As String = String.Empty
EgtTextGetContent(nTextId, sText)
Dim sNewText = sName & "<br/>" & sText
EgtModifyText(nTextId, sNewText)
Exit While
End If
nTextId = EgtGetNext(nTextId)
End While
End If
End If
' Eventuale testo per indicare il sopra (solo nel caso di rettangolo)
If TopChBx.IsVisible() And TopChBx.IsChecked() Then
Utility.AddTopToPartRegion(nRegLayId)
End If
' Scrivo testi per nesting
SideAngle.WriteSideAngleForNest(DrawScene.GetCtx())
' Imposto colore testi
Utility.SetTextColor(nRegLayId)
' Esporto il pezzo in un file temporaneo
Dim sTmpFile As String = m_MainWindow.GetTempDir() & "\FlatPartCompo.Nge"
If Not EgtSaveObjToFile(Pz, sTmpFile, NGE.BIN) Then
Return False
End If
' Passo al contesto principale
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' Recupero flag per inserimento diretto in grezzo (altrimenti in parcheggio)
Dim bDirect As Boolean = (GetPrivateProfileInt(S_NEST, K_DIRECT, 0, m_MainWindow.GetIniFile()) <> 0)
' Elimino eventuali precedenti pezzi vuoti
EgtEraseEmptyParts()
' Area dei nuovi pezzi
Dim dNewArea As Double = 0
' Se esiste il file del pezzo
If My.Computer.FileSystem.FileExists(sTmpFile) Then
' eseguo inserimento
For i As Integer = 1 To nNbr
' Inserisco il pezzo
EgtInsertFile(sTmpFile)
' Ne recupero l'Id
Dim nId2 As Integer = EgtGetLastPart()
' Aggiusto per lavorazioni
EgtAdjustFlatPart(nId2)
' Se dati Trf assegno nome univoco
If m_bTrfData Then EgtSetInfo(nId2, "CsvPart", m_TrfOrderCode & "-" & nId2.ToString())
' Aggiorno l'area dei nuovi pezzi
dNewArea += GeomCalc.GetPartArea(nId2)
' Inserisco in parcheggio
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId2, True)
' Aggiungo riferimento e lo inserisco in VeinMatching
VeinMatching.SetRefOnPart(nId2)
VeinMatching.AddPartFromDraw(nId2, True)
' Se richiesto posizionamento diretto, lo eseguo
If bDirect Then
If m_MainWindow.m_CadCutPageUC.m_NestPage.InsertOnePart(nId2) Then
' Eventuale notifica al VeinMatching
VeinMatching.OnInsertPartInRaw(nId2)
End If
End If
Next
' Cancello il file
My.Computer.FileSystem.DeleteFile(sTmpFile)
End If
' Aggiorno Aree totale
m_MainWindow.m_CurrentProjectPageUC.UpdateTotalArea(dNewArea)
' passo al pezzo successivo
Pz = NxtPz
End While
' Aggiorno Aree da lavorare dei pezzi
m_MainWindow.m_CurrentProjectPageUC.UpdateToProduceArea()
m_MainWindow.m_CurrentProjectPageUC.ShowAreas()
' Aggiorno ambiente principale
EgtZoom(ZM.ALL)
Return True
End Function
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
m_bBackFromInternalCompo = False
m_bInternalCompo = False
@@ -887,7 +1084,8 @@ Public Class DrawPageUC
' Leggo numero di pezzi da inserire
Dim InsNbr As Integer = Int32.Parse(PartNumTxBx.Text)
' Passo al contesto principale
MakeInsert(InsNbr, sPartName)
'MakeInsert(InsNbr, sPartName)
MakeMultipleInsert(InsNbr, sPartName)
' Aggiorno ambiente principale
EgtZoom(ZM.ALL)
' Elimino nome del componente precedente
+4 -1
View File
@@ -78,7 +78,10 @@
<UniformGrid Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Columns="2" >
<Button Name="SelSectionBtn"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource Sezione-corniceImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</Button>
<Grid>
<Button Name="SelGuideBtn"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
+1 -1
View File
@@ -61,7 +61,7 @@ Public Class FrameCutPageUC
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 13)) 'Arco
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 14)) 'Guida
End If
SelSectionBtn.Content = EgtMsg(MSG_FRAMECUTPAGEUC + 15) 'Sezione
SelSectionBtn.ToolTip = EgtMsg(MSG_FRAMECUTPAGEUC + 15) 'Sezione
SelGuideBtn.Content = EgtMsg(MSG_FRAMECUTPAGEUC + 16) 'Guida
ArcRadTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 17) 'Rad
ArcAngTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 18) 'Ang
+11
View File
@@ -376,6 +376,7 @@ Public Class AlarmsPageUC
CfrPercTxBx.Text = DoubleToString(m_CurrentMachine.dFsevPerc, 0)
End Sub
' aggiorna le text delle lavorazioni (la selezione avviene nella pagina del grezzo o dalla pagina del progetto corrente)
Private Sub RefreschMachining()
If m_CurrentMachine.sCurrSawing <> String.Empty Then
CurrSawingTxBx.Text = m_CurrentMachine.sCurrSawing
@@ -537,6 +538,8 @@ Public Class AlarmsPageUC
End If
' Aggiorno utensili per lavoro in corso
m_MainWindow.m_WorkInProgressPageUC.UpdateTools()
' aggiorno la lista delle lavorazioni
RefreschMachining()
End Sub
' -- DRILL --
@@ -570,6 +573,8 @@ Public Class AlarmsPageUC
End If
' Aggiorno utensili per lavoro in corso
m_MainWindow.m_WorkInProgressPageUC.UpdateTools()
' aggiorno la lista delle lavorazioni
RefreschMachining()
End Sub
' -- MILL --
@@ -603,6 +608,8 @@ Public Class AlarmsPageUC
End If
' Aggiorno utensili per lavoro in corso
m_MainWindow.m_WorkInProgressPageUC.UpdateTools()
' aggiorno la lista delle lavorazioni
RefreschMachining()
End Sub
' -- CUPWHEEL --
@@ -636,6 +643,8 @@ Public Class AlarmsPageUC
End If
' Aggiorno utensili per lavoro in corso
m_MainWindow.m_WorkInProgressPageUC.UpdateTools()
' aggiorno la lista delle lavorazioni
RefreschMachining()
End Sub
' -- WATERJET --
@@ -667,6 +676,8 @@ Public Class AlarmsPageUC
End If
' Aggiorno utensili per lavoro in corso
m_MainWindow.m_WorkInProgressPageUC.UpdateTools()
' aggiorno la lista delle lavorazioni
RefreschMachining()
End Sub
#End Region 'Selection: SAW, DRILL, MILL, CUPWHEEL, WATERJET
+16 -6
View File
@@ -29,12 +29,22 @@
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<ToggleButton Name="AlarmsBtn" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
<ToggleButton Name="ToolsDBBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
<ToggleButton Name="MachiningDBBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
<ToggleButton Name="PolishingsBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
<ToggleButton Name="TestingPageBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
<ToggleButton Name="StatisticsBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
<ToggleButton Name="AlarmsBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource DatiMacchinaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</ToggleButton>
<ToggleButton Name="ToolsDBBtn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource DB-lavorazioniImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</ToggleButton>
<ToggleButton Name="MachiningDBBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource DB-utensiliImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</ToggleButton>
<ToggleButton Name="PolishingsBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowToggleButton}"></ToggleButton>
<ToggleButton Name="TestingPageBtn" Grid.Column="4" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource MacchinaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</ToggleButton>
<ToggleButton Name="StatisticsBtn" Grid.Column="5" Style="{DynamicResource OmagCut_YellowToggleButton}">
</ToggleButton>
</Grid>
+4 -4
View File
@@ -43,11 +43,11 @@ Public Class MachinePageUC
m_MachineCNPageUC.SetValue(Grid.RowProperty, 1)
m_StatisticsPageUC.SetValue(Grid.RowProperty, 1)
AlarmsBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 5)
ToolsDBBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 6)
MachiningDBBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 7)
AlarmsBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 5)
ToolsDBBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 6)
MachiningDBBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 7)
PolishingsBtn.Content = EgtMsg(91090)
TestingPageBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 8)
TestingPageBtn.ToolTip = EgtMsg(MSG_MACHINEPAGEUC + 8)
StatisticsBtn.Content = EgtMsg(90709)
' Apro pagina dati macchina
+8 -6
View File
@@ -160,12 +160,12 @@ Public Class ToolsDbPageUC
ToolScene.SetStatusNull()
' Inizializzo le famiglie di utensili nell'albero
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
InitializeToolGroup(m_CurrMachine.bSaw, MCH_TY.SAW_STD, EgtMsg( 90751))
InitializeToolGroup(m_CurrMachine.bDrill, MCH_TY.DRILL_STD, EgtMsg( 90752))
InitializeToolGroup(m_CurrMachine.bMill, MCH_TY.MILL_STD, EgtMsg( 90753))
InitializeToolGroup(m_CurrMachine.bCupWheel, MCH_TY.MILL_NOTIP, EgtMsg( 90754))
InitializeToolGroup(m_CurrMachine.bPolishingWheel, MCH_TY.MILL_POLISHING, EgtMsg( 90756))
InitializeToolGroup(m_CurrMachine.bWaterJet, MCH_TY.WATERJET, EgtMsg( 90755))
InitializeToolGroup(m_CurrMachine.bSaw, MCH_TY.SAW_STD, EgtMsg(90751))
InitializeToolGroup(m_CurrMachine.bDrill, MCH_TY.DRILL_STD, EgtMsg(90752))
InitializeToolGroup(m_CurrMachine.bMill, MCH_TY.MILL_STD, EgtMsg(90753))
InitializeToolGroup(m_CurrMachine.bCupWheel, MCH_TY.MILL_NOTIP, EgtMsg(90754))
InitializeToolGroup(m_CurrMachine.bPolishingWheel, MCH_TY.MILL_POLISHING, EgtMsg(90756))
InitializeToolGroup(m_CurrMachine.bWaterJet, MCH_TY.WATERJET, EgtMsg(90755))
' Sposto tutti i parametri in su di una riga se testa e uscita sono disattivati
If Not m_CurrMachine.bShowHeadExit Then
MoveParam()
@@ -708,6 +708,8 @@ Public Class ToolsDbPageUC
' Aggiorno visualizzazione
EgtSetCurrentContext(ToolScene.GetCtx())
EgtSetView(VT.TOP, False)
'EgtSetGenericView(150, -150)
'EgtSetView(VT.ISO_SE, False)
EgtZoom(ZM.ALL)
End Sub
+2 -2
View File
@@ -1097,9 +1097,9 @@ Class MainWindow
End If
' seleziono il tipo di avvio
'm_CurrentProjectPageUC.StartProgram()
m_CurrentProjectPageUC.StartProgram()
' aggiorno la grafica
EgtDraw()
EgtZoom(ZM.ALL, True)
End Sub
Friend Sub EgtWPFInit()
+2 -2
View File
@@ -62,5 +62,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.3.9.2")>
<Assembly: AssemblyFileVersion("2.3.9.2")>
<Assembly: AssemblyVersion("2.3.9.3")>
<Assembly: AssemblyFileVersion("2.3.9.3")>
+12 -7
View File
@@ -326,20 +326,23 @@ Public Class CNCommunication
m_CN.SetCnDataVar(CN_generico.CnData.BypassState, sVal)
' nuove variabili: stato dei nuovi pulsanti
m_IsNewConsole = GetPrivateProfileString(S_NCDATA, K_NEWCONSOLE, "", sVal, m_MainWindow.GetMachIniFile())
GetPrivateProfileString(S_NCDATA, K_NEWCONSOLE, "", sVal, m_MainWindow.GetMachIniFile())
m_IsNewConsole = (sVal = 1)
If m_IsNewConsole Then
GetPrivateProfileString(S_NCDATA, K_XYJOG, "", sVal, m_MainWindow.GetMachIniFile())
m_CN.SetCnDataVar(CN_generico.CnData.XYJog, sVal)
If Not String.IsNullOrEmpty(sVal) Then m_CN.SetCnDataVar(CN_generico.CnData.XYJog, sVal)
GetPrivateProfileString(S_NCDATA, K_ZCJOG, "", sVal, m_MainWindow.GetMachIniFile())
m_CN.SetCnDataVar(CN_generico.CnData.ZCJog, sVal)
If Not String.IsNullOrEmpty(sVal) Then m_CN.SetCnDataVar(CN_generico.CnData.ZCJog, sVal)
GetPrivateProfileString(S_NCDATA, K_ZBJOG, "", sVal, m_MainWindow.GetMachIniFile())
m_CN.SetCnDataVar(CN_generico.CnData.ZBJog, sVal)
If Not String.IsNullOrEmpty(sVal) Then m_CN.SetCnDataVar(CN_generico.CnData.ZBJog, sVal)
GetPrivateProfileString(S_NCDATA, K_POWERON, "", sVal, m_MainWindow.GetMachIniFile())
m_CN.SetCnDataVar(CN_generico.CnData.PowerON, sVal)
If Not String.IsNullOrEmpty(sVal) Then m_CN.SetCnDataVar(CN_generico.CnData.PowerON, sVal)
GetPrivateProfileString(S_NCDATA, K_REMOTE, "", sVal, m_MainWindow.GetMachIniFile())
If Not String.IsNullOrEmpty(sVal) Then m_CN.SetCnDataVar(CN_generico.CnData.Remote, sVal)
End If
' Inizializzo la comunicazione
m_CN.Init()
' Inizializzo la comunicazione
m_CN.Init()
Catch ex As Exception
' set status to statusbar
@@ -558,6 +561,7 @@ Public Class CNCommunication
m_MainWindow.m_DirectCutPageUC.XYJogChanged(m_CN.bXYJog)
m_MainWindow.m_DirectCutPageUC.ZCJogChanged(m_CN.bZCJog)
m_MainWindow.m_DirectCutPageUC.ZBJogChanged(m_CN.bZBCJog)
m_MainWindow.m_DirectCutPageUC.RemoteChanged(m_CN.bRemote)
End If
Else
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.SpindleStateChanged(m_CN.bSpindleState)
@@ -578,6 +582,7 @@ Public Class CNCommunication
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.XYJogChanged(m_CN.bXYJog)
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.ZJogChanged(m_CN.bZCJog)
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.BCJogChanged(m_CN.bZBCJog)
m_MainWindow.m_DirectCutPageUC.m_MachineButtons.RemoteChanged(m_CN.bRemote)
End If
End If
+3 -1
View File
@@ -8,7 +8,7 @@ Public MustInherit Class CN_generico
Public Const MAX_VAR As Short = 100
Public Const MAX_VALUES As Short = 9 ' Max. index to read the data from the FXServer array
Public Const MAX_TOOLS As Short = 100
Public Const NUM_DATA = 51 ' Numero di dati del CN (Speed,Feed,...)
Public Const NUM_DATA = 52 ' Numero di dati del CN (Speed,Feed,...)
Public m_NewVariable As Boolean = False ' per scrittura delle vairbaili Apllication del PLC
@@ -65,6 +65,7 @@ Public MustInherit Class CN_generico
ZCJog = 48
ZBJog = 49
PowerON = 50
Remote = 51
End Enum
#End Region
@@ -205,6 +206,7 @@ Public MustInherit Class CN_generico
Public bZBCJog As Boolean
Public bPowerON As Boolean
Public bRemote As Boolean
' Nuovi di bottoni -------------------------------------------
Public nMachineMode As Integer
+2
View File
@@ -1085,6 +1085,8 @@ Namespace Num
bZBCJog = CBool(values(n))
Case CnData.PowerON ' (49)
bPowerON = CBool(values(n))
Case CnData.Remote ' (50)
bRemote = CBool(values(n))
End Select
Next
+54 -3
View File
@@ -196,6 +196,9 @@
<Compile Include="Project\StartLauncheWD.xaml.vb">
<DependentUpon>StartLauncheWD.xaml</DependentUpon>
</Compile>
<Compile Include="Project\CicloStartWD.xaml.vb">
<DependentUpon>CicloStartWD.xaml</DependentUpon>
</Compile>
<Compile Include="RawPhoto\SlabIdWD.xaml.vb">
<DependentUpon>SlabIdWD.xaml</DependentUpon>
</Compile>
@@ -422,6 +425,8 @@
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Project\StartLauncheWD.xaml">
</Page>
<Page Include="Project\CicloStartWD.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -730,7 +735,6 @@
<ItemGroup>
<Resource Include="Resources\AvantiVeloce.png" />
<Resource Include="Resources\IndietroVeloce.png" />
<Resource Include="Resources\NewIcons\ZCJog.png" />
<Resource Include="Resources\Pause.png" />
<Resource Include="Resources\Play.png" />
</ItemGroup>
@@ -1030,8 +1034,55 @@
<Resource Include="Resources\NewIcons\SlabId.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\XYJog.png" />
<Resource Include="Resources\NewIcons\ZBJog.png" />
<Resource Include="Resources\NewIcons\Nuovo.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Carica.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Salva.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Salva-con-nome.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\CSV.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Vein-match.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\DatiMacchina.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\DB-lavorazioni.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\DB-utensili.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Macchina.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Movimento-manuale.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Taglio-singolo.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Taglio-multiplo.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Taglio-griglia.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Spianatura.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Copia-dima.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Sezione-cornice.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
+23 -1
View File
@@ -77,7 +77,7 @@
<BitmapImage x:Key="ZoomOutImg" UriSource="Resources/NewIcons/Zoom-.png"></BitmapImage>
<BitmapImage x:Key="ZoomWinImg" UriSource="Resources/NewIcons/ZoomWIn.png"></BitmapImage>
<BitmapImage x:Key="LogoOmagImg" UriSource="Resources/NewIcons/logo-OmCut.png"></BitmapImage>
<!--Nuove icone da sistemare-->
<BitmapImage x:Key="AvantiVeloceImg" UriSource="Resources/NewIcons/AvantiVeloce.png"></BitmapImage>
<BitmapImage x:Key="IndietroVeloceImg" UriSource="Resources/NewIcons/IndietroVeloce.png"></BitmapImage>
@@ -88,6 +88,28 @@
<BitmapImage x:Key="StopImg" UriSource="Resources/NewIcons/Stop.png"></BitmapImage>
<BitmapImage x:Key="VacuumImg" UriSource="Resources/NewIcons/Vacuum.png"></BitmapImage>
<!--ProjectManager-->
<BitmapImage x:Key="NuovoImg" UriSource="Resources/NewIcons/Nuovo.png"></BitmapImage>
<BitmapImage x:Key="CaricaImg" UriSource="Resources/NewIcons/Carica.png"></BitmapImage>
<BitmapImage x:Key="SalvaImg" UriSource="Resources/NewIcons/Salva.png"></BitmapImage>
<BitmapImage x:Key="Salva-con-nomeImg" UriSource="Resources/NewIcons/Salva-con-nome.png"></BitmapImage>
<BitmapImage x:Key="CSVImg" UriSource="Resources/NewIcons/CSV.png"></BitmapImage>
<BitmapImage x:Key="Vein-matchImg" UriSource="Resources/NewIcons/Vein-match.png"></BitmapImage>
<!--Machine-->
<BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage>
<BitmapImage x:Key="DB-lavorazioniImg" UriSource="Resources/NewIcons/DB-lavorazioni.png"></BitmapImage>
<BitmapImage x:Key="DB-utensiliImg" UriSource="Resources/NewIcons/DB-utensili.png"></BitmapImage>
<BitmapImage x:Key="MacchinaImg" UriSource="Resources/NewIcons/Macchina.png"></BitmapImage>
<!--Direct cuts-->
<BitmapImage x:Key="Taglio-grigliaImg" UriSource="Resources/NewIcons/Taglio-griglia.png"></BitmapImage>
<BitmapImage x:Key="Taglio-multiploImg" UriSource="Resources/NewIcons/Taglio-multiplo.png"></BitmapImage>
<BitmapImage x:Key="Taglio-singoloImg" UriSource="Resources/NewIcons/Taglio-singolo.png"></BitmapImage>
<BitmapImage x:Key="SpianaturaImg" UriSource="Resources/NewIcons/Spianatura.png"></BitmapImage>
<BitmapImage x:Key="Movimento-manualeImg" UriSource="Resources/NewIcons/Movimento-manuale.png"></BitmapImage>
<BitmapImage x:Key="Copia-dimaImg" UriSource="Resources/NewIcons/Copia-dima.png"></BitmapImage>
<!--Frame-->
<BitmapImage x:Key="Sezione-corniceImg" UriSource="Resources/NewIcons/Sezione-cornice.png"></BitmapImage>
<FontFamily x:Key="OmagCut_Font">./Resources/Fonts/#Roboto</FontFamily>
<SolidColorBrush x:Key="OmagCut_TreeViewBackGroundColor" Color="#636974" />
+35 -1
View File
@@ -155,6 +155,31 @@
<BitmapImage x:Key="StopImg" UriSource="Resources/Stop.png"></BitmapImage>
<BitmapImage x:Key="VacuumImg" UriSource="Resources/Vacuum.png"></BitmapImage>
<!--sono le stesse immagini usate per l'interfaccia Dark-->
<!--ProjectManager-->
<BitmapImage x:Key="NuovoImg" UriSource="Resources/NewIcons/Nuovo.png"></BitmapImage>
<BitmapImage x:Key="CaricaImg" UriSource="Resources/NewIcons/Carica.png"></BitmapImage>
<BitmapImage x:Key="SalvaImg" UriSource="Resources/NewIcons/Salva.png"></BitmapImage>
<BitmapImage x:Key="Salva-con-nomeImg" UriSource="Resources/NewIcons/Salva-con-nome.png"></BitmapImage>
<BitmapImage x:Key="CSVImg" UriSource="Resources/NewIcons/CSV.png"></BitmapImage>
<BitmapImage x:Key="Vein-matchImg" UriSource="Resources/NewIcons/Vein-match.png"></BitmapImage>
<!--Machine-->
<BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage>
<BitmapImage x:Key="DB-lavorazioniImg" UriSource="Resources/NewIcons/DB-lavorazioni.png"></BitmapImage>
<BitmapImage x:Key="DB-utensiliImg" UriSource="Resources/NewIcons/DB-utensili.png"></BitmapImage>
<BitmapImage x:Key="MacchinaImg" UriSource="Resources/NewIcons/Macchina.png"></BitmapImage>
<!--Direct cuts-->
<BitmapImage x:Key="Taglio-grigliaImg" UriSource="Resources/NewIcons/Taglio-griglia.png"></BitmapImage>
<BitmapImage x:Key="Taglio-multiploImg" UriSource="Resources/NewIcons/Taglio-multiplo.png"></BitmapImage>
<BitmapImage x:Key="Taglio-singoloImg" UriSource="Resources/NewIcons/Taglio-singolo.png"></BitmapImage>
<BitmapImage x:Key="SpianaturaImg" UriSource="Resources/NewIcons/Spianatura.png"></BitmapImage>
<BitmapImage x:Key="Movimento-manualeImg" UriSource="Resources/NewIcons/Movimento-manuale.png"></BitmapImage>
<BitmapImage x:Key="Copia-dimaImg" UriSource="Resources/NewIcons/Copia-dima.png"></BitmapImage>
<!--Frame-->
<BitmapImage x:Key="Sezione-corniceImg" UriSource="Resources/NewIcons/Sezione-cornice.png"></BitmapImage>
<BitmapImage x:Key="LastProjImg" UriSource="Resources/NewIcons/PlayStep.png"></BitmapImage>
<FontFamily x:Key="OmagCut_Font">./Resources/Fonts/#Century Gothic</FontFamily>
<SolidColorBrush x:Key="OmagCut_TreeViewBackGroundColor" Color="#FFFFFFFF" />
@@ -921,7 +946,16 @@
<TextBlock Text="{Binding Name}" Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}" />
</DataTemplate>
<!--DataTemplate testo ed immagine-->
<DataTemplate x:Key="FileNameLsBxItem">
<DockPanel>
<TextBlock Text="{Binding GraphicName}" Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"
DockPanel.Dock="Left" Width="130"/>
<TextBlock Text="{Binding sDate}" Style="{StaticResource OmagCut_CurrProjSummeryTextBlock}"
DockPanel.Dock="Right" />
</DockPanel>
</DataTemplate>
<!--DataTemplate testo ed immagine-->
<DataTemplate x:Key="DataTemplateItem">
<Grid >
<Grid.ColumnDefinitions>
+44 -18
View File
@@ -537,28 +537,54 @@
</GroupBox>
<!--Selezione il tipo di avvio del programma-->
<GroupBox Name="StartLauncherGpBx"
Grid.Column="3" Grid.RowSpan="3" Grid.ColumnSpan="1"
Style="{DynamicResource OmagCut_GroupBox}">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.25*"/>
</Grid.RowDefinitions>
<ComboBox Name="StartLauncherCmBx" Grid.Column="1" Grid.Row="1" Style="{StaticResource OmagCut_ComboBox}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</GroupBox>
<GroupBox Name="FeedbackGpBx"
Grid.Column="4" Grid.RowSpan="3" Grid.ColumnSpan="1"
Style="{DynamicResource OmagCut_GroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.25*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.25*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Button Name="FeedbackBtn"
Grid.Row="1" Grid.Column="1"
Style="{DynamicResource OmagCut_YellowIconButton}">
<Image Source="{DynamicResource SendImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</Button>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.25*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.25*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Button Name="FeedbackBtn"
Grid.Row="1" Grid.Column="1"
Style="{DynamicResource OmagCut_YellowIconButton}">
<Image Source="{DynamicResource SendImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</Button>
</Grid>
</GroupBox>
+13 -1
View File
@@ -9,6 +9,8 @@ Public Class OptionsPageUC
Private UnitsList() As String = {"inch", "mm"}
Private ThemesList() As String = {"Classic", "Dark"}
Private StartLauncherList() As String = {"Last Project", "New Project", "Open Folder", "Show Window"}
Private Sub OptionsPageUC_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
' Associazione della lista linguaggi alla combobox
@@ -28,6 +30,11 @@ Public Class OptionsPageUC
ThemesCmBx.SelectedIndex = GetPrivateProfileInt(S_GENERAL, K_THEME, 0, m_MainWindow.GetIniFile())
Themes_StartUp()
' Carico la lista con il tipo di avvio
StartLauncherCmBx.ItemsSource = StartLauncherList
' 0-New, 1-Last, 2-Open, 3-Window
StartLauncherCmBx.SelectedIndex = GetPrivateProfileInt(S_GENERAL, K_AUTOLOADLASTPROJ, 0, m_MainWindow.GetIniFile())
' Rendo invisibile il GroupBox dei Temi la versione corrente
' ThemesGpBx.Visibility = Windows.Visibility.Collapsed
@@ -102,7 +109,7 @@ Public Class OptionsPageUC
ToleranceEMsgTxBl.Text = EgtMsg(MSG_OPTIONSPAGEUC + 21)
AffondamentoMsgTxBl.Text = EgtMsg(MSG_OPTIONSPAGEUC + 27)
LarghezzaMsgTxBl.Text = EgtMsg(MSG_OPTIONSPAGEUC + 28)
StartLauncherGpBx.Header = "Avvio Programma"
End Sub
Private Sub UpdateSlabDxf()
@@ -304,6 +311,11 @@ Public Class OptionsPageUC
WritePrivateProfileString(S_GENERAL, K_MESSAGES, m_MainWindow.m_CurrLanguage.LanguageName, m_MainWindow.GetIniFile())
End Sub
Private Sub StartLauncherCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles StartLauncherCmBx.SelectionChanged
Dim nIndex As Integer = StartLauncherCmBx.SelectedIndex
WritePrivateProfileString(S_GENERAL, K_AUTOLOADLASTPROJ, StartLauncherCmBx.SelectedIndex, m_MainWindow.GetIniFile())
End Sub
Private Sub UnitsOfMeasureCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles UnitsOfMeasureCmBx.SelectionChanged
Dim bMM As Boolean = (UnitsOfMeasureCmBx.SelectedIndex <> 0)
EgtSetUiUnits(bMM)
+50
View File
@@ -0,0 +1,50 @@
<Window x:Class="CicloStartWD"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
FontFamily="{DynamicResource OmagCut_Font}"
ResizeMode="NoResize" WindowStyle="None" AllowsTransparency="True" Background="Transparent"
Title="SaveNameWD" Height="200" Width="426.5" ShowInTaskbar="False">
<!--Definizione della pagina di scelta del nome con cui salvare il progetto-->
<Border Style="{DynamicResource OmagCut_Border}">
<Grid x:Name="SaveNameGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="CicloStartTxbl" Grid.Column="1" Grid.Row="1"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<Grid Name="ButtonsGrid" Grid.Column="1" Grid.Row="3" Grid.RowSpan="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Button Name="OkBtn" Grid.Column="1" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
<Button Name="ExitBtn" Grid.Column="3" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
</Grid>
</Grid>
</Border>
</Window>
+38
View File
@@ -0,0 +1,38 @@
Imports EgtUILib
Imports EgtWPFLib
Imports System.IO
Imports System.Collections.ObjectModel
Imports System.ComponentModel
Class CicloStartWD
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Public Sub New(Owner As Window)
Me.Owner = Owner
InitializeComponent()
End Sub
' inizializzo la finestra
Private Sub StartLauncherWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
' posiziono la fistra in centro alla pagina
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
' imopposto il messaggio di avvio
CicloStartTxbl.Text = "Avvio Ciclo-Start"
End Sub
' creo un progetto nuovo
Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs) Handles ExitBtn.Click
Me.Close()
End Sub
' Ultimo progetto
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
' Aspetto e lo avvio
System.Threading.Thread.Sleep(300)
' avvio il ciclo start della macchina
m_MainWindow.m_CNCommunication.m_CN.DGeneralFunctions_CycleStart()
Me.Close()
End Sub
End Class
+1 -1
View File
@@ -30,7 +30,7 @@
</Grid>
<!-- Definizione della Grid laterale -->
<Grid Grid.RowSpan="3">
<Grid Grid.RowSpan="3">
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="7*"/>
+110 -38
View File
@@ -93,6 +93,14 @@ Public Class CurrentProjectPageUC
Dim DstLnColor As New Color3d(255, 0, 0)
GetPrivateProfileColor(S_SCENE, K_DISTLINE, DstLnColor, m_MainWindow.GetIniFile())
CurrentProjectScene.SetDistLineMaterial(DstLnColor)
''imposto il colore di sfondo del progetto
'Dim BAckTopColor As New Color3d(192, 192, 192)
'GetPrivateProfileColor(S_SCENE, "BackTop", BAckTopColor, m_MainWindow.GetIniFile())
'Dim BackBottom As New Color3d(192, 192, 192)
'GetPrivateProfileColor(S_SCENE, "BackBottom", BackBottom, m_MainWindow.GetIniFile())
'CurrentProjectScene.SetViewBackground(BAckTopColor, BackBottom)
' imposto parametri OpenGL
Dim nDriver As Integer = GetPrivateProfileInt(S_OPENGL, K_DRIVER, 3, m_MainWindow.GetIniFile())
Dim b2Buff As Boolean = (GetPrivateProfileInt(S_OPENGL, K_DOUBLEBUFFER, 1, m_MainWindow.GetIniFile()) <> 0)
@@ -174,26 +182,27 @@ Public Class CurrentProjectPageUC
m_bFirst = False
' ------------------ SELEZIONE AVVIO -----------------------------
'' apro la finstra di selezione di avvio del programma
' apro la finstra di selezione di avvio del programma
'StartProgram()
' ------------------ SELEZIONE AVVIO -----------------------------
' Se richiesto, carico ultimo progetto
Dim bAutoLoadLast As Boolean = GetPrivateProfileInt(S_GENERAL, K_AUTOLOADLASTPROJ, 0, m_MainWindow.GetIniFile()) <> 0
If bAutoLoadLast Then
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
Dim sPath As String = m_MainWindow.GetSaveDir() & "\" & m_nCurrProj.ToString("D4") & ".nge"
If Not LoadProject(sPath, False) Then
NewProject()
End If
EgtResetModified()
'Altrimenti ne imposto uno nuovo
Else
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
NewProject()
End If
'' Se richiesto, carico ultimo progetto
'Dim bAutoLoadLast As Boolean = GetPrivateProfileInt(S_GENERAL, K_AUTOLOADLASTPROJ, 0, m_MainWindow.GetIniFile()) <> 0
'If bAutoLoadLast Then
' m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
' Dim sPath As String = m_MainWindow.GetSaveDir() & "\" & m_nCurrProj.ToString("D4") & ".nge"
' If Not LoadProject(sPath, False) Then
' NewProject()
' End If
' EgtResetModified()
' 'Altrimenti ne imposto uno nuovo
'Else
' m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
' NewProject()
'End If
'' creo nuovo progetto
' creo nuovo progetto
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
'NewProject()
' Nascondo progress per fotografia
@@ -227,16 +236,18 @@ Public Class CurrentProjectPageUC
End Sub
Public Sub StartProgram()
' leggo il tipo di avvio del programma: 0-New, 1-Last, 2-Open, 3-Window
Dim nStart As Integer = GetPrivateProfileInt(S_GENERAL, K_AUTOLOADLASTPROJ, 0, m_MainWindow.GetIniFile())
Dim MyStartLancherWD As New StartLauncherWD(m_MainWindow)
MyStartLancherWD.ShowDialog()
' Se richiesto, carico ultimo progetto
Dim bAutoLoadLast As Boolean = GetPrivateProfileInt(S_GENERAL, K_AUTOLOADLASTPROJ, 0, m_MainWindow.GetIniFile()) <> 0
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
' se ultimo progetto
If MyStartLancherWD.CurrSelection = 2 Then
bAutoLoadLast = True
' mostro la finestra di avvio solo se configirato (= 3)
If nStart = MODE_LAUNCHER.ShowWindow Then
MyStartLancherWD.ShowDialog()
Else
MyStartLancherWD.CurrSelection = nStart
End If
If MyStartLancherWD.CurrSelection = MODE_LAUNCHER.LastProject Then
' Stampo il numero di progetto con 4 decimali: 12 -> "0012"
Dim sPath As String = m_MainWindow.GetSaveDir() & "\" & m_nCurrProj.ToString("D4") & ".nge"
' provo ad aprire l'ultimo progetto modificato
@@ -249,21 +260,58 @@ Public Class CurrentProjectPageUC
End If
EgtResetModified()
' apro il file selezionato all'avvio
ElseIf MyStartLancherWD.CurrSelection = 3 Then
If Not LoadProject(MyStartLancherWD.SelPath, False) Then
' altrimenti apro un nuovo progetto
NewProject()
Else
' salvo il nome del file caricato
m_MruFiles.Add(MyStartLancherWD.SelPath)
End If
EgtResetModified()
' se nuovo progetto o naviga direttorio
ElseIf MyStartLancherWD.CurrSelection = 1 Or MyStartLancherWD.CurrSelection = 0 Then
bAutoLoadLast = False
ElseIf MyStartLancherWD.CurrSelection = MODE_LAUNCHER.NewProject Then
NewProject()
ElseIf MyStartLancherWD.CurrSelection = MODE_LAUNCHER.OpenFolder Then
NewProject()
EgtSetCurrentContext(CurrentProjectScene.GetCtx())
m_SceneButtons.MeasureBtn.IsChecked = False
' Cancello eventuali messaggi
ClearMessage()
' Imposto la pagina attualmente attiva come Previous
m_MainWindow.m_PrevActivePage = m_MainWindow.m_ActivePage
' Passo alla pagina di apertura con preview
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_OpenPage)
m_MainWindow.m_ActivePage = MainWindow.Pages.Open
' seleziono il file dalla lista della finestra (= 4)
ElseIf MyStartLancherWD.CurrSelection = MODE_LAUNCHER.SelectedProject Then
NewProject()
Dim sCurrDir As String = Path.GetDirectoryName(MyStartLancherWD.SelPath)
Dim sCurrFile As String = Path.GetFileName(MyStartLancherWD.SelPath)
If Not LoadProject(sCurrDir & "\" & sCurrFile) Then
NewProject()
m_MruFiles.Remove(sCurrDir & "\" & sCurrFile)
Else
' Verifico se file salvato con nome guardando il nome della cartella in cui si trova
Dim sSaveNameDir As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_SAVENAMEDIR, "", sSaveNameDir, m_MainWindow.GetIniFile())
If sCurrDir = sSaveNameDir Then
WritePrivateProfileString(S_GENERAL, K_LASTNAMEPROJ, sCurrFile.Substring(0, sCurrFile.Length - 4), m_MainWindow.GetIniFile())
' Salvo equivalente con indice
SetNextProjectIndex()
SaveProject()
Else
WritePrivateProfileString(S_GENERAL, K_LASTNAMEPROJ, String.Empty, m_MainWindow.GetIniFile())
End If
' Salvo path di carico del progetto
If sCurrDir <> m_MainWindow.GetSaveDir() And sCurrDir <> sSaveNameDir Then
SetLoadPath(sCurrDir & "\" & sCurrFile)
End If
m_MruFiles.Add(sCurrDir & "\" & sCurrFile)
End If
'If Not LoadProject(MyStartLancherWD.SelPath, False) Then
' ' altrimenti apro un nuovo progetto
' NewProject()
'Else
' ' salvo il nome del file caricato
' m_MruFiles.Add(MyStartLancherWD.SelPath)
'End If
'EgtResetModified()
End If
'' Nascondo progress per fotografia
@@ -280,6 +328,26 @@ Public Class CurrentProjectPageUC
'End If
End Sub
' questo metodo è direttamente richiamato in caso di selezione della regione sinistra della pagina
Private Sub ChooseMachining() Handles CurrProjGrid.MouseDown
' Apro pagina di selezione della lavorazione prima di chiudere il grezzo
Dim m_ChooseMachiningPage = New ChooseMachining(m_MainWindow)
' apro la finestra per la selezione delle lavorazioni
m_ChooseMachiningPage.ShowDialog()
' se seleziono "Ok" allora resetto tutte le lavorazioni del progetto
If m_ChooseMachiningPage.DialogResult Then
EgtSetCurrentContext(CurrentProjectScene.GetCtx())
' Cancello eventuali messaggi
ClearMessage()
' Ricalcolo tutte le lavorazioni
Dim nWarn As Integer = 0
ResetAllMachinings(nWarn)
If nWarn = 1 Then SetWarningMessage(EgtMsg(MSG_SPLITPAGEUC + 11)) ' Lama troppo grande per utilizzo ventosa
' Aggiorno visualizzazione
EgtDraw()
End If
End Sub
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseDownScene
If m_bSelectCurv Then
RaiseEvent OnMouseDownSceneSelCurv(sender, e)
@@ -600,6 +668,8 @@ Public Class CurrentProjectPageUC
SetProjectMaterial()
' Eseguo
If Not SaveFile(sPath) Then Return False
' aggiungo il file all'elenco dei file recenti
m_MruFiles.Add(sPath)
' Dichiaro progetto non modificato
EgtResetModified()
' Salvo eventuale VeinMatching
@@ -653,6 +723,8 @@ Public Class CurrentProjectPageUC
If Not SaveFile(sPath) Then
Return False
End If
' aggiungo il file all'elenco dei file recenti
m_MruFiles.Add(sPath)
' Dichiaro progetto non modificato
EgtResetModified()
Return True
+33 -20
View File
@@ -14,28 +14,41 @@
<ColumnDefinition Width="1.3*"/>
</Grid.ColumnDefinitions>
<UniformGrid Name="LowerButtonGrid" Rows="1" >
<Button Name="NewBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/>
<Button Name="LoadBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/>
<Button Name="SaveBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/>
<Button Name="SaveNameBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowTextButton}"/>
<Button Name="CSVBtn"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
<ToggleButton Name="VeinMatchingBtn"
Style="{DynamicResource OmagCut_YellowToggleButton}"/>
<ToggleButton Name="RegisterBtn"
Style="{DynamicResource OmagCut_YellowToggleButton}"/>
<Button Name="NewBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource NuovoImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</Button>
<Button Name="LoadBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource CaricaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</Button>
<Button Name="SaveBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource SalvaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</Button>
<Button Name="SaveNameBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource Salva-con-nomeImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</Button>
<Button Name="CSVBtn"
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource CSVImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</Button>
<ToggleButton Name="VeinMatchingBtn"
Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource Vein-matchImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</ToggleButton>
<ToggleButton Name="RegisterBtn"
Style="{DynamicResource OmagCut_YellowToggleButton}"></ToggleButton>
<Button Name="ResetCutBtn"
Style="{DynamicResource OmagCut_YellowTextButton}"/>
Style="{DynamicResource OmagCut_YellowTextButton}"></Button>
<!--Abilito la selezione delle linee da disegno-->
<ToggleButton Name="TestBtn" Style="{DynamicResource OmagCut_BlueToggleButton}"/>
<ToggleButton Name="TestBtn" Style="{DynamicResource OmagCut_BlueToggleButton}"></ToggleButton>
</UniformGrid>
<Button Name="SimulateBtn" Grid.Column="1" Style="{DynamicResource OmagCut_GradientBlueTextButtonPrjMgr}"/>
+25 -11
View File
@@ -14,12 +14,13 @@ Public Class ProjectMgrUC
Private Sub ProjectMgrUC_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
' Imposto i messaggi letti dal file dei messaggi
NewBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 3)
LoadBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 4)
SaveBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 5)
SaveNameBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 6)
CSVBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 8)
VeinMatchingBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 9)
NewBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 3)
LoadBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 4)
SaveBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 5)
SaveNameBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 6)
CSVBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 8)
VeinMatchingBtn.ToolTip = EgtMsg(MSG_CADCUTPAGEUC + 9)
RegisterBtn.Content = "REG" 'Shape Registration
ResetCutBtn.Content = EgtMsg(MSG_NESTPAGEUC + 6) 'Reset
SimulateBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 1) 'Simulate - Simula
@@ -175,6 +176,7 @@ Public Class ProjectMgrUC
End Sub
Friend Sub PostLoad(ByVal sCurrDir As String, sCurrFile As String)
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
If Not m_CurrProjPage.LoadProject(sCurrDir & "\" & sCurrFile) Then
m_CurrProjPage.NewProject()
@@ -322,7 +324,6 @@ Public Class ProjectMgrUC
ptMid -= vtDirT * dThick
'--------------------------- Imposto la posizione della macchina ----------------------------
' Recupero la posizione macchina
Dim dL1, dL2, dL3, dR1, dR2 As Double
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then Return
@@ -470,8 +471,18 @@ Public Class ProjectMgrUC
' se abilitato e non è restart, lancio eventuale lua post-trasmissione
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.SIMPLESTATISTICS) And nPhaseRestart = 0 Then
m_MainWindow.ExecSentProgScript(False)
''-------------------Avvio il Ciclo-Start-------------------------
'Dim MyCicloStartWD As New CicloStartWD(m_MainWindow)
'MyCicloStartWD.ShowDialog()
''-------------------Avvio il Ciclo-Start-------------------------
End If
End If
'-------------------Avvio il Ciclo-Start-------------------------
Dim MyCicloStartWD As New CicloStartWD(m_MainWindow)
MyCicloStartWD.ShowDialog()
'-------------------Avvio il Ciclo-Start-------------------------
' Altrimenti linea di produzione
Else
' Verifico non sia già stato trasmesso
@@ -514,12 +525,12 @@ Public Class ProjectMgrUC
GetPrivateProfileInt(S_RAWPART, K_SLABID, 0, m_MainWindow.GetIniFile()) <> 0)
If bSlabId Then
Dim sBlock As String = ""
GetPrivateProfileString( S_RAWPART, K_BLOCKNAME, "", sBlock, m_MainWindow.GetIniFile())
Dim nSlabNbr As Integer = GetPrivateProfileInt( S_RAWPART, K_SLABNBR, 0, m_MainWindow.GetIniFile())
GetPrivateProfileString(S_RAWPART, K_BLOCKNAME, "", sBlock, m_MainWindow.GetIniFile())
Dim nSlabNbr As Integer = GetPrivateProfileInt(S_RAWPART, K_SLABNBR, 0, m_MainWindow.GetIniFile())
nSlabNbr += 1
Dim sSlabNbr As String = nSlabNbr.ToString()
WritePrivateProfileString( S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile())
Utility.SetBlockAndSlabNbr( sBlock, sSlabNbr)
WritePrivateProfileString(S_RAWPART, K_SLABNBR, sSlabNbr, m_MainWindow.GetIniFile())
Utility.SetBlockAndSlabNbr(sBlock, sSlabNbr)
End If
' Salvo il progetto
m_CurrProjPage.SaveProject()
@@ -547,6 +558,7 @@ Public Class ProjectMgrUC
If AskTransm.m_nPressedBtn <> 1 Then Return
End If
End If
' Se non collegato alla macchina
If Not m_MainWindow.m_bNCLink Then
m_CurrProjPage.SetWarningMessage(EgtMsg(90316)) 'Non connesso alla macchina
@@ -561,6 +573,7 @@ Public Class ProjectMgrUC
m_MainWindow.ExecSentProgScript(False, bAlreadySent)
Return
End If
' Leggo variabile relativa al programma 1 (standard E80021)
m_CurrNcComm.m_CN.n_DReadELS_handle = 0
m_CurrNcComm.m_CN.ReadEls_Add_Parameter(m_CurrMachine.sVarProg1, 1)
@@ -634,6 +647,7 @@ Public Class ProjectMgrUC
Else
m_CurrProjPage.SetErrorMessage(EgtMsg(90318)) 'La macchina non accetta il programma CN
End If
End If
#End If
End Sub
+25 -22
View File
@@ -4,7 +4,7 @@
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
FontFamily="{DynamicResource OmagCut_Font}"
ResizeMode="NoResize" WindowStyle="None" AllowsTransparency="True" Background="Transparent"
Title="SaveNameWD" Height="300" Width="426.5" ShowInTaskbar="False">
Title="SaveNameWD" Height="350" Width="426.5" ShowInTaskbar="False">
<!--Definizione della pagina di scelta del nome con cui salvare il progetto-->
<Border Style="{DynamicResource OmagCut_Border}">
<Grid x:Name="SaveNameGrid">
@@ -14,19 +14,21 @@
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.2*"/>
<RowDefinition Height="0.1*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.2*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.2*"/>
<RowDefinition Height="0.4*"/>
<RowDefinition Height="0.1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.2*"/>
</Grid.RowDefinitions>
<!--Messaggio di tipo di avvio-->
<!--Messaggio: Selezione modalità di avvio-->
<TextBlock Name="SlectLauncherTxbl" Grid.Column="1" Grid.Row="1"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<Grid Name="ButtonsGrid" Grid.Column="1" Grid.Row="3" Grid.RowSpan="1">
<Grid.ColumnDefinitions>
@@ -39,32 +41,33 @@
</Grid.ColumnDefinitions>
<!--apri folder progetti-->
<Button Name="OpenFolder" Grid.Column="0" Style="{DynamicResource OmagCut_GradientBlueIconButton}"
ToolTip="OpenFolder">
<Image Source="{DynamicResource ZoomWinImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
<!--ultimo progetto-->
<Button Name="LastProject" Grid.Column="0" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}"
ToolTip="LastProject">
<Image Source="{DynamicResource LastProjImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
<!--nuovo progetto-->
<Button Name="NewProject" Grid.Column="2" Style="{DynamicResource OmagCut_GradientBlueIconButton}"
<Button Name="NewProject" Grid.Column="2" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}"
ToolTip="New Project">
<Image Source="{DynamicResource CsvNewImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
<Image Source="{DynamicResource NuovoImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
<!--ultimo progetto-->
<Button Name="LastProject" Grid.Column="4" Style="{DynamicResource OmagCut_GradientBlueIconButton}"
ToolTip="LastProject">
<Image Source="{DynamicResource CsvOpenImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
<!--apri folder progetti-->
<Button Name="OpenFolder" Grid.Column="4" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}"
ToolTip="OpenFolder">
<Image Source="{DynamicResource CaricaImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button>
</Grid>
<UniformGrid Grid.Column="1" Grid.Row="5">
<TextBlock Name="FileName" Grid.Column="1"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<TextBlock Name="DataFile" Grid.Column="1"
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
</UniformGrid>
<!--lista degli ultimi file aperti-->
<ListBox Name="FilesLsBx" Grid.Column="1" Grid.Row="5"
SelectionMode="Extended">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
</Style>
</ListBox.ItemContainerStyle>
<ListBox Name="FilesLsBx" Grid.Column="1" Grid.Row="7" ItemTemplate="{DynamicResource FileNameLsBxItem}"
SelectionMode="Extended">
</ListBox>
+88 -16
View File
@@ -1,21 +1,31 @@
Imports EgtUILib
Imports EgtWPFLib
Imports System.IO
Imports System.Collections.ObjectModel
Imports System.ComponentModel
Public Enum MODE_LAUNCHER
LastProject
NewProject
OpenFolder
ShowWindow
SelectedProject
End Enum
Public Class StartLauncherWD
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Public Enum MODE_LAUNCHER As Integer
OpenFolder = 0
NewProject = 1
LastProject = 2
SelectedProject = 3
End Enum
' lista dei file recenti da visualizzare
Private m_RecentFileList As New ObservableCollection(Of FileNameLsBxItem)
Private m_CurrSelection As MODE_LAUNCHER
Public ReadOnly Property CurrSelection As MODE_LAUNCHER
Public Property CurrSelection As MODE_LAUNCHER
Get
Return m_CurrSelection
End Get
Set(value As MODE_LAUNCHER)
m_CurrSelection = value
End Set
End Property
Private m_SelPath As String = String.Empty
@@ -30,25 +40,86 @@ Public Class StartLauncherWD
InitializeComponent()
End Sub
'--------------------------- lista dei file recenti -----------------------------------------------------------------------
Private Class FileNameLsBxItem
Implements INotifyPropertyChanged
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Private m_sDate As String
Private m_sName As String
Public Property sDate As String
Get
Return m_sDate
End Get
Set(value As String)
m_sDate = value
End Set
End Property
Public Property Name As String
Get
Return m_sName
End Get
Set(value As String)
If value <> m_sName Then
m_sName = value
NotifyPropertyChanged("Name")
End If
End Set
End Property
Public ReadOnly Property GraphicName As String
Get
' recupero il nome del file con estensione, altrimenti -> Path.GetFileNameWithoutExtension(m_sName)
Return Path.GetFileNameWithoutExtension(m_sName)
End Get
End Property
Sub New(Name As String, dDate As Date)
Me.m_sName = Name
Me.m_sDate = dDate.ToString
End Sub
Public Sub NotifyPropertyChanged(propName As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
End Sub
End Class
'--------------------------- lista dei file recenti -----------------------------------------------------------------------
' inizializzo la finestra
Private Sub StartLauncherWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
' carico la liste dei file recenti
FilesLsBx.ItemsSource = m_MainWindow.m_CurrentProjectPageUC.m_MruFiles.FileNames
FilesLsBx.ItemsSource = m_RecentFileList
Dim ItemFile As String = String.Empty
'carico la liste dei file recenti
Dim sFileName As String = String.Empty
For Each ItemFile In m_MainWindow.m_CurrentProjectPageUC.m_MruFiles.FileNames
sFileName = ItemFile.Replace("__", "_")
If Not String.IsNullOrEmpty(sFileName) Then
m_RecentFileList.Add(New FileNameLsBxItem(sFileName, File.GetLastAccessTime(sFileName)))
m_RecentFileList.Add(New FileNameLsBxItem(sFileName, File.GetLastAccessTime(sFileName)))
Else
m_MainWindow.m_CurrentProjectPageUC.m_MruFiles.Remove(ItemFile)
End If
Next
' posiziono la fistra in centro alla pagina
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
' imopposto il messaggio di avvio
SlectLauncherTxbl.Text = "Seleziona modalità di avvio"
FileName.Text = "Progetti recenti"
DataFile.Text = "Ultima apertura"
End Sub
' lancio l'apertura della pagina dei progetti
Private Sub OpenFolder_Click(sender As Object, e As RoutedEventArgs) Handles OpenFolder.Click
m_CurrSelection = MODE_LAUNCHER.OpenFolder
m_MainWindow.m_PrevActivePage = m_MainWindow.m_ActivePage
' Passo alla pagina di apertura con preview
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_OpenPage)
m_MainWindow.m_ActivePage = MainWindow.Pages.Open
EgtZoom(ZM.ALL)
Me.Close()
End Sub
@@ -68,7 +139,8 @@ Public Class StartLauncherWD
' quando viene rilasciato il mouse
Private Sub SelectProject_MouseUp(sender As Object, e As RoutedEventArgs) Handles FilesLsBx.MouseDoubleClick, FilesLsBx.TouchUp
m_SelPath = FilesLsBx.SelectedItem
' recupero il nome selezionato
m_SelPath = FilesLsBx.SelectedItem.Name
m_CurrSelection = MODE_LAUNCHER.SelectedProject
EgtZoom(ZM.ALL)
Me.Close()
+41 -2
View File
@@ -19,10 +19,17 @@ Public Class ChooseMachining
' attulmente questa ComboBox è spenta (ma potrebbe essere richiesta in futuro?)
Private m_bNotShowAuxilaryCmBx As Boolean = False
Private m_MachIsModified As Boolean = False
Public ReadOnly Property MachIsModified As Boolean
Get
Return m_MachIsModified
End Get
End Property
Sub New(Owner As Window)
Me.Owner = Owner
InitializeComponent()
ShowDialog()
'ShowDialog()
End Sub
Private Sub ChooseMachining_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
@@ -42,10 +49,12 @@ Public Class ChooseMachining
CurrWJettingTxBl.Text = EgtMsg(MSG_CHOOSEMACHININGPAGEUC + 10)
CurrPocketingTxBl.Text = EgtMsg(90550)
' carico l'elenco delle lavorazioni della pagina (anche senza aver caricato la pagina)
InitializeMachiningLists()
End Sub
Private Sub ChooseMachining_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
InitializeMachiningLists()
' InitializeMachiningLists()
End Sub
Private Sub InitializeMachiningLists()
@@ -166,6 +175,14 @@ Public Class ChooseMachining
Else
m_MainWindow.m_CurrentMachine.sCurrSawing = String.Empty
End If
' se non riesco a fare l'assegnazione della lama allora elimino il nome della lama salvata
If String.IsNullOrEmpty(CurrSawingCmBx.SelectedItem) Then
' verifico che il nome della lama esista
If CurrSawingCmBx.SelectedItem <> m_MainWindow.m_CurrentMachine.sCurrSawing Then
m_MachIsModified = True
End If
m_MainWindow.m_CurrentMachine.sCurrSawing = String.Empty
End If
' definizione della lista delle lavorazioni secondarie -- DA RIMUOVERE COMPLETAMENTE --
If m_bNotShowAuxilaryCmBx Then
@@ -461,12 +478,19 @@ Public Class ChooseMachining
ChooseMachiningGrid.RowDefinitions.Add(Row)
Next
m_RowNumber = m_RowNumber + nNewRow
' titolo della ComboBox
CurrDrillingTxBl.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow)
' ComboBox (nella riga successiva al titolo)
CurrDrillingCmBx.SetValue(Grid.RowProperty, m_RowNumber - nDeltaRow - nNewRow + 1)
'ButtonsGrid.SetValue(Grid.RowProperty, 5)
If m_CurrentMachine.sCurrDrilling <> String.Empty Then
CurrDrillingCmBx.SelectedItem = m_CurrentMachine.sCurrDrilling
End If
' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
If String.IsNullOrEmpty(CurrDrillingCmBx.SelectedItem) Then
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrDrillingCmBx.SelectedItem <> m_CurrentMachine.sCurrDrilling Then m_MachIsModified = True
End If
CurrDrillingTxBl.Visibility = Windows.Visibility.Visible
CurrDrillingCmBx.Visibility = Windows.Visibility.Visible
End If
@@ -486,6 +510,11 @@ Public Class ChooseMachining
If m_CurrentMachine.sCurrMilling <> String.Empty Then
CurrMillingCmBx.SelectedItem = m_CurrentMachine.sCurrMilling
End If
' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
If String.IsNullOrEmpty(CurrMillingCmBx.SelectedItem) Then
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrMillingCmBx.SelectedItem <> m_CurrentMachine.sCurrMilling Then m_MachIsModified = True
End If
CurrMillingTxBl.Visibility = Windows.Visibility.Visible
CurrMillingCmBx.Visibility = Windows.Visibility.Visible
End If
@@ -505,6 +534,11 @@ Public Class ChooseMachining
If m_CurrentMachine.sCurrPocketing <> String.Empty Then
CurrPocketingCmBx.SelectedItem = m_CurrentMachine.sCurrPocketing
End If
' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
If String.IsNullOrEmpty(CurrPocketingCmBx.SelectedItem) Then
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrMillingCmBx.SelectedItem <> m_CurrentMachine.sCurrPocketing Then m_MachIsModified = True
End If
CurrPocketingTxBl.Visibility = Windows.Visibility.Visible
CurrPocketingCmBx.Visibility = Windows.Visibility.Visible
End If
@@ -523,6 +557,11 @@ Public Class ChooseMachining
If m_CurrentMachine.sCurrWaterJetting <> String.Empty Then
CurrWJettingCmBx.SelectedItem = m_CurrentMachine.sCurrWaterJetting
End If
' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
If String.IsNullOrEmpty(CurrWJettingCmBx.SelectedItem) Then
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrMillingCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJetting Then m_MachIsModified = True
End If
CurrWJettingTxBl.Visibility = Windows.Visibility.Visible
CurrWJettingCmBx.Visibility = Windows.Visibility.Visible
End If
+79 -59
View File
@@ -74,6 +74,10 @@ Public Class RawPartPageUC
Private Const SAFE_RAW_DIST As Double = 5
' Costante raggio cerchietto
Private Const RAD_CIRCLE As Double = 30
' mostra la pagina delle lavorazioni
Private m_SmartMachiningPage As Boolean = False
' Costanti modo operazione punti
Private Enum PTMODE
MOVE = 0
@@ -137,6 +141,8 @@ Public Class RawPartPageUC
GetPrivateProfileInt(S_RAWPART, K_SLABID, 0, m_MainWindow.GetIniFile()) <> 0)
SlabIdBtn.Visibility = If( m_bSlabId, Windows.Visibility.Visible, Windows.Visibility.Collapsed)
m_SmartMachiningPage = GetPrivateProfileInt(S_GENERAL, "SmartMachiningPage", 0, m_MainWindow.GetIniFile()) <> 0
' Imposto i messaggi letti dal file dei messaggi
OutlineBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 33) 'Rectangle - Rettangolo
DamagedBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 10) 'By points - Per punti
@@ -671,66 +677,80 @@ Public Class RawPartPageUC
End If
' Apro pagina di selezione della lavorazione prima di chiudere il grezzo
m_ChooseMachiningPage = New ChooseMachining(m_MainWindow)
If m_ChooseMachiningPage.DialogResult Then
' Sistemo il grezzo
AdjustRawPartOnExit()
' Imposto spessore del grezzo
m_CurrProjPage.m_dRawHeight = GetRawHeight()
m_CurrProjPage.UpdateHeightTxBx()
' Aggiorno lavorazione in interfaccia
m_CurrProjPage.UpdateMachiningTxBx()
' Salvo nel file Ini le dimensioni del grezzo (sempre in mm)
WritePrivateProfileString(S_RAWPART, K_RAWLENGTH, DoubleToString(m_RawLength, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWWIDTH, DoubleToString(m_RawWidth, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWHEIGHT, DoubleToString(m_RawHeight, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWOFFSX, DoubleToString(m_RawOffsX, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWOFFSY, DoubleToString(m_RawOffsY, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWKERF, DoubleToString(m_RawKerf, 2), m_MainWindow.GetIniFile())
' Se ci sono pezzi nel grezzo
If EgtGetFirstPartInRawPart(m_CurrProjPage.m_nRawId) <> GDB_ID.NULL Then
' Cancello tutte le lavorazioni
EraseMachinings(GDB_ID.NULL)
' Se progetto con pezzi piani
Dim nPrjType As Integer = m_CurrProjPage.GetCurrentProjectType()
If nPrjType = CurrentProjectPageUC.PRJ_TYPE.FLATS Then
' Reinserisco tutte le lavorazioni piane
Dim nWarn As Integer = 0
AddMachinings(GDB_ID.NULL, nWarn)
If nWarn = 1 Then m_CurrProjPage.SetWarningMessage(EgtMsg(MSG_SPLITPAGEUC + 11)) ' Lama troppo grande per utilizzo ventosa
' Aggiorno regioni per nesting
m_MainWindow.m_CadCutPageUC.m_NestPage.UpdateNestRegions()
m_MainWindow.m_CadCutPageUC.m_NestPage.EnableReferenceRegion(False)
' Visualizzo i pezzi parcheggiati (per inserire correttamente in parcheggio i pezzi del grezzo)
ShowParkedParts()
' Verifico ogni singolo pezzo
Dim bReducedCut As Boolean = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_REDUCEDCUT, 0, m_MainWindow.GetMachIniFile()) <> 0)
Dim nPartId As Integer = EgtGetFirstPartInRawPart(m_CurrProjPage.m_nRawId)
While nPartId <> GDB_ID.NULL
Dim nNextPartId = EgtGetNextPartInRawPart(nPartId)
If Not EgtVerifyPart(nPartId, bReducedCut) Then
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nPartId)
VeinMatching.OnRemovePartFromRaw(nPartId)
End If
nPartId = nNextPartId
End While
' Nascondo i pezzi parcheggiati
HideParkedParts()
' Aggiusto eventuali solidi per lavorazioni da sotto
nPartId = EgtGetFirstPartInRawPart(m_CurrProjPage.m_nRawId)
While nPartId <> GDB_ID.NULL
UpdateSolidForDrip(nPartId)
nPartId = EgtGetNextPartInRawPart(nPartId)
End While
' Se altrimenti progetto con cornici
ElseIf nPrjType = CurrentProjectPageUC.PRJ_TYPE.FRAMES Then
' Reinserisco tutte le lavorazioni delle cornici
AddFrameMachinings(m_MainWindow.m_FrameCutPageUC.m_FrameMachiningUC.m_dStartTrim, m_MainWindow.m_FrameCutPageUC.m_FrameMachiningUC.m_dEndTrim)
End If
'--------------------------- SELEZIONE LAVORAZIONI ---------------------------------
' mostro la finestra di selezione delle lavorazioni
If m_ChooseMachiningPage.MachIsModified OrElse Not m_SmartMachiningPage Then
m_ChooseMachiningPage.ShowDialog()
'--------------------------- SELEZIONE LAVORAZIONI ---------------------------------
If m_ChooseMachiningPage.DialogResult Then
Return AdjustRawPartInCurrProject()
Else
Return False
End If
Return True
Else
Return False
Return AdjustRawPartInCurrProject()
End If
' forzo l'uscita dalla pagina
Return True
End Function
Private Function AdjustRawPartInCurrProject() As Boolean
' Sistemo il grezzo
AdjustRawPartOnExit()
' Imposto spessore del grezzo
m_CurrProjPage.m_dRawHeight = GetRawHeight()
m_CurrProjPage.UpdateHeightTxBx()
' Aggiorno lavorazione in interfaccia
m_CurrProjPage.UpdateMachiningTxBx()
' Salvo nel file Ini le dimensioni del grezzo (sempre in mm)
WritePrivateProfileString(S_RAWPART, K_RAWLENGTH, DoubleToString(m_RawLength, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWWIDTH, DoubleToString(m_RawWidth, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWHEIGHT, DoubleToString(m_RawHeight, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWOFFSX, DoubleToString(m_RawOffsX, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWOFFSY, DoubleToString(m_RawOffsY, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWKERF, DoubleToString(m_RawKerf, 2), m_MainWindow.GetIniFile())
' Se ci sono pezzi nel grezzo
If EgtGetFirstPartInRawPart(m_CurrProjPage.m_nRawId) <> GDB_ID.NULL Then
' Cancello tutte le lavorazioni
EraseMachinings(GDB_ID.NULL)
' Se progetto con pezzi piani
Dim nPrjType As Integer = m_CurrProjPage.GetCurrentProjectType()
If nPrjType = CurrentProjectPageUC.PRJ_TYPE.FLATS Then
' Reinserisco tutte le lavorazioni piane
Dim nWarn As Integer = 0
AddMachinings(GDB_ID.NULL, nWarn)
If nWarn = 1 Then m_CurrProjPage.SetWarningMessage(EgtMsg(MSG_SPLITPAGEUC + 11)) ' Lama troppo grande per utilizzo ventosa
' Aggiorno regioni per nesting
m_MainWindow.m_CadCutPageUC.m_NestPage.UpdateNestRegions()
m_MainWindow.m_CadCutPageUC.m_NestPage.EnableReferenceRegion(False)
' Visualizzo i pezzi parcheggiati (per inserire correttamente in parcheggio i pezzi del grezzo)
ShowParkedParts()
' Verifico ogni singolo pezzo
Dim bReducedCut As Boolean = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_REDUCEDCUT, 0, m_MainWindow.GetMachIniFile()) <> 0)
Dim nPartId As Integer = EgtGetFirstPartInRawPart(m_CurrProjPage.m_nRawId)
While nPartId <> GDB_ID.NULL
Dim nNextPartId = EgtGetNextPartInRawPart(nPartId)
If Not EgtVerifyPart(nPartId, bReducedCut) Then
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nPartId)
VeinMatching.OnRemovePartFromRaw(nPartId)
End If
nPartId = nNextPartId
End While
' Nascondo i pezzi parcheggiati
HideParkedParts()
' Aggiusto eventuali solidi per lavorazioni da sotto
nPartId = EgtGetFirstPartInRawPart(m_CurrProjPage.m_nRawId)
While nPartId <> GDB_ID.NULL
UpdateSolidForDrip(nPartId)
nPartId = EgtGetNextPartInRawPart(nPartId)
End While
' Se altrimenti progetto con cornici
ElseIf nPrjType = CurrentProjectPageUC.PRJ_TYPE.FRAMES Then
' Reinserisco tutte le lavorazioni delle cornici
AddFrameMachinings(m_MainWindow.m_FrameCutPageUC.m_FrameMachiningUC.m_dStartTrim, m_MainWindow.m_FrameCutPageUC.m_FrameMachiningUC.m_dEndTrim)
End If
End If
Return True
End Function
Private Sub RawModeCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles RawModeCmBx.SelectionChanged
@@ -1542,7 +1562,7 @@ Public Class RawPartPageUC
StringToLen(WidthTxBx.Text, m_RawWidth)
StringToLen(OffsetXTxBx.Text, m_RawOffsX)
StringToLen(OffsetYTxBx.Text, m_RawOffsY)
UpdateRawPart()
' UpdateRawPart()
UpdateRawPartKerf()
' Recupero id contorno kerf
Dim nKerfId As Integer = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_KERF)
@@ -1567,7 +1587,7 @@ Public Class RawPartPageUC
m_RawOffsX = m_RawOffsX - m_RawKerf
StringToLen(OffsetYTxBx.Text, m_RawOffsY)
m_RawOffsY = m_RawOffsY - m_RawKerf
UpdateRawPart()
' UpdateRawPart()
m_RawKerf = -m_RawKerf
UpdateRawPartKerf()
' Recupero id contorno kerf
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+4 -1
View File
@@ -17,7 +17,10 @@
<Button Name="ExportBtn" Height="64"
Style="{DynamicResource OmagCut_YellowTextButton}"
Content="Export"/>
</StackPanel>
<Button Name="AssemblyBtn" Height="64"
Style="{DynamicResource OmagCut_YellowTextButton}"
Content="3D"/>
</StackPanel>
</Grid>
+428 -2
View File
@@ -1,5 +1,6 @@
Imports System.IO
Imports System.Windows.Interop
Imports System.Collections.ObjectModel
Imports System.Runtime.InteropServices
Imports EgtUILib
Imports EgtWPFLib
@@ -86,6 +87,7 @@ Public Class VeinMatchingWindow
End If
End Sub
' imposto le dimensioni e la posizione della pagina corrente
Friend Sub AdjustPosition()
' Se già pozizionata, esco subito
If m_bPositioned Then Return
@@ -164,7 +166,7 @@ Public Class VeinMatchingWindow
EgtSetCurrentContext(VeinMatchingScene.GetCtx())
' Se selezione riuscita, la eseguo anche in VME
If bSelected Then EgtSelectObj(m_nIdToSel)
' Se deselezione da eseguire
' Se deselezione da eseguire
ElseIf m_nIdToDesel <> GDB_ID.NULL Then
' Eseguo la deselezione in Nesting
Dim bDeselected As Boolean = False
@@ -193,9 +195,16 @@ Public Class VeinMatchingWindow
VeinMatching.Export(m_MainWindow.GetVeinMatchingDir() & "\Image.jpg")
End Sub
Private Sub AssemblyBtn_Click(sender As Object, e As RoutedEventArgs) Handles AssemblyBtn.Click
Dim ThicknessRaw As Double = m_MainWindow.m_CurrentProjectPageUC.m_dRawHeight
VeinMatching.AssemblyParts(ThicknessRAw)
End Sub
End Class
Friend Module VeinMatching
' creo la lista delle alzatine, ad ogni alzatina associo anche il lato del piano cucina (e non solo) a cui si riferisce
Private m_ListALZFront As New ObservableCollection(Of Aletta)
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
@@ -243,6 +252,93 @@ Friend Module VeinMatching
Return True
End Function
' aggiungo il disegno nel VeinMatch
Friend Function SetRefOnPart(nId As Integer) As Boolean
' Si opera nel contesto corrente (CurrentProjectScene.GetCtx())
' Verifico validità identificativo oggetto
If nId = GDB_ID.NULL Then Return False
' Recupero gruppo regione
Dim nRegLayId As Integer = EgtGetFirstNameInGroup(nId, NAME_REGION)
' Se c'è già il riferimento, esco
If EgtGetFirstNameInGroup(nRegLayId, REF_NAME) <> GDB_ID.NULL Then Return True
' Entità superficie regione piatta
Dim nRegId As Integer = EgtGetFirstInGroup(nRegLayId)
While nRegId <> GDB_ID.NULL
If EgtGetType(nRegId) = GDB_TY.SRF_FRGN Then
Exit While
End If
nRegId = EgtGetNext(nRegId)
End While
' Ne recupero il centroide
Dim ptCen As Point3d
EgtCentroid(nRegId, GDB_ID.ROOT, ptCen)
' Inserisco il riferimento
Dim frRef As New Frame3d(ptCen)
Dim nRefId As Integer = EgtCreateGeoFrame(nRegLayId, frRef, GDB_RT.GLOB)
EgtSetName(nRefId, REF_NAME)
' salvo nelle info il riferimento originale
EgtSetInfo(nRefId, KEY_ORI_REF, frRef)
' nascondo l'oggetto appena inserito
EgtSetMode(nRefId, GDB_MD.HIDDEN)
Return True
End Function
' ------------------- ELENCO FUNZIONI PER GESTIONE ALZATINE E FRONTALINI -------------------
' genero la lista delle alzatine dei frontalini
Friend Function CreateListAlzAndFront() As Boolean
EgtSetCurrentContext(m_nVeinCtx)
Dim nId As Integer = EgtGetFirstPart()
While nId <> GDB_ID.NULL
' verifico che il pezzo sia una alzatina
Dim sInfoName As String = String.Empty
EgtGetInfo(nId, "CMP", sInfoName)
If sInfoName = "AlzFront" Then
Dim AlzFront As New Aletta(nId)
m_ListALZFront.Add(AlzFront)
End If
' Passo al pezzo successivo
nId = EgtGetNextPart(nId)
End While
Return True
End Function
' genero la lista dei piani cucina
Friend Function LinkReferencesOnAlette() As Boolean
Dim nId As Integer = EgtGetFirstPart()
While nId <> GDB_ID.NULL
' escludo dalla ricerca le alette
Dim sCMP As String = String.Empty
EgtGetInfo(nId, "CMP", sCMP)
If sCMP = "AlzFront" Then
' Passo al pezzo successivo
nId = EgtGetNextPart(nId)
Continue While
End If
' Recupero gruppo regione
Dim nOutLoopLayId As Integer = EgtGetFirstNameInGroup(nId, NAME_OUTLOOP)
' Entità lato
Dim nSideId As Integer = EgtGetFirstInGroup(nOutLoopLayId)
While nSideId <> GDB_ID.NULL
Dim sInfoGUID As String = String.Empty
EgtGetInfo(nSideId, "RefAF", sInfoGUID)
If Not String.IsNullOrEmpty(sInfoGUID) Then
Dim Item As Aletta
For Each Item In m_ListALZFront
If Item.RefGUID = sInfoGUID Then
Item.IdSideRef = nSideId
End If
Next
' ricerco nella lista delle alette il suo
End If
nSideId = EgtGetNext(nSideId)
End While
' Passo al pezzo successivo
nId = EgtGetNextPart(nId)
End While
Return True
End Function
' ------------------- ELENCO FUNZIONI PER GESTIONE ALZATINE E FRONTALINI -------------------
Friend Function Clear() As Boolean
' Verifico esista il contesto del VeinMatching
If m_nVeinCtx = 0 Then Return True
@@ -319,6 +415,31 @@ Friend Module VeinMatching
Return True
End Function
' Questa funzione gestisce l'insermento dei pezzi disgenatoi direttamente in DrawPage
Friend Function AddPartFromDraw(nPartId As Integer, Optional bPack As Boolean = False) As Boolean
' Verifico esista il contesto del VeinMatching
If m_nVeinCtx = 0 Then Return True
' Se esiste già il pezzo nel VM, esco
If GetVeinPartId(nPartId) <> GDB_ID.NULL Then Return True
' Verifico validità pezzo
If nPartId = GDB_ID.NULL Then Return False
' Salvo il pezzo su file temporaneo
Dim sTmpDir As String = String.Empty
If Not EgtGetTempDir(sTmpDir) Then Return False
Dim sTmpFile As String = sTmpDir & "\FlatPartVme.Nge"
EgtSaveObjToFile(nPartId, sTmpFile, NGE.BIN)
' Carico il file nel VM
Dim bOk As Boolean = My.Computer.FileSystem.FileExists(sTmpFile)
If bOk Then
bOk = AddPart(sTmpFile, nPartId)
' Ne aggiorno la visualizzazione
ZoomAll()
' Cancello il file
My.Computer.FileSystem.DeleteFile(sTmpFile)
End If
Return bOk
End Function
Friend Function UpdatePart(nPartId As Integer) As Boolean
' Verifico esista il contesto del VeinMatching
If m_nVeinCtx = 0 Then Return True
@@ -478,7 +599,257 @@ Friend Module VeinMatching
Return bFound
End Function
Friend Function OnSelectAll() As Boolean
Friend Function AssemblyParts(ByVal ThicknessRaw As Double) As Boolean
CreateListAlzAndFront()
LinkReferencesOnAlette()
EgtSetCurrentContext(m_nVeinCtx)
Dim Item As Aletta
For Each Item In m_ListALZFront
Dim nType As Integer
EgtGetInfo(Item.IdSideRef, "AF", nType)
If nType = 1 Then
If Not CreateAlzatina(Item, ThicknessRaw) Then Return False
ElseIf nType = 2 Then
If Not CreateFrontalino(Item, ThicknessRaw) Then Return False
Else
Return False
End If
Next
Draw()
Return True
End Function
Friend Function CreateAlzatina(ByRef Item As Aletta, ByRef ThicknessRaw As Double) As Boolean
' inizio a posizionare i pezzi nel piano nella posizione corretta pronti per essere ruotati
Dim ptSRef As Point3d
Dim ptERef As Point3d
Dim ptE As Point3d
If Not EgtStartPoint(Item.IdSideRef, GDB_ID.ROOT, ptSRef) Then Return False
If Not EgtEndPoint(Item.IdSideRef, GDB_ID.ROOT, ptERef) Then Return False
If Not EgtEndPoint(Item.SideId, GDB_ID.ROOT, ptE) Then Return False
Dim vtMove As Vector3d = ptSRef - ptE
EgtMove(Item.PartId, vtMove, GDB_RT.GLOB)
' ruoto i pezzi
Dim vtRot As Vector3d = ptERef - ptSRef
EgtRotate(Item.PartId, ptSRef, vtRot, -90, GDB_RT.GLOB)
' costruisco il solido
Dim ptForPos As Point3d
If Not CreateSolid(Item, ThicknessRaw, ptForPos) Then Return False
' posiziono il solido
Dim vtMove2 As Vector3d = ptERef - ptForPos
EgtMove(Item.PartId, vtMove2, GDB_RT.GLOB)
Return True
End Function
Friend Function CreateFrontalino(ByRef Item As Aletta, ByRef ThicknessRaw As Double) As Boolean
' inizio a posizionare i pezzi nel piano nella posizione corretta pronti per essere ruotati
Dim ptSRef As Point3d
Dim ptERef As Point3d
Dim ptE As Point3d
If Not EgtStartPoint(Item.IdSideRef, GDB_ID.ROOT, ptSRef) Then Return False
If Not EgtEndPoint(Item.IdSideRef, GDB_ID.ROOT, ptERef) Then Return False
If Not EgtEndPoint(Item.SideId, GDB_ID.ROOT, ptE) Then Return False
Dim vtMove As Vector3d = ptSRef - ptE
EgtMove(Item.PartId, vtMove, GDB_RT.GLOB)
' ruoto i pezzi
Dim vtRot As Vector3d = ptERef - ptSRef
EgtRotate(Item.PartId, ptSRef, vtRot, 90, GDB_RT.GLOB)
' costruisco il solido
Dim ptForPos As Point3d
If Not CreateSolid2(Item, ThicknessRaw, ptForPos) Then Return False
Return True
End Function
Friend Function CreateSolid(ByRef Item As Aletta, ByRef ThicknessRaw As Double, ByRef ptForPos As Point3d) As Boolean
Dim bInvertAngle As Boolean = False
' punti che delimitano front face
Dim pt1, pt2, pt3, pt4 As Point3d
EgtStartPoint(Item.SideId + 2, pt4)
EgtEndPoint(Item.SideId + 2, pt3)
pt2 = pt3 - ThicknessRaw * Vector3d.Z_AX()
pt1 = pt4 - ThicknessRaw * Vector3d.Z_AX()
Dim dAngL, dAngR As Double
EgtGetInfo(Item.SideId + 1, "SideAng", dAngL)
EgtGetInfo(Item.SideId + 3, "SideAng", dAngR)
If bInvertAngle Then
dAngL *= -1
dAngR *= -1
End If
If Math.Abs(dAngL - 90) < EPS_SMALL Or Math.Abs(dAngL + 90) < EPS_SMALL Then dAngL = 0
If Math.Abs(dAngR - 90) < EPS_SMALL Or Math.Abs(dAngR + 90) < EPS_SMALL Then dAngR = 0
' aggiungo tagli inclinati
pt3 = pt3 + ThicknessRaw * Math.Tan(dAngR * Math.PI / 180) * Vector3d.X_AX()
pt4 = pt4 - ThicknessRaw * Math.Tan(dAngL * Math.PI / 180) * Vector3d.X_AX()
' punti che delimitano back face
Dim HeightRaw As Double
EgtCurveLength(Item.SideId + 1, HeightRaw)
Dim ptB1 As Point3d = pt1 - HeightRaw * Vector3d.Y_AX()
Dim ptB2 As Point3d = pt2 - HeightRaw * Vector3d.Y_AX()
Dim ptB3 As Point3d = pt3 - HeightRaw * Vector3d.Y_AX()
Dim ptB4 As Point3d = pt4 - HeightRaw * Vector3d.Y_AX()
' info aux per disegnare solido
Dim nOutloopGrp As Integer = EgtGetFirstGroupInGroup(Item.PartId)
Dim nRegionGrp As Integer = EgtGetNextGroup(nOutloopGrp)
Dim cCol As New Color3d
EgtGetColor(EgtGetFirstInGroup(nRegionGrp), cCol)
EgtSetColor(nRegionGrp, cCol)
'nascondo oggetti dalla visualizzazione
EgtSetStatus(Item.SideId, 0)
EgtSetStatus(Item.SideId + 1, 0)
EgtSetStatus(Item.SideId + 2, 0)
EgtSetStatus(Item.SideId + 3, 0)
EgtSetStatus(EgtGetFirstInGroup(nRegionGrp), 0)
' Front Face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {pt1, pt2, pt3, pt4}) Then Return False
' Back Face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {ptB1, ptB4, ptB3, ptB2}) Then Return False
'Front face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {ptB1, ptB2, pt2, pt1}) Then Return False
'Bottom face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {ptB3, ptB4, pt4, pt3}) Then Return False
' Right face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {ptB1, pt1, pt4, ptB4}) Then Return False
' Left face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {ptB2, ptB3, pt3, pt2}) Then Return False
' punto da utilizzare come riferimento per posizionare il solido ( espresso nel sistema di riferimento globale)
ptForPos = ptB2
Dim ItemFrame As New Frame3d
If Not EgtGetGroupGlobFrame(nOutloopGrp, ItemFrame) Then Return False
ptForPos.ToGlob(ItemFrame)
Return True
End Function
Friend Function CreateSolid2(ByRef Item As Aletta, ByRef ThicknessRaw As Double, ByRef ptForPos As Point3d) As Boolean
Dim bInvertAngle As Boolean = False
' punti che delimitano front face
Dim pt1, pt2, pt3, pt4 As Point3d
EgtStartPoint(Item.SideId, pt4)
EgtEndPoint(Item.SideId, pt3)
pt2 = pt3 - ThicknessRaw * Vector3d.Z_AX()
pt1 = pt4 - ThicknessRaw * Vector3d.Z_AX()
Dim dAngL, dAngR, dAng As Double
EgtGetInfo(Item.SideId + 1, "SideAng", dAngR)
EgtGetInfo(Item.SideId + 3, "SideAng", dAngL)
EgtGetInfo(Item.SideId, "SideAng", dAng)
If bInvertAngle Then
dAngL *= -1
dAngR *= -1
End If
If Math.Abs(dAngL - 90) < EPS_SMALL Or Math.Abs(dAngL + 90) < EPS_SMALL Then dAngL = 0
If Math.Abs(dAngR - 90) < EPS_SMALL Or Math.Abs(dAngR + 90) < EPS_SMALL Then dAngR = 0
' aggiungo tagli inclinati
pt2 = pt2 + ThicknessRaw * Math.Tan(dAngR * Math.PI / 180) * Vector3d.X_AX()
pt1 = pt1 - ThicknessRaw * Math.Tan(dAngL * Math.PI / 180) * Vector3d.X_AX()
' aggiungo taglio
pt2 = pt2 - ThicknessRaw * Math.Tan(dAng * Math.PI / 180) * Vector3d.Y_AX()
pt1 = pt1 - ThicknessRaw * Math.Tan(dAng * Math.PI / 180) * Vector3d.Y_AX()
' punti che delimitano back face
Dim HeightRaw As Double
EgtCurveLength(Item.SideId + 1, HeightRaw)
Dim ptB3 As Point3d = pt3 + HeightRaw * Vector3d.Y_AX()
Dim ptB4 As Point3d = pt4 + HeightRaw * Vector3d.Y_AX()
Dim ptB1 As Point3d = pt1 + HeightRaw * Vector3d.Y_AX()
Dim ptB2 As Point3d = pt2 + HeightRaw * Vector3d.Y_AX()
ptB1.y = ptB4.y
ptB2.y = ptB4.y
' info aux per disegnare solido
Dim nOutloopGrp As Integer = EgtGetFirstGroupInGroup(Item.PartId)
Dim nRegionGrp As Integer = EgtGetNextGroup(nOutloopGrp)
Dim cCol As New Color3d
EgtGetColor(EgtGetFirstInGroup(nRegionGrp), cCol)
EgtSetColor(nRegionGrp, cCol)
'nascondo oggetti dalla visualizzazione
EgtSetStatus(Item.SideId, 0)
EgtSetStatus(Item.SideId + 1, 0)
EgtSetStatus(Item.SideId + 2, 0)
EgtSetStatus(Item.SideId + 3, 0)
EgtSetStatus(EgtGetFirstInGroup(nRegionGrp), 0)
' Front Face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {pt1, pt2, pt3, pt4}) Then Return False
' Back Face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {ptB1, ptB4, ptB3, ptB2}) Then Return False
'Front face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {ptB1, ptB2, pt2, pt1}) Then Return False
'Bottom face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {ptB3, ptB4, pt4, pt3}) Then Return False
' Right face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {ptB1, pt1, pt4, ptB4}) Then Return False
' Left face
If Not CreateSolidFace(nOutloopGrp, nRegionGrp, {ptB2, ptB3, pt3, pt2}) Then Return False
' punto da utilizzare come riferimento per posizionare il solido ( espresso nel sistema di riferimento globale)
ptForPos = ptB2
Dim ItemFrame As New Frame3d
If Not EgtGetGroupGlobFrame(nOutloopGrp, ItemFrame) Then Return False
ptForPos.ToGlob(ItemFrame)
Return True
End Function
Friend Function CreateSolidFace(ByRef nCrvGrp As Integer, ByRef nSrfGrp As Integer, ByRef Points As Point3d()) As Boolean
If Points.Count() <> 4 Then Return False
Dim nCrvId As Integer = EgtCreateCurveCompo(nCrvGrp, {EgtCreateLine(nCrvGrp, Points(0), Points(1)),
EgtCreateLine(nCrvGrp, Points(1), Points(2)),
EgtCreateLine(nCrvGrp, Points(2), Points(3)),
EgtCreateLine(nCrvGrp, Points(3), Points(0))}, True)
If nCrvId = GDB_ID.NULL Then Return False
Dim nSrfId As Integer = EgtCreateSurfFlatRegion(nSrfGrp, nCrvId)
Return nSrfId <> GDB_ID.NULL
End Function
Friend Function OnSelectAll() As Boolean
' Verifico esista il contesto del VeinMatching
If m_nVeinCtx = 0 Then Return True
' Imposto VeinMatching context
@@ -723,3 +1094,58 @@ Friend Module VeinMatching
End Function
End Module
Public Class Aletta
Private m_PartId As Integer = -1
Public ReadOnly Property PartId As Integer
Get
Return m_PartId
End Get
End Property
Private m_SideId As Integer = -1
Public ReadOnly Property SideId As Integer
Get
Return m_SideId
End Get
End Property
Private m_RefGUID As String = String.Empty
Public ReadOnly Property RefGUID As String
Get
Return m_RefGUID
End Get
End Property
Private m_IdSideRef As Integer = -1
Public Property IdSideRef As Integer
Get
Return m_IdSideRef
End Get
Set(value As Integer)
m_IdSideRef = value
End Set
End Property
Sub New(nId As Integer)
m_PartId = nId
' Recupero l'info legata al lato che contiene iil riferiemnto
Dim nOutLoopLayId As Integer = EgtGetFirstNameInGroup(nId, NAME_OUTLOOP)
' Entità lato
Dim nSideId As Integer = EgtGetFirstInGroup(nOutLoopLayId)
While nSideId <> GDB_ID.NULL
Dim sInfoGUID As String = String.Empty
EgtGetInfo(nSideId, "RefAF", sInfoGUID)
If Not String.IsNullOrEmpty(sInfoGUID) Then
m_RefGUID = sInfoGUID
m_SideId = nSideId
Exit While
End If
nSideId = EgtGetNext(nSideId)
End While
End Sub
End Class