OmagCUT 1.6o1 :

- completamento gestione tagli inclinati.
This commit is contained in:
Dario Sassi
2016-03-12 18:24:20 +00:00
parent 6ec50f51dd
commit a4011cd1b6
7 changed files with 39 additions and 27 deletions
+1
View File
@@ -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
+6
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -60,5 +60,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.6.14.13")>
<Assembly: AssemblyFileVersion("1.6.14.13")>
<Assembly: AssemblyVersion("1.6.15.1")>
<Assembly: AssemblyFileVersion("1.6.15.1")>
+4
View File
@@ -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_)
+2
View File
@@ -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
+23 -24
View File
@@ -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