OmagCUT :

- drag rettangoli rimesso in funzione
- corretto controllo extra-corse in spostamento pezzi con ventose
- sistemati alcuni nomi.
This commit is contained in:
Dario Sassi
2026-02-26 16:23:06 +01:00
parent 2d385229d2
commit fadb601732
13 changed files with 169 additions and 163 deletions
+5 -5
View File
@@ -109,7 +109,7 @@ Public Class CadCutPageUC
Private Sub PhotoBtn_Click(sender As Object, e As RoutedEventArgs) Handles PhotoBtn.Click Private Sub PhotoBtn_Click(sender As Object, e As RoutedEventArgs) Handles PhotoBtn.Click
m_MainWindow.TestOff() m_MainWindow.TestOff()
m_MainWindow.DragRettangleOff() m_MainWindow.DragRectangleOff()
m_MainWindow.SplitCurvWJOff() m_MainWindow.SplitCurvWJOff()
m_MainWindow.StartCurvWJOff() m_MainWindow.StartCurvWJOff()
m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False
@@ -145,7 +145,7 @@ Public Class CadCutPageUC
Private Sub RawPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RawPartBtn.Click Private Sub RawPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RawPartBtn.Click
m_MainWindow.TestOff() m_MainWindow.TestOff()
m_MainWindow.DragRettangleOff() m_MainWindow.DragRectangleOff()
m_MainWindow.SplitCurvWJOff() m_MainWindow.SplitCurvWJOff()
m_MainWindow.StartCurvWJOff() m_MainWindow.StartCurvWJOff()
m_CurrProjPage.CurrProjGrid.Visibility = Windows.Visibility.Hidden m_CurrProjPage.CurrProjGrid.Visibility = Windows.Visibility.Hidden
@@ -173,7 +173,7 @@ Public Class CadCutPageUC
Private Sub DrawBtn_Click(sender As Object, e As RoutedEventArgs) Handles DrawBtn.Click Private Sub DrawBtn_Click(sender As Object, e As RoutedEventArgs) Handles DrawBtn.Click
m_MainWindow.TestOff() m_MainWindow.TestOff()
m_MainWindow.DragRettangleOff() m_MainWindow.DragRectangleOff()
m_MainWindow.SplitCurvWJOff() m_MainWindow.SplitCurvWJOff()
m_MainWindow.StartCurvWJOff() m_MainWindow.StartCurvWJOff()
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC) m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
@@ -183,7 +183,7 @@ Public Class CadCutPageUC
Private Sub ImportBtn_Click(sender As Object, e As RoutedEventArgs) Handles ImportBtn.Click Private Sub ImportBtn_Click(sender As Object, e As RoutedEventArgs) Handles ImportBtn.Click
m_MainWindow.TestOff() m_MainWindow.TestOff()
m_MainWindow.DragRettangleOff() m_MainWindow.DragRectangleOff()
m_MainWindow.SplitCurvWJOff() m_MainWindow.SplitCurvWJOff()
m_MainWindow.StartCurvWJOff() m_MainWindow.StartCurvWJOff()
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC) m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
@@ -207,7 +207,7 @@ Public Class CadCutPageUC
End Sub End Sub
Private Sub SplitBtn_Click(sender As Object, e As RoutedEventArgs) Handles SplitBtn.Click Private Sub SplitBtn_Click(sender As Object, e As RoutedEventArgs) Handles SplitBtn.Click
m_MainWindow.DragRettangleOff() m_MainWindow.DragRectangleOff()
m_MainWindow.SplitCurvWJOff() m_MainWindow.SplitCurvWJOff()
m_MainWindow.StartCurvWJOff() m_MainWindow.StartCurvWJOff()
m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False
+23 -23
View File
@@ -405,9 +405,9 @@ Public Class MoveRawPartPage
EgtSetStatus(GetVacuumId(), GDB_ST.OFF) EgtSetStatus(GetVacuumId(), GDB_ST.OFF)
' Aggiorno i dati ' Aggiorno i dati
m_bRawWithCups = False m_bRawWithCups = False
If VacuumCups.bOverWeight Then If VacuumCups.m_bOverWeight Then
m_CurrProjPage.SetWarningMessage(EgtMsg(90364)) ' Pezzo troppo pesante : non si può muovere m_CurrProjPage.SetWarningMessage(EgtMsg(90364)) ' Pezzo troppo pesante : non si può muovere
ElseIf VacuumCups.bExtraStroke Then ElseIf VacuumCups.m_bExtraStroke Then
m_CurrProjPage.SetWarningMessage(EgtMsg(90365)) ' Pezzo oltre le corse : non si può muovere m_CurrProjPage.SetWarningMessage(EgtMsg(90365)) ' Pezzo oltre le corse : non si può muovere
Else Else
' Messaggio di avvertimento ' Messaggio di avvertimento
@@ -578,13 +578,13 @@ Public Class MoveRawPartPage
Dim vtMove As New Vector3d(0, m_dStep, 0) Dim vtMove As New Vector3d(0, m_dStep, 0)
' ----------- INIZIO verifica di essere entro i limiti macchina ----------- ' ----------- INIZIO verifica di essere entro i limiti macchina -----------
m_CurrProjPage.ClearMessage() m_CurrProjPage.ClearMessage()
VerifyReleasdPositionIsValid(vtMove) VerifyReleasePositionIsValid(vtMove)
' ----------- FINE verifica di essere entro i limiti macchina ----------- ' ----------- FINE verifica di essere entro i limiti macchina -----------
If EgtMoveRawPart(nRawId, vtMove) Then If EgtMoveRawPart(nRawId, vtMove) Then
EgtMove(GetVacuumId(), vtMove, GDB_RT.GLOB) EgtMove(GetVacuumId(), vtMove, GDB_RT.GLOB)
AddRawMoveData(nRawId, vtMove, m_RawMoveDataList) AddRawMoveData(nRawId, vtMove, m_RawMoveDataList)
Else Else
VacuumCups.ptStartPointLift.y -= vtMove.y VacuumCups.m_ptStartPointLift.y -= vtMove.y
End If End If
Else Else
m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) 'Pezzo troppo piccolo : non si può muovere m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) 'Pezzo troppo piccolo : non si può muovere
@@ -621,13 +621,13 @@ Public Class MoveRawPartPage
Dim vtMove As New Vector3d(0, -m_dStep, 0) Dim vtMove As New Vector3d(0, -m_dStep, 0)
' ----------- INIZIO verifica di essere entro i limiti macchina ----------- ' ----------- INIZIO verifica di essere entro i limiti macchina -----------
m_CurrProjPage.ClearMessage() m_CurrProjPage.ClearMessage()
VerifyReleasdPositionIsValid(vtMove) VerifyReleasePositionIsValid(vtMove)
' ----------- FINE verifica di essere entro i limiti macchina ----------- ' ----------- FINE verifica di essere entro i limiti macchina -----------
If EgtMoveRawPart(nRawId, vtMove) Then If EgtMoveRawPart(nRawId, vtMove) Then
EgtMove(GetVacuumId(), vtMove, GDB_RT.GLOB) EgtMove(GetVacuumId(), vtMove, GDB_RT.GLOB)
AddRawMoveData(nRawId, vtMove, m_RawMoveDataList) AddRawMoveData(nRawId, vtMove, m_RawMoveDataList)
Else Else
VacuumCups.ptStartPointLift.y -= vtMove.y VacuumCups.m_ptStartPointLift.y -= vtMove.y
End If End If
Else Else
m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) 'Pezzo troppo piccolo : non si può muovere m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) 'Pezzo troppo piccolo : non si può muovere
@@ -647,13 +647,13 @@ Public Class MoveRawPartPage
Dim vtMove As New Vector3d(m_dStep, 0, 0) Dim vtMove As New Vector3d(m_dStep, 0, 0)
' ----------- INIZIO verifica di essere entro i limiti macchina ----------- ' ----------- INIZIO verifica di essere entro i limiti macchina -----------
m_CurrProjPage.ClearMessage() m_CurrProjPage.ClearMessage()
VerifyReleasdPositionIsValid(vtMove) VerifyReleasePositionIsValid(vtMove)
' ----------- FINE verifica di essere entro i limiti macchina ----------- ' ----------- FINE verifica di essere entro i limiti macchina -----------
If EgtMoveRawPart(nRawId, vtMove) Then If EgtMoveRawPart(nRawId, vtMove) Then
EgtMove(GetVacuumId(), vtMove, GDB_RT.GLOB) EgtMove(GetVacuumId(), vtMove, GDB_RT.GLOB)
AddRawMoveData(nRawId, vtMove, m_RawMoveDataList) AddRawMoveData(nRawId, vtMove, m_RawMoveDataList)
Else Else
VacuumCups.ptStartPointLift.x -= vtMove.x VacuumCups.m_ptStartPointLift.x -= vtMove.x
End If End If
Else Else
m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) 'Pezzo troppo piccolo : non si può muovere m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) 'Pezzo troppo piccolo : non si può muovere
@@ -672,13 +672,13 @@ Public Class MoveRawPartPage
Dim vtMove As New Vector3d(-m_dStep, 0, 0) Dim vtMove As New Vector3d(-m_dStep, 0, 0)
' ----------- INIZIO verifica di essere entro i limiti macchina ----------- ' ----------- INIZIO verifica di essere entro i limiti macchina -----------
m_CurrProjPage.ClearMessage() m_CurrProjPage.ClearMessage()
VerifyReleasdPositionIsValid(vtMove) VerifyReleasePositionIsValid(vtMove)
' ----------- FINE verifica di essere entro i limiti macchina ----------- ' ----------- FINE verifica di essere entro i limiti macchina -----------
If EgtMoveRawPart(nRawId, vtMove) Then If EgtMoveRawPart(nRawId, vtMove) Then
EgtMove(GetVacuumId(), vtMove, GDB_RT.GLOB) EgtMove(GetVacuumId(), vtMove, GDB_RT.GLOB)
AddRawMoveData(nRawId, vtMove, m_RawMoveDataList) AddRawMoveData(nRawId, vtMove, m_RawMoveDataList)
Else Else
VacuumCups.ptStartPointLift.x -= vtMove.x VacuumCups.m_ptStartPointLift.x -= vtMove.x
End If End If
Else Else
m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) ' Pezzo troppo piccolo : non si può muovere m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) ' Pezzo troppo piccolo : non si può muovere
@@ -690,15 +690,15 @@ Public Class MoveRawPartPage
#End Region 'Move Up/Down/Left/Right #End Region 'Move Up/Down/Left/Right
' verifica che la poszione da raggiungere sia nei limiti delle corse ' verifica che la posizione da raggiungere sia nei limiti delle corse
Private Function VerifyReleasdPositionIsValid(ByRef vtMove As Vector3d) As Boolean Private Function VerifyReleasePositionIsValid(ByRef vtMove As Vector3d) As Boolean
Dim bOk As Boolean = True Dim bOk As Boolean = True
' determino il punto finale dello spostamento ' determino il punto finale dello spostamento
Dim ptEndPointLift As Point3d = VacuumCups.ptStartPointLift Dim ptEndPointLift As Point3d = VacuumCups.m_ptStartPointLift
ptEndPointLift.x += vtMove.x ptEndPointLift.x += vtMove.x
ptEndPointLift.y += vtMove.y ptEndPointLift.y += vtMove.y
Dim sInfo As String = String.Empty Dim sInfo As String = String.Empty
Select Case VacuumCups.VerifyOutOfStrokes(ptEndPointLift, VacuumCups.dDegRotStartAng) Select Case VacuumCups.VerifyOutOfStrokes(ptEndPointLift, VacuumCups.m_dDegRotStartAng)
Case 1 Case 1
' extra corsa sulla x-: devo ridurre del valore di extra corsa ' extra corsa sulla x-: devo ridurre del valore di extra corsa
EgtGetOutstrokeInfo(sInfo) EgtGetOutstrokeInfo(sInfo)
@@ -753,7 +753,7 @@ Public Class MoveRawPartPage
bOk = False bOk = False
End Select End Select
' il movimento del pezzo è accettabile, aggiorno le posizione per la verifica dello step successivo ' il movimento del pezzo è accettabile, aggiorno le posizione per la verifica dello step successivo
VacuumCups.ptStartPointLift = ptEndPointLift VacuumCups.m_ptStartPointLift = ptEndPointLift
Return bOk Return bOk
End Function End Function
@@ -782,8 +782,8 @@ Public Class MoveRawPartPage
' Memorizzo ' Memorizzo
AddRawMoveData(nRawId, dAng, m_RawMoveDataList) AddRawMoveData(nRawId, dAng, m_RawMoveDataList)
Else Else
VacuumCups.ptStartPointLift.Rotate(ptRawCen, Vector3d.Z_AX(), dAng) VacuumCups.m_ptStartPointLift.Rotate(ptRawCen, Vector3d.Z_AX(), dAng)
VacuumCups.dDegRotStartAng -= dAng VacuumCups.m_dDegRotStartAng -= dAng
End If End If
Else Else
m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) ' Pezzo troppo piccolo : non si può muovere m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) ' Pezzo troppo piccolo : non si può muovere
@@ -816,8 +816,8 @@ Public Class MoveRawPartPage
' Memorizzo ' Memorizzo
AddRawMoveData(nRawId, dAng, m_RawMoveDataList) AddRawMoveData(nRawId, dAng, m_RawMoveDataList)
Else Else
VacuumCups.ptStartPointLift.Rotate(ptRawCen, Vector3d.Z_AX(), dAng) VacuumCups.m_ptStartPointLift.Rotate(ptRawCen, Vector3d.Z_AX(), dAng)
VacuumCups.dDegRotStartAng -= dAng VacuumCups.m_dDegRotStartAng -= dAng
End If End If
Else Else
m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) ' Pezzo troppo piccolo : non si può muovere m_CurrProjPage.SetWarningMessage(EgtMsg(90362)) ' Pezzo troppo piccolo : non si può muovere
@@ -833,8 +833,8 @@ Public Class MoveRawPartPage
Private Function VerifyReleasdAngleIsValid(ByRef dAngDeg As Double, ByVal ptCenter As Point3d) As Boolean Private Function VerifyReleasdAngleIsValid(ByRef dAngDeg As Double, ByVal ptCenter As Point3d) As Boolean
Dim bOk As Boolean = True Dim bOk As Boolean = True
' determino il punto finale dello spostamento ' determino il punto finale dello spostamento
Dim ptEndPointLift As Point3d = VacuumCups.ptStartPointLift Dim ptEndPointLift As Point3d = VacuumCups.m_ptStartPointLift
Dim dDegRotEndAng As Double = VacuumCups.dDegRotStartAng + dAngDeg Dim dDegRotEndAng As Double = VacuumCups.m_dDegRotStartAng + dAngDeg
ptEndPointLift.Rotate(ptCenter, Vector3d.Z_AX(), dAngDeg) ptEndPointLift.Rotate(ptCenter, Vector3d.Z_AX(), dAngDeg)
Dim sInfo As String = String.Empty Dim sInfo As String = String.Empty
Select Case VacuumCups.VerifyOutOfStrokes(ptEndPointLift, dDegRotEndAng) Select Case VacuumCups.VerifyOutOfStrokes(ptEndPointLift, dDegRotEndAng)
@@ -860,8 +860,8 @@ Public Class MoveRawPartPage
bOk = False bOk = False
End Select End Select
' il movimento del pezzo è accettabile, aggiorno le posizione per la verifica dello step successivo ' il movimento del pezzo è accettabile, aggiorno le posizione per la verifica dello step successivo
VacuumCups.ptStartPointLift = ptEndPointLift VacuumCups.m_ptStartPointLift = ptEndPointLift
VacuumCups.dDegRotStartAng = dDegRotEndAng VacuumCups.m_dDegRotStartAng = dDegRotEndAng
Return bOk Return bOk
End Function End Function
+2 -2
View File
@@ -126,8 +126,8 @@
<Button Name="RemovePartBtn" Style="{DynamicResource OmagCut_YellowIconButton}"> <Button Name="RemovePartBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
<Image Source="{DynamicResource Elimina-pezzoImg}" Style="{DynamicResource OmagCut_ArrowButtonIcon}"/> <Image Source="{DynamicResource Elimina-pezzoImg}" Style="{DynamicResource OmagCut_ArrowButtonIcon}"/>
</Button> </Button>
<ToggleButton Name="DragRettangleBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}"> <ToggleButton Name="DragRectangleBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource Drag_RettangleImg}" Style="{DynamicResource OmagCut_ArrowButtonIcon}"/> <Image Source="{DynamicResource Drag_RectangleImg}" Style="{DynamicResource OmagCut_ArrowButtonIcon}"/>
</ToggleButton> </ToggleButton>
<ToggleButton Name="SplitCurveWJBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}"> <ToggleButton Name="SplitCurveWJBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource SplitWJImg}" Style="{DynamicResource OmagCut_ArrowButtonIcon}"/> <Image Source="{DynamicResource SplitWJImg}" Style="{DynamicResource OmagCut_ArrowButtonIcon}"/>
+98 -97
View File
@@ -18,8 +18,8 @@ Public Class NestPageUC
' Flag per impostata per selezionare di una curva ' Flag per impostata per selezionare di una curva
Friend m_bSelectCurv As Boolean = False Friend m_bSelectCurv As Boolean = False
' dati per DragRettangoli (estensio/accorciamento dei rettangoli trascinando un lato) ' dati per DragRettangoli (estensio/accorciamento dei rettangoli trascinando un lato)
Private m_bIsVisibleDragRettangle As Boolean = False Private m_bIsVisibleDragRectangle As Boolean = False
Friend m_bIsCheckedDragRettangle As Boolean = False Friend m_bIsCheckedDragRectangle As Boolean = False
' dati per attivare disattivare le lavorazioni WaterJet ' dati per attivare disattivare le lavorazioni WaterJet
Private m_bIsVisibleSliptCurveWJ As Boolean = False Private m_bIsVisibleSliptCurveWJ As Boolean = False
Friend m_bIsCheckedSplitCurveWJ As Boolean = False Friend m_bIsCheckedSplitCurveWJ As Boolean = False
@@ -33,16 +33,16 @@ Public Class NestPageUC
Friend m_CurrToolFromSelectedSawCurv As String = String.Empty Friend m_CurrToolFromSelectedSawCurv As String = String.Empty
' Id del rettangolo, del taglio e della curva da modificare tramite Drag ' Id del rettangolo, del taglio e della curva da modificare tramite Drag
Private m_nIdSelectedOutLoopRettangle As Integer = GDB_ID.NULL Private m_nIdSelectedOutLoopRectangle As Integer = GDB_ID.NULL
Private m_nIdSelectedRegionRettangle As Integer = GDB_ID.NULL Private m_nIdSelectedRegionRectangle As Integer = GDB_ID.NULL
Private m_nIdSelectedSawRettangle As Integer = GDB_ID.NULL Private m_nIdSelectedSawRectangle As Integer = GDB_ID.NULL
Private m_nIdSelectedCurvRettangle As Integer = GDB_ID.NULL Private m_nIdSelectedCurvRectangle As Integer = GDB_ID.NULL
Private m_nIdSelectedTextRettangle As Integer = GDB_ID.NULL Private m_nIdSelectedTextRectangle As Integer = GDB_ID.NULL
Private m_nIdSelectedTextTopRettangle As Integer = GDB_ID.NULL Private m_nIdSelectedTextTopRectangle As Integer = GDB_ID.NULL
Private m_nIdSelectedFlatSurfRettangle As Integer = GDB_ID.NULL Private m_nIdSelectedFlatSurfRectangle As Integer = GDB_ID.NULL
Private m_SideListRettangle(4) As Integer Private m_SideListRectangle(4) As Integer
Private m_sTextContent As String = String.Empty Private m_sTextContent As String = String.Empty
Private m_dRettangleIsModified As Boolean = False Private m_dRectangleIsModified As Boolean = False
' Id dei lato WJ da separare tramite comando ON_OFF ' Id dei lato WJ da separare tramite comando ON_OFF
Private m_nIdSelectedSideWJ As Integer = GDB_ID.NULL Private m_nIdSelectedSideWJ As Integer = GDB_ID.NULL
@@ -113,13 +113,13 @@ Public Class NestPageUC
Dim nColumsIn_UG1 As Integer = 1 Dim nColumsIn_UG1 As Integer = 1
' gestisco la visualizzazione del comando PAN (per il drag dei rettangoli) ' gestisco la visualizzazione del comando PAN (per il drag dei rettangoli)
m_bIsVisibleDragRettangle = (GetPrivateProfileInt(S_NEST, K_DRAG_RETTANGLE, 0, m_MainWindow.GetIniFile()) <> 0) m_bIsVisibleDragRectangle = (GetPrivateProfileInt(S_NEST, K_DRAG_RECTANGLE, 0, m_MainWindow.GetIniFile()) <> 0)
If m_bIsVisibleDragRettangle Then If m_bIsVisibleDragRectangle Then
nColumsIn_UG1 += 1 nColumsIn_UG1 += 1
DragRettangleBtn.Visibility = Visibility.Visible DragRectangleBtn.Visibility = Visibility.Visible
DragRettangleBtn.ToolTip = EgtMsg(91207) ' Allunga/accorcia Rettangoli DragRectangleBtn.ToolTip = EgtMsg(91207) ' Allunga/accorcia Rettangoli
Else Else
DragRettangleBtn.Visibility = Visibility.Collapsed DragRectangleBtn.Visibility = Visibility.Collapsed
End If End If
' gestisco la visualizzazione del comando Split (per i tagli waterjet) ' gestisco la visualizzazione del comando Split (per i tagli waterjet)
@@ -484,7 +484,7 @@ Public Class NestPageUC
#Region "DRAG RETTANGLE" #Region "DRAG RETTANGLE"
' funzione chiamata da OnMyMouseMoveScene: verifica che la selezione sia corretta (deve essere il lato di una figura rettangolare) ' funzione chiamata da OnMyMouseMoveScene: verifica che la selezione sia corretta (deve essere il lato di una figura rettangolare)
Private Sub OnMyMouseDownSceneSelSideRettangle(sender As Object, e As System.Windows.Forms.MouseEventArgs) Private Sub OnMyMouseDownSceneSelSideRectangle(sender As Object, e As System.Windows.Forms.MouseEventArgs)
' Verifico di essere il gestore attivo e non in modalità registrazione ' Verifico di essere il gestore attivo e non in modalità registrazione
If Not m_bActive Or m_bRegister Then Return If Not m_bActive Or m_bRegister Then Return
' Si può selezionare solo con il tasto sinistro e se il bottone TEST Attivo ' Si può selezionare solo con il tasto sinistro e se il bottone TEST Attivo
@@ -506,8 +506,8 @@ Public Class NestPageUC
If sLayer = NAME_OUTLOOP Then If sLayer = NAME_OUTLOOP Then
If EgtGetType(nIdMy) = GDB_TY.CRV_LINE Then If EgtGetType(nIdMy) = GDB_TY.CRV_LINE Then
' -------------------------------- INIZIO VERIFICHE -------------------------------- ' -------------------------------- INIZIO VERIFICHE --------------------------------
m_nIdSelectedOutLoopRettangle = nIdParent m_nIdSelectedOutLoopRectangle = nIdParent
If Not IsRettangle(m_SideListRettangle) Then If Not IsRectangle(m_SideListRectangle) Then
m_CurrProjPage.ClearMessage() m_CurrProjPage.ClearMessage()
m_CurrProjPage.SetWarningMessage(EgtMsg(91209)) ' Non è un rettangolo (0) m_CurrProjPage.SetWarningMessage(EgtMsg(91209)) ' Non è un rettangolo (0)
Return Return
@@ -532,25 +532,25 @@ Public Class NestPageUC
' -------------------------------- FINE VERIFICHE -------------------------------- ' -------------------------------- FINE VERIFICHE --------------------------------
If Not EgtGetGroupObjs(nIdSaw) Then If Not EgtGetGroupObjs(nIdSaw) Then
m_nIdSelectedSawRettangle = nIdSaw m_nIdSelectedSawRectangle = nIdSaw
m_nIdSelectedCurvRettangle = nIdMy m_nIdSelectedCurvRectangle = nIdMy
m_nIdSelectedRegionRettangle = EgtGetFirstNameInGroup(nIdParentPart, NAME_REGION) m_nIdSelectedRegionRectangle = EgtGetFirstNameInGroup(nIdParentPart, NAME_REGION)
' recupero i testi cintenuti nel layer Region ' recupero i testi cintenuti nel layer Region
If m_nIdSelectedRegionRettangle <> GDB_ID.NULL Then If m_nIdSelectedRegionRectangle <> GDB_ID.NULL Then
Dim nCurrId As Integer = EgtGetFirstInGroup(m_nIdSelectedRegionRettangle) Dim nCurrId As Integer = EgtGetFirstInGroup(m_nIdSelectedRegionRectangle)
While nCurrId <> GDB_ID.NULL While nCurrId <> GDB_ID.NULL
If EgtGetType(nCurrId) = GDB_TY.EXT_TEXT Then If EgtGetType(nCurrId) = GDB_TY.EXT_TEXT Then
Dim sVal As String = String.Empty Dim sVal As String = String.Empty
EgtTextGetContent(nCurrId, sVal) EgtTextGetContent(nCurrId, sVal)
If sVal = "*TOP*" Then If sVal = "*TOP*" Then
m_nIdSelectedTextTopRettangle = nCurrId m_nIdSelectedTextTopRectangle = nCurrId
Else Else
m_nIdSelectedTextRettangle = nCurrId m_nIdSelectedTextRectangle = nCurrId
m_sTextContent = GetMyRettangleText(sVal) m_sTextContent = GetMyRectangleText(sVal)
End If End If
ElseIf EgtGetType(nCurrId) = GDB_TY.SRF_FRGN Then ElseIf EgtGetType(nCurrId) = GDB_TY.SRF_FRGN Then
m_nIdSelectedFlatSurfRettangle = nCurrId m_nIdSelectedFlatSurfRectangle = nCurrId
End If End If
nCurrId = EgtGetNext(nCurrId) nCurrId = EgtGetNext(nCurrId)
End While End While
@@ -571,7 +571,7 @@ Public Class NestPageUC
End Sub End Sub
' restituisce il valore del Text ripulito dalle dimensioni ' restituisce il valore del Text ripulito dalle dimensioni
Private Function GetMyRettangleText(sTextPz As String) As String Private Function GetMyRectangleText(sTextPz As String) As String
' da DrawPageUC.xaml.vb/MultipleInsert ' da DrawPageUC.xaml.vb/MultipleInsert
Dim sText As String = String.Empty Dim sText As String = String.Empty
If sTextPz.Contains("<br/>") Then If sTextPz.Contains("<br/>") Then
@@ -589,49 +589,49 @@ Public Class NestPageUC
End Function End Function
' verifico che la figura selezionata sia realmente un rettangolo ' verifico che la figura selezionata sia realmente un rettangolo
Private Function IsRettangle(ByRef IdSideList() As Integer) As Boolean Private Function IsRectangle(ByRef IdSideList() As Integer) As Boolean
' creo una lista con i lati del rettangolo ' creo una lista con i lati del rettangolo
Dim nCounter As Integer = 0 Dim nCounter As Integer = 0
' recupero i lati dal leyer "OutLoop" ' recupero i lati dal leyer "OutLoop"
Dim IdSideRettangle As Integer = EgtGetFirstInGroup(m_nIdSelectedOutLoopRettangle) Dim IdSideRectangle As Integer = EgtGetFirstInGroup(m_nIdSelectedOutLoopRectangle)
While IdSideRettangle <> GDB_ID.NULL And nCounter < 4 While IdSideRectangle <> GDB_ID.NULL And nCounter < 4
Dim sVal As String = String.Empty Dim sVal As String = String.Empty
Dim dPrevAng As Double = 0 Dim dPrevAng As Double = 0
EgtGetInfo(IdSideRettangle, "PrevAng", sVal) EgtGetInfo(IdSideRectangle, "PrevAng", sVal)
StringToDouble(sVal, dPrevAng) StringToDouble(sVal, dPrevAng)
Dim dNextAng As Double = 0 Dim dNextAng As Double = 0
EgtGetInfo(IdSideRettangle, "NextAng", sVal) EgtGetInfo(IdSideRectangle, "NextAng", sVal)
StringToDouble(sVal, dNextAng) StringToDouble(sVal, dNextAng)
' se gli angoli non sono retti allora esco senza caricare il lato corrente ' se gli angoli non sono retti allora esco senza caricare il lato corrente
If Math.Abs(dPrevAng - 90) > EPS_ANG_SMALL OrElse Math.Abs(dNextAng - 90) > EPS_ANG_SMALL Then If Math.Abs(dPrevAng - 90) > EPS_ANG_SMALL OrElse Math.Abs(dNextAng - 90) > EPS_ANG_SMALL Then
Exit While Exit While
End If End If
IdSideList(nCounter) = IdSideRettangle IdSideList(nCounter) = IdSideRectangle
nCounter += 1 nCounter += 1
IdSideRettangle = EgtGetNext(IdSideRettangle) IdSideRectangle = EgtGetNext(IdSideRectangle)
End While End While
' verifico che siano solo quattro lati ' verifico che siano solo quattro lati
If IdSideRettangle = GDB_ID.NULL And nCounter = 4 Then If IdSideRectangle = GDB_ID.NULL And nCounter = 4 Then
' solo se la figura ha 4 lati ortogonali ' solo se la figura ha 4 lati ortogonali
Return True Return True
End If End If
m_nIdSelectedOutLoopRettangle = GDB_ID.NULL m_nIdSelectedOutLoopRectangle = GDB_ID.NULL
' la figura presenta più/meno di 4 lati ' la figura presenta più/meno di 4 lati
Return False Return False
End Function End Function
' recupero le informazioni correnti per sapere se la figura è mdificabile ' recupero le informazioni correnti per sapere se la figura è mdificabile
Private Function GetRettangleInfoScale(ByRef frFixed As Frame3d, ByRef MaxLen As Double, ByRef MinLen As Double) As Vector3d Private Function GetRectangleInfoScale(ByRef frFixed As Frame3d, ByRef MaxLen As Double, ByRef MinLen As Double) As Vector3d
' determino la direzione del lato selezionato ' determino la direzione del lato selezionato
Dim vtDirSelectedCurv As New Vector3d Dim vtDirSelectedCurv As New Vector3d
EgtStartVector(m_nIdSelectedCurvRettangle, GDB_ID.ROOT, vtDirSelectedCurv) EgtStartVector(m_nIdSelectedCurvRectangle, GDB_ID.ROOT, vtDirSelectedCurv)
' recupero il lato successivo a quello selezionato ' recupero il lato successivo a quello selezionato
Dim Index As Integer = 0 Dim Index As Integer = 0
Dim Len As Double = 0 Dim Len As Double = 0
For Ind As Integer = 0 To 3 For Ind As Integer = 0 To 3
If m_SideListRettangle(Ind) = m_nIdSelectedCurvRettangle Then If m_SideListRectangle(Ind) = m_nIdSelectedCurvRectangle Then
' verifico se esiste un lato Precedente altrimenti recupero l'ultimo della lista ' verifico se esiste un lato Precedente altrimenti recupero l'ultimo della lista
If Ind = 0 Then If Ind = 0 Then
Index = 3 Index = 3
@@ -641,8 +641,8 @@ Public Class NestPageUC
End If End If
Next Next
' recupero la dimensione del lato ' recupero la dimensione del lato
EgtCurveLength(m_SideListRettangle(Index), MaxLen) EgtCurveLength(m_SideListRectangle(Index), MaxLen)
EgtCurveLength(m_nIdSelectedCurvRettangle, MinLen) EgtCurveLength(m_nIdSelectedCurvRectangle, MinLen)
' verifico che il lato selezionato sia il maggiore ' verifico che il lato selezionato sia il maggiore
If MinLen > MaxLen Then Return Nothing If MinLen > MaxLen Then Return Nothing
@@ -650,11 +650,11 @@ Public Class NestPageUC
' determimo il versore dal lato appena calcolato ' determimo il versore dal lato appena calcolato
Dim vtDir As New Vector3d Dim vtDir As New Vector3d
EgtStartVector(m_SideListRettangle(Index), GDB_ID.ROOT, vtDir) EgtStartVector(m_SideListRectangle(Index), GDB_ID.ROOT, vtDir)
vtDir.Normalize() vtDir.Normalize()
Dim dProjectionBaseX As Double = vtDir * Vector3d.X_AX Dim dProjectionBaseX As Double = vtDir * Vector3d.X_AX
Dim ptFixed As New Point3d Dim ptFixed As New Point3d
EgtStartPoint(m_SideListRettangle(Index), GDB_ID.ROOT, ptFixed) EgtStartPoint(m_SideListRectangle(Index), GDB_ID.ROOT, ptFixed)
Dim vtPerp As New Vector3d(vtDir.x, vtDir.y, vtDir.z) Dim vtPerp As New Vector3d(vtDir.x, vtDir.y, vtDir.z)
vtPerp.Rotate(Vector3d.Z_AX, 90) vtPerp.Rotate(Vector3d.Z_AX, 90)
@@ -667,7 +667,7 @@ Public Class NestPageUC
End Function End Function
' funzione chiamata da OnMyMouseMoveScene: gestisce la modifica lungo una dimensione del rettangolo selezionato ' funzione chiamata da OnMyMouseMoveScene: gestisce la modifica lungo una dimensione del rettangolo selezionato
Private Sub OnMyMouseMoveSawRettangle(sender As Object, e As System.Windows.Forms.MouseEventArgs) Private Sub OnMyMouseMoveSawRectangle(sender As Object, e As System.Windows.Forms.MouseEventArgs)
' Verifico di essere il gestore attivo ' Verifico di essere il gestore attivo
If Not m_bActive Then Return If Not m_bActive Then Return
' Se drag non abilitato o già in esecuzione, esco ' Se drag non abilitato o già in esecuzione, esco
@@ -687,7 +687,7 @@ Public Class NestPageUC
Dim MaxLen As Double = 0 Dim MaxLen As Double = 0
Dim MinLen As Double = 0 Dim MinLen As Double = 0
' recupero info sul rettangolo selezionato ' recupero info sul rettangolo selezionato
Dim vtDir As Vector3d = GetRettangleInfoScale(frFixed, MaxLen, MinLen) Dim vtDir As Vector3d = GetRectangleInfoScale(frFixed, MaxLen, MinLen)
If vtDir.Equals(Vector3d.NULL) Then If vtDir.Equals(Vector3d.NULL) Then
Return Return
End If End If
@@ -708,36 +708,36 @@ Public Class NestPageUC
' Modifico dimensione figura ' Modifico dimensione figura
If Math.Abs(dScalefactor) > EPS_SMALL * EPS_SMALL Then If Math.Abs(dScalefactor) > EPS_SMALL * EPS_SMALL Then
EgtScale(m_nIdSelectedOutLoopRettangle, frFixed, dScalefactor, 1, 1, GDB_ID.ROOT) EgtScale(m_nIdSelectedOutLoopRectangle, frFixed, dScalefactor, 1, 1, GDB_ID.ROOT)
EgtScale(m_nIdSelectedFlatSurfRettangle, frFixed, dScalefactor, 1, 1, GDB_ID.ROOT) EgtScale(m_nIdSelectedFlatSurfRectangle, frFixed, dScalefactor, 1, 1, GDB_ID.ROOT)
Dim ptCen As Point3d Dim ptCen As Point3d
EgtCenterPoint(m_nIdSelectedTextRettangle, ptCen) EgtCenterPoint(m_nIdSelectedTextRectangle, ptCen)
EgtModifyText(m_nIdSelectedTextRettangle, m_sTextContent & LenToString(MaxLen + dProjection, 2) & " x " & LenToString(MinLen, 2)) EgtModifyText(m_nIdSelectedTextRectangle, m_sTextContent & LenToString(MaxLen + dProjection, 2) & " x " & LenToString(MinLen, 2))
EgtMove(m_nIdSelectedTextRettangle, vtMove * 0.5, GDB_ID.ROOT) EgtMove(m_nIdSelectedTextRectangle, vtMove * 0.5, GDB_ID.ROOT)
If m_nIdSelectedTextTopRettangle <> GDB_ID.NULL Then If m_nIdSelectedTextTopRectangle <> GDB_ID.NULL Then
EgtMove(m_nIdSelectedTextTopRettangle, vtMove * 0.5, GDB_ID.ROOT) EgtMove(m_nIdSelectedTextTopRectangle, vtMove * 0.5, GDB_ID.ROOT)
End If End If
' il rettangolo è stato modifica almeno una volta ' il rettangolo è stato modifica almeno una volta
m_dRettangleIsModified = True m_dRectangleIsModified = True
End If End If
' verifico che il il lato maggiore rimanga semore il lato maggiore ' verifico che il il lato maggiore rimanga semore il lato maggiore
Dim bRettangleCorrect As Boolean = False Dim bRectangleCorrect As Boolean = False
If (MaxLen + dProjection - MinLen) > EPS_SMALL Then bRettangleCorrect = True If (MaxLen + dProjection - MinLen) > EPS_SMALL Then bRectangleCorrect = True
Dim nWarn As Integer = 0 Dim nWarn As Integer = 0
ResetAllMachinings(nWarn) ResetAllMachinings(nWarn)
EnableReferenceRegion(False) EnableReferenceRegion(False)
' se la modifica genera un errore allora ripristino la figura prima della defomrazione ' se la modifica genera un errore allora ripristino la figura prima della defomrazione
If Not EgtVerifyPart(EgtGetParent(m_nIdSelectedOutLoopRettangle), True) Or Not bRettangleCorrect Then If Not EgtVerifyPart(EgtGetParent(m_nIdSelectedOutLoopRectangle), True) Or Not bRectangleCorrect Then
EgtScale(m_nIdSelectedOutLoopRettangle, frFixed, 1 / dScalefactor, 1, 1, GDB_ID.ROOT) EgtScale(m_nIdSelectedOutLoopRectangle, frFixed, 1 / dScalefactor, 1, 1, GDB_ID.ROOT)
EgtScale(m_nIdSelectedFlatSurfRettangle, frFixed, 1 / dScalefactor, 1, 1, GDB_ID.ROOT) EgtScale(m_nIdSelectedFlatSurfRectangle, frFixed, 1 / dScalefactor, 1, 1, GDB_ID.ROOT)
Dim ptCen As Point3d Dim ptCen As Point3d
EgtCenterPoint(m_nIdSelectedTextRettangle, ptCen) EgtCenterPoint(m_nIdSelectedTextRectangle, ptCen)
EgtModifyText(m_nIdSelectedTextRettangle, m_sTextContent & LenToString(MaxLen, 2) & " x " & LenToString(MinLen, 2)) EgtModifyText(m_nIdSelectedTextRectangle, m_sTextContent & LenToString(MaxLen, 2) & " x " & LenToString(MinLen, 2))
EgtMove(m_nIdSelectedTextRettangle, -vtMove * 0.5, GDB_ID.ROOT) EgtMove(m_nIdSelectedTextRectangle, -vtMove * 0.5, GDB_ID.ROOT)
If m_nIdSelectedTextTopRettangle <> GDB_ID.NULL Then If m_nIdSelectedTextTopRectangle <> GDB_ID.NULL Then
EgtMove(m_nIdSelectedTextTopRettangle, -vtMove * 0.5, GDB_ID.ROOT) EgtMove(m_nIdSelectedTextTopRectangle, -vtMove * 0.5, GDB_ID.ROOT)
End If End If
End If End If
@@ -749,29 +749,29 @@ Public Class NestPageUC
End Sub End Sub
' funzione chiamata da OnMyMouseUp: gestisce il reset di tutti gli indici in uso ' funzione chiamata da OnMyMouseUp: gestisce il reset di tutti gli indici in uso
Public Sub ResetDragRettangleParam() Public Sub ResetDragRectangleParam()
' deseleziono l'elemento corrente ' deseleziono l'elemento corrente
EgtDeselectObj(m_nIdSelectedSawRettangle) EgtDeselectObj(m_nIdSelectedSawRectangle)
EgtDeselectObj(m_nIdSelectedCurvRettangle) EgtDeselectObj(m_nIdSelectedCurvRectangle)
EgtResetMark(m_nIdSelectedSawRettangle) EgtResetMark(m_nIdSelectedSawRectangle)
If m_dRettangleIsModified Then If m_dRectangleIsModified Then
' elimino eventuali riferienti con la famiglia di appartenenza ' elimino eventuali riferienti con la famiglia di appartenenza
Dim nCurrPart As Integer = EgtGetParent(m_nIdSelectedRegionRettangle) Dim nCurrPart As Integer = EgtGetParent(m_nIdSelectedRegionRectangle)
EgtRemoveInfo(nCurrPart, INFO_REFGROUP) EgtRemoveInfo(nCurrPart, INFO_REFGROUP)
' elimino il Layer che contiene l'informazione del numero di pezzi ' elimino il Layer che contiene l'informazione del numero di pezzi
Dim nCounterLayer As Integer = EgtGetFirstNameInGroup(nCurrPart, INFO_COUNTERLY) Dim nCounterLayer As Integer = EgtGetFirstNameInGroup(nCurrPart, INFO_COUNTERLY)
EgtErase(nCounterLayer) EgtErase(nCounterLayer)
End If End If
m_dRettangleIsModified = False m_dRectangleIsModified = False
' resetto gli indici ' resetto gli indici
m_nIdSelectedOutLoopRettangle = GDB_ID.NULL m_nIdSelectedOutLoopRectangle = GDB_ID.NULL
m_nIdSelectedRegionRettangle = GDB_ID.NULL m_nIdSelectedRegionRectangle = GDB_ID.NULL
m_nIdSelectedSawRettangle = GDB_ID.NULL m_nIdSelectedSawRectangle = GDB_ID.NULL
m_nIdSelectedCurvRettangle = GDB_ID.NULL m_nIdSelectedCurvRectangle = GDB_ID.NULL
m_nIdSelectedTextRettangle = GDB_ID.NULL m_nIdSelectedTextRectangle = GDB_ID.NULL
m_nIdSelectedTextTopRettangle = GDB_ID.NULL m_nIdSelectedTextTopRectangle = GDB_ID.NULL
m_nIdSelectedFlatSurfRettangle = GDB_ID.NULL m_nIdSelectedFlatSurfRectangle = GDB_ID.NULL
m_SideListRettangle = {GDB_ID.NULL, GDB_ID.NULL, GDB_ID.NULL, GDB_ID.NULL} m_SideListRectangle = {GDB_ID.NULL, GDB_ID.NULL, GDB_ID.NULL, GDB_ID.NULL}
m_sTextContent = String.Empty m_sTextContent = String.Empty
' disattivo il drag ' disattivo il drag
m_bDrag = False m_bDrag = False
@@ -1028,17 +1028,18 @@ Public Class NestPageUC
Return Return
End If End If
' se in modalità slezione tagli ' se in modalità selezione tagli
If m_bSelectCurv Then If m_bSelectCurv Then
OnMyMouseDownSceneSelCurv(sender, e) OnMyMouseDownSceneSelCurv(sender, e)
Return Return
End If End If
m_bIsCounterLy = False m_bIsCounterLy = False
' se in modalità DragRettangle (deformazione delle componenti rettangolari) ' se in modalità DragRectangle (deformazione delle componenti rettangolari)
If m_bIsCheckedDragRettangle Then If m_bIsCheckedDragRectangle Then
OnMyMouseDownSceneSelSideRectangle(sender, e)
' Dati per drag (abilito il Drag) ' Dati per drag (abilito il Drag)
m_locPrev = e.Location m_locPrev = e.Location
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev) And m_nIdSelectedCurvRettangle <> GDB_ID.NULL m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev) And m_nIdSelectedCurvRectangle <> GDB_ID.NULL
m_bDragToStart = m_bDrag m_bDragToStart = m_bDrag
m_bVerify = m_bDrag AndAlso (Keyboard.Modifiers And ModifierKeys.Shift) > 0 m_bVerify = m_bDrag AndAlso (Keyboard.Modifiers And ModifierKeys.Shift) > 0
m_vtTotMove = Vector3d.NULL() m_vtTotMove = Vector3d.NULL()
@@ -1238,8 +1239,8 @@ Public Class NestPageUC
End If End If
' se devo muovere un lato del rettangolo ' se devo muovere un lato del rettangolo
If m_bIsCheckedDragRettangle Then If m_bIsCheckedDragRectangle Then
OnMyMouseMoveSawRettangle(sender, e) OnMyMouseMoveSawRectangle(sender, e)
Return Return
End If End If
If ModPointRegBtn.IsChecked Then If ModPointRegBtn.IsChecked Then
@@ -1430,9 +1431,9 @@ Public Class NestPageUC
' verifico che non sia attivo il comando Test ' verifico che non sia attivo il comando Test
If m_bSelectCurv Then Return If m_bSelectCurv Then Return
' verifico che sia attivo il comando di Drag dei rettangoli ' verifico che sia attivo il comando di Drag dei rettangoli
If m_bIsCheckedDragRettangle Then If m_bIsCheckedDragRectangle Then
' deseleziono gli oggeti, resetto le variabili usate, aggiorno il disegno ' deseleziono gli oggeti, resetto le variabili usate, aggiorno il disegno
ResetDragRettangleParam() ResetDragRectangleParam()
Return Return
End If End If
' verifico che sia attivo il comando di modifica tagli waterjet ' verifico che sia attivo il comando di modifica tagli waterjet
@@ -2705,9 +2706,9 @@ Public Class NestPageUC
#End Region ' Manager Counter Part #End Region ' Manager Counter Part
Private Sub DragRettangle_Click() Handles DragRettangleBtn.Click Private Sub DragRectangle_Click() Handles DragRectangleBtn.Click
If DragRettangleBtn.IsChecked Then If DragRectangleBtn.IsChecked Then
m_bIsCheckedDragRettangle = True m_bIsCheckedDragRectangle = True
SplitCurveWJBtn.IsChecked = False SplitCurveWJBtn.IsChecked = False
ResetSplitCurvWJParam() ResetSplitCurvWJParam()
m_bIsCheckedSplitCurveWJ = False m_bIsCheckedSplitCurveWJ = False
@@ -2715,8 +2716,8 @@ Public Class NestPageUC
ResetStartCurvWJParam() ResetStartCurvWJParam()
m_bIsCheckedStartCurveWJ = False m_bIsCheckedStartCurveWJ = False
Else Else
m_bIsCheckedDragRettangle = False m_bIsCheckedDragRectangle = False
ResetDragRettangleParam() ResetDragRectangleParam()
m_CurrProjPage.ClearMessage() m_CurrProjPage.ClearMessage()
ShowParkedParts() ShowParkedParts()
End If End If
@@ -2726,8 +2727,8 @@ Public Class NestPageUC
Private Sub SplitCurveWJBtn_Click() Handles SplitCurveWJBtn.Click Private Sub SplitCurveWJBtn_Click() Handles SplitCurveWJBtn.Click
If SplitCurveWJBtn.IsChecked Then If SplitCurveWJBtn.IsChecked Then
m_bIsCheckedSplitCurveWJ = True m_bIsCheckedSplitCurveWJ = True
DragRettangleBtn.IsChecked = False DragRectangleBtn.IsChecked = False
m_bIsCheckedDragRettangle = False m_bIsCheckedDragRectangle = False
StartCurveWJBtn.IsChecked = False StartCurveWJBtn.IsChecked = False
ResetStartCurvWJParam() ResetStartCurvWJParam()
m_bIsCheckedStartCurveWJ = False m_bIsCheckedStartCurveWJ = False
@@ -2744,8 +2745,8 @@ Public Class NestPageUC
Private Sub StartCurveWJBtn_Click() Handles StartCurveWJBtn.Click Private Sub StartCurveWJBtn_Click() Handles StartCurveWJBtn.Click
If StartCurveWJBtn.IsChecked Then If StartCurveWJBtn.IsChecked Then
m_bIsCheckedStartCurveWJ = True m_bIsCheckedStartCurveWJ = True
DragRettangleBtn.IsChecked = False DragRectangleBtn.IsChecked = False
m_bIsCheckedDragRettangle = False m_bIsCheckedDragRectangle = False
ResetSplitCurvWJParam() ResetSplitCurvWJParam()
SplitCurveWJBtn.IsChecked = False SplitCurveWJBtn.IsChecked = False
m_bIsCheckedSplitCurveWJ = False m_bIsCheckedSplitCurveWJ = False
+25 -20
View File
@@ -18,14 +18,14 @@ Module VacuumCups
Private m_RawWeight As Double = 0 Private m_RawWeight As Double = 0
Private m_MaxWeightSinglePlugger As Double = 250 Private m_MaxWeightSinglePlugger As Double = 250
Private m_MaxWeightDoublePlugger As Double = 750 Private m_MaxWeightDoublePlugger As Double = 750
Public bOverWeight As Boolean = False Public m_bOverWeight As Boolean = False
' dati per rotazione ventose vicono al fine corsa Y e X ' dati per rotazione ventose vicino al fine corsa Y e X
Private bRotateVacuumNearExtraStrokeY As Boolean = False Private m_bRotateVacuumNearExtraStrokeY As Boolean = False
Private bRotateVacuumNearExtraStrokeX As Boolean = False Private m_bRotateVacuumNearExtraStrokeX As Boolean = False
' dati stroke ' dati stroke
Public bExtraStroke As Boolean = False Public m_bExtraStroke As Boolean = False
Public ptStartPointLift As Point3d Public m_ptStartPointLift As Point3d
Public dDegRotStartAng As Double Public m_dDegRotStartAng As Double
' Nome del gruppo temporaneo per le ventose ' Nome del gruppo temporaneo per le ventose
Private Const VACTMP_GRP As String = "VacTmp" Private Const VACTMP_GRP As String = "VacTmp"
@@ -85,12 +85,12 @@ Module VacuumCups
m_MaxWeightDoublePlugger = MaxDouble m_MaxWeightDoublePlugger = MaxDouble
End Sub End Sub
Friend Sub SetRotationForExtraStrokeY(Rotate As Boolean) Friend Sub SetRotationForExtraStrokeY(bRotate As Boolean)
bRotateVacuumNearExtraStrokeY = Rotate m_bRotateVacuumNearExtraStrokeY = bRotate
End Sub End Sub
Friend Sub SetRotationForExtraStrokeX(Rotate As Boolean) Friend Sub SetRotationForExtraStrokeX(bRotate As Boolean)
bRotateVacuumNearExtraStrokeX = Rotate m_bRotateVacuumNearExtraStrokeX = bRotate
End Sub End Sub
Friend Function GetVacuumId() As Integer Friend Function GetVacuumId() As Integer
Return m_nVacId Return m_nVacId
@@ -328,7 +328,7 @@ Module VacuumCups
Dim sCups() As String = Nothing Dim sCups() As String = Nothing
Dim sCups2() As String = Nothing Dim sCups2() As String = Nothing
If Not GetVacuumCupSelection(nI, sCups, sCups2) Then Return False If Not GetVacuumCupSelection(nI, sCups, sCups2) Then Return False
bExtraStroke = False m_bExtraStroke = False
' Determino validità soluzioni della configurazione ' Determino validità soluzioni della configurazione
Dim vtMove As New Vector3d Dim vtMove As New Vector3d
Dim ptRotCen As New Point3d Dim ptRotCen As New Point3d
@@ -337,6 +337,8 @@ Module VacuumCups
Dim ptRotCen2 As New Point3d Dim ptRotCen2 As New Point3d
Dim dRotAngDeg2 As Double = 0 Dim dRotAngDeg2 As Double = 0
Dim dDist = TestVacuumCupSelection(sCups, b3Kerf, ptKerfCen, nOutlineId, nRKerfId, vtMove, ptRotCen, dRotAngDeg) Dim dDist = TestVacuumCupSelection(sCups, b3Kerf, ptKerfCen, nOutlineId, nRKerfId, vtMove, ptRotCen, dRotAngDeg)
Dim ptStartPointLift_1 As New Point3d( m_ptStartPointLift)
Dim dDegRotStartAng_1 As Double = m_dDegRotStartAng
Dim dDist2 = TestVacuumCupSelection(sCups2, b3Kerf, ptKerfCen, nOutlineId, nRKerfId, vtMove2, ptRotCen2, dRotAngDeg2) Dim dDist2 = TestVacuumCupSelection(sCups2, b3Kerf, ptKerfCen, nOutlineId, nRKerfId, vtMove2, ptRotCen2, dRotAngDeg2)
If dDist > INFINITO - 1 And dDist2 > INFINITO - 1 Then Continue For If dDist > INFINITO - 1 And dDist2 > INFINITO - 1 Then Continue For
If dDist2 < dDist Then If dDist2 < dDist Then
@@ -344,6 +346,9 @@ Module VacuumCups
vtMove = vtMove2 vtMove = vtMove2
ptRotCen = ptRotCen2 ptRotCen = ptRotCen2
dRotAngDeg = dRotAngDeg2 dRotAngDeg = dRotAngDeg2
Else
m_ptStartPointLift = ptStartPointLift_1
m_dDegRotStartAng = dDegRotStartAng_1
End If End If
' Eseguo il movimento ' Eseguo il movimento
EgtMove(m_nVacId, vtMove, GDB_RT.GLOB) EgtMove(m_nVacId, vtMove, GDB_RT.GLOB)
@@ -433,18 +438,18 @@ Module VacuumCups
' Se box maggiore di quello del pezzo, scarto soluzione ' Se box maggiore di quello del pezzo, scarto soluzione
If b3Vac.Radius() > b3Raw.Radius() Then Return INFINITO If b3Vac.Radius() > b3Raw.Radius() Then Return INFINITO
'-------------------- INIZIO VERIFICA PESO -------------------- '-------------------- INIZIO VERIFICA PESO --------------------
bOverWeight = False m_bOverWeight = False
Select Case GetPluggerFromCameras(sCups) Select Case GetPluggerFromCameras(sCups)
Case 2 Case 2
' se peso del grezzo oltre il limite consentito allora scarto la soluzione ' se peso del grezzo oltre il limite consentito allora scarto la soluzione
If m_RawWeight > m_MaxWeightDoublePlugger Then If m_RawWeight > m_MaxWeightDoublePlugger Then
bOverWeight = True m_bOverWeight = True
Return INFINITO Return INFINITO
End If End If
Case 1 Case 1
' se peso del grezzo oltre il limite consentito allora scarto la soluzione ' se peso del grezzo oltre il limite consentito allora scarto la soluzione
If m_RawWeight > m_MaxWeightSinglePlugger Then If m_RawWeight > m_MaxWeightSinglePlugger Then
bOverWeight = True m_bOverWeight = True
Return INFINITO Return INFINITO
End If End If
End Select End Select
@@ -466,14 +471,14 @@ Module VacuumCups
Dim dPreferredRot As Double = m_dPreferredRot Dim dPreferredRot As Double = m_dPreferredRot
' -------------------- INIZIO GESTIONE ROTAZIONE ASSE C PER NON ANDARE IN EXTRA-CORSA -------------------- ' -------------------- INIZIO GESTIONE ROTAZIONE ASSE C PER NON ANDARE IN EXTRA-CORSA --------------------
' verifico l'orientamento del pezzo ' verifico l'orientamento del pezzo
If bRotateVacuumNearExtraStrokeX And Not IsHorizontal(dAngOrizzDeg) Then If m_bRotateVacuumNearExtraStrokeX And Not IsHorizontal(dAngOrizzDeg) Then
' se l'orientamento è verticale ' se l'orientamento è verticale
If frMinRect.Orig().x < b3Tab.Center().x Then If frMinRect.Orig().x < b3Tab.Center().x Then
dPreferredRot = m_dPrefVertRotXMinus dPreferredRot = m_dPrefVertRotXMinus
Else Else
dPreferredRot = m_dPrefVertRotXPlus dPreferredRot = m_dPrefVertRotXPlus
End If End If
ElseIf bRotateVacuumNearExtraStrokeY And IsHorizontal(dAngOrizzDeg) Then ElseIf m_bRotateVacuumNearExtraStrokeY And IsHorizontal(dAngOrizzDeg) Then
' se l'orientemanto è orizzontale e la macchina è stata abilitata ' se l'orientemanto è orizzontale e la macchina è stata abilitata
If frMinRect.Orig().y < b3Tab.Center().y Then If frMinRect.Orig().y < b3Tab.Center().y Then
dPreferredRot = m_dPrefVertRotYPlus dPreferredRot = m_dPrefVertRotYPlus
@@ -541,12 +546,12 @@ Module VacuumCups
' -------------- INIZIO verifica di essere nel limite delle corse macchina -------------- ' -------------- INIZIO verifica di essere nel limite delle corse macchina --------------
If VerifyOutOfStrokes(ptRef, dRotAngDeg) <> 0 Then If VerifyOutOfStrokes(ptRef, dRotAngDeg) <> 0 Then
bExtraStroke = True m_bExtraStroke = True
Return INFINITO Return INFINITO
End If End If
' se la posizione è accettbaile allora salvo i dati ' se la posizione è accettbaile allora salvo i dati
ptStartPointLift = ptRef m_ptStartPointLift = ptRef
dDegRotStartAng = dRotAngDeg m_dDegRotStartAng = dRotAngDeg
' -------------- FINE verifica di essere nel limite delle corse macchina -------------- ' -------------- FINE verifica di essere nel limite delle corse macchina --------------
' Ne calcolo la distanza dal centro della tavola ' Ne calcolo la distanza dal centro della tavola
+1 -1
View File
@@ -166,7 +166,7 @@ Module ConstIni
Public Const K_TEXTCOLOR As String = "TextColor" Public Const K_TEXTCOLOR As String = "TextColor"
Public Const K_AUTOMATICOPTIMIZE As String = "AutomaticOptimize" Public Const K_AUTOMATICOPTIMIZE As String = "AutomaticOptimize"
Public Const K_AUTOMATICMAXTIME As String = "AutomaticMaxTime" Public Const K_AUTOMATICMAXTIME As String = "AutomaticMaxTime"
Public Const K_DRAG_RETTANGLE As String = "DragRectangle" Public Const K_DRAG_RECTANGLE As String = "DragRectangle"
Public Const K_STARTENDMODIFYONINTCORNER As String = "StartEndModifyOnIntCorner" Public Const K_STARTENDMODIFYONINTCORNER As String = "StartEndModifyOnIntCorner"
Public Const S_SPLIT As String = "Split" Public Const S_SPLIT As String = "Split"
+1 -1
View File
@@ -468,7 +468,7 @@ Public Class FrameCutPageUC
Private Sub CompoBtn_Click(sender As Object, e As RoutedEventArgs) Handles CompoBtn.Click Private Sub CompoBtn_Click(sender As Object, e As RoutedEventArgs) Handles CompoBtn.Click
m_MainWindow.TestOff() m_MainWindow.TestOff()
m_MainWindow.DragRettangleOff() m_MainWindow.DragRectangleOff()
m_MainWindow.SplitCurvWJOff() m_MainWindow.SplitCurvWJOff()
m_MainWindow.StartCurvWJOff() m_MainWindow.StartCurvWJOff()
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC) m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
+9 -9
View File
@@ -729,7 +729,7 @@ Class MainWindow
' disbilito Test ' disbilito Test
TestOff() TestOff()
' disabilito DragRettangle ' disabilito DragRettangle
DragRettangleOff() DragRectangleOff()
' disabilito SplitCurv ' disabilito SplitCurv
SplitCurvWJOff() SplitCurvWJOff()
' disattivo StartCurv ' disattivo StartCurv
@@ -792,7 +792,7 @@ Class MainWindow
EgtMdbGetGeneralParam(MCH_GP.SAFEZ, DirectCutPageUC.m_dZSafe) EgtMdbGetGeneralParam(MCH_GP.SAFEZ, DirectCutPageUC.m_dZSafe)
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
TestOff() TestOff()
DragRettangleOff() DragRectangleOff()
SplitCurvWJOff() SplitCurvWJOff()
StartCurvWJOff() StartCurvWJOff()
Select Case m_ActivePage Select Case m_ActivePage
@@ -850,7 +850,7 @@ Class MainWindow
Private Sub CadCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles CadCutBtn.Click Private Sub CadCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles CadCutBtn.Click
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
TestOff() TestOff()
DragRettangleOff() DragRectangleOff()
SplitCurvWJOff() SplitCurvWJOff()
StartCurvWJOff() StartCurvWJOff()
Select Case m_ActivePage Select Case m_ActivePage
@@ -907,7 +907,7 @@ Class MainWindow
Private Sub FrameCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles FrameCutBtn.Click Private Sub FrameCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles FrameCutBtn.Click
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
TestOff() TestOff()
DragRettangleOff() DragRectangleOff()
SplitCurvWJOff() SplitCurvWJOff()
StartCurvWJOff() StartCurvWJOff()
Select Case m_ActivePage Select Case m_ActivePage
@@ -965,7 +965,7 @@ Class MainWindow
Private Sub MachineBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachineBtn.Click Private Sub MachineBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachineBtn.Click
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
TestOff() TestOff()
DragRettangleOff() DragRectangleOff()
SplitCurvWJOff() SplitCurvWJOff()
StartCurvWJOff() StartCurvWJOff()
Select Case m_ActivePage Select Case m_ActivePage
@@ -1018,7 +1018,7 @@ Class MainWindow
Private Sub OptionsBtn_Click(sender As Object, e As RoutedEventArgs) Handles OptionsBtn.Click Private Sub OptionsBtn_Click(sender As Object, e As RoutedEventArgs) Handles OptionsBtn.Click
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
TestOff() TestOff()
DragRettangleOff() DragRectangleOff()
SplitCurvWJOff() SplitCurvWJOff()
StartCurvWJOff() StartCurvWJOff()
Select Case m_ActivePage Select Case m_ActivePage
@@ -2154,9 +2154,9 @@ Class MainWindow
End Sub End Sub
' spegne il comando per la mofica dei rettangoli ' spegne il comando per la mofica dei rettangoli
Public Sub DragRettangleOff() Public Sub DragRectangleOff()
m_CadCutPageUC.m_NestPage.DragRettangleBtn.IsChecked = False m_CadCutPageUC.m_NestPage.DragRectangleBtn.IsChecked = False
Me.m_CadCutPageUC.m_NestPage.m_bIsCheckedDragRettangle = False Me.m_CadCutPageUC.m_NestPage.m_bIsCheckedDragRectangle = False
ShowParkedParts() ShowParkedParts()
End Sub End Sub
+1 -1
View File
@@ -1364,7 +1364,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Resources\Spiral.png" /> <Resource Include="Resources\Spiral.png" />
<Resource Include="Resources\NewIcons\Drag_Rettangle.png" /> <Resource Include="Resources\NewIcons\Drag_Rectangle.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Resources\NewIcons\GenerateCN.png" /> <Resource Include="Resources\NewIcons\GenerateCN.png" />
+1 -1
View File
@@ -113,7 +113,7 @@
<BitmapImage x:Key="Elimina-pezzoImg" UriSource="Resources/NewIcons/Elimina-pezzo.png"></BitmapImage> <BitmapImage x:Key="Elimina-pezzoImg" UriSource="Resources/NewIcons/Elimina-pezzo.png"></BitmapImage>
<BitmapImage x:Key="Seleziona-tuttoImg" UriSource="Resources/NewIcons/Seleziona-tutto.png"></BitmapImage> <BitmapImage x:Key="Seleziona-tuttoImg" UriSource="Resources/NewIcons/Seleziona-tutto.png"></BitmapImage>
<BitmapImage x:Key="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage> <BitmapImage x:Key="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage>
<BitmapImage x:Key="Drag_RettangleImg" UriSource="Resources/NewIcons/Drag_Rettangle.png"></BitmapImage> <BitmapImage x:Key="Drag_RectangleImg" UriSource="Resources/NewIcons/Drag_Rectangle.png"></BitmapImage>
<BitmapImage x:Key="StartWJImg" UriSource="Resources/NewIcons/START-WJ.png"></BitmapImage> <BitmapImage x:Key="StartWJImg" UriSource="Resources/NewIcons/START-WJ.png"></BitmapImage>
<BitmapImage x:Key="SplitWJImg" UriSource="Resources/NewIcons/SPLIT-WJ.png"></BitmapImage> <BitmapImage x:Key="SplitWJImg" UriSource="Resources/NewIcons/SPLIT-WJ.png"></BitmapImage>
+1 -1
View File
@@ -189,7 +189,7 @@
<BitmapImage x:Key="Elimina-pezzoImg" UriSource="Resources/NewIcons/Elimina-pezzo.png"></BitmapImage> <BitmapImage x:Key="Elimina-pezzoImg" UriSource="Resources/NewIcons/Elimina-pezzo.png"></BitmapImage>
<BitmapImage x:Key="Seleziona-tuttoImg" UriSource="Resources/NewIcons/Seleziona-tutto.png"></BitmapImage> <BitmapImage x:Key="Seleziona-tuttoImg" UriSource="Resources/NewIcons/Seleziona-tutto.png"></BitmapImage>
<BitmapImage x:Key="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage> <BitmapImage x:Key="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage>
<BitmapImage x:Key="Drag_RettangleImg" UriSource="Resources/NewIcons/Drag_Rettangle.png"></BitmapImage> <BitmapImage x:Key="Drag_RectangleImg" UriSource="Resources/NewIcons/Drag_Rectangle.png"></BitmapImage>
<BitmapImage x:Key="StartWJImg" UriSource="Resources/NewIcons/START-WJ.png"></BitmapImage> <BitmapImage x:Key="StartWJImg" UriSource="Resources/NewIcons/START-WJ.png"></BitmapImage>
<BitmapImage x:Key="SplitWJImg" UriSource="Resources/NewIcons/SPLIT-WJ.png"></BitmapImage> <BitmapImage x:Key="SplitWJImg" UriSource="Resources/NewIcons/SPLIT-WJ.png"></BitmapImage>
+2 -2
View File
@@ -1357,7 +1357,7 @@ Public Class ProjectMgrUC
m_MainWindow.m_CadCutPageUC.m_NestPage.SelectAllBtn.Visibility = Windows.Visibility.Hidden m_MainWindow.m_CadCutPageUC.m_NestPage.SelectAllBtn.Visibility = Windows.Visibility.Hidden
m_MainWindow.m_CadCutPageUC.m_NestPage.DeselectAllBtn.Visibility = Windows.Visibility.Hidden m_MainWindow.m_CadCutPageUC.m_NestPage.DeselectAllBtn.Visibility = Windows.Visibility.Hidden
' nuovi bottoni pagina di Nesting ' nuovi bottoni pagina di Nesting
m_MainWindow.m_CadCutPageUC.m_NestPage.DragRettangleBtn.Visibility = Windows.Visibility.Hidden m_MainWindow.m_CadCutPageUC.m_NestPage.DragRectangleBtn.Visibility = Windows.Visibility.Hidden
If m_MainWindow.m_CadCutPageUC.m_NestPage.SplitCurveWJBtn.Visibility = Windows.Visibility.Visible Then If m_MainWindow.m_CadCutPageUC.m_NestPage.SplitCurveWJBtn.Visibility = Windows.Visibility.Visible Then
m_MainWindow.m_CadCutPageUC.m_NestPage.SplitCurveWJBtn.Visibility = Windows.Visibility.Hidden m_MainWindow.m_CadCutPageUC.m_NestPage.SplitCurveWJBtn.Visibility = Windows.Visibility.Hidden
End If End If
@@ -1447,7 +1447,7 @@ Public Class ProjectMgrUC
m_MainWindow.m_CadCutPageUC.m_NestPage.SelectAllBtn.Visibility = Windows.Visibility.Visible m_MainWindow.m_CadCutPageUC.m_NestPage.SelectAllBtn.Visibility = Windows.Visibility.Visible
m_MainWindow.m_CadCutPageUC.m_NestPage.DeselectAllBtn.Visibility = Windows.Visibility.Visible m_MainWindow.m_CadCutPageUC.m_NestPage.DeselectAllBtn.Visibility = Windows.Visibility.Visible
' nuovi bottoni pagina di Nesting ' nuovi bottoni pagina di Nesting
m_MainWindow.m_CadCutPageUC.m_NestPage.DragRettangleBtn.Visibility = Windows.Visibility.Visible m_MainWindow.m_CadCutPageUC.m_NestPage.DragRectangleBtn.Visibility = Windows.Visibility.Visible
If m_MainWindow.m_CadCutPageUC.m_NestPage.SplitCurveWJBtn.Visibility = Windows.Visibility.Hidden Then If m_MainWindow.m_CadCutPageUC.m_NestPage.SplitCurveWJBtn.Visibility = Windows.Visibility.Hidden Then
m_MainWindow.m_CadCutPageUC.m_NestPage.SplitCurveWJBtn.Visibility = Windows.Visibility.Visible m_MainWindow.m_CadCutPageUC.m_NestPage.SplitCurveWJBtn.Visibility = Windows.Visibility.Visible
End If End If

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB