From a4011cd1b6b22d159fcbcfe66a795ff7304ab457 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Sat, 12 Mar 2016 18:24:20 +0000 Subject: [PATCH] OmagCUT 1.6o1 : - completamento gestione tagli inclinati. --- CamAuto.vb | 1 + ConstGen.vb | 6 +++++ MoveRawPartPage.xaml.vb | 2 +- My Project/AssemblyInfo.vb | 4 ++-- NestPageUC.xaml.vb | 4 ++++ OpenPageUC.xaml.vb | 2 ++ SplitPageUC.xaml.vb | 47 +++++++++++++++++++------------------- 7 files changed, 39 insertions(+), 27 deletions(-) diff --git a/CamAuto.vb b/CamAuto.vb index 68a96fd..10ffb23 100644 --- a/CamAuto.vb +++ b/CamAuto.vb @@ -395,6 +395,7 @@ Public Module CamAuto EgtLuaSetGlobNumVar("CAM.HOLESOFFSET", dHolesOffset) EgtLuaSetGlobNumVar("CAM.HOLESOVERLAP", dHolesOverlap) EgtLuaSetGlobNumVar("CAM.CORNERSAFETY", dCornerSafety) + EgtLuaSetGlobNumVar("CAM.RAWHEIGHT", GetRawHeight()) Return True End Function diff --git a/ConstGen.vb b/ConstGen.vb index 984360b..fc50f1f 100644 --- a/ConstGen.vb +++ b/ConstGen.vb @@ -105,6 +105,12 @@ Module ConstGen Public Const NAME_PV_PRECUT As String = "PRC" ' Nome contorno post-taglio Public Const NAME_PV_POSTCUT As String = "POC" + ' Nome contorno in basso taglio + Public Const NAME_PV_DOWN_CUT As String = "DCUT" + ' Nome contorno in basso pre-taglio + Public Const NAME_PV_DOWN_PRECUT As String = "DPRC" + ' Nome contorno in basso post-taglio + Public Const NAME_PV_DOWN_POSTCUT As String = "DPOC" ' Info in lavorazione taglio per attacco originale Public Const INFO_MCH_ORILEADIN As String = "OriLI" ' Info in lavorazione taglio per uscita originale diff --git a/MoveRawPartPage.xaml.vb b/MoveRawPartPage.xaml.vb index a09a119..6c0a4b7 100644 --- a/MoveRawPartPage.xaml.vb +++ b/MoveRawPartPage.xaml.vb @@ -153,7 +153,7 @@ Public Class MoveRawPartPage Else m_bPerp = False End If - ' Aggirono interfaccia per taglio perpendicolare + ' Aggiorno interfaccia per taglio perpendicolare If m_bPerp Then LeftBtn.Visibility = Windows.Visibility.Hidden RightBtn.Visibility = Windows.Visibility.Hidden diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index c9b7edc..a965791 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -60,5 +60,5 @@ Imports System.Windows ' by using the '*' as shown below: ' - - + + diff --git a/NestPageUC.xaml.vb b/NestPageUC.xaml.vb index 8983e72..cdd9274 100644 --- a/NestPageUC.xaml.vb +++ b/NestPageUC.xaml.vb @@ -375,6 +375,8 @@ Public Class NestPageUC Public Function InsertOnePart(ByVal nId As Integer) As Boolean ' Se esiste grezzo e pezzo in parcheggio, lo metto nella tavola If m_nRawId <> GDB_ID.NULL AndAlso EgtIsPart(nId) Then + ' Sistemazioni per eventuali lati esterni inclinati + EgtCalcFlatPartDownRegion(nId, m_ptRawMax.z - m_ptRawMin.z) ' Dimensioni del pezzo Dim ptPartMin, ptPartMax As Point3d If Not EgtGetBBox(nId, GDB_BB.IGNORE_DIM + GDB_BB.IGNORE_TEXT, ptPartMin, ptPartMax) Then Return False @@ -448,6 +450,8 @@ Public Class NestPageUC (m_nRawId <> GDB_ID.NULL AndAlso EgtGetParent(nId) = m_nRawId) Then ' Rimuovo le lavorazioni EraseMachinings(nId) + ' Elimino eventuali modifiche per lati esterni inclinati + EgtCalcFlatPartDownRegion(nId, 0) ' Parcheggio EgtRemovePartFromRawPart(nId) EgtSetStatus(nId, GDB_ST.ON_) diff --git a/OpenPageUC.xaml.vb b/OpenPageUC.xaml.vb index 3e9e54a..5ea8df4 100644 --- a/OpenPageUC.xaml.vb +++ b/OpenPageUC.xaml.vb @@ -220,6 +220,8 @@ Public Class OpenPageUC Dim nMachGrpId As Integer = EgtGetFirstMachGroup() EgtSetCurrMachGroup(nMachGrpId) EgtShowOnlyTable(True) + ' visualizzo anche eventuali pezzi parcheggiati + ShowParkedParts() Else ' Formato sconosciuto bOk = False diff --git a/SplitPageUC.xaml.vb b/SplitPageUC.xaml.vb index 430f11f..e01e2cd 100644 --- a/SplitPageUC.xaml.vb +++ b/SplitPageUC.xaml.vb @@ -84,8 +84,12 @@ Public Class SplitPageUC Else Mach.m_nInterf = FMI_TYPE.NONE End If + ' se taglio con lama, recupero l'angolo di fianco + EgtSetCurrMachining(nOperId) + Dim dSideAng As Double = 90 + EgtGetMachiningParam(MCH_MP.SIDEANGLE, dSideAng) ' verifica se trasformabile in un taglio di separazione - If Mach.m_sLay = NAME_OUTLOOP And Mach.m_nInterf = FMI_TYPE.NONE Then + If Math.Abs(dSideAng) < EPS_ANG_SMALL And Mach.m_sLay = NAME_OUTLOOP And Mach.m_nInterf = FMI_TYPE.NONE Then Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId) Mach.m_bCanAllStart = (nRes And CAR_RES.LI_OK) <> 0 Mach.m_bCanAllEnd = (nRes And CAR_RES.LO_OK) <> 0 @@ -159,27 +163,6 @@ Public Class SplitPageUC m_CurrInd = nInd EgtDraw() End If - ' Se tipo movimento perpendicolare - If m_bPerp Then - ' Verifico se c'è già un taglio di separazione e non è il selezionato - Dim bOtherSplit As Boolean = False - For nI As Integer = 0 To m_MachiningList.Count() - 1 - If nI <> nInd And (m_MachiningList(nI).m_bAllStart Or m_MachiningList(nI).m_bAllEnd) Then - bOtherSplit = True - Exit For - End If - Next - ' Non permetto due tagli di separazione - If bOtherSplit Then - CutBtn.IsEnabled = False - CutStartBtn.IsEnabled = False - CutEndBtn.IsEnabled = False - Else - CutBtn.IsEnabled = True - CutStartBtn.IsEnabled = True - CutEndBtn.IsEnabled = True - End If - End If End Sub Private Sub MoveUpBtn_Click(sender As Object, e As RoutedEventArgs) Handles MoveUpBtn.Click @@ -581,8 +564,15 @@ Public Class SplitPageUC Private Sub EnableNextButton() ' Se abilitato manipolatore If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.MAN_MANIP) Then - ' Ci deve essere almeno 1 taglio disabilitato e almeno 1 passante - NextBtn.IsEnabled = (GetDisabledCutsCount() > 0 And GetSplitCutsCount() > 0) + ' Se allontanamento perpendicolare + If m_bPerp Then + ' Ci deve essere almeno 1 taglio disabilitato e 1 e 1 solo passante + NextBtn.IsEnabled = (GetDisabledCutsCount() > 0 And GetSplitCutsCount() = 1) + ' Altrimenti + Else + ' Ci deve essere almeno 1 taglio disabilitato e almeno 1 passante + NextBtn.IsEnabled = (GetDisabledCutsCount() > 0 And GetSplitCutsCount() > 0) + End If Else NextBtn.IsEnabled = False End If @@ -709,18 +699,27 @@ Public Class SplitPageUC Dim nCutId As Integer = EgtGetFirstNameInGroup(nGrpId, NAME_PV_CUT) Dim nPrcId As Integer = EgtGetFirstNameInGroup(nGrpId, NAME_PV_PRECUT) Dim nPocId As Integer = EgtGetFirstNameInGroup(nGrpId, NAME_PV_POSTCUT) + Dim nDwnCutId As Integer = EgtGetFirstNameInGroup(nGrpId, NAME_PV_DOWN_CUT) + Dim nDwnPrcId As Integer = EgtGetFirstNameInGroup(nGrpId, NAME_PV_DOWN_PRECUT) + Dim nDwnPocId As Integer = EgtGetFirstNameInGroup(nGrpId, NAME_PV_DOWN_POSTCUT) If Not bEnabled Then EgtSetColor(nCutId, COL_MCH_DISABLED) + EgtSetColor(nDwnCutId, COL_MCH_DISABLED) Dim bFreeStart As Boolean = (nInterf And FMI_TYPE.LI) <> FMI_TYPE.LI EgtSetColor(nPrcId, If(bFreeStart, COL_MCH_DISABLED, COL_MCH_DIS_INTERF)) + EgtSetColor(nDwnPrcId, If(bFreeStart, COL_MCH_DISABLED, COL_MCH_DIS_INTERF)) Dim bFreeEnd As Boolean = (nInterf And FMI_TYPE.LO) <> FMI_TYPE.LO EgtSetColor(nPocId, If(bFreeEnd, COL_MCH_DISABLED, COL_MCH_DIS_INTERF)) + EgtSetColor(nDwnPocId, If(bFreeEnd, COL_MCH_DISABLED, COL_MCH_DIS_INTERF)) Else EgtSetColor(nCutId, COL_MCH_CUT) + EgtSetColor(nDwnCutId, COL_MCH_CUT) Dim bFreeStart As Boolean = (nInterf And FMI_TYPE.LI) <> FMI_TYPE.LI EgtSetColor(nPrcId, If(bFreeStart, COL_MCH_FREE, COL_MCH_INTERF)) + EgtSetColor(nDwnPrcId, If(bFreeStart, COL_MCH_FREE, COL_MCH_INTERF)) Dim bFreeEnd As Boolean = (nInterf And FMI_TYPE.LO) <> FMI_TYPE.LO EgtSetColor(nPocId, If(bFreeEnd, COL_MCH_FREE, COL_MCH_INTERF)) + EgtSetColor(nDwnPocId, If(bFreeEnd, COL_MCH_FREE, COL_MCH_INTERF)) End If nGrpId = EgtGetNextGroup(nGrpId) End While