Files
OmagCUT/RawPartPageUC.xaml.vb
T
Dario Sassi 05bbe668a6 OmagCut 1.6i7 :
- prime modifiche per grezzo, nesting e lavorazioni.
2015-09-18 13:28:13 +00:00

139 lines
6.2 KiB
VB.net

Imports System.Globalization
Imports EgtUILib
Public Class RawPartPageUC
Dim m_MainWindow As MainWindow = Application.Current.MainWindow
Dim m_CurrProjPage As CurrentProjectPageUC
'Dichiarazione delle Page UserControl
Friend m_SceneButtons As SceneButtonsUC
Private Sub GrezzoUC_Initialized(sender As Object, e As EventArgs)
'Creazione del UserCOntrol SceneButtons
m_SceneButtons = New SceneButtonsUC
'Posizionemento nella griglia del UserControl SceneButtons
m_SceneButtons.SetValue(Grid.ColumnProperty, 1)
UpperButtonGrid.Children.Add(m_SceneButtons)
'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 GrezzoUC_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)
' 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)
Else
LengthTxBx.Text = "2500"
WidthTxBx.Text = "1500"
HeightTxBx.Text = "30"
OffsetXTxBx.Text = "300"
OffsetYTxBx.Text = "200"
KerfTxBx.Text = "50"
End If
End Sub
Private Sub ExitBtnUC_Click(sender As Object, e As RoutedEventArgs)
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(Me)
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Add(m_MainWindow.m_CadCutPageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.CadCut
End Sub
Private Sub ConfirmBtn_Click(sender As Object, e As RoutedEventArgs)
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(Me)
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
' Raccolgo i dati del grezzo rettangolare
Dim dLength As Double
If Not EgtLuaEvalNumExpr(LengthTxBx.Text, dLength) Or dLength < EPS_SMALL Then
Return
End If
Dim dWidth As Double
If Not EgtLuaEvalNumExpr(WidthTxBx.Text, dWidth) Or dWidth < EPS_SMALL Then
Return
End If
Dim dHeight As Double
If Not EgtLuaEvalNumExpr(HeightTxBx.Text, dHeight) Or dHeight < EPS_SMALL Then
Return
End If
Dim dOffsetX As Double
If Not EgtLuaEvalNumExpr(OffsetXTxBx.Text, dOffsetX) Then
Return
End If
Dim dOffsetY As Double
If Not EgtLuaEvalNumExpr(OffsetYTxBx.Text, dOffsetY) Then
Return
End If
Dim dKerf As Double
If Not EgtLuaEvalNumExpr(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