Compare commits

...

36 Commits

Author SHA1 Message Date
NicolaP 4ac0507050 Migliorata la scrittura del codice 2022-02-03 11:37:33 +01:00
NicolaP a6a4f29bba Gestione delle interferenze in fase di Drag 2022-02-02 18:12:24 +01:00
NicolaP 0c9b37742a Inizio Drag rettangoli (ogni lato selezionato senza limiti) manca la gestione dell'uscita dal comando 2022-01-31 20:54:08 +01:00
NicolaP ef5c98020e Cambio versione 2.4a3 2022-01-27 19:38:30 +01:00
NicolaP c2a1fa3fdc Merge branch 'Features/Tagli_Diretti_WaterJet' 2022-01-27 19:36:57 +01:00
NicolaP 319275f43c Gestione TagioGrglio con macchina WaterJet 2022-01-27 19:01:08 +01:00
NicolaP 61d238e196 Gestione TaglioMultiplo con macchina WaterJet 2022-01-27 17:01:07 +01:00
NicolaP 0900728bbf Gestione TaglioSIngolo con macchina solo WaterJet 2022-01-27 13:03:23 +01:00
NicolaP ee83a453e7 Eliminato il campo qualità "" 2022-01-20 19:30:30 +01:00
NicolaP 7596849254 Migliorato codice 2022-01-19 20:21:30 +01:00
NicolaP e12eb2599e Correzione e miglioramento selezione tagli per Test 2022-01-19 16:14:44 +01:00
NicolaP a0754265ac Correzioni Modifica Inizio/Fine, definizione lista LeadIn, messaggio Cycle-Start 2022-01-17 18:42:29 +01:00
NicolaP 1645a39506 Merge branch 'Correzione_Incidi_(Ovale)' 2022-01-17 16:24:09 +01:00
NicolaP 9e2c2c1b98 Aggiornamento versione 2.4a2 2022-01-17 16:23:21 +01:00
NicolaP 51f15818c2 Merge remote-tracking branch 'origin/DB_WaterJet_Renzo' into Correzione_Incidi_(Ovale) 2022-01-17 16:14:45 +01:00
NicolaP b0081241d8 Merge branch 'Feature/Mach_WaterJet' into Correzione_Incidi_(Ovale) 2022-01-17 16:14:29 +01:00
NicolaP 173230df5a Correzione e modifica impaginazione Lavorazione di Scasso 2022-01-17 15:49:08 +01:00
NicolaP 22afb6edcd Gestione modifica inizio/fine sugli angoli interni 2022-01-17 10:18:57 +01:00
NicolaP 9c8faf25bf Gestione Modifica Inizio/Fine da comando diretto 2022-01-13 18:05:00 +01:00
NicolaP 58775595c7 Gestione minimo accorciamento tagli con cursore 2022-01-12 17:22:45 +01:00
RenzoL 367ac62fc8 Implementato flag FromDBWaterJet per utilizzo Materiali e Qualità WaterJet 2022-01-12 15:43:11 +01:00
NicolaP 9750fdfe75 Selezione da interfaccia delle lavorazioni 2022-01-12 12:27:48 +01:00
NicolaP 39bc4f55ea Merge commit '803a7bdbfc50a45289bb4fddec345318bd22a07d' into Feature/Mach_WaterJet 2022-01-12 10:10:49 +01:00
DarioS 803a7bdbfc OmagCUT :
- piccola correzione su abilitazione Cornici.
2022-01-10 20:27:34 +01:00
NicolaP 1473298705 Merge branch 'Feature/Mach_WaterJet' 2022-01-10 20:17:55 +01:00
NicolaP 4be7087a1b Disabilito tutto quello che riguarda la lama. 2022-01-10 20:17:01 +01:00
NicolaP 7c990987e8 Merge remote-tracking branch 'origin/DB_WaterJet_Renzo' into Feature/Mach_WaterJet 2022-01-10 19:36:56 +01:00
NicolaP 3837895350 Merge remote-tracking branch 'origin/HEAD' into Feature/Mach_WaterJet 2022-01-10 18:49:49 +01:00
NicolaP e5195c5c5c Disabilito info lama se H1 assente 2022-01-10 18:49:09 +01:00
DarioS 17ed0b3807 OmagCUT :
- in Split aggiunta gestione con mouse (drag) di lunghezze di attacchi e uscite di tagli con lama
- corretto problema salvataggio progetto quando non esiste direttorio in cui si dovrebbe trovare la foto.
2022-01-10 18:39:20 +01:00
NicolaP e11722f598 Gestione visualizzazione bottoni in SplitPage 2022-01-10 18:20:28 +01:00
RenzoL 9644529618 Nel Db Waterjet il parametro del Sottomateriale viene selezionato anche quando si clicca una delle TextBox (ulteriore clic per scrivere nella TextBox) 2022-01-10 15:26:04 +01:00
DarioS 0eb6897c08 OmagCUT :
- modifiche per import CSV con angoli di lato e tallone
- salvataggio AGG_DEPTH in lato con taglio inclinato non passante.
2022-01-10 10:18:07 +01:00
DarioS 8462554421 OmagCUT 2.4a1 :
- sistemata acquisizione punto da laser per grezzo (problema impostazione lama).
2022-01-04 08:10:43 +01:00
NicolaP 446df8f37f Merge branch 'Feature/DB_WaterJet' 2021-12-29 13:11:01 +01:00
NicolaP 093f882118 Merge branch 'Feature/DB_WaterJet' 2021-12-29 11:59:53 +01:00
35 changed files with 1262 additions and 311 deletions
+3
View File
@@ -674,6 +674,9 @@ Friend Module CamAuto
End If End If
' Lo sposto dalla lavorazione al pezzo ' Lo sposto dalla lavorazione al pezzo
Dim nId As Integer = EgtGetFirstInGroup(nMchPvId) Dim nId As Integer = EgtGetFirstInGroup(nMchPvId)
If nId = GDB_ID.NULL Then Return False
While nId <> GDB_ID.NULL While nId <> GDB_ID.NULL
EgtRelocateGlob(nId, nPartPvId) EgtRelocateGlob(nId, nPartPvId)
nId = EgtGetFirstInGroup(nMchPvId) nId = EgtGetFirstInGroup(nMchPvId)
+40
View File
@@ -19,6 +19,14 @@ Friend Module CSVFile
Public m_dDimX As Double = 0 Public m_dDimX As Double = 0
Public m_dDimY As Double = 0 Public m_dDimY As Double = 0
Public m_dTh As Double = 0 Public m_dTh As Double = 0
Public m_dAng1 As Double = 0
Public m_dHeel1 As Double = 0
Public m_dAng2 As Double = 0
Public m_dHeel2 As Double = 0
Public m_dAng3 As Double = 0
Public m_dHeel3 As Double = 0
Public m_dAng4 As Double = 0
Public m_dHeel4 As Double = 0
Public m_nOriInd As Integer = 0 Public m_nOriInd As Integer = 0
Public m_nId As Integer = GDB_ID.NULL Public m_nId As Integer = GDB_ID.NULL
End Class End Class
@@ -62,6 +70,14 @@ Friend Module CSVFile
EgtLuaGetGlobNumVar("CSV.DIMX" & sN, OnePart.m_dDimX) EgtLuaGetGlobNumVar("CSV.DIMX" & sN, OnePart.m_dDimX)
EgtLuaGetGlobNumVar("CSV.DIMY" & sN, OnePart.m_dDimY) EgtLuaGetGlobNumVar("CSV.DIMY" & sN, OnePart.m_dDimY)
EgtLuaGetGlobNumVar("CSV.TH" & sN, OnePart.m_dTh) EgtLuaGetGlobNumVar("CSV.TH" & sN, OnePart.m_dTh)
EgtLuaGetGlobNumVar("CSV.A1_" & sN, OnePart.m_dAng1)
EgtLuaGetGlobNumVar("CSV.H1_" & sN, OnePart.m_dHeel1)
EgtLuaGetGlobNumVar("CSV.A2_" & sN, OnePart.m_dAng2)
EgtLuaGetGlobNumVar("CSV.H2_" & sN, OnePart.m_dHeel2)
EgtLuaGetGlobNumVar("CSV.A3_" & sN, OnePart.m_dAng3)
EgtLuaGetGlobNumVar("CSV.H3_" & sN, OnePart.m_dHeel3)
EgtLuaGetGlobNumVar("CSV.A4_" & sN, OnePart.m_dAng4)
EgtLuaGetGlobNumVar("CSV.H4_" & sN, OnePart.m_dHeel4)
OnePart.m_nOriInd = i OnePart.m_nOriInd = i
' inserisco in lista ' inserisco in lista
CsvPartList.Add(OnePart) CsvPartList.Add(OnePart)
@@ -147,6 +163,22 @@ Friend Module CSVFile
StringToDouble(sItems(1), OnePart.m_dDimY) StringToDouble(sItems(1), OnePart.m_dDimY)
ElseIf sItems(0) = "Th" Then ElseIf sItems(0) = "Th" Then
StringToDouble(sItems(1), OnePart.m_dTh) StringToDouble(sItems(1), OnePart.m_dTh)
ElseIf sItems(0) = "A1" Then
StringToDouble(sItems(1), OnePart.m_dAng1)
ElseIf sItems(0) = "H1" Then
StringToDouble(sItems(1), OnePart.m_dHeel1)
ElseIf sItems(0) = "A2" Then
StringToDouble(sItems(1), OnePart.m_dAng2)
ElseIf sItems(0) = "H2" Then
StringToDouble(sItems(1), OnePart.m_dHeel2)
ElseIf sItems(0) = "A3" Then
StringToDouble(sItems(1), OnePart.m_dAng3)
ElseIf sItems(0) = "H3" Then
StringToDouble(sItems(1), OnePart.m_dHeel3)
ElseIf sItems(0) = "A4" Then
StringToDouble(sItems(1), OnePart.m_dAng4)
ElseIf sItems(0) = "H4" Then
StringToDouble(sItems(1), OnePart.m_dHeel4)
ElseIf sItems(0) = "OIn" Then ElseIf sItems(0) = "OIn" Then
StringToInt(sItems(1), OnePart.m_nOriInd) StringToInt(sItems(1), OnePart.m_nOriInd)
End If End If
@@ -188,6 +220,14 @@ Friend Module CSVFile
Writer.WriteLine("DX=" & DoubleToString(CurrPart.m_dDimX, 4)) Writer.WriteLine("DX=" & DoubleToString(CurrPart.m_dDimX, 4))
Writer.WriteLine("DY=" & DoubleToString(CurrPart.m_dDimY, 4)) Writer.WriteLine("DY=" & DoubleToString(CurrPart.m_dDimY, 4))
Writer.WriteLine("Th=" & DoubleToString(CurrPart.m_dTh, 4)) Writer.WriteLine("Th=" & DoubleToString(CurrPart.m_dTh, 4))
Writer.WriteLine("A1=" & DoubleToString(CurrPart.m_dAng1, 4))
Writer.WriteLine("H1=" & DoubleToString(CurrPart.m_dHeel1, 4))
Writer.WriteLine("A2=" & DoubleToString(CurrPart.m_dAng2, 4))
Writer.WriteLine("H2=" & DoubleToString(CurrPart.m_dHeel2, 4))
Writer.WriteLine("A3=" & DoubleToString(CurrPart.m_dAng3, 4))
Writer.WriteLine("H3=" & DoubleToString(CurrPart.m_dHeel3, 4))
Writer.WriteLine("A4=" & DoubleToString(CurrPart.m_dAng4, 4))
Writer.WriteLine("H4=" & DoubleToString(CurrPart.m_dHeel4, 4))
Writer.WriteLine("OIn=" & CurrPart.m_nOriInd.ToString()) Writer.WriteLine("OIn=" & CurrPart.m_nOriInd.ToString())
Next Next
' Terminatore ' Terminatore
+30 -1
View File
@@ -424,10 +424,14 @@ Public Class CSVPage
' Definizione variabili ' Definizione variabili
Dim dDimX = CurrPart.m_dDimX Dim dDimX = CurrPart.m_dDimX
Dim dDimY = CurrPart.m_dDimY Dim dDimY = CurrPart.m_dDimY
Dim dAng = New Double() {CurrPart.m_dAng1,CurrPart.m_dAng2,CurrPart.m_dAng3,CurrPart.m_dAng4}
Dim dHeel = New Double() {CurrPart.m_dHeel1,CurrPart.m_dHeel2,CurrPart.m_dHeel3,CurrPart.m_dHeel4}
If bMaxDimOnX And dDimY > dDimX Then If bMaxDimOnX And dDimY > dDimX Then
Dim dTemp As Double = dDimX Dim dTemp As Double = dDimX
dDimX = dDimY dDimX = dDimY
dDimY = dTemp dDimY = dTemp
dAng = New Double() {CurrPart.m_dAng2,CurrPart.m_dAng3,CurrPart.m_dAng4,CurrPart.m_dAng1}
dHeel = New Double() {CurrPart.m_dHeel2,CurrPart.m_dHeel3,CurrPart.m_dHeel4,CurrPart.m_dHeel1}
End If End If
EgtLuaSetGlobNumVar("CMP.V1", dDimX) EgtLuaSetGlobNumVar("CMP.V1", dDimX)
EgtLuaSetGlobNumVar("CMP.V2", dDimY) EgtLuaSetGlobNumVar("CMP.V2", dDimY)
@@ -439,7 +443,7 @@ Public Class CSVPage
If nId = GDB_ID.NULL Then Continue For If nId = GDB_ID.NULL Then Continue For
CurrPart.m_nId = nId CurrPart.m_nId = nId
' Muovo la regione in Z per evitare problemi in visualizzazione ' Muovo la regione in Z per evitare problemi in visualizzazione
Dim nRegId = EgtGetFirstNameInGroup(nId, NAME_REGION) Dim nRegId As Integer = EgtGetFirstNameInGroup(nId, NAME_REGION)
EgtMove(nRegId, New Vector3d(0, 0, DELTAZ_REG), GDB_RT.GLOB) EgtMove(nRegId, New Vector3d(0, 0, DELTAZ_REG), GDB_RT.GLOB)
' Eventuale testo per indicare il sopra ' Eventuale testo per indicare il sopra
If Not bMaxDimOnX Then If Not bMaxDimOnX Then
@@ -447,6 +451,31 @@ Public Class CSVPage
Dim nText As Integer = EgtCreateTextAdv(nRegId, New Point3d(dDimX / 2, dDimY - 0.6 * dH, 0), 0, "*TOP*", "", 500, False, dH, 1, 0, INS_POS.MC) Dim nText As Integer = EgtCreateTextAdv(nRegId, New Point3d(dDimX / 2, dDimY - 0.6 * dH, 0), 0, "*TOP*", "", 500, False, dH, 1, 0, INS_POS.MC)
EgtSetColor(nText, New Color3d( 0, 0, 0)) EgtSetColor(nText, New Color3d( 0, 0, 0))
End If End If
' Inserisco eventuali angoli di fianco
Dim bSideAngs As Boolean = False
Dim nOutLoopId As Integer = EgtGetFirstNameInGroup( nId, NAME_OUTLOOP)
For nSide As Integer = 1 To 4
Dim dSideAng As Double = dAng( nSide - 1)
Dim dSideHeel As Double = dHeel( nSide - 1)
If Math.Abs( dSideAng) > EPS_ANG_SMALL Then
Dim nEntId As Integer = EgtGetFirstNameInGroup( nOutLoopId, "A" & nSide.ToString())
If nEntId <> GDB_ID.NULL Then
bSideAngs = True
' Assegno valori
EgtSetInfo(nEntId, INFO_SIDE_ANGLE, dSideAng)
EgtSetInfo(nEntId, INFO_ORIG_SIDE_ANGLE, dSideAng)
EgtSetInfo(nEntId, INFO_HEEL, dSideHeel)
End If
End If
Next
' Creo layer per testi nesting
If bSideAngs Then
Dim TextLayId As Integer = EgtCreateGroup(nId)
EgtSetName(TextLayId, SIDE_ANGLE_LAYER)
EgtSetColor(TextLayId, New Color3d(0, 0, 128))
' Opero su geometria esterna pezzo
SideAngle.WriteSideAngleOnLoop(nOutLoopId, TextLayId)
End If
' Aggiusto per lavorazioni ' Aggiusto per lavorazioni
EgtAdjustFlatPart(nId) EgtAdjustFlatPart(nId)
' Se Csv completo, aggiungo info su CSV di origine ' Se Csv completo, aggiungo info su CSV di origine
+9 -4
View File
@@ -107,6 +107,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_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
' Se macchina fotografica collegata, faccio una foto ' Se macchina fotografica collegata, faccio una foto
@@ -140,6 +141,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_CurrProjPage.CurrProjGrid.Visibility = Windows.Visibility.Hidden m_CurrProjPage.CurrProjGrid.Visibility = Windows.Visibility.Hidden
m_CurrProjPage.CurrentProjectPageGrid.Children.Remove(Me) m_CurrProjPage.CurrentProjectPageGrid.Children.Remove(Me)
m_CurrProjPage.CurrentProjectPageGrid.Children.Add(m_MainWindow.m_RawPartPage) m_CurrProjPage.CurrentProjectPageGrid.Children.Add(m_MainWindow.m_RawPartPage)
@@ -165,6 +167,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.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC) m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_DrawPageUC) m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_DrawPageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.Draw m_MainWindow.m_ActivePage = MainWindow.Pages.Draw
@@ -172,6 +175,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.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC) m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_ImportPageUC) m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_ImportPageUC)
m_MainWindow.m_ActivePage = MainWindow.Pages.Import m_MainWindow.m_ActivePage = MainWindow.Pages.Import
@@ -193,10 +197,11 @@ 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_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False
EgtDeselectObj(m_NestPage.m_CurrSelectedCurv) EgtDeselectObj(m_NestPage.m_CurrSelectedCurv)
m_ProjectMgr.TestBtn.IsChecked = False m_ProjectMgr.TestBtn.IsChecked = False
m_CurrProjPage.m_bSelectCurv = False m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
Select Case m_CadCutMode Select Case m_CadCutMode
Case CadCutModes.Nest, CadCutModes.FastGrid Case CadCutModes.Nest, CadCutModes.FastGrid
' Passo alla pagina Split ' Passo alla pagina Split
@@ -206,9 +211,9 @@ Public Class CadCutPageUC
SplitImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/Nest.png", UriKind.Relative)) SplitImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/Nest.png", UriKind.Relative))
End If End If
If m_CadCutMode = CadCutModes.Nest Then If m_CadCutMode = CadCutModes.Nest Then
CadCutPageGrid.Children.Remove(m_NestPage) CadCutPageGrid.Children.Remove(m_NestPage)
Else Else
CadCutPageGrid.Children.Remove(m_FastGridSlabManager) CadCutPageGrid.Children.Remove(m_FastGridSlabManager)
End If End If
CadCutPageGrid.Children.Add(m_SplitPage) CadCutPageGrid.Children.Add(m_SplitPage)
m_CadCutMode = CadCutModes.Split m_CadCutMode = CadCutModes.Split
+8 -3
View File
@@ -109,9 +109,14 @@
</Button> </Button>
</UniformGrid> </UniformGrid>
<Button Name="RemovePartBtn" Grid.ColumnSpan="3" Grid.Row="6" Style="{DynamicResource OmagCut_YellowIconButton}"> <UniformGrid Name ="UG1" Grid.Column="0" Grid.Row="6" Grid.ColumnSpan="3" Columns="2" >
<Image Source="{DynamicResource Elimina-pezzoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/> <Button Name="RemovePartBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
</Button> <Image Source="{DynamicResource Elimina-pezzoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</Button>
<ToggleButton Name="DragRettanleBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource Drag_RettangleImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
</ToggleButton>
</UniformGrid>
<UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" > <UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" >
<Button Name="SelectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}"> <Button Name="SelectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
+392 -27
View File
@@ -12,10 +12,27 @@ Public Class NestPageUC
Friend m_bRegister As Boolean = False Friend m_bRegister As Boolean = False
' Flag per pezzi selezionati in tavola o fuori ' Flag per pezzi selezionati in tavola o fuori
Private m_nPartPos As Integer = PART_POS.NONE_TABLE Private m_nPartPos As Integer = PART_POS.NONE_TABLE
' Flag per impostata per selezionare di una curva
Friend m_bSelectCurv As Boolean = False
' dati per DragRettangoli (estensio/accorciamento dei rettangoli trascinando un lato)
Private m_bIsVisibleDragRettangle As Boolean = False
Friend m_bIsCheckedDragRettangle As Boolean = False
' Id della curva e del taglio selezionati per eseguire il test
Friend m_CurrSelectedCurv As Integer = GDB_ID.NULL Friend m_CurrSelectedCurv As Integer = GDB_ID.NULL
Friend m_CurrSelectedSawCurv As Integer = GDB_ID.NULL Friend m_CurrSelectedSawCurv As Integer = GDB_ID.NULL
' Id del rettangolo, del traglio e della curva da modificare tramite Drag
Private m_nIdSelectedOutLoopRettangle As Integer = GDB_ID.NULL
Private m_nIdSelectedRegionRettangle As Integer = GDB_ID.NULL
Private m_nIdSelectedSawRettangle As Integer = GDB_ID.NULL
Private m_nIdSelectedCurvRettangle As Integer = GDB_ID.NULL
Private m_nIdSelectedTextRettangle As Integer = GDB_ID.NULL
Private m_nIdSelectedTextTopRettangle As Integer = GDB_ID.NULL
Private m_nIdSelectedFlatSurfRettangle As Integer = GDB_ID.NULL
Private m_SideListRettangle(4) As Integer
Private m_sTextContent As String = String.Empty
Enum PART_POS As Integer Enum PART_POS As Integer
IN_TABLE = -1 IN_TABLE = -1
NONE_TABLE = 0 NONE_TABLE = 0
@@ -61,6 +78,14 @@ Public Class NestPageUC
RemovePartBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 3) 'Remove part - Elimina pezzo RemovePartBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 3) 'Remove part - Elimina pezzo
SelectAllBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 4) 'Select All - Seleziona Tutto SelectAllBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 4) 'Select All - Seleziona Tutto
DeselectAllBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 5) 'Deselect All - Deseleziona Tutto DeselectAllBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 5) 'Deselect All - Deseleziona Tutto
' gestisco la visualizzazione del comando PAN (per il drag dei rettangoli)
m_bIsVisibleDragRettangle = (GetPrivateProfileInt(S_NEST, K_DRAG_RETTANGLE, 0, m_MainWindow.GetIniFile()) <> 0)
If Not m_bIsVisibleDragRettangle Then
UG1.Columns = 1
DragRettanleBtn.Visibility = Visibility.Collapsed
End If
End Sub End Sub
Private Sub NestPage_Loaded(sender As Object, e As RoutedEventArgs) Private Sub NestPage_Loaded(sender As Object, e As RoutedEventArgs)
@@ -108,6 +133,7 @@ Public Class NestPageUC
m_dRegStep = GetPrivateProfileDouble(S_REG, K_REGSTEP, 10, m_MainWindow.GetIniFile()) m_dRegStep = GetPrivateProfileDouble(S_REG, K_REGSTEP, 10, m_MainWindow.GetIniFile())
m_dRegAngStep = GetPrivateProfileDouble(S_REG, K_REGANGSTEP, 1, m_MainWindow.GetIniFile()) m_dRegAngStep = GetPrivateProfileDouble(S_REG, K_REGANGSTEP, 1, m_MainWindow.GetIniFile())
m_dMaxRegAng = GetPrivateProfileDouble(S_MACH_REG, K_MACH_MAX_ROT_ANG, 10, m_MainWindow.GetMachIniFile()) m_dMaxRegAng = GetPrivateProfileDouble(S_MACH_REG, K_MACH_MAX_ROT_ANG, 10, m_MainWindow.GetMachIniFile())
' Garantisco visibilità pezzi parcheggiati ' Garantisco visibilità pezzi parcheggiati
ShowParkedParts() ShowParkedParts()
' Garantisco visibilità eventuale contorno da foto ' Garantisco visibilità eventuale contorno da foto
@@ -124,14 +150,17 @@ Public Class NestPageUC
End If End If
End Sub End Sub
Private Sub OnMyMouseDownSceneSelCurv(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownSceneSelCurv ' funzione utilizzata per la selezione dei tagli quando il comando TEST è attivo
Private Sub OnMyMouseDownSceneSelCurv(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
If e.Button <> Windows.Forms.MouseButtons.Left Or If e.Button <> Windows.Forms.MouseButtons.Left Or
Not m_CurrProjPage.m_bSelectCurv Then Not m_bSelectCurv Then
Return Return
End If End If
' Se esiste un elemento selezionato
EgtResetMark(m_CurrSelectedSawCurv)
' provo a riconoscere il valore medio del segmento ' provo a riconoscere il valore medio del segmento
' Verifico se selezionato indicativo di pezzo ' Verifico se selezionato indicativo di pezzo
EgtSetObjFilterForSelWin(False, True, False, False, False) EgtSetObjFilterForSelWin(False, True, False, False, False)
@@ -152,7 +181,6 @@ Public Class NestPageUC
Dim ptE As Point3d Dim ptE As Point3d
EgtEndPoint(nIdMy, ptE) EgtEndPoint(nIdMy, ptE)
If m_CurrSelectedCurv <> GDB_ID.NULL Or m_CurrSelectedCurv = nIdMy Then If m_CurrSelectedCurv <> GDB_ID.NULL Or m_CurrSelectedCurv = nIdMy Then
EgtDeselectObj(m_CurrSelectedSawCurv)
EgtDeselectObj(m_CurrSelectedCurv) EgtDeselectObj(m_CurrSelectedCurv)
End If End If
' recupero il gruppo della lavorazione associata ' recupero il gruppo della lavorazione associata
@@ -160,10 +188,9 @@ Public Class NestPageUC
Dim nIdPV As Integer = EgtGetFirstNameInGroup(nIdParentPart, "PV") Dim nIdPV As Integer = EgtGetFirstNameInGroup(nIdParentPart, "PV")
Dim nIdSaw As Integer = EgtGetFirstNameInGroup(nIdPV, "Saw" & nIdMy.ToString) Dim nIdSaw As Integer = EgtGetFirstNameInGroup(nIdPV, "Saw" & nIdMy.ToString)
If Not EgtGetGroupObjs(nIdSaw) Then If Not EgtGetGroupObjs(nIdSaw) Then
EgtSelectObj(nIdSaw)
m_CurrSelectedSawCurv = nIdSaw m_CurrSelectedSawCurv = nIdSaw
m_CurrSelectedCurv = nIdMy m_CurrSelectedCurv = nIdMy
EgtSelectObj(nIdSaw) EgtSetMark(nIdSaw)
EgtSelectObj(nIdMy) EgtSelectObj(nIdMy)
EgtDraw() EgtDraw()
Exit While Exit While
@@ -176,6 +203,293 @@ Public Class NestPageUC
Return Return
End Sub End Sub
#Region "DRAG RETTANGLE"
' 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)
' Verifico di essere il gestore attivo e non in modalità registrazione
If Not m_bActive Or m_bRegister Then Return
' Si può selezionare solo con il tasto sinistro e se il bottone TEST Attivo
If e.Button <> Windows.Forms.MouseButtons.Left then
Return
End If
' Verifico se selezionato indicativo di pezzo
EgtSetObjFilterForSelWin(False, True, False, False, False)
Dim nSelMy As Integer
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSelMy)
Dim nIdMy As Integer = EgtGetFirstObjInSelWin()
While nIdMy <> GDB_ID.NULL
Dim sLayer As String = String.Empty
' layer di origine
Dim nIdParent As Integer = EgtGetParent(nIdMy)
' recupero il nome del Layer
EgtGetName(nIdParent, sLayer)
' solo se il nome del layer è quello associato ad un lato esterno allora procedo con l'evidenziazione
If sLayer = NAME_OUTLOOP Then
If EgtGetType(nIdMy) = GDB_TY.CRV_LINE Then
' -------------------------------- INIZIO VERIFICHE --------------------------------
m_nIdSelectedOutLoopRettangle = nIdParent
If Not IsRettangle(m_SideListRettangle) Then
m_CurrProjPage.ClearMessage()
m_CurrProjPage.SetWarningMessage("Non è un rettangolo (0)")
Return
End If
' recupero il gruppo della lavorazione associata
Dim nIdParentPart As Integer = EgtGetParent(nIdParent)
Dim nIdPV As Integer = EgtGetFirstNameInGroup(nIdParentPart, "PV")
' se non esiste un gruppo di lavorazione associato allora esco
If nIdPV = GDB_ID.NULL Then
m_CurrProjPage.ClearMessage()
m_CurrProjPage.SetWarningMessage("Pezzo in parcheggio (1)")
Return
End If
' se esiste ma è vuoto (pezzo scaricato da tavola)
If EgtGetFirstInGroup(nIdPV) = GDB_ID.NULL Then
m_CurrProjPage.ClearMessage()
m_CurrProjPage.SetWarningMessage("Pezzo in parcheggio (2)")
Return
End If
' Devo verificare che sia una lavorazione solo di lama?
Dim nIdSaw As Integer = EgtGetFirstNameInGroup(nIdPV, "Saw" & nIdMy.ToString)
' -------------------------------- FINE VERIFICHE --------------------------------
If Not EgtGetGroupObjs(nIdSaw) Then
m_nIdSelectedSawRettangle = nIdSaw
m_nIdSelectedCurvRettangle = nIdMy
m_nIdSelectedRegionRettangle = EgtGetFirstNameInGroup(nIdParentPart, NAME_REGION)
' recupero i testi cintenuti nel layer Region
If m_nIdSelectedRegionRettangle <> GDB_ID.NULL Then
Dim nCurrId As Integer = EgtGetFirstInGroup(m_nIdSelectedRegionRettangle)
While nCurrId <> GDB_ID.NULL
If EgtGetType(nCurrId) = GDB_TY.EXT_TEXT Then
Dim sVal As String = String.Empty
EgtTextGetContent(nCurrId, sVal)
If sVal = "*TOP*" Then
m_nIdSelectedTextTopRettangle = nCurrId
Else
m_nIdSelectedTextRettangle = nCurrId
m_sTextContent = GetMyRettangleText(sVal)
End If
ElseIf EgtGetType(nCurrId) = GDB_TY.SRF_FRGN Then
m_nIdSelectedFlatSurfRettangle = nCurrId
End If
nCurrId = EgtGetNext(nCurrId)
End While
End If
' seleziono ed evidenzio il lato selezionato
EgtSelectObj(nIdSaw)
EgtSetMark(nIdSaw)
EgtSelectObj(nIdMy)
EgtDraw()
Exit While
End If
End If
' se le'elemto corrente non è una linea
End If
' se le'elemto corrente non appartiene al layer OutLoop passo al prossimo elemento dell'elenco
nIdMy = EgtGetNextObjInSelWin()
End While
End Sub
' restituisce il valore del Text ripulito dalle dimensioni
Private Function GetMyRettangleText(sTextPz As String) As String
' da DrawPageUC.xaml.vb/MultipleInsert
Dim sText As String = String.Empty
If sTextPz.Contains("<br/>") Then
Dim nLastIndex As Integer = sTextPz.LastIndexOf(">")
sText = sTextPz.Remove(nLastIndex + 1)
Return sText
End If
If sTextPz.Contains(" ") Then
Dim sInfo() As String = sTextPz.Split(" ")
If sInfo.Count > 3 Then
Return sText = sInfo(0) & " " & sInfo(1) & " "
End If
End If
Return sText
End Function
' verifico che la figura selezionata sia realmente un rettangolo
Private Function IsRettangle(ByRef IdSideList() As Integer) As Boolean
' creo una lista con i lati del rettangolo
Dim nCounter As Integer = 0
' recupero i lati dal leyer "OutLoop"
Dim IdSideRettangle As Integer = EgtGetFirstInGroup(m_nIdSelectedOutLoopRettangle)
While IdSideRettangle <> GDB_ID.NULL And nCounter < 4
Dim sVal As String = String.Empty
Dim dPrevAng As Double = 0
EgtGetInfo(IdSideRettangle, "PrevAng", sVal)
StringToDouble(sVal, dPrevAng)
Dim dNextAng As Double = 0
EgtGetInfo(IdSideRettangle, "NextAng", sVal)
StringToDouble(sVal, dNextAng)
' 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
Exit While
End If
IdSideList(nCounter) = IdSideRettangle
nCounter += 1
IdSideRettangle = EgtGetNext(IdSideRettangle)
End While
' verifico che siano solo quattro lati
If IdSideRettangle = GDB_ID.NULL And nCounter = 4 Then
' solo se la figura ha 4 lati ortogonali
Return True
End If
m_nIdSelectedOutLoopRettangle = GDB_ID.NULL
' la figura presenta più/meno di 4 lati
Return False
End Function
' 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
' determino la direzione del lato selezionato
Dim vtDirSelectedCurv As New Vector3d
EgtStartVector(m_nIdSelectedCurvRettangle, GDB_ID.ROOT, vtDirSelectedCurv)
' recupero il lato successivo a quello selezionato
Dim Index As Integer = 0
Dim Len As Double = 0
For Ind As Integer = 0 To 3
If m_SideListRettangle(Ind) = m_nIdSelectedCurvRettangle Then
' verifico se esiste un lato Precedente altrimenti recupero l'ultimo della lista
If Ind = 0 Then
Index = 3
Else
Index = Ind - 1
End If
End If
Next
' recupero la dimensione del lato
EgtCurveLength(m_SideListRettangle(Index), MaxLen)
EgtCurveLength(m_nIdSelectedCurvRettangle, MinLen)
' verifico che il lato selezionato sia il maggiore
If MinLen > MaxLen Then Return Nothing
' determimo il versore dal lato appena calcolato
Dim vtDir As New Vector3d
EgtStartVector(m_SideListRettangle(Index), GDB_ID.ROOT, vtDir)
vtDir.Normalize()
Dim dProjectionBaseX As Double = vtDir * Vector3d.X_AX
Dim ptFixed As New Point3d
EgtStartPoint(m_SideListRettangle(Index), GDB_ID.ROOT, ptFixed)
Dim vtPerp As New Vector3d(vtDir.x, vtDir.y, vtDir.z)
vtPerp.Rotate(Vector3d.Z_AX, 90)
' determino il Frame corrente
frFixed = New Frame3d(ptFixed, vtDir, vtPerp, Vector3d.Z_AX)
Return vtDir
End Function
' 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)
' Verifico di essere il gestore attivo
If Not m_bActive Then Return
' Se drag non abilitato o già in esecuzione, esco
If Not m_bDrag Or m_bDragging Then Return
' Se primo movimento di drag, verifico di aver superato la soglia di movimento in pixel
If m_bDragToStart Then
If Math.Abs(e.Location.X - m_locPrev.X) < m_nRestRadius And
Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
Return
End If
m_bDragToStart = False
End If
' riferiemento che deve rimanere fisso del rettangolo
Dim frFixed As Frame3d = Nothing
' lunghezza del lato da modificare
Dim MaxLen As Double = 0
Dim MinLen As Double = 0
' recupero info sul rettangolo selezionato
Dim vtDir As Vector3d = GetRettangleInfoScale(frFixed, MaxLen, MinLen)
If vtDir.Equals(Vector3d.NULL) Then
Return
End If
' Inizio esecuzione di drag
m_bDragging = True
' Ricavo il punto corrente in coordinate mondo
Dim ptCurr As Point3d
EgtUnProjectPoint(e.Location, ptCurr)
' Ricavo il vettore di movimento
Dim vtMove As Vector3d = ptCurr - m_ptPrev
' ricavo il valore efficace di allungamento (la proiezione)
Dim dProjection As Double = vtMove * vtDir
vtMove = vtDir * dProjection
' recupero il valore di scalatura
Dim dScalefactor = dProjection / MaxLen + 1
' Modifico dimensione figura
If Math.Abs(dScalefactor) > EPS_SMALL * EPS_SMALL Then
EgtScale(m_nIdSelectedOutLoopRettangle, frFixed, dScalefactor, 1, 1, GDB_ID.ROOT)
EgtScale(m_nIdSelectedFlatSurfRettangle, frFixed, dScalefactor, 1, 1, GDB_ID.ROOT)
Dim ptCen As Point3d
EgtCenterPoint(m_nIdSelectedTextRettangle, ptCen)
EgtModifyText(m_nIdSelectedTextRettangle, m_sTextContent & LenToString(MaxLen + dProjection, 2) & " x " & LenToString(MinLen, 2))
EgtMove(m_nIdSelectedTextRettangle, vtMove * 0.5)
If m_nIdSelectedTextTopRettangle <> GDB_ID.NULL Then
EgtMove(m_nIdSelectedTextTopRettangle, vtMove * 0.5)
End If
End If
Dim nWarn As Integer = 0
ResetAllMachinings(nWarn)
EnableReferenceRegion(False)
' se la modifica genera un errore allora ripristino la figura prima della defomrazione
If Not EgtVerifyPart(EgtGetParent(m_nIdSelectedOutLoopRettangle), True) Then
EgtScale(m_nIdSelectedOutLoopRettangle, frFixed, 1 / dScalefactor, 1, 1, GDB_ID.ROOT)
EgtScale(m_nIdSelectedFlatSurfRettangle, frFixed, 1 / dScalefactor, 1, 1, GDB_ID.ROOT)
Dim ptCen As Point3d
EgtCenterPoint(m_nIdSelectedTextRettangle, ptCen)
EgtModifyText(m_nIdSelectedTextRettangle, m_sTextContent & LenToString(MaxLen, 2) & " x " & LenToString(MinLen, 2))
EgtMove(m_nIdSelectedTextRettangle, -vtMove * 0.5)
If m_nIdSelectedTextTopRettangle <> GDB_ID.NULL Then
EgtMove(m_nIdSelectedTextTopRettangle, -vtMove * 0.5)
End If
End If
EgtDraw()
' Aggiorno il punto precedente
m_ptPrev = ptCurr
' Terminata esecuzione di drag
m_bDragging = False
End Sub
' funzione chiamata da OnMyMouseUp: gestisce il reset di tutti gli indici in uso
Public Sub ResetDragRettangleParam()
' deseleziono l'elemento corrente
EgtDeselectObj(m_nIdSelectedSawRettangle)
EgtDeselectObj(m_nIdSelectedCurvRettangle)
EgtResetMark(m_nIdSelectedSawRettangle)
' resetto gli indici
m_nIdSelectedOutLoopRettangle = GDB_ID.NULL
m_nIdSelectedRegionRettangle = GDB_ID.NULL
m_nIdSelectedSawRettangle = GDB_ID.NULL
m_nIdSelectedCurvRettangle = GDB_ID.NULL
m_nIdSelectedTextRettangle = GDB_ID.NULL
m_nIdSelectedTextTopRettangle = GDB_ID.NULL
m_nIdSelectedFlatSurfRettangle = GDB_ID.NULL
m_SideListRettangle = {GDB_ID.NULL, GDB_ID.NULL, GDB_ID.NULL, GDB_ID.NULL}
m_sTextContent = String.Empty
' disattivo il drag
m_bDrag = False
' aggiorno le lavorazioni
Dim nWarn As Integer = 0
ResetAllMachinings(nWarn)
EgtDraw()
End Sub
#End Region ' Drag Rettangolo
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
' 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
@@ -184,6 +498,25 @@ Public Class NestPageUC
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
Return Return
End If End If
' se in modalità slezione tagli
If m_bSelectCurv Then
OnMyMouseDownSceneSelCurv(sender, e)
Return
End If
' se in modalità DragRettangle (deformazione delle componenti rettangolari)
If m_bIsCheckedDragRettangle Then
OnMyMouseDownSceneSelSideRettangle(sender, e)
' Dati per drag (abilito il Drag)
m_locPrev = e.Location
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev) And m_nIdSelectedCurvRettangle <> GDB_ID.NULL
m_bDragToStart = m_bDrag
m_bVerify = m_bDrag AndAlso (Keyboard.Modifiers And ModifierKeys.Shift) > 0
m_vtTotMove = Vector3d.NULL()
Return
End If
' Per default no drag ' Per default no drag
m_bDrag = False m_bDrag = False
' Verifico se selezionato indicativo di pezzo ' Verifico se selezionato indicativo di pezzo
@@ -218,15 +551,15 @@ Public Class NestPageUC
' se non è stata eseguita nessuna scelta esco dal ciclo ' se non è stata eseguita nessuna scelta esco dal ciclo
If nRes = 0 Then Exit While If nRes = 0 Then Exit While
' imposto l'altra tavola ' imposto l'altra tavola
Dim sOtherTab = If( sNamePartId = MAIN_TAB, SECOND_TAB, MAIN_TAB) Dim sOtherTab = If(sNamePartId = MAIN_TAB, SECOND_TAB, MAIN_TAB)
EgtChangeTable( sOtherTab, True) EgtChangeTable(sOtherTab, True)
m_CurrProjPage.AdjustAdditionalTable( True) m_CurrProjPage.AdjustAdditionalTable(True)
EgtSetMachineLook(MCH_LOOK.TAB) EgtSetMachineLook(MCH_LOOK.TAB)
' aggiorno le lavorazioni ' aggiorno le lavorazioni
UpdateAllMachiningsToolpaths() UpdateAllMachiningsToolpaths()
' aggiorno i movimenti pezzi tra disposizioni ' aggiorno i movimenti pezzi tra disposizioni
For nI As Integer = 1 To EgtGetPhaseCount() For nI As Integer = 1 To EgtGetPhaseCount()
EgtSetCurrPhase( nI) EgtSetCurrPhase(nI)
Dim nDispId As Integer = EgtGetPhaseDisposition(nI) Dim nDispId As Integer = EgtGetPhaseDisposition(nI)
SpecialApplyDisposition(nDispId, True) SpecialApplyDisposition(nDispId, True)
Next Next
@@ -239,31 +572,31 @@ Public Class NestPageUC
Dim nPPId As Integer = EgtGetFirstPart() Dim nPPId As Integer = EgtGetFirstPart()
While nPPId <> GDB_ID.NULL While nPPId <> GDB_ID.NULL
PackPartInStore(nPPId) PackPartInStore(nPPId)
nPPId = EgtGetNextPart( nPPId) nPPId = EgtGetNextPart(nPPId)
End While End While
' se prevista rotazione ' se prevista rotazione
If GetPrivateProfileInt(S_TABLE, K_CHANGETABWD, 0, m_MainWindow.GetMachIniFile()) = 2 Then If GetPrivateProfileInt(S_TABLE, K_CHANGETABWD, 0, m_MainWindow.GetMachIniFile()) = 2 Then
' Dati tavola ' Dati tavola
Dim b3Tab As New BBox3d Dim b3Tab As New BBox3d
EgtGetTableArea( 1, b3Tab) EgtGetTableArea(1, b3Tab)
' Box lastra ' Box lastra
Dim b3OrigRaw As New BBox3d Dim b3OrigRaw As New BBox3d
GetRawBox( b3OrigRaw) GetRawBox(b3OrigRaw)
' Allargo i limiti della tavola in tutte le fasi ' Allargo i limiti della tavola in tutte le fasi
Const TAB_OFFS As Double = 3000 Const TAB_OFFS As Double = 3000
For nI As Integer = 1 To EgtGetPhaseCount() For nI As Integer = 1 To EgtGetPhaseCount()
EgtSetCurrPhase(nI) EgtSetCurrPhase(nI)
EgtSetTableAreaOffset( TAB_OFFS, TAB_OFFS, TAB_OFFS, TAB_OFFS) EgtSetTableAreaOffset(TAB_OFFS, TAB_OFFS, TAB_OFFS, TAB_OFFS)
Next Next
EgtSetCurrPhase(1) EgtSetCurrPhase(1)
' Rotazione ' Rotazione
Dim dAngRot As Double = If(sOtherTab = SECOND_TAB, 180, -180) Dim dAngRot As Double = If(sOtherTab = SECOND_TAB, 180, -180)
if Not RotateAllRawParts(dAngRot, False) Then If Not RotateAllRawParts(dAngRot, False) Then
m_CurrProjPage.SetWarningMessage(EgtMsg(90339)) 'Rotazione impossibile m_CurrProjPage.SetWarningMessage(EgtMsg(90339)) 'Rotazione impossibile
End If End If
' Traslazione per riportare la lastra nella stessa posizione rispetto all'angolo BL che diveta TR e viceversa ' Traslazione per riportare la lastra nella stessa posizione rispetto all'angolo BL che diveta TR e viceversa
Dim b3Raw As New BBox3d Dim b3Raw As New BBox3d
GetRawBox( b3Raw) GetRawBox(b3Raw)
Dim vtMove As Vector3d Dim vtMove As Vector3d
If sOtherTab = SECOND_TAB Then If sOtherTab = SECOND_TAB Then
Dim vtDiffIni As Vector3d = b3OrigRaw.Min() - b3Tab.Min() Dim vtDiffIni As Vector3d = b3OrigRaw.Min() - b3Tab.Min()
@@ -272,14 +605,14 @@ Public Class NestPageUC
Else Else
Dim vtDiffIni As Vector3d = b3Tab.Max() - b3OrigRaw.Max() Dim vtDiffIni As Vector3d = b3Tab.Max() - b3OrigRaw.Max()
Dim vtDiffFin As Vector3d = b3Raw.Min() - b3Tab.Min() Dim vtDiffFin As Vector3d = b3Raw.Min() - b3Tab.Min()
vtMove = -( vtDiffFin - vtDiffIni) vtMove = -(vtDiffFin - vtDiffIni)
End If End If
vtMove.z = 0 vtMove.z = 0
MoveAllRawParts(vtMove) MoveAllRawParts(vtMove)
' Ripristino i limiti della tavola in tutte le fasi ' Ripristino i limiti della tavola in tutte le fasi
For nI As Integer = 1 To EgtGetPhaseCount() For nI As Integer = 1 To EgtGetPhaseCount()
EgtSetCurrPhase(nI) EgtSetCurrPhase(nI)
EgtSetTableAreaOffset( 0, 0, 0, 0) EgtSetTableAreaOffset(0, 0, 0, 0)
Next Next
EgtSetCurrPhase(1) EgtSetCurrPhase(1)
HideAllMachinings() HideAllMachinings()
@@ -312,6 +645,13 @@ Public Class NestPageUC
End If End If
m_bDragToStart = False m_bDragToStart = False
End If End If
' se devo muovere un lato del rettangolo
If m_bIsCheckedDragRettangle Then
OnMyMouseMoveSawRettangle(sender, e)
Return
End If
' Determino cosa muovere ' Determino cosa muovere
Dim nMoveId = If(m_nIdToSel <> GDB_ID.NULL, m_nIdToSel, GDB_ID.SEL) Dim nMoveId = If(m_nIdToSel <> GDB_ID.NULL, m_nIdToSel, GDB_ID.SEL)
' Verifico se in tavola o in parcheggio ' Verifico se in tavola o in parcheggio
@@ -402,6 +742,15 @@ Public Class NestPageUC
Private Sub OnMyMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseUpScene Private Sub OnMyMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseUpScene
' Verifico di essere il gestore attivo ' Verifico di essere il gestore attivo
If Not m_bActive Then Return If Not m_bActive Then Return
' verifico che non sia attivo il comando Test
If m_bSelectCurv Then Return
' verifico che non sia attivo il comando di Drag dei rettangoli
If m_bIsCheckedDragRettangle Then
' deseleziono gli oggeti, resetto le variabili usate, aggiorno il disegno
ResetDragRettangleParam()
Return
End If
' Se eseguito drag ' Se eseguito drag
If Not m_bDragToStart Then If Not m_bDragToStart Then
' Se movimento con sola verifica finale ' Se movimento con sola verifica finale
@@ -412,16 +761,16 @@ Public Class NestPageUC
UpdateNestRegions() UpdateNestRegions()
EnableReferenceRegion(False) EnableReferenceRegion(False)
' Eseguo verifica ' Eseguo verifica
If VerifyTrfData( nMoveId) And EgtVerifyPart( nMoveId, m_bReducedCut) Then If VerifyTrfData(nMoveId) And EgtVerifyPart(nMoveId, m_bReducedCut) Then
m_CurrProjPage.ResetOrderMachiningFlag() m_CurrProjPage.ResetOrderMachiningFlag()
' Non superata riporto alla posizione iniziale ' Non superata riporto alla posizione iniziale
Else Else
If m_bFromParking Then If m_bFromParking Then
m_CurrProjPage.ClearMessage() m_CurrProjPage.ClearMessage()
PreRemoveOnePart( nMoveId) PreRemoveOnePart(nMoveId)
VeinMatching.OnRemovePartFromRaw( nMoveId) VeinMatching.OnRemovePartFromRaw(nMoveId)
Else Else
EgtMove( nMoveId, -m_vtTotMove) EgtMove(nMoveId, -m_vtTotMove)
' Eventuale notifica al VeinMatching ' Eventuale notifica al VeinMatching
If nMoveId = GDB_ID.SEL Then If nMoveId = GDB_ID.SEL Then
Dim nId As Integer = EgtGetFirstSelectedObj() Dim nId As Integer = EgtGetFirstSelectedObj()
@@ -435,11 +784,11 @@ Public Class NestPageUC
End If End If
End If End If
m_bFromParking = False m_bFromParking = False
' altrimenti caso con verifica durante il movimento ' altrimenti caso con verifica durante il movimento
Else Else
' Basta reset alla fine ' Basta reset alla fine
End If End If
' Se selezione da eseguire ' Se selezione da eseguire
ElseIf m_nIdToSel <> GDB_ID.NULL Then ElseIf m_nIdToSel <> GDB_ID.NULL Then
' Determino se pezzo in tavola o in parcheggio ' Determino se pezzo in tavola o in parcheggio
Dim bPartInTable As Boolean = (EgtGetParent(m_nIdToSel) = m_nRawId) Dim bPartInTable As Boolean = (EgtGetParent(m_nIdToSel) = m_nRawId)
@@ -456,7 +805,7 @@ Public Class NestPageUC
VeinMatching.OnSelectPart(m_nIdToSel) VeinMatching.OnSelectPart(m_nIdToSel)
' Set flag posizione selezionati ' Set flag posizione selezionati
m_nPartPos = If(bPartInTable, PART_POS.IN_TABLE, PART_POS.OUT_TABLE) m_nPartPos = If(bPartInTable, PART_POS.IN_TABLE, PART_POS.OUT_TABLE)
' Se deselezione da eseguire ' Se deselezione da eseguire
ElseIf m_nIdToDesel <> GDB_ID.NULL Then ElseIf m_nIdToDesel <> GDB_ID.NULL Then
EgtDeselectObj(m_nIdToDesel) EgtDeselectObj(m_nIdToDesel)
' Eventuale aggiornamento VeinMatching ' Eventuale aggiornamento VeinMatching
@@ -1168,7 +1517,7 @@ Public Class NestPageUC
nLayId = EgtGetNextName(nLayId, NAME_INLOOP) nLayId = EgtGetNextName(nLayId, NAME_INLOOP)
End While End While
' Aggiorno le entità con tallone e quelle con angolo esterno ' Aggiorno le entità con tallone e quelle con angolo esterno
Const AGG_DEPTH As Double = 2.0 Const AGG_DEPTH As Double = 0.75
Dim bSizeOnTop As Boolean = ( GetPrivateProfileInt( S_SIDES, K_SIZEALWAYSONTOP, 0, m_MainWindow.GetIniFile()) <> 0) Dim bSizeOnTop As Boolean = ( GetPrivateProfileInt( S_SIDES, K_SIZEALWAYSONTOP, 0, m_MainWindow.GetIniFile()) <> 0)
For Each nEnt As Integer In vEnt For Each nEnt As Integer In vEnt
' Se aggiornamento vietato, vado oltre ' Se aggiornamento vietato, vado oltre
@@ -1194,12 +1543,14 @@ Public Class NestPageUC
EgtSetInfo(nEnt, INFO_OFFSET2, 0) EgtSetInfo(nEnt, INFO_OFFSET2, 0)
End If End If
EgtSetInfo(nEnt, INFO_DEPTH2, (dTh - dHeel) + AGG_DEPTH) EgtSetInfo(nEnt, INFO_DEPTH2, (dTh - dHeel) + AGG_DEPTH)
EgtSetInfo(nEnt, INFO_AGG2, AGG_DEPTH)
' altrimenti, tallone superiore a spessore -> non c'è taglio inclinato ' altrimenti, tallone superiore a spessore -> non c'è taglio inclinato
Else Else
EgtSetInfo(nEnt, INFO_SIDE_ANGLE, 0.0) EgtSetInfo(nEnt, INFO_SIDE_ANGLE, 0.0)
EgtSetInfo(nEnt, INFO_SIDE_ANGLE2, 0.0) EgtSetInfo(nEnt, INFO_SIDE_ANGLE2, 0.0)
EgtRemoveInfo(nEnt, INFO_OFFSET2) EgtRemoveInfo(nEnt, INFO_OFFSET2)
EgtRemoveInfo(nEnt, INFO_DEPTH2) EgtRemoveInfo(nEnt, INFO_DEPTH2)
EgtRemoveInfo(nEnt, INFO_AGG2)
End If End If
' Inclinazione interna ' Inclinazione interna
Else Else
@@ -1208,12 +1559,14 @@ Public Class NestPageUC
EgtSetInfo(nEnt, INFO_OFFSET, dHeel * Math.Tan(-dSideAng * Math.PI / 180)) EgtSetInfo(nEnt, INFO_OFFSET, dHeel * Math.Tan(-dSideAng * Math.PI / 180))
EgtSetInfo(nEnt, INFO_SIDE_ANGLE2, 0.0) EgtSetInfo(nEnt, INFO_SIDE_ANGLE2, 0.0)
EgtSetInfo(nEnt, INFO_DEPTH2, dHeel + AGG_DEPTH) EgtSetInfo(nEnt, INFO_DEPTH2, dHeel + AGG_DEPTH)
EgtSetInfo(nEnt, INFO_AGG2, AGG_DEPTH)
' altrimenti, tallone superiore a spessore -> non c'è taglio inclinato ' altrimenti, tallone superiore a spessore -> non c'è taglio inclinato
Else Else
EgtSetInfo(nEnt, INFO_SIDE_ANGLE, 0.0) EgtSetInfo(nEnt, INFO_SIDE_ANGLE, 0.0)
EgtRemoveInfo(nEnt, INFO_OFFSET) EgtRemoveInfo(nEnt, INFO_OFFSET)
EgtRemoveInfo(nEnt, INFO_SIDE_ANGLE2) EgtRemoveInfo(nEnt, INFO_SIDE_ANGLE2)
EgtRemoveInfo(nEnt, INFO_DEPTH2) EgtRemoveInfo(nEnt, INFO_DEPTH2)
EgtRemoveInfo(nEnt, INFO_AGG2)
End If End If
End If End If
' Se altrimenti inclinazione esterna ' Se altrimenti inclinazione esterna
@@ -1228,6 +1581,18 @@ Public Class NestPageUC
Return True Return True
End Function End Function
Private Sub DragRettangle_Click() Handles DragRettanleBtn.Click
If DragRettanleBtn.IsChecked Then
m_bIsCheckedDragRettangle = True
Else
m_bIsCheckedDragRettangle = False
ResetDragRettangleParam()
m_CurrProjPage.ClearMessage()
ShowParkedParts()
End If
EgtDraw()
End Sub
Private Sub StorePartBtn_Click(sender As Object, e As RoutedEventArgs) Handles StorePartBtn.Click Private Sub StorePartBtn_Click(sender As Object, e As RoutedEventArgs) Handles StorePartBtn.Click
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx()) EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
' Ciclo di parcheggio dei pezzi selezionati ' Ciclo di parcheggio dei pezzi selezionati
+11
View File
@@ -166,6 +166,17 @@ Public Module SplitAuto
End Function End Function
'----------------------------------------------------------------------------------------------- '-----------------------------------------------------------------------------------------------
' calcolo il numero di tipi di lavorazioni
Friend Sub CountMachiningType(MachSplit As SplitMach, ByRef nCountSawing As Integer, ByRef nCountWaterjetting As Integer, ByRef nCountOtherMachining As Integer)
If MachSplit.m_nType = MCH_OY.SAWING Then
nCountSawing += 1
ElseIf MachSplit.m_nType = MCH_OY.WATERJETTING Then
nCountWaterjetting += 1
Else
nCountOtherMachining += 1
End If
End Sub
Friend Sub ColorMachining(MachSplit As SplitMach, Optional bReset As Boolean = False) Friend Sub ColorMachining(MachSplit As SplitMach, Optional bReset As Boolean = False)
EgtDisableModified() EgtDisableModified()
' Assegno stato ' Assegno stato
+426 -76
View File
@@ -6,6 +6,9 @@ Public Class SplitPageUC
' Riferimento alla MainWindow ' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow) Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
' Flag di pagina attiva
Private m_bActive As Boolean = False
' Tipo movimento dei grezzi (manuale o con testa ventosa) ' Tipo movimento dei grezzi (manuale o con testa ventosa)
Private m_bByHand As Boolean = True Private m_bByHand As Boolean = True
' Abilitazione movimento finale pezzi su tavola ausiliaria ' Abilitazione movimento finale pezzi su tavola ausiliaria
@@ -13,6 +16,16 @@ Public Class SplitPageUC
' Stato ' Stato
Private m_nCurrPhase As Integer = 0 Private m_nCurrPhase As Integer = 0
Private m_MachiningList As New List(Of SplitMach) Private m_MachiningList As New List(Of SplitMach)
' numero di lavorazioni di tipo lama
Private m_nCountSawing As Integer = 0
' numero di lavprazioni di tipo waterjet
Private m_nCountWaterjetting As Integer = 0
' altri tipi di lavorazioni (Foro/Fresa)
Private m_nCountOtherMachining As Integer = 0
' verifico che le lavorazioni selezionate siano omogenee (con lo stesso utensile)
Private m_bAreHomogeneous As Boolean = False
Private m_ItemList As New ObservableCollection(Of NameIdLsBxItem) Private m_ItemList As New ObservableCollection(Of NameIdLsBxItem)
'Private m_CurrInd As Integer = -1 'Private m_CurrInd As Integer = -1
'Private m_CurrItems As New List(Of NameIdLsBxItem) 'Private m_CurrItems As New List(Of NameIdLsBxItem)
@@ -23,6 +36,13 @@ Public Class SplitPageUC
Private m_nNbrGrpId As Integer = GDB_ID.NULL Private m_nNbrGrpId As Integer = GDB_ID.NULL
Private m_bToNext As Boolean = False Private m_bToNext As Boolean = False
Friend m_bOnAuxTab As Boolean = False Friend m_bOnAuxTab As Boolean = False
' Drag
Private m_nDragInd As Integer = -1
Private m_nDragType As Integer = 0 '0=niente, 1=attacco, 2=uscita
Private m_ptDragPrev As Point3d
Private m_bDragging As Boolean = False
' Selected cut
Private m_nSelected As Integer = GDB_ID.NULL
Private Sub SplitPageUC_Initialized(sender As Object, e As EventArgs) Private Sub SplitPageUC_Initialized(sender As Object, e As EventArgs)
PrevBtn.IsEnabled = False PrevBtn.IsEnabled = False
@@ -53,6 +73,10 @@ Public Class SplitPageUC
End Sub End Sub
Private Sub SplitPageUC_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded Private Sub SplitPageUC_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded
m_bActive = True
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
m_nDragInd = -1
m_nDragType = 0
' Leggo tipo movimento grezzi ' Leggo tipo movimento grezzi
m_bByHand = (EgtGetHeadId(VACUUM_HEAD) = GDB_ID.NULL Or m_bByHand = (EgtGetHeadId(VACUUM_HEAD) = GDB_ID.NULL Or
Not m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.AUTO_MANIP) Or Not m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.AUTO_MANIP) Or
@@ -97,12 +121,18 @@ Public Class SplitPageUC
ShowOnePhaseMachiningPreview(m_nCurrPhase) ShowOnePhaseMachiningPreview(m_nCurrPhase)
' Preparo la lista delle lavorazioni ' Preparo la lista delle lavorazioni
CalculateSplitMachList(m_nCurrPhase, m_MachiningList) CalculateSplitMachList(m_nCurrPhase, m_MachiningList)
' azzero i contatori delle lavorazioni
m_nCountSawing = 0
m_nCountWaterjetting = 0
m_nCountOtherMachining = 0
' Aggiorno visualizzazione delle lavorazioni ' Aggiorno visualizzazione delle lavorazioni
For nI As Integer = 0 To m_MachiningList.Count() - 1 For nI As Integer = 0 To m_MachiningList.Count() - 1
' sistemo colore ' sistemo colore
ColorMachining(m_MachiningList(nI)) ColorMachining(m_MachiningList(nI))
' assegno numerazione ' assegno numerazione
NumberDirectionMachining(nI) NumberDirectionMachining(nI)
' conto il numero di tipi di lavorazioni
CountMachiningType(m_MachiningList(nI), m_nCountSawing, m_nCountWaterjetting, m_nCountOtherMachining)
Next Next
' Preparo la lista degli Item ' Preparo la lista degli Item
ShowMachiningList() ShowMachiningList()
@@ -138,33 +168,222 @@ Public Class SplitPageUC
Dim sText As String = String.Empty Dim sText As String = String.Empty
If Math.Abs(Mach.m_dSideAng) < EPS_ANG_SMALL Then If Math.Abs(Mach.m_dSideAng) < EPS_ANG_SMALL Then
sText = EgtMsg(90791) & " " & i.ToString() sText = EgtMsg(90791) & " " & i.ToString()
If Mach.m_sLay = NAME_ONPATH Then AddTopText( sText) If Mach.m_sLay = NAME_ONPATH Then AddTopText(sText)
Else Else
sText = EgtMsg(90791) & " " & i.ToString() & " " & DoubleToString( Mach.m_dSideAng, 2) & "°" sText = EgtMsg(90791) & " " & i.ToString() & " " & DoubleToString(Mach.m_dSideAng, 2) & "°"
End If End If
If Mach.m_bPause Then AddPauseText(sText) If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled)) m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.SAWING))
ElseIf Mach.m_nType = MCH_OY.DRILLING Then ' Foratura ElseIf Mach.m_nType = MCH_OY.DRILLING Then ' Foratura
Dim sText As String = EgtMsg(90792) & " " & i.ToString() Dim sText As String = EgtMsg(90792) & " " & i.ToString()
If Mach.m_bPause Then AddPauseText(sText) If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled)) m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.DRILLING))
ElseIf Mach.m_nType = MCH_OY.MILLING Then ' Fresatura ElseIf Mach.m_nType = MCH_OY.MILLING Then ' Fresatura
Dim sText As String = EgtMsg(90793) & " " & i.ToString() Dim sText As String = EgtMsg(90793) & " " & i.ToString()
If Mach.m_sLay = NAME_ONPATH Then AddTopText( sText) If Mach.m_sLay = NAME_ONPATH Then AddTopText(sText)
If Mach.m_bPause Then AddPauseText( sText) If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled)) m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.MILLING))
ElseIf Mach.m_nType = MCH_OY.POCKETING Then ' Svuotatura ElseIf Mach.m_nType = MCH_OY.POCKETING Then ' Svuotatura
Dim sText As String = EgtMsg(90796) & " " & i.ToString() Dim sText As String = EgtMsg(90796) & " " & i.ToString()
If Mach.m_bPause Then AddPauseText(sText) If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled)) m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.POCKETING))
ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then ' Waterjet ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then ' Waterjet
Dim sText As String = EgtMsg(90797) & " " & i.ToString() Dim sText As String = EgtMsg(90797) & " " & i.ToString()
If Mach.m_bPause Then AddPauseText(sText) If Mach.m_bPause Then AddPauseText(sText)
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled)) m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.WATERJETTING))
End If End If
Next Next
End Sub End Sub
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
If Not m_bActive OrElse m_bShow Then Return
' 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
' Reset drag
m_nDragInd = -1
m_nDragType = 0
' Reset selection interface
m_nSelected = GDB_ID.NULL
' Verifico se selezionato estremo di taglio con lama
EgtSetObjFilterForSelWin(False, True, False, False, False)
Dim nSel As Integer
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
Dim nId As Integer = EgtGetFirstObjInSelWin()
While nId <> GDB_ID.NULL
' Verifico sia un attacco o uscita di taglio con lama
Dim nType As Integer = 0
Dim sName As String = ""
EgtGetName(nId, sName)
If String.Compare(sName, NAME_PV_PRECUT) = 0 Then
nType = 1
ElseIf String.Compare(sName, NAME_PV_POSTCUT) = 0 Then
nType = 2
ElseIf String.Compare(sName, NAME_PV_CUT) = 0 Then
nType = 3
End If
If nType = 1 Or nType = 2 Then
Dim nPvId As Integer = EgtGetParent(EgtGetParent(nId))
Dim nMchId As Integer = GDB_ID.NULL
If EgtGetInfo(nPvId, "MId", nMchId) Then
For nInd As Integer = 0 To m_MachiningList.Count() - 1
If m_MachiningList(nInd).m_nId = nMchId Then
m_nDragInd = nInd
m_nDragType = nType
End If
For nJ As Integer = 0 To m_MachiningList(nInd).m_vOthId.Count() - 1
If m_MachiningList(nInd).m_vOthId(nJ) = nMchId Then
m_nDragInd = nInd
m_nDragType = nType
Exit For
End If
Next
If m_nDragInd >= 0 Then
' Assegno l'id dell'elemnto selezionato
m_nSelected = m_nDragInd
Exit For
End If
Next
End If
If m_nDragInd >= 0 Then
' Assegno l'id dell'elemnto selezionato
m_nSelected = m_nDragInd
Exit While
End If
ElseIf nType = 3 Then
Dim nPvId As Integer = EgtGetParent(EgtGetParent(nId))
Dim nMchId As Integer = GDB_ID.NULL
If EgtGetInfo(nPvId, "MId", nMchId) Then
For nInd As Integer = 0 To m_MachiningList.Count() - 1
If m_MachiningList(nInd).m_nId = nMchId Then
m_nSelected = nInd
End If
For nJ As Integer = 0 To m_MachiningList(nInd).m_vOthId.Count() - 1
If m_MachiningList(nInd).m_vOthId(nJ) = nMchId Then
m_nSelected = nInd
Exit For
End If
Next
If m_nSelected >= 0 Then Exit For
Next
End If
If m_nSelected >= 0 Then Exit While
End If
nId = EgtGetNextObjInSelWin()
End While
' Sistemazioni per drag
If m_nSelected >= 0 AndAlso EgtUnProjectPoint(e.Location, m_ptDragPrev) Then
MachiningLsBx.SelectedIndex = m_nSelected
Else
m_nDragInd = -1
m_nDragType = 0
m_nSelected = GDB_ID.NULL
End If
End Sub
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseMoveScene
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
If Not m_bActive OrElse m_bShow Then Return
' Se drag non abilitato o in corso
If m_nDragInd = -1L Or m_bDragging Then Return
m_bDragging = True
Dim nOperId As Integer = m_MachiningList(m_nDragInd).m_nId
' Ricavo il punto corrente in coordinate mondo
Dim ptCurr As Point3d
EgtUnProjectPoint(e.Location, ptCurr)
' Ricavo il vettore di movimento e la variazione di lunghezza
Dim vtMove As Vector3d = ptCurr - m_ptDragPrev
Dim dDelta = vtMove * m_MachiningList(m_nDragInd).m_vtDir
If m_nDragType = 1 Then
Dim dOrigUsal As Double = 0
Dim dUsal As Double
' ----------------------- REPEAT -----------------------
Do
dDelta = -dDelta
' Leggo il valore salvato nella geometria
EgtGetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
dUsal = dOrigUsal + dDelta
' Se c'è limite alla lunghezza libera
If m_MachiningList(m_nDragInd).m_dStartFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUsal = Math.Min(dUsal, m_MachiningList(m_nDragInd).m_dStartFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
If dAddLen - dOrigUsal < -10 * EPS_SMALL Then
m_bDragging = False
Return
End If
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen + dUsal - dOrigUsal)
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dUsal)
Loop Until UpdateMachiningPreview(m_MachiningList(m_nDragInd).m_nId, True)
' ----------------------- REPEAT (solo se il segmento scompare) -----------------------
Else
Dim dOrigUeal As Double = 0
Dim dUeal As Double
dDelta = -dDelta
Do
dDelta = -dDelta
' Leggo il valore salvato nella geometria
EgtGetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
dUeal = dOrigUeal + dDelta
' Se c'è limite alla lunghezza libera
If m_MachiningList(m_nDragInd).m_dEndFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUeal = Math.Min(dUeal, m_MachiningList(m_nDragInd).m_dEndFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then
m_bDragging = False
Return
End If
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen + dUeal - dOrigUeal)
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dUeal)
Loop Until UpdateMachiningPreview(m_MachiningList(m_nDragInd).m_nId, True)
End If
' verifico interferenza
EgtVerifyMachining(m_MachiningList(m_nDragInd).m_nId, m_MachiningList(m_nDragInd).m_nInterf)
ColorMachining(m_MachiningList(m_nDragInd))
ColorNumberArrow(m_nDragInd)
' Aggiorno visualizzazione
EgtDraw()
m_bModified = True
' Aggiorno punto e stato di drag
m_ptDragPrev = ptCurr
m_bDragging = False
End Sub
Private Sub OnMyMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseUpScene
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
If Not m_bActive OrElse m_bShow Then Return
' Se drag in corso
If m_nDragInd >= 0 Then
m_nDragInd = -1
End If
End Sub
Private Sub AddPauseText(ByRef sName As String) Private Sub AddPauseText(ByRef sName As String)
sName &= " " & EgtMsg(MSG_SPLITPAGEUC + 32) ' Pausa sName &= " " & EgtMsg(MSG_SPLITPAGEUC + 32) ' Pausa
End Sub End Sub
@@ -180,11 +399,16 @@ Public Class SplitPageUC
Private Sub MachiningLsBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MachiningLsBx.SelectionChanged Private Sub MachiningLsBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MachiningLsBx.SelectionChanged
If MachiningLsBx.SelectedItems.Count = 0 Then Return If MachiningLsBx.SelectedItems.Count = 0 Then Return
If MachiningLsBx.SelectedItems.Count = 1 Then m_bAreHomogeneous = True
' creo lista ordinata dei selezionati ' creo lista ordinata dei selezionati
Dim ItemList As New List(Of NameIdLsBxItem) Dim ItemList As New List(Of NameIdLsBxItem)
For Each Item As NameIdLsBxItem In MachiningLsBx.SelectedItems For Each Item As NameIdLsBxItem In MachiningLsBx.SelectedItems
ItemList.Add(Item) ItemList.Add(Item)
Next Next
' verifico che le lavorazioni siano dello stesso tipo
VerifyHomogenousMachining(ItemList)
ItemList.Sort(Function(x, y) Comparer(Of Integer).Default.Compare(m_ItemList.IndexOf(x), m_ItemList.IndexOf(y))) ItemList.Sort(Function(x, y) Comparer(Of Integer).Default.Compare(m_ItemList.IndexOf(x), m_ItemList.IndexOf(y)))
' verifico che siano contigui ' verifico che siano contigui
Dim bContigus As Boolean = False Dim bContigus As Boolean = False
@@ -287,8 +511,14 @@ Public Class SplitPageUC
EgtDraw() EgtDraw()
' Imposto flag di modifica ' Imposto flag di modifica
m_bModified = True m_bModified = True
' Abilitazione bottone Next
EnableButtons() ' recupero l'elenco degli elementi selezionati
Dim ItemList As New List(Of NameIdLsBxItem)
For Each Item As NameIdLsBxItem In MachiningLsBx.SelectedItems
ItemList.Add(Item)
Next
VerifyHomogenousMachining(ItemList)
End Sub End Sub
Private Sub AllOnBtn_Click(sender As Object, e As RoutedEventArgs) Handles AllOnBtn.Click Private Sub AllOnBtn_Click(sender As Object, e As RoutedEventArgs) Handles AllOnBtn.Click
@@ -772,26 +1002,37 @@ Public Class SplitPageUC
bFirstInd = False bFirstInd = False
End If End If
' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------
Dim bRepeat As Boolean = False
Do
' Se c'è limite alla lunghezza libera
If m_MachiningList(nI).m_dStartFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUsal = Math.Min(dUsal, m_MachiningList(nI).m_dStartFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
' verifico che non sia sull'angolo interno (altrimenti vieto la modifica)
If dAddLen - dOrigUsal < -10 * EPS_SMALL Then
Return
End If
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen + dUsal - dOrigUsal)
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dUsal)
bRepeat = Not UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
If bRepeat Then
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dOrigUsal)
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
dUsal = dOrigUsal
End If
Loop Until Not bRepeat
' Se c'è limite alla lunghezza libera
If m_MachiningList(nI).m_dStartFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUsal = Math.Min(dUsal, m_MachiningList(nI).m_dStartFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
If dAddLen - dOrigUsal < -10 * EPS_SMALL Then Return
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen + dUsal - dOrigUsal)
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dUsal)
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
' verifico interferenza ' verifico interferenza
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf) EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
ColorMachining(m_MachiningList(nI)) ColorMachining(m_MachiningList(nI))
@@ -903,7 +1144,7 @@ Public Class SplitPageUC
' Recupero la lavorazione corrente ' Recupero la lavorazione corrente
If m_CurrFirstInd = -1 Then Return If m_CurrFirstInd = -1 Then Return
Dim bGenModif As Boolean = False Dim bGenModif As Boolean = False
For Index As integer = m_CurrFirstInd To m_CurrLastInd For Index As Integer = m_CurrFirstInd To m_CurrLastInd
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
Dim nOperId As Integer = m_MachiningList(nI).m_nId Dim nOperId As Integer = m_MachiningList(nI).m_nId
Dim nMachiningType As Integer = EgtGetOperationType(nOperId) Dim nMachiningType As Integer = EgtGetOperationType(nOperId)
@@ -924,26 +1165,38 @@ Public Class SplitPageUC
bFirstInd = False bFirstInd = False
End If End If
' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------ ' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------
Dim bRepeat As Boolean = False
Do
' Se c'è limite alla lunghezza libera
If m_MachiningList(nI).m_dEndFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUeal = Math.Min(dUeal, m_MachiningList(nI).m_dEndFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then
Return
End If
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen + dUeal - dOrigUeal)
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dUeal)
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
bRepeat = Not UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
If bRepeat Then
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dOrigUeal)
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
dUeal = dOrigUeal
End If
Loop Until Not bRepeat
' Se c'è limite alla lunghezza libera
If m_MachiningList(nI).m_dEndFreeLen < FREELEN_INF Then
' Recupero sicurezza in corner interno
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
' Recupero lunghezza baffo del taglio
Dim nPvId As Integer = GDB_ID.NULL
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
Dim dDT As Double = 0
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
dUeal = Math.Min(dUeal, m_MachiningList(nI).m_dEndFreeLen - dDT - dCornerSafety)
End If
' Modifica della lavorazione
EgtSetCurrMachining(nOperId)
Dim dAddLen As Double = 0
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then Return
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen + dUeal - dOrigUeal)
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dUeal)
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
' verifico interferenza ' verifico interferenza
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf) EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
ColorMachining(m_MachiningList(nI)) ColorMachining(m_MachiningList(nI))
@@ -1027,40 +1280,40 @@ Public Class SplitPageUC
For Index As Integer = m_CurrFirstInd To m_CurrLastInd For Index As Integer = m_CurrFirstInd To m_CurrLastInd
Dim nI As Integer = m_ItemList(Index).Ind Dim nI As Integer = m_ItemList(Index).Ind
' Si possono invertire solo i tagli di lama ' Si possono invertire solo i tagli di lama
If m_MachiningList( nI).m_nType <> MCH_OY.SAWING Then Continue For If m_MachiningList(nI).m_nType <> MCH_OY.SAWING Then Continue For
' Non si possono invertire i tagli di lama inclinati ' Non si possono invertire i tagli di lama inclinati
If Math.Abs( m_MachiningList(nI).m_dSideAng) > 0.1 Then Continue For If Math.Abs(m_MachiningList(nI).m_dSideAng) > 0.1 Then Continue For
' Se abilitata inversione automatica e quindi non invertito ' Se abilitata inversione automatica e quindi non invertito
If m_MachiningList( nI).m_bEnableInvert Then If m_MachiningList(nI).m_bEnableInvert Then
' Inverto e disabilito inversione automatica ' Inverto e disabilito inversione automatica
If CamAuto.InvertVerticalCut( m_MachiningList( nI).m_nId) Then If CamAuto.InvertVerticalCut(m_MachiningList(nI).m_nId) Then
m_MachiningList( nI).m_bInvert = True m_MachiningList(nI).m_bInvert = True
m_MachiningList( nI).m_vtDir = - m_MachiningList( nI).m_vtDir m_MachiningList(nI).m_vtDir = -m_MachiningList(nI).m_vtDir
m_MachiningList( nI).m_bEnableInvert = False m_MachiningList(nI).m_bEnableInvert = False
SwapStartEndData( nI) SwapStartEndData(nI)
ResetEnableInvert( m_MachiningList( nI).m_nEntId) ResetEnableInvert(m_MachiningList(nI).m_nEntId)
EgtErase( m_MachiningList( nI).m_nArrId) EgtErase(m_MachiningList(nI).m_nArrId)
NumberDirectionMachining( nI, False) NumberDirectionMachining(nI, False)
EgtDraw() EgtDraw()
End If End If
' se altrimenti disabilitata inversione automatica e invertito ' se altrimenti disabilitata inversione automatica e invertito
ElseIf m_MachiningList( nI).m_bInvert Then ElseIf m_MachiningList(nI).m_bInvert Then
' Tolgo inversione e lascio disabilitazione inv. autom. ' Tolgo inversione e lascio disabilitazione inv. autom.
If CamAuto.InvertVerticalCut( m_MachiningList( nI).m_nId) Then If CamAuto.InvertVerticalCut(m_MachiningList(nI).m_nId) Then
m_MachiningList( nI).m_bInvert = False m_MachiningList(nI).m_bInvert = False
m_MachiningList( nI).m_vtDir = - m_MachiningList( nI).m_vtDir m_MachiningList(nI).m_vtDir = -m_MachiningList(nI).m_vtDir
SwapStartEndData( nI) SwapStartEndData(nI)
EgtErase( m_MachiningList( nI).m_nArrId) EgtErase(m_MachiningList(nI).m_nArrId)
NumberDirectionMachining( nI, False) NumberDirectionMachining(nI, False)
EgtDraw() EgtDraw()
End If End If
' altrimenti disabilitata inversione automatica e non invertito ' altrimenti disabilitata inversione automatica e non invertito
Else Else
' Abilito inversione automatica e lascio non invertito ' Abilito inversione automatica e lascio non invertito
m_MachiningList( nI).m_bEnableInvert = True m_MachiningList(nI).m_bEnableInvert = True
SetEnableInvert( m_MachiningList( nI).m_nEntId) SetEnableInvert(m_MachiningList(nI).m_nEntId)
EgtErase( m_MachiningList( nI).m_nArrId) EgtErase(m_MachiningList(nI).m_nArrId)
NumberDirectionMachining( nI, False) NumberDirectionMachining(nI, False)
EgtDraw() EgtDraw()
End If End If
Next Next
@@ -1122,7 +1375,7 @@ Public Class SplitPageUC
' Se fase corrente è la prima, imposto partenza normale ' Se fase corrente è la prima, imposto partenza normale
If m_nCurrPhase = 1 Then If m_nCurrPhase = 1 Then
m_MainWindow.m_CurrentProjectPageUC.ResetProjectNcRestart() m_MainWindow.m_CurrentProjectPageUC.ResetProjectNcRestart()
' Altrimenti, imposto la ripartenza dalla fase corrente ' Altrimenti, imposto la ripartenza dalla fase corrente
Else Else
m_MainWindow.m_CurrentProjectPageUC.SetProjectNcRestart(m_nCurrPhase) m_MainWindow.m_CurrentProjectPageUC.SetProjectNcRestart(m_nCurrPhase)
m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage(EgtMsg(MSG_SPLITPAGEUC + 19) & " (" & m_nCurrPhase.ToString() & ")") m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage(EgtMsg(MSG_SPLITPAGEUC + 19) & " (" & m_nCurrPhase.ToString() & ")")
@@ -1151,8 +1404,13 @@ Public Class SplitPageUC
HideAllMachinings() HideAllMachinings()
' Preparo la lista delle lavorazioni e le disabilito ' Preparo la lista delle lavorazioni e le disabilito
CalculateSplitMachList(m_nCurrPhase, m_MachiningList) CalculateSplitMachList(m_nCurrPhase, m_MachiningList)
m_nCountSawing = 0
m_nCountWaterjetting = 0
m_nCountOtherMachining = 0
For nI As Integer = 0 To m_MachiningList.Count() - 1 For nI As Integer = 0 To m_MachiningList.Count() - 1
m_MachiningList(nI).m_bEnabled = False m_MachiningList(nI).m_bEnabled = False
' conto il numero di tipi di lavorazioni
CountMachiningType(m_MachiningList(nI), m_nCountSawing, m_nCountWaterjetting, m_nCountOtherMachining)
Next Next
' Aggiorno visualizzazione delle lavorazioni ' Aggiorno visualizzazione delle lavorazioni
EgtEmptyGroup(m_nNbrGrpId) EgtEmptyGroup(m_nNbrGrpId)
@@ -1171,6 +1429,7 @@ Public Class SplitPageUC
End Sub End Sub
Private Sub SplitPageUC_Unloaded(sender As Object, e As EventArgs) Handles Me.Unloaded Private Sub SplitPageUC_Unloaded(sender As Object, e As EventArgs) Handles Me.Unloaded
m_bActive = False
m_MainWindow.m_CurrentProjectPageUC.ClearMessage() m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
ExitSplit(Not m_bToNext) ExitSplit(Not m_bToNext)
EgtDraw() EgtDraw()
@@ -1338,6 +1597,86 @@ Public Class SplitPageUC
ModifEndBtn.IsEnabled = Not m_bShow ModifEndBtn.IsEnabled = Not m_bShow
InvertBtn.IsEnabled = Not m_bShow InvertBtn.IsEnabled = Not m_bShow
PauseBtn.IsEnabled = Not m_bShow And m_MainWindow.m_CurrentMachine.bEnablePause PauseBtn.IsEnabled = Not m_bShow And m_MainWindow.m_CurrentMachine.bEnablePause
' nascondo i comandi che non devono essere visualizzati in funzione delle lavorazioni attive
If m_nCountSawing = 0 And (m_nCountWaterjetting > 0 Or m_nCountOtherMachining) Then
VisibilityButtonFromMachinig(MCH_OY.WATERJETTING)
Else
VisibilityButtonFromMachinig(MCH_OY.SAWING)
End If
End Sub
Private Sub VerifyHomogenousMachining(ItemList As List(Of NameIdLsBxItem))
If IsNothing(ItemList) OrElse ItemList.Count = 0 Then
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
Return
End If
Dim nSawing As Integer = 0
Dim nWaterjetting As Integer = 0
Dim nOtherMachining As Integer = 0
' conto il numero di tipi di lavprazioni
For Each Item As NameIdLsBxItem In ItemList
If Item.Type = MCH_OY.SAWING Then
nSawing += 1
ElseIf Item.Type = MCH_OY.WATERJETTING Then
nWaterjetting += 1
Else
nOtherMachining += 1
End If
Next
' verifico se le lavorazioni sono omeogenee
If nSawing > 0 And (nWaterjetting > 0 Or nOtherMachining > 0) Then
m_bAreHomogeneous = False
VisibilityButtonFromMachinig(MCH_OY.SAWING)
ElseIf nSawing = 0 And nOtherMachining > 0 And nWaterjetting > 0 Then
m_bAreHomogeneous = False
VisibilityButtonFromMachinig(MCH_OY.WATERJETTING)
Else
VisibilityButtonFromMachinig(ItemList(0).Type)
m_bAreHomogeneous = True
End If
' eventualmente stampo messaggio
If Not m_bAreHomogeneous Then
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage("Lavorazioni non omogenee")
Else
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
End If
End Sub
Private Sub VisibilityButtonFromMachinig(ByVal Type As Integer)
If Type <> MCH_OY.SAWING Then
CutBtn.Visibility = Visibility.Hidden
CutStartBtn.Visibility = Visibility.Hidden
CutEndBtn.Visibility = Visibility.Hidden
OutCenStartBtn.Visibility = Visibility.Hidden
OutCenEndBtn.Visibility = Visibility.Hidden
InvertBtn.Visibility = Visibility.Hidden
PauseBtn.Visibility = Visibility.Hidden
AllOutStartBtn.Visibility = Visibility.Hidden
AllCenStartBtn.Visibility = Visibility.Hidden
AllOutEndBtn.Visibility = Visibility.Hidden
AllCenEndBtn.Visibility = Visibility.Hidden
AllExtendBtn.Visibility = Visibility.Hidden
AllReduceBtn.Visibility = Visibility.Hidden
Else
CutBtn.Visibility = Visibility.Visible
CutStartBtn.Visibility = Visibility.Visible
CutEndBtn.Visibility = Visibility.Visible
OutCenStartBtn.Visibility = Visibility.Visible
OutCenEndBtn.Visibility = Visibility.Visible
InvertBtn.Visibility = Visibility.Visible
PauseBtn.Visibility = Visibility.Visible
AllOutStartBtn.Visibility = Visibility.Visible
AllCenStartBtn.Visibility = Visibility.Visible
AllOutEndBtn.Visibility = Visibility.Visible
AllCenEndBtn.Visibility = Visibility.Visible
AllExtendBtn.Visibility = Visibility.Visible
AllReduceBtn.Visibility = Visibility.Visible
End If
End Sub End Sub
Private Function ModifyOtherLeadIn(nI As Integer, nLiOthType As Integer) As Boolean Private Function ModifyOtherLeadIn(nI As Integer, nLiOthType As Integer) As Boolean
@@ -1572,6 +1911,7 @@ Public Class SplitPageUC
Private m_nInd As Integer Private m_nInd As Integer
Private m_sName As String Private m_sName As String
Private m_bIsActive As Boolean Private m_bIsActive As Boolean
Private m_nType As Integer
Public Property Ind As Integer Public Property Ind As Integer
Get Get
@@ -1606,10 +1946,20 @@ Public Class SplitPageUC
End Set End Set
End Property End Property
Sub New(Name As String, Ind As Integer, bIsActive As Boolean) Public Property Type As Integer
Get
Return m_nType
End Get
Set(value As Integer)
m_nType = value
End Set
End Property
Sub New(Name As String, Ind As Integer, bIsActive As Boolean, nType As Integer)
Me.m_sName = Name Me.m_sName = Name
Me.m_nInd = Ind Me.m_nInd = Ind
Me.m_bIsActive = bIsActive Me.m_bIsActive = bIsActive
Me.m_nType = nType
End Sub End Sub
Public Sub NotifyPropertyChanged(propName As String) Public Sub NotifyPropertyChanged(propName As String)
+1
View File
@@ -205,6 +205,7 @@ Module ConstGen
Public Const INFO_DEPTH As String = "Depth" Public Const INFO_DEPTH As String = "Depth"
Public Const INFO_WIDTH As String = "Width" Public Const INFO_WIDTH As String = "Width"
Public Const INFO_DEPTH2 As String = "Depth2" Public Const INFO_DEPTH2 As String = "Depth2"
Public CONST INFO_AGG2 As String = "Agg2"
' Info in entità da tagliare per taglio ristretto ' Info in entità da tagliare per taglio ristretto
Public Const INFO_STRICT As String = "Strict" Public Const INFO_STRICT As String = "Strict"
' Info in entità da tagliare per angolo di lato e tallone ' Info in entità da tagliare per angolo di lato e tallone
+1
View File
@@ -148,6 +148,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 = "DragRettangle"
Public Const S_SPLIT As String = "Split" Public Const S_SPLIT As String = "Split"
Public Const K_MOVE_LEV As String = "MoveLevel" Public Const K_MOVE_LEV As String = "MoveLevel"
+1
View File
@@ -282,5 +282,6 @@
Public Const S_MATERIALS As String = "Materials" Public Const S_MATERIALS As String = "Materials"
Public Const K_CURRMATERIAL As String = "CurrMaterial" Public Const K_CURRMATERIAL As String = "CurrMaterial"
Public Const K_MATERIAL As String = "Material" Public Const K_MATERIAL As String = "Material"
Public Const K_FROMDBWATERJET As String = "FromDBWaterJet"
End Module End Module
+26 -23
View File
@@ -133,25 +133,6 @@ Public Class DirectCutPageUC
' leggo il numero di assi attivi nella macchina ' leggo il numero di assi attivi nella macchina
Dim AxesNumber = GetPrivateProfileInt(S_AXES, K_AXESNUM, 5, m_MainWindow.GetMachIniFile()) Dim AxesNumber = GetPrivateProfileInt(S_AXES, K_AXESNUM, 5, m_MainWindow.GetMachIniFile())
'' leggo se è stata configurata la nuova conole
'If GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile()) = 1 And Not bCollapsedNewBottonsConsole Then
' XYBtn.Content = "X - Y"
' XYBtn.Foreground = Brushes.White
' ZCBtn.Content = "Z - C"
' ZCBtn.Foreground = Brushes.White
' If AxesNumber < 5 Then
' ZBBtn.Visibility = Windows.Visibility.Collapsed
' End If
' ZBBtn.Content = "Z - B"
' ZBBtn.Foreground = Brushes.White
' RemoteBtn.Content = "Remote"
' RemoteBtn.Foreground = Brushes.White
'Else
' XYBtn.Visibility = Windows.Visibility.Collapsed
' ZCBtn.Visibility = Windows.Visibility.Collapsed
' ZBBtn.Visibility = Windows.Visibility.Collapsed
'End If
End Sub End Sub
Private Sub DirectCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded Private Sub DirectCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
@@ -228,8 +209,12 @@ Public Class DirectCutPageUC
' Se macchina fotografica abilitata ' Se macchina fotografica abilitata
PhotoBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.MAN_PHOTO) PhotoBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.MAN_PHOTO)
' Attivo le lavorazioni solo se esiste il grezzo ' Attivo le lavorazioni solo se esiste il grezzo e se presente testa H1
Dim bRawOk As Boolean = (GetRawHeight() > EPS_SMALL) Dim bRawOk As Boolean = (GetRawHeight() > EPS_SMALL)
Dim bH1Exists As Boolean = (EgtGetHeadId("H1") <> GDB_ID.NULL)
ManualBtn.IsEnabled = bH1Exists
' sviluppo rimasto in sospeso
If m_bManulaCut Then If m_bManulaCut Then
' anche se non è presente un grezzo mantengo abilitato il bottone ' anche se non è presente un grezzo mantengo abilitato il bottone
SingleCutBtn.IsEnabled = True SingleCutBtn.IsEnabled = True
@@ -238,10 +223,14 @@ Public Class DirectCutPageUC
End If End If
MultipleCutBtn.IsEnabled = bRawOk MultipleCutBtn.IsEnabled = bRawOk
GridCutBtn.IsEnabled = bRawOk GridCutBtn.IsEnabled = bRawOk
SingleDrillBtn.IsEnabled = bRawOk SingleDrillBtn.IsEnabled = (bRawOk And bH1Exists)
FlatteningCutBtn.IsEnabled = bRawOk FlatteningCutBtn.IsEnabled = (bRawOk And bH1Exists)
PolishingBtn.IsEnabled = (bRawOk And m_MainWindow.m_CurrentMachine.bPolishing) PolishingBtn.IsEnabled = (bRawOk And m_MainWindow.m_CurrentMachine.bPolishing)
SawTestBtn.IsEnabled = bRawOk SawTestBtn.IsEnabled = (bRawOk And bH1Exists)
CopyTemplateBtn.IsEnabled = bH1Exists
' aggiorno la visualizzazione dei parametri
ReloadParam()
' Nascondo i pezzi in parcheggio ' Nascondo i pezzi in parcheggio
HideParkedParts() HideParkedParts()
@@ -249,6 +238,20 @@ Public Class DirectCutPageUC
End Sub End Sub
Public Sub ReloadParam()
Dim sCurrSawing As String = m_MainWindow.m_CurrentMachine.sCurrSawing
Dim sCurrSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
Dim bSaw As Boolean = False
' se esiste una lavorazione di lama corrente vuol dire che deve essere preferita
If Not String.IsNullOrEmpty(sCurrSaw) And Not String.IsNullOrEmpty(sCurrSawing) Then
bSaw = EgtSetCalcTool(sCurrSaw, "H1", 1)
End If
m_SingleCut.SetEnableParam(bSaw)
m_MultipleCut.SetEnableParam(bSaw)
m_GridCut.SetEnableParam(bSaw)
End Sub
Private Sub SetVisibilityJogButtuns() Private Sub SetVisibilityJogButtuns()
XYBtn.Visibility = Visibility.Collapsed XYBtn.Visibility = Visibility.Collapsed
ZCBtn.Visibility = Visibility.Collapsed ZCBtn.Visibility = Visibility.Collapsed
+30 -16
View File
@@ -152,6 +152,7 @@ Public Class GridCut
EgtDraw() EgtDraw()
End Sub End Sub
Friend Sub GridCut_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded Friend Sub GridCut_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
' Salvo i dati correnti ' Salvo i dati correnti
WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_DEPTH, DoubleToString( m_dDepth, 2), m_MainWindow.GetIniFile()) WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_DEPTH, DoubleToString( m_dDepth, 2), m_MainWindow.GetIniFile())
@@ -185,6 +186,11 @@ Public Class GridCut
m_bActive = False m_bActive = False
End Sub End Sub
Public Sub SetEnableParam(ByVal bIsSaw As Boolean)
' se macchina solo WaterJet Disabilito/Nascondo parametri della lama
DepthTxBx.IsEnabled = bIsSaw
End Sub
Private Sub UpdateSimulOkBtn() Private Sub UpdateSimulOkBtn()
If m_bCutOk Then If m_bCutOk Then
SimulBtn.IsEnabled = True SimulBtn.IsEnabled = True
@@ -242,6 +248,12 @@ Public Class GridCut
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizone lama o laser ' Se acquisizone lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
@@ -256,12 +268,12 @@ Public Class GridCut
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama ' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
End If End If
@@ -285,10 +297,8 @@ Public Class GridCut
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP1Ok = True m_bPointP1Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Disegno il taglio ' Disegno il taglio
@@ -317,6 +327,12 @@ Public Class GridCut
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizone lama o laser ' Se acquisizone lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
@@ -331,12 +347,12 @@ Public Class GridCut
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama ' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
End If End If
@@ -358,10 +374,8 @@ Public Class GridCut
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP2Ok = True m_bPointP2Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Se il secondo punto non coincide con il primo, disegno il taglio ' Se il secondo punto non coincide con il primo, disegno il taglio
+34 -18
View File
@@ -213,6 +213,10 @@ Public Class MultipleCut
m_bActive = False m_bActive = False
End Sub End Sub
Public Sub SetEnableParam(ByVal bIsSaw As Boolean)
DepthTxBx.IsEnabled = bIsSaw
End Sub
Private Sub UpdateSimulOkBtn() Private Sub UpdateSimulOkBtn()
If m_bCutOk Then If m_bCutOk Then
SimulBtn.IsEnabled = True SimulBtn.IsEnabled = True
@@ -270,6 +274,12 @@ Public Class MultipleCut
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizone lama o laser ' Se acquisizone lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
@@ -284,12 +294,14 @@ Public Class MultipleCut
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama
' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
End If End If
@@ -312,10 +324,9 @@ Public Class MultipleCut
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP1Ok = True m_bPointP1Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Disegno il taglio ' Disegno il taglio
CreateMultipleCut() CreateMultipleCut()
@@ -343,6 +354,12 @@ Public Class MultipleCut
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizone lama o laser ' Se acquisizone lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
@@ -357,12 +374,12 @@ Public Class MultipleCut
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama ' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
End If End If
@@ -383,10 +400,9 @@ Public Class MultipleCut
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP2Ok = True m_bPointP2Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Se il secondo punto non coincide con il primo, disegno il taglio ' Se il secondo punto non coincide con il primo, disegno il taglio
+43 -19
View File
@@ -137,6 +137,9 @@ Public Class SingleCutUC
Point2Btn.IsEnabled = False Point2Btn.IsEnabled = False
' Deseleziono bottone primo punto ' Deseleziono bottone primo punto
Point1Btn.IsChecked = False Point1Btn.IsChecked = False
' la visualizzazione dei comandi è gestira dalla DirectCutPageUC richiamando la funzione ReloadParam
' Aggiorno visualizzazione ' Aggiorno visualizzazione
EgtDraw() EgtDraw()
End Sub End Sub
@@ -172,6 +175,12 @@ Public Class SingleCutUC
m_bActive = False m_bActive = False
End Sub End Sub
Public Sub SetEnableParam(ByVal bIsSaw As Boolean)
' se macchina solo WaterJet Disabilito/Nascondo parametri della lama
DepthTxBx.IsEnabled = bIsSaw
SawThChBx.IsEnabled = bIsSaw
End Sub
Private Sub UpdateSimulOkBtn() Private Sub UpdateSimulOkBtn()
If m_bCutOk Then If m_bCutOk Then
SimulBtn.IsEnabled = True SimulBtn.IsEnabled = True
@@ -229,6 +238,12 @@ Public Class SingleCutUC
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizione lama o laser ' Se acquisizione lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
' Recupero la posizione macchina ' Recupero la posizione macchina
@@ -242,12 +257,12 @@ Public Class SingleCutUC
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama ' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
End If End If
@@ -271,10 +286,9 @@ Public Class SingleCutUC
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP1Ok = True m_bPointP1Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Disegno il taglio ' Disegno il taglio
@@ -303,6 +317,12 @@ Public Class SingleCutUC
' Verifico configurazione tavola e grezzo ' Verifico configurazione tavola e grezzo
If Not m_bRawOk Then Return If Not m_bRawOk Then Return
' Recupero dati utensile e testa corrente
Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Se acquisizone lama o laser ' Se acquisizone lama o laser
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
' Recupero la posizione macchina ' Recupero la posizione macchina
@@ -316,12 +336,14 @@ Public Class SingleCutUC
If Not EgtSetCalcTool("", "H3", 1) Then Return If Not EgtSetCalcTool("", "H3", 1) Then Return
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Altrimenti da lama
' Altrimenti da lama
Else Else
' Imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return EgtSetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
End If End If
@@ -343,10 +365,8 @@ Public Class SingleCutUC
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri)) m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
m_bPointP2Ok = True m_bPointP2Ok = True
' Ricavo dati lama corrente ' Reimposto eventuale precedente utensile
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw EgtSetCalcTool(sTool, sHead, nExit)
' Imposto la lama corrente
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
End If End If
' Se il secondo punto non coincide con il primo, disegno il taglio ' Se il secondo punto non coincide con il primo, disegno il taglio
@@ -559,9 +579,13 @@ Public Class SingleCutUC
Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z
' Recupero spessore lama corrente ' Recupero spessore lama corrente
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
Dim sSawing As String = m_MainWindow.m_CurrentMachine.sCurrSawing
EgtTdbSetCurrTool(sSaw) EgtTdbSetCurrTool(sSaw)
Dim dThick As Double = 0 Dim dThick As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick) ' se è impostata una lavorazione di lama
If Not String.IsNullOrEmpty(sSawing) Then
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
End If
' Rimuovo eventuale vecchio pezzo per taglio diretto ' Rimuovo eventuale vecchio pezzo per taglio diretto
EraseDirectCutPart() EraseDirectCutPart()
' Disattivo eventuali lavorazioni presenti ' Disattivo eventuali lavorazioni presenti
+4 -22
View File
@@ -281,32 +281,14 @@ Public Class AlzFrontUC
' restituisce vero se il lato possiede delle info legate al sideangle ' restituisce vero se il lato possiede delle info legate al sideangle
Private Function VerifyIsThereSideAngle(nCurrLine As Integer) As Boolean Private Function VerifyIsThereSideAngle(nCurrLine As Integer) As Boolean
Dim sInfoSideAngle As String = String.Empty Dim dSideAngle As Double
EgtGetInfo(nCurrLine, INFO_SIDE_ANGLE, sInfoSideAngle) return EgtGetInfo(nCurrLine, INFO_SIDE_ANGLE, dSideAngle)
If Not String.IsNullOrWhiteSpace(sInfoSideAngle) Or Not String.IsNullOrEmpty(sInfoSideAngle) Then
' verifico che il dato salvato sia un double
Try
Dim dSideAngle As Double = 0
StringToDouble(sInfoSideAngle, dSideAngle)
If dSideAngle <> 0 Then
Return True
End If
Catch ex As Exception
End Try
End If
Return False
End Function End Function
' restituisce vero se il lato possiede delle info legate alle alette ' restituisce vero se il lato possiede delle info legate alle alette
Private Function VerifyIsThereAlzFront(nCurrLine As Integer) As Boolean Private Function VerifyIsThereAlzFront(nCurrLine As Integer) As Boolean
Dim sInfoAlzFront As String = String.Empty Dim nAlzFront As Integer
EgtGetInfo(nCurrLine, INFO_ALZFRONT, sInfoAlzFront) return EgtGetInfo(nCurrLine, INFO_ALZFRONT, nAlzFront) AndAlso nAlzFront <> 0
If Not String.IsNullOrWhiteSpace(sInfoAlzFront) Or Not String.IsNullOrEmpty(sInfoAlzFront) Then
If sInfoAlzFront.Trim <> "0" Then
Return True
End If
End If
Return False
End Function End Function
' approvo la costruzione dell'aletta sul lato indicato ' approvo la costruzione dell'aletta sul lato indicato
+1 -1
View File
@@ -159,7 +159,7 @@ Module SideAngle
Return True Return True
End Function End Function
Private Function WriteSideAngleOnLoop(LoopId As Integer, TextLayId As Integer) As Boolean Friend Function WriteSideAngleOnLoop(LoopId As Integer, TextLayId As Integer) As Boolean
' Verifiche ' Verifiche
If LoopId = GDB_ID.NULL Or TextLayId = GDB_ID.NULL Then Return False If LoopId = GDB_ID.NULL Or TextLayId = GDB_ID.NULL Then Return False
' Calcolo dimensione ingombro Loop ' Calcolo dimensione ingombro Loop
+4
View File
@@ -755,6 +755,10 @@ Public Class SideAngleUC
vJoint.Add(False) vJoint.Add(False)
End If End If
Next Next
' se non riesco a generare un elenco allora esco
If vJoint.Count < 1 Then Return
If vJoint(0) And vJoint(vJoint.Count - 1) Then If vJoint(0) And vJoint(vJoint.Count - 1) Then
bJointStart = True bJointStart = True
End If End If
+1
View File
@@ -809,6 +809,7 @@
<Image Source="{DynamicResource SawProbeImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/> <Image Source="{DynamicResource SawProbeImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>
</Button> </Button>
<TextBlock Name="UseLaserOriginTxBl" Grid.Column="1" <TextBlock Name="UseLaserOriginTxBl" Grid.Column="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" /> Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="UseLaserOriginChBx" Style="{DynamicResource OmagCut_CheckBox_Single}" Grid.Column="2" <CheckBox Name="UseLaserOriginChBx" Style="{DynamicResource OmagCut_CheckBox_Single}" Grid.Column="2"
+29 -7
View File
@@ -119,6 +119,14 @@ Public Class AlarmsPageUC
' Variabile che accorcia il riferimento alla macchina corrente ' Variabile che accorcia il riferimento alla macchina corrente
m_CurrentMachine = m_MainWindow.m_CurrentMachine m_CurrentMachine = m_MainWindow.m_CurrentMachine
' in assenza dell'uscita H1 nascondo i parametri lama
If EgtGetHeadId("H1") = GDB_ID.NULL Then
SawGpBx.Visibility = Visibility.Hidden
TopMillGpBx.Visibility = Visibility.Hidden
CurrSawTxBl.Visibility = Visibility.Hidden
CurrSawCmBx.Visibility = Visibility.Hidden
End If
' Verifico la configurazione della macchina per creare i combobox ' Verifico la configurazione della macchina per creare i combobox
Select Case m_CurrentMachine.MountedToolConfig Select Case m_CurrentMachine.MountedToolConfig
Case CurrentMachine.MountedToolConfigs.SAW Case CurrentMachine.MountedToolConfigs.SAW
@@ -133,7 +141,7 @@ Public Class AlarmsPageUC
' Disattivo il gruppo dei parametri fori ' Disattivo il gruppo dei parametri fori
HolesGpBx.Visibility = Windows.Visibility.Hidden HolesGpBx.Visibility = Windows.Visibility.Hidden
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
'Non faccio alcunchè 'Non faccio alcunchè
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER
'Da implementare 'Da implementare
End Select End Select
@@ -152,7 +160,7 @@ Public Class AlarmsPageUC
' Se non previsti tagli waterjet, disabilito relativo box ' Se non previsti tagli waterjet, disabilito relativo box
If Not m_CurrentMachine.bWaterJetting Then If Not m_CurrentMachine.bWaterJetting Then
WJsParamGpBx.Visibility = Visibility.Hidden WjsParamGpBx.Visibility = Visibility.Hidden
End If End If
' Abilitazione box per contorni grezzo da foto ' Abilitazione box per contorni grezzo da foto
@@ -165,7 +173,7 @@ Public Class AlarmsPageUC
End If End If
' Abilitazione Feed ridotta su inizio/fine tagli ' Abilitazione Feed ridotta su inizio/fine tagli
If m_CurrentMachine.bFsevEnable Then If m_CurrentMachine.bFsevEnable And EgtGetHeadId("H1") <> GDB_ID.NULL Then
CutFredGpBx.Visibility = Windows.Visibility.Visible CutFredGpBx.Visibility = Windows.Visibility.Visible
Else Else
CutFredGpBx.Visibility = Windows.Visibility.Hidden CutFredGpBx.Visibility = Windows.Visibility.Hidden
@@ -180,8 +188,8 @@ Public Class AlarmsPageUC
m_bFirst = False m_bFirst = False
End If End If
' Aggiorno lista delle lame per pagina macchina in cui scegliere quella corrente ' Aggiorno lista delle lame per pagina macchina in cui scegliere quella corrente
CreateToolList(MCH_TF.SAWBLADE, m_SawList) CreateToolList(MCH_TF.SAWBLADE, m_SawList)
' Seleziono lama corrente ' Seleziono lama corrente
CurrSawCmBx.SelectedItem = m_CurrentMachine.sCurrSaw CurrSawCmBx.SelectedItem = m_CurrentMachine.sCurrSaw
@@ -429,10 +437,24 @@ Public Class AlarmsPageUC
End If End If
If m_CurrentMachine.sCurrWaterJetting <> String.Empty Then If m_CurrentMachine.sCurrWaterJetting <> String.Empty Then
CurrWaterJettingTxBx.Text = m_CurrentMachine.sCurrWaterJetting CurrWaterJettingTxBx.Text = m_CurrentMachine.sCurrWaterJetting
CurrWaterJettingQualityTxBx.Text = m_CurrentMachine.sCurrWaterJettingQuality
CurrWaterJettingTxBl.Visibility = Windows.Visibility.Visible CurrWaterJettingTxBl.Visibility = Windows.Visibility.Visible
CurrWaterJettingTxBx.Visibility = Windows.Visibility.Visible CurrWaterJettingTxBx.Visibility = Windows.Visibility.Visible
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Visible If m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
CurrWaterJettingTxBx.SetValue(Grid.ColumnSpanProperty, 1)
CurrWaterJettingTxBx.SetValue(MarginProperty, New Thickness(CurrWaterJettingTxBx.Margin.Left,
CurrWaterJettingTxBx.Margin.Top,
5,
CurrWaterJettingTxBx.Margin.Bottom))
CurrWaterJettingQualityTxBx.Text = m_CurrentMachine.sCurrWaterJettingQuality
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Visible
Else
CurrWaterJettingTxBx.SetValue(Grid.ColumnSpanProperty, 2)
CurrWaterJettingTxBx.SetValue(MarginProperty, New Thickness(CurrWaterJettingTxBx.Margin.Left,
CurrWaterJettingTxBx.Margin.Top,
10,
CurrWaterJettingTxBx.Margin.Bottom))
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Collapsed
End If
Else Else
CurrWaterJettingTxBl.Visibility = Windows.Visibility.Hidden CurrWaterJettingTxBl.Visibility = Windows.Visibility.Hidden
CurrWaterJettingTxBx.Visibility = Windows.Visibility.Hidden CurrWaterJettingTxBx.Visibility = Windows.Visibility.Hidden
+14 -4
View File
@@ -77,6 +77,9 @@ Public Class CurrentMachine
Private m_bPolishingWheel As Boolean = False Private m_bPolishingWheel As Boolean = False
Private m_bWaterJet As Boolean = False Private m_bWaterJet As Boolean = False
' Abilitazione DB WaterJet
Private m_bFromDBWaterJet As Boolean = False
' Flag per visualizzazione TcPos, Testa/uscita e Note utente ' Flag per visualizzazione TcPos, Testa/uscita e Note utente
Private m_nShowToolChanger As Integer = 0 ' 0=no, 1=tutti utensili, 2=solo lame Private m_nShowToolChanger As Integer = 0 ' 0=no, 1=tutti utensili, 2=solo lame
Private m_bShowHeadExit As Boolean = False Private m_bShowHeadExit As Boolean = False
@@ -436,6 +439,12 @@ Public Class CurrentMachine
End Get End Get
End Property End Property
Friend ReadOnly Property bFromDBWaterJet As Boolean
Get
Return m_bFromDBWaterJet
End Get
End Property
Friend ReadOnly Property ShowToolChanger As Integer Friend ReadOnly Property ShowToolChanger As Integer
Get Get
Return m_nShowToolChanger Return m_nShowToolChanger
@@ -1006,7 +1015,7 @@ Public Class CurrentMachine
End Get End Get
Set(value As Material) Set(value As Material)
Dim CurrMatId As String = If(Not IsNothing(value), value.nId.ToString, "") Dim CurrMatId As String = If(Not IsNothing(value), value.nId.ToString, "")
If bWaterJet Then If bWaterJet And bFromDBWaterJet Then
WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, CurrMatId & If(Not IsNothing(value), "." & value.SubId, ""), sMachIniFile) WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, CurrMatId & If(Not IsNothing(value), "." & value.SubId, ""), sMachIniFile)
Else Else
WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, CurrMatId, sMachIniFile) WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, CurrMatId, sMachIniFile)
@@ -1108,6 +1117,8 @@ Public Class CurrentMachine
' waterjet ' waterjet
m_bWaterJet = (GetPrivateProfileInt(S_TOOLS, K_WATERJET, 0, sMachIniFile) > 0) And m_bWaterJet = (GetPrivateProfileInt(S_TOOLS, K_WATERJET, 0, sMachIniFile) > 0) And
m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.ENABLE_WJ) m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.ENABLE_WJ)
' Leggo abilitazione DB WaterJet
m_bFromDBWaterJet = (GetPrivateProfileInt(S_MATERIALS, K_FROMDBWATERJET, 0, sMachIniFile) > 0)
' Leggo abilitazione visualizzazione TcPos, Head/exit e Note utente ' Leggo abilitazione visualizzazione TcPos, Head/exit e Note utente
m_nShowToolChanger = GetPrivateProfileInt(S_TOOLS, K_SHOWTOOLCHANGER, 0, sMachIniFile) m_nShowToolChanger = GetPrivateProfileInt(S_TOOLS, K_SHOWTOOLCHANGER, 0, sMachIniFile)
m_bShowHeadExit = (GetPrivateProfileInt(S_TOOLS, K_SHOWHEADEXIT, 0, sMachIniFile) > 0) m_bShowHeadExit = (GetPrivateProfileInt(S_TOOLS, K_SHOWHEADEXIT, 0, sMachIniFile) > 0)
@@ -1247,7 +1258,7 @@ Public Class CurrentMachine
Dim Material As Material = Nothing Dim Material As Material = Nothing
Dim nIndex As Integer = 1 Dim nIndex As Integer = 1
If m_bWaterJet Then If m_bWaterJet And m_bFromDBWaterJet Then
LoadWJMaterial(True) LoadWJMaterial(True)
Else Else
While (GetPrivateProfileMaterial(S_MATERIALS, K_MATERIAL & nIndex, Material, sMachIniFile)) While (GetPrivateProfileMaterial(S_MATERIALS, K_MATERIAL & nIndex, Material, sMachIniFile))
@@ -1262,7 +1273,7 @@ Public Class CurrentMachine
' Leggo materiale correntemente attivo ' Leggo materiale correntemente attivo
Dim sCurrMatId As String = String.Empty Dim sCurrMatId As String = String.Empty
EgtUILib.GetPrivateProfileString(S_MATERIALS, K_CURRMATERIAL, "0", sCurrMatId, sMachIniFile) EgtUILib.GetPrivateProfileString(S_MATERIALS, K_CURRMATERIAL, "0", sCurrMatId, sMachIniFile)
If bWaterJet Then If bWaterJet And bFromDBWaterJet Then
Dim sCurrMatIds As String() Dim sCurrMatIds As String()
sCurrMatIds = sCurrMatId.Split("."c) sCurrMatIds = sCurrMatId.Split("."c)
If sCurrMatIds.Length > 1 Then If sCurrMatIds.Length > 1 Then
@@ -1303,7 +1314,6 @@ Public Class CurrentMachine
Local_MaterialList = EgtWPFLib5.WaterjetDbWindowVM.LoadWjMaterials(sFilePath) Local_MaterialList = EgtWPFLib5.WaterjetDbWindowVM.LoadWjMaterials(sFilePath)
' definisco la lista delle qualità (solo se è vuota) ' definisco la lista delle qualità (solo se è vuota)
If m_Qualities.Count < 1 Then If m_Qualities.Count < 1 Then
m_Qualities.Add("")
m_Qualities.Add("Q1") m_Qualities.Add("Q1")
m_Qualities.Add("Q2") m_Qualities.Add("Q2")
m_Qualities.Add("Q3") m_Qualities.Add("Q3")
+1 -1
View File
@@ -64,7 +64,7 @@ Public Class MachinePageUC
PolishingsBtn.IsEnabled = False PolishingsBtn.IsEnabled = False
End If End If
If Not m_MainWindow.m_CurrentMachine.bWaterJet Then If Not m_MainWindow.m_CurrentMachine.bWaterJet Or Not m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
WaterJetBtn.IsEnabled = False WaterJetBtn.IsEnabled = False
End If End If
+39 -34
View File
@@ -552,12 +552,15 @@ Public Class MachiningDbPageUC
HeadSideCmBx.SelectedIndex = ToolInt - 1 HeadSideCmBx.SelectedIndex = ToolInt - 1
EgtMdbGetCurrMachiningParam(MCH_MP.LEADINTYPE, ToolInt) EgtMdbGetCurrMachiningParam(MCH_MP.LEADINTYPE, ToolInt)
If LeadInTypeCmBx.Items.Count > 0 Then If LeadInTypeCmBx.Items.Count > 0 Then
LeadInTypeCmBx.SelectedItem = LeadInTypeCmBx.Items(0) LeadInTypeCmBx.SelectedItem = LeadInTypeCmBx.Items(0)
Else Else
LeadInTypeCmBx.SelectedItem = Nothing LeadInTypeCmBx.SelectedItem = Nothing
End If End If
For Each LInType As IdNameStruct In LeadInTypeCmBx.Items For Each LInType As IdNameStruct In LeadInTypeCmBx.Items
If ToolInt = LInType.Id Then LeadInTypeCmBx.SelectedItem = LInType If ToolInt = LInType.Id Then
LeadInTypeCmBx.SelectedItem = LInType
Exit For
End If
Next Next
EgtMdbGetCurrMachiningParam(MCH_MP.EXTLINKTYPE, ToolInt) EgtMdbGetCurrMachiningParam(MCH_MP.EXTLINKTYPE, ToolInt)
ExtLinkTypeCmBx.SelectedIndex = ToolInt ExtLinkTypeCmBx.SelectedIndex = ToolInt
@@ -705,7 +708,7 @@ Public Class MachiningDbPageUC
' Lista materiali ' Lista materiali
m_MaterialsList.Clear() m_MaterialsList.Clear()
For Each Material As Material In m_MainWindow.m_CurrentMachine.Materials For Each Material As Material In m_MainWindow.m_CurrentMachine.Materials
If m_MainWindow.m_CurrentMachine.bWaterJet Then If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName, Material.SubId)) m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName, Material.SubId))
Else Else
m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName)) m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName))
@@ -720,7 +723,7 @@ Public Class MachiningDbPageUC
Dim SubParam() As String = Param(0).Split(".".ToCharArray) Dim SubParam() As String = Param(0).Split(".".ToCharArray)
Dim nParId As Integer = 0 Dim nParId As Integer = 0
Dim nSubParId As Integer = 0 Dim nSubParId As Integer = 0
If m_MainWindow.m_CurrentMachine.bWaterJet Then If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
If StringToInt(SubParam(0), nParId) AndAlso nParId = Material.nId AndAlso SubParam.Count > 1 AndAlso If StringToInt(SubParam(0), nParId) AndAlso nParId = Material.nId AndAlso SubParam.Count > 1 AndAlso
StringToInt(SubParam(1), nSubParId) AndAlso nSubParId = Material.nSubId Then StringToInt(SubParam(1), nSubParId) AndAlso nSubParId = Material.nSubId Then
@@ -819,13 +822,13 @@ Public Class MachiningDbPageUC
' Parmetri nascosti di svuotatura ' Parmetri nascosti di svuotatura
If nMachiningType = MCH_MY.POCKETING Then If nMachiningType = MCH_MY.POCKETING Then
EgtMdbSetCurrMachiningParam(MCH_MP.SUBTYPE, MCH_POCK_SUB.SPIRALOUT) EgtMdbSetCurrMachiningParam(MCH_MP.SUBTYPE, MCH_POCK_SUB.SPIRALOUT)
EgtMdbSetCurrMachiningParam( MCH_MP.LEADINTYPE, MCH_POCK_LI.HELIX) ' EgtMdbSetCurrMachiningParam( MCH_MP.LEADINTYPE, MCH_POCK_LI.HELIX)
Dim dToolDiam As Double = 100 Dim dToolDiam As Double = 100
If Not IsNothing(ToolCmBx.SelectedItem) Then If Not IsNothing(ToolCmBx.SelectedItem) Then
EgtTdbSetCurrTool( ToolCmBx.SelectedItem.ToString()) EgtTdbSetCurrTool( ToolCmBx.SelectedItem.ToString())
EgtTdbGetCurrToolParam( MCH_TP.DIAM, dToolDiam) EgtTdbGetCurrToolParam( MCH_TP.DIAM, dToolDiam)
End If End If
EgtMdbSetCurrMachiningParam( MCH_MP.LITANG, 0.495 * dToolDiam) EgtMdbSetCurrMachiningParam(MCH_MP.LITANG, 0.99 * dToolDiam)
EgtMdbSetCurrMachiningParam( MCH_MP.LIELEV, 2.0) EgtMdbSetCurrMachiningParam( MCH_MP.LIELEV, 2.0)
End If End If
' Parametri WaterJetting ' Parametri WaterJetting
@@ -894,7 +897,7 @@ Public Class MachiningDbPageUC
' Scrivo stringa materiali da lista ' Scrivo stringa materiali da lista
Dim sMaterialString As String = String.Empty Dim sMaterialString As String = String.Empty
For Each Material As MachiningMaterial In m_MaterialsList For Each Material As MachiningMaterial In m_MaterialsList
If m_MainWindow.m_CurrentMachine.bWaterJet Then If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
If Material.bIsActive Then If Material.bIsActive Then
sMaterialString += Material.nId.ToString & "." & Material.nSubId.ToString & "," & DoubleToString(Material.dMinThickness, 0) & "," & DoubleToString(Material.dMaxThickness, 0) & ";" sMaterialString += Material.nId.ToString & "." & Material.nSubId.ToString & "," & DoubleToString(Material.dMinThickness, 0) & "," & DoubleToString(Material.dMaxThickness, 0) & ";"
End If End If
@@ -1138,30 +1141,26 @@ Public Class MachiningDbPageUC
' Definizione della grid TypeGrd con la giusta altezza e numero di righe ' Definizione della grid TypeGrd con la giusta altezza e numero di righe
Dim RowNum As Integer = TypeGrd.RowDefinitions.Count Dim RowNum As Integer = TypeGrd.RowDefinitions.Count
If RowNum > 2 Then If RowNum > 2 Then
' elimino eventuali righe in eccesso
For Index As Integer = RowNum - 1 To 2 Step -1 For Index As Integer = RowNum - 1 To 2 Step -1
TypeGrd.RowDefinitions.RemoveAt(Index) TypeGrd.RowDefinitions.RemoveAt(Index)
Next Next
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 3)
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
TypeBrd.SetValue(Grid.RowProperty, 12)
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
ElseIf RowNum < 2 Then ElseIf RowNum < 2 Then
' costruiso una riga in più da inserire ' costruiso una riga in più da inserire
Dim Row As New RowDefinition Dim Row As New RowDefinition
TypeGrd.RowDefinitions.Add(Row) TypeGrd.RowDefinitions.Add(Row)
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 3)
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
TypeBrd.SetValue(Grid.RowProperty, 12)
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
End If End If
LeadInTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 0)
LeadInTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
TypeBrd.SetValue(Grid.RowProperty, 12)
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
LeadInTypeTxBl.Visibility = Windows.Visibility.Visible LeadInTypeTxBl.Visibility = Windows.Visibility.Visible
LeadInTypeCmBx.Visibility = Windows.Visibility.Visible LeadInTypeCmBx.Visibility = Windows.Visibility.Visible
ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden
@@ -1779,7 +1778,7 @@ Public Class MachiningDbPageUC
StepTypeTxBl.Visibility = Windows.Visibility.Hidden StepTypeTxBl.Visibility = Windows.Visibility.Hidden
StepTypeCmBx.Visibility = Windows.Visibility.Hidden StepTypeCmBx.Visibility = Windows.Visibility.Hidden
SideBrd.SetValue(Grid.RowProperty, 9) SideBrd.SetValue(Grid.RowProperty, 9)
SideBrd.Visibility = Windows.Visibility.Visible SideBrd.Visibility = Windows.Visibility.Hidden
WorkSideTxBl.Visibility = Windows.Visibility.Hidden WorkSideTxBl.Visibility = Windows.Visibility.Hidden
WorkSideCmBx.Visibility = Windows.Visibility.Hidden WorkSideCmBx.Visibility = Windows.Visibility.Hidden
HeadSideTxBl.Visibility = Windows.Visibility.Hidden HeadSideTxBl.Visibility = Windows.Visibility.Hidden
@@ -1791,15 +1790,22 @@ Public Class MachiningDbPageUC
For Index As Integer = RowNum - 1 To 2 Step -1 For Index As Integer = RowNum - 1 To 2 Step -1
TypeGrd.RowDefinitions.RemoveAt(Index) TypeGrd.RowDefinitions.RemoveAt(Index)
Next Next
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 2) ElseIf RowNum < 2 Then
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 3) ' costruiso una riga in più da inserire
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1) Dim Row As New RowDefinition
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2) TypeGrd.RowDefinitions.Add(Row)
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
TypeBrd.SetValue(Grid.RowProperty, 12)
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
End If End If
LeadInTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 0)
LeadInTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
TypeBrd.SetValue(Grid.RowProperty, 12)
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
LeadInTypeTxBl.Visibility = Windows.Visibility.Visible LeadInTypeTxBl.Visibility = Windows.Visibility.Visible
LeadInTypeCmBx.Visibility = Windows.Visibility.Visible LeadInTypeCmBx.Visibility = Windows.Visibility.Visible
ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden
@@ -2285,7 +2291,7 @@ Public Class MachiningDbPageUC
Private Sub MaxThicknessTxBx_EgtClosed(sender As Object, e As EventArgs) Handles MaxThicknessTxBx.EgtClosed Private Sub MaxThicknessTxBx_EgtClosed(sender As Object, e As EventArgs) Handles MaxThicknessTxBx.EgtClosed
Dim SelectedMaterial As MachiningMaterial = MaterialsList.SelectedItem Dim SelectedMaterial As MachiningMaterial = MaterialsList.SelectedItem
Dim dMaxThick As Double = 0 Dim dMaxThick As Double = 0
If m_MainWindow.m_CurrentMachine.bWaterJet Then If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
' solo per water jet controllo lo spessore massimo ammissibile ' solo per water jet controllo lo spessore massimo ammissibile
dMaxThick = m_MainWindow.m_CurrentMachine.GetMaxThicknessCurrMaterial(SelectedMaterial.Name) dMaxThick = m_MainWindow.m_CurrentMachine.GetMaxThicknessCurrMaterial(SelectedMaterial.Name)
Dim dVal As Double Dim dVal As Double
@@ -2369,7 +2375,6 @@ Public Class MachiningDbPageUC
Case MCH_MY.POCKETING Case MCH_MY.POCKETING
LeadInTypeCmBx.ItemsSource = New ObservableCollection(Of IdNameStruct)( LeadInTypeCmBx.ItemsSource = New ObservableCollection(Of IdNameStruct)(
{New IdNameStruct(MCH_POCK_LI.NONE, EgtMsg(MSG_COMBOBOXPARAM + 42)), {New IdNameStruct(MCH_POCK_LI.NONE, EgtMsg(MSG_COMBOBOXPARAM + 42)),
New IdNameStruct(MCH_POCK_LI.GLIDE, EgtMsg(MSG_COMBOBOXPARAM + 48)),
New IdNameStruct(MCH_POCK_LI.ZIGZAG, EgtMsg(MSG_COMBOBOXPARAM + 38)), New IdNameStruct(MCH_POCK_LI.ZIGZAG, EgtMsg(MSG_COMBOBOXPARAM + 38)),
New IdNameStruct(MCH_POCK_LI.HELIX, EgtMsg(MSG_COMBOBOXPARAM + 49))}) New IdNameStruct(MCH_POCK_LI.HELIX, EgtMsg(MSG_COMBOBOXPARAM + 49))})
LeadOutTypeCmBx.ItemsSource = New ObservableCollection(Of IdNameStruct)( LeadOutTypeCmBx.ItemsSource = New ObservableCollection(Of IdNameStruct)(
+21 -4
View File
@@ -323,8 +323,8 @@ Class MainWindow
' Verifico abilitazione nesting automatico ' Verifico abilitazione nesting automatico
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey) m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
' Recupero opzioni della chiave ' Recupero opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2312, 1, m_nKeyLevel) And Dim bKey As Boolean = EgtGetKeyLevel(9423, 2401, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2312, 1, m_nKeyOptions) EgtGetKeyOptions(9423, 2401, 1, m_nKeyOptions)
' Verifico abilitazione prodotto ' Verifico abilitazione prodotto
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE) Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
' Inizializzazione generale di EgtInterface ' Inizializzazione generale di EgtInterface
@@ -569,6 +569,8 @@ Class MainWindow
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
' disbilito Test ' disbilito Test
TestOff() TestOff()
' disabilito DragRettangle
DragRettangleOff()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = True WorkInProgressBtn.IsChecked = True
@@ -625,6 +627,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()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False WorkInProgressBtn.IsChecked = False
@@ -678,6 +681,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()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False WorkInProgressBtn.IsChecked = False
@@ -730,6 +734,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()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False WorkInProgressBtn.IsChecked = False
@@ -783,6 +788,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()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False WorkInProgressBtn.IsChecked = False
@@ -831,6 +837,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()
Select Case m_ActivePage Select Case m_ActivePage
Case Pages.WorkInProgress Case Pages.WorkInProgress
WorkInProgressBtn.IsChecked = False WorkInProgressBtn.IsChecked = False
@@ -1139,7 +1146,8 @@ Class MainWindow
Dim nPrjType As Integer = m_CurrentProjectPageUC.GetCurrentProjectType() Dim nPrjType As Integer = m_CurrentProjectPageUC.GetCurrentProjectType()
' Aggiorno interfaccia ' Aggiorno interfaccia
CadCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FRAMES) CadCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FRAMES)
FrameCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FLATS) FrameCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FLATS) AndAlso (EgtGetHeadId("H1") <> GDB_ID.NULL)
' DirectCutBtn.IsEnabled = (EgtGetHeadId("H1") <> GDB_ID.NULL)
End Sub End Sub
' Nomi dei file per OmagVIEW ' Nomi dei file per OmagVIEW
@@ -1884,8 +1892,17 @@ Class MainWindow
' deseleziono gli oggetti e spengo il bottone ' deseleziono gli oggetti e spengo il bottone
EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv) EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv)
EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv) EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
EgtResetMark(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
m_CadCutPageUC.m_ProjectMgr.TestBtn.IsChecked = False m_CadCutPageUC.m_ProjectMgr.TestBtn.IsChecked = False
m_CurrentProjectPageUC.m_bSelectCurv = False Me.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
End Sub
' spegne il comando per la mofica dei rettangoli
Public Sub DragRettangleOff()
m_CadCutPageUC.m_NestPage.DragRettanleBtn.IsChecked = False
Me.m_CadCutPageUC.m_NestPage.m_bIsCheckedDragRettangle = False
ShowParkedParts()
End Sub End Sub
End Class End Class
+3 -3
View File
@@ -22,7 +22,7 @@ Imports System.Windows
#End If #End If
<Assembly: AssemblyCompany("EgalTech s.r.l.")> <Assembly: AssemblyCompany("EgalTech s.r.l.")>
<Assembly: AssemblyProduct("OmagCUT")> <Assembly: AssemblyProduct("OmagCUT")>
<Assembly: AssemblyCopyright("Copyright © 2015-2021 by EgalTech s.r.l.")> <Assembly: AssemblyCopyright("Copyright © 2015-2022 by EgalTech s.r.l.")>
<Assembly: AssemblyTrademark("")> <Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)> <Assembly: ComVisible(False)>
@@ -62,5 +62,5 @@ Imports System.Windows
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.3.12.1")> <Assembly: AssemblyVersion("2.4.1.3")>
<Assembly: AssemblyFileVersion("2.3.12.1")> <Assembly: AssemblyFileVersion("2.4.1.3")>
+3
View File
@@ -1238,6 +1238,9 @@
<ItemGroup> <ItemGroup>
<Resource Include="Resources\NewIcons\Acquisisci-P.png" /> <Resource Include="Resources\NewIcons\Acquisisci-P.png" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\Drag_Rettangle.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup> <PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe <PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
+1
View File
@@ -105,6 +105,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>
<!--Machine--> <!--Machine-->
<BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage> <BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage>
+9
View File
@@ -173,6 +173,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>
<!--Machine--> <!--Machine-->
<BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage> <BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage>
@@ -1209,6 +1210,14 @@
<Setter Property="Width" Value="80"/> <Setter Property="Width" Value="80"/>
<Setter Property="Keyboard" Value="Calculator"/> <Setter Property="Keyboard" Value="Calculator"/>
<Setter Property="KeyboardDimension" Value="300"/> <Setter Property="KeyboardDimension" Value="300"/>
<Setter Property="IsHitTestVisible" Value="False" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ListBoxItem}, AncestorLevel=1}}"
Value="True">
<Setter Property="IsHitTestVisible" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style> </Style>
<Style x:Key="OmagCut_MachToolCalculatorTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_CalculatorTextBox}"> <Style x:Key="OmagCut_MachToolCalculatorTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_CalculatorTextBox}">
+1 -1
View File
@@ -18,7 +18,7 @@ Class CicloStartWD
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2 Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2 Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
' imopposto il messaggio di avvio ' imopposto il messaggio di avvio
CicloStartTxbl.Text = "Avvio Ciclo-Start" CicloStartTxbl.Text = EgtMsg(91130) ' Esegui programma?
End Sub End Sub
' creo un progetto nuovo ' creo un progetto nuovo
+5 -9
View File
@@ -6,7 +6,6 @@ Imports EgtWPFLib5
Public Class CurrentProjectPageUC Public Class CurrentProjectPageUC
' Dichiarazione eventi ' Dichiarazione eventi
Friend Event OnMouseDownSceneSelCurv(sender As Object, e As System.Windows.Forms.MouseEventArgs)
Friend Event OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Friend Event OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
Friend Event OnMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Friend Event OnMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
Friend Event OnMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Friend Event OnMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
@@ -24,8 +23,8 @@ Public Class CurrentProjectPageUC
' Dati del grezzo ' Dati del grezzo
Friend m_nRawId As Integer = GDB_ID.NULL Friend m_nRawId As Integer = GDB_ID.NULL
Friend m_dRawHeight As Double Friend m_dRawHeight As Double
' pagina impostata per selezionare una lavorazione '' Flag per impostata per selezionare di una curva
Friend m_bSelectCurv As Boolean = False 'Friend m_bSelectCurv As Boolean = False
' Costanti tipo progetto ' Costanti tipo progetto
Friend Enum PRJ_TYPE As Integer Friend Enum PRJ_TYPE As Integer
EMPTY = 0 EMPTY = 0
@@ -328,12 +327,7 @@ Public Class CurrentProjectPageUC
End Sub End Sub
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseDownScene Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseDownScene
If m_bSelectCurv Then RaiseEvent OnMouseDownScene(sender, e)
RaiseEvent OnMouseDownSceneSelCurv(sender, e)
Else
RaiseEvent OnMouseDownScene(sender, e)
End If
End Sub End Sub
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseMoveScene Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseMoveScene
@@ -622,6 +616,8 @@ Public Class CurrentProjectPageUC
File.Copy(sPhoto, sNewPhoto, True) File.Copy(sPhoto, sNewPhoto, True)
Catch ex As FileNotFoundException Catch ex As FileNotFoundException
' non è un problema ' non è un problema
Catch ex As DirectoryNotFoundException
' non è un problema
Catch ex As Exception Catch ex As Exception
Return False Return False
End Try End Try
+4 -4
View File
@@ -276,7 +276,7 @@ Public Class ProjectMgrUC
m_CurrProjPage.SetWarningMessage("Trial Version") m_CurrProjPage.SetWarningMessage("Trial Version")
#Else #Else
' se sono in modalità Test allora eseguo solo il posizionamento della lama ' se sono in modalità Test allora eseguo solo il posizionamento della lama
If m_CurrProjPage.m_bSelectCurv Then If m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv Then
' Verifico non sia versione Ufficio ' Verifico non sia versione Ufficio
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then
m_CurrProjPage.SetWarningMessage("Office Version") m_CurrProjPage.SetWarningMessage("Office Version")
@@ -336,7 +336,7 @@ Public Class ProjectMgrUC
' verifica assi lineari ' verifica assi lineari
EgtVerifyOutstroke(dX, dY, dZ, dC1, dB1, nStat) EgtVerifyOutstroke(dX, dY, dZ, dC1, dB1, nStat)
If nStat <> 0 Then If nStat <> 0 Then
vtDirT = - vtDirT vtDirT = -vtDirT
ptMid -= vtDirT * dThick ptMid -= vtDirT * dThick
EgtGetCalcAngles(vtDirT, Vector3d.Z_AX(), nStat, dC1, dB1, dC2, dB2) EgtGetCalcAngles(vtDirT, Vector3d.Z_AX(), nStat, dC1, dB1, dC2, dB2)
' calcolo la posizione degli assi lineari X, Y, Z ( correggere il punto ptMid.z sommando il raggio utensile) ' calcolo la posizione degli assi lineari X, Y, Z ( correggere il punto ptMid.z sommando il raggio utensile)
@@ -736,11 +736,11 @@ Public Class ProjectMgrUC
Private Sub TestBtn_Click(sender As Object, e As RoutedEventArgs) Handles TestBtn.Click Private Sub TestBtn_Click(sender As Object, e As RoutedEventArgs) Handles TestBtn.Click
If TestBtn.IsChecked Then If TestBtn.IsChecked Then
m_CurrProjPage.m_bSelectCurv = True m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = True
' deseleziono tutto ' deseleziono tutto
EgtDeselectAll() EgtDeselectAll()
Else Else
m_CurrProjPage.m_bSelectCurv = False m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv) EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv)
EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv) EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
End If End If
+27 -11
View File
@@ -60,6 +60,12 @@ Public Class ChooseMachining
Private Sub InitializeMachiningLists() Private Sub InitializeMachiningLists()
' in assenza dell'uscita H1 nascondo i parametri lama
If EgtGetHeadId("H1") = GDB_ID.NULL Then
CurrSawingTxBl.Visibility = Visibility.Hidden
CurrSawingCmBx.Visibility = Visibility.Hidden
End If
' -- TAGLIO -- ' -- TAGLIO --
CreateMachiningList(MCH_MY.SAWING, m_CurrentMachine.sCurrSaw, m_SawingList) CreateMachiningList(MCH_MY.SAWING, m_CurrentMachine.sCurrSaw, m_SawingList)
' aggiungo un campo vuoto ' aggiungo un campo vuoto
@@ -257,7 +263,7 @@ Public Class ChooseMachining
If SysNotes <> String.Empty Then If SysNotes <> String.Empty Then
Dim MachiningMaterials() = SysNotes.Split(";".ToCharArray) Dim MachiningMaterials() = SysNotes.Split(";".ToCharArray)
SysNotes = String.Empty SysNotes = String.Empty
If m_CurrentMachine.bWaterJet Then If m_CurrentMachine.bWaterJet And m_CurrentMachine.bFromDBWaterJet Then
For Each Material As Object In MachiningMaterials For Each Material As Object In MachiningMaterials
Dim Param() As String = Material.Split(",".ToCharArray) Dim Param() As String = Material.Split(",".ToCharArray)
Dim SubParam() As String = Param(0).Split(".".ToCharArray) Dim SubParam() As String = Param(0).Split(".".ToCharArray)
@@ -583,18 +589,24 @@ Public Class ChooseMachining
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica ' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrMillingCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJetting Then m_MachIsModified = True If CurrMillingCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJetting Then m_MachIsModified = True
End If End If
If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
CurrWJettingQualityCmBx.SelectedItem = m_CurrentMachine.sCurrWaterJettingQuality
End If
' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrWJettingQualityCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJettingQuality Then m_MachIsModified = True
End If
CurrWJettingQualityCmBx.Visibility = Windows.Visibility.Visible
CurrWJettingTxBl.Visibility = Windows.Visibility.Visible CurrWJettingTxBl.Visibility = Windows.Visibility.Visible
CurrWJettingCmBx.Visibility = Windows.Visibility.Visible CurrWJettingCmBx.Visibility = Windows.Visibility.Visible
' se DB WaterJet abilitato avrò anche la CmBx della Quality altrimenti espando la CmBx del Waterjetting corrente su tutta la riga
If m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
CurrWJettingCmBx.SetValue(Grid.ColumnSpanProperty, 1)
If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
CurrWJettingQualityCmBx.SelectedItem = m_CurrentMachine.sCurrWaterJettingQuality
End If
' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
If CurrWJettingQualityCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJettingQuality Then m_MachIsModified = True
End If
CurrWJettingQualityCmBx.Visibility = Windows.Visibility.Visible
Else
CurrWJettingCmBx.SetValue(Grid.ColumnSpanProperty, 3)
CurrWJettingQualityCmBx.Visibility = Windows.Visibility.Collapsed
End If
End If End If
Me.Height = 42 * m_RowNumber Me.Height = 42 * m_RowNumber
@@ -627,10 +639,14 @@ Public Class ChooseMachining
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
DialogResult = True DialogResult = True
' Aggiorno i parametri dei tagli diretti
m_MainWindow.m_DirectCutPageUC.ReloadParam()
End Sub End Sub
Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs) Handles ExitBtn.Click Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs) Handles ExitBtn.Click
DialogResult = False DialogResult = False
' Aggiorno i parametri dei tagli diretti
m_MainWindow.m_DirectCutPageUC.ReloadParam()
End Sub End Sub
End Class End Class
+38 -21
View File
@@ -167,7 +167,7 @@ Public Class RawPartPageUC
Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs) Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs)
' aggiorno la lista dei materiali ' aggiorno la lista dei materiali
Dim Index As Integer = 1 Dim Index As Integer = 1
If m_CurrentMachine.bWaterJet Then If m_CurrentMachine.bWaterJet And m_CurrentMachine.bFromDBWaterJet Then
m_CurrentMachine.LoadWJMaterial() m_CurrentMachine.LoadWJMaterial()
End If End If
@@ -964,13 +964,21 @@ Public Class RawPartPageUC
m_nPtMode = If(AddBtn.IsChecked, PTMODE.ADD, PTMODE.MOVE) m_nPtMode = If(AddBtn.IsChecked, PTMODE.ADD, PTMODE.MOVE)
Case RAWMODE.FROM_LASER Case RAWMODE.FROM_LASER
Dim ptAcquired As Point3d Dim ptAcquired As Point3d
'----------------------------------------- INIZIO ------------------ se decido di inserire i punti laser manualmente -------------------------------------------------- ' Se inserimento manuale dei punti laser
If m_bFromDraw And Not IsNothing(m_ptPrev) Then If m_bFromDraw Then
ptAcquired = m_ptPrev If Not IsNothing(m_ptPrev) Then
ptAcquired.ToLoc(New Frame3d(m_ptTableMin)) ptAcquired = m_ptPrev
'----------------------------------------- FINE ------------------- se decido di inserire i punti laser manualmente -------------------------------------------------- ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
ElseIf Not AcquireLaserPoint(ptAcquired) Then Else
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 32)) m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
Return
End If
' altrimenti da macchina
Else
If Not AcquireLaserPoint(ptAcquired) Then
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
Return
End If
End If End If
' Limito il punto a stare nella tavola con franco pari al kerf ' Limito il punto a stare nella tavola con franco pari al kerf
If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST
@@ -1014,13 +1022,21 @@ Public Class RawPartPageUC
m_nPtDmgMode = DMGMODE.NONE m_nPtDmgMode = DMGMODE.NONE
Case RAWMODE.DAMAGED_BY_LASER Case RAWMODE.DAMAGED_BY_LASER
Dim ptAcquired As Point3d Dim ptAcquired As Point3d
'----------------------------------------- INIZIO ------------------ se decido di inserire i punti laser manualmente -------------------------------------------------- ' Se inserimento manuale dei punti laser
If m_bFromDraw And Not IsNothing(m_ptPrev) Then If m_bFromDraw Then
ptAcquired = m_ptPrev If Not IsNothing(m_ptPrev) Then
ptAcquired.ToLoc(New Frame3d(m_ptTableMin)) ptAcquired = m_ptPrev
'----------------------------------------- FINE ------------------- se decido di inserire i punti laser manualmente -------------------------------------------------- ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
ElseIf Not AcquireLaserPoint(ptAcquired) Then Else
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 32)) m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
Return
End If
' altrimenti da macchina
Else
If Not AcquireLaserPoint(ptAcquired) Then
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
Return
End If
End If End If
' Limito il punto a stare nella tavola con franco pari al kerf ' Limito il punto a stare nella tavola con franco pari al kerf
If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST
@@ -1062,8 +1078,11 @@ Public Class RawPartPageUC
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then
Return False Return False
End If End If
' Ricavo dati lama corrente ' Recupero dati utensile e testa corrente
Dim sSaw As String = m_CurrentMachine.sCurrSaw Dim sTool As String = ""
Dim sHead As String = ""
Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit)
' Imposto come testa corrente il laser (senza utensile ovviamente) ' Imposto come testa corrente il laser (senza utensile ovviamente)
If Not EgtSetCalcTool("", "H3", 1) Then If Not EgtSetCalcTool("", "H3", 1) Then
Return False Return False
@@ -1072,10 +1091,8 @@ Public Class RawPartPageUC
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, ptTipP1) Then If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, ptTipP1) Then
Return False Return False
End If End If
' Ora imposto la lama corrente ' Reimposto eventuale precedente utensile
If Not EgtSetCalcTool(sSaw, "H1", 1) Then EgtSetCalcTool(sTool, sHead, nExit)
Return False
End If
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
ptAcquired = ptTipP1 ptAcquired = ptTipP1
ptAcquired.ToLoc(New Frame3d(m_ptTableMin)) ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB