diff --git a/DrawPageUC.xaml b/DrawPageUC.xaml
index b4c5a5a..beba1b2 100644
--- a/DrawPageUC.xaml
+++ b/DrawPageUC.xaml
@@ -33,18 +33,6 @@
-
@@ -65,52 +53,6 @@
-
-
diff --git a/DrawPageUC.xaml.vb b/DrawPageUC.xaml.vb
index 641c2d5..3b4e6c9 100644
--- a/DrawPageUC.xaml.vb
+++ b/DrawPageUC.xaml.vb
@@ -25,8 +25,8 @@ Public Class DrawPageUC
Private m_bDrawOk As Boolean = False
Private m_bFirst As Boolean = True
- ' Lista di tutte le entità inclinabili presenti nel progetto
- Friend m_SideAngleEntityList As New List(Of SideAngleEntity)
+ '' Lista di tutte le entità inclinabili presenti nel progetto
+ 'Friend m_SideAngleEntityList As New List(Of SideAngleEntity)
Friend ReadOnly Property CVars
Get
@@ -198,7 +198,7 @@ Public Class DrawPageUC
' Elimino nome del componente precedente
m_sCompoName = String.Empty
' Reset inclinazioni
- DeleteSideAngle()
+ m_SideAngle.DeleteSideAngle()
If String.IsNullOrEmpty(m_MainComponentPage.m_SecondaryComponentPage.m_sCurrCompo) Then
DrawPage_Loaded(sender, e)
Else
@@ -359,7 +359,7 @@ Public Class DrawPageUC
' Ne recupero il layer OutLoop
Dim nOutLoopLayer As Integer = EgtGetFirstNameInGroup(nId2, "OutLoop")
' Modifico inclinazione lati
- For Each Entity In m_SideAngleEntityList
+ For Each Entity In m_SideAngle.m_SideAngleEntityList
Dim nCurrEntityName As Integer = EgtGetFirstNameInGroup(nOutLoopLayer, Entity.sEntityName)
If Entity.dSideAngle <> 0 Then
' Scrivo nuovo angolo nelle info
@@ -400,7 +400,7 @@ Public Class DrawPageUC
' Elimino nome del componente precedente
m_sCompoName = String.Empty
' Reset inclinazioni
- DeleteSideAngle()
+ m_SideAngle.DeleteSideAngle()
'Istruzioni per chiudere ImportPageUC e aprire CadCutPageUC
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_DrawPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
@@ -412,29 +412,13 @@ Public Class DrawPageUC
' Elimino nome del componente precedente
m_sCompoName = String.Empty
' Reset inclinazioni
- DeleteSideAngle()
+ m_SideAngle.DeleteSideAngle()
'Istruzioni per chiudere ImportPageUC e aprire CadCutPageUC
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_DrawPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.CadCut
End Sub
- Private Sub DeleteSideAngle()
- ' Cancello lista lati inclinati
- m_SideAngleEntityList.Clear()
- ' Annullo tutti i CheckBox
- m_SideAngle.A1.IsChecked = False
- m_SideAngle.A2.IsChecked = False
- m_SideAngle.A3.IsChecked = False
- m_SideAngle.A4.IsChecked = False
- m_SideAngle.A5.IsChecked = False
- m_SideAngle.A6.IsChecked = False
- m_SideAngle.A7.IsChecked = False
- m_SideAngle.A8.IsChecked = False
- m_SideAngle.A9.IsChecked = False
- m_SideAngle.A10.IsChecked = False
-
- End Sub
Private Sub DrawPage_Unloaded(sender As Object, e As RoutedEventArgs)
'Seleziono la Tab e la Page di apertura
Select Case m_ActiveComponentPage
diff --git a/ImportPageUC.xaml b/ImportPageUC.xaml
index 4bebdf5..bef3658 100644
--- a/ImportPageUC.xaml
+++ b/ImportPageUC.xaml
@@ -19,25 +19,40 @@
-
-
+
-
-
-
+
-
+
-
+
+
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ImportPageUC.xaml.vb b/ImportPageUC.xaml.vb
index 29d0bf8..13d788c 100644
--- a/ImportPageUC.xaml.vb
+++ b/ImportPageUC.xaml.vb
@@ -5,37 +5,58 @@ Imports System.Runtime.InteropServices
Public Class ImportPageUC
- 'Riferimento alla MainWindow
- Private m_MainWindow As MainWindow = Application.Current.MainWindow
+ 'Riferimento alla MainWindow
+ Private m_MainWindow As MainWindow = Application.Current.MainWindow
'Dichiarazione del UserControl SceneButtons
- Friend m_SceneButtons As SceneButtonsUC
+ Friend m_SceneButtons As SceneButtonsUC
- ' Properties
- Private m_sCurrDir As String = String.Empty
- Private m_sCurrFile As String = String.Empty
- Private m_nFileType As Integer = FT.NULL
- Private m_bFirst As Boolean = True
- Private m_bMM As Boolean = True
+ ' Variabilee che contiene l'entità selezionata
+ Friend m_nSelectedPart As Integer = GDB_ID.NULL
+ ' Evento che viene lanciato quando cambia il pezzo selezionato
+ Public Event SelectedPartChanged(ByVal nPartId As Integer)
+ ' Proprietà che lancia l'evento quando cambia il valore della variabile
+ Private Property nSelectedPart As Integer
+ Get
+ Return m_nSelectedPart
+ End Get
+ Set(value As Integer)
+ m_nSelectedPart = value
+ RaiseEvent SelectedPartChanged(value)
+ End Set
+ End Property
+ 'Variabile che contiene l'entità selezionata precedente
+ Friend m_PrevSelPart As Integer = GDB_ID.NULL
- 'Dichiarazione Scene
- Friend WithEvents ImportScene As New Scene
- Dim ImportSceneHost As New System.Windows.Forms.Integration.WindowsFormsHost
+ ' Dichiarazione SideAngleUc
+ Friend m_SideAngleUC As SideAngleUC
+
+ ' Properties
+ Private m_sCurrDir As String = String.Empty
+ Private m_sCurrFile As String = String.Empty
+ Private m_nFileType As Integer = FT.NULL
+ Private m_bFirst As Boolean = True
+ Private m_bMM As Boolean = True
+
+ 'Dichiarazione Scene
+ Friend WithEvents ImportScene As New Scene
+ Dim ImportSceneHost As New System.Windows.Forms.Integration.WindowsFormsHost
Private Sub ImportPage_Initialized(sender As Object, e As EventArgs)
- 'Creazione del UserCOntrol SceneButtons
+ 'Creazione degli UserControl
m_SceneButtons = New SceneButtonsUC
+ m_SideAngleUC = New SideAngleUC
- 'Posizionemento nella griglia del UserControl SceneButtons
- m_SceneButtons.SetValue(Grid.ColumnProperty, 1)
+ 'Posizionemento nella griglia degli UserControl
+ m_SceneButtons.SetValue(Grid.ColumnProperty, 2)
+ m_SideAngleUC.SetValue(Grid.RowProperty, 2)
UpperButtonGrid.Children.Add(m_SceneButtons)
'Assegnazione scena all'host e posizionamento nella ImportPageGrid
ImportSceneHost.Child = ImportScene
ImportSceneHost.SetValue(Grid.ColumnProperty, 1)
- ImportSceneHost.SetValue(Grid.RowProperty, 2)
- 'ImportSceneHost.SetValue(Grid.RowSpanProperty, 2)
+ ImportSceneHost.SetValue(Grid.RowProperty, 1)
Me.ImportPageGrid.Children.Add(ImportSceneHost)
'Imposto i messaggi letti dal file dei messaggi
@@ -137,7 +158,7 @@ Public Class ImportPageUC
Return LoadDisks()
End If
Dim TempPath As New Text.StringBuilder(260)
- PathCompactPathEx(TempPath, m_sCurrDir, 28, 0)
+ PathCompactPathEx(TempPath, m_sCurrDir, 22, 0)
' lo visualizzo
FilePathTxBl.Content = TempPath.ToString
' pulisco la lista
@@ -152,7 +173,7 @@ Public Class ImportPageUC
' per saltare i link, troppo complessi da gestire
If (DirI.Attributes And FileAttributes.Hidden) <> FileAttributes.Hidden Or
(DirI.Attributes And FileAttributes.System) <> FileAttributes.System Then
- m_MainWindow.m_ImportItemList.Add(New IconListBoxItem(DirI.Name, 2))
+ m_MainWindow.m_ImportItemList.Add(New IconListBoxItem(DirI.Name, 2))
End If
Next
' elenco dei file
@@ -161,7 +182,7 @@ Public Class ImportPageUC
For Each FileI In vFileI
Dim sExt As String = Path.GetExtension(FileI.Name).ToUpper()
If sExt = ".DXF" Or sExt = ".NGE" Then
- m_MainWindow.m_ImportItemList.Add(New IconListBoxItem(FileI.Name, 3))
+ m_MainWindow.m_ImportItemList.Add(New IconListBoxItem(FileI.Name, 3))
End If
Next
' pulisco la vista
@@ -293,7 +314,10 @@ Public Class ImportPageUC
If nStat = GDB_ST.SEL Then
EgtDeselectObj(nPartId)
Else
+ EgtDeselectAll()
EgtSelectObj(nPartId)
+ m_PrevSelPart = nSelectedPart
+ nSelectedPart = nPartId
End If
EgtDraw()
Exit While
@@ -302,6 +326,13 @@ Public Class ImportPageUC
End While
End Sub
+ Private Sub Me_SelectedPartChanged(nPartId As Integer) Handles Me.SelectedPartChanged
+ ' Se sono in modalità inclinazioni calcolo lati inclinabili e creo testi
+ If SideAngleBtn.IsChecked Then
+ m_SideAngleUC.ReLoadSideAnglePage()
+ End If
+ End Sub
+
Private Sub UseLayerBtn_Click(sender As Object, e As RoutedEventArgs) Handles UseLayerBtn.Click
' Creo i pezzi
Dim nType As Integer = If(m_nFileType = FT.NGE, FPC_TYPE.NGE, FPC_TYPE.LAYER)
@@ -471,6 +502,30 @@ Public Class ImportPageUC
Private Sub ImportPage_Unloaded(sender As Object, e As RoutedEventArgs)
' Salvo direttorio corrente
WritePrivateProfileString(S_FLATPARTS, K_FLPCURRDIR, m_sCurrDir, m_MainWindow.GetIniFile())
+ ' Tolgo pagina inclinazioni se attiva
+ If SideAngleBtn.IsChecked Then
+ FilePathTxBl.Visibility = Windows.Visibility.Visible
+ FileListBox.Visibility = Windows.Visibility.Visible
+ LeftGrid.Children.Remove(m_SideAngleUC)
+ SideAngleBtn.IsChecked = False
+ End If
+ End Sub
+
+ Private Sub SideAngleBtn_Click(sender As Object, e As RoutedEventArgs) Handles SideAngleBtn.Click
+ If SideAngleBtn.IsChecked Then
+ LeftGrid.Children.Add(m_SideAngleUC)
+ FilePathTxBl.Visibility = Windows.Visibility.Hidden
+ FileListBox.Visibility = Windows.Visibility.Hidden
+ Else
+ FilePathTxBl.Visibility = Windows.Visibility.Visible
+ FileListBox.Visibility = Windows.Visibility.Visible
+ LeftGrid.Children.Remove(m_SideAngleUC)
+ ' Ricavo nome primo pezzo
+ Dim Part1 As Integer = EgtGetFirstInGroup(GDB_ID.ROOT)
+ ' Ricavo nome pezzo precedentemente selezionato
+ Part1 = m_MainWindow.m_ImportPageUC.m_nSelectedPart
+ EgtErase(EgtGetFirstNameInGroup(Part1, "SideAngle"))
+ End If
End Sub
End Class
diff --git a/OmagCUTDictionary.xaml b/OmagCUTDictionary.xaml
index a5af85a..ab49812 100644
--- a/OmagCUTDictionary.xaml
+++ b/OmagCUTDictionary.xaml
@@ -62,8 +62,9 @@
-
-
+
+
@@ -279,6 +280,202 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -316,14 +513,329 @@
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -344,6 +856,11 @@
+
+
+
+ -->
diff --git a/OpenPageUC.xaml b/OpenPageUC.xaml
index a438deb..326b844 100644
--- a/OpenPageUC.xaml
+++ b/OpenPageUC.xaml
@@ -34,7 +34,7 @@
-
+
diff --git a/OpenPageUC.xaml.vb b/OpenPageUC.xaml.vb
index 28be680..954512f 100644
--- a/OpenPageUC.xaml.vb
+++ b/OpenPageUC.xaml.vb
@@ -101,7 +101,7 @@ Public Class OpenPageUC
Return LoadDisks()
End If
Dim TempPath As New Text.StringBuilder(260)
- PathCompactPathEx(TempPath, m_sCurrDir, 28, 0)
+ PathCompactPathEx(TempPath, m_sCurrDir, 22, 0)
' lo visualizzo
FilePathTxBl.Content = TempPath.ToString
' pulisco la lista
diff --git a/PhotoPageUC.xaml b/PhotoPageUC.xaml
index 6ac74d2..c5ebc1c 100644
--- a/PhotoPageUC.xaml
+++ b/PhotoPageUC.xaml
@@ -12,53 +12,50 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PhotoPageUC.xaml.vb b/PhotoPageUC.xaml.vb
index 0c3c792..3b4bdf0 100644
--- a/PhotoPageUC.xaml.vb
+++ b/PhotoPageUC.xaml.vb
@@ -31,7 +31,7 @@ Public Class PhotoPageUC
Return LoadDisks()
End If
Dim TempPath As New Text.StringBuilder(260)
- PathCompactPathEx(TempPath, m_sCurrDir, 28, 0)
+ PathCompactPathEx(TempPath, m_sCurrDir, 22, 0)
' lo visualizzo
FilePathTxBl.Content = TempPath.ToString
' pulisco la lista
diff --git a/RawPartPageUC.xaml b/RawPartPageUC.xaml
index 77ffeae..853d09e 100644
--- a/RawPartPageUC.xaml
+++ b/RawPartPageUC.xaml
@@ -93,7 +93,7 @@
+ Background="LightGray" MaxDropDownHeight="600">
diff --git a/Resources/RawProbe.png b/Resources/RawProbe.png
index c9484ed..e0d39a1 100644
Binary files a/Resources/RawProbe.png and b/Resources/RawProbe.png differ
diff --git a/Resources/SawProbe.png b/Resources/SawProbe.png
index 2371502..229e63c 100644
Binary files a/Resources/SawProbe.png and b/Resources/SawProbe.png differ
diff --git a/SideAngleUc.xaml.vb b/SideAngleUc.xaml.vb
index 45ccf2f..e86b9d1 100644
--- a/SideAngleUc.xaml.vb
+++ b/SideAngleUc.xaml.vb
@@ -6,27 +6,44 @@ Public Class SideAngleUC
Private m_MainWindow As MainWindow = Application.Current.MainWindow
Private m_DrawPage As DrawPageUC
+ ' Riferimento alla pagina che ha aperto SideAngleUC
+ Private m_CallingPage As MainWindow.Pages
+
+ ' Lista di tutte le entità inclinabili presenti nel progetto
+ Friend m_SideAngleEntityList As New List(Of SideAngleEntity)
+
Private Sub SideAngleUC_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
' Copio riferimento alla DrawPage
m_DrawPage = m_MainWindow.m_DrawPageUC
- ' Imposto questa come pagina correntemente visualizzata nella drawpage
- m_DrawPage.m_ActiveComponentPage = DrawPageUC.Pages.SideAngle
+ m_CallingPage = m_MainWindow.m_ActivePage
- ' Imposto contesto corrente
- EgtSetCurrentContext(m_MainWindow.m_DrawPageUC.DrawScene.GetCtx())
+ If m_CallingPage = MainWindow.Pages.Draw Then
+ ' Imposto questa come pagina correntemente visualizzata nella drawpage
+ m_DrawPage.m_ActiveComponentPage = DrawPageUC.Pages.SideAngle
- ' se la lista non è vuota la leggo e metto le inclinazioni giuste
- If m_DrawPage.m_SideAngleEntityList.Count > 0 Then
- ' Aggiorno indici che potrebbero essere cambiati se sono state modificate le misure
- RefreshGeomId()
- ' Aggiorno testi in base alla tabella
- RefreshSideAngleText()
- ' Aggiorno elenco variabili
+ ' Imposto contesto corrente
+ EgtSetCurrentContext(m_MainWindow.m_DrawPageUC.DrawScene.GetCtx())
+ ' se la lista non è vuota la leggo e metto le inclinazioni giuste
+ If m_SideAngleEntityList.Count > 0 Then
+ ' Aggiorno indici che potrebbero essere cambiati se sono state modificate le misure
+ RefreshGeomId()
+ ' Aggiorno testi in base alla tabella
+ RefreshSideAngleText()
+ ' Aggiorno elenco variabili
- Else
+ Else
+ ' Inizializzo lati per angoli (ne compilo la lista e aggiungo la scritta nel disegno)
+ InitSideAngleLine()
+ End If
+
+ ElseIf m_CallingPage = MainWindow.Pages.Import Then
+ ' Imposto contesto corrente
+ EgtSetCurrentContext(m_MainWindow.m_ImportPageUC.ImportScene.GetCtx())
+ DeleteSideAngle()
' Inizializzo lati per angoli (ne compilo la lista e aggiungo la scritta nel disegno)
InitSideAngleLine()
+
End If
' Gestisco Checkbox e nomi in base al numero di lati inclinabili
@@ -40,17 +57,16 @@ Public Class SideAngleUC
EgtSetStatus(EgtGetFirstNameInGroup(Part1, "Etichette"), GDB_ST.OFF)
EgtZoom(ZM.ALL)
EgtDraw()
- EgtSaveFile("C:\Temp\qqq.nge", NGE.TEXT)
End Sub
Private Sub TxBlChBxView()
- For Index As Integer = 1 To 10 - m_DrawPage.m_SideAngleEntityList.Count
+ For Index As Integer = 1 To 10 - m_SideAngleEntityList.Count
GetChBxFromIndex(Index).Visibility = Windows.Visibility.Hidden
GetTxBlFromIndex(Index).Visibility = Windows.Visibility.Hidden
Next
' Indice dei nomi per TxBl
Dim TxBlIndex As Integer = 1
- For Index As Integer = 10 - m_DrawPage.m_SideAngleEntityList.Count + 1 To 10
+ For Index As Integer = 10 - m_SideAngleEntityList.Count + 1 To 10
GetChBxFromIndex(Index).Visibility = Windows.Visibility.Visible
GetTxBlFromIndex(Index).Text = "A " & TxBlIndex
GetTxBlFromIndex(Index).Visibility = Windows.Visibility.Visible
@@ -109,16 +125,23 @@ Public Class SideAngleUC
End Function
Private Sub SideAngleUC_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
- ' Ricavo nome primo pezzo
- Dim Part1 As Integer = EgtGetFirstInGroup(GDB_ID.ROOT)
- ' Attivo layer delle misure
- EgtSetStatus(EgtGetFirstNameInGroup(Part1, "LayAux"), GDB_ST.ON_)
- EgtSetStatus(EgtGetFirstNameInGroup(Part1, "Quotature"), GDB_ST.ON_)
- EgtSetStatus(EgtGetFirstNameInGroup(Part1, "Etichette"), GDB_ST.ON_)
- ' Svuoto layer in cui sono presenti i testi con le inclinazioni dei lati
- EgtEmptyGroup(EgtGetFirstNameInGroup(Part1, "SideAngle"))
- EgtDraw()
+ Dim Part1 As Integer
+ If m_CallingPage = MainWindow.Pages.Draw Then
+ ' Ricavo nome primo pezzo
+ Part1 = EgtGetFirstInGroup(GDB_ID.ROOT)
+ ' Attivo layer delle misure
+ EgtSetStatus(EgtGetFirstNameInGroup(Part1, "LayAux"), GDB_ST.ON_)
+ EgtSetStatus(EgtGetFirstNameInGroup(Part1, "Quotature"), GDB_ST.ON_)
+ EgtSetStatus(EgtGetFirstNameInGroup(Part1, "Etichette"), GDB_ST.ON_)
+ ' Svuoto layer in cui sono presenti i testi con le inclinazioni dei lati
+ EgtEmptyGroup(EgtGetFirstNameInGroup(Part1, "SideAngle"))
+ ElseIf m_CallingPage = MainWindow.Pages.Import Then
+ ' Ricavo nome pezzo precedentemente selezionato
+ Part1 = m_MainWindow.m_ImportPageUC.m_PrevSelPart
+ EgtErase(EgtGetFirstNameInGroup(Part1, "SideAngle"))
+ End If
+ EgtDraw()
End Sub
Private Sub RefreshGeomId()
@@ -126,18 +149,27 @@ Public Class SideAngleUC
Dim Part1 As Integer = EgtGetFirstInGroup(GDB_ID.ROOT)
' Ricavo nome layer con geometria esterna pezzo
Dim OutLoop As Integer = EgtGetFirstNameInGroup(Part1, "OutLoop")
- For Each Entity In m_DrawPage.m_SideAngleEntityList
+ For Each Entity In m_SideAngleEntityList
Entity.nGeomId = EgtGetFirstNameInGroup(OutLoop, Entity.sEntityName)
Next
End Sub
Private Sub RefreshSideAngleText()
+ Dim Part1 As Integer
' Imposto contesto corrente
- EgtSetCurrentContext(m_MainWindow.m_DrawPageUC.DrawScene.GetCtx())
+ If m_CallingPage = MainWindow.Pages.Draw Then
+ ' Imposto contesto corrente
+ EgtSetCurrentContext(m_MainWindow.m_DrawPageUC.DrawScene.GetCtx())
+ ' Ricavo nome primo pezzo
+ Part1 = EgtGetFirstInGroup(GDB_ID.ROOT)
+ ElseIf m_CallingPage = MainWindow.Pages.Import Then
+ ' Imposto contesto corrente
+ EgtSetCurrentContext(m_MainWindow.m_ImportPageUC.ImportScene.GetCtx())
+ ' Ricavo nome primo pezzo
+ Part1 = EgtGetFirstSelectedObj()
+ End If
' Cancello testi già presenti
- ' Ricavo nome primo pezzo
- Dim Part1 As Integer = EgtGetFirstInGroup(GDB_ID.ROOT)
' Ricavo nome layer con geometria esterna pezzo
Dim OutLoop As Integer = EgtGetFirstNameInGroup(Part1, "OutLoop")
' Calcolo dimensione ingombro OutLoop
@@ -156,21 +188,31 @@ Public Class SideAngleUC
End If
' Lo svuoto
- For Each Entity In m_DrawPage.m_SideAngleEntityList
+ For Each Entity In m_SideAngleEntityList
' Creo testo con angolo di inclinazione
AddTextToLine(Entity.sEntityName & " = " & DoubleToString(Entity.dSideAngle, 1) & "°", Entity.nTextId, Entity.nGeomId, 10, dBBoxRad)
Next
'Aggiorno visualizzazione
+ EgtZoom(ZM.ALL)
EgtDraw()
End Sub
Private Sub InitSideAngleLine()
- ' Imposto contesto corrente
- EgtSetCurrentContext(m_MainWindow.m_DrawPageUC.DrawScene.GetCtx())
+ Dim Part1 As Integer
+ If m_CallingPage = MainWindow.Pages.Draw Then
+ ' Imposto contesto corrente
+ EgtSetCurrentContext(m_MainWindow.m_DrawPageUC.DrawScene.GetCtx())
+ ' Ricavo nome primo pezzo
+ Part1 = EgtGetFirstInGroup(GDB_ID.ROOT)
+ Else
+ ' Imposto contesto corrente
+ EgtSetCurrentContext(m_MainWindow.m_ImportPageUC.ImportScene.GetCtx())
+ ' Ricavo nome primo pezzo
+ Part1 = EgtGetFirstSelectedObj()
+ End If
- ' Ricavo nome primo pezzo
- Dim Part1 As Integer = EgtGetFirstInGroup(GDB_ID.ROOT)
+ AdjustFlatPart(Part1)
' Ricavo nome layer con geometria esterna pezzo
Dim OutLoop As Integer = EgtGetFirstNameInGroup(Part1, "OutLoop")
' Calcolo dimensione ingombro OutLoop
@@ -184,11 +226,14 @@ Public Class SideAngleUC
Dim LastLine As Integer = EgtGetLastInGroup(OutLoop)
Dim CurrLine As Integer = EgtGetFirstInGroup(OutLoop)
Dim NextLine As Integer = EgtGetNext(CurrLine)
+ 'Creo indice per numerare le entità in ImportPage
+ Dim nEntityIndex As Integer = 1
' Ciclo che verifica se possibile inclinare la linea corrente fino alla penultima
While NextLine <> GDB_ID.NULL
If VerifyIsSideAnglePossible(LastLine, CurrLine, NextLine) Then
' Aggiungo il lato alla lista di quelli inclinabili e ne azzero l'inclinazione
- AddSideAngle(CurrLine, TextLayer, dBBoxRad)
+ AddSideAngle(CurrLine, TextLayer, dBBoxRad, nEntityIndex)
+ nEntityIndex += 1
End If
LastLine = CurrLine
CurrLine = NextLine
@@ -197,7 +242,7 @@ Public Class SideAngleUC
' Verifico se possibile inclinare l'ultima linea
NextLine = EgtGetFirstInGroup(OutLoop)
If VerifyIsSideAnglePossible(LastLine, CurrLine, NextLine) Then
- AddSideAngle(CurrLine, TextLayer, dBBoxRad)
+ AddSideAngle(CurrLine, TextLayer, dBBoxRad, nEntityIndex)
End If
End Sub
@@ -257,11 +302,15 @@ Public Class SideAngleUC
End Function
' Funzione che gestisce le operazioni sull'entità da inclinare
- Private Sub AddSideAngle(CurrLine As Integer, TextLayer As Integer, dBBoxRad As Double)
+ Private Sub AddSideAngle(CurrLine As Integer, TextLayer As Integer, dBBoxRad As Double, nEntityIndex As Integer)
+ ' Se sono in importa
+ If m_CallingPage = MainWindow.Pages.Import Then
+ EgtSetName(CurrLine, "A" & nEntityIndex.ToString())
+ End If
' Aggiungo entità all'elenco di quelle inclinabili
Dim sEntityName As String = String.Empty
EgtGetName(CurrLine, sEntityName)
- m_MainWindow.m_DrawPageUC.m_SideAngleEntityList.Add(New SideAngleEntity(CurrLine, sEntityName, TextLayer, 0))
+ m_SideAngleEntityList.Add(New SideAngleEntity(CurrLine, sEntityName, TextLayer, 0))
' Cancello inclinazione nell'apposito campo info
EgtRemoveInfo(CurrLine, "SideAng")
' Creo testo con angolo di inclinazione 0
@@ -324,7 +373,7 @@ Public Class SideAngleUC
dSideAngle = 0
End If
'Converto nome checkbox in nome elemento tenendo conto dello slittamento verso il basso
- Dim CurrSideAng As String = "A" & m_DrawPage.m_SideAngleEntityList.Count - (10 - CurrCheckBox.Name.Substring(1))
+ Dim CurrSideAng As String = "A" & m_SideAngleEntityList.Count - (10 - CurrCheckBox.Name.Substring(1))
' Lo modifico nella geometria e nella lista inclinazioni
ModifySideAngle(CurrSideAng, dSideAngle)
'Aggiorno tutti i testi
@@ -351,9 +400,26 @@ Public Class SideAngleUC
Return True
End Function
+ Friend Sub DeleteSideAngle()
+ ' Cancello lista lati inclinati
+ m_SideAngleEntityList.Clear()
+ ' Annullo tutti i CheckBox
+ A1.IsChecked = False
+ A2.IsChecked = False
+ A3.IsChecked = False
+ A4.IsChecked = False
+ A5.IsChecked = False
+ A6.IsChecked = False
+ A7.IsChecked = False
+ A8.IsChecked = False
+ A9.IsChecked = False
+ A10.IsChecked = False
+
+ End Sub
+
Private Sub SideAngleTxBx_EgtClosed(sender As Object, e As EventArgs) Handles SideAngleTxBx.EgtClosed
' ciclo sui checkbox calcolati sul numero di lati inclinabili presenti
- For Index As Integer = 10 - m_DrawPage.m_SideAngleEntityList.Count + 1 To 10
+ For Index As Integer = 10 - m_SideAngleEntityList.Count + 1 To 10
' Nuovo angolo di inclinazione
Dim dSideAngle As Double
' Se checked lo imposto al valore letto dalla TxBx
@@ -364,7 +430,7 @@ Public Class SideAngleUC
dSideAngle = 0
End If
'Converto nome checkbox in nome elemento tenendo conto dello slittamento verso il basso
- Dim CurrSideAng As String = "A" & m_DrawPage.m_SideAngleEntityList.Count - (10 - GetChBxFromIndex(Index).Name.Substring(1))
+ Dim CurrSideAng As String = "A" & m_SideAngleEntityList.Count - (10 - GetChBxFromIndex(Index).Name.Substring(1))
' Lo modifico nella geometria e nella lista inclinazioni
ModifySideAngle(CurrSideAng, dSideAngle)
'Aggiorno tutti i testi
@@ -373,6 +439,11 @@ Public Class SideAngleUC
End Sub
+ Friend Sub ReLoadSideAnglePage()
+ SideAngleUC_Unloaded(Me, New RoutedEventArgs)
+ SideAngleUC_Loaded(Me, New RoutedEventArgs)
+ End Sub
+
End Class
Friend Class SideAngleEntity
@@ -422,7 +493,18 @@ Friend Class SideAngleEntity
End Sub
Friend Shared Function FindEntity(sEntityName As String) As SideAngleEntity
- For Each Entity In m_MainWindow.m_DrawPageUC.m_SideAngleEntityList
+ Dim EntityList As List(Of SideAngleEntity) = Nothing
+ If m_MainWindow.m_ActivePage = MainWindow.Pages.Draw Then
+ EntityList = m_MainWindow.m_DrawPageUC.m_SideAngle.m_SideAngleEntityList
+ ElseIf m_MainWindow.m_ActivePage = MainWindow.Pages.Import Then
+ EntityList = m_MainWindow.m_ImportPageUC.m_SideAngleUC.m_SideAngleEntityList
+ End If
+
+ If IsNothing(EntityList) Then
+ Return Nothing
+ End If
+
+ For Each Entity In EntityList
If Entity.m_sEntityName = sEntityName Then
Return Entity
End If