OmagCUT :

- aggiunta gestione DeltaXY su OffsetXY di grezzo in tavola se richiesto riferimento sempre su tavola 1 (#
This commit is contained in:
Dario Sassi
2025-11-19 13:16:45 +01:00
parent 76f4ef1732
commit f79cffb414
3 changed files with 75 additions and 50 deletions
+2 -7
View File
@@ -1182,15 +1182,10 @@ Public Class NestPageUC
sNamePartId = FORTH_TAB) Then
' Apro la finestra per la selezione della tavola da usare
Dim nRes As Integer = m_MainWindow.m_CadCutPageUC.m_ProjectMgr.ChangeTable()
' Se non è stata eseguita nessuna scelta, esco dal ciclo
If nRes = 0 Then Exit While
' recupero il nome della tavola corrente
Dim sCurrTab As String = ""
EgtGetTableName( sCurrTab)
' Se nessuna scelta o stessa tavola, esco dal ciclo
If nRes = 0 OrElse nRes = GetCurrentTable() Then Exit While
' recupero il nome della nuova tavola
Dim sOtherTab As String = GetTableName(nRes)
' Se è stata scelta la stessa tavola, esco dal ciclo
If sCurrTab = sOtherTab Then Exit While
' Porto il grezzo sula nuova tavola
EgtChangeTable(sOtherTab, True)
+3
View File
@@ -190,6 +190,9 @@
Public Const K_TAB4_ADDITIONALTABLE As String = "Tab4AdditionalTable"
Public Const K_CENTER_RAW_ONX As String = "CenterRawOnX"
Public Const K_CHANGETABWD As String = "ChangeTabWD"
Public Const K_ALLTABORIG1 As String = "AllTabOrig1"
Public Const K_TABX As String = "TabX"
Public Const K_TABY As String = "TabY"
Public Const S_PHOTO As String = "Photo"
Public Const K_PHOTO_CAMERACOUNTER As String = "CameraCounter"
+70 -43
View File
@@ -1,4 +1,5 @@
Imports System.IO
Imports System.Runtime.Remoting.Metadata.W3cXsd2001
Imports EgtUILib
Imports EgtWPFLib
@@ -45,6 +46,9 @@ Public Class RawPartPageUC
Private m_RawOffsY As Double = 0
Private m_RawKerf As Double = 0
Private m_PrecKerf As Double = 0
' Delta di visualizzazione su offset grezzo
Private m_dDeltaRoX As Double = 0
Private m_dDeltaRoY As Double = 0
' Layer per crocette temporanee
Private m_nTempLay As Integer = GDB_ID.NULL
' Definizione lista modalità di definizione grezzo per ComboBox
@@ -142,6 +146,26 @@ Public Class RawPartPageUC
XY = 3
End Enum
Private Sub SetRawOffsetX( dRawOffsX As Double)
OffsetXTxBx.Text = LenToString(dRawOffsX + m_dDeltaRoX, 2)
End Sub
Private Function GetRawOffsetX( ByRef dRawOffsX As Double) As Boolean
If Not StringToLen(OffsetXTxBx.Text, dRawOffsX) Then Return False
dRawOffsX -= m_dDeltaRoX
Return True
End Function
Private Sub SetRawOffsetY( dRawOffsY As Double)
OffsetYTxBx.Text = LenToString(dRawOffsY + m_dDeltaRoY, 2)
End Sub
Private Function GetRawOffsetY( ByRef dRawOffsY As Double) As Boolean
If Not StringToLen(OffsetYTxBx.Text, dRawOffsY) Then Return False
dRawOffsY -= m_dDeltaRoY
Return True
End Function
Private Sub RawPartPage_Initialized(sender As Object, e As EventArgs)
'Creazione della Page UserControl e relative impostazioni
@@ -269,6 +293,17 @@ Public Class RawPartPageUC
EgtOutLog("Error : TableMin e TableRef1 are different")
End If
End If
' Imposto eventuali delta di visualizzazione per Offset Grezzo
m_dDeltaRoX = 0
m_dDeltaRoY = 0
If GetPrivateProfileInt(S_TABLE, K_ALLTABORIG1, 0, m_MainWindow.GetMachIniFile()) <> 0 AndAlso GetCurrentTable() <> 1 Then
Dim TabX As Double = GetPrivateProfileDouble( S_TABLE, K_TABX, Double.NaN, m_MainWindow.GetMachIniFile())
Dim TabY As Double = GetPrivateProfileDouble( S_TABLE, K_TABY, Double.NaN, m_MainWindow.GetMachIniFile())
If Not Double.IsNaN( TabX) AndAlso Not Double.IsNaN( TabY) Then
m_dDeltaRoX = ptRef1.x - TabX
m_dDeltaRoY = ptRef1.y - TabY
End If
End If
' Nascondo eventuali pezzi in parcheggio
HideParkedParts()
' Deseleziono pezzi
@@ -334,8 +369,8 @@ Public Class RawPartPageUC
LengthTxBx.Text = LenToString(m_RawLength, 2)
WidthTxBx.Text = LenToString(m_RawWidth, 2)
HeightTxBx.Text = LenToString(m_RawHeight, 3)
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
SetRawOffsetX(m_RawOffsX)
SetRawOffsetY(m_RawOffsY)
KerfTxBx.Text = LenToString(dInvertKerf * m_RawKerf, 2)
' Recupero gli ID delle pareti che delimitano l'area Protetta (movimenti in OverZ)
@@ -697,15 +732,15 @@ Public Class RawPartPageUC
m_RawOffsX += vtMove.x
m_RawOffsY += vtMove.y
If dKerf < 0 Then
OffsetXTxBx.Text = LenToString(m_RawOffsX - m_RawKerf, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY - m_RawKerf, 2)
SetRawOffsetX(m_RawOffsX - m_RawKerf)
SetRawOffsetY(m_RawOffsY - m_RawKerf)
Else
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
SetRawOffsetX(m_RawOffsX)
SetRawOffsetY(m_RawOffsY)
End If
End If
' se sposto lato sotto
' 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
@@ -719,14 +754,14 @@ Public Class RawPartPageUC
EgtDraw()
If dKerf < 0 Then
WidthTxBx.Text = LenToString(m_RawWidth + 2 * m_RawKerf, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY - m_RawKerf, 2)
SetRawOffsetY(m_RawOffsY - m_RawKerf)
Else
WidthTxBx.Text = LenToString(m_RawWidth, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
SetRawOffsetY(m_RawOffsY)
End If
End If
' se sposto lato a destra
' 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
@@ -743,7 +778,7 @@ Public Class RawPartPageUC
End If
End If
' se sposto lato sopra
' se sposto lato sopra
ElseIf m_nDragEnt = 3 Then
Dim dDelta = ptCurr.y - m_ptPrev.y
If m_RawWidth + dDelta > MIN_RAW_DIM And
@@ -760,7 +795,7 @@ Public Class RawPartPageUC
End If
End If
' se sposto lato a sinistra
' 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
@@ -774,12 +809,10 @@ Public Class RawPartPageUC
EgtDraw()
If dKerf < 0 Then
LengthTxBx.Text = LenToString(m_RawLength + 2 * m_RawKerf, 2)
OffsetXTxBx.Text = LenToString(m_RawOffsX - m_RawKerf, 2)
SetRawOffsetX(m_RawOffsX - m_RawKerf)
Else
LengthTxBx.Text = LenToString(m_RawLength, 2)
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
SetRawOffsetX(m_RawOffsX)
End If
End If
End If
@@ -1963,13 +1996,13 @@ Public Class RawPartPageUC
If dKerf < 0 Then
LengthTxBx.Text = LenToString(m_RawLength + 2 * m_RawKerf, 2)
WidthTxBx.Text = LenToString(m_RawWidth + 2 * m_RawKerf, 2)
OffsetXTxBx.Text = LenToString(m_RawOffsX - m_RawKerf, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY - m_RawKerf, 2)
SetRawOffsetX(m_RawOffsX - m_RawKerf)
SetRawOffsetY(m_RawOffsY - m_RawKerf)
Else
LengthTxBx.Text = LenToString(m_RawLength, 2)
WidthTxBx.Text = LenToString(m_RawWidth, 2)
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
SetRawOffsetX(m_RawOffsX)
SetRawOffsetY(m_RawOffsY)
End If
End If
@@ -2081,7 +2114,7 @@ Public Class RawPartPageUC
If EgtMoveRawPart(m_CurrProjPage.m_nRawId, vtMove) Then
' Aggiorno gli offset
m_RawOffsX += vtMove.x
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
SetRawOffsetX(m_RawOffsX)
' Se c'è la foto, devo aggiornarne la posizione
Dim nPhotoId = m_CurrProjPage.GetPhoto()
If nPhotoId <> GDB_ID.NULL Then
@@ -2199,21 +2232,17 @@ Public Class RawPartPageUC
Dim dKerf As Double = 0
StringToLen(KerfTxBx.Text, dKerf)
Dim dOffsetX As Double
If Not StringToLen(OffsetXTxBx.Text, dOffsetX) Then
Return
End If
If Not GetRawOffsetX( dOffsetX) Then Return
Dim dMinOffsetX = m_RawKerf
If dKerf < 0 And dOffsetX >= 0 Then
'm_RawOffsX = dOffsetX + m_RawKerf
'UpdateRawPart()
m_RawOffsX = dOffsetX
AdjustRawPartPositionNegativeKerf()
ElseIf dKerf >= 0 And dOffsetX >= dMinOffsetX Then
m_RawOffsX = dOffsetX
UpdateRawPart()
Else
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
m_CurrProjPage.SetErrorMessage(EgtMsg(90519) & " " & LenToString(dMinOffsetX, 2)) ' Minimo offset X =
SetRawOffsetX(m_RawOffsX)
m_CurrProjPage.SetErrorMessage(EgtMsg(90519) & " " & LenToString(dMinOffsetX + m_dDeltaRoX, 2)) ' Minimo offset X =
End If
End Sub
@@ -2221,9 +2250,7 @@ Public Class RawPartPageUC
Dim dKerf As Double = 0
StringToLen(KerfTxBx.Text, dKerf)
Dim dOffsetY As Double
If Not StringToLen(OffsetYTxBx.Text, dOffsetY) Then
Return
End If
If Not GetRawOffsetY( dOffsetY) Then Return
Dim dMinOffsetY = m_RawKerf
If dKerf < 0 And dOffsetY >= 0 Then
'm_RawOffsY = dOffsetY + m_RawKerf
@@ -2234,8 +2261,8 @@ Public Class RawPartPageUC
m_RawOffsY = dOffsetY
UpdateRawPart()
Else
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
m_CurrProjPage.SetErrorMessage(EgtMsg(90520) & " " & LenToString(dMinOffsetY, 2)) ' Minimo offset Y =
SetRawOffsetY(m_RawOffsY)
m_CurrProjPage.SetErrorMessage(EgtMsg(90520) & " " & LenToString(dMinOffsetY + m_dDeltaRoY, 2)) ' Minimo offset Y =
End If
End Sub
@@ -2299,8 +2326,8 @@ Public Class RawPartPageUC
' aggiorno il valore di Offset
m_RawOffsX = m_SafetyZone_X + m_RawKerf - m_ptTableMin.x
m_RawOffsY = ptMinRaw.y + m_RawKerf - m_ptTableMin.y
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
SetRawOffsetX(m_RawOffsX)
SetRawOffsetY(m_RawOffsY)
bCalcBBoxRaw = True
nStat = STATDRAG.X_
End If
@@ -2312,8 +2339,8 @@ Public Class RawPartPageUC
EgtMoveToCornerRawPart(m_CurrProjPage.m_nRawId, ptRef, MCH_CR.BL)
m_RawOffsX = ptMinRaw.x + m_RawKerf - m_ptTableMin.x
m_RawOffsY = m_SafetyZone_Y - dRawWidth + m_RawKerf - m_ptTableMin.y
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
SetRawOffsetX(m_RawOffsX)
SetRawOffsetY(m_RawOffsY)
bCalcBBoxRaw = True
nStat = nStat + STATDRAG._Y
End If
@@ -2371,8 +2398,8 @@ Public Class RawPartPageUC
m_RawOffsX = ptRawMin.x - m_ptTableMin.x + m_RawKerf * dInvertKerf
m_RawOffsY = ptRawMin.y - m_ptTableMin.y + m_RawKerf * dInvertKerf
End If
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
SetRawOffsetX(m_RawOffsX)
SetRawOffsetY(m_RawOffsY)
End If
End Sub
@@ -2463,8 +2490,8 @@ Public Class RawPartPageUC
If m_ActiveRawMode <> RAWMODE.FROM_PHOTO Then
StringToLen(LengthTxBx.Text, m_RawLength)
StringToLen(WidthTxBx.Text, m_RawWidth)
StringToLen(OffsetXTxBx.Text, m_RawOffsX)
StringToLen(OffsetYTxBx.Text, m_RawOffsY)
GetRawOffsetX(m_RawOffsX)
GetRawOffsetY(m_RawOffsY)
' UpdateRawPart()
UpdateRawPartKerf()
' Recupero id contorno kerf
@@ -2487,8 +2514,8 @@ Public Class RawPartPageUC
' recupero dati grezzo
StringToLen(LengthTxBx.Text, m_RawLength)
StringToLen(WidthTxBx.Text, m_RawWidth)
StringToLen(OffsetXTxBx.Text, m_RawOffsX)
StringToLen(OffsetYTxBx.Text, m_RawOffsY)
GetRawOffsetX(m_RawOffsX)
GetRawOffsetY(m_RawOffsY)
If m_PrecKerf >= 0 Then
m_RawLength = m_RawLength + 2 * m_RawKerf