Pagina Alz/Front inserita nel programma

This commit is contained in:
NicolaP
2021-06-17 19:16:23 +02:00
parent 4e79447e59
commit 3e2b820aa6
3 changed files with 443 additions and 149 deletions
+102 -56
View File
@@ -9,7 +9,7 @@
<!-- Definizione della Grid Laterale -->
<Grid Name="VariablesCompoGrid" Grid.RowSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.2*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.3*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
@@ -37,101 +37,132 @@
<TextBlock Name="SideAngleBl" Grid.Row="0" Grid.Column="2" Text="Alz."
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<CheckBox Name="A1" Grid.Column="1" Grid.Row="1" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<!--Titolo della colonna dei FRONTALINI-->
<TextBlock Name="HeelBl" Grid.Row="0" Grid.Column="3" Text="Front."
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<TextBlock Name="Entity1" Grid.Row="1" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="A1TxBx" Grid.Column="2" Grid.Row="1" Width="60"
<CheckBox Name="A1" Grid.Column="2" Grid.Row="1" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-10,0,0,0"/>
<CheckBox Name="F1" Grid.Column="3" Grid.Row="1" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-10,0,0,0"/>
<!--<EgtWPFLib:EgtTextBox Name="A1TxBx" Grid.Column="2" Grid.Row="1" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H1TxBx" Grid.Column="3" Grid.Row="1" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{StaticResource OmagCut_CalculatorTextBox}"/>-->
<TextBlock Name="Entity2" Grid.Row="2" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A2" Grid.Column="1" Grid.Row="2" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A2TxBx" Grid.Column="2" Grid.Row="2" Width="60"
<CheckBox Name="A2" Grid.Column="2" Grid.Row="2" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<CheckBox Name="F2" Grid.Column="3" Grid.Row="2" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<!--<EgtWPFLib:EgtTextBox Name="A2TxBx" Grid.Column="2" Grid.Row="2" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H2TxBx" Grid.Column="3" Grid.Row="2" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{StaticResource OmagCut_CalculatorTextBox}"/>-->
<TextBlock Name="Entity3" Grid.Row="3" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A3" Grid.Column="1" Grid.Row="3" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A3TxBx" Grid.Column="2" Grid.Row="3" Width="60"
<CheckBox Name="A3" Grid.Column="2" Grid.Row="3" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<CheckBox Name="F3" Grid.Column="3" Grid.Row="3" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<!--<EgtWPFLib:EgtTextBox Name="A3TxBx" Grid.Column="2" Grid.Row="3" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H3TxBx" Grid.Column="3" Grid.Row="3" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{StaticResource OmagCut_CalculatorTextBox}"/>-->
<TextBlock Name="Entity4" Grid.Row="4" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A4" Grid.Column="1" Grid.Row="4" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A4TxBx" Grid.Column="2" Grid.Row="4" Width="60"
<CheckBox Name="A4" Grid.Column="2" Grid.Row="4" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<CheckBox Name="F4" Grid.Column="3" Grid.Row="4" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<!--<EgtWPFLib:EgtTextBox Name="A4TxBx" Grid.Column="2" Grid.Row="4" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H4TxBx" Grid.Column="3" Grid.Row="4" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{StaticResource OmagCut_CalculatorTextBox}"/>-->
<TextBlock Name="Entity5" Grid.Row="5" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A5" Grid.Column="1" Grid.Row="5" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A5TxBx" Grid.Column="2" Grid.Row="5" Width="60"
<CheckBox Name="A5" Grid.Column="2" Grid.Row="5" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<CheckBox Name="F5" Grid.Column="3" Grid.Row="5" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<!--<EgtWPFLib:EgtTextBox Name="A5TxBx" Grid.Column="2" Grid.Row="5" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H5TxBx" Grid.Column="3" Grid.Row="5" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{StaticResource OmagCut_CalculatorTextBox}"/>-->
<TextBlock Name="Entity6" Grid.Row="6" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A6" Grid.Column="1" Grid.Row="6" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A6TxBx" Grid.Column="2" Grid.Row="6" Width="60"
<CheckBox Name="A6" Grid.Column="2" Grid.Row="6" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<CheckBox Name="F6" Grid.Column="3" Grid.Row="6" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<!--<EgtWPFLib:EgtTextBox Name="A6TxBx" Grid.Column="2" Grid.Row="6" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H6TxBx" Grid.Column="3" Grid.Row="6" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{StaticResource OmagCut_CalculatorTextBox}"/>-->
<TextBlock Name="Entity7" Grid.Row="7" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A7" Grid.Column="1" Grid.Row="7" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A7TxBx" Grid.Column="2" Grid.Row="7" Width="60"
<CheckBox Name="A7" Grid.Column="2" Grid.Row="7" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<CheckBox Name="F7" Grid.Column="3" Grid.Row="7" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<!--<EgtWPFLib:EgtTextBox Name="A7TxBx" Grid.Column="2" Grid.Row="7" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H7TxBx" Grid.Column="3" Grid.Row="7" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{StaticResource OmagCut_CalculatorTextBox}"/>-->
<TextBlock Name="Entity8" Grid.Row="8" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A8" Grid.Column="1" Grid.Row="8" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A8TxBx" Grid.Column="2" Grid.Row="8" Width="60"
<CheckBox Name="A8" Grid.Column="2" Grid.Row="8" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<CheckBox Name="F8" Grid.Column="3" Grid.Row="8" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<!--<EgtWPFLib:EgtTextBox Name="A8TxBx" Grid.Column="2" Grid.Row="8" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H8TxBx" Grid.Column="3" Grid.Row="8" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{StaticResource OmagCut_CalculatorTextBox}"/>-->
<TextBlock Name="Entity9" Grid.Row="9" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A9" Grid.Column="1" Grid.Row="9" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A9TxBx" Grid.Column="2" Grid.Row="9" Width="60"
<CheckBox Name="A9" Grid.Column="2" Grid.Row="9" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<CheckBox Name="F9" Grid.Column="3" Grid.Row="9" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<!--<EgtWPFLib:EgtTextBox Name="A9TxBx" Grid.Column="2" Grid.Row="9" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H9TxBx" Grid.Column="3" Grid.Row="9" Width="60"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{StaticResource OmagCut_CalculatorTextBox}"/>-->
<TextBlock Name="Entity10" Grid.Row="10" Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
<CheckBox Name="A10" Grid.Column="1" Grid.Row="10" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<EgtWPFLib:EgtTextBox Name="A10TxBx" Grid.Column="2" Grid.Row="10" Width="60"
<CheckBox Name="A10" Grid.Column="2" Grid.Row="10" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<CheckBox Name="F10" Grid.Column="3" Grid.Row="10" Height="30" Width="40" HorizontalAlignment="Right"
Margin="-20,0,0,0"/>
<!--<EgtWPFLib:EgtTextBox Name="A10TxBx" Grid.Column="2" Grid.Row="10" Width="60"
Margin="0,0,0,-2"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="H10TxBx" Grid.Column="3" Grid.Row="10" Width="60"
Margin="0,0,0,-2"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Style="{StaticResource OmagCut_CalculatorTextBox}"/>-->
<Grid Grid.Column="0" Grid.Row="12" Grid.ColumnSpan="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="0.3*"/>
<ColumnDefinition Width="0.6*"/>
<ColumnDefinition Width="0.6*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
@@ -141,21 +172,36 @@
</Grid.RowDefinitions>
<TextBlock Name="Parameter1TxBl" Grid.Row="0" Grid.ColumnSpan="2"
Text="Offset"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter1TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="0"
Width="85" Height="30"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
Text="Offset"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter1ATxBx"
Grid.Column="2" Grid.Row="0"
HorizontalAlignment="Right"
Width="60" Height="30" Margin="0,0,0,0"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="Parameter1FTxBx"
Grid.Column="3" Grid.Row="0"
HorizontalAlignment="Right"
Width="60" Height="30" Margin="0,0,0,0"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="Parameter2TxBl" Grid.Row="1" Grid.ColumnSpan="2"
Text="Offset2"
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
<EgtWPFLib:EgtTextBox Name="Parameter2TxBx"
Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="1" Width="85"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="Parameter2ATxBx"
Grid.Column="2" Grid.Row="1"
HorizontalAlignment="Right"
Width="60" Height="30" Margin="0,0,0,0"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<EgtWPFLib:EgtTextBox Name="Parameter2FTxBx"
Grid.Column="3" Grid.Row="1"
HorizontalAlignment="Right"
Width="60" Height="30" Margin="0,0,0,0"
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
<!--Gestisco nello spazio di una TextBox due TextBoxs--><!--
<UniformGrid Rows="1" Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="2" Width="90" >
+339 -93
View File
@@ -1,6 +1,28 @@
Imports EgtUILib
Imports System.Globalization
Imports EgtUILib
Imports EgtWPFLib
Public Class AlzFrontUC
Private Const NUM_VAR As Integer = 10
Private Const LUA_CMP_VARS As String = "CMP"
Private Const LUA_CMP_DRAW As String = "CMP_Draw"
Private Const INFO_VAR As String = "Var"
Private Const INFO_CMP As String = "CMP"
Private Const INFO_ID As String = "ID"
Friend Const LUA_CMP_INDEX As String = LUA_CMP_VARS & ".Ind"
Friend Const LUA_CMP_INTERNAL As String = LUA_CMP_VARS & ".Int"
Friend Const LUA_REMOVEHOLE As String = "RemoveHole"
' Costanti layer componenti
Friend Const COMPO_LAYER_AUX As String = "LayAux"
Friend Const COMPO_LAYER_QUOTATURE As String = "Quotature"
Friend Const COMPO_LAYER_ETICHETTE As String = "Etichette"
' Properties
Private m_sCompoDir As String = String.Empty
Private m_sCompoName As String = String.Empty
Friend m_bDrawOk As Boolean = False
Private m_bFirst As Boolean = True
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
' Riferimento alla pagina che ha aperto SideAngleUC
@@ -56,10 +78,17 @@ Public Class AlzFrontUC
Private Sub InitSides()
' pulisco la lista dei lati
AlzFrontEntityList.Clear()
' Id del pezzo
Dim PartId As Integer = GDB_ID.NULL
' Id del loop eseterno
Dim LoopId As Integer = GDB_ID.NULL
' definisco i valori delle altezza e degli angoli di spoglia per le alzatine e i frontalini
GetPrivateProfileString("Alz&Front", "A_Height", "0", Parameter1ATxBx.Text, m_MainWindow.GetIniFile)
GetPrivateProfileString("Alz&Front", "F_Height", "0", Parameter1FTxBx.Text, m_MainWindow.GetIniFile)
GetPrivateProfileString("Alz&Front", "A_DeltaAng", "0", Parameter2ATxBx.Text, m_MainWindow.GetIniFile)
GetPrivateProfileString("Alz&Front", "F_DeltaAng", "0", Parameter2FTxBx.Text, m_MainWindow.GetIniFile)
' Imposto contesto corrente
EgtSetCurrentContext(m_MainWindow.m_DrawPageUC.DrawScene.GetCtx())
' Ricavo nome primo pezzo
@@ -76,20 +105,20 @@ Public Class AlzFrontUC
' utilizzato per definire la dimensione dei caratteri delle label per i lati
m_dBBoxRad = 0.5 * Point3d.DistXY(ptMin, ptMax)
' Creo layer per testi ALZATINE
m_AlzLayer = EgtGetFirstNameInGroup(PartId, "Alzatina")
' Creo layer per testi ALZATINE, se non esiste
m_AlzLayer = EgtGetFirstNameInGroup(PartId, "AuxAlzatina")
If m_AlzLayer = GDB_ID.NULL And PartId <> GDB_ID.NULL Then
m_AlzLayer = EgtCreateGroup(PartId)
EgtSetName(m_AlzLayer, "Alzatina")
EgtSetName(m_AlzLayer, "AuxAlzatina")
EgtSetColor(m_AlzLayer, New Color3d(0, 0, 0))
End If
' Creo layer per testi FRONTALINI
m_Frontlayer = EgtGetFirstNameInGroup(PartId, "Frontalino")
' Creo layer per testi FRONTALINI, se non esiste
m_Frontlayer = EgtGetFirstNameInGroup(PartId, "AuxFrontalino")
If m_Frontlayer = GDB_ID.NULL And PartId <> GDB_ID.NULL Then
m_Frontlayer = EgtCreateGroup(PartId)
EgtSetName(m_Frontlayer, "Frontalino")
EgtSetColor(m_Frontlayer, New Color3d(0, 100, 0))
EgtSetName(m_Frontlayer, "AuxFrontalino")
EgtSetColor(m_Frontlayer, New Color3d(250, 0, 0))
End If
' Recupero Id della curva del Loop Esterno
@@ -99,17 +128,28 @@ Public Class AlzFrontUC
Dim nEntityIndex As Integer = 1
Dim nOtherIndex As Integer = 1
' Ciclo che verifica se possibile inclinare la curva corrente o inserire un gocciolatoio
' inserisco la linea nella lista
While CurrLine <> GDB_ID.NULL
Dim NextLine As Integer = EgtGetNext(CurrLine)
If NextLine = GDB_ID.NULL Then NextLine = EgtGetFirstInGroup(LoopId)
' scludo tutte le formo che non sono delle linee
If EgtGetType(CurrLine) = GDB_TY.CRV_LINE Then
' Aggiungo il lato alla lista di quelli su cui è possibile mettere il gocciolatoio
Dim sNameCurrLine As String = String.Empty
Dim nInfo As Integer = 0
EgtSetName(CurrLine, "A" & nEntityIndex.ToString)
EgtGetName(CurrLine, sNameCurrLine)
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine))
' recupero l'informazione
EgtGetInfo(CurrLine, "AF", nInfo)
If nInfo = 1 Then
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine, AlzFrontEntity.AlzFront.ALZATINA))
ElseIf nInfo = 2 Then
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine, AlzFrontEntity.AlzFront.FRONTALINO))
Else
AlzFrontEntityList.Add(New AlzFrontEntity(sNameCurrLine, CurrLine))
End If
nEntityIndex += 1
Else
EgtSetName(CurrLine, "B" & nOtherIndex.ToString)
nOtherIndex = nOtherIndex + 1
End If
PrevLine = CurrLine
@@ -167,21 +207,23 @@ Public Class AlzFrontUC
Dim Index As Integer = MAX_LINES - m_nShow + nI
' definisco la visibilità della label
GetTxBlFromIndex(Index).Visibility = Windows.Visibility.Visible
' definisco il nome della label (se volessi associare direttamente il nome della linea dovrei riordinare la lista!)
GetTxBlFromIndex(Index).Text = "A" & nI.ToString
GetChBxAlzFromIndex(Index).Visibility = Windows.Visibility.Visible
GetChBxFrontFromIndex(Index).Visibility = Windows.Visibility.Visible
GetChBxFromIndex(Index).Visibility = Windows.Visibility.Visible
' aggiungo i campi per allungare e accorciare i lati
GetAngleTxBxFromIndex(Index).Visibility = Windows.Visibility.Visible
GetHeelTxBxFromIndex(Index).Visibility = Windows.Visibility.Visible
' aggiungo i campi per allungare e accorciare i lati (adesso sostituito con le CheckBox)
'GetAngleTxBxFromIndex(Index).Visibility = Windows.Visibility.Visible
'GetHeelTxBxFromIndex(Index).Visibility = Windows.Visibility.Visible
Next
' Lati nascosti: nascondo i lati partendo dall'alto (se ho 4 lati la prima TextBx disponibile è la settima -> 11-4 = 7 lati nascosti)
For Index As Integer = 1 To MAX_LINES - m_nShow
GetChBxFromIndex(Index).Visibility = Windows.Visibility.Hidden
GetAngleTxBxFromIndex(Index).Visibility = Windows.Visibility.Hidden
GetHeelTxBxFromIndex(Index).Visibility = Windows.Visibility.Hidden
' definisco la visibilità della label
GetTxBlFromIndex(Index).Visibility = Windows.Visibility.Hidden
GetChBxAlzFromIndex(Index).Visibility = Windows.Visibility.Hidden
GetChBxFrontFromIndex(Index).Visibility = Windows.Visibility.Hidden
'GetAngleTxBxFromIndex(Index).Visibility = Windows.Visibility.Hidden
'GetHeelTxBxFromIndex(Index).Visibility = Windows.Visibility.Hidden
Next
End Sub
@@ -268,7 +310,7 @@ Public Class AlzFrontUC
End Function
#Region "CHIAMATA ALLE TEXT/CHECK/LABEL"
Private Function GetChBxFromIndex(Index As Integer) As CheckBox
Private Function GetChBxAlzFromIndex(Index As Integer) As CheckBox
Select Case Index
Case 1
Return A1
@@ -293,56 +335,131 @@ Public Class AlzFrontUC
End Select
End Function
Private Function GetAngleTxBxFromIndex(Index As Integer) As EgtWPFLib.EgtTextBox
Select Case Index
Case 1
Return A1TxBx
Case 2
Return A2TxBx
Case 3
Return A3TxBx
Case 4
Return A4TxBx
Case 5
Return A5TxBx
Case 6
Return A6TxBx
Case 7
Return A7TxBx
Case 8
Return A8TxBx
Case 9
Return A9TxBx
Private Function GetChBxAalZFromName(sName As String) As CheckBox
Select Case sName
Case "A1"
Return A1
Case "A2"
Return A2
Case "A3"
Return A3
Case "A4"
Return A4
Case "A5"
Return A5
Case "A6"
Return A6
Case "A7"
Return A7
Case "A8"
Return A8
Case "A9"
Return A9
Case Else
Return A10TxBx
Return A10
End Select
End Function
Private Function GetHeelTxBxFromIndex(Index As Integer) As EgtWPFLib.EgtTextBox
Private Function GetChBxFrontFromIndex(Index As Integer) As CheckBox
Select Case Index
Case 1
Return H1TxBx
Return F1
Case 2
Return H2TxBx
Return F2
Case 3
Return H3TxBx
Return F3
Case 4
Return H4TxBx
Return F4
Case 5
Return H5TxBx
Return F5
Case 6
Return H6TxBx
Return F6
Case 7
Return H7TxBx
Return F7
Case 8
Return H8TxBx
Return F8
Case 9
Return H9TxBx
Return F9
Case Else
Return H10TxBx
Return F10
End Select
End Function
Private Function GetChBxFrontFromName(sName As String) As CheckBox
Select Case sName
Case "F1"
Return F1
Case "F2"
Return F2
Case "F3"
Return F3
Case "F4"
Return F4
Case "F5"
Return F5
Case "F6"
Return F6
Case "F7"
Return F7
Case "F8"
Return F8
Case "F9"
Return F9
Case Else
Return F10
End Select
End Function
'Private Function GetAngleTxBxFromIndex(Index As Integer) As EgtWPFLib.EgtTextBox
' Select Case Index
' Case 1
' Return A1TxBx
' Case 2
' Return A2TxBx
' Case 3
' Return A3TxBx
' Case 4
' Return A4TxBx
' Case 5
' Return A5TxBx
' Case 6
' Return A6TxBx
' Case 7
' Return A7TxBx
' Case 8
' Return A8TxBx
' Case 9
' Return A9TxBx
' Case Else
' Return A10TxBx
' End Select
'End Function
'Private Function GetHeelTxBxFromIndex(Index As Integer) As EgtWPFLib.EgtTextBox
' Select Case Index
' Case 1
' Return H1TxBx
' Case 2
' Return H2TxBx
' Case 3
' Return H3TxBx
' Case 4
' Return H4TxBx
' Case 5
' Return H5TxBx
' Case 6
' Return H6TxBx
' Case 7
' Return H7TxBx
' Case 8
' Return H8TxBx
' Case 9
' Return H9TxBx
' Case Else
' Return H10TxBx
' End Select
'End Function
Private Function GetTxBlFromIndex(Index As Integer) As TextBlock
Select Case Index
Case 1
@@ -370,50 +487,133 @@ Public Class AlzFrontUC
#End Region ' Chiamata elle Text/Check/Label
' Per gestire la selezione delle Alzatine (devo ancora definire la CheckBox: An)
Private Sub A_Checked(sender As Object, e As RoutedEventArgs) Handles A1.Checked, A2.Checked, A3.Checked, A4.Checked
' Per gestire la selezione delle Alzatine
Private Sub A_Checked(sender As Object, e As RoutedEventArgs) Handles A1.Checked, A2.Checked, A3.Checked, A4.Checked, A5.Checked, A6.Checked, A7.Checked, A8.Checked, A9.Checked, A10.Checked
' recupero il nome della Check selezionata
Dim bIsAlzatina As Boolean = True
Dim sChName As String = DirectCast(sender, CheckBox).Name
Dim sItems As String() = Split(sChName, "A")
Dim nIndex As Integer
If sItems.Count > 1 Then
nIndex = CInt(sItems(1))
End If
Dim j As Integer = nIndex - (MAX_LINES - m_nShow)
AddTextToLine(AlzFrontEntityList(j).SideName, m_AlzLayer, AlzFrontEntityList(j).Id, 20, m_dBBoxRad, True)
Dim bIsChecked As Boolean = DirectCast(sender, CheckBox).IsChecked
Dim sSideName As String = GetSideFromCheck(sChName, bIsAlzatina)
Dim sOppositeCheckBox As String = GetOppositeCheck(sChName, bIsAlzatina)
RefreshList(sSideName, sOppositeCheckBox, bIsAlzatina, bIsChecked)
'For j = 0 To AlzFrontEntityList.Count() - 1
' If AlzFrontEntityList(j).SideName = sChName Then
' If sChName = "A1" Or sChName = "A3" Or sChName = "A5" Or sChName = "A7" Then
' AddTextToLine(AlzFrontEntityList(j).SideName, m_AlzLayer, AlzFrontEntityList(j).Id, 20, m_dBBoxRad, True)
' Else
' AddTextToLine(AlzFrontEntityList(j).SideName, m_Frontlayer, AlzFrontEntityList(j).Id, 20, m_dBBoxRad, True)
' End If
' Exit For
' End If
'Next
EgtDraw()
EgtZoom(ZM.ALL)
End Sub
' Per gestire la selezione dei Frontalini (devo ancora definire la CheckBox: Fn)
'Private Sub F_Checked(sender As Object, e As RoutedEventArgs) Handles A1.Checked, A2.Checked, A3.Checked, A4.Checked, A5.Checked, A6.Checked, A7.Checked, A8.Checked
' ' recupero il nome della Check selezionata
' Dim sChName As String = DirectCast(sender, CheckBox).Name
' Per gestire la selezione dei Frontalini
Private Sub F_Checked(sender As Object, e As RoutedEventArgs) Handles F1.Checked, F2.Checked, F3.Checked, F4.Checked, F5.Checked, F6.Checked, F7.Checked, F8.Checked, F9.Checked, F10.Checked
' recupero il nome della Check selezionata
Dim bIsAlzatina As Boolean = False
Dim sChName As String = DirectCast(sender, CheckBox).Name
Dim bIsChecked As Boolean = DirectCast(sender, CheckBox).IsChecked
Dim sSideName As String = GetSideFromCheck(sChName, bIsAlzatina)
Dim sOppositeCheckBox As String = GetOppositeCheck(sChName, bIsAlzatina)
RefreshList(sSideName, sOppositeCheckBox, bIsAlzatina, bIsChecked)
' For j = 0 To AlzFrontEntityList.Count() - 1
' If AlzFrontEntityList(j).SideName = sChName Then
' If sChName = "A1" Or sChName = "A3" Or sChName = "A5" Or sChName = "A7" Then
' AddTextToLine(AlzFrontEntityList(j).SideName, m_AlzLayer, AlzFrontEntityList(j).Id, 20, m_dBBoxRad, True)
' Else
' AddTextToLine(AlzFrontEntityList(j).SideName, m_Frontlayer, AlzFrontEntityList(j).Id, 20, m_dBBoxRad, True)
' End If
' Exit For
' End If
' Next
EgtZoom(ZM.ALL)
End Sub
' EgtDraw()
'End Sub
Private Sub ParameterA1TxBx_EgtClosed(sender As Object, e As EventArgs) Handles Parameter1ATxBx.EgtClosed
' Nuovo angolo di inclinazione
Dim dValue As Double
StringToDouble(Parameter1ATxBx.Text, dValue)
' salvo il valore nel file ini e inserisco il valore nel file lua
WritePrivateProfileString("Alz&Front", "A_Height", Parameter1ATxBx.Text, m_MainWindow.GetIniFile())
End Sub
Private Sub Parameter1FTxBx_EgtClosed(sender As Object, e As EventArgs) Handles Parameter1FTxBx.EgtClosed
' Nuovo angolo di inclinazione
Dim dValue As Double
StringToDouble(Parameter1FTxBx.Text, dValue)
' salvo il valore nel file ini e inserisco il valore nel file lua
WritePrivateProfileString("Alz&Front", "F_Height", Parameter1FTxBx.Text, m_MainWindow.GetIniFile())
End Sub
Private Sub ParameterA2TxBx_EgtClosed(sender As Object, e As EventArgs) Handles Parameter2ATxBx.EgtClosed
' Nuovo angolo di inclinazione
Dim dValue As Double
StringToDouble(Parameter2ATxBx.Text, dValue)
' salvo il valore nel file ini e inserisco il valore nel file lua
WritePrivateProfileString("Alz&Front", "A_DeltaAng", Parameter2ATxBx.Text, m_MainWindow.GetIniFile())
End Sub
Private Sub Parameter2FTxBx_EgtClosed(sender As Object, e As EventArgs) Handles Parameter2FTxBx.EgtClosed
' Nuovo angolo di inclinazione
Dim dValue As Double
StringToDouble(Parameter2FTxBx.Text, dValue)
' salvo il valore nel file ini e inserisco il valore nel file lua
WritePrivateProfileString("Alz&Front", "F_DeltaAng", Parameter2FTxBx.Text, m_MainWindow.GetIniFile())
End Sub
' noto il nome della checkbox selezionata restituisce il nome del lato
Private Function GetSideFromCheck(sNameCheck As String, bIsAlz As Boolean) As String
Dim sSideName As String = String.Empty
Dim sTypeCheck As String = "A"
If Not bIsAlz Then
sTypeCheck = "F"
End If
' separo il nome in due
Dim sItems As String() = Split(sNameCheck, sTypeCheck)
Dim nIndex As Integer
' costruisco il nome del lato
If sItems.Count > 1 Then
nIndex = CInt(sItems(1))
nIndex = nIndex - (MAX_LINES - m_nShow)
sSideName = "A" & nIndex.ToString
End If
Return sSideName
End Function
' restituisce il nome del check opposto (Se passo una alzaztina restituisco il nome della check associata alla
Private Function GetOppositeCheck(sNameCheck As String, bIsAlz As Boolean) As String
Dim sSideName As String = String.Empty
Dim sTypeCheck As String = "A"
If Not bIsAlz Then
sTypeCheck = "F"
End If
' separo il nome in due
Dim sItems As String() = Split(sNameCheck, sTypeCheck)
' estraggo l'indice del lato selezionato e costruisco il nome del CheckBox opposto
If sItems.Count > 1 Then
If bIsAlz Then
sSideName = "F" & sItems(1).Trim
Else
sSideName = "A" & sItems(1).Trim
End If
End If
Return sSideName
End Function
' aggiorno lo stato della dell'oggetto
Private Sub RefreshList(sSideName As String, sOppositeNameCheck As String, bIsAlz As Boolean, bIsChecked As Boolean)
For j = 0 To AlzFrontEntityList.Count() - 1
If AlzFrontEntityList(j).SideName = sSideName Then
' se deseleziono
If Not bIsChecked Then
AlzFrontEntityList(j).Type = AlzFrontEntity.AlzFront.NONE
Exit For
End If
' se selezione di Alz. o Front.
If bIsAlz Then
AlzFrontEntityList(j).Type = AlzFrontEntity.AlzFront.ALZATINA
AddTextToLine(AlzFrontEntityList(j).SideName, m_AlzLayer, AlzFrontEntityList(j).Id, 20, m_dBBoxRad, True)
' deseleziono il Check opposto
GetChBxFrontFromName(sOppositeNameCheck).IsChecked = False
Else
AddTextToLine(AlzFrontEntityList(j).SideName, m_Frontlayer, AlzFrontEntityList(j).Id, 20, m_dBBoxRad, True)
AlzFrontEntityList(j).Type = AlzFrontEntity.AlzFront.FRONTALINO
' deseleziono il Check opposto
GetChBxAalZFromName(sOppositeNameCheck).IsChecked = False
End If
' termino il ciclo
Exit For
End If
Next
End Sub
' metodo utilizzato per tornare indietro alla pagina di selezione "CompoInterni/Alz&Front"
Private Sub BackBtn_Click(sender As Object, e As RoutedEventArgs) Handles BackBtn.Click
@@ -438,18 +638,63 @@ Public Class AlzFrontUC
'm_MainWindow.m_DrawPageUC.m_ActiveComponentPage = DrawPageUC.Pages.CompoDimension
End Sub
Private Sub LoadCurrentCompo()
' Pulisco l'ambiente lua
EgtLuaResetGlobVar(LUA_CMP_VARS)
EgtLuaResetGlobVar(LUA_CMP_DRAW)
Dim sCompoDir As String = String.Empty
GetPrivateProfileString(S_COMPO, K_COMPODIR, "", sCompoDir, m_MainWindow.GetIniFile())
Dim sCompo As String = String.Empty
GetPrivateProfileString(S_COMPO, "Alz&Front", "", sCompoDir, m_MainWindow.GetIniFile())
' Costruisco path completa del componente
Dim sPath = sCompoDir & "\" & sCompo & ".lua"
' Carico il file
EgtLuaExecFile(sPath)
Dim sMsg As String = String.Empty
' Verifico se compo interno o esterno
Dim InternalCompo As Integer = -1
EgtLuaGetGlobIntVar(LUA_CMP_INTERNAL, InternalCompo)
If Not EgtLuaExecLine(LUA_CMP_DRAW & "(true)") Then
sMsg = "Error in component execution"
m_bDrawOk = False
Else
EgtLuaGetGlobStringVar(LUA_CMP_VARS & ".MSG", sMsg)
Dim nErr As Integer = 0
EgtLuaGetGlobIntVar(LUA_CMP_VARS & ".ERR", nErr)
m_bDrawOk = (nErr = 0)
End If
EgtAdjustFlatPart(EgtGetFirstPart())
'Return m_bDrawOk
'If Not bOk And InternalCompo <> 1 Then
' EgtNewFile()
'End If
'MessageTxBl.Text = sMsg
'MessageGrid.Background = If(m_bDrawOk, Brushes.Transparent, Application.Current.FindResource("OmagCut_Red"))
'DrawScene.ZoomAll()
'' leggo variabili e aggiorno griglia
'ReadAndShowVariables()
'' abilito bottoni Vista e Inserisci
'OkBtn.IsEnabled = True
End Sub
End Class
Public Class AlzFrontEntity
Public Enum AlzFront
ALZATINA
FRONTALINO
NONE
End Enum
Private m_SideName As String
Private m_Type As AlzFront
Private m_Id As Integer
Private m_Type As AlzFront = AlzFront.NONE
' nome del lato scritto nel file nge (il nome deve avere la forma: A1, A2, .., An)
Public Property SideName As String
Get
Return m_SideName
@@ -477,9 +722,10 @@ Public Class AlzFrontEntity
End Set
End Property
Sub New(Name As String, CurrId As Integer)
Sub New(Name As String, CurrId As Integer, Optional CurrType As AlzFront = AlzFront.NONE)
m_SideName = Name
m_Id = CurrId
m_Type = CurrType
End Sub
End Class
+2
View File
@@ -891,7 +891,9 @@ Public Class DrawPageUC
' Reset inclinazioni
m_SideAngleUC.DeleteSideAngle()
' Chiudo compo interni nel caso siano aperti
LeftButtonGrd.Children.Remove(m_MainComponentPage.m_SecondaryComponentPage)
LeftButtonGrd.Children.Remove(m_CompoDimension.m_InternalCompoPage)
LeftButtonGrd.Children.Remove(m_CompoDimension.m_AlzFrontPage)
' 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)