From 4be44762c81c397ba37359f31a460f504e9d4da1 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 17 Dec 2019 09:09:23 +0000 Subject: [PATCH] OmagCUT 2.1l4 : - si salvano in memoria i dati dell'ultimo taglio diretto di ogni tipo per riproporli al rispettivo successivo (tranne Test Lama). --- ConstIni.vb | 29 +++++++++++ FlatteningCut.xaml.vb | 80 +++++++++++++++++++---------- GridCut.xaml.vb | 69 +++++++++++++++++++------ MultipleCut.xaml.vb | 102 +++++++++++++++++++++++++++++++------ My Project/AssemblyInfo.vb | 4 +- 5 files changed, 225 insertions(+), 59 deletions(-) diff --git a/ConstIni.vb b/ConstIni.vb index 352b8d0..1aa22e4 100644 --- a/ConstIni.vb +++ b/ConstIni.vb @@ -216,6 +216,35 @@ Module ConstIni Public Const K_DC_SING_OFFSET As String = "SingOffset" Public Const K_DC_SING_POSX As String = "SingPosX" Public Const K_DC_SING_POSY As String = "SingPosY" + Public Const K_DC_MULT_DEPTH As String = "MultDepth" + Public Const K_DC_MULT_LENGTH As String = "MultLength" + Public Const K_DC_MULT_ANGH As String = "MultAngH" + Public Const K_DC_MULT_ANGV As String = "MultAngV" + Public Const K_DC_MULT_NUM As String = "MultNum" + Public Const K_DC_MULT_DIM As String = "MultDim" + Public Const K_DC_MULT_HEADSIDE As String = "MultHeadSide" + Public Const K_DC_MULT_POSX As String = "MultPosX" + Public Const K_DC_MULT_POSY As String = "MultPosY" + Public Const K_DC_GRID_DEPTH As String = "GridDepth" + Public Const K_DC_GRID_ANGH As String = "GridAngH" + Public Const K_DC_GRID_ANGV As String = "GridAngV" + Public Const K_DC_GRID_NUMX As String = "GridNumX" + Public Const K_DC_GRID_DIMX As String = "GridDimX" + Public Const K_DC_GRID_NUMY As String = "GridNumY" + Public Const K_DC_GRID_DIMY As String = "GridDimY" + Public Const K_DC_GRID_HEADSIDE As String = "GridHeadSide" + Public Const K_DC_GRID_POSX As String = "GridPosX" + Public Const K_DC_GRID_POSY As String = "GridPosY" + Public Const K_DC_FLATT_DEPTH As String = "FlattDepth" + Public Const K_DC_FLATT_ANGH As String = "FlattAngH" + Public Const K_DC_FLATT_LENGTH As String = "FlattLength" + Public Const K_DC_FLATT_WIDTH As String = "FlattWidth" + Public Const K_DC_FLATT_OVERLAP As String = "FlattOverlap" + Public Const K_DC_FLATT_HEADSIDE As String = "FlattHeadSide" + Public Const K_DC_FLATT_MACHTYPE As String = "FlattMachType" + Public Const K_DC_FLATT_ROTLOCK As String = "FlattRotLock" + Public Const K_DC_FLATT_POSX As String = "FlattPosX" + Public Const K_DC_FLATT_POSY As String = "FlattPosY" Public Const S_STATDATA As String = "StatData" Public Const K_SD_DAY As String = "Day" diff --git a/FlatteningCut.xaml.vb b/FlatteningCut.xaml.vb index 0ecdfa3..7cc18ac 100644 --- a/FlatteningCut.xaml.vb +++ b/FlatteningCut.xaml.vb @@ -23,16 +23,16 @@ Public Class FlatteningCut Private m_bPointP2Ok As Boolean = False Private m_ptTipP2 As Point3d Private m_vtToolP2 As Vector3d - ' Lato di creazione dei tagli - Private m_bCutSide As CutSide = CutSide.Left ' Parametri della lavorazione Private m_bCutOk As Boolean = False Private m_dDepth As Double = 0 + Private m_dAngO As Double = 180 Private m_dLen As Double = 500 Private m_dWid As Double = 500 - Private m_dAngO As Double = 180 - Private m_dAngV As Double = 0 Private m_dOverlap As Double = 1 + Private m_bHeadSide As Boolean = False + Private m_nMachType As Integer = 1 + Private m_bRotLock As Boolean = False ' Array delle modalità di acquisizione dei punti Private m_PointsModeArray(2) As String ' Array delle tipologia di lavorazione della spianatura @@ -88,6 +88,17 @@ Public Class FlatteningCut RotLockTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 29) SimulBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 1) OkBtn.Content = EgtMsg(MSG_DIRECTCUTPAGEUC + 30) + ' Carico i dati dell'ultimo taglio + m_dDepth = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_DEPTH, m_dDepth, m_MainWindow.GetIniFile()) + m_dAngO = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_ANGH, m_dAngO, m_MainWindow.GetIniFile()) + m_dLen = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_LENGTH, m_dLen, m_MainWindow.GetIniFile()) + m_dWid = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_WIDTH, m_dWid, m_MainWindow.GetIniFile()) + m_dOverlap = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_OVERLAP, m_dOverlap, m_MainWindow.GetIniFile()) + m_bHeadSide = ( GetPrivateProfileInt( S_DIRECTCUTS, K_DC_FLATT_HEADSIDE, 0, m_MainWindow.GetIniFile()) <> 0) + m_nMachType = GetPrivateProfileInt( S_DIRECTCUTS, K_DC_FLATT_MACHTYPE, m_nMachType, m_MainWindow.GetIniFile()) + m_bRotLock = ( GetPrivateProfileInt( S_DIRECTCUTS, K_DC_FLATT_ROTLOCK, 0, m_MainWindow.GetIniFile()) <> 0) + m_ptTipP1.x = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_POSX, m_ptTipP1.x, m_MainWindow.GetIniFile()) + m_ptTipP1.y = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_FLATT_POSY, m_ptTipP1.y, m_MainWindow.GetIniFile()) End Sub Private Sub FlatteningCut_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded @@ -106,35 +117,43 @@ Public Class FlatteningCut EgtDraw() Return End If + ' Disabilito registrazione progetto modificato + EgtDisableModified() + ' Creo layer temporaneo per crocette + m_nTempLay = EgtCreateGroup( GDB_ID.ROOT) + EgtSetLevel( m_nTempLay, GDB_LV.TEMP) ' Origine tavola m_bRawOk = True - If Not EgtGetTableRef(1, m_ptTabOri) Then + If Not EgtGetTableRef( 1, m_ptTabOri) Then m_bRawOk = False EgtOutLog("Error on TableRef1") End If ' Dati del grezzo - If Not GetRawBox(m_ptRawMin, m_ptRawMax) Then + If Not GetRawBox( m_ptRawMin, m_ptRawMax) Then m_bRawOk = False EgtOutLog("Error on RawBox") End If ' Reset punto acquisito m_bPointP1Ok = False m_bPointP2Ok = False - ' Inizializzo primo punto acquisito dal disegno come centro del grezzo - GetRawCenter(m_ptPrev) + ' Inizializzo primo punto acquisito dal disegno + m_ptPrev = m_ptTipP1 + ( m_ptTabOri - Point3d.ORIG()) + m_ptPrev.z = m_ptRawMax.z + ' Disegno crocetta che indica il punto acquisito + CreateCross(m_nTempLay, m_ptPrev) ' Imposto modalità di acquisizione punti PointModeCmBx.SelectedIndex = PT_MODE.DRAW SetCoordVisibility(True) ShowCoord() - ' Imposto tipo di lavorazione della spianatura - TypeCmBx.SelectedIndex = MACH_TYPE.ZIGZAG ' Assegno parametri di lavorazione già definiti - DepthTxBx.Text = LenToString(m_dDepth, 1) - LenghtTxBx.Text = LenToString(m_dLen, 1) - ' Inizializzo valori non ancora definiti - DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2) - WidthTxBx.Text = LenToString(m_dWid, 2) - OverlapTxBx.Text = LenToString(m_dOverlap, 2) + DepthTxBx.Text = LenToString( m_dDepth, 1) + DirectionTxBx.Text = DoubleToString( m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2) + LenghtTxBx.Text = LenToString( m_dLen, 1) + WidthTxBx.Text = LenToString( m_dWid, 2) + OverlapTxBx.Text = LenToString( m_dOverlap, 2) + SideChBx.IsChecked = m_bHeadSide + TypeCmBx.SelectedIndex = m_nMachType + RotLockChBx.IsChecked = m_bRotLock ' Reset taglio e disabilito bottone esecuzione m_bCutOk = False UpdateSimulOkBtn() @@ -142,14 +161,23 @@ Public Class FlatteningCut Point2Btn.IsEnabled = False ' Deseleziono bottone primo punto Point1Btn.IsChecked = False - ' Disabilito registrazione progetto modificato - EgtDisableModified() - ' Creo layer temporaneo per crocette - m_nTempLay = EgtCreateGroup(GDB_ID.ROOT) - EgtSetLevel(m_nTempLay, GDB_LV.TEMP) + ' Aggiorno visualizzazione + EgtDraw() End Sub Friend Sub FlatteningCut_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded + ' Salvo i dati correnti + WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_DEPTH, DoubleToString( m_dDepth, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_ANGH, DoubleToString( m_dAngO, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_LENGTH, DoubleToString( m_dLen, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_WIDTH, DoubleToString( m_dWid, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_OVERLAP, DoubleToString( m_dOverlap, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_HEADSIDE, If( m_bHeadSide, "1", "0"), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_MACHTYPE, m_nMachType.ToString(), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_ROTLOCK, If( m_bRotLock, "1", "0"), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_POSX, DoubleToString( m_ptTipP1.x, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_FLATT_POSY, DoubleToString( m_ptTipP1.y, 2), m_MainWindow.GetIniFile()) + ' Se non vado in simulazione If Not m_bSimul Then ' Dichiaro sottopagina da non riattivare m_MainWindow.m_DirectCutPageUC.m_ActiveDirectCutPage = DirectCutPageUC.DirectCutPages.DirectCut @@ -258,7 +286,6 @@ Public Class FlatteningCut Dim dTLen, dTAngV, dTAngO As Double m_vtToolP1.ToSpherical(dTLen, dTAngV, dTAngO) m_dAngO = dTAngO + 90 - m_dAngV = 90 - dTAngV DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2) ' Altrimenti da disegno @@ -326,10 +353,6 @@ Public Class FlatteningCut ' Porto il tip nell'origine tavola m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri)) m_bPointP2Ok = True - ' Assegno angolo verticale da direzione utensile - Dim dTLen, dTAngV, dTAngO As Double - m_vtToolP2.ToSpherical(dTLen, dTAngV, dTAngO) - m_dAngV = 90 - dTAngV ' Altrimenti da disegno Else @@ -461,6 +484,7 @@ Public Class FlatteningCut End Sub Private Sub SideChBx_Click(sender As Object, e As EventArgs) Handles SideChBx.Click + m_bHeadSide = SideChBx.IsChecked ' Disegno il taglio CreateFlatteningCut() SetMachineInCurrPos() @@ -468,6 +492,7 @@ Public Class FlatteningCut End Sub Private Sub TypeCmBx_SelectionChanged(sender As Object, e As EventArgs) Handles TypeCmBx.SelectionChanged + m_nMachType = TypeCmBx.SelectedIndex ' Disegno il taglio CreateFlatteningCut() SetMachineInCurrPos() @@ -475,6 +500,7 @@ Public Class FlatteningCut End Sub Private Sub RotLockChBx_Click(sender As Object, e As EventArgs) Handles RotLockChBx.Click + m_bRotLock = RotLockChBx.IsChecked ' Disegno il taglio CreateFlatteningCut() SetMachineInCurrPos() @@ -581,7 +607,7 @@ Public Class FlatteningCut Dim nCutId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, m_dLen) ' Imposto affondamento e angolo di fianco sul taglio EgtSetInfo(nCutId, INFO_DEPTH, m_dDepth) - EgtSetInfo(nCutId, INFO_SIDE_ANGLE, m_dAngV) + EgtSetInfo(nCutId, INFO_SIDE_ANGLE, 0) ' Imposto prima direzione EgtSetInfo(nCutId, INFO_DIR, 1) ' Eventuale bloccaggio rotazione asse C tra le passate diff --git a/GridCut.xaml.vb b/GridCut.xaml.vb index 091584d..5e0f300 100644 --- a/GridCut.xaml.vb +++ b/GridCut.xaml.vb @@ -22,14 +22,16 @@ Public Class GridCut Private m_bPointP2Ok As Boolean = False Private m_ptTipP2 As Point3d Private m_vtToolP2 As Vector3d - ' Lato di creazione dei tagli - Private m_bCutSide As CutSide = CutSide.Left ' Parametri della lavorazione Private m_bCutOk As Boolean = False Private m_dDepth As Double = 0 - Private m_dLen As Double = 1000 Private m_dAngO As Double = 180 Private m_dAngV As Double = 0 + Private m_nNumX As Integer = 0 + Private m_dDimX As Double = 0 + Private m_nNumY As Integer = 0 + Private m_dDimY As Double = 0 + Private m_bHeadSide As Boolean = False ' Array delle modalità di acquisizione dei punti Private m_PointsModeArray(2) As String ' Punto selezionato nel disegno @@ -73,6 +75,17 @@ Public Class GridCut SideTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 23) SimulBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 1) OkBtn.Content = EgtMsg(MSG_DIRECTCUTPAGEUC + 30) + ' Carico i dati dell'ultimo taglio + m_dDepth = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_DEPTH, m_dDepth, m_MainWindow.GetIniFile()) + m_dAngO = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_ANGH, m_dAngO, m_MainWindow.GetIniFile()) + m_dAngV = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_ANGV, m_dAngV, m_MainWindow.GetIniFile()) + m_nNumX = GetPrivateProfileInt( S_DIRECTCUTS, K_DC_GRID_NUMX, m_nNumX, m_MainWindow.GetIniFile()) + m_dDimX = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_DIMX, m_dDimX, m_MainWindow.GetIniFile()) + m_nNumY = GetPrivateProfileInt( S_DIRECTCUTS, K_DC_GRID_NUMY, m_nNumY, m_MainWindow.GetIniFile()) + m_dDimY = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_DIMY, m_dDimY, m_MainWindow.GetIniFile()) + m_bHeadSide = ( GetPrivateProfileInt( S_DIRECTCUTS, K_DC_GRID_HEADSIDE, 0, m_MainWindow.GetIniFile()) <> 0) + m_ptTipP1.x = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_POSX, m_ptTipP1.x, m_MainWindow.GetIniFile()) + m_ptTipP1.y = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_GRID_POSY, m_ptTipP1.y, m_MainWindow.GetIniFile()) End Sub Private Sub GridCut_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded @@ -91,6 +104,11 @@ Public Class GridCut EgtDraw() Return End If + ' Disabilito registrazione progetto modificato + EgtDisableModified() + ' Creo layer temporaneo per crocette + m_nTempLay = EgtCreateGroup(GDB_ID.ROOT) + EgtSetLevel(m_nTempLay, GDB_LV.TEMP) ' Origine tavola m_bRawOk = True If Not EgtGetTableRef(1, m_ptTabOri) Then @@ -105,17 +123,24 @@ Public Class GridCut ' Reset punto acquisito m_bPointP1Ok = False m_bPointP2Ok = False - ' Inizializzo primo punto acquisito dal disegno come centro del grezzo - GetRawCenter(m_ptPrev) + ' Inizializzo primo punto acquisito dal disegno + m_ptPrev = m_ptTipP1 + ( m_ptTabOri - Point3d.ORIG()) + m_ptPrev.z = m_ptRawMax.z + ' Disegno crocetta che indica il punto acquisito + CreateCross(m_nTempLay, m_ptPrev) ' Imposto modalità di acquisizione punti PointModeCmBx.SelectedIndex = PT_MODE.DRAW SetCoordVisibility(True) ShowCoord() - ' Assegno parametri di lavorazione già definiti - DepthTxBx.Text = LenToString(m_dDepth, 1) - ' Inizializzo valori non ancora definiti - DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2) - SideAngleTxBx.Text = DoubleToString(m_dAngV, 2) + ' Assegno parametri di lavorazione + DepthTxBx.Text = LenToString( m_dDepth, 1) + DirectionTxBx.Text = DoubleToString( m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2) + SideAngleTxBx.Text = DoubleToString( m_dAngV, 2) + NumPzXTxBx.Text = m_nNumX.ToString() + DimPzXTxBx.Text = LenToString( m_dDimX, 1) + NumPzYTxBx.Text = m_nNumY.ToString() + DimPzYTxBx.Text = LenToString( m_dDimY, 1) + SideChBx.IsChecked = m_bHeadSide ' Reset taglio e disabilito bottone esecuzione m_bCutOk = False UpdateSimulOkBtn() @@ -123,14 +148,23 @@ Public Class GridCut Point2Btn.IsEnabled = False ' Deseleziono bottone primo punto Point1Btn.IsChecked = False - ' Disabilito registrazione progetto modificato - EgtDisableModified() - ' Creo layer temporaneo per crocette - m_nTempLay = EgtCreateGroup(GDB_ID.ROOT) - EgtSetLevel(m_nTempLay, GDB_LV.TEMP) + ' Aggiorno visualizzazione + EgtDraw() End Sub Friend Sub GridCut_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded + ' Salvo i dati correnti + WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_DEPTH, DoubleToString( m_dDepth, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_ANGH, DoubleToString( m_dAngO, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_ANGV, DoubleToString( m_dAngV, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_NUMX, m_nNumX.ToString(), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_DIMX, DoubleToString( m_dDimX, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_NUMY, m_nNumY.ToString(), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_DIMY, DoubleToString( m_dDimY, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_HEADSIDE, If( m_bHeadSide, "1", "0"), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_POSX, DoubleToString( m_ptTipP1.x, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_GRID_POSY, DoubleToString( m_ptTipP1.y, 2), m_MainWindow.GetIniFile()) + ' Se non vado in simulazione If Not m_bSimul Then ' Dichiaro sottopagina da non riattivare m_MainWindow.m_DirectCutPageUC.m_ActiveDirectCutPage = DirectCutPageUC.DirectCutPages.DirectCut @@ -614,6 +648,11 @@ Public Class GridCut Private Sub NumPzsTxBx_EgtClosed(sender As Object, e As EventArgs) Handles NumPzXTxBx.EgtClosed, NumPzYTxBx.EgtClosed, DimPzXTxBx.EgtClosed, DimPzYTxBx.EgtClosed, SideChBx.Click + StringToInt( NumPzXTxBx.Text, m_nNumX) + StringToLen( DimPzXTxBx.Text, m_dDimX) + StringToInt( NumPzYTxBx.Text, m_nNumY) + StringToLen( DimPzYTxBx.Text, m_dDimY) + m_bHeadSide = SideChBx.IsChecked ' Disegno il taglio CreateGridCut() SetMachineInCurrPos() diff --git a/MultipleCut.xaml.vb b/MultipleCut.xaml.vb index 619acf0..2876dfa 100644 --- a/MultipleCut.xaml.vb +++ b/MultipleCut.xaml.vb @@ -23,14 +23,15 @@ Public Class MultipleCut Private m_bPointP2Ok As Boolean = False Private m_ptTipP2 As Point3d Private m_vtToolP2 As Vector3d - ' Lato di creazione dei tagli - Private m_bCutSide As CutSide = CutSide.Left ' Parametri della lavorazione Private m_bCutOk As Boolean = False Private m_dDepth As Double = 0 Private m_dLen As Double = 1000 Private m_dAngO As Double = 180 Private m_dAngV As Double = 0 + Private m_nNum() As Integer = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + Private m_dDim() As Double = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + Private m_bHeadSide As Boolean = False ' Array delle modalità di acquisizione dei punti Private m_PointsModeArray(2) As String ' Punto selezionato nel disegno @@ -83,6 +84,18 @@ Public Class MultipleCut Num8TxBl.Text = "8" Num9TxBl.Text = "9" Num10TxBl.Text = "10" + ' Carico i dati dell'ultimo taglio + m_dDepth = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_MULT_DEPTH, m_dDepth, m_MainWindow.GetIniFile()) + m_dLen = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_MULT_LENGTH, m_dLen, m_MainWindow.GetIniFile()) + m_dAngO = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_MULT_ANGH, m_dAngO, m_MainWindow.GetIniFile()) + m_dAngV = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_MULT_ANGV, m_dAngV, m_MainWindow.GetIniFile()) + For nI As Integer = 0 To 9 + m_nNum( nI) = GetPrivateProfileInt( S_DIRECTCUTS, K_DC_MULT_NUM & (nI+1).ToString(), 0, m_MainWindow.GetIniFile()) + m_dDim( nI) = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_MULT_DIM & (nI+1).ToString(), 0, m_MainWindow.GetIniFile()) + Next + m_bHeadSide = ( GetPrivateProfileInt( S_DIRECTCUTS, K_DC_MULT_HEADSIDE, 0, m_MainWindow.GetIniFile()) <> 0) + m_ptTipP1.x = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_MULT_POSX, m_ptTipP1.x, m_MainWindow.GetIniFile()) + m_ptTipP1.y = GetPrivateProfileDouble( S_DIRECTCUTS, K_DC_MULT_POSY, m_ptTipP1.y, m_MainWindow.GetIniFile()) End Sub Private Sub MultipleCut_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded @@ -101,6 +114,11 @@ Public Class MultipleCut EgtDraw() Return End If + ' Disabilito registrazione progetto modificato + EgtDisableModified() + ' Creo layer temporaneo per crocette + m_nTempLay = EgtCreateGroup(GDB_ID.ROOT) + EgtSetLevel(m_nTempLay, GDB_LV.TEMP) ' Origine tavola m_bRawOk = True If Not EgtGetTableRef(1, m_ptTabOri) Then @@ -115,18 +133,41 @@ Public Class MultipleCut ' Reset punto acquisito m_bPointP1Ok = False m_bPointP2Ok = False - ' Inizializzo primo punto acquisito dal disegno come centro del grezzo - GetRawCenter(m_ptPrev) + ' Inizializzo primo punto acquisito dal disegno + m_ptPrev = m_ptTipP1 + ( m_ptTabOri - Point3d.ORIG()) + m_ptPrev.z = m_ptRawMax.z + ' Disegno crocetta che indica il punto acquisito + CreateCross(m_nTempLay, m_ptPrev) ' Imposto modalità di acquisizione punti PointModeCmBx.SelectedIndex = PT_MODE.DRAW SetCoordVisibility(True) ShowCoord() - ' Assegno parametri di lavorazione già definiti - DepthTxBx.Text = LenToString(m_dDepth, 1) - LenghtTxBx.Text = LenToString(m_dLen, 1) - ' Inizializzo valori non ancora definiti - DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2) - SideAngleTxBx.Text = DoubleToString(m_dAngV, 2) + ' Assegno parametri di lavorazione + DepthTxBx.Text = LenToString( m_dDepth, 1) + LenghtTxBx.Text = LenToString( m_dLen, 1) + DirectionTxBx.Text = DoubleToString( m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2) + SideAngleTxBx.Text = DoubleToString( m_dAngV, 2) + NumPz1TxBx.Text = m_nNum(0).ToString() + DimPz1TxBx.Text = LenToString( m_dDim(0), 1) + NumPz2TxBx.Text = m_nNum(1).ToString() + DimPz2TxBx.Text = LenToString( m_dDim(1), 1) + NumPz3TxBx.Text = m_nNum(2).ToString() + DimPz3TxBx.Text = LenToString( m_dDim(2), 1) + NumPz4TxBx.Text = m_nNum(3).ToString() + DimPz4TxBx.Text = LenToString( m_dDim(3), 1) + NumPz5TxBx.Text = m_nNum(4).ToString() + DimPz5TxBx.Text = LenToString( m_dDim(4), 1) + NumPz6TxBx.Text = m_nNum(5).ToString() + DimPz6TxBx.Text = LenToString( m_dDim(5), 1) + NumPz7TxBx.Text = m_nNum(6).ToString() + DimPz7TxBx.Text = LenToString( m_dDim(6), 1) + NumPz8TxBx.Text = m_nNum(7).ToString() + DimPz8TxBx.Text = LenToString( m_dDim(7), 1) + NumPz9TxBx.Text = m_nNum(8).ToString() + DimPz9TxBx.Text = LenToString( m_dDim(8), 1) + NumPz10TxBx.Text = m_nNum(9).ToString() + DimPz10TxBx.Text = LenToString( m_dDim(9), 1) + SideChBx.IsChecked = m_bHeadSide ' Reset taglio e disabilito bottone esecuzione m_bCutOk = False UpdateSimulOkBtn() @@ -134,14 +175,24 @@ Public Class MultipleCut Point2Btn.IsEnabled = False ' Deseleziono bottone primo punto Point1Btn.IsChecked = False - ' Disabilito registrazione progetto modificato - EgtDisableModified() - ' Creo layer temporaneo per crocette - m_nTempLay = EgtCreateGroup(GDB_ID.ROOT) - EgtSetLevel(m_nTempLay, GDB_LV.TEMP) + ' Aggiorno visualizzazione + EgtDraw() End Sub Friend Sub MultipleCut_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded + ' Salvo i dati correnti + WritePrivateProfileString( S_DIRECTCUTS, K_DC_MULT_DEPTH, DoubleToString( m_dDepth, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_MULT_LENGTH, DoubleToString( m_dLen, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_MULT_ANGH, DoubleToString( m_dAngO, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_MULT_ANGV, DoubleToString( m_dAngV, 2), m_MainWindow.GetIniFile()) + For nI As Integer = 0 To 9 + WritePrivateProfileString( S_DIRECTCUTS, K_DC_MULT_NUM & (nI+1).ToString(), m_nNum( nI).ToString(), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_MULT_DIM & (nI+1).ToString(), DoubleToString( m_dDim( nI), 2), m_MainWindow.GetIniFile()) + Next + WritePrivateProfileString( S_DIRECTCUTS, K_DC_MULT_HEADSIDE, If( m_bHeadSide, "1", "0"), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_MULT_POSX, DoubleToString( m_ptTipP1.x, 2), m_MainWindow.GetIniFile()) + WritePrivateProfileString( S_DIRECTCUTS, K_DC_MULT_POSY, DoubleToString( m_ptTipP1.y, 2), m_MainWindow.GetIniFile()) + ' Se non vado in simulazione If Not m_bSimul Then ' Dichiaro sottopagina da non riattivare m_MainWindow.m_DirectCutPageUC.m_ActiveDirectCutPage = DirectCutPageUC.DirectCutPages.DirectCut @@ -646,6 +697,27 @@ Public Class MultipleCut NumPz9TxBx.EgtClosed, DimPz9TxBx.EgtClosed, NumPz10TxBx.EgtClosed, DimPz10TxBx.EgtClosed, SideChBx.Click + StringToInt( NumPz1TxBx.Text, m_nNum(0)) + StringToLen( DimPz1TxBx.Text, m_dDim(0)) + StringToInt( NumPz2TxBx.Text, m_nNum(1)) + StringToLen( DimPz2TxBx.Text, m_dDim(1)) + StringToInt( NumPz3TxBx.Text, m_nNum(2)) + StringToLen( DimPz3TxBx.Text, m_dDim(2)) + StringToInt( NumPz4TxBx.Text, m_nNum(3)) + StringToLen( DimPz4TxBx.Text, m_dDim(3)) + StringToInt( NumPz5TxBx.Text, m_nNum(4)) + StringToLen( DimPz5TxBx.Text, m_dDim(4)) + StringToInt( NumPz6TxBx.Text, m_nNum(5)) + StringToLen( DimPz6TxBx.Text, m_dDim(5)) + StringToInt( NumPz7TxBx.Text, m_nNum(6)) + StringToLen( DimPz7TxBx.Text, m_dDim(6)) + StringToInt( NumPz8TxBx.Text, m_nNum(7)) + StringToLen( DimPz8TxBx.Text, m_dDim(7)) + StringToInt( NumPz9TxBx.Text, m_nNum(8)) + StringToLen( DimPz9TxBx.Text, m_dDim(8)) + StringToInt( NumPz10TxBx.Text, m_nNum(9)) + StringToLen( DimPz10TxBx.Text, m_dDim(9)) + m_bHeadSide = SideChBx.IsChecked ' Disegno il taglio CreateMultipleCut() SetMachineInCurrPos() diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index 2b40be7..0e26756 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -62,5 +62,5 @@ Imports System.Windows ' by using the '*' as shown below: ' - - + +