Files
OmagCUT/RawPartPageUC.xaml.vb
T
Dario Sassi 74e07bf42b OmagCut :
- miglioramenti vari.
2015-09-20 09:13:59 +00:00

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