Files
OmagCUT/RawPartPageUC.xaml.vb
T
Dario Sassi 3eb8929578 OmagCUT :
- aggiunta gestione mm/inch in interfaccia utente (da fare verso macchina e in generazione CN).
2016-01-19 18:01:10 +00:00

546 lines
24 KiB
VB.net

Imports System.Globalization
Imports EgtUILib
Public Class RawPartPageUC
' Riferimento alla MainWindow
Dim m_MainWindow As MainWindow = Application.Current.MainWindow
Dim WithEvents m_CurrProjPage As CurrentProjectPageUC
' Definizione pagina di scelta della lavorazione corrente
Dim m_ChooseMachiningPage As ChooseMachining
' Flag di pagina attiva
Private m_bActive As Boolean = False
' Dati per Drag
Private m_bDrag As Boolean = False
Private m_ptPrev As Point3d
Private m_nDragEnt As Integer = 0
' Modalità aggiornamento variabili
Friend m_bShowVar As Boolean = False
' Dati tavola
Private m_TableLength As Double = 0
Private m_TableWidth As Double = 0
' Dimensioni grezzo rettangolare
Private m_RawLength As Double = 0
Private m_RawWidth As Double = 0
Private m_RawHeight As Double = 0
Private m_RawOffsX As Double = 0
Private m_RawOffsY As Double = 0
Private m_RawKerf As Double = 0
' Costante minima dimensione del grezzo
Private MIN_RAW_DIM As Double = 10
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 = LengthTxBl
WidthTxBx.Tag = WidthTxBl
HeightTxBx.Tag = HeightTxBl
OffsetXTxBx.Tag = OffsetXTxBl
OffsetYTxBx.Tag = OffsetYTxBl
KerfTxBx.Tag = KerfTxBl
'Imposto i messaggi letti dal file dei messaggi
RectangleBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 1) 'Rectangle - Rettangolo
ByPointsBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'By points - Per punti
LengthTxBl.Text = EgtMsg(MSG_RAWPARTPAGEUC + 3) 'Length - Lunghezza
WidthTxBl.Text = EgtMsg(MSG_RAWPARTPAGEUC + 4) 'Width - Larghezza
HeightTxBl.Text = EgtMsg(MSG_RAWPARTPAGEUC + 5) 'Height - Spessore
OffsetXTxBl.Text = EgtMsg(MSG_RAWPARTPAGEUC + 6) 'Offset X
OffsetYTxBl.Text = EgtMsg(MSG_RAWPARTPAGEUC + 7) 'Offset Y
KerfTxBl.Text = EgtMsg(MSG_RAWPARTPAGEUC + 8) 'Kerf
MaterialGpBx.Header = EgtMsg(MSG_RAWPARTPAGEUC + 9) 'Material - Materiale
DamagedAreaGpBx.Header = EgtMsg(MSG_RAWPARTPAGEUC + 10) 'Damaged area - Zona rovinata
NewBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 11) 'New - Nuovo
DeleteBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 12) 'Delete - Cancella
PointsGpBx.Header = EgtMsg(MSG_RAWPARTPAGEUC + 13) 'Points - Punti
AddBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 14) 'Add - Aggiungi
RemoveBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 15) 'Remove - Rimuovi
End Sub
Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs)
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
m_bActive = True
' Dimensioni tavola
Dim ptMin, ptMax As Point3d
If EgtGetTableArea(1, ptMin, ptMax) Then
m_TableLength = ptMax.x - ptMin.x
m_TableWidth = ptMax.y - ptMin.y
End If
' Nascondo eventuali pezzi in parcheggio
HideParkedParts()
' Visualizzo eventuale foto
m_MainWindow.m_CurrentProjectPageUC.ShowPhoto(True)
' Se esiste già il grezzo...
Dim ptRawMin, ptRawMax As Point3d
If GetRawBox(ptRawMin, ptRawMax) Then
' origine tavola
Dim ptOri As Point3d
EgtGetTableRef(1, ptOri)
' kerf
EgtGetInfo(EgtGetFirstRawPart(), KEY_KERF, m_RawKerf)
' aggiorno dati grezzo
m_RawLength = ptRawMax.x - ptRawMin.x - 2 * m_RawKerf
m_RawWidth = ptRawMax.y - ptRawMin.y - 2 * m_RawKerf
m_RawHeight = ptRawMax.z - ptRawMin.z
m_RawOffsX = ptRawMin.x - ptOri.x + m_RawKerf
m_RawOffsY = ptRawMin.y - ptOri.y + m_RawKerf
' aggiorno l'apparenza del grezzo
AdjustRawPartOnStart()
' Altrimenti lo definisco
Else
' Leggo da Ini gli ultimi valori
m_RawLength = GetPrivateProfileDouble(S_RAWPART, K_RAWLENGTH, 2500, m_MainWindow.GetIniFile())
m_RawWidth = GetPrivateProfileDouble(S_RAWPART, K_RAWWIDTH, 1500, m_MainWindow.GetIniFile())
m_RawHeight = GetPrivateProfileDouble(S_RAWPART, K_RAWHEIGHT, 30, m_MainWindow.GetIniFile())
m_RawOffsX = GetPrivateProfileDouble(S_RAWPART, K_RAWOFFSX, 100, m_MainWindow.GetIniFile())
m_RawOffsY = GetPrivateProfileDouble(S_RAWPART, K_RAWOFFSY, 100, m_MainWindow.GetIniFile())
m_RawKerf = GetPrivateProfileDouble(S_RAWPART, K_RAWKERF, 50, m_MainWindow.GetIniFile())
End If
' Deseleziono pezzi
EgtDeselectAll()
' Seleziono modalità rettangolo
RectangleBtn.IsChecked = True
' Assegno dati grezzo rettangolare ai textbox
m_bShowVar = True
LengthTxBx.Text = LenToString(m_RawLength, 2)
WidthTxBx.Text = LenToString(m_RawWidth, 2)
HeightTxBx.Text = LenToString(m_RawHeight, 2)
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
KerfTxBx.Text = LenToString(m_RawKerf, 2)
m_bShowVar = False
' Aggiorno grezzo
UpdateRawPart()
' Imposto il materiale corrente nella combobox
MaterialsCmbx.SelectedIndex = m_MainWindow.m_nCurrentMaterial
End Sub
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
' Verifico di essere il gestore attivo
If Not m_bActive Then
Return
End If
' Si può selezionare solo con il tasto sinistro e se stato NULL
If e.Button <> Windows.Forms.MouseButtons.Left Or
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
Return
End If
' Verifico cosa selezionato
Dim nSolidId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID)
Dim nKerfId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_KERF)
EgtSetObjFilterForSelect(True, True, True, True, True)
Dim nSel As Integer
EgtSelect(e.Location, 2 * Scene.DIM_SEL, 2 * Scene.DIM_SEL, nSel)
Dim nId As Integer = EgtGetFirstObjInSelWin()
While nId <> GDB_ID.NULL
If nSolidId <> GDB_ID.NULL And nId = nSolidId Then
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev)
m_nDragEnt = 0
ElseIf nKerfId <> GDB_ID.NULL And nId = nKerfId Then
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev)
Dim dDist, dU As Double
If Not EgtGetMinDistPointCurve(m_ptPrev.Loc(nKerfId), nKerfId, dDist, dU) Then
m_bDrag = False
End If
m_nDragEnt = Math.Ceiling(dU)
' Privilegio il kerf, pertanto esco
Exit While
End If
nId = EgtGetNextObjInSelWin()
End While
End Sub
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseMoveScene
' Verifico di essere il gestore attivo
If Not m_bActive Then
Return
End If
' Verifico di essere in modalità drag
If Not m_bDrag Then
Return
End If
' Ricavo il punto corrente in coordinate mondo
Dim ptCurr As Point3d
EgtUnProjectPoint(e.Location, ptCurr)
' Se movimento del grezzo
If m_nDragEnt = 0 Then
' Ricavo il vettore di movimento (tengo solo XY)
Dim vtMove As Vector3d = ptCurr - m_ptPrev
vtMove.z = 0
' Muovo il grezzo
If EgtMoveRawPart(m_CurrProjPage.m_nRawId, vtMove) Then
EgtDraw()
' Aggiorno gli offset
m_RawOffsX += vtMove.x
m_RawOffsY += vtMove.y
m_bShowVar = True
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
m_bShowVar = False
End If
' se sposto lato sotto
ElseIf m_nDragEnt = 1 Then
Dim dDelta = ptCurr.y - m_ptPrev.y
If m_RawWidth - dDelta > MIN_RAW_DIM And m_RawOffsY + dDelta > m_RawKerf Then
m_RawWidth -= dDelta
m_RawOffsY += dDelta
EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf,
m_RawWidth + 2 * m_RawKerf, m_RawHeight)
UpdateRawPartKerf()
Dim vtMove As New Vector3d(0, dDelta, 0)
EgtMoveRawPart(m_CurrProjPage.m_nRawId, vtMove)
EgtDraw()
m_bShowVar = True
WidthTxBx.Text = LenToString(m_RawWidth, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
m_bShowVar = False
End If
' se sposto lato a destra
ElseIf m_nDragEnt = 2 Then
Dim dDelta = ptCurr.x - m_ptPrev.x
If m_RawLength + dDelta > MIN_RAW_DIM And
m_RawOffsX + m_RawLength + dDelta + m_RawKerf < m_TableLength Then
m_RawLength += dDelta
EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf,
m_RawWidth + 2 * m_RawKerf, m_RawHeight)
UpdateRawPartKerf()
EgtDraw()
m_bShowVar = True
LengthTxBx.Text = LenToString(m_RawLength, 2)
m_bShowVar = False
End If
' se sposto lato sopra
ElseIf m_nDragEnt = 3 Then
Dim dDelta = ptCurr.y - m_ptPrev.y
If m_RawWidth + dDelta > MIN_RAW_DIM And
m_RawOffsY + m_RawWidth + dDelta + m_RawKerf < m_TableWidth Then
m_RawWidth += dDelta
EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf,
m_RawWidth + 2 * m_RawKerf, m_RawHeight)
UpdateRawPartKerf()
EgtDraw()
m_bShowVar = True
WidthTxBx.Text = LenToString(m_RawWidth, 2)
m_bShowVar = False
End If
' se sposto lato a sinistra
ElseIf m_nDragEnt = 4 Then
Dim dDelta = ptCurr.x - m_ptPrev.x
If m_RawLength - dDelta > MIN_RAW_DIM And m_RawOffsX + dDelta > m_RawKerf Then
m_RawLength -= dDelta
m_RawOffsX += dDelta
EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf,
m_RawWidth + 2 * m_RawKerf, m_RawHeight)
UpdateRawPartKerf()
Dim vtMove As New Vector3d(dDelta, 0, 0)
EgtMoveRawPart(m_CurrProjPage.m_nRawId, vtMove)
EgtDraw()
m_bShowVar = True
LengthTxBx.Text = LenToString(m_RawLength, 2)
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
m_bShowVar = False
End If
End If
' Aggiorno il punto precedente
m_ptPrev = ptCurr
End Sub
Private Sub OnMyMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseUpScene
' Verifico di essere il gestore attivo
If Not m_bActive Then
Return
End If
' Disabilito modalità drag
m_bDrag = False
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 OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
' Apro pagina di selezione della lavorazione prima di chiudere il grezzo
m_ChooseMachiningPage = New ChooseMachining(m_MainWindow)
If m_ChooseMachiningPage.DialogResult Then
' Sistemo il grezzo
AdjustRawPartOnExit()
' Ripristino visualizzazione di eventuali pezzi in parcheggio
ShowParkedParts()
' Imposto spessore del grezzo
m_CurrProjPage.m_dRawHeight = GetRawHeight()
m_CurrProjPage.UpdateHeightTxBx()
' Salvo nel file Ini le dimensioni del grezzo (sempre in mm)
WritePrivateProfileString(S_RAWPART, K_RAWLENGTH, DoubleToString(m_RawLength, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWWIDTH, DoubleToString(m_RawWidth, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWHEIGHT, DoubleToString(m_RawHeight, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWOFFSX, DoubleToString(m_RawOffsX, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWOFFSY, DoubleToString(m_RawOffsY, 2), m_MainWindow.GetIniFile())
WritePrivateProfileString(S_RAWPART, K_RAWKERF, DoubleToString(m_RawKerf, 2), m_MainWindow.GetIniFile())
' Esco dalla pagina
m_bActive = False
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 If
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 GetRawBox(ByRef ptRawMin As Point3d, ByRef ptRawMax As Point3d) As Boolean
' Recupero identificativo del grezzo e del suo solido
Dim nRawId As Integer = EgtGetFirstRawPart()
Dim nSolidRawId As Integer = EgtGetFirstNameInGroup(nRawId, NAME_RAW_SOLID)
If nSolidRawId = GDB_ID.NULL Then
Return False
End If
' Ne recupero il box
Dim nFlag As Integer = GDB_BB.ONLY_VISIBLE + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM
EgtGetBBoxGlob(nSolidRawId, nFlag, ptRawMin, ptRawMax)
Return True
End Function
Public Function GetRawHeight() As Double
Dim ptRawMin, ptRawMax As Point3d
If GetRawBox(ptRawMin, ptRawMax) Then
Return (ptRawMax.z - ptRawMin.z)
Else
Return 0
End If
End Function
Friend Sub UpdateRawPart(Optional bHeightModified As Boolean = False)
' Se cambiato spessore e c'è foto, aggiorno quota fotografia
If bHeightModified And m_CurrProjPage.GetPhoto() <> GDB_ID.NULL Then
' Aggiorno spessore in progetto corrente
m_CurrProjPage.m_dRawHeight = m_RawHeight
m_CurrProjPage.UpdateHeightTxBx()
' Ricarico fotografia
Dim sPath As String = String.Empty
EgtGetPhotoPath(m_CurrProjPage.GetPhoto(), sPath)
m_MainWindow.m_CadCutPageUC.PostPhoto(sPath)
End If
' Recupero il colore
Dim Col As New Color3d(64, 192, 255, 40)
GetPrivateProfileColor(S_RAWPART, K_RAWCOLOR, Col, m_MainWindow.GetIniFile())
' in presenza di foto rendo molto più trasparente
If m_CurrProjPage.GetPhoto() <> GDB_ID.NULL Then
Col.A = 20
End If
' Se non esiste già il grezzo e richiesto, lo inserisco
Dim nRawId As Integer = EgtGetFirstRawPart()
If nRawId = GDB_ID.NULL And m_RawHeight > EPS_SMALL Then
m_CurrProjPage.m_nRawId = EgtAddRawPart(Point3d.ORIG(), m_RawLength + 2 * m_RawKerf,
m_RawWidth + 2 * m_RawKerf, m_RawHeight, Col)
' se esiste e da cancellare
ElseIf m_RawHeight < EPS_SMALL Then
EgtRemoveRawPart(nRawId)
m_CurrProjPage.m_nRawId = GDB_ID.NULL
' Altrimenti lo modifico
Else
m_CurrProjPage.m_nRawId = nRawId
EgtModifyRawPart(nRawId, Point3d.ORIG(), m_RawLength + 2 * m_RawKerf,
m_RawWidth + 2 * m_RawKerf, m_RawHeight, Col)
End If
' Se non cancellato
If m_RawHeight > EPS_SMALL Then
UpdateRawPartKerf()
' Sistemo la posizione
Dim ptRef As New Point3d(m_RawOffsX - m_RawKerf, m_RawOffsY - m_RawKerf, m_CurrProjPage.m_dAddTable)
If EgtMoveToCornerRawPart(m_CurrProjPage.m_nRawId, ptRef, MCH_CR.BL) Then
OkBtn.IsEnabled = True
m_CurrProjPage.ClearMessage()
Else
OkBtn.IsEnabled = False
m_CurrProjPage.SetErrorMessage("Errore nella posizione o dimensione del grezzo")
End If
End If
' Aggiorno visualizzazione
EgtZoom(ZM.ALL)
End Sub
Private Function UpdateRawPartKerf() As Boolean
' Se non c'è il grezzo, esco
If m_CurrProjPage.m_nRawId = GDB_ID.NULL Then
Return False
End If
' Recupero il vecchio valore del kerf
Dim dOldKerf As Double
If Not EgtGetInfo(m_CurrProjPage.m_nRawId, KEY_KERF, dOldKerf) Then
dOldKerf = GetPrivateProfileDouble(S_RAWPART, K_RAWKERF, 30, m_MainWindow.GetIniFile())
End If
' Cancello eventuale vecchio contorno di kerf
Dim nKerfId As Integer = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_KERF)
EgtErase(nKerfId)
' Cancello eventuale vecchia regione fuori kerf per nesting
Dim nOutKerfId As Integer = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_OUTKERF)
EgtErase(nOutKerfId)
' box grezzo
Dim ptMin, ptMax As Point3d
GetRawBox(ptMin, ptMax)
ptMin.x += m_RawKerf
ptMin.y += m_RawKerf
ptMin.z = ptMax.z
ptMax.x -= m_RawKerf
ptMax.y -= m_RawKerf
' Creo il nuovo contorno del kerf
nKerfId = EgtCreateRectangle2P(m_CurrProjPage.m_nRawId, ptMin, ptMax, GDB_RT.GLOB)
EgtSetName(nKerfId, NAME_KERF)
Dim Col As New Color3d(255, 0, 0, 100)
GetPrivateProfileColor(S_RAWPART, K_KERFCOLOR, Col, m_MainWindow.GetIniFile())
EgtSetColor(nKerfId, Col)
' Salvo il nuovo valore (sempre in mm)
EgtSetInfo(m_CurrProjPage.m_nRawId, KEY_KERF, DoubleToString(m_RawKerf, 4))
Return True
End Function
Private Sub AdjustRawPartOnStart()
' Se non c'è la foto va già bene così
If m_CurrProjPage.GetPhoto() = GDB_ID.NULL Then
Return
End If
' Disabilito la texture sul grezzo
Dim nSolidId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID)
EgtRemoveTextureData(nSolidId)
' Sistemo il colore
Dim Col As New Color3d(64, 192, 255, 40)
GetPrivateProfileColor(S_RAWPART, K_RAWCOLOR, Col, m_MainWindow.GetIniFile())
Col.A = 20
EgtSetColor(nSolidId, Col, True)
End Sub
Private Sub AdjustRawPartOnExit()
' Se non c'è il grezzo, esco
If m_CurrProjPage.m_nRawId = GDB_ID.NULL Then
Return
End If
' Se non c'è la foto va già bene così
If m_CurrProjPage.GetPhoto() = GDB_ID.NULL Then
Return
End If
' Carico la texture della foto sul grezzo
Dim nSolidId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID)
EgtSetTextureName(nSolidId, PHOTO_NAME)
' Sistemo il riferimento della texture
Dim refTxr As New Frame3d
m_CurrProjPage.GetPhotoTextureRef(refTxr)
EgtSetTextureFrame(nSolidId, refTxr, GDB_RT.GLOB)
' Sistemo il colore
EgtSetColor(nSolidId, New Color3d(255, 255, 255, 100), True)
' Nascondo la foto
m_MainWindow.m_CurrentProjectPageUC.ShowPhoto(False)
m_bActive = False
End Sub
Private Sub LengthTxBx_EgtClosed(sender As Object, e As EventArgs) Handles LengthTxBx.EgtClosed
Dim dLength As Double
If Not StringToLen(LengthTxBx.Text, dLength) Or dLength < EPS_SMALL Then
Return
End If
Dim dMaxLen = m_TableLength - m_RawOffsX - m_RawKerf
If dLength <= dMaxLen Then
m_CurrProjPage.ClearMessage()
m_RawLength = dLength
UpdateRawPart()
Else
LengthTxBx.Text = LenToString(m_RawLength, 2)
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 16) & " " & LenToString(dMaxLen, 2)) 'Massima lunghezza =
End If
End Sub
Private Sub WidthTxBx_EgtClosed(sender As Object, e As EventArgs) Handles WidthTxBx.EgtClosed
Dim dWidth As Double
If Not StringToLen(WidthTxBx.Text, dWidth) Or dWidth < EPS_SMALL Then
Return
End If
Dim dMaxWidth = m_TableWidth - m_RawOffsY - m_RawKerf
If dWidth <= dMaxWidth Then
m_CurrProjPage.ClearMessage()
m_RawWidth = dWidth
UpdateRawPart()
Else
WidthTxBx.Text = LenToString(m_RawWidth, 2)
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 17) & " " & LenToString(dMaxWidth, 2)) 'Massima larghezza =
End If
End Sub
Private Sub HeightTxBx_EgtClosed(sender As Object, e As EventArgs) Handles HeightTxBx.EgtClosed
Dim dHeight As Double
If Not StringToLen(HeightTxBx.Text, dHeight) Then
Return
End If
If dHeight > -EPS_ZERO Then
m_CurrProjPage.ClearMessage()
If Math.Abs(dHeight - m_RawHeight) > EPS_SMALL Then
m_RawHeight = dHeight
UpdateRawPart(True)
End If
Else
HeightTxBx.Text = LenToString(m_RawHeight, 2)
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 18)) 'Non sono ammessi spessori negativi
End If
End Sub
Private Sub OffsetXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffsetXTxBx.EgtClosed
Dim dOffsetX As Double
If Not StringToLen(OffsetXTxBx.Text, dOffsetX) Then
Return
End If
Dim dMinOffsetX = m_RawKerf
If dOffsetX >= dMinOffsetX Then
m_RawOffsX = dOffsetX
UpdateRawPart()
Else
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 19) & " " & LenToString(dMinOffsetX, 2)) 'Minimo offset X =
End If
End Sub
Private Sub OffsetYTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffsetYTxBx.EgtClosed
Dim dOffsetY As Double
If Not StringToLen(OffsetYTxBx.Text, dOffsetY) Then
Return
End If
Dim dMinOffsetY = m_RawKerf
If dOffsetY >= dMinOffsetY Then
m_RawOffsY = dOffsetY
UpdateRawPart()
Else
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 20) & " " & LenToString(dMinOffsetY, 2)) 'Minimo offset Y =
End If
End Sub
Private Sub KerfTxBx_EgtClosed(sender As Object, e As EventArgs) Handles KerfTxBx.EgtClosed
Dim dKerf As Double
If Not StringToLen(KerfTxBx.Text, dKerf) Then
Return
End If
Dim dMinKerf = 0
Dim dMaxKerf = Math.Min(Math.Min(m_RawOffsX, m_RawOffsY),
Math.Min(m_TableLength - m_RawLength - m_RawOffsX, m_TableWidth - m_RawWidth - m_RawOffsY))
If dKerf >= dMinKerf And dKerf <= dMaxKerf Then
m_RawKerf = dKerf
UpdateRawPart()
ElseIf dKerf < dMinKerf Then
KerfTxBx.Text = LenToString(m_RawKerf, 2)
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 21) & " " & LenToString(dMinKerf, 2)) 'Minimo kerf =
Else
KerfTxBx.Text = LenToString(m_RawKerf, 2)
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 22) & " " & LenToString(dMaxKerf, 2)) 'Massimo kerf =
End If
End Sub
Private Sub RawPartPage_Unloaded(sender As Object, e As RoutedEventArgs)
End Sub
End Class