OmagCUT :

- migliorata gestione sovratavola
- import DXF ora setta nomi layer a loop di contorno e interni.
This commit is contained in:
Dario Sassi
2015-11-26 16:53:51 +00:00
parent b2421e10e2
commit e5f0487940
4 changed files with 88 additions and 28 deletions
+10
View File
@@ -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
+1
View File
@@ -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()
+69 -24
View File
@@ -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
+8 -4
View File
@@ -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)