74e07bf42b
- miglioramenti vari.
167 lines
7.1 KiB
VB.net
167 lines
7.1 KiB
VB.net
Imports System.Globalization
|
|
Imports EgtUILib
|
|
|
|
Public Class RawPartPageUC
|
|
|
|
Dim m_MainWindow As MainWindow = Application.Current.MainWindow
|
|
Dim m_CurrProjPage As CurrentProjectPageUC
|
|
|
|
' Modalità aggiornamento variabili
|
|
Friend m_bShowVar As Boolean = False
|
|
|
|
Private Sub RawPartPage_Initialized(sender As Object, e As EventArgs)
|
|
|
|
'Associazione della lista materiali alla combobox
|
|
MaterialsCmbx.ItemsSource = m_MainWindow.m_MaterialsList
|
|
|
|
'Associazione tag textbox e label per visualizzare nome nella calcolatrice
|
|
LengthTxBx.Tag = LengthLbl
|
|
WidthTxBx.Tag = WidthLbl
|
|
HeightTxBx.Tag = HeightLbl
|
|
OffsetXTxBx.Tag = OffsetXLbl
|
|
OffsetYTxBx.Tag = OffsetYLbl
|
|
KerfTxBx.Tag = KerfLbl
|
|
|
|
'Imposto i messaggi letti dal file dei messaggi
|
|
RectangleBtn.Content = EgtMsg(MSG_ROWPARTPAGEUC + 1) 'Rectangle - Rettangolo
|
|
ByPointsBtn.Content = EgtMsg(MSG_ROWPARTPAGEUC + 2) 'By points - Per punti
|
|
LengthLbl.Content = EgtMsg(MSG_ROWPARTPAGEUC + 3) 'Length - Lunghezza
|
|
WidthLbl.Content = EgtMsg(MSG_ROWPARTPAGEUC + 4) 'Width - Larghezza
|
|
HeightLbl.Content = EgtMsg(MSG_ROWPARTPAGEUC + 5) 'Height - Spessore
|
|
OffsetXLbl.Content = EgtMsg(MSG_ROWPARTPAGEUC + 6) 'Offset X
|
|
OffsetYLbl.Content = EgtMsg(MSG_ROWPARTPAGEUC + 7) 'Offset Y
|
|
KerfLbl.Content = EgtMsg(MSG_ROWPARTPAGEUC + 8) 'Kerf
|
|
MaterialLbl.Content = EgtMsg(MSG_ROWPARTPAGEUC + 9) 'Material - Materiale
|
|
DamagedAreaLbl.Content = EgtMsg(MSG_ROWPARTPAGEUC + 10) 'Damaged area - Zona rovinata
|
|
NewBtn.Content = EgtMsg(MSG_ROWPARTPAGEUC + 11) 'New - Nuovo
|
|
DeleteBtn.Content = EgtMsg(MSG_ROWPARTPAGEUC + 12) 'Delete - Cancella
|
|
PointsLbl.Content = EgtMsg(MSG_ROWPARTPAGEUC + 13) 'Points - Punti
|
|
AddBtn.Content = EgtMsg(MSG_ROWPARTPAGEUC + 14) 'Add - Aggiungi
|
|
RemoveBtn.Content = EgtMsg(MSG_ROWPARTPAGEUC + 15) 'Remove - Rimuovi
|
|
|
|
End Sub
|
|
|
|
Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs)
|
|
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
|
|
' Aggiorno dimensioni grezzo
|
|
' Se non esiste già il grezzo lo inserisco
|
|
Dim nRawId As Integer = EgtGetFirstRawPart()
|
|
If nRawId <> GDB_ID.NULL Then
|
|
' origine tavola
|
|
Dim ptOri As Point3d
|
|
EgtGetTableRef1(ptOri)
|
|
' box grezzo
|
|
Dim ptMin, ptMax As Point3d
|
|
Dim nFlag As Integer = GDB_BB.ONLY_VISIBLE + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM
|
|
EgtGetBBoxGlob(nRawId, nFlag, ptMin, ptMax)
|
|
' kerf
|
|
Dim dKerf As Double
|
|
EgtGetInfo(nRawId, "Kerf", dKerf)
|
|
m_bShowVar = True
|
|
' assegno valori ai textbox
|
|
LengthTxBx.Text = DoubleToString((ptMax.x - ptMin.x - 2 * dKerf), 4)
|
|
WidthTxBx.Text = DoubleToString((ptMax.y - ptMin.y - 2 * dKerf), 4)
|
|
HeightTxBx.Text = DoubleToString((ptMax.z - ptMin.z), 4)
|
|
OffsetXTxBx.Text = DoubleToString((ptMin.x - ptOri.x), 4)
|
|
OffsetYTxBx.Text = DoubleToString((ptMin.y - ptOri.y), 4)
|
|
KerfTxBx.Text = DoubleToString(dKerf, 4)
|
|
m_bShowVar = False
|
|
Else
|
|
m_bShowVar = True
|
|
LengthTxBx.Text = "2500"
|
|
WidthTxBx.Text = "1500"
|
|
HeightTxBx.Text = "30"
|
|
OffsetXTxBx.Text = "300"
|
|
OffsetYTxBx.Text = "200"
|
|
KerfTxBx.Text = "50"
|
|
m_bShowVar = False
|
|
End If
|
|
|
|
'Seleziono modalità rettangolo
|
|
RectangleBtn.IsChecked = True
|
|
UpdateRawPart()
|
|
'Imposto il materiale corrente nella combobox
|
|
MaterialsCmbx.SelectedIndex = m_MainWindow.m_nCurrentMaterial
|
|
|
|
End Sub
|
|
|
|
Private Sub MaterialsCmbx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MaterialsCmbx.SelectionChanged
|
|
m_MainWindow.m_nCurrentMaterial = MaterialsCmbx.SelectedIndex
|
|
m_CurrProjPage.MaterialTxBx.Text = m_MainWindow.m_MaterialsList(m_MainWindow.m_nCurrentMaterial).Name
|
|
End Sub
|
|
|
|
Private Sub ExitBtnUC_Click(sender As Object, e As RoutedEventArgs)
|
|
m_CurrProjPage.m_dRawHeight = GetRawHeight()
|
|
m_CurrProjPage.HeightTxBx.Text = GetRawHeight()
|
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(Me)
|
|
m_CurrProjPage.CurrProjGrid.Visibility = Windows.Visibility.Visible
|
|
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_MainWindow.m_CadCutPageUC)
|
|
m_MainWindow.m_ActivePage = MainWindow.Pages.CadCut
|
|
End Sub
|
|
|
|
Private Sub RectangleBtnUC_Click(sender As Object, e As RoutedEventArgs) Handles RectangleBtn.Click
|
|
|
|
'Seleziono il bottone RectangleBtn
|
|
RectangleBtn.IsChecked = True
|
|
|
|
End Sub
|
|
|
|
Public Function GetRawHeight() As Double
|
|
Dim nRawId As Integer = EgtGetFirstRawPart()
|
|
If nRawId = GDB_ID.NULL Then
|
|
Return 0
|
|
End If
|
|
' box grezzo
|
|
Dim ptMin, ptMax As Point3d
|
|
Dim nFlag As Integer = GDB_BB.ONLY_VISIBLE + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM
|
|
EgtGetBBoxGlob(nRawId, nFlag, ptMin, ptMax)
|
|
Return ptMax.z - ptMin.z
|
|
End Function
|
|
|
|
Friend Sub UpdateRawPart()
|
|
' Raccolgo i dati del grezzo rettangolare
|
|
Dim dLength As Double
|
|
If Not StringToDouble(LengthTxBx.Text, dLength) Or dLength < EPS_SMALL Then
|
|
Return
|
|
End If
|
|
Dim dWidth As Double
|
|
If Not StringToDouble(WidthTxBx.Text, dWidth) Or dWidth < EPS_SMALL Then
|
|
Return
|
|
End If
|
|
Dim dHeight As Double
|
|
If Not StringToDouble(HeightTxBx.Text, dHeight) Or dHeight < EPS_SMALL Then
|
|
Return
|
|
End If
|
|
Dim dOffsetX As Double
|
|
If Not StringToDouble(OffsetXTxBx.Text, dOffsetX) Then
|
|
Return
|
|
End If
|
|
Dim dOffsetY As Double
|
|
If Not StringToDouble(OffsetYTxBx.Text, dOffsetY) Then
|
|
Return
|
|
End If
|
|
Dim dKerf As Double
|
|
If Not StringToDouble(KerfTxBx.Text, dKerf) Then
|
|
Return
|
|
End If
|
|
If dKerf < EPS_SMALL Then
|
|
dKerf = 0
|
|
End If
|
|
' Se non esiste già il grezzo lo inserisco
|
|
Dim nRawId As Integer = EgtGetFirstRawPart()
|
|
If nRawId = GDB_ID.NULL Then
|
|
m_CurrProjPage.m_nRawId = EgtAddRawPart(Point3d.ORIG(), dLength + 2 * dKerf, dWidth + 2 * dKerf, dHeight, New Color3d(128, 128, 255, 60))
|
|
' Altrimenti lo modifico
|
|
Else
|
|
m_CurrProjPage.m_nRawId = nRawId
|
|
EgtModifyRawPartSize(nRawId, dLength + 2 * dKerf, dWidth + 2 * dKerf, dHeight)
|
|
End If
|
|
EgtSetInfo(m_CurrProjPage.m_nRawId, "Kerf", dKerf.ToString("F4", CultureInfo.InvariantCulture))
|
|
' Sistemo la posizione
|
|
EgtMoveToCornerRawPart(m_CurrProjPage.m_nRawId, New Point3d(dOffsetX, dOffsetY, 0), MCH_CR.BL)
|
|
' Aggiorno visualizzazione
|
|
EgtDraw()
|
|
End Sub
|
|
|
|
End Class
|