OmagCUT 2.1j3 :
- Aumentato il numero di TextBox Numero e Dimensioni nei Tagli Multipli. Da 3x2 si è passati ora a 10x2, con indici e scrollbar. - Uniformati i metodi CreateMultipleCut, CreateFlatteningCut, CreateGridCut al modello di CreateSingleCut, eliminando Create2PointsMultipleCut, Create2PointsFlatteningCut, Create2PointsGridCut. - Aggiunta costante MIN_OFFSET al metodo OverlapTxBx_EgtClosed di FlatteningCut
This commit is contained in:
+136
-62
@@ -73,6 +73,16 @@ Public Class MultipleCut
|
||||
SideTxBl.Text = EgtMsg(MSG_DIRECTCUTPAGEUC + 23)
|
||||
SimulBtn.Content = EgtMsg(MSG_CADCUTPAGEUC + 1)
|
||||
OkBtn.Content = EgtMsg(MSG_DIRECTCUTPAGEUC + 30)
|
||||
Num1TxBl.Text = "1"
|
||||
Num2TxBl.Text = "2"
|
||||
Num3TxBl.Text = "3"
|
||||
Num4TxBl.Text = "4"
|
||||
Num5TxBl.Text = "5"
|
||||
Num6TxBl.Text = "6"
|
||||
Num7TxBl.Text = "7"
|
||||
Num8TxBl.Text = "8"
|
||||
Num9TxBl.Text = "9"
|
||||
Num10TxBl.Text = "10"
|
||||
End Sub
|
||||
|
||||
Private Sub MultipleCut_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
@@ -341,7 +351,7 @@ Public Class MultipleCut
|
||||
LenghtTxBx.Text = LenToString(dLen, 1)
|
||||
m_dAngO = dAngOrizzDeg
|
||||
DirectionTxBx.Text = DoubleToString(m_dAngO - m_MainWindow.m_CurrentMachine.dDeltaC, 2)
|
||||
Create2PointsMultipleCut()
|
||||
CreateMultipleCut()
|
||||
' Disegno la macchina nella sua posizione reale
|
||||
SetMachineInCurrPos()
|
||||
m_MainWindow.m_DirectCutPageUC.m_bShowMachine = True
|
||||
@@ -500,56 +510,8 @@ Public Class MultipleCut
|
||||
End Sub
|
||||
|
||||
Private Function CreateMultipleCut() As Boolean
|
||||
' Verifico sia definito il punto iniziale e il grezzo
|
||||
If Not m_bPointP1Ok Or Not m_bRawOk Then
|
||||
m_bCutOk = False
|
||||
Return False
|
||||
End If
|
||||
' Spessore grezzo
|
||||
Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z
|
||||
' Rimuovo eventuale vecchio pezzo per taglio diretto
|
||||
EraseDirectCutPart()
|
||||
' Disattivo eventuali lavorazioni presenti
|
||||
DeactivateAllMachinings()
|
||||
' Creo nuovo pezzo per il taglio diretto
|
||||
Dim nPartId = EgtCreateGroup(GDB_ID.ROOT)
|
||||
EgtSetName(nPartId, NAME_DIRECTCUT)
|
||||
Dim nLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nLayerId, NAME_OUTLOOP)
|
||||
' Creo il taglio
|
||||
Dim ptStart As Point3d = m_ptTipP1
|
||||
ptStart.z = 0
|
||||
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)
|
||||
' Funzione che crea i tagli successivi al primo
|
||||
MultiplyCut(nLayerId, nCutId)
|
||||
' Creo layer per crocetta di riferimento
|
||||
Dim nCrossLayerId = EgtCreateGroup(nPartId)
|
||||
' Aggiungo crocetta
|
||||
CreateCross(nCrossLayerId, ptStart)
|
||||
' Calcolo punto di inserimento nel grezzo
|
||||
Dim ptMin, ptMax As Point3d
|
||||
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, ptMin, ptMax)
|
||||
Dim ptIns As Point3d = ptMin + (m_ptTabOri - m_ptRawMin)
|
||||
ptIns.z = dRawHeight
|
||||
' Inserisco il pezzo nel grezzo
|
||||
EgtAddPartToRawPart(nPartId, ptIns, m_MainWindow.m_CurrentProjectPageUC.m_nRawId)
|
||||
' Inserisco la lavorazione
|
||||
m_bCutOk = AddMachinings(nPartId) AndAlso UpdateAllMachiningsToolpaths()
|
||||
EgtSetCurrPhase(1)
|
||||
' Eventuale eliminazione Home finale
|
||||
If Not m_MainWindow.m_CurrentMachine.bDirectCutsFinalHome Then
|
||||
RemoveFinalHome()
|
||||
End If
|
||||
UpdateSimulOkBtn()
|
||||
Return m_bCutOk
|
||||
End Function
|
||||
|
||||
Private Function Create2PointsMultipleCut() As Boolean
|
||||
' Verifico siano definiti punto iniziale punto finale e grezzo
|
||||
If Not m_bPointP1Ok Or Not m_bPointP2Ok Or Not m_bRawOk Then
|
||||
If Not m_bPointP1Ok Or Not m_bRawOk Then
|
||||
m_bCutOk = False
|
||||
Return False
|
||||
End If
|
||||
@@ -567,10 +529,8 @@ Public Class MultipleCut
|
||||
EgtSetName(nLayerId, NAME_OUTLOOP)
|
||||
' Creo il taglio
|
||||
Dim ptStart As Point3d = m_ptTipP1
|
||||
Dim ptEnd As Point3d = m_ptTipP2
|
||||
ptStart.z = 0
|
||||
ptEnd.z = 0
|
||||
Dim nCutId = EgtCreateLine(nLayerId, ptStart, ptEnd)
|
||||
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)
|
||||
@@ -578,9 +538,15 @@ Public Class MultipleCut
|
||||
MultiplyCut(nLayerId, nCutId)
|
||||
' Creo layer per crocette di riferimento
|
||||
Dim nCrossLayerId = EgtCreateGroup(nPartId)
|
||||
' Aggiungo crocette
|
||||
CreateCross(nCrossLayerId, ptStart)
|
||||
CreateCross(nCrossLayerId, ptEnd)
|
||||
' Aggiungo crocetta/e
|
||||
If m_bPointP1Ok Then
|
||||
CreateCross(nCrossLayerId, ptStart)
|
||||
End If
|
||||
If m_bPointP2Ok Then
|
||||
Dim ptEnd As Point3d = m_ptTipP2
|
||||
ptEnd.z = 0
|
||||
CreateCross(nCrossLayerId, ptEnd)
|
||||
End If
|
||||
' Calcolo punto di inserimento nel grezzo
|
||||
Dim ptMin, ptMax As Point3d
|
||||
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, ptMin, ptMax)
|
||||
@@ -659,6 +625,118 @@ Public Class MultipleCut
|
||||
Next
|
||||
dTotPerpMove += vtDelta * nNumPz3
|
||||
End If
|
||||
' Calcolo quarto vettore di spostamento
|
||||
Dim dDimPz4 As Double = 0
|
||||
Dim nNumPz4 As Integer = 0
|
||||
StringToLen(DimPz4TxBx.Text, dDimPz4)
|
||||
StringToInt(NumPz4TxBx.Text, nNumPz4)
|
||||
If dDimPz4 <> 0 And nNumPz4 > 0 Then
|
||||
vtDelta = Vector3d.FromPolar((dDimPz4 + dThick), m_dAngO)
|
||||
vtDelta.Rotate(Vector3d.Z_AX, dRotAngO)
|
||||
For Index As Integer = 1 To nNumPz4
|
||||
Dim vtPerpMove As Vector3d = dTotPerpMove + vtDelta * Index
|
||||
' Creo copie
|
||||
Dim nCut5Id = EgtCopyGlob(nCutId, nLayerId)
|
||||
EgtMove(nCut5Id, vtPerpMove, GDB_RT.GLOB)
|
||||
Next
|
||||
dTotPerpMove += vtDelta * nNumPz4
|
||||
End If
|
||||
' Calcolo quinto vettore di spostamento
|
||||
Dim dDimPz5 As Double = 0
|
||||
Dim nNumPz5 As Integer = 0
|
||||
StringToLen(DimPz5TxBx.Text, dDimPz5)
|
||||
StringToInt(NumPz5TxBx.Text, nNumPz5)
|
||||
If dDimPz5 <> 0 And nNumPz5 > 0 Then
|
||||
vtDelta = Vector3d.FromPolar((dDimPz5 + dThick), m_dAngO)
|
||||
vtDelta.Rotate(Vector3d.Z_AX, dRotAngO)
|
||||
For Index As Integer = 1 To nNumPz5
|
||||
Dim vtPerpMove As Vector3d = dTotPerpMove + vtDelta * Index
|
||||
' Creo copie
|
||||
Dim nCut6Id = EgtCopyGlob(nCutId, nLayerId)
|
||||
EgtMove(nCut6Id, vtPerpMove, GDB_RT.GLOB)
|
||||
Next
|
||||
dTotPerpMove += vtDelta * nNumPz5
|
||||
End If
|
||||
' Calcolo sesto vettore di spostamento
|
||||
Dim dDimPz6 As Double = 0
|
||||
Dim nNumPz6 As Integer = 0
|
||||
StringToLen(DimPz6TxBx.Text, dDimPz6)
|
||||
StringToInt(NumPz6TxBx.Text, nNumPz6)
|
||||
If dDimPz6 <> 0 And nNumPz6 > 0 Then
|
||||
vtDelta = Vector3d.FromPolar((dDimPz6 + dThick), m_dAngO)
|
||||
vtDelta.Rotate(Vector3d.Z_AX, dRotAngO)
|
||||
For Index As Integer = 1 To nNumPz6
|
||||
Dim vtPerpMove As Vector3d = dTotPerpMove + vtDelta * Index
|
||||
' Creo copie
|
||||
Dim nCut7Id = EgtCopyGlob(nCutId, nLayerId)
|
||||
EgtMove(nCut7Id, vtPerpMove, GDB_RT.GLOB)
|
||||
Next
|
||||
dTotPerpMove += vtDelta * nNumPz6
|
||||
End If
|
||||
' Calcolo settimo vettore di spostamento
|
||||
Dim dDimPz7 As Double = 0
|
||||
Dim nNumPz7 As Integer = 0
|
||||
StringToLen(DimPz7TxBx.Text, dDimPz7)
|
||||
StringToInt(NumPz7TxBx.Text, nNumPz7)
|
||||
If dDimPz7 <> 0 And nNumPz7 > 0 Then
|
||||
vtDelta = Vector3d.FromPolar((dDimPz7 + dThick), m_dAngO)
|
||||
vtDelta.Rotate(Vector3d.Z_AX, dRotAngO)
|
||||
For Index As Integer = 1 To nNumPz7
|
||||
Dim vtPerpMove As Vector3d = dTotPerpMove + vtDelta * Index
|
||||
' Creo copie
|
||||
Dim nCut8Id = EgtCopyGlob(nCutId, nLayerId)
|
||||
EgtMove(nCut8Id, vtPerpMove, GDB_RT.GLOB)
|
||||
Next
|
||||
dTotPerpMove += vtDelta * nNumPz7
|
||||
End If
|
||||
' Calcolo ottavo vettore di spostamento
|
||||
Dim dDimPz8 As Double = 0
|
||||
Dim nNumPz8 As Integer = 0
|
||||
StringToLen(DimPz8TxBx.Text, dDimPz8)
|
||||
StringToInt(NumPz8TxBx.Text, nNumPz8)
|
||||
If dDimPz8 <> 0 And nNumPz8 > 0 Then
|
||||
vtDelta = Vector3d.FromPolar((dDimPz8 + dThick), m_dAngO)
|
||||
vtDelta.Rotate(Vector3d.Z_AX, dRotAngO)
|
||||
For Index As Integer = 1 To nNumPz8
|
||||
Dim vtPerpMove As Vector3d = dTotPerpMove + vtDelta * Index
|
||||
' Creo copie
|
||||
Dim nCut9Id = EgtCopyGlob(nCutId, nLayerId)
|
||||
EgtMove(nCut9Id, vtPerpMove, GDB_RT.GLOB)
|
||||
Next
|
||||
dTotPerpMove += vtDelta * nNumPz8
|
||||
End If
|
||||
' Calcolo nono vettore di spostamento
|
||||
Dim dDimPz9 As Double = 0
|
||||
Dim nNumPz9 As Integer = 0
|
||||
StringToLen(DimPz9TxBx.Text, dDimPz9)
|
||||
StringToInt(NumPz9TxBx.Text, nNumPz9)
|
||||
If dDimPz9 <> 0 And nNumPz9 > 0 Then
|
||||
vtDelta = Vector3d.FromPolar((dDimPz9 + dThick), m_dAngO)
|
||||
vtDelta.Rotate(Vector3d.Z_AX, dRotAngO)
|
||||
For Index As Integer = 1 To nNumPz9
|
||||
Dim vtPerpMove As Vector3d = dTotPerpMove + vtDelta * Index
|
||||
' Creo copie
|
||||
Dim nCut10Id = EgtCopyGlob(nCutId, nLayerId)
|
||||
EgtMove(nCut10Id, vtPerpMove, GDB_RT.GLOB)
|
||||
Next
|
||||
dTotPerpMove += vtDelta * nNumPz9
|
||||
End If
|
||||
' Calcolo decimo vettore di spostamento
|
||||
Dim dDimPz10 As Double = 0
|
||||
Dim nNumPz10 As Integer = 0
|
||||
StringToLen(DimPz10TxBx.Text, dDimPz10)
|
||||
StringToInt(NumPz10TxBx.Text, nNumPz10)
|
||||
If dDimPz10 <> 0 And nNumPz10 > 0 Then
|
||||
vtDelta = Vector3d.FromPolar((dDimPz10 + dThick), m_dAngO)
|
||||
vtDelta.Rotate(Vector3d.Z_AX, dRotAngO)
|
||||
For Index As Integer = 1 To nNumPz10
|
||||
Dim vtPerpMove As Vector3d = dTotPerpMove + vtDelta * Index
|
||||
' Creo copie
|
||||
Dim nCut11Id = EgtCopyGlob(nCutId, nLayerId)
|
||||
EgtMove(nCut11Id, vtPerpMove, GDB_RT.GLOB)
|
||||
Next
|
||||
dTotPerpMove += vtDelta * nNumPz10
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
@@ -673,13 +751,9 @@ Public Class MultipleCut
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub NumPz1TxBx_EgtClosed(sender As Object, e As EventArgs) Handles NumPz1TxBx.EgtClosed, NumPz2TxBx.EgtClosed, NumPz3TxBx.EgtClosed, DimPz1TxBx.EgtClosed, DimPz2TxBx.EgtClosed, DimPz3TxBx.EgtClosed, SideChBx.Click
|
||||
Private Sub NumPz1TxBx_EgtClosed(sender As Object, e As EventArgs) Handles NumPz1TxBx.EgtClosed, NumPz2TxBx.EgtClosed, NumPz3TxBx.EgtClosed, NumPz4TxBx.EgtClosed, NumPz5TxBx.EgtClosed, NumPz6TxBx.EgtClosed, NumPz7TxBx.EgtClosed, NumPz8TxBx.EgtClosed, NumPz9TxBx.EgtClosed, NumPz10TxBx.EgtClosed, DimPz1TxBx.EgtClosed, DimPz2TxBx.EgtClosed, DimPz3TxBx.EgtClosed, DimPz4TxBx.EgtClosed, DimPz5TxBx.EgtClosed, DimPz6TxBx.EgtClosed, DimPz7TxBx.EgtClosed, DimPz8TxBx.EgtClosed, DimPz9TxBx.EgtClosed, DimPz10TxBx.EgtClosed, SideChBx.Click
|
||||
' Disegno il taglio
|
||||
If m_bPointP2Ok Then
|
||||
Create2PointsMultipleCut()
|
||||
Else
|
||||
CreateMultipleCut()
|
||||
End If
|
||||
CreateMultipleCut()
|
||||
SetMachineInCurrPos()
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
Reference in New Issue
Block a user