From e5f048794086ff8b808fcb07d995d693e6fb5757 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Thu, 26 Nov 2015 16:53:51 +0000 Subject: [PATCH] OmagCUT : - migliorata gestione sovratavola - import DXF ora setta nomi layer a loop di contorno e interni. --- ConstGen.vb | 10 ++++ CurrentProjectPageUC.xaml.vb | 1 + ImportPageUC.xaml.vb | 93 ++++++++++++++++++++++++++---------- RawPartPageUC.xaml.vb | 12 +++-- 4 files changed, 88 insertions(+), 28 deletions(-) diff --git a/ConstGen.vb b/ConstGen.vb index b2cf8e2..0393ccf 100644 --- a/ConstGen.vb +++ b/ConstGen.vb @@ -43,6 +43,9 @@ Module ConstGen ' Sottodirettorio di default per le macchine Public Const MACHINES_DFL_DIR As String = "Machines" + ' Delta Z sovratavola per evitare problemi di visualizzazione texture + Public Const DELTAZ_ADDTAB As Double = 0.1 + ' Nome della superficie del grezzo Public Const NAME_RAW_SOLID As String = "RawSolid" ' Nome del contorno di kerf nel grezzo @@ -55,4 +58,11 @@ Module ConstGen ' Contrassegno di progetto OmagCut Public Const NAME_PROJMARK As String = "OmagCut" + ' Nome contorni esterni + Public Const NAME_OUTLOOP As String = "OutLoop" + ' Nome contorni interni + Public Const NAME_INLOOP As String = "InLoop" + ' Nome percorsi sul pezzo + Public Const NAME_ONPATH As String = "OnPath" + End Module diff --git a/CurrentProjectPageUC.xaml.vb b/CurrentProjectPageUC.xaml.vb index 032fc0e..0c3d49d 100644 --- a/CurrentProjectPageUC.xaml.vb +++ b/CurrentProjectPageUC.xaml.vb @@ -213,6 +213,7 @@ Public Class CurrentProjectPageUC EgtGetTableArea(1, ptMin, ptMax) ' Aggiungo sovratavola nel gruppo dei bloccaggi Const MACH_FIXT_GROUP As String = "Fixt" + ptMax.z -= DELTAZ_ADDTAB ptMin.z = ptMax.z ptMax.z += m_dAddTable Dim nMchId As Integer = EgtGetFirstMachGroup() diff --git a/ImportPageUC.xaml.vb b/ImportPageUC.xaml.vb index 880767d..d7fd537 100644 --- a/ImportPageUC.xaml.vb +++ b/ImportPageUC.xaml.vb @@ -296,31 +296,76 @@ Public Class ImportPageUC End While End Sub - Private Sub UseLayerBtn_Click(sender As Object, e As RoutedEventArgs) Handles UseLayerBtn.Click - ' Creo i pezzi - Dim nType As Integer = If(m_nFileType = FT.NGE, FPC_TYPE.NGE, FPC_TYPE.LAYER) - EgtCreateFlatParts(nType) - ' Eseguo zoom - ImportScene.ZoomAll() - ' disabilito bottoni UseLayer e UseRegion, abilito bottoni Reset e Insert - UseLayerBtn.IsEnabled = False - UseRegionBtn.IsEnabled = False - ResetBtn.IsEnabled = True - OkBtn.IsEnabled = True - End Sub + Private Sub UseLayerBtn_Click(sender As Object, e As RoutedEventArgs) Handles UseLayerBtn.Click + ' Creo i pezzi + Dim nType As Integer = If(m_nFileType = FT.NGE, FPC_TYPE.NGE, FPC_TYPE.LAYER) + EgtCreateFlatParts(nType) + AdjustFlatParts() + ' Eseguo zoom + ImportScene.ZoomAll() + ' disabilito bottoni UseLayer e UseRegion, abilito bottoni Reset e Insert + UseLayerBtn.IsEnabled = False + UseRegionBtn.IsEnabled = False + ResetBtn.IsEnabled = True + OkBtn.IsEnabled = True + End Sub - Private Sub UseRegionBtn_Click(sender As Object, e As RoutedEventArgs) Handles UseRegionBtn.Click - ' Creo i pezzi - Dim nType As Integer = If(m_nFileType = FT.NGE, FPC_TYPE.NGE, FPC_TYPE.REGION) - EgtCreateFlatParts(nType) - ' Eseguo zoom - ImportScene.ZoomAll() - ' disabilito bottoni UseLayer e UseRegion, abilito bottoni Reset e Insert - UseLayerBtn.IsEnabled = False - UseRegionBtn.IsEnabled = False - ResetBtn.IsEnabled = True - OkBtn.IsEnabled = True - End Sub + Private Sub UseRegionBtn_Click(sender As Object, e As RoutedEventArgs) Handles UseRegionBtn.Click + ' Creo i pezzi + Dim nType As Integer = If(m_nFileType = FT.NGE, FPC_TYPE.NGE, FPC_TYPE.REGION) + EgtCreateFlatParts(nType) + AdjustFlatParts() + ' Eseguo zoom + ImportScene.ZoomAll() + ' disabilito bottoni UseLayer e UseRegion, abilito bottoni Reset e Insert + UseLayerBtn.IsEnabled = False + UseRegionBtn.IsEnabled = False + ResetBtn.IsEnabled = True + OkBtn.IsEnabled = True + End Sub + + Private Sub AdjustFlatParts() + ' Ciclo sui pezzi + Dim nPartId As Integer = EgtGetFirstPart() + While nPartId <> GDB_ID.NULL + ' Ciclo sui layer + Dim nLayerId As Integer = EgtGetFirstLayer(nPartId) + While nLayerId <> GDB_ID.NULL + ' Recupero il layer successivo + Dim nNextLayerId As Integer = EgtGetNextLayer(nLayerId) + ' Recupero il nome del layer + Dim sLayName As String = String.Empty + If EgtGetName(nLayerId, sLayName) Then + ' Se layer OutLoop o InLoop + If String.Compare(sLayName, NAME_OUTLOOP, True) = 0 Or + String.Compare(sLayName, NAME_INLOOP, True) = 0 Then + ' Compatto e poi esplodo le curve composite + Dim nId As Integer = EgtGetFirstInGroup(nLayerId) + While nId <> GDB_ID.NULL + ' Recupero successivo + Dim nNextId As Integer = EgtGetNext(nId) + ' Compatto + EgtMergeCurvesInCurveCompo(nId, 10 * EPS_SMALL) + ' Esplodo curva composita + If EgtGetType(nId) = GDB_TY.CRV_COMPO Then + Dim nCount As Integer + EgtExplodeCurveCompo(nId, nCount) + End If + ' Passo all'entità successiva + nId = nNextId + End While + End If + ' Se senza nome, lo elimino + Else + EgtErase(nLayerId) + End If + ' Passo al layer successivo + nLayerId = nNextLayerId + End While + ' Passo al pezzo successivo + nPartId = EgtGetNextPart(nPartId) + End While + End Sub Private Sub ResetBtn_Click(sender As Object, e As RoutedEventArgs) Handles ResetBtn.Click ' Ricarico file corrente diff --git a/RawPartPageUC.xaml.vb b/RawPartPageUC.xaml.vb index 10de3e8..d0d39a7 100644 --- a/RawPartPageUC.xaml.vb +++ b/RawPartPageUC.xaml.vb @@ -175,7 +175,8 @@ Public Class RawPartPageUC If m_RawWidth - dDelta > MIN_RAW_DIM Then m_RawWidth -= dDelta m_RawOffsY += dDelta - EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf, m_RawWidth + 2 * m_RawKerf, m_RawHeight) + EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf, + m_RawWidth + 2 * m_RawKerf, m_RawHeight - DELTAZ_RAW) UpdateRawPartKerf() Dim vtMove As New Vector3d(0, dDelta, 0) EgtMoveRawPart(m_CurrProjPage.m_nRawId, vtMove) @@ -190,7 +191,8 @@ Public Class RawPartPageUC Dim dDelta = ptCurr.x - m_ptPrev.x If m_RawLength + dDelta > MIN_RAW_DIM Then m_RawLength += dDelta - EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf, m_RawWidth + 2 * m_RawKerf, m_RawHeight) + EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf, + m_RawWidth + 2 * m_RawKerf, m_RawHeight - DELTAZ_RAW) UpdateRawPartKerf() EgtDraw() m_bShowVar = True @@ -202,7 +204,8 @@ Public Class RawPartPageUC Dim dDelta = ptCurr.y - m_ptPrev.y If m_RawWidth + dDelta > MIN_RAW_DIM Then m_RawWidth += dDelta - EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf, m_RawWidth + 2 * m_RawKerf, m_RawHeight) + EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf, + m_RawWidth + 2 * m_RawKerf, m_RawHeight - DELTAZ_RAW) UpdateRawPartKerf() EgtDraw() m_bShowVar = True @@ -215,7 +218,8 @@ Public Class RawPartPageUC If m_RawLength - dDelta > MIN_RAW_DIM Then m_RawLength -= dDelta m_RawOffsX += dDelta - EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf, m_RawWidth + 2 * m_RawKerf, m_RawHeight) + EgtModifyRawPartSize(m_CurrProjPage.m_nRawId, m_RawLength + 2 * m_RawKerf, + m_RawWidth + 2 * m_RawKerf, m_RawHeight - DELTAZ_RAW) UpdateRawPartKerf() Dim vtMove As New Vector3d(dDelta, 0, 0) EgtMoveRawPart(m_CurrProjPage.m_nRawId, vtMove)