Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ccb8945a4f | |||
| 842ab19e8b | |||
| 5cfc72be27 | |||
| 45d3f5c7d8 | |||
| ac67a14fea | |||
| 1df823cdec | |||
| be29ea050d | |||
| cd4d2b1ccb | |||
| c730513f27 | |||
| 9f3920a2b2 | |||
| f388dc0c50 | |||
| 6613b3d551 | |||
| 615d6d2652 | |||
| 3ea8335357 | |||
| bbdac91894 | |||
| c424ff6661 | |||
| 4d64328b1b | |||
| 10c4c7ecc1 | |||
| 03def4b530 | |||
| a3b56444f6 | |||
| 837380226a | |||
| f15935ecbc | |||
| 00360013e3 | |||
| 0010deb7fc | |||
| 9c267aacf7 | |||
| 311cf40a8e | |||
| 4c34b62e65 | |||
| 87037b6c6a | |||
| 74c479d17d | |||
| ee6c0ad146 | |||
| ead6bcec6d | |||
| a1ad658f27 |
+25
-2
@@ -47,6 +47,26 @@ Friend Module CamAuto
|
|||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
' versione CamAuto 2.6l1: gestione tagli con ridotto affondamento
|
||||||
|
Friend Function AddWaterJetMachining(LocaList As List(Of Integer), ByRef nWarn As Integer) As Boolean
|
||||||
|
EgtLuaCreateGlobTable("CAM")
|
||||||
|
SetLuaStandardCamParams()
|
||||||
|
For i As Integer = 0 To LocaList.Count - 1
|
||||||
|
EgtLuaSetGlobIntVar("CAM.TAB_OPERID." & (i + 1).ToString, LocaList(i))
|
||||||
|
Next
|
||||||
|
Dim nErr As Integer = 999
|
||||||
|
Dim bOk As Boolean = EgtLuaExecFile(m_MainWindow.GetCamAutoDir() & "\CamAuto.lua")
|
||||||
|
bOk = bOk AndAlso EgtLuaGetGlobIntVar("CAM.ERR", nErr) AndAlso nErr = 0
|
||||||
|
bOk = bOk AndAlso EgtLuaCallFunction("CAM.AddWaterJets")
|
||||||
|
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||||
|
EgtLuaResetGlobVar("CAM")
|
||||||
|
If nErr <> 0 Then
|
||||||
|
bOk = False
|
||||||
|
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||||
|
End If
|
||||||
|
Return bOk
|
||||||
|
End Function
|
||||||
|
|
||||||
Friend Function EraseMachinings(nPartId As Integer) As Boolean
|
Friend Function EraseMachinings(nPartId As Integer) As Boolean
|
||||||
EgtLuaCreateGlobTable("CAM")
|
EgtLuaCreateGlobTable("CAM")
|
||||||
EgtLuaSetGlobIntVar("CAM.PARTID", nPartId)
|
EgtLuaSetGlobIntVar("CAM.PARTID", nPartId)
|
||||||
@@ -543,6 +563,7 @@ Friend Module CamAuto
|
|||||||
Dim dReducedDepth As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_REDUCEDDEPTH, 1, m_MainWindow.GetMachIniFile())
|
Dim dReducedDepth As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_REDUCEDDEPTH, 1, m_MainWindow.GetMachIniFile())
|
||||||
' Ciclo sulle lavorazioni
|
' Ciclo sulle lavorazioni
|
||||||
Dim nOperId As Integer = EgtGetFirstOperation()
|
Dim nOperId As Integer = EgtGetFirstOperation()
|
||||||
|
Dim LocalListOperId As New List(Of Integer)
|
||||||
While nOperId <> GDB_ID.NULL
|
While nOperId <> GDB_ID.NULL
|
||||||
' verifico sia una lavorazione valida di taglio con lama
|
' verifico sia una lavorazione valida di taglio con lama
|
||||||
If IsValidMachining( nOperId) And EgtGetOperationType( nOperId) = MCH_OY.SAWING Then
|
If IsValidMachining( nOperId) And EgtGetOperationType( nOperId) = MCH_OY.SAWING Then
|
||||||
@@ -557,12 +578,14 @@ Friend Module CamAuto
|
|||||||
' se abilitato e attivo waterjet, lo aggiungo per completare il taglio
|
' se abilitato e attivo waterjet, lo aggiungo per completare il taglio
|
||||||
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
|
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
|
||||||
Dim nWarn As Integer = 0
|
Dim nWarn As Integer = 0
|
||||||
AddWaterJetMachining(nOperId, nWarn)
|
LocalListOperId.Add(nOperId)
|
||||||
|
'AddWaterJetMachining(nOperId, nWarn)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
|
||||||
End If
|
End If
|
||||||
nOperId = EgtGetNextOperation(nOperId)
|
nOperId = EgtGetNextOperation(nOperId)
|
||||||
End While
|
End While
|
||||||
|
If LocalListOperId.Count > 0 Then AddWaterJetMachining(LocalListOperId, 0)
|
||||||
Return bModified
|
Return bModified
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|||||||
+18
-8
@@ -27,7 +27,7 @@
|
|||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!--Griglia per oscurare i bottoni della pagina sottostante-->
|
<!--Griglia per oscurare i bottoni della pagina sottostante-->
|
||||||
<Grid Background="{DynamicResource OmagCut_Gray}">
|
<Grid Background="{DynamicResource OmagCut_Gray}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
<Label Name="CsvPathTxBl" Grid.Row="1" Background="White" FontSize="16" VerticalAlignment="Center" Padding="2,5,0,5"/>
|
<Label Name="CsvPathTxBl" Grid.Row="1" Background="White" FontSize="16" VerticalAlignment="Center" Padding="2,5,0,5"/>
|
||||||
|
|
||||||
<TreeView Name="PartsTreeView" Grid.Row="2" Background="{DynamicResource OmagCut_TreeViewBackGroundColor}">
|
<TreeView Name="PartsTreeView" Grid.Row="2" Background="{StaticResource OmagCut_TreeViewGradientGray}">
|
||||||
<TreeView.Resources>
|
<TreeView.Resources>
|
||||||
<!--Modifico HierarchicalDataTemplate del CathegoryItem per poter inserire immagine e testo e per -->
|
<!--Modifico HierarchicalDataTemplate del CathegoryItem per poter inserire immagine e testo e per -->
|
||||||
<!--renderlo apribile con un solo click -->
|
<!--renderlo apribile con un solo click -->
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Image Grid.Column="0" Source="{Binding PictureString}" Height="32" Width="32" Margin="0,8,6,4" />
|
<Image Grid.Column="0" Source="{Binding PictureString}" Height="32" Width="32" Margin="0,8,6,4" />
|
||||||
<TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="15" Margin="10" />
|
<TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="15" Margin="10" Foreground="Black" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
@@ -123,7 +123,10 @@
|
|||||||
</Setter>
|
</Setter>
|
||||||
<Style.Triggers>
|
<Style.Triggers>
|
||||||
<DataTrigger Binding="{Binding bIsActive}" Value="False">
|
<DataTrigger Binding="{Binding bIsActive}" Value="False">
|
||||||
<Setter Property="Foreground" Value="{StaticResource OmagCut_LightGray}"/>
|
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
|
||||||
|
</DataTrigger>
|
||||||
|
<DataTrigger Binding="{Binding bIsActive}" Value="True">
|
||||||
|
<Setter Property="Foreground" Value="Black"/>
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
</Style.Triggers>
|
</Style.Triggers>
|
||||||
</Style>
|
</Style>
|
||||||
@@ -131,18 +134,25 @@
|
|||||||
</HierarchicalDataTemplate>
|
</HierarchicalDataTemplate>
|
||||||
<!--Modifico DataTemplate del ToolItem per poter inserire immagine e testo-->
|
<!--Modifico DataTemplate del ToolItem per poter inserire immagine e testo-->
|
||||||
<DataTemplate DataType="{x:Type self:PartCustomItem}">
|
<DataTemplate DataType="{x:Type self:PartCustomItem}">
|
||||||
<Grid Width="246" Margin="0,5,0,5" HorizontalAlignment="Right">
|
<Grid Width="234.8" Margin="0,5,0,5" HorizontalAlignment="Right">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="60"/>
|
<ColumnDefinition Width="60"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<TextBlock Grid.Column="0" Text="{Binding Name}" Height="18" FontSize="14" HorizontalAlignment="Right"/>
|
<TextBlock x:Name="TbName" Grid.Column="0" Text="{Binding Name}" Height="18" FontSize="14" HorizontalAlignment="Right"/>
|
||||||
<TextBlock Grid.Column="1" Text="{Binding sText1}" Height="18" FontSize="14" HorizontalAlignment="Center"/>
|
<TextBlock x:Name="TbText1" Grid.Column="1" Text="{Binding sText1}" Height="18" FontSize="14" HorizontalAlignment="Center"/>
|
||||||
<TextBlock Grid.Column="2" Text="{Binding sText2}" Height="18" FontSize="14" HorizontalAlignment="Left"/>
|
<TextBlock x:Name="TbText2" Grid.Column="2" Text="{Binding sText2}" Height="18" FontSize="14" HorizontalAlignment="Left"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
<DataTemplate.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding bIsActive}" Value="False">
|
||||||
|
<Setter TargetName="TbName" Property="TextDecorations" Value="Strikethrough" />
|
||||||
|
<Setter TargetName="TbText1" Property="TextDecorations" Value="Strikethrough" />
|
||||||
|
<Setter TargetName="TbText2" Property="TextDecorations" Value="Strikethrough" />
|
||||||
|
</DataTrigger>
|
||||||
|
</DataTemplate.Triggers>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</TreeView.Resources>
|
</TreeView.Resources>
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
Imports EgtWPFLib
|
Imports EgtWPFLib
|
||||||
Imports System.Reflection
|
Imports System.Reflection
|
||||||
Imports System.Globalization
|
Imports System.Globalization
|
||||||
|
Imports EgtWPFLib5
|
||||||
|
|
||||||
Public Class CadCutPageUC
|
Public Class CadCutPageUC
|
||||||
|
|
||||||
|
|||||||
+16
-14
@@ -12,7 +12,7 @@
|
|||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="3*"/>
|
<ColumnDefinition Width="3*"/>
|
||||||
<ColumnDefinition Width="12*"/>
|
<ColumnDefinition Width="12*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="1*"/>
|
<RowDefinition Height="1*"/>
|
||||||
<RowDefinition Height="8*"/>
|
<RowDefinition Height="8*"/>
|
||||||
@@ -149,29 +149,31 @@
|
|||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
</UniformGrid>
|
</UniformGrid>
|
||||||
|
|
||||||
<UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" >
|
<UniformGrid Name ="UG2" Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="3" >
|
||||||
<Button Name="SelectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
|
<Button Name="SelectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
<Image Source="{DynamicResource Seleziona-tuttoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource Seleziona-tuttoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Name="DeselectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
|
<Button Name="DeselectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
<Image Source="{DynamicResource Deseleziona-tuttoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource Deseleziona-tuttoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</UniformGrid>
|
<ToggleButton Name="ParkIndBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
||||||
|
<Image Source="{DynamicResource ParkingImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
|
</ToggleButton>
|
||||||
|
</UniformGrid>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!--LowerButtonGrid-->
|
<!--LowerButtonGrid-->
|
||||||
<Grid Grid.Column="2" Grid.Row="2">
|
<Grid Grid.Column="2" Grid.Row="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="5*"/>
|
<ColumnDefinition Width="5*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
<ColumnDefinition Width="4*"/>
|
<ColumnDefinition Width="4*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
</Grid>
|
||||||
</Grid>
|
|
||||||
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
+140
-9
@@ -9,6 +9,9 @@ Public Class NestPageUC
|
|||||||
' Riferimento alla MainWindow
|
' Riferimento alla MainWindow
|
||||||
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
|
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
|
||||||
|
' Fisetra per la gestione dei parcheggi
|
||||||
|
Private m_SelParkInd As SelParkIndWD
|
||||||
|
|
||||||
' Flag di pagina attiva
|
' Flag di pagina attiva
|
||||||
Private m_bActive As Boolean = False
|
Private m_bActive As Boolean = False
|
||||||
' Flag per modalità nesting standard o registrazione posizione lastra
|
' Flag per modalità nesting standard o registrazione posizione lastra
|
||||||
@@ -144,11 +147,18 @@ Public Class NestPageUC
|
|||||||
StartCurveWJBtn.Visibility = Visibility.Collapsed
|
StartCurveWJBtn.Visibility = Visibility.Collapsed
|
||||||
End If
|
End If
|
||||||
UG0.Columns = nColumnIn_UG0
|
UG0.Columns = nColumnIn_UG0
|
||||||
|
|
||||||
|
' Gestione dei comandi di parcheggio e selezione (UniformGrid2)
|
||||||
|
'...
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub NestPage_Loaded(sender As Object, e As RoutedEventArgs)
|
Private Sub NestPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||||
m_bActive = True
|
m_bActive = True
|
||||||
LoadParams()
|
LoadParams()
|
||||||
|
Dim ListparkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListparkInd)
|
||||||
|
If ListparkInd.Count > 2 Then ParkIndBtn.IsChecked = True
|
||||||
|
ParkIndBtn_Click()
|
||||||
EgtZoom(ZM.ALL)
|
EgtZoom(ZM.ALL)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -1073,8 +1083,7 @@ Public Class NestPageUC
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
' Si può selezionare solo con il tasto sinistro e se stato NULL
|
' Si può selezionare solo con il tasto sinistro e se stato NULL
|
||||||
If e.Button <> Windows.Forms.MouseButtons.Left Or
|
If e.Button <> Windows.Forms.MouseButtons.Left Or Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
||||||
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
|
||||||
Return
|
Return
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1086,7 +1095,6 @@ Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
|||||||
m_bIsCounterLy = False
|
m_bIsCounterLy = False
|
||||||
' se in modalità DragRettangle (deformazione delle componenti rettangolari)
|
' se in modalità DragRettangle (deformazione delle componenti rettangolari)
|
||||||
If m_bIsCheckedDragRettangle Then
|
If m_bIsCheckedDragRettangle Then
|
||||||
OnMyMouseDownSceneSelSideRettangle(sender, e)
|
|
||||||
' Dati per drag (abilito il Drag)
|
' Dati per drag (abilito il Drag)
|
||||||
m_locPrev = e.Location
|
m_locPrev = e.Location
|
||||||
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev) And m_nIdSelectedCurvRettangle <> GDB_ID.NULL
|
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev) And m_nIdSelectedCurvRettangle <> GDB_ID.NULL
|
||||||
@@ -1570,6 +1578,10 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
' Eseguo verifica
|
' Eseguo verifica
|
||||||
If VerifyTrfData(nMoveId) And EgtVerifyPart(nMoveId, m_bReducedCut) Then
|
If VerifyTrfData(nMoveId) And EgtVerifyPart(nMoveId, m_bReducedCut) Then
|
||||||
m_CurrProjPage.ResetOrderMachiningFlag()
|
m_CurrProjPage.ResetOrderMachiningFlag()
|
||||||
|
' Aggiorno la lista dei parcheggi
|
||||||
|
If ParkIndBtn.IsChecked Then
|
||||||
|
m_SelParkInd.UpdateList()
|
||||||
|
End If
|
||||||
' Non superata riporto alla posizione iniziale
|
' Non superata riporto alla posizione iniziale
|
||||||
Else
|
Else
|
||||||
If m_bFromParking Then
|
If m_bFromParking Then
|
||||||
@@ -1601,7 +1613,7 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
CountPartInFamily(sRefGroup)
|
CountPartInFamily(sRefGroup)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
'---------------------- COUNTER PART ----------------------
|
'---------------------- COUNTER PART ----------------------
|
||||||
End If
|
End If
|
||||||
m_bFromParking = False
|
m_bFromParking = False
|
||||||
End If
|
End If
|
||||||
@@ -2271,7 +2283,10 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
Else
|
Else
|
||||||
StandardInsert()
|
StandardInsert()
|
||||||
End If
|
End If
|
||||||
|
' Aggiorno la lista dei parcheggi
|
||||||
|
If ParkIndBtn.IsChecked Then
|
||||||
|
m_SelParkInd.UpdateList()
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub StandardInsert()
|
Private Sub StandardInsert()
|
||||||
@@ -2713,6 +2728,7 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
#End Region ' Manager Counter Part
|
#End Region ' Manager Counter Part
|
||||||
|
|
||||||
Private Sub DragRettangle_Click() Handles DragRettanleBtn.Click
|
Private Sub DragRettangle_Click() Handles DragRettanleBtn.Click
|
||||||
If DragRettanleBtn.IsChecked Then
|
If DragRettanleBtn.IsChecked Then
|
||||||
m_bIsCheckedDragRettangle = True
|
m_bIsCheckedDragRettangle = True
|
||||||
@@ -2778,6 +2794,12 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
Dim nNextId = EgtGetNextSelectedObj()
|
Dim nNextId = EgtGetNextSelectedObj()
|
||||||
' Metto in parcheggio, se in grezzo
|
' Metto in parcheggio, se in grezzo
|
||||||
StoreOnePart(nId)
|
StoreOnePart(nId)
|
||||||
|
' Aggiorno lo stato di visualizzazione
|
||||||
|
Dim nInfoStatus As Integer = 1
|
||||||
|
' Salvo lo stato (per gestire la navigazione)
|
||||||
|
EgtGetInfo(nId, INFO_PARKSTATUS, nInfoStatus)
|
||||||
|
' Imposto lo stato
|
||||||
|
EgtSetStatus(nId, nInfoStatus)
|
||||||
' Eventuale notifiche al VeinMatching
|
' Eventuale notifiche al VeinMatching
|
||||||
VeinMatching.OnRemovePartFromRaw(nId)
|
VeinMatching.OnRemovePartFromRaw(nId)
|
||||||
' Passo al successivo selezionato
|
' Passo al successivo selezionato
|
||||||
@@ -2787,6 +2809,10 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
m_nPartPos = PART_POS.NONE_TABLE
|
m_nPartPos = PART_POS.NONE_TABLE
|
||||||
' Aggiorno vista
|
' Aggiorno vista
|
||||||
EgtZoom(ZM.ALL)
|
EgtZoom(ZM.ALL)
|
||||||
|
' Aggiorno la lista dei parcheggi
|
||||||
|
If ParkIndBtn.IsChecked Then
|
||||||
|
m_SelParkInd.UpdateList()
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' ripulisco la lista dei pezzi in parcheggio
|
' ripulisco la lista dei pezzi in parcheggio
|
||||||
@@ -2818,6 +2844,29 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
Return False
|
Return False
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Friend Function StoreOnePartDXF(nId As Integer, X As Double, Y As Double) As Boolean
|
||||||
|
Const STORE_LARGH As Double = 6000
|
||||||
|
Const STORE_DIST As Double = 200
|
||||||
|
Const STORE_OFFS As Double = 20 + 40 + 20
|
||||||
|
Dim dStoreLarg As Double = GetPrivateProfileDouble("Store", "StoreLargh", STORE_LARGH, m_MainWindow.GetMachIniFile())
|
||||||
|
Dim dStoreDist As Double = GetPrivateProfileDouble("Store", "StoreDist", STORE_DIST, m_MainWindow.GetMachIniFile())
|
||||||
|
Dim dStoreOffs As Double = GetPrivateProfileDouble("Store", "StoreOffs", STORE_OFFS, m_MainWindow.GetMachIniFile())
|
||||||
|
' Recupero box tavola
|
||||||
|
Dim b3Tab As New BBox3d
|
||||||
|
If Not EgtGetTableArea(1, b3Tab) Then
|
||||||
|
b3Tab.Add(New Point3d(0, 0, 0))
|
||||||
|
b3Tab.Add(New Point3d(-3600, -2600, 0))
|
||||||
|
End If
|
||||||
|
Dim vt As New Vector3d(b3Tab.Min.x, b3Tab.Min.y - Y - STORE_DIST, b3Tab.Min.z)
|
||||||
|
EgtMove(nId, vt, GDB_RT.GLOB)
|
||||||
|
' Recupero il centro del pezzo in parcheggio e lo salvo
|
||||||
|
Dim ptCenter As Point3d
|
||||||
|
EgtCenterPoint(nId, GDB_ID.ROOT, ptCenter)
|
||||||
|
EgtSetInfo(nId, "PosInPark", ptCenter)
|
||||||
|
EgtSetStatus(nId, GDB_ST.ON_)
|
||||||
|
Return True
|
||||||
|
End Function
|
||||||
|
|
||||||
Friend Function PackPartInStore(nId As Integer) As Boolean
|
Friend Function PackPartInStore(nId As Integer) As Boolean
|
||||||
' Recupero box tavola
|
' Recupero box tavola
|
||||||
Dim b3Tab As New BBox3d
|
Dim b3Tab As New BBox3d
|
||||||
@@ -2833,6 +2882,17 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
Dim dStoreDist As Double = GetPrivateProfileDouble("Store", "StoreDist", STORE_DIST, m_MainWindow.GetMachIniFile())
|
Dim dStoreDist As Double = GetPrivateProfileDouble("Store", "StoreDist", STORE_DIST, m_MainWindow.GetMachIniFile())
|
||||||
Dim dStoreOffs As Double = GetPrivateProfileDouble("Store", "StoreOffs", STORE_OFFS, m_MainWindow.GetMachIniFile())
|
Dim dStoreOffs As Double = GetPrivateProfileDouble("Store", "StoreOffs", STORE_OFFS, m_MainWindow.GetMachIniFile())
|
||||||
Dim dStXmin As Double = b3Tab.Min().x - 0.5 * (dStoreLarg - b3Tab.DimX())
|
Dim dStXmin As Double = b3Tab.Min().x - 0.5 * (dStoreLarg - b3Tab.DimX())
|
||||||
|
|
||||||
|
' Verifico che il pezzo ha una posizione salvata
|
||||||
|
Dim ptCenter As Point3d
|
||||||
|
If EgtGetInfo(nId, "PosInPark", ptCenter) Then
|
||||||
|
Dim ptCurrPos As Point3d
|
||||||
|
EgtCenterPoint(nId, GDB_ID.ROOT, ptCurrPos)
|
||||||
|
Dim vt As New Vector3d(ptCenter - ptCurrPos)
|
||||||
|
EgtMove(nId, vt, GDB_RT.GLOB)
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
|
||||||
Return EgtPackBox(nId, dStXmin, -INFINITO, dStXmin + dStoreLarg, b3Tab.Min().y - dStoreDist, dStoreOffs, False)
|
Return EgtPackBox(nId, dStXmin, -INFINITO, dStXmin + dStoreLarg, b3Tab.Min().y - dStoreDist, dStoreOffs, False)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -2921,6 +2981,10 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
m_CurrProjPage.ShowAreas()
|
m_CurrProjPage.ShowAreas()
|
||||||
' Aggiorno vista
|
' Aggiorno vista
|
||||||
EgtZoom(ZM.ALL)
|
EgtZoom(ZM.ALL)
|
||||||
|
' Aggiorno la lista dei parcheggi
|
||||||
|
If ParkIndBtn.IsChecked Then
|
||||||
|
m_SelParkInd.UpdateList()
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub DeleteBridgeAssociated(nMyId As Integer)
|
Private Sub DeleteBridgeAssociated(nMyId As Integer)
|
||||||
@@ -2966,6 +3030,13 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
|
|
||||||
Private Sub SelectAllBtn_Click(sender As Object, e As RoutedEventArgs) Handles SelectAllBtn.Click
|
Private Sub SelectAllBtn_Click(sender As Object, e As RoutedEventArgs) Handles SelectAllBtn.Click
|
||||||
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
||||||
|
' Recupero il ParkInd attualmente attivo
|
||||||
|
Dim CurrParkInd As ParkInd = SelParkIndWD.GetCurrentParkIndSelected()
|
||||||
|
' Il default è ZERO
|
||||||
|
Dim nCurrParkInd As Integer = 0
|
||||||
|
If Not IsNothing(CurrParkInd) Then
|
||||||
|
nCurrParkInd = CurrParkInd.Ind
|
||||||
|
End If
|
||||||
' Numero dei pezzi in tavola
|
' Numero dei pezzi in tavola
|
||||||
Dim nPartTab As Integer = EgtGetPartInRawPartCount(m_nRawId)
|
Dim nPartTab As Integer = EgtGetPartInRawPartCount(m_nRawId)
|
||||||
' Se già selezionati in tavola o non ci sono selezionati e pezzi in tavola
|
' Se già selezionati in tavola o non ci sono selezionati e pezzi in tavola
|
||||||
@@ -2974,8 +3045,21 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
' Seleziono tutti i pezzi in tavola
|
' Seleziono tutti i pezzi in tavola
|
||||||
Dim nPartId As Integer = EgtGetFirstGroupInGroup(m_nRawId)
|
Dim nPartId As Integer = EgtGetFirstGroupInGroup(m_nRawId)
|
||||||
While nPartId <> GDB_ID.NULL
|
While nPartId <> GDB_ID.NULL
|
||||||
EgtSelectObj(nPartId)
|
' ------------------ INIZIO ------------------ Recupero l'indice del parcheggio in cui è inserito il pezzo
|
||||||
VeinMatching.OnSelectPart(nPartId, False)
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
Dim nInfoParkInd As Integer = -1
|
||||||
|
' Recupero l'indice del parcheggio
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
nInfoParkInd = If(IsNumeric(sInfoParkInd), CInt(sInfoParkInd), -1)
|
||||||
|
Else
|
||||||
|
nInfoParkInd = 0
|
||||||
|
End If
|
||||||
|
' ------------------ FINE ------------------ Recupero l'indice del parcheggio in cui è inserito il pezzo
|
||||||
|
' Se l'indice di parcheggio è valido (uguale al parcheggio corrente)
|
||||||
|
If nInfoParkInd = nCurrParkInd Then
|
||||||
|
EgtSelectObj(nPartId)
|
||||||
|
VeinMatching.OnSelectPart(nPartId, False)
|
||||||
|
End If
|
||||||
nPartId = EgtGetNextGroup(nPartId)
|
nPartId = EgtGetNextGroup(nPartId)
|
||||||
End While
|
End While
|
||||||
' Aggiorno flag
|
' Aggiorno flag
|
||||||
@@ -2985,8 +3069,21 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
' Seleziono tutti i pezzi in parcheggio
|
' Seleziono tutti i pezzi in parcheggio
|
||||||
Dim nPartId As Integer = EgtGetFirstPart()
|
Dim nPartId As Integer = EgtGetFirstPart()
|
||||||
While nPartId <> GDB_ID.NULL
|
While nPartId <> GDB_ID.NULL
|
||||||
EgtSelectObj(nPartId)
|
' ------------------ INIZIO ------------------ Recupero l'indice del parcheggio in cui è inserito il pezzo
|
||||||
VeinMatching.OnSelectPart(nPartId, False)
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
Dim nInfoParkInd As Integer = -1
|
||||||
|
' Recupero l'indice del parcheggio
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
nInfoParkInd = If(IsNumeric(sInfoParkInd), CInt(sInfoParkInd), -1)
|
||||||
|
Else
|
||||||
|
nInfoParkInd = 0
|
||||||
|
End If
|
||||||
|
' ------------------ FINE ------------------ Recupero l'indice del parcheggio in cui è inserito il pezzo
|
||||||
|
' Se l'indice di parcheggio è valido (uguale al parcheggio corrente)
|
||||||
|
If nInfoParkInd = nCurrParkInd Then
|
||||||
|
EgtSelectObj(nPartId)
|
||||||
|
VeinMatching.OnSelectPart(nPartId, False)
|
||||||
|
End If
|
||||||
nPartId = EgtGetNextPart(nPartId)
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
End While
|
End While
|
||||||
' Aggiorno flag
|
' Aggiorno flag
|
||||||
@@ -3009,6 +3106,33 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ParkIndBtn_Click() Handles ParkIndBtn.Click
|
||||||
|
If ParkIndBtn.IsChecked Then
|
||||||
|
If IsNothing(m_SelParkInd) Then
|
||||||
|
m_SelParkInd = New SelParkIndWD(m_MainWindow)
|
||||||
|
End If
|
||||||
|
'm_SelParkInd.Show()
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectSceneHost.SetValue(Grid.ColumnSpanProperty, 1)
|
||||||
|
m_SelParkInd.SetValue(Grid.ColumnProperty, 1)
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SceneHostGrid.Children.Add(m_SelParkInd)
|
||||||
|
Else
|
||||||
|
If Not IsNothing(m_SelParkInd) Then
|
||||||
|
'm_SelParkInd.Close()
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||||
|
m_SelParkInd = Nothing
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
EgtZoom(ZM.ALL)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub ReloadListParkInd()
|
||||||
|
If Not IsNothing(m_SelParkInd) Then
|
||||||
|
m_SelParkInd.UpdateList()
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Private Sub PartRotOnBtn_Click(sender As Object, e As RoutedEventArgs) Handles PartRotOnBtn.Click
|
Private Sub PartRotOnBtn_Click(sender As Object, e As RoutedEventArgs) Handles PartRotOnBtn.Click
|
||||||
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
||||||
' Se non ci sono pezzi selezionati o non sono in parcheggio, esco
|
' Se non ci sono pezzi selezionati o non sono in parcheggio, esco
|
||||||
@@ -3132,6 +3256,13 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub NestPage_Unloaded(sender As Object, e As RoutedEventArgs)
|
Private Sub NestPage_Unloaded(sender As Object, e As RoutedEventArgs)
|
||||||
|
' se esiste l'elenco dei parcheggi lo nascondo
|
||||||
|
If Not IsNothing(m_SelParkInd) Then
|
||||||
|
' m_SelParkInd.Close()
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||||
|
m_SelParkInd = Nothing
|
||||||
|
End If
|
||||||
m_bActive = False
|
m_bActive = False
|
||||||
m_MainWindow.m_CadCutPageUC.m_ProjectMgr.VeinMatchingHide()
|
m_MainWindow.m_CadCutPageUC.m_ProjectMgr.VeinMatchingHide()
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@@ -0,0 +1,97 @@
|
|||||||
|
<UserControl x:Class="SelParkIndWD"
|
||||||
|
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}"
|
||||||
|
Background="Transparent">
|
||||||
|
|
||||||
|
<Border Style="{DynamicResource OmagCut_Border}">
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="0.1*"/>
|
||||||
|
<ColumnDefinition Width="10*"/>
|
||||||
|
<ColumnDefinition Width="0.1*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="0.0*"/>
|
||||||
|
<RowDefinition Height="0.1*"/>
|
||||||
|
<RowDefinition Height="10*"/>
|
||||||
|
<RowDefinition Height="0.1*"/>
|
||||||
|
<RowDefinition Height="0.0*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<TextBlock Name="FilePathTxBl" Grid.Column="1" Grid.Row="1" Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
|
||||||
|
Visibility="Collapsed"/>
|
||||||
|
<!--TextAlignment="Center"
|
||||||
|
FontSize="20"
|
||||||
|
VerticalAlignment="Center"-->
|
||||||
|
<ListBox Name="ParkIndListBox" Grid.Column="1" Grid.Row="2"
|
||||||
|
ItemsSource="{Binding ItemList}" ScrollViewer.CanContentScroll="False" ScrollViewer.HorizontalScrollBarVisibility="Hidden">
|
||||||
|
<ListBox.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<StackPanel Orientation="Vertical" >
|
||||||
|
<UniformGrid Columns="2" Visibility="{Binding TitleVisibility}">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<Image Source="{Binding ImgTab}" Height="20" Stretch="Uniform"/>
|
||||||
|
<TextBlock Text="{Binding CountInTab}" Height="20" Width="30">
|
||||||
|
<TextBlock.Style>
|
||||||
|
<Style TargetType="TextBlock" BasedOn="{StaticResource OmagCut_ListBoxTextBlock}">
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding IsStatusON}" Value="False">
|
||||||
|
<Setter Property="FontStyle" Value="Oblique"/>
|
||||||
|
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
|
||||||
|
</DataTrigger>
|
||||||
|
<DataTrigger Binding="{Binding IsStatusON}" Value="True">
|
||||||
|
<Setter Property="Foreground" Value="black"/>
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</TextBlock.Style>
|
||||||
|
</TextBlock>
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<Image Source="{Binding ImgPark}" Height="20" Stretch="Uniform"/>
|
||||||
|
<TextBlock Text="{Binding CountInPark}" Height="20" Width="30">
|
||||||
|
<TextBlock.Style>
|
||||||
|
<Style TargetType="TextBlock" BasedOn="{StaticResource OmagCut_ListBoxTextBlock}">
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding IsStatusON}" Value="False">
|
||||||
|
<Setter Property="FontStyle" Value="Oblique"/>
|
||||||
|
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
|
||||||
|
</DataTrigger>
|
||||||
|
<DataTrigger Binding="{Binding IsStatusON}" Value="True">
|
||||||
|
<Setter Property="Foreground" Value="black"/>
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</TextBlock.Style>
|
||||||
|
</TextBlock>
|
||||||
|
</StackPanel>
|
||||||
|
</UniformGrid>
|
||||||
|
<Image Source="{Binding Img}" Width="120" Stretch="Uniform" Visibility="{Binding MyVisibilityImg}"/>
|
||||||
|
<Viewbox Name="ViewBoxPark" Visibility="{Binding MyVisibilitySvg}">
|
||||||
|
<ContentPresenter Content="{Binding LocalMyCanvas.CurrCanvas}"/>
|
||||||
|
</Viewbox>
|
||||||
|
</StackPanel>
|
||||||
|
</DataTemplate>
|
||||||
|
</ListBox.ItemTemplate>
|
||||||
|
</ListBox>
|
||||||
|
|
||||||
|
<Grid Grid.Column="1" Grid.Row="4" Visibility="Collapsed">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="0.5*"/>
|
||||||
|
<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>
|
||||||
|
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Border>
|
||||||
|
</UserControl>
|
||||||
@@ -0,0 +1,869 @@
|
|||||||
|
Imports System.ComponentModel
|
||||||
|
Imports System.Globalization
|
||||||
|
Imports System.Windows.Ink
|
||||||
|
Imports System.Xml
|
||||||
|
Imports EgtUILib
|
||||||
|
Imports OmagCUT.NestPageUC
|
||||||
|
|
||||||
|
Public Class SelParkIndWD
|
||||||
|
Private Shared m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
|
Private m_ParkIndList As New List(Of ParkInd)
|
||||||
|
Public Const nIndAllOff As Integer = 999
|
||||||
|
|
||||||
|
Sub New(Owner As Window)
|
||||||
|
'Me.Owner = Owner
|
||||||
|
InitializeComponent()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub Me_Laoded() Handles Me.Loaded
|
||||||
|
' Aggiorno la lista
|
||||||
|
UpdateList()
|
||||||
|
' Imposto la selezione del primo parcheggio disponibile
|
||||||
|
UpdateDefaultSelection()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub UpdateList()
|
||||||
|
' Carico lista dei pezzi
|
||||||
|
LoadParkInd(m_ParkIndList)
|
||||||
|
ParkIndListBox.ItemsSource = m_ParkIndList
|
||||||
|
UpdateDefaultSelection()
|
||||||
|
' Forzo l'aggiornamento della grafica
|
||||||
|
ParkIndListBox.Items.Refresh()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub UpdateDefaultSelection()
|
||||||
|
' Procedo a selezionare il primo (E FORSE ANCHE L'UNICO?) parcheggio attivo
|
||||||
|
Dim bFound As Boolean = False
|
||||||
|
For Each ItemPark As ParkInd In m_ParkIndList
|
||||||
|
If ItemPark.IsStatusON Then
|
||||||
|
ParkIndListBox.SelectedItem = ItemPark
|
||||||
|
bFound = True
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
If Not bFound And m_ParkIndList.Count > 0 Then
|
||||||
|
m_ParkIndList(0).Status = GDB_ST.ON_
|
||||||
|
ParkIndListBox.SelectedItem = m_ParkIndList(0)
|
||||||
|
End If
|
||||||
|
'' Provedo a spegnere tutti gli altri parcheggi
|
||||||
|
'For Each ItemParkInd As ParkInd In m_ParkIndList
|
||||||
|
' If ParkIndListBox.SelectedItem.Ind <> ItemParkInd.Ind Then
|
||||||
|
' ItemParkInd.Status = GDB_ST.OFF
|
||||||
|
' SetStatusPartInParkInd(ItemParkInd)
|
||||||
|
' End If
|
||||||
|
'Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ParkIndListBox_SelectionChanged() Handles ParkIndListBox.MouseLeftButtonUp
|
||||||
|
' Non so se il click sta accendeno o spegnendo quinid faccio una verifica dello stato attuale del parcheggio
|
||||||
|
Dim localParkInd As ParkInd = ParkIndListBox.SelectedItem
|
||||||
|
' Se l'elemento selezionato è attivo allora esco (perchè altrimenti lo spegnerei)
|
||||||
|
If localParkInd.IsStatusON Then Return
|
||||||
|
Dim bFound As Boolean = False
|
||||||
|
If localParkInd.Ind = nIndAllOff Then
|
||||||
|
localParkInd.Status = GDB_ST.ON_
|
||||||
|
bFound = True
|
||||||
|
End If
|
||||||
|
Dim nPartId As Integer = EgtGetFirstPart()
|
||||||
|
' Cerco il primo pezzo del parcheggio indicato
|
||||||
|
While nPartId <> GDB_ID.NULL And Not bFound
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
' Se i pezzi non hanno un indice di parcheggio di default vale "0"
|
||||||
|
If Not EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then sInfoParkInd = "0"
|
||||||
|
If localParkInd.Ind.ToString = sInfoParkInd Then
|
||||||
|
' Determino lo stato da assegnare al parcheggio (prendo il primo pezzo del parcheggio come riferimento)
|
||||||
|
Dim OppositStat As Integer = If(localParkInd.Status = GDB_ST.ON_, GDB_ST.OFF, GDB_ST.ON_)
|
||||||
|
localParkInd.Status = OppositStat
|
||||||
|
bFound = True
|
||||||
|
' termino la ricerca
|
||||||
|
Exit While
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
|
End While
|
||||||
|
' Assegno lo stato del parcheggio a tutti i pezzi i parcheggio
|
||||||
|
If bFound Then
|
||||||
|
SetStatusPartInParkInd(localParkInd)
|
||||||
|
Else
|
||||||
|
' Significa che i pezzi sono tutti in macchina: quindi i pezzi sono (SICURAMENTE?) accesi
|
||||||
|
Dim OppositStat As Integer = If(localParkInd.Status = GDB_ST.ON_, GDB_ST.OFF, GDB_ST.ON_)
|
||||||
|
localParkInd.Status = OppositStat
|
||||||
|
SetStatusPartInParkInd(localParkInd)
|
||||||
|
End If
|
||||||
|
' Se accendo un parcheggio procedo a spegnere tutto gli atri
|
||||||
|
If localParkInd.Status = GDB_ST.ON_ Then
|
||||||
|
For Each ItemParkInd As ParkInd In m_ParkIndList
|
||||||
|
If localParkInd.Ind <> ItemParkInd.Ind Then
|
||||||
|
ItemParkInd.Status = GDB_ST.OFF
|
||||||
|
SetStatusPartInParkInd(ItemParkInd)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
EgtZoom(ZM.ALL)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
#Region "METODI SHARED per gestione della lista parcheggi"
|
||||||
|
|
||||||
|
' Restituisce il primo indice di parcheggio libero
|
||||||
|
Public Shared Function NewParkInd() As Integer
|
||||||
|
' recupero il contesto corrente
|
||||||
|
Dim CurrCtx As Integer = EgtGetCurrentContext()
|
||||||
|
' recupero il contesto del progetto
|
||||||
|
Dim ProjCtx As Integer = m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()
|
||||||
|
EgtSetCurrentContext(ProjCtx)
|
||||||
|
Dim LastParkInd As Integer = 0
|
||||||
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
|
' Leggo l'indice di parcheggio dei pezzi in tavola
|
||||||
|
Dim nPartId As Integer = EgtGetFirstGroupInGroup(nRawId)
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
' Se i pezzi non hanno un indice di parcheggio
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
If IsNumeric(sInfoParkInd) Then
|
||||||
|
Dim nInfoParkIndn As Integer = CInt(sInfoParkInd)
|
||||||
|
LastParkInd = Math.Max(LastParkInd, nInfoParkIndn)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextGroup(nPartId)
|
||||||
|
End While
|
||||||
|
' Leggo l'indice di parcheggio dei pezzi in parcheggio
|
||||||
|
nPartId = EgtGetFirstPart()
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
' Se i pezzi non hanno un indice di parcheggio (COPIA della funzione sopra)
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
If IsNumeric(sInfoParkInd) Then
|
||||||
|
Dim nInfoParkIndn As Integer = CInt(sInfoParkInd)
|
||||||
|
LastParkInd = Math.Max(LastParkInd, nInfoParkIndn)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
|
End While
|
||||||
|
' Ripristino il contesto corrente
|
||||||
|
EgtSetCurrentContext(CurrCtx)
|
||||||
|
Return LastParkInd + 1
|
||||||
|
End Function
|
||||||
|
|
||||||
|
' Gestisce lo stato dei pezzi associati al parcheggio indicato
|
||||||
|
Public Shared Sub SetStatusPartInParkInd(localParkInd As ParkInd, Optional bDraw As Boolean = True)
|
||||||
|
If IsNothing(localParkInd) Then Return
|
||||||
|
' recupero il contesto corrente
|
||||||
|
Dim CurrCtx As Integer = EgtGetCurrentContext()
|
||||||
|
' recupero il contesto del progetto
|
||||||
|
Dim ProjCtx As Integer = m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()
|
||||||
|
EgtSetCurrentContext(ProjCtx)
|
||||||
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
|
' Pezzi in tavola
|
||||||
|
Dim nPartId As Integer = EgtGetFirstGroupInGroup(nRawId)
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
If Not EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then sInfoParkInd = "0"
|
||||||
|
If localParkInd.Ind.ToString = sInfoParkInd Then
|
||||||
|
' Salvo lo stato del parcheggio (per gestire la navigazione) ANCHE SE I PEZZI SONO ACCESI
|
||||||
|
EgtSetInfo(nPartId, INFO_PARKSTATUS, localParkInd.Status)
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextGroup(nPartId)
|
||||||
|
End While
|
||||||
|
' Pezzi in parcheggio
|
||||||
|
nPartId = EgtGetFirstPart()
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
If Not EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then sInfoParkInd = "0"
|
||||||
|
If localParkInd.Ind.ToString = sInfoParkInd Then
|
||||||
|
' Setto lo stato
|
||||||
|
EgtSetStatus(nPartId, localParkInd.Status)
|
||||||
|
' Salvo lo stato (per gestire la navigazione)
|
||||||
|
EgtSetInfo(nPartId, INFO_PARKSTATUS, localParkInd.Status)
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
|
End While
|
||||||
|
If bDraw Then EgtDraw()
|
||||||
|
' Ripristino il contesto corrente
|
||||||
|
EgtSetCurrentContext(CurrCtx)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Restituuisce la lista dei parcheggi del progetto corrente
|
||||||
|
Public Shared Sub LoadParkInd(P_List As List(Of ParkInd))
|
||||||
|
If IsNothing(P_List) Then Return
|
||||||
|
P_List.Clear()
|
||||||
|
P_List.Add(New ParkInd(nIndAllOff, "All off", 0))
|
||||||
|
' recupero il contesto corrente
|
||||||
|
Dim CurrCtx As Integer = EgtGetCurrentContext()
|
||||||
|
' recupero il contesto del progetto
|
||||||
|
Dim ProjCtx As Integer = m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()
|
||||||
|
EgtSetCurrentContext(ProjCtx)
|
||||||
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
|
' Pezzi in tavola
|
||||||
|
Dim nPartId As Integer = EgtGetFirstGroupInGroup(nRawId)
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
Dim nInfoParkInd As Integer = -1
|
||||||
|
' Recupero l'indice del parcheggio
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
nInfoParkInd = If(IsNumeric(sInfoParkInd), CInt(sInfoParkInd), -1)
|
||||||
|
Else
|
||||||
|
nInfoParkInd = 0
|
||||||
|
End If
|
||||||
|
' Se l'indice di parcheggio restituito è valido (Maggiore di -1)
|
||||||
|
If nInfoParkInd > -1 Then
|
||||||
|
' Verifico se nella lista dei parcheggi è già presente l'indice indicato
|
||||||
|
Dim localParkInd As ParkInd = P_List.Find(Function(x) x.Ind = nInfoParkInd)
|
||||||
|
' Se non trovo nessun parcheggio con questo indice allora lo aggiungo
|
||||||
|
If IsNothing(localParkInd) Then
|
||||||
|
Dim nStatus As Integer
|
||||||
|
EgtGetInfo(nPartId, INFO_PARKSTATUS, nStatus)
|
||||||
|
' EgtGetStatus(nPartId, nStatus)
|
||||||
|
P_List.Add(New ParkInd(nInfoParkInd, "Park_" & nInfoParkInd.ToString, nStatus))
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextGroup(nPartId)
|
||||||
|
End While
|
||||||
|
' Pezzi in parcheggio
|
||||||
|
nPartId = EgtGetFirstPart()
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
Dim nInfoParkInd As Integer = -1
|
||||||
|
' Recupero l'indice del parcheggio
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
nInfoParkInd = If(IsNumeric(sInfoParkInd), CInt(sInfoParkInd), -1)
|
||||||
|
Else
|
||||||
|
nInfoParkInd = 0
|
||||||
|
End If
|
||||||
|
' Se l'indice di parcheggio restituito è valido (Maggiore di -1)
|
||||||
|
If nInfoParkInd > -1 Then
|
||||||
|
' Verifico se nella lista dei parcheggi è già presente l'indice indicato
|
||||||
|
Dim localParkInd As ParkInd = P_List.Find(Function(x) x.Ind = nInfoParkInd)
|
||||||
|
' Se non trovo nessun parcheggio con questo indice allora lo aggiungo
|
||||||
|
If IsNothing(localParkInd) Then
|
||||||
|
Dim nStatus As Integer
|
||||||
|
EgtGetInfo(nPartId, INFO_PARKSTATUS, nStatus)
|
||||||
|
' EgtGetStatus(nPartId, nStatus)
|
||||||
|
P_List.Add(New ParkInd(nInfoParkInd, "Park_" & nInfoParkInd.ToString, nStatus))
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
|
End While
|
||||||
|
EgtSetCurrentContext(CurrCtx)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Aggiorna la lista dei parcheggi, se "bDraw=true" aggiorno la scena
|
||||||
|
Public Shared Sub UpdateViewOnParkInd(Optional bDraw As Boolean = True)
|
||||||
|
' Ricarico la lista dei parcheggi
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd)
|
||||||
|
' Aggiorna la vista dei parcheggi
|
||||||
|
For Each Item As ParkInd In ListParkInd
|
||||||
|
SelParkIndWD.SetStatusPartInParkInd(Item, bDraw)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Restituisce il primo parcheggio attivo (
|
||||||
|
Public Shared Function GetCurrentParkIndSelected() As ParkInd
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd)
|
||||||
|
' Procedo a selezionare il primo (E ANCHE UNICO?..a volte no..) parcheggio attivo -> guarda funzione UpdateList <-
|
||||||
|
For Each ItemPark As ParkInd In ListParkInd
|
||||||
|
If ItemPark.IsStatusON Then
|
||||||
|
Return ItemPark
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return Nothing
|
||||||
|
End Function
|
||||||
|
|
||||||
|
' Restitusice il nome del file immagine del parcheggio (manance solo dell'Indice di parcheggio e dell'esetensione png)
|
||||||
|
Public Shared Function GetPathCurrProj() As String
|
||||||
|
Dim nProj As Integer = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProject()
|
||||||
|
Dim sParkPath As String = m_MainWindow.GetSaveDir() & "\" & Math.Abs(nProj).ToString("D4") & "_ParkInd_"
|
||||||
|
Return sParkPath
|
||||||
|
End Function
|
||||||
|
|
||||||
|
#End Region ' Metodi Shared
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class ParkInd
|
||||||
|
Implements INotifyPropertyChanged
|
||||||
|
|
||||||
|
Private m_VisbilityAllOff As Visibility = Visibility.Hidden
|
||||||
|
|
||||||
|
Private m_Ind As Integer
|
||||||
|
Public Property Ind As Integer
|
||||||
|
Get
|
||||||
|
Return m_Ind
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_Ind = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_Name As String
|
||||||
|
Public Property Name As String
|
||||||
|
Get
|
||||||
|
Return m_Name
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_Name = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_Img As String = String.Empty
|
||||||
|
Public Property Img As String
|
||||||
|
Get
|
||||||
|
Return m_Img
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_Img = value
|
||||||
|
NotifyPropertyChanged("MyVisibilityImg")
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_Svg As String = String.Empty
|
||||||
|
Public Property Svg As String
|
||||||
|
Get
|
||||||
|
Return m_Svg
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_Svg = value
|
||||||
|
NotifyPropertyChanged("MyVisibilitySvg")
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_nPartInTable As Integer = 0
|
||||||
|
Public Property nPartInTable As Integer
|
||||||
|
Get
|
||||||
|
Return m_nPartInTable
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_nPartInTable = value
|
||||||
|
NotifyPropertyChanged(NameOf(nPartInTable))
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_nPartInPark As Integer = 0
|
||||||
|
Public Property nPartInPark As Integer
|
||||||
|
Get
|
||||||
|
Return m_nPartInPark
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_nPartInPark = value
|
||||||
|
NotifyPropertyChanged(NameOf(nPartInPark))
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property CountInTab As String
|
||||||
|
Get
|
||||||
|
Return m_nPartInTable.ToString
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property ImgTab As String
|
||||||
|
Get
|
||||||
|
Return DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\table.png"
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property CountInPark As String
|
||||||
|
Get
|
||||||
|
Return m_nPartInPark.ToString
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property ImgPark As String
|
||||||
|
Get
|
||||||
|
Return DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park.png"
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_Status As Integer
|
||||||
|
|
||||||
|
Public Property Status As Integer
|
||||||
|
Get
|
||||||
|
Return m_Status
|
||||||
|
End Get
|
||||||
|
Set(value As Integer)
|
||||||
|
m_Status = value
|
||||||
|
NotifyPropertyChanged(NameOf(IsStatusON))
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property IsStatusON As Boolean
|
||||||
|
Get
|
||||||
|
Return (m_Status = GDB_ST.ON_)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property MyVisibilityTmg As Visibility
|
||||||
|
Get
|
||||||
|
Return If(Not System.IO.File.Exists(m_Img), Visibility.Collapsed, Visibility.Visible)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property MyVisibilitySvg As Visibility
|
||||||
|
Get
|
||||||
|
Return If(Not System.IO.File.Exists(m_Svg), Visibility.Collapsed, Visibility.Visible)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property TitleVisibility As Visibility
|
||||||
|
Get
|
||||||
|
Return If(m_Ind = 999, m_VisbilityAllOff, Visibility.Visible)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_LocalMyCanvas As MyCanvas
|
||||||
|
Public ReadOnly Property LocalMyCanvas As MyCanvas
|
||||||
|
Get
|
||||||
|
Return m_LocalMyCanvas
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New(Ind As Integer, Name As String, Stat As Integer)
|
||||||
|
m_Ind = Ind
|
||||||
|
m_Name = Name
|
||||||
|
m_Status = Stat
|
||||||
|
' Costruisco il percorso immagine
|
||||||
|
If m_Ind = 0 Then
|
||||||
|
' Se Ind=0 allora applico il default: C:\EgtData\OmagCUT\Resources\MachineButtonsImage\NewIcons
|
||||||
|
m_Img = DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_On.png"
|
||||||
|
m_Svg = DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_On.svg"
|
||||||
|
ElseIf m_Ind = 999 Then
|
||||||
|
' Se Ind=0 allora applico il default: C:\EgtData\OmagCUT\Resources\MachineButtonsImage\NewIcons
|
||||||
|
m_Img = DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_Off.png"
|
||||||
|
m_Svg = DirectCast(Application.Current.MainWindow, MainWindow).GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_Off.svg"
|
||||||
|
Else
|
||||||
|
m_Img = SelParkIndWD.GetPathCurrProj() & m_Ind.ToString & ".png"
|
||||||
|
m_Svg = SelParkIndWD.GetPathCurrProj() & m_Ind.ToString & ".svg"
|
||||||
|
End If
|
||||||
|
|
||||||
|
If MainWindow.m_bShowSVGParkInd Then
|
||||||
|
Dim CanvWidth As Integer = 145
|
||||||
|
Dim CanvHeight As Integer = CInt(CanvWidth / 1.4)
|
||||||
|
m_LocalMyCanvas = New MyCanvas(CanvWidth, CanvHeight)
|
||||||
|
If System.IO.File.Exists(m_Svg) Then
|
||||||
|
ReadMyXML(m_Svg, m_LocalMyCanvas)
|
||||||
|
m_Img = ""
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
m_Svg = ""
|
||||||
|
End If
|
||||||
|
|
||||||
|
' Conto il numero di pezzi in Tavola
|
||||||
|
CountPartInTable()
|
||||||
|
' Conto il numero di pezzi in parcheggio
|
||||||
|
CountPartInPark()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Conta in numero di pezzi di questo parcheggio in Tavola
|
||||||
|
Private Sub CountPartInTable()
|
||||||
|
Dim nCount As Integer = 0
|
||||||
|
Dim nRawId As Integer = GetCurrentRaw()
|
||||||
|
' Leggo l'indice di parcheggio dei pezzi in tavola
|
||||||
|
Dim nPartId As Integer = EgtGetFirstGroupInGroup(nRawId)
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
' Aggiorno il valore del contatore
|
||||||
|
If IncreaseCounterPart(nPartId, nCount) Then
|
||||||
|
UpdateEntInCanvas(nPartId, 0.2)
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextGroup(nPartId)
|
||||||
|
End While
|
||||||
|
m_nPartInTable = nCount
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Conta il numero di pezzi di questo parcheggio in Parcheggio
|
||||||
|
Private Sub CountPartInPark()
|
||||||
|
Dim nCount As Integer = 0
|
||||||
|
Dim nPartId As Integer = EgtGetFirstPart()
|
||||||
|
While nPartId <> GDB_ID.NULL
|
||||||
|
' Aggiorno il valore del contatore
|
||||||
|
If IncreaseCounterPart(nPartId, nCount) Then
|
||||||
|
UpdateEntInCanvas(nPartId, 1)
|
||||||
|
End If
|
||||||
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
|
End While
|
||||||
|
m_nPartInPark = nCount
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub UpdateEntInCanvas(nPartId, dOpacity)
|
||||||
|
If Not IsNothing(m_LocalMyCanvas) Then
|
||||||
|
' modifico il colore del pezzo nel SVG
|
||||||
|
Dim nIdRegion As Integer = EgtGetFirstNameInGroup(nPartId, "Region")
|
||||||
|
If nIdRegion <> GDB_ID.NULL Then
|
||||||
|
Dim nIdEnt As Integer = EgtGetFirstInGroup(nIdRegion)
|
||||||
|
While nIdEnt <> GDB_ID.NULL
|
||||||
|
If EgtGetType(nIdEnt) = GDB_TY.SRF_FRGN Then
|
||||||
|
Exit While
|
||||||
|
End If
|
||||||
|
End While
|
||||||
|
If nIdEnt <> GDB_ID.NULL Then
|
||||||
|
Dim sName As String = ""
|
||||||
|
EgtGetName(nIdEnt, sName)
|
||||||
|
Dim Idpath As MyPath = m_LocalMyCanvas.ListPath.Find(Function(x) x.id = sName)
|
||||||
|
If Not IsNothing(Idpath) Then
|
||||||
|
Idpath.fill_opacity = dOpacity
|
||||||
|
m_LocalMyCanvas.UpdateMyPath(Idpath)
|
||||||
|
Idpath.LoadPath()
|
||||||
|
NotifyPropertyChanged(NameOf(LocalMyCanvas))
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Verifica se il pezzo passato (da parcheggio o tavola) appartiene al ParkInd corrente e quindi aggiorna il valore di nCount+=1
|
||||||
|
Private Function IncreaseCounterPart(nPartId As Integer, ByRef nCount As Integer) As Boolean
|
||||||
|
Dim bOk As Boolean = False
|
||||||
|
' Se i pezzi non hanno un indice di parcheggio
|
||||||
|
Dim sInfoParkInd As String = String.Empty
|
||||||
|
Dim nInfoParkInd As Integer = -1
|
||||||
|
' Recupero l'indice del parcheggio
|
||||||
|
If EgtGetInfo(nPartId, INFO_PARKIND, sInfoParkInd) Then
|
||||||
|
nInfoParkInd = If(IsNumeric(sInfoParkInd), CInt(sInfoParkInd), -1)
|
||||||
|
Else
|
||||||
|
nInfoParkInd = 0
|
||||||
|
End If
|
||||||
|
' Se l'indice di parcheggio restituito è valido (Maggiore di -1)
|
||||||
|
If nInfoParkInd > -1 Then
|
||||||
|
' e uguale a quallo del parcheggio correntemente selezionato
|
||||||
|
If nInfoParkInd = m_Ind Then
|
||||||
|
nCount = nCount + 1
|
||||||
|
bOk = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return bOk
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
||||||
|
|
||||||
|
Public Sub NotifyPropertyChanged(propName As String)
|
||||||
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
#Region "ELEMENTI PER LA GESTIONE SVG"
|
||||||
|
|
||||||
|
Public Class MyCanvas
|
||||||
|
|
||||||
|
Private m_CurrCanvas As New Canvas
|
||||||
|
Public Property CurrCanvas As Canvas
|
||||||
|
Get
|
||||||
|
Return m_CurrCanvas
|
||||||
|
End Get
|
||||||
|
Set(value As Canvas)
|
||||||
|
m_CurrCanvas = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_ListPath As New List(Of MyPath)
|
||||||
|
Public Property ListPath As List(Of MyPath)
|
||||||
|
Get
|
||||||
|
Return m_ListPath
|
||||||
|
End Get
|
||||||
|
Set(value As List(Of MyPath))
|
||||||
|
m_ListPath = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_ViewBoxDim As String
|
||||||
|
Public Property ViewBoxDim As String
|
||||||
|
Get
|
||||||
|
Return m_ViewBoxDim
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_ViewBoxDim = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New(Width As Integer, Height As Integer)
|
||||||
|
m_CurrCanvas.Width = Width
|
||||||
|
m_CurrCanvas.Height = Height
|
||||||
|
m_CurrCanvas.ClipToBounds = True
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub LoadCanvas()
|
||||||
|
For Each ItemPath As MyPath In m_ListPath
|
||||||
|
m_CurrCanvas.Children.Add(ItemPath.CurrPath)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub UpdateMyPath(CurrPath As MyPath)
|
||||||
|
m_CurrCanvas.Children.Remove(CurrPath.CurrPath)
|
||||||
|
m_CurrCanvas.Children.Add(CurrPath.CurrPath)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class MyPath
|
||||||
|
|
||||||
|
Private m_CurrPath As New System.Windows.Shapes.Path
|
||||||
|
Public Property CurrPath As System.Windows.Shapes.Path
|
||||||
|
Get
|
||||||
|
Return m_CurrPath
|
||||||
|
End Get
|
||||||
|
Set(value As System.Windows.Shapes.Path)
|
||||||
|
m_CurrPath = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_CanvX As Double
|
||||||
|
Public ReadOnly Property CanvX As Double
|
||||||
|
Get
|
||||||
|
Return m_CanvX
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_CanvY As Double
|
||||||
|
Public ReadOnly Property CanvY As Double
|
||||||
|
Get
|
||||||
|
Return m_CanvY
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_DimX As Double
|
||||||
|
Public ReadOnly Property DimX As Double
|
||||||
|
Get
|
||||||
|
Return m_DimX
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_DimY As Double
|
||||||
|
Public ReadOnly Property DimY As Double
|
||||||
|
Get
|
||||||
|
Return m_DimY
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_id As String
|
||||||
|
Public ReadOnly Property id As String
|
||||||
|
Get
|
||||||
|
Return m_id
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_d As String
|
||||||
|
Public ReadOnly Property d As String
|
||||||
|
Get
|
||||||
|
Return m_d
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_fill As String
|
||||||
|
Public Property fill As String
|
||||||
|
Get
|
||||||
|
Return m_fill
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_fill = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_fill_opacity As Double
|
||||||
|
Public Property fill_opacity As Double
|
||||||
|
Get
|
||||||
|
Return m_fill_opacity
|
||||||
|
End Get
|
||||||
|
Set(value As Double)
|
||||||
|
m_fill_opacity = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_stroke As String
|
||||||
|
Public Property stroke As String
|
||||||
|
Get
|
||||||
|
Return m_stroke
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
m_stroke = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_stroke_opacity As Double
|
||||||
|
Public Property stroke_opacity As Double
|
||||||
|
Get
|
||||||
|
Return m_stroke_opacity
|
||||||
|
End Get
|
||||||
|
Set(value As Double)
|
||||||
|
m_stroke_opacity = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private m_stroke_width As Double
|
||||||
|
Public Property stroke_width As Double
|
||||||
|
Get
|
||||||
|
Return m_stroke_width
|
||||||
|
End Get
|
||||||
|
Set(value As Double)
|
||||||
|
m_stroke_width = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New(Id As String, D As String, CanvX As Double, CanvY As Double, DimX As Double, DimY As Double, Fill As String, FillOpacity As Double, Stroke As String, StrokeOpacity As Double)
|
||||||
|
m_id = Id
|
||||||
|
m_d = D
|
||||||
|
m_CanvX = CanvX
|
||||||
|
m_CanvY = CanvY
|
||||||
|
m_DimX = DimX
|
||||||
|
m_DimY = DimY
|
||||||
|
m_fill = Fill
|
||||||
|
m_fill_opacity = FillOpacity
|
||||||
|
m_stroke = Stroke
|
||||||
|
m_stroke_opacity = StrokeOpacity
|
||||||
|
LoadPath()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub LoadPath()
|
||||||
|
' Carico la geometria
|
||||||
|
m_CurrPath.Data = Geometry.Parse(d)
|
||||||
|
' Carico il colore di sfondo
|
||||||
|
SetBrushFromRGBString(m_fill, m_CurrPath.Fill)
|
||||||
|
' Applico l'opacità della superificie
|
||||||
|
m_CurrPath.Opacity = m_fill_opacity
|
||||||
|
' Calcolo e applico la traslazione e la scalatura
|
||||||
|
Dim myTransformGroup As New TransformGroup()
|
||||||
|
Dim ScaleX As Double = m_CanvX / DimX
|
||||||
|
Dim ScaleY As Double = m_CanvY / DimY
|
||||||
|
Dim OffX As Double = (m_CanvX - Math.Min(ScaleX, ScaleY) * DimX) / 2
|
||||||
|
Dim OffY As Double = (m_CanvY - Math.Min(ScaleX, ScaleY) * DimY) / 2
|
||||||
|
myTransformGroup.Children.Add(New ScaleTransform(Math.Min(ScaleX, ScaleY), Math.Min(ScaleX, ScaleY)))
|
||||||
|
myTransformGroup.Children.Add(New TranslateTransform(OffX, OffY))
|
||||||
|
m_CurrPath.RenderTransform = myTransformGroup
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub SetBrushFromRGBString(sFill As String, ByRef brFill As Brush)
|
||||||
|
If String.IsNullOrEmpty(sFill) Then
|
||||||
|
brFill = Brushes.DarkRed
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Dim s1 As String = sFill
|
||||||
|
If s1.Contains("rgb") Then
|
||||||
|
s1 = s1.Replace("rgb(", "")
|
||||||
|
s1 = s1.Replace(")", "")
|
||||||
|
Dim s2 As String = ""
|
||||||
|
For Each s As String In s1.Split(",")
|
||||||
|
s2 &= CInt(s).ToString("x2")
|
||||||
|
Next
|
||||||
|
brFill = New BrushConverter().ConvertFrom("#" & s2)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Module XMLReader
|
||||||
|
|
||||||
|
Public Sub ReadMyXML(FilePath As String, Canv As MyCanvas)
|
||||||
|
'Create the XML Reader
|
||||||
|
Dim m_xmlr As XmlTextReader = New XmlTextReader(FilePath)
|
||||||
|
'Disable whitespace so that you don't have to read over whitespaces
|
||||||
|
m_xmlr.WhitespaceHandling = WhitespaceHandling.None
|
||||||
|
' Leggo la prima riga: '?xml' tag
|
||||||
|
m_xmlr.Read()
|
||||||
|
' Passo a leggere la successiva: 'svg' tag
|
||||||
|
m_xmlr.Read()
|
||||||
|
' Leggo gli attributi di questo tag (dimensioni)
|
||||||
|
Dim ViewBoxDim = m_xmlr.GetAttribute("viewBox")
|
||||||
|
Canv.ViewBoxDim = ViewBoxDim
|
||||||
|
' Elaboro i dati per avere la scalatura del disegno
|
||||||
|
Dim DimViewBox As String() = ViewBoxDim.ToString.Split(" ")
|
||||||
|
Dim DimX As Integer = Math.Abs(CInt(DimViewBox(2))) + Math.Abs(CInt(DimViewBox(0)))
|
||||||
|
Dim DimY As Integer = Math.Abs(CInt(DimViewBox(3))) + Math.Abs(CInt(DimViewBox(1)))
|
||||||
|
|
||||||
|
' Leggo in loop i tag: 'path'
|
||||||
|
While Not m_xmlr.EOF
|
||||||
|
m_xmlr.Read()
|
||||||
|
If Not m_xmlr.IsStartElement() Then
|
||||||
|
Continue While
|
||||||
|
End If
|
||||||
|
' recupero il valore dell'attributo 'id'
|
||||||
|
Dim idAttribute = m_xmlr.GetAttribute("id")
|
||||||
|
' recupero il valore dell'attributo 'd'
|
||||||
|
Dim dAttribute = m_xmlr.GetAttribute("d")
|
||||||
|
' recupero il valore dell'attributo 'fill'
|
||||||
|
Dim fillAttribute = m_xmlr.GetAttribute("fill")
|
||||||
|
' recupero il valore dell'attributo 'fill-opacity'
|
||||||
|
Dim fillOpacityAttribute = m_xmlr.GetAttribute("fill-opacity")
|
||||||
|
' recupero il valore dell'attributo 'stroke'
|
||||||
|
Dim strokeAttribute = m_xmlr.GetAttribute("stroke")
|
||||||
|
' recupero il valore dell'attributo 'stroke-opacity'
|
||||||
|
Dim strokeOpacityAttribute = m_xmlr.GetAttribute("stroke-opacity")
|
||||||
|
' recupero il valore dell'attributo 'stroke - Width'
|
||||||
|
Dim strokeWidthAttribute = m_xmlr.GetAttribute("stroke-width")
|
||||||
|
' carico l'elemento in lista solo se esiste un'immagine
|
||||||
|
If Not String.IsNullOrEmpty(idAttribute) And Not String.IsNullOrEmpty(dAttribute) Then
|
||||||
|
Dim fillOpacity As Double = 1 ' CDbl(fillOpacityAttribute)
|
||||||
|
StringToDouble(fillOpacityAttribute, fillOpacity)
|
||||||
|
Dim strokeOpacity As Double = 1 ' CDbl(strokeOpacityAttribute)
|
||||||
|
StringToDouble(strokeOpacityAttribute, strokeOpacity)
|
||||||
|
Canv.ListPath.Add(New MyPath(idAttribute, dAttribute, Canv.CurrCanvas.Width, Canv.CurrCanvas.Height, DimX, DimY, fillAttribute, fillOpacity, strokeAttribute, strokeOpacity))
|
||||||
|
End If
|
||||||
|
|
||||||
|
End While
|
||||||
|
' Libero il file dalla lettura
|
||||||
|
m_xmlr.Close()
|
||||||
|
' popolo la canvas con le Ptah che ho caricato
|
||||||
|
Canv.LoadCanvas()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub WriteMyXML(FilePath As String, Canv As MyCanvas)
|
||||||
|
|
||||||
|
Dim _namespaceDefault As String = "http://www.w3.org/2000/svg"
|
||||||
|
|
||||||
|
Dim doc As New Xml.XmlDocument
|
||||||
|
|
||||||
|
Dim elm As System.Xml.XmlNode
|
||||||
|
Dim elmSub As System.Xml.XmlNode
|
||||||
|
Dim elmMain As Xml.XmlNode
|
||||||
|
|
||||||
|
doc = New Xml.XmlDocument
|
||||||
|
|
||||||
|
elmMain = doc.CreateElement("svg")
|
||||||
|
elmSub = elmMain.Attributes.Append(doc.CreateAttribute("viewBox"))
|
||||||
|
elmSub.Value = Canv.ViewBoxDim
|
||||||
|
elmSub = elmMain.Attributes.Append(doc.CreateAttribute("xmlns"))
|
||||||
|
elmSub.Value = _namespaceDefault
|
||||||
|
|
||||||
|
For Each itemPath As MyPath In Canv.ListPath
|
||||||
|
elm = elmMain.AppendChild(doc.CreateElement("path"))
|
||||||
|
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("id"))
|
||||||
|
elmSub.Value = itemPath.id
|
||||||
|
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("d"))
|
||||||
|
elmSub.Value = itemPath.d
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(itemPath.fill) Then
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("fill"))
|
||||||
|
elmSub.Value = itemPath.fill
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(itemPath.fill_opacity) Then
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("fill-opacity"))
|
||||||
|
elmSub.Value = itemPath.fill_opacity.ToString(CultureInfo.InvariantCulture)
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(itemPath.stroke) Then
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("stroke"))
|
||||||
|
elmSub.Value = itemPath.stroke
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(itemPath.stroke_opacity) Then
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("stroke-opacity"))
|
||||||
|
elmSub.Value = itemPath.stroke_opacity.ToString(CultureInfo.InvariantCulture)
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(itemPath.stroke_width) Then
|
||||||
|
elmSub = elm.Attributes.Append(doc.CreateAttribute("stroke-width"))
|
||||||
|
elmSub.Value = itemPath.stroke_width.ToString(CultureInfo.InvariantCulture)
|
||||||
|
End If
|
||||||
|
|
||||||
|
Next
|
||||||
|
|
||||||
|
doc.AppendChild(doc.CreateXmlDeclaration("1.0", "UTF-8", ""))
|
||||||
|
doc.AppendChild(elmMain)
|
||||||
|
doc.Save(FilePath)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Module
|
||||||
|
|
||||||
|
#End Region ' Elementi per la gestione SVG
|
||||||
+20
-1
@@ -117,7 +117,7 @@ Public Module SplitAuto
|
|||||||
End If
|
End If
|
||||||
' verifico se trasformabile in un taglio di separazione (almeno da un lato)
|
' verifico se trasformabile in un taglio di separazione (almeno da un lato)
|
||||||
If (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
|
If (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
|
||||||
Mach.m_sLay = NAME_OUTLOOP And Mach.m_nInterf = FMI_TYPE.NONE Then
|
Mach.m_sLay = NAME_OUTLOOP And ( Mach.m_nInterf And FMI_TYPE.RM) = 0 Then
|
||||||
Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
|
Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
|
||||||
Dim bIn As Boolean = False
|
Dim bIn As Boolean = False
|
||||||
Dim bOut As Boolean = False
|
Dim bOut As Boolean = False
|
||||||
@@ -129,6 +129,25 @@ Public Module SplitAuto
|
|||||||
If nRes = 0 Then
|
If nRes = 0 Then
|
||||||
EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
|
EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
ElseIf (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
|
||||||
|
Mach.m_sLay = NAME_OUTLOOP And
|
||||||
|
(Mach.m_nInterf = FMI_TYPE.LI Or Mach.m_nInterf = FMI_TYPE.LO Or Mach.m_nInterf = FMI_TYPE.RM) Then
|
||||||
|
Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
|
||||||
|
Dim bIn As Boolean = False
|
||||||
|
Dim bOut As Boolean = False
|
||||||
|
CanExtendSides(Mach, bIn, bOut)
|
||||||
|
' And (nRes And CAR_RES.LI_OK) <> 0 : da aggiungere
|
||||||
|
Mach.m_bCanStartAll = (dStartAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
|
||||||
|
Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine And bIn And
|
||||||
|
Mach.m_nInterf <> FMI_TYPE.LI
|
||||||
|
' And (nRes And CAR_RES.LO_OK) <> 0 : da aggiungere come sopra
|
||||||
|
Mach.m_bCanEndAll = (dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
|
||||||
|
Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine And bOut And
|
||||||
|
Mach.m_nInterf <> FMI_TYPE.LO
|
||||||
|
If nRes = 0 Then
|
||||||
|
EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
' se trasformabile in taglio di separazione, verifico se lo è
|
' se trasformabile in taglio di separazione, verifico se lo è
|
||||||
If Mach.m_bCanStartAll Or Mach.m_bCanEndAll Then
|
If Mach.m_bCanStartAll Or Mach.m_bCanEndAll Then
|
||||||
|
|||||||
@@ -100,8 +100,14 @@
|
|||||||
<Button Name="MoveDownBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowIconButton}">
|
<Button Name="MoveDownBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||||
<Image Source="{DynamicResource DownArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
<Image Source="{DynamicResource DownArrowImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
<ToggleButton Name="LayNbArrTgBtn" Grid.Column="3" Style="{DynamicResource OmagCut_YellowIconToggleButton}"
|
||||||
|
Height="25" Width="25">
|
||||||
|
<Image Name="LayNbArrImg"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center" Stretch="Uniform"/>
|
||||||
|
</ToggleButton>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Grid Grid.Row="3">
|
<Grid Grid.Row="3">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
Imports System.Collections.ObjectModel
|
Imports System.Collections.ObjectModel
|
||||||
Imports System.ComponentModel
|
Imports System.ComponentModel
|
||||||
|
Imports System.Drawing
|
||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
|
|
||||||
Public Class SplitPageUC
|
Public Class SplitPageUC
|
||||||
@@ -8,6 +9,9 @@ Public Class SplitPageUC
|
|||||||
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||||
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
|
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
|
||||||
|
|
||||||
|
' Creazione converter da String a ImageSource
|
||||||
|
Private ImageConverter As New ImageSourceConverter
|
||||||
|
|
||||||
' Flag di pagina attiva
|
' Flag di pagina attiva
|
||||||
Private m_bActive As Boolean = False
|
Private m_bActive As Boolean = False
|
||||||
' Tipo movimento dei grezzi (manuale o con testa ventosa)
|
' Tipo movimento dei grezzi (manuale o con testa ventosa)
|
||||||
@@ -183,6 +187,9 @@ Public Class SplitPageUC
|
|||||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
' leggo lo stato del bottone per la visualizzazione delle etichette
|
||||||
|
LayNbArrTgBtn.IsChecked = (GetPrivateProfileInt(S_GENERAL, K_SHOWNBARROW, 1, m_MainWindow.GetIniFile()) <> 0)
|
||||||
|
SetLayNbArrTgBtn_Click()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' preparo la lista delle lavorazioni da mostrare in interfaccia
|
' preparo la lista delle lavorazioni da mostrare in interfaccia
|
||||||
@@ -571,6 +578,11 @@ Public Class SplitPageUC
|
|||||||
m_nDragInd = -1
|
m_nDragInd = -1
|
||||||
m_nDragType = 0
|
m_nDragType = 0
|
||||||
m_nSelected = GDB_ID.NULL
|
m_nSelected = GDB_ID.NULL
|
||||||
|
If Not IsNothing(MachiningLsBx.SelectedItem) Then
|
||||||
|
MarkMachining(MachiningLsBx.SelectedItem.Ind, False)
|
||||||
|
EgtDraw()
|
||||||
|
End If
|
||||||
|
MachiningLsBx.SelectedIndex = -1
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -700,6 +712,11 @@ Public Class SplitPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub MachiningLsBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MachiningLsBx.SelectionChanged
|
Private Sub MachiningLsBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MachiningLsBx.SelectionChanged
|
||||||
|
' se non attiva la modifica allora esco
|
||||||
|
If m_bShow Then
|
||||||
|
MachiningLsBx.SelectedIndex = -1
|
||||||
|
Return
|
||||||
|
End If
|
||||||
If MachiningLsBx.SelectedItems.Count = 0 Then Return
|
If MachiningLsBx.SelectedItems.Count = 0 Then Return
|
||||||
If MachiningLsBx.SelectedItems.Count = 1 Then m_bAreHomogeneous = True
|
If MachiningLsBx.SelectedItems.Count = 1 Then m_bAreHomogeneous = True
|
||||||
' creo lista ordinata dei selezionati
|
' creo lista ordinata dei selezionati
|
||||||
@@ -741,6 +758,8 @@ Public Class SplitPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub MachiningLsBx_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles MachiningLsBx.MouseDoubleClick
|
Private Sub MachiningLsBx_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles MachiningLsBx.MouseDoubleClick
|
||||||
|
' se disabilitata la modifica allora esco
|
||||||
|
If m_bShow Then Return
|
||||||
If m_IsCtrlKeyDown Or m_IsShiftKeyDown Then Return
|
If m_IsCtrlKeyDown Or m_IsShiftKeyDown Then Return
|
||||||
OnOffCut()
|
OnOffCut()
|
||||||
End Sub
|
End Sub
|
||||||
@@ -753,6 +772,25 @@ Public Class SplitPageUC
|
|||||||
MoveItem(1)
|
MoveItem(1)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub LayNbArrTgBtn_Click() Handles LayNbArrTgBtn.Click
|
||||||
|
SetLayNbArrTgBtn_Click()
|
||||||
|
WritePrivateProfileString(S_GENERAL, K_SHOWNBARROW, If(LayNbArrTgBtn.IsChecked, "1", "0"), m_MainWindow.GetIniFile())
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub SetLayNbArrTgBtn_Click()
|
||||||
|
If LayNbArrTgBtn.IsChecked Then
|
||||||
|
StatusOffNumbArrow(GDB_ST.ON_)
|
||||||
|
LayNbArrTgBtn.ToolTip = "Hide"
|
||||||
|
Dim Img As ImageSource = ImageConverter.ConvertFromString("pack://application:,,,/Resources/NewIcons/LightArrowOn.png")
|
||||||
|
LayNbArrImg.Source = Img
|
||||||
|
Else
|
||||||
|
StatusOffNumbArrow(GDB_ST.OFF)
|
||||||
|
LayNbArrTgBtn.ToolTip = "Show"
|
||||||
|
Dim Img As ImageSource = ImageConverter.ConvertFromString("pack://application:,,,/Resources/NewIcons/LightArrowOff.png")
|
||||||
|
LayNbArrImg.Source = Img
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub MoveItem(direction As Integer)
|
Private Sub MoveItem(direction As Integer)
|
||||||
' Checking selected item
|
' Checking selected item
|
||||||
If m_CurrFirstInd = -1 OrElse MachiningLsBx.SelectedIndex < 0 Then
|
If m_CurrFirstInd = -1 OrElse MachiningLsBx.SelectedIndex < 0 Then
|
||||||
@@ -1946,22 +1984,22 @@ Public Class SplitPageUC
|
|||||||
NumberDirectionMachining(nI)
|
NumberDirectionMachining(nI)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
' -------------------- Recupero le lavorazioni indicate come attive --------------------
|
' -------------------- Recupero le lavorazioni indicate come attive -- INIZIO --------------------
|
||||||
Dim ActiveMachLst As New List(Of Integer)
|
Dim ActiveMachLst As New List(Of Integer)
|
||||||
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
|
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
|
||||||
ActiveMachLst.Add(ItemSplitMach.Ind)
|
If ItemSplitMach.bIsActive Then ActiveMachLst.Add(ItemSplitMach.Ind)
|
||||||
Next
|
Next
|
||||||
' -------------------- Recupero le lavorazioni indicate come attive --------------------
|
' -------------------- Recupero le lavorazioni indicate come attive -- FINE --------------------
|
||||||
|
|
||||||
' Preparo la lista degli Item
|
' Preparo la lista degli Item
|
||||||
ShowMachiningList()
|
ShowMachiningList()
|
||||||
|
|
||||||
' -------------------- Riattivo le lavorazioni precedenti --------------------
|
' -------------------- Riattivo le lavorazioni precedenti -- INIZIO --------------------
|
||||||
|
|
||||||
For Each Item As SplitMach In m_MachiningList
|
For Each Item As SplitMach In m_MachiningList
|
||||||
|
' spengo tutte le lavorazioni disponibili
|
||||||
EgtSetInfo(Item.m_nId, INFO_MCH_USER_OFF, True)
|
EgtSetInfo(Item.m_nId, INFO_MCH_USER_OFF, True)
|
||||||
Next
|
Next
|
||||||
|
' riattivo solo quelle indicate come attive
|
||||||
For nIndex As Integer = 0 To ActiveMachLst.Count - 1
|
For nIndex As Integer = 0 To ActiveMachLst.Count - 1
|
||||||
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
|
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
|
||||||
If ItemSplitMach.Ind = ActiveMachLst(nIndex) Then
|
If ItemSplitMach.Ind = ActiveMachLst(nIndex) Then
|
||||||
@@ -1974,7 +2012,7 @@ Public Class SplitPageUC
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
Next
|
Next
|
||||||
' -------------------- Riattivo le lavorazioni precedenti --------------------
|
' -------------------- Riattivo le lavorazioni precedenti -- FINE --------------------
|
||||||
|
|
||||||
' Aggiorno visualizzazione
|
' Aggiorno visualizzazione
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
@@ -2380,6 +2418,11 @@ Public Class SplitPageUC
|
|||||||
' Aggiungo a numero info con identificativo della lavorazione e viceversa
|
' Aggiungo a numero info con identificativo della lavorazione e viceversa
|
||||||
EgtSetInfo(nNbrId, "MId", m_MachiningList(nI).m_nId)
|
EgtSetInfo(nNbrId, "MId", m_MachiningList(nI).m_nId)
|
||||||
EgtSetInfo(m_MachiningList(nI).m_nId, "NbrId", nNbrId)
|
EgtSetInfo(m_MachiningList(nI).m_nId, "NbrId", nNbrId)
|
||||||
|
If Not LayNbArrTgBtn.IsChecked Then
|
||||||
|
EgtSetStatus(nNbrId, GDB_ST.OFF)
|
||||||
|
Else
|
||||||
|
EgtSetStatus(nNbrId, GDB_ST.ON_)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
' Se taglio con lama, metto la direzione accanto al numero
|
' Se taglio con lama, metto la direzione accanto al numero
|
||||||
If m_MachiningList(nI).m_nType = MCH_OY.SAWING Then
|
If m_MachiningList(nI).m_nType = MCH_OY.SAWING Then
|
||||||
@@ -2391,6 +2434,11 @@ Public Class SplitPageUC
|
|||||||
' Aggiungo a freccia info con identificativo della lavorazione e viceversa
|
' Aggiungo a freccia info con identificativo della lavorazione e viceversa
|
||||||
EgtSetInfo(nArrId, "MId", m_MachiningList(nI).m_nId)
|
EgtSetInfo(nArrId, "MId", m_MachiningList(nI).m_nId)
|
||||||
EgtSetInfo(m_MachiningList(nI).m_nId, "ArrId", nArrId)
|
EgtSetInfo(m_MachiningList(nI).m_nId, "ArrId", nArrId)
|
||||||
|
If Not LayNbArrTgBtn.IsChecked Then
|
||||||
|
EgtSetStatus(nArrId, GDB_ST.OFF)
|
||||||
|
Else
|
||||||
|
EgtSetStatus(nArrId, GDB_ST.ON_)
|
||||||
|
End If
|
||||||
Else
|
Else
|
||||||
m_MachiningList(nI).m_nArrId = GDB_ID.NULL
|
m_MachiningList(nI).m_nArrId = GDB_ID.NULL
|
||||||
End If
|
End If
|
||||||
@@ -2507,6 +2555,27 @@ Public Class SplitPageUC
|
|||||||
EgtResetMark(nNbrId)
|
EgtResetMark(nNbrId)
|
||||||
EgtResetMark(nArrId)
|
EgtResetMark(nArrId)
|
||||||
End If
|
End If
|
||||||
|
If Not LayNbArrTgBtn.IsChecked And Not bMark Then
|
||||||
|
EgtSetStatus(nNbrId, GDB_ST.OFF)
|
||||||
|
EgtSetStatus(nArrId, GDB_ST.OFF)
|
||||||
|
Else
|
||||||
|
EgtSetStatus(nNbrId, GDB_ST.ON_)
|
||||||
|
EgtSetStatus(nArrId, GDB_ST.ON_)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub StatusOffNumbArrow(Status As GDB_ST)
|
||||||
|
For Each Item As SplitMach In m_MachiningList
|
||||||
|
Dim nOperId As Integer = Item.m_nId
|
||||||
|
Dim nNbrId As Integer = Item.m_nNbrId
|
||||||
|
Dim nArrId As Integer = Item.m_nArrId
|
||||||
|
Dim nInd As Integer = m_MachiningList.IndexOf(Item)
|
||||||
|
If nInd >= 0 AndAlso nInd < m_ItemList.Count AndAlso Not m_ItemList(nInd).IsSelected Then
|
||||||
|
EgtSetStatus(nNbrId, Status)
|
||||||
|
EgtSetStatus(nArrId, Status)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ColorNumberArrow(nI As Integer)
|
Private Sub ColorNumberArrow(nI As Integer)
|
||||||
|
|||||||
@@ -157,6 +157,8 @@ Module ConstGen
|
|||||||
' Info per identificazione gruppo pezzi
|
' Info per identificazione gruppo pezzi
|
||||||
Public Const INFO_REFGROUP As String = "RefGroup"
|
Public Const INFO_REFGROUP As String = "RefGroup"
|
||||||
Public Const INFO_COUNTERLY As String = "CounterPz"
|
Public Const INFO_COUNTERLY As String = "CounterPz"
|
||||||
|
Public Const INFO_PARKIND As String = "ParkInd"
|
||||||
|
Public Const INFO_PARKSTATUS As String = "ParkStatus"
|
||||||
|
|
||||||
' Contrassegno di progetto OmagCut
|
' Contrassegno di progetto OmagCut
|
||||||
Public Const NAME_PROJMARK As String = "OmagCut"
|
Public Const NAME_PROJMARK As String = "OmagCut"
|
||||||
|
|||||||
@@ -54,6 +54,9 @@ Module ConstIni
|
|||||||
Public Const K_FRACTIONPATTERN As String = "FractionPattern"
|
Public Const K_FRACTIONPATTERN As String = "FractionPattern"
|
||||||
Public Const K_PRECISION As String = "Precision"
|
Public Const K_PRECISION As String = "Precision"
|
||||||
Public Const K_QUITDRAWPAGE As String = "QuitDrawPage"
|
Public Const K_QUITDRAWPAGE As String = "QuitDrawPage"
|
||||||
|
Public Const K_SHOWNBARROW As String = "ShowNbArrow"
|
||||||
|
Public Const K_SHOWEXPIREASSITANCE As String = "ShowExpireAssistance"
|
||||||
|
Public Const K_ENABLEDXFPARK As String = "EnableDXFPark"
|
||||||
|
|
||||||
Public Const S_LANGUAGES As String = "Languages"
|
Public Const S_LANGUAGES As String = "Languages"
|
||||||
Public Const K_LANGUAGE As String = "Language"
|
Public Const K_LANGUAGE As String = "Language"
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
Public Const K_A10ID As String = "A10Id"
|
Public Const K_A10ID As String = "A10Id"
|
||||||
Public Const K_DELTA_C As String = "DeltaC"
|
Public Const K_DELTA_C As String = "DeltaC"
|
||||||
Public Const K_ININCHES As String = "InInches"
|
Public Const K_ININCHES As String = "InInches"
|
||||||
|
Public Const K_CPOS As String = "CPos"
|
||||||
|
|
||||||
Public Const S_NCSIEMENS As String = "NcSiemens"
|
Public Const S_NCSIEMENS As String = "NcSiemens"
|
||||||
Public Const K_COMM_NAME As String = "CommName"
|
Public Const K_COMM_NAME As String = "CommName"
|
||||||
@@ -182,6 +183,9 @@
|
|||||||
Public Const K_PHOTO_TAB2_OFFSETY As String = "Tab2OffsetY"
|
Public Const K_PHOTO_TAB2_OFFSETY As String = "Tab2OffsetY"
|
||||||
Public Const K_PHOTO_HQ_OFFSETX As String = "HQOffsetX"
|
Public Const K_PHOTO_HQ_OFFSETX As String = "HQOffsetX"
|
||||||
Public Const K_PHOTO_HQ_OFFSETY As String = "HQOffsetY"
|
Public Const K_PHOTO_HQ_OFFSETY As String = "HQOffsetY"
|
||||||
|
Public Const K_CAMERA_DIRECT_CMD As String = "CameraDirectCmd"
|
||||||
|
Public Const K_CAMERA_STATE_VAR As String = "CameraStateVar"
|
||||||
|
Public Const K_ENABELE_GOHOME_FOR_PHOTO As String = "EnableGoHomeForPhoto"
|
||||||
|
|
||||||
Public Const S_TOOLS As String = "Tools"
|
Public Const S_TOOLS As String = "Tools"
|
||||||
Public Const K_DRILLBIT As String = "Drillbit"
|
Public Const K_DRILLBIT As String = "Drillbit"
|
||||||
|
|||||||
@@ -532,8 +532,8 @@ Public Class SawTestUC
|
|||||||
vtPerp.Rotate(Vector3d.Z_AX, +90)
|
vtPerp.Rotate(Vector3d.Z_AX, +90)
|
||||||
Else
|
Else
|
||||||
m_CurrProjPage.ClearMessage()
|
m_CurrProjPage.ClearMessage()
|
||||||
' 91144 = Set machining side: right or left.
|
' 91143 = Set machining side: right or left.
|
||||||
m_CurrProjPage.SetInfoMessage(EgtMsg(91144))
|
m_CurrProjPage.SetInfoMessage(EgtMsg(91143))
|
||||||
End If
|
End If
|
||||||
Dim ptEnd As Point3d = ptStart + vtDir * m_dLen + vtPerp * dThick
|
Dim ptEnd As Point3d = ptStart + vtDir * m_dLen + vtPerp * dThick
|
||||||
Dim dLen2 As Double = m_dLen / 2
|
Dim dLen2 As Double = m_dLen / 2
|
||||||
|
|||||||
@@ -1174,6 +1174,7 @@ Public Class DrawPageUC
|
|||||||
If m_ActiveComponentPage = Pages.CompoDimension And m_bInternalCompo Then Return
|
If m_ActiveComponentPage = Pages.CompoDimension And m_bInternalCompo Then Return
|
||||||
' Se errore esco
|
' Se errore esco
|
||||||
If Not m_bDrawOk Then Return
|
If Not m_bDrawOk Then Return
|
||||||
|
|
||||||
' Nome pezzo
|
' Nome pezzo
|
||||||
Dim sPartName As String = PartNameTxBx.Text
|
Dim sPartName As String = PartNameTxBx.Text
|
||||||
' Leggo numero di pezzi da inserire
|
' Leggo numero di pezzi da inserire
|
||||||
@@ -1205,6 +1206,9 @@ Public Class DrawPageUC
|
|||||||
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_DrawPageUC)
|
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_DrawPageUC)
|
||||||
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
|
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
|
||||||
m_MainWindow.m_ActivePage = If(m_MainWindow.FrameCutBtn.IsChecked, MainWindow.Pages.FrameCut, MainWindow.Pages.CadCut)
|
m_MainWindow.m_ActivePage = If(m_MainWindow.FrameCutBtn.IsChecked, MainWindow.Pages.FrameCut, MainWindow.Pages.CadCut)
|
||||||
|
' Attivo il parcheggio dei pezzi Draw
|
||||||
|
ActivateParkIndZero()
|
||||||
|
|
||||||
Else
|
Else
|
||||||
m_SceneButtons.MeasureBtn.IsChecked = False
|
m_SceneButtons.MeasureBtn.IsChecked = False
|
||||||
DrawPage_Unloaded(sender, e)
|
DrawPage_Unloaded(sender, e)
|
||||||
@@ -1239,6 +1243,24 @@ Public Class DrawPageUC
|
|||||||
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_DrawPageUC)
|
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_DrawPageUC)
|
||||||
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
|
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
|
||||||
m_MainWindow.m_ActivePage = If(m_MainWindow.FrameCutBtn.IsChecked, MainWindow.Pages.FrameCut, MainWindow.Pages.CadCut)
|
m_MainWindow.m_ActivePage = If(m_MainWindow.FrameCutBtn.IsChecked, MainWindow.Pages.FrameCut, MainWindow.Pages.CadCut)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ActivateParkIndZero()
|
||||||
|
' Aggiorno la gestione dei parcheggi: spengo tutti i parcheggi tranne quello dei pezzi disegnati "0"
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd)
|
||||||
|
For Each ItemParkInd As ParkInd In ListParkInd
|
||||||
|
If ItemParkInd.Ind = 0 Then
|
||||||
|
ItemParkInd.Status = GDB_ST.ON_
|
||||||
|
Else
|
||||||
|
ItemParkInd.Status = GDB_ST.OFF
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
' Aggiorno lo stato dei pezzi
|
||||||
|
For Each Item As ParkInd In ListParkInd
|
||||||
|
SelParkIndWD.SetStatusPartInParkInd(Item, False)
|
||||||
|
Next
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub TrfDataBtn_Click(sender As Object, e As RoutedEventArgs) Handles TrfDataBtn.Click
|
Private Sub TrfDataBtn_Click(sender As Object, e As RoutedEventArgs) Handles TrfDataBtn.Click
|
||||||
|
|||||||
+180
-64
@@ -38,6 +38,8 @@ Public Class ImportPageUC
|
|||||||
Private Const FT_TRF As Integer = 51
|
Private Const FT_TRF As Integer = 51
|
||||||
' Costante per formato CUT
|
' Costante per formato CUT
|
||||||
Private Const FT_CUT As Integer = 52
|
Private Const FT_CUT As Integer = 52
|
||||||
|
' Indice del parcheggio corrente
|
||||||
|
Private NewParkInd As Integer = 0
|
||||||
|
|
||||||
' Indentificativo del pezzo selezionato
|
' Indentificativo del pezzo selezionato
|
||||||
Private m_nSelectedPart As Integer = GDB_ID.NULL
|
Private m_nSelectedPart As Integer = GDB_ID.NULL
|
||||||
@@ -82,11 +84,11 @@ Public Class ImportPageUC
|
|||||||
ResetBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 3) 'Reset
|
ResetBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 3) 'Reset
|
||||||
mmBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 4) 'mm
|
mmBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 4) 'mm
|
||||||
inchBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 5) 'inch
|
inchBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 5) 'inch
|
||||||
OrderListBtn.Content = EgtMsg( 90398) 'Dati Csv
|
OrderListBtn.Content = EgtMsg(90398) 'Dati Csv
|
||||||
TopBtn.Content = EgtMsg( 90384) 'Indica Lato Sopra
|
TopBtn.Content = EgtMsg(90384) 'Indica Lato Sopra
|
||||||
PartNumTxBl.Text = EgtMsg(MSG_IMPORTPAGEUC + 15) 'Numero
|
PartNumTxBl.Text = EgtMsg(MSG_IMPORTPAGEUC + 15) 'Numero
|
||||||
SideAngleBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 7) 'Inclina lati
|
SideAngleBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 7) 'Inclina lati
|
||||||
FiloTopBtn.Content = EgtMsg( 90400) 'Filo Top
|
FiloTopBtn.Content = EgtMsg(90400) 'Filo Top
|
||||||
DripCutBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 8) 'Incidi da sotto
|
DripCutBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 8) 'Incidi da sotto
|
||||||
EngraveBtn.Content = "Engrave"
|
EngraveBtn.Content = "Engrave"
|
||||||
DripDrillBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 14) 'Foro da sotto
|
DripDrillBtn.Content = EgtMsg(MSG_IMPORTPAGEUC + 14) 'Foro da sotto
|
||||||
@@ -98,7 +100,6 @@ Public Class ImportPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub ImportPage_Loaded(sender As Object, e As RoutedEventArgs)
|
Private Sub ImportPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||||
|
|
||||||
' abilitazione importazione TRF
|
' abilitazione importazione TRF
|
||||||
m_bEnableTrf = (m_MainWindow.m_PrevActivePage = MainWindow.Pages.CadCut And
|
m_bEnableTrf = (m_MainWindow.m_PrevActivePage = MainWindow.Pages.CadCut And
|
||||||
m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.TRF_IMPORT))
|
m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.TRF_IMPORT))
|
||||||
@@ -160,7 +161,7 @@ Public Class ImportPageUC
|
|||||||
' Verifico esistenza Cad 2d
|
' Verifico esistenza Cad 2d
|
||||||
GetPrivateProfileString(S_CAD2D, K_CAD2D_NAME, "", m_sCad2dName, m_MainWindow.GetIniFile())
|
GetPrivateProfileString(S_CAD2D, K_CAD2D_NAME, "", m_sCad2dName, m_MainWindow.GetIniFile())
|
||||||
GetPrivateProfileString(S_CAD2D, K_CAD2D_EXEPATH, "", m_sCad2dPath, m_MainWindow.GetIniFile())
|
GetPrivateProfileString(S_CAD2D, K_CAD2D_EXEPATH, "", m_sCad2dPath, m_MainWindow.GetIniFile())
|
||||||
Cad2dBtn.IsEnabled = My.Computer.FileSystem.FileExists( m_sCad2dPath)
|
Cad2dBtn.IsEnabled = My.Computer.FileSystem.FileExists(m_sCad2dPath)
|
||||||
|
|
||||||
' Pulisco tutto
|
' Pulisco tutto
|
||||||
ClearView()
|
ClearView()
|
||||||
@@ -179,7 +180,7 @@ Public Class ImportPageUC
|
|||||||
UseClosedCurveBtn.Visibility = Windows.Visibility.Visible
|
UseClosedCurveBtn.Visibility = Windows.Visibility.Visible
|
||||||
ResetBtn.Visibility = Windows.Visibility.Visible
|
ResetBtn.Visibility = Windows.Visibility.Visible
|
||||||
SideAngleBtn.Visibility = Windows.Visibility.Visible
|
SideAngleBtn.Visibility = Windows.Visibility.Visible
|
||||||
OrderListBtn.Visibility = If( m_bEnableOrderList, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
OrderListBtn.Visibility = If(m_bEnableOrderList, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
||||||
TopBtn.Visibility = Windows.Visibility.Visible
|
TopBtn.Visibility = Windows.Visibility.Visible
|
||||||
PartNumberGrd.Visibility = Windows.Visibility.Visible
|
PartNumberGrd.Visibility = Windows.Visibility.Visible
|
||||||
Else
|
Else
|
||||||
@@ -189,7 +190,7 @@ Public Class ImportPageUC
|
|||||||
ResetBtn.Visibility = Windows.Visibility.Hidden
|
ResetBtn.Visibility = Windows.Visibility.Hidden
|
||||||
SideAngleBtn.Visibility = Windows.Visibility.Hidden
|
SideAngleBtn.Visibility = Windows.Visibility.Hidden
|
||||||
OrderListBtn.Visibility = Windows.Visibility.Hidden
|
OrderListBtn.Visibility = Windows.Visibility.Hidden
|
||||||
TopBtn.Visibility = Windows.Visibility.Hidden
|
TopBtn.Visibility = Windows.Visibility.Hidden
|
||||||
PartNumberGrd.Visibility = Windows.Visibility.Hidden
|
PartNumberGrd.Visibility = Windows.Visibility.Hidden
|
||||||
End If
|
End If
|
||||||
mmBtn.IsEnabled = True
|
mmBtn.IsEnabled = True
|
||||||
@@ -206,6 +207,8 @@ Public Class ImportPageUC
|
|||||||
PartNumTxBx.Text = "1"
|
PartNumTxBx.Text = "1"
|
||||||
' disabilito ok
|
' disabilito ok
|
||||||
OkBtn.IsEnabled = False
|
OkBtn.IsEnabled = False
|
||||||
|
' Azzero l'idice di parcheggio
|
||||||
|
NewParkInd = 0
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub LoadGridData()
|
Private Sub LoadGridData()
|
||||||
@@ -456,7 +459,7 @@ Public Class ImportPageUC
|
|||||||
ElseIf DripDrillBtn.IsChecked() Then
|
ElseIf DripDrillBtn.IsChecked() Then
|
||||||
OnMouseDownSceneUnderDrill(e)
|
OnMouseDownSceneUnderDrill(e)
|
||||||
ElseIf FiloTopBtn.IsChecked() Then
|
ElseIf FiloTopBtn.IsChecked() Then
|
||||||
OnMouseDownSceneFiloTop( e)
|
OnMouseDownSceneFiloTop(e)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -586,14 +589,14 @@ Public Class ImportPageUC
|
|||||||
EgtDeselectObj(nId)
|
EgtDeselectObj(nId)
|
||||||
EgtDeselectObj(nLayId)
|
EgtDeselectObj(nLayId)
|
||||||
Dim sLayName As String = ""
|
Dim sLayName As String = ""
|
||||||
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP AndAlso EgtExistsInfo( nLayId, INFO_FILOTOP) Then
|
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP AndAlso EgtExistsInfo(nLayId, INFO_FILOTOP) Then
|
||||||
EgtRemoveInfo( nLayId, INFO_FILOTOP)
|
EgtRemoveInfo(nLayId, INFO_FILOTOP)
|
||||||
EgtRemoveInfo( nLayId, INFO_OFFSET)
|
EgtRemoveInfo(nLayId, INFO_OFFSET)
|
||||||
EgtRemoveInfo( nLayId, INFO_DEPTH)
|
EgtRemoveInfo(nLayId, INFO_DEPTH)
|
||||||
Dim nEntId As Integer = EgtGetFirstInGroup( nLayId)
|
Dim nEntId As Integer = EgtGetFirstInGroup(nLayId)
|
||||||
While nEntId <> GDB_ID.NULL
|
While nEntId <> GDB_ID.NULL
|
||||||
EgtSetColor(nEntId, New Color3d(127, 63, 0))
|
EgtSetColor(nEntId, New Color3d(127, 63, 0))
|
||||||
nEntId = EgtGetNext( nEntId)
|
nEntId = EgtGetNext(nEntId)
|
||||||
End While
|
End While
|
||||||
m_DeselectListHole.Add(nLayId)
|
m_DeselectListHole.Add(nLayId)
|
||||||
m_SelListHole.Remove(nLayId)
|
m_SelListHole.Remove(nLayId)
|
||||||
@@ -602,16 +605,16 @@ Public Class ImportPageUC
|
|||||||
Dim nLayId As Integer = GDB_ID.NULL
|
Dim nLayId As Integer = GDB_ID.NULL
|
||||||
EgtGetInfo(nId, "ID", nLayId)
|
EgtGetInfo(nId, "ID", nLayId)
|
||||||
Dim sLayName As String = ""
|
Dim sLayName As String = ""
|
||||||
If EgtGetName( nLayId, sLayName) AndAlso sLayName = NAME_INLOOP Then
|
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP Then
|
||||||
EgtSelectObj( nId)
|
EgtSelectObj(nId)
|
||||||
EgtSelectObj( nLayId)
|
EgtSelectObj(nLayId)
|
||||||
EgtSetInfo( nLayId, INFO_FILOTOP, 1)
|
EgtSetInfo(nLayId, INFO_FILOTOP, 1)
|
||||||
EgtSetInfo( nLayId, INFO_OFFSET, m_FiloTopUC.FiloTopOffset)
|
EgtSetInfo(nLayId, INFO_OFFSET, m_FiloTopUC.FiloTopOffset)
|
||||||
EgtSetInfo( nLayId, INFO_DEPTH, m_FiloTopUC.FiloTopDepth)
|
EgtSetInfo(nLayId, INFO_DEPTH, m_FiloTopUC.FiloTopDepth)
|
||||||
Dim nEntId As Integer = EgtGetFirstInGroup( nLayId)
|
Dim nEntId As Integer = EgtGetFirstInGroup(nLayId)
|
||||||
While nEntId <> GDB_ID.NULL
|
While nEntId <> GDB_ID.NULL
|
||||||
EgtSetColor(nEntId, New Color3d(255, 255, 255))
|
EgtSetColor(nEntId, New Color3d(255, 255, 255))
|
||||||
nEntId = EgtGetNext( nEntId)
|
nEntId = EgtGetNext(nEntId)
|
||||||
End While
|
End While
|
||||||
m_SelListHole.Add(nLayId)
|
m_SelListHole.Add(nLayId)
|
||||||
m_DeselectListHole.Remove(nLayId)
|
m_DeselectListHole.Remove(nLayId)
|
||||||
@@ -660,7 +663,7 @@ Public Class ImportPageUC
|
|||||||
' Ciclo sulle regioni
|
' Ciclo sulle regioni
|
||||||
Dim EntId As Integer = EgtGetFirstInGroup(RegionId)
|
Dim EntId As Integer = EgtGetFirstInGroup(RegionId)
|
||||||
While EntId <> GDB_ID.NULL
|
While EntId <> GDB_ID.NULL
|
||||||
If EgtGetType( EntId) = GDB_TY.SRF_FRGN Then EgtSetColor(EntId, InsertColor)
|
If EgtGetType(EntId) = GDB_TY.SRF_FRGN Then EgtSetColor(EntId, InsertColor)
|
||||||
EntId = EgtGetNext(EntId)
|
EntId = EgtGetNext(EntId)
|
||||||
End While
|
End While
|
||||||
RegionId = EgtGetNextName(PartId, NAME_REGION)
|
RegionId = EgtGetNextName(PartId, NAME_REGION)
|
||||||
@@ -856,20 +859,38 @@ Public Class ImportPageUC
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OrderListBtn_Click(sender As Object, e As RoutedEventArgs) Handles OrderListBtn.Click
|
Private Sub OrderListBtn_Click(sender As Object, e As RoutedEventArgs) Handles OrderListBtn.Click
|
||||||
Dim DlgOrderList As New CompoCsvData( m_MainWindow)
|
Dim DlgOrderList As New CompoCsvData(m_MainWindow)
|
||||||
DlgOrderList.SetData( m_sOrder, m_sList)
|
DlgOrderList.SetData(m_sOrder, m_sList)
|
||||||
If DlgOrderList.ShowDialog() Then
|
If DlgOrderList.ShowDialog() Then
|
||||||
DlgOrderList.GetData( m_sOrder, m_sList)
|
DlgOrderList.GetData(m_sOrder, m_sList)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
||||||
m_SceneButtons.MeasureBtn.IsChecked = False
|
m_SceneButtons.MeasureBtn.IsChecked = False
|
||||||
|
' Genero l'immagine solo se è abilitata la modalità
|
||||||
|
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then Print()
|
||||||
' Se import per pezzi piatti
|
' Se import per pezzi piatti
|
||||||
If m_MainWindow.m_PrevActivePage = MainWindow.Pages.CadCut Then
|
If m_MainWindow.m_PrevActivePage = MainWindow.Pages.CadCut Then
|
||||||
' Eseguo importazione pezzi piatti
|
' Eseguo importazione pezzi piatti
|
||||||
LoadFlatParts()
|
LoadFlatParts()
|
||||||
' altrimenti import per cornici
|
|
||||||
|
' Aggiorno la gestione dei parcheggi: spengo tutti i parcheggi tranne quello indicato
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd)
|
||||||
|
For Each ItemParkInd As ParkInd In ListParkInd
|
||||||
|
If ItemParkInd.Ind = NewParkInd Then
|
||||||
|
ItemParkInd.Status = GDB_ST.ON_
|
||||||
|
Else
|
||||||
|
ItemParkInd.Status = GDB_ST.OFF
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
' Aggiorno lo stato dei pezzi
|
||||||
|
For Each Item As ParkInd In ListParkInd
|
||||||
|
SelParkIndWD.SetStatusPartInParkInd(Item, False)
|
||||||
|
Next
|
||||||
|
|
||||||
|
' altrimenti import per cornici
|
||||||
Else
|
Else
|
||||||
LoadFrame()
|
LoadFrame()
|
||||||
End If
|
End If
|
||||||
@@ -879,6 +900,80 @@ Public Class ImportPageUC
|
|||||||
m_MainWindow.m_ActivePage = m_MainWindow.m_PrevActivePage
|
m_MainWindow.m_ActivePage = m_MainWindow.m_PrevActivePage
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
' Creo una immagine del progetto da importare salvato nel percorso di progetto "..\(#ProjInd)_ParkInd_(#ParkInd).png"
|
||||||
|
Public Sub Print()
|
||||||
|
' recupero la lista degli indici di parcheggio
|
||||||
|
NewParkInd = SelParkIndWD.NewParkInd()
|
||||||
|
|
||||||
|
Dim SM_Select As SM = SM.SHADING
|
||||||
|
' SM_Select = SM.HIDDENLINE
|
||||||
|
' SM_Select = SM.WIREFRAME
|
||||||
|
Dim nProj As Integer = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProject()
|
||||||
|
Dim sPath As String = SelParkIndWD.GetPathCurrProj() & NewParkInd.ToString & ".png"
|
||||||
|
' Recupero le dimensioni dell'area di stampa
|
||||||
|
Dim dW As Integer = 120
|
||||||
|
Dim dH As Integer = 120
|
||||||
|
|
||||||
|
If Not MainWindow.m_bShowSVGParkInd Then
|
||||||
|
Try
|
||||||
|
' Prendo l'immagine corrente per la stampa
|
||||||
|
Dim colBackTopColor As Color3d = GetBackTopColor()
|
||||||
|
Dim colBackBottomColor As Color3d = GetBackBottomColor()
|
||||||
|
' Recupero le dimensioni correnti della pagina di disegno
|
||||||
|
Dim nImgW As Integer = m_MainWindow.m_CurrentProjectPageUC.ActualWidth()
|
||||||
|
Dim nImgH As Integer = m_MainWindow.m_CurrentProjectPageUC.ActualHeight()
|
||||||
|
If Not EgtGetImage(SM_Select, colBackTopColor, colBackBottomColor, nImgW, nImgH, sPath) Then
|
||||||
|
' Error in creating the print image
|
||||||
|
EgtOutLog(EgtMsg(50181))
|
||||||
|
EgtSetLineAttribs(1)
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
EgtSetLineAttribs(1)
|
||||||
|
'Metodo complesso di stampa che permette di rilasciare il file :
|
||||||
|
'carico la bitmap e la metto in uno stream in memoria
|
||||||
|
Dim stream As System.IO.Stream = New System.IO.MemoryStream()
|
||||||
|
Dim bitmap As System.Drawing.Bitmap = New System.Drawing.Bitmap(sPath)
|
||||||
|
bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png)
|
||||||
|
bitmap.Dispose()
|
||||||
|
' la sposto in una BitmapImage
|
||||||
|
Dim bitImage As New System.Windows.Media.Imaging.BitmapImage()
|
||||||
|
bitImage.BeginInit()
|
||||||
|
bitImage.StreamSource = stream
|
||||||
|
bitImage.EndInit()
|
||||||
|
' la sposto in un Visual Control
|
||||||
|
Dim tmpImg As New Image
|
||||||
|
tmpImg.BeginInit()
|
||||||
|
tmpImg.Source = bitImage
|
||||||
|
tmpImg.Stretch = Stretch.Uniform
|
||||||
|
tmpImg.EndInit()
|
||||||
|
' eseguo la stampa
|
||||||
|
Catch
|
||||||
|
' Rrror in executing print
|
||||||
|
EgtOutLog(EgtMsg(50182))
|
||||||
|
End Try
|
||||||
|
Else
|
||||||
|
' Assegno dei nomi ai pezzi (Da controllare bene se funzione sempre)...riassegno i nomi dopo?
|
||||||
|
Dim nIdPart As Integer = EgtGetFirstPart()
|
||||||
|
Dim nIndex As Integer = 0
|
||||||
|
While nIdPart <> GDB_ID.NULL
|
||||||
|
' recupero il primo layer del part
|
||||||
|
Dim nIdLay As Integer = EgtGetFirstLayer(nIdPart)
|
||||||
|
While nIdLay <> GDB_ID.NULL
|
||||||
|
Dim nIdEnt As Integer = EgtGetFirstInGroup(nIdLay)
|
||||||
|
While nIdEnt <> GDB_ID.NULL
|
||||||
|
EgtSetName(nIdEnt, nIndex.ToString)
|
||||||
|
nIdEnt = EgtGetNext(nIdEnt)
|
||||||
|
nIndex = nIndex + 1
|
||||||
|
End While
|
||||||
|
nIdLay = EgtGetNextLayer(nIdLay)
|
||||||
|
End While
|
||||||
|
nIdPart = EgtGetNextPart(nIdPart)
|
||||||
|
End While
|
||||||
|
EgtExportSvg(GDB_ID.ROOT, SelParkIndWD.GetPathCurrProj() & NewParkInd.ToString & ".svg")
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub LoadFlatParts()
|
Private Sub LoadFlatParts()
|
||||||
' Cancello regioni di selezione dai pezzi
|
' Cancello regioni di selezione dai pezzi
|
||||||
Dim PartId As Integer = EgtGetFirstPart()
|
Dim PartId As Integer = EgtGetFirstPart()
|
||||||
@@ -951,21 +1046,36 @@ Public Class ImportPageUC
|
|||||||
If My.Computer.FileSystem.FileExists(sTmpFile) Then
|
If My.Computer.FileSystem.FileExists(sTmpFile) Then
|
||||||
My.Computer.FileSystem.DeleteFile(sTmpFile)
|
My.Computer.FileSystem.DeleteFile(sTmpFile)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Calcolo l'area dei pezzi inseriti
|
' Calcolo l'area dei pezzi inseriti
|
||||||
Dim dNewArea As Double = 0
|
Dim dNewArea As Double = 0
|
||||||
Dim nId As Integer = nFirstId
|
Dim nId As Integer = nFirstId
|
||||||
While nId <> GDB_ID.NULL
|
While nId <> GDB_ID.NULL
|
||||||
|
' Definisco l'indice di parcheggio asssganto al pezzo
|
||||||
|
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
|
||||||
|
EgtSetInfo(nId, INFO_PARKIND, NewParkInd.ToString)
|
||||||
|
' Imposto lo stato
|
||||||
|
EgtSetStatus(nId, GDB_ST.ON_)
|
||||||
|
' Salvo lo stato (per gestire la navigazione)
|
||||||
|
EgtSetInfo(nId, INFO_PARKSTATUS, GDB_ST.ON_)
|
||||||
|
End If
|
||||||
dNewArea += GeomCalc.GetPartArea(nId)
|
dNewArea += GeomCalc.GetPartArea(nId)
|
||||||
' Passo al pezzo successivo
|
' Passo al pezzo successivo
|
||||||
nId = EgtGetNextPart(nId)
|
nId = EgtGetNextPart(nId)
|
||||||
End While
|
End While
|
||||||
' Nascondo tutti i pezzi inseriti (per evitare interferenze con pezzi in fase di parcheggio)
|
' Nascondo tutti i pezzi inseriti (per evitare interferenze con pezzi in fase di parcheggio)
|
||||||
nId = nFirstId
|
nId = nFirstId
|
||||||
|
Dim GlobBBox As New BBox3d
|
||||||
While nId <> GDB_ID.NULL
|
While nId <> GDB_ID.NULL
|
||||||
|
Dim bboxTemp As New BBox3d
|
||||||
|
EgtGetBBox(nId, 0, bboxTemp)
|
||||||
|
GlobBBox.Add(bboxTemp)
|
||||||
EgtSetStatus(nId, GDB_ST.OFF)
|
EgtSetStatus(nId, GDB_ST.OFF)
|
||||||
' Passo al pezzo successivo
|
' Passo al pezzo successivo
|
||||||
nId = EgtGetNextPart(nId)
|
nId = EgtGetNextPart(nId)
|
||||||
End While
|
End While
|
||||||
|
Dim x As Double = GlobBBox.DimX
|
||||||
|
Dim Y As Double = GlobBBox.DimY
|
||||||
|
|
||||||
' Ciclo sui pezzi inseriti
|
' Ciclo sui pezzi inseriti
|
||||||
nId = nFirstId
|
nId = nFirstId
|
||||||
@@ -1002,7 +1112,12 @@ Public Class ImportPageUC
|
|||||||
' Imposto path di provenienza
|
' Imposto path di provenienza
|
||||||
EgtSetInfo(nId, INFO_SOU_PATH, IO.Path.Combine(m_sCurrDir, m_sCurrFile))
|
EgtSetInfo(nId, INFO_SOU_PATH, IO.Path.Combine(m_sCurrDir, m_sCurrFile))
|
||||||
' Inserisco in parcheggio
|
' Inserisco in parcheggio
|
||||||
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId, True)
|
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
|
||||||
|
' Mantengo la posizione relativa tra i pezzi
|
||||||
|
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePartDXF(nId, x, Y)
|
||||||
|
Else
|
||||||
|
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId, True)
|
||||||
|
End If
|
||||||
' Recupero Id di pezzo successivo
|
' Recupero Id di pezzo successivo
|
||||||
Dim nNextId As Integer = EgtGetNextPart(nId)
|
Dim nNextId As Integer = EgtGetNextPart(nId)
|
||||||
' Se richiesto posizionamento diretto, lo eseguo
|
' Se richiesto posizionamento diretto, lo eseguo
|
||||||
@@ -1425,8 +1540,9 @@ Public Class ImportPageUC
|
|||||||
If nType = GDB_TY.CRV_LINE Or nType = GDB_TY.CRV_ARC Or nType = GDB_TY.CRV_COMPO Then
|
If nType = GDB_TY.CRV_LINE Or nType = GDB_TY.CRV_ARC Or nType = GDB_TY.CRV_COMPO Then
|
||||||
vCrvId.Add(nCrvId)
|
vCrvId.Add(nCrvId)
|
||||||
End If
|
End If
|
||||||
ElseIf DripDrillBtn.IsChecked
|
ElseIf DripDrillBtn.IsChecked Then
|
||||||
if nType = GDB_TY.CRV_ARC
|
|
||||||
|
If nType = GDB_TY.CRV_ARC Then
|
||||||
vCrvId.Add(nCrvId)
|
vCrvId.Add(nCrvId)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -1452,11 +1568,11 @@ Public Class ImportPageUC
|
|||||||
|
|
||||||
Private Sub Cad2dBtn_Click(sender As Object, e As RoutedEventArgs) Handles Cad2dBtn.Click
|
Private Sub Cad2dBtn_Click(sender As Object, e As RoutedEventArgs) Handles Cad2dBtn.Click
|
||||||
|
|
||||||
Dim ProcsCad2d As Process() = Process.GetProcessesByName( m_sCad2dName)
|
Dim ProcsCad2d As Process() = Process.GetProcessesByName(m_sCad2dName)
|
||||||
If ProcsCad2d.Length() > 0 Then
|
If ProcsCad2d.Length() > 0 Then
|
||||||
ShowWindow( ProcsCad2d(0).MainWindowHandle, 3)
|
ShowWindow(ProcsCad2d(0).MainWindowHandle, 3)
|
||||||
Else
|
Else
|
||||||
Process.Start( m_sCad2dPath)
|
Process.Start(m_sCad2dPath)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
@@ -1465,42 +1581,42 @@ End Class
|
|||||||
|
|
||||||
Public Class IconListBoxItem
|
Public Class IconListBoxItem
|
||||||
|
|
||||||
Private m_iPictureID As Integer
|
Private m_iPictureID As Integer
|
||||||
Private m_sName As String
|
Private m_sName As String
|
||||||
|
|
||||||
Public Property PictureID() As Integer
|
Public Property PictureID() As Integer
|
||||||
Get
|
Get
|
||||||
Return m_iPictureID
|
Return m_iPictureID
|
||||||
End Get
|
End Get
|
||||||
Set(value As Integer)
|
Set(value As Integer)
|
||||||
m_iPictureID = value
|
m_iPictureID = value
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Public Property Name() As String
|
Public Property Name() As String
|
||||||
Get
|
Get
|
||||||
Return m_sName
|
Return m_sName
|
||||||
End Get
|
End Get
|
||||||
Set(value As String)
|
Set(value As String)
|
||||||
m_sName = value
|
m_sName = value
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Public ReadOnly Property PictureString() As String
|
Public ReadOnly Property PictureString() As String
|
||||||
Get
|
Get
|
||||||
Return "/Resources/ImportPageListBoxImages/" + PictureID.ToString() + ".png"
|
Return "/Resources/ImportPageListBoxImages/" + PictureID.ToString() + ".png"
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Sub New()
|
Sub New()
|
||||||
Me.Name = String.Empty
|
Me.Name = String.Empty
|
||||||
Me.PictureID = 0
|
Me.PictureID = 0
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub New(Name As String, PictureID As Integer)
|
Sub New(Name As String, PictureID As Integer)
|
||||||
Me.Name = Name
|
Me.Name = Name
|
||||||
Me.PictureID = PictureID
|
Me.PictureID = PictureID
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
+4
-4
@@ -3,15 +3,15 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
||||||
FontFamily="{DynamicResource OmagCut_Font}"
|
FontFamily="{DynamicResource OmagCut_Font}"
|
||||||
Title="OpenFile" Height="500.6" Width="426.6" WindowStyle="None"
|
Title="OpenFile" Height="587.4" Width="500.6" WindowStyle="None"
|
||||||
ResizeMode="NoResize" ShowInTaskbar="False" AllowsTransparency="True"
|
ResizeMode="NoResize" ShowInTaskbar="False" AllowsTransparency="True"
|
||||||
Background="Transparent">
|
Background="Transparent">
|
||||||
<Border Style="{DynamicResource OmagCut_Border}">
|
<Border Style="{DynamicResource OmagCut_Border}">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="0.5*"/>
|
<ColumnDefinition Width="0.2*"/>
|
||||||
<ColumnDefinition Width="4*"/>
|
<ColumnDefinition Width="4*"/>
|
||||||
<ColumnDefinition Width="0.5*"/>
|
<ColumnDefinition Width="0.2*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="0.5*"/>
|
<RowDefinition Height="0.5*"/>
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal"
|
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal"
|
||||||
HorizontalAlignment="Center">
|
HorizontalAlignment="Center">
|
||||||
<ScrollViewer Name="MyScrollViewer" VerticalScrollBarVisibility="Auto">
|
<ScrollViewer Name="MyScrollViewer" VerticalScrollBarVisibility="Auto">
|
||||||
<TextBlock Name="LicenseMsgTxBl" MaxWidth="340"
|
<TextBlock Name="LicenseMsgTxBl" MaxWidth="425"
|
||||||
HorizontalAlignment="Center"
|
HorizontalAlignment="Center"
|
||||||
Foreground="{DynamicResource Omag_White}" FontSize="20" VerticalAlignment="Center"
|
Foreground="{DynamicResource Omag_White}" FontSize="20" VerticalAlignment="Center"
|
||||||
TextWrapping="Wrap"/>
|
TextWrapping="Wrap"/>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
Public Sub Init() Handles Me.Initialized
|
Public Sub Init() Handles Me.Initialized
|
||||||
IconTxBl.Text = "⚠️"
|
IconTxBl.Text = "⚠️"
|
||||||
LicenseTxBl.Text = "Warning" & vbCrLf & m_sTitle
|
LicenseTxBl.Text = m_sTitle
|
||||||
m_sMessage = m_sMessage.Replace("/n", "£")
|
m_sMessage = m_sMessage.Replace("/n", "£")
|
||||||
Dim sItems As String() = m_sMessage.Split("£")
|
Dim sItems As String() = m_sMessage.Split("£")
|
||||||
For Index As Integer = 0 To sItems.Count - 1
|
For Index As Integer = 0 To sItems.Count - 1
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@
|
|||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Border Name="LogoBrd" Background="Transparent">
|
<Border Name="LogoBrd" Background="Transparent">
|
||||||
<Image Source="../Resources/NewIcons/Logo-Egalware (2).png" Stretch="Uniform" Margin="1"/>
|
<Image Source="../Resources/NewIcons/logo-OmCut.png" Stretch="Uniform" Margin="1"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<!-- ** Definizione della Grid delle tab ** -->
|
<!-- ** Definizione della Grid delle tab ** -->
|
||||||
|
|||||||
+23
-11
@@ -26,6 +26,8 @@ Class MainWindow
|
|||||||
' Variabile che definisce l'avvio forzato in modalità FRAME
|
' Variabile che definisce l'avvio forzato in modalità FRAME
|
||||||
Friend m_OnlyFrame As Boolean = False
|
Friend m_OnlyFrame As Boolean = False
|
||||||
|
|
||||||
|
Public Shared m_bShowSVGParkInd As Boolean = True
|
||||||
|
|
||||||
' Dichiarazione delle Page UserControl
|
' Dichiarazione delle Page UserControl
|
||||||
Friend m_WorkInProgressPageUC As WorkInProgressPageUC
|
Friend m_WorkInProgressPageUC As WorkInProgressPageUC
|
||||||
Friend m_CurrentProjectPageUC As CurrentProjectPageUC
|
Friend m_CurrentProjectPageUC As CurrentProjectPageUC
|
||||||
@@ -343,8 +345,8 @@ Class MainWindow
|
|||||||
' Verifico abilitazione nesting automatico
|
' Verifico abilitazione nesting automatico
|
||||||
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
|
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
|
||||||
' Recupero opzioni della chiave
|
' Recupero opzioni della chiave
|
||||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2610, 1, m_nKeyLevel) And
|
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2612, 1, m_nKeyLevel) And
|
||||||
EgtGetKeyOptions(9423, 2610, 1, m_nKeyOptions)
|
EgtGetKeyOptions(9423, 2612, 1, m_nKeyOptions)
|
||||||
' Verifico abilitazione prodotto
|
' Verifico abilitazione prodotto
|
||||||
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
|
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
|
||||||
' Impostazione per programma OnlyFrame: solo se CUT_BASE non attivo
|
' Impostazione per programma OnlyFrame: solo se CUT_BASE non attivo
|
||||||
@@ -656,26 +658,36 @@ Class MainWindow
|
|||||||
|
|
||||||
Dim sAssStatus As String = " discontinued"
|
Dim sAssStatus As String = " discontinued"
|
||||||
Dim nAssLeftDays As Integer
|
Dim nAssLeftDays As Integer
|
||||||
|
' MESSAGGIO...
|
||||||
If EgtGetKeyAssLeftDays(nAssLeftDays) And nAssLeftDays >= 0 Then
|
If EgtGetKeyAssLeftDays(nAssLeftDays) And nAssLeftDays >= 0 Then
|
||||||
If nAssLeftDays > 30 Then
|
If nAssLeftDays > 0 Then
|
||||||
sAssStatus = "expires within " & nAssLeftDays.ToString() & " days"
|
sAssStatus = "expires within " & nAssLeftDays.ToString() & " days"
|
||||||
ElseIf nAssLeftDays > 0 Then
|
'sAssStatus = "to be renewed within " & nAssLeftDays.ToString() & " days"
|
||||||
sAssStatus = "to be renewed within " & nAssLeftDays.ToString() & " days"
|
|
||||||
Else
|
Else
|
||||||
sAssStatus = "to be renewed by today"
|
sAssStatus = "Expired"
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
Dim bShowInfoAssistance As Boolean = True
|
||||||
|
bShowInfoAssistance = (GetPrivateProfileInt(S_GENERAL, K_SHOWEXPIREASSITANCE, "1", GetIniFile) <> 0)
|
||||||
' Or nAssLeftDays = 358
|
' Or nAssLeftDays = 358
|
||||||
If (nAssLeftDays <= 7 And nAssLeftDays >= 0) Or nAssLeftDays = 14 Or nAssLeftDays = 21 Or nAssLeftDays = 28 Then
|
If bShowInfoAssistance And ((nAssLeftDays <= 7 And nAssLeftDays >= 0) Or nAssLeftDays = 14 Or nAssLeftDays = 21 Or nAssLeftDays = 28) Then
|
||||||
Dim sMsg As String = EgtMsg(91141) ' Assistenza in scadenza /nContattare assistenza:/n
|
' 91145=Avviso importante
|
||||||
|
Dim sMsg_Title As String = EgtMsg(91145)
|
||||||
|
' 91146=Il contratto di aggiornamento della licenza in uso scadrà tra {0} giorni./n
|
||||||
|
Dim sMsg_AssStatus As String = String.Format(EgtMsg(91146), nAssLeftDays.ToString())
|
||||||
|
' 91147=Se desiderate rimanere aggiornati e continuare ad usufruire dei benefici del servizio, vi invitiamo a contattare la nostra assistenza al seguente indirizzo:/n
|
||||||
|
Dim sMsg_RefAssistance As String = EgtMsg(91147)
|
||||||
Dim sAssistance As String = String.Empty
|
Dim sAssistance As String = String.Empty
|
||||||
GetPrivateProfileString(S_GENERAL, "Assistances", "", sAssistance, GetIniFile)
|
GetPrivateProfileString(S_GENERAL, "Assistances", "", sAssistance, GetIniFile)
|
||||||
Dim sItems As String() = sAssistance.Split(","c)
|
Dim sItems As String() = sAssistance.Split(","c)
|
||||||
For Each Item As String In sItems
|
For Each Item As String In sItems
|
||||||
sMsg &= " → " & Item.Trim & " /n"
|
sMsg_RefAssistance &= " → " & Item.Trim & " /n"
|
||||||
Next
|
Next
|
||||||
Dim MyLicWn As New LicenseWindow(Me, sMsg, "Assistance " & sAssStatus)
|
' 91148=Grazie per la vostra collaborazione.
|
||||||
|
Dim sMsg_ThankYou As String = EgtMsg(91148)
|
||||||
|
Dim MyLicWn As New LicenseWindow(Me, sMsg_AssStatus & sMsg_RefAssistance & sMsg_ThankYou, sMsg_Title)
|
||||||
|
MyLicWn.WindowStartupLocation = WindowStartupLocation.CenterOwner
|
||||||
MyLicWn.Show()
|
MyLicWn.Show()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1327,7 +1339,7 @@ Class MainWindow
|
|||||||
If m_OnlyFrame Then
|
If m_OnlyFrame Then
|
||||||
If nPrjType = CurrentProjectPageUC.PRJ_TYPE.FLATS And
|
If nPrjType = CurrentProjectPageUC.PRJ_TYPE.FLATS And
|
||||||
m_ActivePage <> Pages.RawPart And m_ActivePage <> Pages.DirectCut And m_ActivePage <> Pages.Simulation Then
|
m_ActivePage <> Pages.RawPart And m_ActivePage <> Pages.DirectCut And m_ActivePage <> Pages.Simulation Then
|
||||||
Dim FrameWnd As New EgtMsgBox(Me, EgtMsg(91142), EgtMsg(91143), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL)
|
Dim FrameWnd As New EgtMsgBox(Me, EgtMsg(91141), EgtMsg(91142), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL)
|
||||||
'' Gestione stato FastGrid
|
'' Gestione stato FastGrid
|
||||||
'm_CadCutPageUC.m_FastGridSlabManager.OnPreNewProject()
|
'm_CadCutPageUC.m_FastGridSlabManager.OnPreNewProject()
|
||||||
' Cancello progetto salvato con nome da file ini
|
' Cancello progetto salvato con nome da file ini
|
||||||
|
|||||||
@@ -62,5 +62,5 @@ Imports System.Windows
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.6.10.1")>
|
<Assembly: AssemblyVersion("2.6.12.1")>
|
||||||
<Assembly: AssemblyFileVersion("2.6.10.1")>
|
<Assembly: AssemblyFileVersion("2.6.12.1")>
|
||||||
|
|||||||
@@ -413,6 +413,10 @@ Public Class CNCommunication
|
|||||||
GetPrivateProfileString(S_NCDATA, K_NAXES, "", sVal, m_MainWindow.GetMachIniFile())
|
GetPrivateProfileString(S_NCDATA, K_NAXES, "", sVal, m_MainWindow.GetMachIniFile())
|
||||||
m_CN.SetCnDataVar(CN_generico.CnData.nAxes, sVal)
|
m_CN.SetCnDataVar(CN_generico.CnData.nAxes, sVal)
|
||||||
|
|
||||||
|
' Solo per controllo speciale NUM 22/01/2025
|
||||||
|
GetPrivateProfileString(S_NCDATA, K_CPOS, "", sVal, m_MainWindow.GetMachIniFile())
|
||||||
|
m_CN.SetCnDataVar(CN_generico.CnData.CPos, sVal)
|
||||||
|
If Not String.IsNullOrEmpty(sVal) Then m_CN.bCPos = True
|
||||||
|
|
||||||
' Inizializzo la comunicazione
|
' Inizializzo la comunicazione
|
||||||
m_CN.Init()
|
m_CN.Init()
|
||||||
@@ -1600,9 +1604,17 @@ Public Class CNCommunication
|
|||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Sub GetSpecialCAxes()
|
||||||
|
If m_CN.bCPos Then
|
||||||
|
m_CN.d_axis_position(m_nA4) = m_CN.dCPos
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Friend Function GetAxesPositions(ByRef dA1 As Double, ByRef dA2 As Double, ByRef dA3 As Double,
|
Friend Function GetAxesPositions(ByRef dA1 As Double, ByRef dA2 As Double, ByRef dA3 As Double,
|
||||||
ByRef dA4 As Double, ByRef dA5 As Double, ByRef dA6 As Double,
|
ByRef dA4 As Double, ByRef dA5 As Double, ByRef dA6 As Double,
|
||||||
ByRef dA7 As Double, ByRef dA8 As Double, ByRef dA9 As Double, ByRef dA10 As Double) As Boolean
|
ByRef dA7 As Double, ByRef dA8 As Double, ByRef dA9 As Double, ByRef dA10 As Double) As Boolean
|
||||||
|
' gestione speciale asse C
|
||||||
|
GetSpecialCAxes()
|
||||||
dA1 = If(m_nA1 >= 0, m_CN.d_axis_position(m_nA1), 0)
|
dA1 = If(m_nA1 >= 0, m_CN.d_axis_position(m_nA1), 0)
|
||||||
dA2 = If(m_nA2 >= 0, m_CN.d_axis_position(m_nA2), 0)
|
dA2 = If(m_nA2 >= 0, m_CN.d_axis_position(m_nA2), 0)
|
||||||
dA3 = If(m_nA3 >= 0, m_CN.d_axis_position(m_nA3), 0)
|
dA3 = If(m_nA3 >= 0, m_CN.d_axis_position(m_nA3), 0)
|
||||||
@@ -1619,6 +1631,8 @@ Public Class CNCommunication
|
|||||||
|
|
||||||
Friend Function GetAxesPositions(ByRef dA1 As Double, ByRef dA2 As Double, ByRef dA3 As Double,
|
Friend Function GetAxesPositions(ByRef dA1 As Double, ByRef dA2 As Double, ByRef dA3 As Double,
|
||||||
ByRef dA4 As Double, ByRef dA5 As Double) As Boolean
|
ByRef dA4 As Double, ByRef dA5 As Double) As Boolean
|
||||||
|
' gestione speciale asse C
|
||||||
|
GetSpecialCAxes()
|
||||||
dA1 = If(m_nA1 >= 0, m_CN.d_axis_position(m_nA1), 0)
|
dA1 = If(m_nA1 >= 0, m_CN.d_axis_position(m_nA1), 0)
|
||||||
dA2 = If(m_nA2 >= 0, m_CN.d_axis_position(m_nA2), 0)
|
dA2 = If(m_nA2 >= 0, m_CN.d_axis_position(m_nA2), 0)
|
||||||
dA3 = If(m_nA3 >= 0, m_CN.d_axis_position(m_nA3), 0)
|
dA3 = If(m_nA3 >= 0, m_CN.d_axis_position(m_nA3), 0)
|
||||||
@@ -1637,6 +1651,8 @@ Public Class CNCommunication
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function GetRotaryAxesPositions(ByRef dR1 As Double, ByRef dR2 As Double) As Boolean
|
Friend Function GetRotaryAxesPositions(ByRef dR1 As Double, ByRef dR2 As Double) As Boolean
|
||||||
|
' gestione speciale asse C
|
||||||
|
GetSpecialCAxes()
|
||||||
dR1 = If(m_nA4 >= 0, m_CN.d_axis_position(m_nA4), 0)
|
dR1 = If(m_nA4 >= 0, m_CN.d_axis_position(m_nA4), 0)
|
||||||
dR2 = If(m_nA5 >= 0, m_CN.d_axis_position(m_nA5), 0)
|
dR2 = If(m_nA5 >= 0, m_CN.d_axis_position(m_nA5), 0)
|
||||||
Return m_bAxesOk
|
Return m_bAxesOk
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Public MustInherit Class CN_generico
|
|||||||
Public Const MAX_VAR As Short = 100
|
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_VALUES As Short = 9 ' Max. index to read the data from the FXServer array
|
||||||
Public Const MAX_TOOLS As Short = 100
|
Public Const MAX_TOOLS As Short = 100
|
||||||
Public Const NUM_DATA = 57 ' Numero di dati del CN (Speed,Feed,...)
|
Public Const NUM_DATA = 58 ' Numero di dati del CN (Speed,Feed,...)
|
||||||
|
|
||||||
Public m_NewVariable As Boolean = False ' per scrittura delle vairbaili Apllication del PLC
|
Public m_NewVariable As Boolean = False ' per scrittura delle vairbaili Apllication del PLC
|
||||||
|
|
||||||
@@ -74,6 +74,8 @@ Public MustInherit Class CN_generico
|
|||||||
nAxes = 55
|
nAxes = 55
|
||||||
|
|
||||||
ResetStatus = 56
|
ResetStatus = 56
|
||||||
|
|
||||||
|
CPos = 57
|
||||||
End Enum
|
End Enum
|
||||||
|
|
||||||
Public Enum Type As Short
|
Public Enum Type As Short
|
||||||
@@ -233,6 +235,10 @@ Public MustInherit Class CN_generico
|
|||||||
Public bRemote As Boolean
|
Public bRemote As Boolean
|
||||||
' Nuovi di bottoni -------------------------------------------
|
' Nuovi di bottoni -------------------------------------------
|
||||||
|
|
||||||
|
' gestione speciale asse C
|
||||||
|
Public bCPos As Boolean = False
|
||||||
|
Public dCPos As Double
|
||||||
|
|
||||||
' solo per NumOld
|
' solo per NumOld
|
||||||
Public bIsDripFeed As Boolean = False
|
Public bIsDripFeed As Boolean = False
|
||||||
|
|
||||||
|
|||||||
+11
-8
@@ -53,14 +53,14 @@ Namespace Num
|
|||||||
Dim WithEvents objDRunTimeSystem As FXServer.DRunTimeSystem
|
Dim WithEvents objDRunTimeSystem As FXServer.DRunTimeSystem
|
||||||
Dim WithEvents objDGroupManager As FXServer.DGroupManager
|
Dim WithEvents objDGroupManager As FXServer.DGroupManager
|
||||||
Dim WithEvents objDReadELS As FXServer.DReadELS
|
Dim WithEvents objDReadELS As FXServer.DReadELS
|
||||||
' questa è classe che serve a scrivere i dati nel PLC
|
' questa � classe che serve a scrivere i dati nel PLC
|
||||||
Dim WithEvents objDPlcVariables As FXServer.DPlcVariables
|
Dim WithEvents objDPlcVariables As FXServer.DPlcVariables
|
||||||
' questa è la classe che serve a scrivere i dati nelle variabili E
|
' questa � la classe che serve a scrivere i dati nelle variabili E
|
||||||
Dim WithEvents objDVariables As FXServer.DVariables
|
Dim WithEvents objDVariables As FXServer.DVariables
|
||||||
Dim WithEvents objDReadTestExectime As FXServer.DReadTestExectime
|
Dim WithEvents objDReadTestExectime As FXServer.DReadTestExectime
|
||||||
Dim WithEvents objDPosition As FXServer.DPosition
|
Dim WithEvents objDPosition As FXServer.DPosition
|
||||||
Dim WithEvents objDNCKParameter As FXServer.DNCKParameter
|
Dim WithEvents objDNCKParameter As FXServer.DNCKParameter
|
||||||
' questa è la classe che serve a scrivere i comandi MDI (come ad esempio le funzioni M)
|
' questa � la classe che serve a scrivere i comandi MDI (come ad esempio le funzioni M)
|
||||||
Dim WithEvents objDMdiCommand As FXServer.DMdiCommand
|
Dim WithEvents objDMdiCommand As FXServer.DMdiCommand
|
||||||
Dim WithEvents objDMainCncData As FXServer.DMainCncData
|
Dim WithEvents objDMainCncData As FXServer.DMainCncData
|
||||||
|
|
||||||
@@ -458,7 +458,7 @@ Namespace Num
|
|||||||
'sz_var_names.Add("Application.IOCONFIG_GLOBALS.Flexium_NCK.WCNC.Spindle[2].Override") ' segnaposto per la speed override
|
'sz_var_names.Add("Application.IOCONFIG_GLOBALS.Flexium_NCK.WCNC.Spindle[2].Override") ' segnaposto per la speed override
|
||||||
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_Vel_prog") ' FEED
|
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_Vel_prog") ' FEED
|
||||||
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabRPM") ' Speed
|
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabRPM") ' Speed
|
||||||
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabAmper") ' Ampère = *0.01
|
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabAmper") ' Amp�re = *0.01
|
||||||
|
|
||||||
' Creo lista nomi variabili PLC da leggere
|
' Creo lista nomi variabili PLC da leggere
|
||||||
m_nCnDataVarNum = 0
|
m_nCnDataVarNum = 0
|
||||||
@@ -823,7 +823,7 @@ Namespace Num
|
|||||||
|
|
||||||
|
|
||||||
' Only for FX Server >= 3.9.0.0
|
' Only for FX Server >= 3.9.0.0
|
||||||
' poi in realtà ritorna sempre tipo = -1 per cui è eguale alle altre.....
|
' poi in realt� ritorna sempre tipo = -1 per cui � eguale alle altre.....
|
||||||
Private Sub objDReadELS_ValueChanged3(nHandle As Integer, value As Object, DataType As Short, Writable As Short, nerrorCode As Short) Handles objDReadELS.ValueChanged3
|
Private Sub objDReadELS_ValueChanged3(nHandle As Integer, value As Object, DataType As Short, Writable As Short, nerrorCode As Short) Handles objDReadELS.ValueChanged3
|
||||||
|
|
||||||
Dim edata_type As eDatatype
|
Dim edata_type As eDatatype
|
||||||
@@ -996,7 +996,7 @@ Namespace Num
|
|||||||
d_spindle_eff(0) = CDbl(values(n))
|
d_spindle_eff(0) = CDbl(values(n))
|
||||||
Case CnData.SpeedOvr ' (5) Potenziom. speed = ...
|
Case CnData.SpeedOvr ' (5) Potenziom. speed = ...
|
||||||
n_spindle_override(0) = CShort(Math.Round((CDbl(values(n)) * 50 / 255) + 50))
|
n_spindle_override(0) = CShort(Math.Round((CDbl(values(n)) * 50 / 255) + 50))
|
||||||
Case CnData.Power ' (6) Ampère = * 0.01
|
Case CnData.Power ' (6) Amp�re = * 0.01
|
||||||
d_spindle_power = CDbl(CLng(values(n))) * 0.01
|
d_spindle_power = CDbl(CLng(values(n))) * 0.01
|
||||||
b_spindle_power_changed = True
|
b_spindle_power_changed = True
|
||||||
Case CnData.Spindle ' (7) Stato rotazione mandrino
|
Case CnData.Spindle ' (7) Stato rotazione mandrino
|
||||||
@@ -1095,6 +1095,9 @@ Namespace Num
|
|||||||
Case CnData.EnablePC ' (54)
|
Case CnData.EnablePC ' (54)
|
||||||
nEnablePc = CInt(values(n))
|
nEnablePc = CInt(values(n))
|
||||||
|
|
||||||
|
Case CnData.CPos ' (57)
|
||||||
|
dCPos = CDbl(values(n))
|
||||||
|
|
||||||
End Select
|
End Select
|
||||||
Next
|
Next
|
||||||
|
|
||||||
@@ -1701,11 +1704,11 @@ Namespace Num
|
|||||||
nTimeOut += 1
|
nTimeOut += 1
|
||||||
End While
|
End While
|
||||||
If Not bSetModeDone Then
|
If Not bSetModeDone Then
|
||||||
EgtOutLog("Errore cambio modalità in MDI: " & TIMEOUT)
|
EgtOutLog("Errore cambio modalit� in MDI: " & TIMEOUT)
|
||||||
Return TIMEOUT 'Errore di timeout
|
Return TIMEOUT 'Errore di timeout
|
||||||
End If
|
End If
|
||||||
If nSetModeResult <> 0 Then
|
If nSetModeResult <> 0 Then
|
||||||
EgtOutLog("Errore 2 cambio modalità in MDI: " & nSetModeResult)
|
EgtOutLog("Errore 2 cambio modalit� in MDI: " & nSetModeResult)
|
||||||
End If
|
End If
|
||||||
Return nSetModeResult
|
Return nSetModeResult
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1297,14 +1297,14 @@ Namespace Num
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function VerifyBusy() As eStateType
|
Function VerifyBusy() As eStateType
|
||||||
For I As Integer = 0 To 50
|
For I As Integer = 0 To 150
|
||||||
If global_state <> eStateType.READY Then
|
If global_state <> eStateType.READY Then
|
||||||
System.Threading.Thread.Sleep(SLEEP_TIME)
|
System.Threading.Thread.Sleep(SLEEP_TIME)
|
||||||
Else
|
Else
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
EgtOutLog("eStateType: " & global_state.ToString & " -- if eStateType=0 it means READY")
|
||||||
Return global_state
|
Return global_state
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|||||||
@@ -180,6 +180,9 @@
|
|||||||
<Compile Include="CadCuts\SelectPartFromFamilyWD.xaml.vb">
|
<Compile Include="CadCuts\SelectPartFromFamilyWD.xaml.vb">
|
||||||
<DependentUpon>SelectPartFromFamilyWD.xaml</DependentUpon>
|
<DependentUpon>SelectPartFromFamilyWD.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="CadCuts\SelParkIndWD.xaml.vb">
|
||||||
|
<DependentUpon>SelParkIndWD.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="CAM\CamPolishing.vb" />
|
<Compile Include="CAM\CamPolishing.vb" />
|
||||||
<Compile Include="DirectCuts\ControlsDirectCutUC.xaml.vb">
|
<Compile Include="DirectCuts\ControlsDirectCutUC.xaml.vb">
|
||||||
<DependentUpon>ControlsDirectCutUC.xaml</DependentUpon>
|
<DependentUpon>ControlsDirectCutUC.xaml</DependentUpon>
|
||||||
@@ -455,6 +458,10 @@
|
|||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
</Page>
|
</Page>
|
||||||
|
<Page Include="CadCuts\SelParkIndWD.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
</Page>
|
||||||
<Page Include="DirectCuts\ControlsDirectCutUC.xaml">
|
<Page Include="DirectCuts\ControlsDirectCutUC.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
@@ -1385,6 +1392,10 @@
|
|||||||
<Resource Include="Resources\NewIcons\Logo-Egalware %283%29.png" />
|
<Resource Include="Resources\NewIcons\Logo-Egalware %283%29.png" />
|
||||||
<Resource Include="Resources\NewIcons\RawHeight.png" />
|
<Resource Include="Resources\NewIcons\RawHeight.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Resource Include="Resources\NewIcons\LightArrowOff.png" />
|
||||||
|
<Resource Include="Resources\NewIcons\LightArrowOn.png" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
|
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
<ColumnDefinition Width="5*"/>
|
<ColumnDefinition Width="5*"/>
|
||||||
<ColumnDefinition Width="7*"/>
|
<ColumnDefinition Width="7*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- Definizione della Grid laterale -->
|
<!-- Definizione della Grid laterale -->
|
||||||
@@ -72,7 +71,8 @@
|
|||||||
|
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<ProgressBar Name="PhotoProgress" Grid.Row="2" Height="50" Margin="10,0,10,0" Minimum="0" Maximum="100"/>
|
|
||||||
|
<ProgressBar Name="PhotoProgress" Grid.Row="2" Height="50" Margin="10,0,10,0" Minimum="0" Maximum="100"/>
|
||||||
|
|
||||||
<Border Name="OutMessageBrd" Grid.Row="2" >
|
<Border Name="OutMessageBrd" Grid.Row="2" >
|
||||||
<TextBlock Name="OutMessageTxBl" TextAlignment="Center"
|
<TextBlock Name="OutMessageTxBl" TextAlignment="Center"
|
||||||
@@ -81,6 +81,13 @@
|
|||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
<Grid Name="SceneHostGrid" Grid.Row="1" Grid.Column="1">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="6*"/>
|
||||||
|
<ColumnDefinition Width="1.2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Imports System.IO
|
Imports System.IO
|
||||||
|
Imports System.Security.Cryptography
|
||||||
Imports System.Windows.Interop
|
Imports System.Windows.Interop
|
||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
Imports EgtWPFLib
|
Imports EgtWPFLib
|
||||||
@@ -19,7 +20,8 @@ Public Class CurrentProjectPageUC
|
|||||||
Private m_bFirst As Boolean = True
|
Private m_bFirst As Boolean = True
|
||||||
' Dichiarazione Scene
|
' Dichiarazione Scene
|
||||||
Friend WithEvents CurrentProjectScene As New Scene
|
Friend WithEvents CurrentProjectScene As New Scene
|
||||||
Private CurrentProjectSceneHost As New System.Windows.Forms.Integration.WindowsFormsHost
|
' Nella pagina Nest gestisco la dimensione della scena per visualizzare la lista dei parcheggi
|
||||||
|
Public CurrentProjectSceneHost As New System.Windows.Forms.Integration.WindowsFormsHost
|
||||||
' Identificativo progetto corrente
|
' Identificativo progetto corrente
|
||||||
Private m_nCurrProj As Integer = 0
|
Private m_nCurrProj As Integer = 0
|
||||||
' Dati del grezzo
|
' Dati del grezzo
|
||||||
@@ -55,9 +57,11 @@ Public Class CurrentProjectPageUC
|
|||||||
|
|
||||||
'Assegnazione scena all'host e posizionamento nella PlacePageGrid
|
'Assegnazione scena all'host e posizionamento nella PlacePageGrid
|
||||||
CurrentProjectSceneHost.Child = CurrentProjectScene
|
CurrentProjectSceneHost.Child = CurrentProjectScene
|
||||||
CurrentProjectSceneHost.SetValue(Grid.ColumnProperty, 1)
|
CurrentProjectSceneHost.SetValue(Grid.ColumnProperty, 0)
|
||||||
CurrentProjectSceneHost.SetValue(Grid.RowProperty, 1)
|
CurrentProjectSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||||
Me.CurrentProjectPageGrid.Children.Add(CurrentProjectSceneHost)
|
' CurrentProjectSceneHost.SetValue(Grid.RowProperty, 1)
|
||||||
|
'Me.CurrentProjectPageGrid.Children.Add(CurrentProjectSceneHost)
|
||||||
|
Me.SceneHostGrid.Children.Add(CurrentProjectSceneHost)
|
||||||
|
|
||||||
'Imposto i messaggi letti dal file dei messaggi
|
'Imposto i messaggi letti dal file dei messaggi
|
||||||
MaterialTxBl.ToolTip = EgtMsg(MSG_RAWPARTPAGEUC + 9) 'Material - Materiale
|
MaterialTxBl.ToolTip = EgtMsg(MSG_RAWPARTPAGEUC + 9) 'Material - Materiale
|
||||||
@@ -192,7 +196,8 @@ Public Class CurrentProjectPageUC
|
|||||||
' Inizializzo gestore lavorazioni
|
' Inizializzo gestore lavorazioni
|
||||||
EgtInitMachMgr(m_MainWindow.GetMachinesRootDir(), m_MainWindow.GetToolMakersDir())
|
EgtInitMachMgr(m_MainWindow.GetMachinesRootDir(), m_MainWindow.GetToolMakersDir())
|
||||||
m_bFirst = False
|
m_bFirst = False
|
||||||
|
Dim bOrtoGraphic As Boolean = (GetPrivateProfileInt(S_SCENE, "OrtoGraphic", 1, m_MainWindow.GetIniFile()) <> 0)
|
||||||
|
EgtSetCameraType(bOrtoGraphic, True)
|
||||||
' creo nuovo progetto
|
' creo nuovo progetto
|
||||||
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
|
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
|
||||||
'NewProject()
|
'NewProject()
|
||||||
@@ -435,6 +440,12 @@ Public Class CurrentProjectPageUC
|
|||||||
While nId2 <> GDB_ID.NULL
|
While nId2 <> GDB_ID.NULL
|
||||||
' Inserisco correttamente in parcheggio
|
' Inserisco correttamente in parcheggio
|
||||||
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId2, True)
|
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId2, True)
|
||||||
|
' Aggiorno lo stato di visualizzazione
|
||||||
|
Dim nInfoStatus As Integer = 1
|
||||||
|
' Salvo lo stato (per gestire la navigazione)
|
||||||
|
EgtGetInfo(nId2, INFO_PARKSTATUS, nInfoStatus)
|
||||||
|
' Imposto lo stato
|
||||||
|
EgtSetStatus(nId2, nInfoStatus)
|
||||||
' Notifica a WeinMatching per modifica Id
|
' Notifica a WeinMatching per modifica Id
|
||||||
VeinMatching.UpdatePart(nId2)
|
VeinMatching.UpdatePart(nId2)
|
||||||
' Passo al pezzo successivo
|
' Passo al pezzo successivo
|
||||||
@@ -454,7 +465,7 @@ Public Class CurrentProjectPageUC
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function AdjustAdditionalTable( Optional bForced As Boolean = False) As Boolean
|
Friend Function AdjustAdditionalTable(Optional bForced As Boolean = False) As Boolean
|
||||||
' Recupero altezza sottotavola corrente
|
' Recupero altezza sottotavola corrente
|
||||||
Dim nFixtId As Integer = EgtGetFirstNameInGroup(EgtGetFirstMachGroup(), MACH_FIXT_GROUP)
|
Dim nFixtId As Integer = EgtGetFirstNameInGroup(EgtGetFirstMachGroup(), MACH_FIXT_GROUP)
|
||||||
Dim nAddTabId As Integer = EgtGetFirstNameInGroup(nFixtId, MACH_ADD_TABLE)
|
Dim nAddTabId As Integer = EgtGetFirstNameInGroup(nFixtId, MACH_ADD_TABLE)
|
||||||
@@ -466,7 +477,7 @@ Public Class CurrentProjectPageUC
|
|||||||
End If
|
End If
|
||||||
' Se valore cambiato, aggiorno...
|
' Se valore cambiato, aggiorno...
|
||||||
Dim dDeltaZ As Double = m_MainWindow.m_CurrentMachine.dAdditionalTable - dCurrAddTab
|
Dim dDeltaZ As Double = m_MainWindow.m_CurrentMachine.dAdditionalTable - dCurrAddTab
|
||||||
Dim bChanged As Boolean = ( Math.Abs(dDeltaZ) > EPS_SMALL)
|
Dim bChanged As Boolean = (Math.Abs(dDeltaZ) > EPS_SMALL)
|
||||||
If bChanged Or bForced Then
|
If bChanged Or bForced Then
|
||||||
Dim bOldEnMod As Boolean = EgtGetEnableModified()
|
Dim bOldEnMod As Boolean = EgtGetEnableModified()
|
||||||
If Not bChanged AndAlso bOldEnMod Then EgtDisableModified()
|
If Not bChanged AndAlso bOldEnMod Then EgtDisableModified()
|
||||||
@@ -479,9 +490,9 @@ Public Class CurrentProjectPageUC
|
|||||||
ShowPhoto(False)
|
ShowPhoto(False)
|
||||||
Dim nRawGrpId As Integer = EgtGetFirstRawPart()
|
Dim nRawGrpId As Integer = EgtGetFirstRawPart()
|
||||||
While nRawGrpId <> GDB_ID.NULL
|
While nRawGrpId <> GDB_ID.NULL
|
||||||
Dim nRawSolidId As Integer = EgtGetFirstNameInGroup( nRawGrpId, NAME_RAW_SOLID)
|
Dim nRawSolidId As Integer = EgtGetFirstNameInGroup(nRawGrpId, NAME_RAW_SOLID)
|
||||||
If nRawSolidId <> GDB_ID.NULL Then EgtSetTextureName( nRawSolidId, PHOTO_NAME)
|
If nRawSolidId <> GDB_ID.NULL Then EgtSetTextureName(nRawSolidId, PHOTO_NAME)
|
||||||
nRawGrpId = EgtGetNextRawPart( nRawGrpId)
|
nRawGrpId = EgtGetNextRawPart(nRawGrpId)
|
||||||
End While
|
End While
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -509,10 +520,10 @@ Public Class CurrentProjectPageUC
|
|||||||
EgtGetTableName(sNameTable)
|
EgtGetTableName(sNameTable)
|
||||||
Dim nRefAddTabId = EgtGetFirstNameInGroup(EgtGetFirstNameInGroup(EgtGetTableId(sNameTable), "SOLID"), MACH_ADD_TABLE)
|
Dim nRefAddTabId = EgtGetFirstNameInGroup(EgtGetFirstNameInGroup(EgtGetTableId(sNameTable), "SOLID"), MACH_ADD_TABLE)
|
||||||
If nRefAddTabId <> GDB_ID.NULL Then
|
If nRefAddTabId <> GDB_ID.NULL Then
|
||||||
nAddTabId = EgtCopyGlob( nRefAddTabId, nFixtId)
|
nAddTabId = EgtCopyGlob(nRefAddTabId, nFixtId)
|
||||||
EgtSetStatus( nAddTabId, GDB_ST.ON_)
|
EgtSetStatus(nAddTabId, GDB_ST.ON_)
|
||||||
EgtScale( nAddTabId, new Frame3d( ptMin), 1, 1, dAddTable / 10)
|
EgtScale(nAddTabId, New Frame3d(ptMin), 1, 1, dAddTable / 10)
|
||||||
' altrimenti la creo
|
' altrimenti la creo
|
||||||
Else
|
Else
|
||||||
' Aggiungo sovratavola nel gruppo dei bloccaggi
|
' Aggiungo sovratavola nel gruppo dei bloccaggi
|
||||||
ptMax.z -= DELTAZ_ADDTAB
|
ptMax.z -= DELTAZ_ADDTAB
|
||||||
@@ -580,6 +591,9 @@ Public Class CurrentProjectPageUC
|
|||||||
Else
|
Else
|
||||||
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_CAXESHOME, DoubleToString(dCHomeCurrMach, 0))
|
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_CAXESHOME, DoubleToString(dCHomeCurrMach, 0))
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'SelParkIndWD.UpdateViewOnParkInd(False)
|
||||||
|
|
||||||
' Dichiaro progetto non modificato
|
' Dichiaro progetto non modificato
|
||||||
EgtResetModified()
|
EgtResetModified()
|
||||||
Return True
|
Return True
|
||||||
@@ -604,8 +618,8 @@ Public Class CurrentProjectPageUC
|
|||||||
End If
|
End If
|
||||||
' Se la macchina del file è quella impostata
|
' Se la macchina del file è quella impostata
|
||||||
If String.Compare(sFileMachine, m_MainWindow.GetCurrMachine(), True) = 0 Then
|
If String.Compare(sFileMachine, m_MainWindow.GetCurrMachine(), True) = 0 Then
|
||||||
AdjustAdditionalTable( True)
|
AdjustAdditionalTable(True)
|
||||||
' altrimenti avverto, porto i pezzi in parcheggio e cancello il grezzo
|
' altrimenti avverto, porto i pezzi in parcheggio e cancello il grezzo
|
||||||
Else
|
Else
|
||||||
' Emetto messaggio
|
' Emetto messaggio
|
||||||
Dim sOut As String = EgtMsg(90320) & " (" & sFileMachine & ")" ' Macchina diversa
|
Dim sOut As String = EgtMsg(90320) & " (" & sFileMachine & ")" ' Macchina diversa
|
||||||
@@ -768,15 +782,15 @@ Public Class CurrentProjectPageUC
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function ExportProject( sPath As String) As Boolean
|
Friend Function ExportProject(sPath As String) As Boolean
|
||||||
' Copio eventuale fotografia
|
' Copio eventuale fotografia
|
||||||
Dim nPhotoId As Integer = GetPhoto()
|
Dim nPhotoId As Integer = GetPhoto()
|
||||||
If nPhotoId <> GDB_ID.NULL Then
|
If nPhotoId <> GDB_ID.NULL Then
|
||||||
' Path originale
|
' Path originale
|
||||||
Dim sPhoto As String = String.Empty
|
Dim sPhoto As String = String.Empty
|
||||||
EgtGetPhotoPath( nPhotoId, sPhoto)
|
EgtGetPhotoPath(nPhotoId, sPhoto)
|
||||||
' Nuova path
|
' Nuova path
|
||||||
Dim sNewPhoto As String = Path.ChangeExtension( sPath, Path.GetExtension( sPhoto))
|
Dim sNewPhoto As String = Path.ChangeExtension(sPath, Path.GetExtension(sPhoto))
|
||||||
' Se diverse, eseguo copia
|
' Se diverse, eseguo copia
|
||||||
If Not String.Equals(sPhoto, sNewPhoto, StringComparison.InvariantCultureIgnoreCase) Then
|
If Not String.Equals(sPhoto, sNewPhoto, StringComparison.InvariantCultureIgnoreCase) Then
|
||||||
Try
|
Try
|
||||||
@@ -791,7 +805,7 @@ Public Class CurrentProjectPageUC
|
|||||||
' Se assente, inserisco contrassegno di progetto OmagCut valido
|
' Se assente, inserisco contrassegno di progetto OmagCut valido
|
||||||
AddProjectMark()
|
AddProjectMark()
|
||||||
' Eseguo copia
|
' Eseguo copia
|
||||||
Return SaveFile( sPath)
|
Return SaveFile(sPath)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function GetCurrentProject() As Integer
|
Friend Function GetCurrentProject() As Integer
|
||||||
@@ -878,7 +892,7 @@ Public Class CurrentProjectPageUC
|
|||||||
EgtSetName(nMarkId, NAME_PROJMARK)
|
EgtSetName(nMarkId, NAME_PROJMARK)
|
||||||
EgtSetLevel(nMarkId, GDB_LV.SYSTEM)
|
EgtSetLevel(nMarkId, GDB_LV.SYSTEM)
|
||||||
EgtSetInfo(nMarkId, INFO_REDUCEDCUT, nReducedCut)
|
EgtSetInfo(nMarkId, INFO_REDUCEDCUT, nReducedCut)
|
||||||
' altrimenti, aggiorno il flag dei tagli ridotti
|
' altrimenti, aggiorno il flag dei tagli ridotti
|
||||||
Else
|
Else
|
||||||
Dim nMarkReducedCut As Integer = 0
|
Dim nMarkReducedCut As Integer = 0
|
||||||
If Not EgtGetInfo(nMarkId, INFO_REDUCEDCUT, nMarkReducedCut) OrElse nMarkReducedCut <> nReducedCut Then
|
If Not EgtGetInfo(nMarkId, INFO_REDUCEDCUT, nMarkReducedCut) OrElse nMarkReducedCut <> nReducedCut Then
|
||||||
@@ -1337,23 +1351,23 @@ Public Class CurrentProjectPageUC
|
|||||||
|
|
||||||
' Gestione area pezzi totale e area pezzi da produrre
|
' Gestione area pezzi totale e area pezzi da produrre
|
||||||
|
|
||||||
Friend Function SetTotalArea( dTotArea As Double) As Boolean
|
Friend Function SetTotalArea(dTotArea As Double) As Boolean
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
Return EgtSetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
Return EgtSetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function UpdateTotalArea( dNewArea As Double) As Boolean
|
Friend Function UpdateTotalArea(dNewArea As Double) As Boolean
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
Dim dTotArea As Double = 0
|
Dim dTotArea As Double = 0
|
||||||
EgtGetInfo( nMarkId, INFO_TOTAREA, dTotArea)
|
EgtGetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
||||||
dTotArea = Math.Max( dTotArea + dNewArea, 0)
|
dTotArea = Math.Max(dTotArea + dNewArea, 0)
|
||||||
Return EgtSetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
Return EgtSetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Function GetTotalArea() As Double
|
Friend Function GetTotalArea() As Double
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
Dim dTotArea As Double = 0
|
Dim dTotArea As Double = 0
|
||||||
EgtGetInfo( nMarkId, INFO_TOTAREA, dTotArea)
|
EgtGetInfo(nMarkId, INFO_TOTAREA, dTotArea)
|
||||||
Return dTotArea
|
Return dTotArea
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -1361,17 +1375,17 @@ Public Class CurrentProjectPageUC
|
|||||||
Dim dToProdArea As Double = 0
|
Dim dToProdArea As Double = 0
|
||||||
' Se programma non ancora inviato al CN, ciclo sui pezzi nella lastra
|
' Se programma non ancora inviato al CN, ciclo sui pezzi nella lastra
|
||||||
If GetProjectNcProgSent() = 0 Then
|
If GetProjectNcProgSent() = 0 Then
|
||||||
Dim nPartInRawId As Integer = EgtGetFirstPartInRawPart( CamAuto.GetCurrentRaw())
|
Dim nPartInRawId As Integer = EgtGetFirstPartInRawPart(CamAuto.GetCurrentRaw())
|
||||||
While nPartInRawId <> GDB_ID.NULL
|
While nPartInRawId <> GDB_ID.NULL
|
||||||
dToProdArea += GeomCalc.GetPartArea( nPartInRawId)
|
dToProdArea += GeomCalc.GetPartArea(nPartInRawId)
|
||||||
nPartInRawId = EgtGetNextPartInRawPart( nPartInRawId)
|
nPartInRawId = EgtGetNextPartInRawPart(nPartInRawId)
|
||||||
End While
|
End While
|
||||||
End If
|
End If
|
||||||
' Ciclo sui pezzi in parcheggio
|
' Ciclo sui pezzi in parcheggio
|
||||||
Dim nPartId As Integer = EgtGetFirstPart()
|
Dim nPartId As Integer = EgtGetFirstPart()
|
||||||
While nPartId <> GDB_ID.NULL
|
While nPartId <> GDB_ID.NULL
|
||||||
dToProdArea += GeomCalc.GetPartArea( nPartId)
|
dToProdArea += GeomCalc.GetPartArea(nPartId)
|
||||||
nPartId = EgtGetNextPart( nPartId)
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
End While
|
End While
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
Return EgtSetInfo(nMarkId, INFO_TOPRODAREA, dToProdArea)
|
Return EgtSetInfo(nMarkId, INFO_TOPRODAREA, dToProdArea)
|
||||||
@@ -1380,16 +1394,16 @@ Public Class CurrentProjectPageUC
|
|||||||
Friend Function GetToProduceArea() As Double
|
Friend Function GetToProduceArea() As Double
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
Dim dToProdArea As Double = 0
|
Dim dToProdArea As Double = 0
|
||||||
EgtGetInfo( nMarkId, INFO_TOPRODAREA, dToProdArea)
|
EgtGetInfo(nMarkId, INFO_TOPRODAREA, dToProdArea)
|
||||||
Return dToProdArea
|
Return dToProdArea
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Friend Sub ShowAreas()
|
Friend Sub ShowAreas()
|
||||||
' Recupero il gruppo di Mark e lo svuoto
|
' Recupero il gruppo di Mark e lo svuoto
|
||||||
Dim nMarkId As Integer = AddProjectMark()
|
Dim nMarkId As Integer = AddProjectMark()
|
||||||
EgtEmptyGroup( nMarkId)
|
EgtEmptyGroup(nMarkId)
|
||||||
' Se non sono da visualizzare esco
|
' Se non sono da visualizzare esco
|
||||||
if GetPrivateProfileInt( S_STATISTICS, K_SHOWAREAS, 0, m_MainWindow.GetMachIniFile()) = 0 Then Return
|
If GetPrivateProfileInt(S_STATISTICS, K_SHOWAREAS, 0, m_MainWindow.GetMachIniFile()) = 0 Then Return
|
||||||
' Recupero dati
|
' Recupero dati
|
||||||
Dim dTotArea As Double = GetTotalArea()
|
Dim dTotArea As Double = GetTotalArea()
|
||||||
Dim dToProdArea As Double = GetToProduceArea()
|
Dim dToProdArea As Double = GetToProduceArea()
|
||||||
@@ -1401,20 +1415,19 @@ Public Class CurrentProjectPageUC
|
|||||||
End If
|
End If
|
||||||
' Scritte
|
' Scritte
|
||||||
Const TEXT_DIST As Double = 100
|
Const TEXT_DIST As Double = 100
|
||||||
Dim ptIns As New Point3d( b3Tab.Center().x, b3Tab.Max().y + TEXT_DIST, b3Tab.Max().z)
|
Dim ptIns As New Point3d(b3Tab.Center().x, b3Tab.Max().y + TEXT_DIST, b3Tab.Max().z)
|
||||||
Dim dCoeff As Double = 1.0 / 1000000.0
|
Dim dCoeff As Double = 1.0 / 1000000.0
|
||||||
Dim sUnit As String = " m²"
|
Dim sUnit As String = " m²"
|
||||||
If Not EgtUiUnitsAreMM() Then
|
If Not EgtUiUnitsAreMM() Then
|
||||||
dCoeff = 1.0 / ( 12 * ONEINCH * 12 * ONEINCH)
|
dCoeff = 1.0 / (12 * ONEINCH * 12 * ONEINCH)
|
||||||
sUnit = " ft²"
|
sUnit = " ft²"
|
||||||
End If
|
End If
|
||||||
Dim sText As String = EgtMsg( 90328) & " " & DoubleToString( dTotArea * dCoeff, 3) & sUnit & " " &
|
Dim sText As String = EgtMsg(90328) & " " & DoubleToString(dTotArea * dCoeff, 3) & sUnit & " " &
|
||||||
EgtMsg( 90329) & " " & DoubleToString( dToProdArea * dCoeff, 3) & sUnit
|
EgtMsg(90329) & " " & DoubleToString(dToProdArea * dCoeff, 3) & sUnit
|
||||||
Dim nText As Integer = EgtCreateTextAdv( nMarkId, ptIns, 0, sText, "", 500, False, 100, 1, 0, INS_POS.MC)
|
Dim nText As Integer = EgtCreateTextAdv(nMarkId, ptIns, 0, sText, "", 500, False, 100, 1, 0, INS_POS.MC)
|
||||||
EgtSetColor( nText, New Color3d( 0, 0, 0))
|
EgtSetColor(nText, New Color3d(0, 0, 0))
|
||||||
End Sub
|
End Sub
|
||||||
|
Friend Sub SetAreasStatus(bShow As Boolean)
|
||||||
Friend Sub SetAreasStatus( bShow As Boolean)
|
|
||||||
Dim nMarkId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK)
|
Dim nMarkId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK)
|
||||||
If nMarkId = GDB_ID.NULL Then Return
|
If nMarkId = GDB_ID.NULL Then Return
|
||||||
|
|
||||||
@@ -1422,7 +1435,7 @@ Public Class CurrentProjectPageUC
|
|||||||
Dim bOldEnMod As Boolean = EgtGetEnableModified()
|
Dim bOldEnMod As Boolean = EgtGetEnableModified()
|
||||||
If bOldEnMod Then EgtDisableModified()
|
If bOldEnMod Then EgtDisableModified()
|
||||||
' Cambio stato visualizzazione
|
' Cambio stato visualizzazione
|
||||||
EgtSetStatus( nMarkId, If( bShow, GDB_ST.ON_, GDB_ST.OFF))
|
EgtSetStatus(nMarkId, If(bShow, GDB_ST.ON_, GDB_ST.OFF))
|
||||||
' Se necessario riabilito impostazione modificato
|
' Se necessario riabilito impostazione modificato
|
||||||
If bOldEnMod Then EgtEnableModified()
|
If bOldEnMod Then EgtEnableModified()
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@@ -99,8 +99,38 @@ Public Class ProjectMgrUC
|
|||||||
End If
|
End If
|
||||||
' Scelta tavola della macchina
|
' Scelta tavola della macchina
|
||||||
Dim nTabInd As Integer = ChooseTable()
|
Dim nTabInd As Integer = ChooseTable()
|
||||||
|
|
||||||
|
' Creo una copia di tutte le immagini usata nella lista dei parcheggi
|
||||||
|
Dim ListParkInd As New List(Of ParkInd)
|
||||||
|
SelParkIndWD.LoadParkInd(ListParkInd)
|
||||||
' Creo nuovo progetto
|
' Creo nuovo progetto
|
||||||
m_CurrProjPage.NewProject(nTabInd, bRetainParkedParts)
|
m_CurrProjPage.NewProject(nTabInd, bRetainParkedParts)
|
||||||
|
|
||||||
|
|
||||||
|
' Gestione visulizzazione lista pezzi in parcheggio
|
||||||
|
m_MainWindow.m_CadCutPageUC.m_NestPage.ReloadListParkInd()
|
||||||
|
Dim sNewFileName As String = SelParkIndWD.GetPathCurrProj()
|
||||||
|
Dim Extension As String = ".svg"
|
||||||
|
For Each ItemParkInd As ParkInd In ListParkInd
|
||||||
|
If ItemParkInd.Ind <> 0 And ItemParkInd.Ind <> 999 And ItemParkInd.nPartInPark > 0 Then
|
||||||
|
Try
|
||||||
|
Dim sNewFile As String = sNewFileName & ItemParkInd.Ind.ToString & Extension
|
||||||
|
If MainWindow.m_bShowSVGParkInd Then
|
||||||
|
WriteMyXML(sNewFile, ItemParkInd.LocalMyCanvas)
|
||||||
|
Else
|
||||||
|
If File.Exists(sNewFile) Then
|
||||||
|
File.Delete(sNewFile)
|
||||||
|
End If
|
||||||
|
File.Copy(If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img), sNewFile)
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
EgtOutLog("Copia immagine " & If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img) & " di ParkInd non roiscita")
|
||||||
|
End Try
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
m_MainWindow.m_CadCutPageUC.m_NestPage.ReloadListParkInd()
|
||||||
|
|
||||||
|
|
||||||
' Gestione stato FastGrid
|
' Gestione stato FastGrid
|
||||||
m_MainWindow.m_CadCutPageUC.m_FastGridSlabManager.OnPostNewProject()
|
m_MainWindow.m_CadCutPageUC.m_FastGridSlabManager.OnPostNewProject()
|
||||||
End Sub
|
End Sub
|
||||||
@@ -233,6 +263,9 @@ Public Class ProjectMgrUC
|
|||||||
If m_MainWindow.m_ActivePage = MainWindow.Pages.FrameCut Then
|
If m_MainWindow.m_ActivePage = MainWindow.Pages.FrameCut Then
|
||||||
ShowAllCurrPhaseMachinings()
|
ShowAllCurrPhaseMachinings()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'SelParkIndWD.UpdateViewOnParkInd(False)
|
||||||
|
|
||||||
EgtDraw()
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -375,7 +408,7 @@ Public Class ProjectMgrUC
|
|||||||
If Not EgtGetTableRef(1, m_ptTabOri) Then Return
|
If Not EgtGetTableRef(1, m_ptTabOri) Then Return
|
||||||
' recupero il punto medio della curva
|
' recupero il punto medio della curva
|
||||||
EgtMidPoint(nIdSelected, GDB_ID.ROOT, ptMid)
|
EgtMidPoint(nIdSelected, GDB_ID.ROOT, ptMid)
|
||||||
ptMid.z = m_ptTabOri.z + CamAuto.GetRawHeight() + dHeight
|
ptMid.z = m_ptTabOri.z + CamAuto.GetRawHeight() + dHeight + m_MainWindow.m_CurrentMachine.dAdditionalTable
|
||||||
' Offset dovuto allo spessore Utensile
|
' Offset dovuto allo spessore Utensile
|
||||||
ptMid -= vtOffset * dThick
|
ptMid -= vtOffset * dThick
|
||||||
|
|
||||||
|
|||||||
@@ -347,6 +347,13 @@ Public Class Camera
|
|||||||
|
|
||||||
' ------------------------------------ accensione riflettori ------------------------------------
|
' ------------------------------------ accensione riflettori ------------------------------------
|
||||||
|
|
||||||
|
' ------------------------------------ mando la testa in home ------------------------------------
|
||||||
|
If Not GoHomeForPhoto() Then
|
||||||
|
EgtOutLog("Error in positioning")
|
||||||
|
End If
|
||||||
|
|
||||||
|
' ------------------------------------ mando la testa in home ------------------------------------
|
||||||
|
|
||||||
' Scatto una foto con eventuale riconoscimento del contorno (il programma deve essere già attivo)
|
' Scatto una foto con eventuale riconoscimento del contorno (il programma deve essere già attivo)
|
||||||
Dim bOk As Boolean = False
|
Dim bOk As Boolean = False
|
||||||
Dim sArgs As String = "2 0"
|
Dim sArgs As String = "2 0"
|
||||||
@@ -364,6 +371,64 @@ Public Class Camera
|
|||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function GoHomeForPhoto() As Boolean
|
||||||
|
Dim bGoHome As Boolean = GetPrivateProfileInt(S_PHOTO, K_ENABELE_GOHOME_FOR_PHOTO, 0, m_MainWindow.GetMachIniFile()) <> 0
|
||||||
|
' Se non configurato esco senza generare errore
|
||||||
|
If Not bGoHome Then Return True
|
||||||
|
' Costruisco il bottone per potere eseguire il comando MDI
|
||||||
|
Dim GoHome As MachineButton = Nothing
|
||||||
|
Dim sDirectCmdFile As String = String.Empty
|
||||||
|
GetPrivateProfileString(S_PHOTO, K_CAMERA_DIRECT_CMD, "", sDirectCmdFile, m_MainWindow.GetMachIniFile())
|
||||||
|
If String.IsNullOrEmpty(sDirectCmdFile) Then
|
||||||
|
Return False
|
||||||
|
Else
|
||||||
|
EgtOutLog("Direct command for positionig head: " & sDirectCmdFile)
|
||||||
|
End If
|
||||||
|
GoHome = New TwoStateButton("", sDirectCmdFile, "", "", "")
|
||||||
|
' eseguo lo script lua associato
|
||||||
|
GoHome.ExecuteMDICommand(GoHome.TLuaScriptName)
|
||||||
|
' Leggo nome variabile posizione home raggiunta
|
||||||
|
Dim CameraStateNameVar As String = String.Empty
|
||||||
|
GetPrivateProfileString(S_PHOTO, K_CAMERA_STATE_VAR, "", CameraStateNameVar, m_MainWindow.GetMachIniFile())
|
||||||
|
If String.IsNullOrEmpty(CameraStateNameVar) Then
|
||||||
|
'Return False
|
||||||
|
Else
|
||||||
|
EgtOutLog("Variable for read status of positioning head: " & CameraStateNameVar)
|
||||||
|
End If
|
||||||
|
' 91144=Going home
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage(EgtMsg(91144))
|
||||||
|
UpdateUI()
|
||||||
|
' Eseguo reset variabile posizione home raggiunta
|
||||||
|
m_MainWindow.m_CNCommunication.m_CN.DVariables_WriteVariables2(CameraStateNameVar, "0")
|
||||||
|
System.Threading.Thread.Sleep(300)
|
||||||
|
' Definisco flag posizionamento completato
|
||||||
|
Dim bPositionOk As Boolean = False
|
||||||
|
For I As Integer = 0 To 40
|
||||||
|
' Devo rileggere la variabile ad ogni ciclo
|
||||||
|
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(CameraStateNameVar, 3)
|
||||||
|
System.Threading.Thread.Sleep(100)
|
||||||
|
If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 3 Then
|
||||||
|
Dim CameraStateVal As Integer = CInt(m_MainWindow.m_CNCommunication.m_CN.d_DReadELS_value)
|
||||||
|
Select Case CameraStateVal
|
||||||
|
Case 0
|
||||||
|
' Non faccio alcunchè perchè si sta posizionando
|
||||||
|
Case 1
|
||||||
|
' Posizionamento completato
|
||||||
|
bPositionOk = True
|
||||||
|
Exit For
|
||||||
|
Case 2
|
||||||
|
' Errore
|
||||||
|
bPositionOk = False
|
||||||
|
Exit For
|
||||||
|
End Select
|
||||||
|
End If
|
||||||
|
System.Threading.Thread.Sleep(900)
|
||||||
|
Next
|
||||||
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||||
|
UpdateUI()
|
||||||
|
Return bPositionOk
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Function WaitPhoto(nInd As Integer) As Boolean
|
Private Function WaitPhoto(nInd As Integer) As Boolean
|
||||||
' Ciclo di ricerca foto scattata
|
' Ciclo di ricerca foto scattata
|
||||||
Dim nMaxThick = 10 * m_nTimeout
|
Dim nMaxThick = 10 * m_nTimeout
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
@@ -362,6 +362,10 @@ Module Utility
|
|||||||
EgtSetStatus(nPartId, GDB_ST.ON_)
|
EgtSetStatus(nPartId, GDB_ST.ON_)
|
||||||
nPartId = EgtGetNextPart(nPartId)
|
nPartId = EgtGetNextPart(nPartId)
|
||||||
End While
|
End While
|
||||||
|
|
||||||
|
' Visualizzo gli elementi attivi in parcheggio
|
||||||
|
SelParkIndWD.UpdateViewOnParkInd(False)
|
||||||
|
|
||||||
' Se necessario, ripristino precedente impostazione modificato
|
' Se necessario, ripristino precedente impostazione modificato
|
||||||
If bOldEnMod Then EgtEnableModified()
|
If bOldEnMod Then EgtEnableModified()
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@@ -4,27 +4,77 @@
|
|||||||
TextBlock.FontFamily="{DynamicResource OmagCut_Font}"
|
TextBlock.FontFamily="{DynamicResource OmagCut_Font}"
|
||||||
Height="500" Width="500" ShowInTaskbar="False" Initialized="Window_Initialized" MinWidth="300" MinHeight="300">
|
Height="500" Width="500" ShowInTaskbar="False" Initialized="Window_Initialized" MinWidth="300" MinHeight="300">
|
||||||
|
|
||||||
<Grid Name="VeinMatchingGrid" Background="{DynamicResource OmagCut_Gray}">
|
<Grid Name="VeinMatchingGrid" Background="{DynamicResource OmagCut_Gray}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="91"/>
|
<ColumnDefinition Width="91"/>
|
||||||
<ColumnDefinition Width="1*"/>
|
<ColumnDefinition Width="1*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
<DockPanel>
|
||||||
<StackPanel Orientation="Vertical">
|
<StackPanel Orientation="Vertical" VerticalAlignment="Top" DockPanel.Dock="Top">
|
||||||
<Button Name="NewBtn" Height="64"
|
<Button Name="NewBtn" Height="64"
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"
|
Style="{DynamicResource OmagCut_YellowTextButton}"
|
||||||
Content="New"/>
|
Content="New"/>
|
||||||
<Button Name="ExportBtn" Height="64"
|
<Button Name="ExportBtn" Height="64"
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"
|
Style="{DynamicResource OmagCut_YellowTextButton}"
|
||||||
Content="Export"/>
|
Content="Export"/>
|
||||||
<Button Name="AssemblyBtn" Height="64"
|
<Button Name="AssemblyBtn" Height="64"
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"
|
Style="{DynamicResource OmagCut_YellowTextButton}"
|
||||||
Content="3D"/>
|
Content="3D"/>
|
||||||
<Button Name="ImportCurrProjBtn" Height="64"
|
<Button Name="ImportCurrProjBtn" Height="64"
|
||||||
Style="{DynamicResource OmagCut_YellowTextButton}"
|
Style="{DynamicResource OmagCut_YellowTextButton}"
|
||||||
Content="Import"/>
|
Content="Import"/>
|
||||||
</StackPanel>
|
<ToggleButton Name="MeasureBtn" Grid.Column="0" Style="{DynamicResource OmagCut_RightGrayYellowIconToggleButton}">
|
||||||
|
<Image Source="{DynamicResource MeasureImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||||
|
</ToggleButton>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Name="DistanceStkPnl" Orientation="Vertical" VerticalAlignment="Bottom" DockPanel.Dock="Bottom" Margin="10,0,0,0">
|
||||||
|
<!--Distanza-->
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Name="MeasureLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
Text="Dist=" HorizontalAlignment="Right" />
|
||||||
|
<TextBlock Name="MeasureValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
HorizontalAlignment="Left"/>
|
||||||
|
</Grid>
|
||||||
|
<!--Proiezione in X-->
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Name="dXLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
Text="dX=" HorizontalAlignment="Right"/>
|
||||||
|
<TextBlock Name="dXValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
HorizontalAlignment="Left"/>
|
||||||
|
</Grid>
|
||||||
|
<!--Proiezione in Y -->
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Name="dYLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
Text="dY=" HorizontalAlignment="Right"/>
|
||||||
|
<TextBlock Name="dYValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
HorizontalAlignment="Left"/>
|
||||||
|
</Grid>
|
||||||
|
<!--Proiezione in Z -->
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="1*"/>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Name="dZLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
Text="dZ=" HorizontalAlignment="Right"/>
|
||||||
|
<TextBlock Name="dZValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
|
||||||
|
HorizontalAlignment="Left"/>
|
||||||
|
</Grid>
|
||||||
|
</StackPanel>
|
||||||
|
</DockPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Window>
|
</Window>
|
||||||
|
|||||||
@@ -82,6 +82,8 @@ Public Class VeinMatchingWindow
|
|||||||
Dim nTxrMaxLinPix As Integer = GetPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096, m_MainWindow.GetIniFile())
|
Dim nTxrMaxLinPix As Integer = GetPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096, m_MainWindow.GetIniFile())
|
||||||
EgtSetTextureMaxLinPixels(nTxrMaxLinPix)
|
EgtSetTextureMaxLinPixels(nTxrMaxLinPix)
|
||||||
m_bFirst = False
|
m_bFirst = False
|
||||||
|
' nascondo la visulizzazione dei campi
|
||||||
|
DistanceStkPnl.Visibility = Visibility.Hidden
|
||||||
End If
|
End If
|
||||||
' inibisco selezione diretta da Scene
|
' inibisco selezione diretta da Scene
|
||||||
VeinMatchingScene.SetStatusNull()
|
VeinMatchingScene.SetStatusNull()
|
||||||
@@ -194,6 +196,25 @@ Public Class VeinMatchingWindow
|
|||||||
EgtDraw()
|
EgtDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub OnShowDistanceVector(sender As Object, vtDist As Vector3d) Handles VeinMatchingScene.OnShowDistanceVector
|
||||||
|
Dim sMsg As String = DistToString(vtDist)
|
||||||
|
Dim sItemsMsg As String() = sMsg.Split(vbCrLf)
|
||||||
|
If sItemsMsg.Count > 1 Then
|
||||||
|
' stampo solo il valore di lunghezza
|
||||||
|
MeasureValTxBl.Text = sItemsMsg(0).Split("="c)(1)
|
||||||
|
sItemsMsg(1) = sItemsMsg(1).Trim
|
||||||
|
Dim sSubItemMsg As String() = sItemsMsg(1).Split(" "c)
|
||||||
|
If sSubItemMsg.Count > 1 Then
|
||||||
|
dXValTxBl.Text = sSubItemMsg(0).Split("="c)(1)
|
||||||
|
dYValTxBl.Text = sSubItemMsg(1).Split("="c)(1)
|
||||||
|
dZValTxBl.Text = sSubItemMsg(2).Split("="c)(1)
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
MeasureValTxBl.Text = sMsg
|
||||||
|
End If
|
||||||
|
DistanceStkPnl.Visibility = Visibility.Visible
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub NewBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewBtn.Click
|
Private Sub NewBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewBtn.Click
|
||||||
VeinMatching.Clear()
|
VeinMatching.Clear()
|
||||||
End Sub
|
End Sub
|
||||||
@@ -211,6 +232,25 @@ Public Class VeinMatchingWindow
|
|||||||
VeinMatching.LoadCurrPartFromProj()
|
VeinMatching.LoadCurrPartFromProj()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub MeasureBtn_Checked(sender As Object, e As RoutedEventArgs) Handles MeasureBtn.Checked
|
||||||
|
VeinMatchingScene.SetStatusGetDistance()
|
||||||
|
Dim ptRef1 As Point3d
|
||||||
|
If EgtGetTableRef(1, ptRef1) Then
|
||||||
|
EgtSetGridFrame(New Frame3d(ptRef1))
|
||||||
|
VeinMatchingScene.SetGridCursorPos(True)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub MeasureBtn_Unchecked(sender As Object, e As RoutedEventArgs) Handles MeasureBtn.Unchecked
|
||||||
|
VeinMatchingScene.ResetStatusGetDistance()
|
||||||
|
VeinMatchingScene.SetStatusNull()
|
||||||
|
MeasureValTxBl.Text = ""
|
||||||
|
dXValTxBl.Text = ""
|
||||||
|
dYValTxBl.Text = ""
|
||||||
|
dZValTxBl.Text = ""
|
||||||
|
DistanceStkPnl.Visibility = Visibility.Hidden
|
||||||
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
Friend Module VeinMatching
|
Friend Module VeinMatching
|
||||||
|
|||||||
Reference in New Issue
Block a user