Compare commits
36 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4ac0507050 | |||
| a6a4f29bba | |||
| 0c9b37742a | |||
| ef5c98020e | |||
| c2a1fa3fdc | |||
| 319275f43c | |||
| 61d238e196 | |||
| 0900728bbf | |||
| ee83a453e7 | |||
| 7596849254 | |||
| e12eb2599e | |||
| a0754265ac | |||
| 1645a39506 | |||
| 9e2c2c1b98 | |||
| 51f15818c2 | |||
| b0081241d8 | |||
| 173230df5a | |||
| 22afb6edcd | |||
| 9c8faf25bf | |||
| 58775595c7 | |||
| 367ac62fc8 | |||
| 9750fdfe75 | |||
| 39bc4f55ea | |||
| 803a7bdbfc | |||
| 1473298705 | |||
| 4be7087a1b | |||
| 7c990987e8 | |||
| 3837895350 | |||
| e5195c5c5c | |||
| 17ed0b3807 | |||
| e11722f598 | |||
| 9644529618 | |||
| 0eb6897c08 | |||
| 8462554421 | |||
| 446df8f37f | |||
| 093f882118 |
@@ -674,6 +674,9 @@ Friend Module CamAuto
|
||||
End If
|
||||
' Lo sposto dalla lavorazione al pezzo
|
||||
Dim nId As Integer = EgtGetFirstInGroup(nMchPvId)
|
||||
|
||||
If nId = GDB_ID.NULL Then Return False
|
||||
|
||||
While nId <> GDB_ID.NULL
|
||||
EgtRelocateGlob(nId, nPartPvId)
|
||||
nId = EgtGetFirstInGroup(nMchPvId)
|
||||
|
||||
@@ -19,6 +19,14 @@ Friend Module CSVFile
|
||||
Public m_dDimX As Double = 0
|
||||
Public m_dDimY As Double = 0
|
||||
Public m_dTh As Double = 0
|
||||
Public m_dAng1 As Double = 0
|
||||
Public m_dHeel1 As Double = 0
|
||||
Public m_dAng2 As Double = 0
|
||||
Public m_dHeel2 As Double = 0
|
||||
Public m_dAng3 As Double = 0
|
||||
Public m_dHeel3 As Double = 0
|
||||
Public m_dAng4 As Double = 0
|
||||
Public m_dHeel4 As Double = 0
|
||||
Public m_nOriInd As Integer = 0
|
||||
Public m_nId As Integer = GDB_ID.NULL
|
||||
End Class
|
||||
@@ -62,6 +70,14 @@ Friend Module CSVFile
|
||||
EgtLuaGetGlobNumVar("CSV.DIMX" & sN, OnePart.m_dDimX)
|
||||
EgtLuaGetGlobNumVar("CSV.DIMY" & sN, OnePart.m_dDimY)
|
||||
EgtLuaGetGlobNumVar("CSV.TH" & sN, OnePart.m_dTh)
|
||||
EgtLuaGetGlobNumVar("CSV.A1_" & sN, OnePart.m_dAng1)
|
||||
EgtLuaGetGlobNumVar("CSV.H1_" & sN, OnePart.m_dHeel1)
|
||||
EgtLuaGetGlobNumVar("CSV.A2_" & sN, OnePart.m_dAng2)
|
||||
EgtLuaGetGlobNumVar("CSV.H2_" & sN, OnePart.m_dHeel2)
|
||||
EgtLuaGetGlobNumVar("CSV.A3_" & sN, OnePart.m_dAng3)
|
||||
EgtLuaGetGlobNumVar("CSV.H3_" & sN, OnePart.m_dHeel3)
|
||||
EgtLuaGetGlobNumVar("CSV.A4_" & sN, OnePart.m_dAng4)
|
||||
EgtLuaGetGlobNumVar("CSV.H4_" & sN, OnePart.m_dHeel4)
|
||||
OnePart.m_nOriInd = i
|
||||
' inserisco in lista
|
||||
CsvPartList.Add(OnePart)
|
||||
@@ -147,6 +163,22 @@ Friend Module CSVFile
|
||||
StringToDouble(sItems(1), OnePart.m_dDimY)
|
||||
ElseIf sItems(0) = "Th" Then
|
||||
StringToDouble(sItems(1), OnePart.m_dTh)
|
||||
ElseIf sItems(0) = "A1" Then
|
||||
StringToDouble(sItems(1), OnePart.m_dAng1)
|
||||
ElseIf sItems(0) = "H1" Then
|
||||
StringToDouble(sItems(1), OnePart.m_dHeel1)
|
||||
ElseIf sItems(0) = "A2" Then
|
||||
StringToDouble(sItems(1), OnePart.m_dAng2)
|
||||
ElseIf sItems(0) = "H2" Then
|
||||
StringToDouble(sItems(1), OnePart.m_dHeel2)
|
||||
ElseIf sItems(0) = "A3" Then
|
||||
StringToDouble(sItems(1), OnePart.m_dAng3)
|
||||
ElseIf sItems(0) = "H3" Then
|
||||
StringToDouble(sItems(1), OnePart.m_dHeel3)
|
||||
ElseIf sItems(0) = "A4" Then
|
||||
StringToDouble(sItems(1), OnePart.m_dAng4)
|
||||
ElseIf sItems(0) = "H4" Then
|
||||
StringToDouble(sItems(1), OnePart.m_dHeel4)
|
||||
ElseIf sItems(0) = "OIn" Then
|
||||
StringToInt(sItems(1), OnePart.m_nOriInd)
|
||||
End If
|
||||
@@ -188,6 +220,14 @@ Friend Module CSVFile
|
||||
Writer.WriteLine("DX=" & DoubleToString(CurrPart.m_dDimX, 4))
|
||||
Writer.WriteLine("DY=" & DoubleToString(CurrPart.m_dDimY, 4))
|
||||
Writer.WriteLine("Th=" & DoubleToString(CurrPart.m_dTh, 4))
|
||||
Writer.WriteLine("A1=" & DoubleToString(CurrPart.m_dAng1, 4))
|
||||
Writer.WriteLine("H1=" & DoubleToString(CurrPart.m_dHeel1, 4))
|
||||
Writer.WriteLine("A2=" & DoubleToString(CurrPart.m_dAng2, 4))
|
||||
Writer.WriteLine("H2=" & DoubleToString(CurrPart.m_dHeel2, 4))
|
||||
Writer.WriteLine("A3=" & DoubleToString(CurrPart.m_dAng3, 4))
|
||||
Writer.WriteLine("H3=" & DoubleToString(CurrPart.m_dHeel3, 4))
|
||||
Writer.WriteLine("A4=" & DoubleToString(CurrPart.m_dAng4, 4))
|
||||
Writer.WriteLine("H4=" & DoubleToString(CurrPart.m_dHeel4, 4))
|
||||
Writer.WriteLine("OIn=" & CurrPart.m_nOriInd.ToString())
|
||||
Next
|
||||
' Terminatore
|
||||
|
||||
+30
-1
@@ -424,10 +424,14 @@ Public Class CSVPage
|
||||
' Definizione variabili
|
||||
Dim dDimX = CurrPart.m_dDimX
|
||||
Dim dDimY = CurrPart.m_dDimY
|
||||
Dim dAng = New Double() {CurrPart.m_dAng1,CurrPart.m_dAng2,CurrPart.m_dAng3,CurrPart.m_dAng4}
|
||||
Dim dHeel = New Double() {CurrPart.m_dHeel1,CurrPart.m_dHeel2,CurrPart.m_dHeel3,CurrPart.m_dHeel4}
|
||||
If bMaxDimOnX And dDimY > dDimX Then
|
||||
Dim dTemp As Double = dDimX
|
||||
dDimX = dDimY
|
||||
dDimY = dTemp
|
||||
dAng = New Double() {CurrPart.m_dAng2,CurrPart.m_dAng3,CurrPart.m_dAng4,CurrPart.m_dAng1}
|
||||
dHeel = New Double() {CurrPart.m_dHeel2,CurrPart.m_dHeel3,CurrPart.m_dHeel4,CurrPart.m_dHeel1}
|
||||
End If
|
||||
EgtLuaSetGlobNumVar("CMP.V1", dDimX)
|
||||
EgtLuaSetGlobNumVar("CMP.V2", dDimY)
|
||||
@@ -439,7 +443,7 @@ Public Class CSVPage
|
||||
If nId = GDB_ID.NULL Then Continue For
|
||||
CurrPart.m_nId = nId
|
||||
' Muovo la regione in Z per evitare problemi in visualizzazione
|
||||
Dim nRegId = EgtGetFirstNameInGroup(nId, NAME_REGION)
|
||||
Dim nRegId As Integer = EgtGetFirstNameInGroup(nId, NAME_REGION)
|
||||
EgtMove(nRegId, New Vector3d(0, 0, DELTAZ_REG), GDB_RT.GLOB)
|
||||
' Eventuale testo per indicare il sopra
|
||||
If Not bMaxDimOnX Then
|
||||
@@ -447,6 +451,31 @@ Public Class CSVPage
|
||||
Dim nText As Integer = EgtCreateTextAdv(nRegId, New Point3d(dDimX / 2, dDimY - 0.6 * dH, 0), 0, "*TOP*", "", 500, False, dH, 1, 0, INS_POS.MC)
|
||||
EgtSetColor(nText, New Color3d( 0, 0, 0))
|
||||
End If
|
||||
' Inserisco eventuali angoli di fianco
|
||||
Dim bSideAngs As Boolean = False
|
||||
Dim nOutLoopId As Integer = EgtGetFirstNameInGroup( nId, NAME_OUTLOOP)
|
||||
For nSide As Integer = 1 To 4
|
||||
Dim dSideAng As Double = dAng( nSide - 1)
|
||||
Dim dSideHeel As Double = dHeel( nSide - 1)
|
||||
If Math.Abs( dSideAng) > EPS_ANG_SMALL Then
|
||||
Dim nEntId As Integer = EgtGetFirstNameInGroup( nOutLoopId, "A" & nSide.ToString())
|
||||
If nEntId <> GDB_ID.NULL Then
|
||||
bSideAngs = True
|
||||
' Assegno valori
|
||||
EgtSetInfo(nEntId, INFO_SIDE_ANGLE, dSideAng)
|
||||
EgtSetInfo(nEntId, INFO_ORIG_SIDE_ANGLE, dSideAng)
|
||||
EgtSetInfo(nEntId, INFO_HEEL, dSideHeel)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
' Creo layer per testi nesting
|
||||
If bSideAngs Then
|
||||
Dim TextLayId As Integer = EgtCreateGroup(nId)
|
||||
EgtSetName(TextLayId, SIDE_ANGLE_LAYER)
|
||||
EgtSetColor(TextLayId, New Color3d(0, 0, 128))
|
||||
' Opero su geometria esterna pezzo
|
||||
SideAngle.WriteSideAngleOnLoop(nOutLoopId, TextLayId)
|
||||
End If
|
||||
' Aggiusto per lavorazioni
|
||||
EgtAdjustFlatPart(nId)
|
||||
' Se Csv completo, aggiungo info su CSV di origine
|
||||
|
||||
@@ -107,6 +107,7 @@ Public Class CadCutPageUC
|
||||
|
||||
Private Sub PhotoBtn_Click(sender As Object, e As RoutedEventArgs) Handles PhotoBtn.Click
|
||||
m_MainWindow.TestOff()
|
||||
m_MainWindow.DragRettangleOff()
|
||||
m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False
|
||||
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
|
||||
' Se macchina fotografica collegata, faccio una foto
|
||||
@@ -140,6 +141,7 @@ Public Class CadCutPageUC
|
||||
|
||||
Private Sub RawPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RawPartBtn.Click
|
||||
m_MainWindow.TestOff()
|
||||
m_MainWindow.DragRettangleOff()
|
||||
m_CurrProjPage.CurrProjGrid.Visibility = Windows.Visibility.Hidden
|
||||
m_CurrProjPage.CurrentProjectPageGrid.Children.Remove(Me)
|
||||
m_CurrProjPage.CurrentProjectPageGrid.Children.Add(m_MainWindow.m_RawPartPage)
|
||||
@@ -165,6 +167,7 @@ Public Class CadCutPageUC
|
||||
|
||||
Private Sub DrawBtn_Click(sender As Object, e As RoutedEventArgs) Handles DrawBtn.Click
|
||||
m_MainWindow.TestOff()
|
||||
m_MainWindow.DragRettangleOff()
|
||||
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
|
||||
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_DrawPageUC)
|
||||
m_MainWindow.m_ActivePage = MainWindow.Pages.Draw
|
||||
@@ -172,6 +175,7 @@ Public Class CadCutPageUC
|
||||
|
||||
Private Sub ImportBtn_Click(sender As Object, e As RoutedEventArgs) Handles ImportBtn.Click
|
||||
m_MainWindow.TestOff()
|
||||
m_MainWindow.DragRettangleOff()
|
||||
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_CurrentProjectPageUC)
|
||||
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_ImportPageUC)
|
||||
m_MainWindow.m_ActivePage = MainWindow.Pages.Import
|
||||
@@ -193,10 +197,11 @@ Public Class CadCutPageUC
|
||||
End Sub
|
||||
|
||||
Private Sub SplitBtn_Click(sender As Object, e As RoutedEventArgs) Handles SplitBtn.Click
|
||||
m_MainWindow.DragRettangleOff()
|
||||
m_CurrProjPage.m_SceneButtons.MeasureBtn.IsChecked = False
|
||||
EgtDeselectObj(m_NestPage.m_CurrSelectedCurv)
|
||||
m_ProjectMgr.TestBtn.IsChecked = False
|
||||
m_CurrProjPage.m_bSelectCurv = False
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
|
||||
Select Case m_CadCutMode
|
||||
Case CadCutModes.Nest, CadCutModes.FastGrid
|
||||
' Passo alla pagina Split
|
||||
@@ -206,9 +211,9 @@ Public Class CadCutPageUC
|
||||
SplitImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/Nest.png", UriKind.Relative))
|
||||
End If
|
||||
If m_CadCutMode = CadCutModes.Nest Then
|
||||
CadCutPageGrid.Children.Remove(m_NestPage)
|
||||
Else
|
||||
CadCutPageGrid.Children.Remove(m_FastGridSlabManager)
|
||||
CadCutPageGrid.Children.Remove(m_NestPage)
|
||||
Else
|
||||
CadCutPageGrid.Children.Remove(m_FastGridSlabManager)
|
||||
End If
|
||||
CadCutPageGrid.Children.Add(m_SplitPage)
|
||||
m_CadCutMode = CadCutModes.Split
|
||||
|
||||
@@ -109,9 +109,14 @@
|
||||
</Button>
|
||||
</UniformGrid>
|
||||
|
||||
<Button Name="RemovePartBtn" Grid.ColumnSpan="3" Grid.Row="6" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||
<Image Source="{DynamicResource Elimina-pezzoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<UniformGrid Name ="UG1" Grid.Column="0" Grid.Row="6" Grid.ColumnSpan="3" Columns="2" >
|
||||
<Button Name="RemovePartBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||
<Image Source="{DynamicResource Elimina-pezzoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<ToggleButton Name="DragRettanleBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
||||
<Image Source="{DynamicResource Drag_RettangleImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</ToggleButton>
|
||||
</UniformGrid>
|
||||
|
||||
<UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" >
|
||||
<Button Name="SelectAllBtn" Style="{DynamicResource OmagCut_YellowIconButton}">
|
||||
|
||||
+392
-27
@@ -12,10 +12,27 @@ Public Class NestPageUC
|
||||
Friend m_bRegister As Boolean = False
|
||||
' Flag per pezzi selezionati in tavola o fuori
|
||||
Private m_nPartPos As Integer = PART_POS.NONE_TABLE
|
||||
' Flag per impostata per selezionare di una curva
|
||||
Friend m_bSelectCurv As Boolean = False
|
||||
' dati per DragRettangoli (estensio/accorciamento dei rettangoli trascinando un lato)
|
||||
Private m_bIsVisibleDragRettangle As Boolean = False
|
||||
Friend m_bIsCheckedDragRettangle As Boolean = False
|
||||
|
||||
' Id della curva e del taglio selezionati per eseguire il test
|
||||
Friend m_CurrSelectedCurv As Integer = GDB_ID.NULL
|
||||
Friend m_CurrSelectedSawCurv As Integer = GDB_ID.NULL
|
||||
|
||||
' Id del rettangolo, del traglio e della curva da modificare tramite Drag
|
||||
Private m_nIdSelectedOutLoopRettangle As Integer = GDB_ID.NULL
|
||||
Private m_nIdSelectedRegionRettangle As Integer = GDB_ID.NULL
|
||||
Private m_nIdSelectedSawRettangle As Integer = GDB_ID.NULL
|
||||
Private m_nIdSelectedCurvRettangle As Integer = GDB_ID.NULL
|
||||
Private m_nIdSelectedTextRettangle As Integer = GDB_ID.NULL
|
||||
Private m_nIdSelectedTextTopRettangle As Integer = GDB_ID.NULL
|
||||
Private m_nIdSelectedFlatSurfRettangle As Integer = GDB_ID.NULL
|
||||
Private m_SideListRettangle(4) As Integer
|
||||
Private m_sTextContent As String = String.Empty
|
||||
|
||||
Enum PART_POS As Integer
|
||||
IN_TABLE = -1
|
||||
NONE_TABLE = 0
|
||||
@@ -61,6 +78,14 @@ Public Class NestPageUC
|
||||
RemovePartBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 3) 'Remove part - Elimina pezzo
|
||||
SelectAllBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 4) 'Select All - Seleziona Tutto
|
||||
DeselectAllBtn.ToolTip = EgtMsg(MSG_NESTPAGEUC + 5) 'Deselect All - Deseleziona Tutto
|
||||
|
||||
' gestisco la visualizzazione del comando PAN (per il drag dei rettangoli)
|
||||
m_bIsVisibleDragRettangle = (GetPrivateProfileInt(S_NEST, K_DRAG_RETTANGLE, 0, m_MainWindow.GetIniFile()) <> 0)
|
||||
If Not m_bIsVisibleDragRettangle Then
|
||||
UG1.Columns = 1
|
||||
DragRettanleBtn.Visibility = Visibility.Collapsed
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub NestPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||
@@ -108,6 +133,7 @@ Public Class NestPageUC
|
||||
m_dRegStep = GetPrivateProfileDouble(S_REG, K_REGSTEP, 10, m_MainWindow.GetIniFile())
|
||||
m_dRegAngStep = GetPrivateProfileDouble(S_REG, K_REGANGSTEP, 1, m_MainWindow.GetIniFile())
|
||||
m_dMaxRegAng = GetPrivateProfileDouble(S_MACH_REG, K_MACH_MAX_ROT_ANG, 10, m_MainWindow.GetMachIniFile())
|
||||
|
||||
' Garantisco visibilità pezzi parcheggiati
|
||||
ShowParkedParts()
|
||||
' Garantisco visibilità eventuale contorno da foto
|
||||
@@ -124,14 +150,17 @@ Public Class NestPageUC
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnMyMouseDownSceneSelCurv(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownSceneSelCurv
|
||||
' funzione utilizzata per la selezione dei tagli quando il comando TEST è attivo
|
||||
Private Sub OnMyMouseDownSceneSelCurv(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
' Verifico di essere il gestore attivo e non in modalità registrazione
|
||||
If Not m_bActive Or m_bRegister Then Return
|
||||
' Si può selezionare solo con il tasto sinistro e se il bottone TEST Attivo
|
||||
If e.Button <> Windows.Forms.MouseButtons.Left Or
|
||||
Not m_CurrProjPage.m_bSelectCurv Then
|
||||
Not m_bSelectCurv Then
|
||||
Return
|
||||
End If
|
||||
' Se esiste un elemento selezionato
|
||||
EgtResetMark(m_CurrSelectedSawCurv)
|
||||
' provo a riconoscere il valore medio del segmento
|
||||
' Verifico se selezionato indicativo di pezzo
|
||||
EgtSetObjFilterForSelWin(False, True, False, False, False)
|
||||
@@ -152,7 +181,6 @@ Public Class NestPageUC
|
||||
Dim ptE As Point3d
|
||||
EgtEndPoint(nIdMy, ptE)
|
||||
If m_CurrSelectedCurv <> GDB_ID.NULL Or m_CurrSelectedCurv = nIdMy Then
|
||||
EgtDeselectObj(m_CurrSelectedSawCurv)
|
||||
EgtDeselectObj(m_CurrSelectedCurv)
|
||||
End If
|
||||
' recupero il gruppo della lavorazione associata
|
||||
@@ -160,10 +188,9 @@ Public Class NestPageUC
|
||||
Dim nIdPV As Integer = EgtGetFirstNameInGroup(nIdParentPart, "PV")
|
||||
Dim nIdSaw As Integer = EgtGetFirstNameInGroup(nIdPV, "Saw" & nIdMy.ToString)
|
||||
If Not EgtGetGroupObjs(nIdSaw) Then
|
||||
EgtSelectObj(nIdSaw)
|
||||
m_CurrSelectedSawCurv = nIdSaw
|
||||
m_CurrSelectedCurv = nIdMy
|
||||
EgtSelectObj(nIdSaw)
|
||||
EgtSetMark(nIdSaw)
|
||||
EgtSelectObj(nIdMy)
|
||||
EgtDraw()
|
||||
Exit While
|
||||
@@ -176,6 +203,293 @@ Public Class NestPageUC
|
||||
Return
|
||||
End Sub
|
||||
|
||||
#Region "DRAG RETTANGLE"
|
||||
|
||||
' funzione chiamata da OnMyMouseMoveScene: verifica che la selezione sia corretta (deve essere il lato di una figura rettangolare)
|
||||
Private Sub OnMyMouseDownSceneSelSideRettangle(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
' Verifico di essere il gestore attivo e non in modalità registrazione
|
||||
If Not m_bActive Or m_bRegister Then Return
|
||||
' Si può selezionare solo con il tasto sinistro e se il bottone TEST Attivo
|
||||
If e.Button <> Windows.Forms.MouseButtons.Left then
|
||||
Return
|
||||
End If
|
||||
' Verifico se selezionato indicativo di pezzo
|
||||
EgtSetObjFilterForSelWin(False, True, False, False, False)
|
||||
Dim nSelMy As Integer
|
||||
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSelMy)
|
||||
Dim nIdMy As Integer = EgtGetFirstObjInSelWin()
|
||||
While nIdMy <> GDB_ID.NULL
|
||||
Dim sLayer As String = String.Empty
|
||||
' layer di origine
|
||||
Dim nIdParent As Integer = EgtGetParent(nIdMy)
|
||||
' recupero il nome del Layer
|
||||
EgtGetName(nIdParent, sLayer)
|
||||
' solo se il nome del layer è quello associato ad un lato esterno allora procedo con l'evidenziazione
|
||||
If sLayer = NAME_OUTLOOP Then
|
||||
If EgtGetType(nIdMy) = GDB_TY.CRV_LINE Then
|
||||
' -------------------------------- INIZIO VERIFICHE --------------------------------
|
||||
m_nIdSelectedOutLoopRettangle = nIdParent
|
||||
If Not IsRettangle(m_SideListRettangle) Then
|
||||
m_CurrProjPage.ClearMessage()
|
||||
m_CurrProjPage.SetWarningMessage("Non è un rettangolo (0)")
|
||||
Return
|
||||
End If
|
||||
' recupero il gruppo della lavorazione associata
|
||||
Dim nIdParentPart As Integer = EgtGetParent(nIdParent)
|
||||
Dim nIdPV As Integer = EgtGetFirstNameInGroup(nIdParentPart, "PV")
|
||||
' se non esiste un gruppo di lavorazione associato allora esco
|
||||
If nIdPV = GDB_ID.NULL Then
|
||||
m_CurrProjPage.ClearMessage()
|
||||
m_CurrProjPage.SetWarningMessage("Pezzo in parcheggio (1)")
|
||||
Return
|
||||
End If
|
||||
' se esiste ma è vuoto (pezzo scaricato da tavola)
|
||||
If EgtGetFirstInGroup(nIdPV) = GDB_ID.NULL Then
|
||||
m_CurrProjPage.ClearMessage()
|
||||
m_CurrProjPage.SetWarningMessage("Pezzo in parcheggio (2)")
|
||||
Return
|
||||
End If
|
||||
' Devo verificare che sia una lavorazione solo di lama?
|
||||
Dim nIdSaw As Integer = EgtGetFirstNameInGroup(nIdPV, "Saw" & nIdMy.ToString)
|
||||
' -------------------------------- FINE VERIFICHE --------------------------------
|
||||
|
||||
If Not EgtGetGroupObjs(nIdSaw) Then
|
||||
m_nIdSelectedSawRettangle = nIdSaw
|
||||
m_nIdSelectedCurvRettangle = nIdMy
|
||||
|
||||
m_nIdSelectedRegionRettangle = EgtGetFirstNameInGroup(nIdParentPart, NAME_REGION)
|
||||
' recupero i testi cintenuti nel layer Region
|
||||
If m_nIdSelectedRegionRettangle <> GDB_ID.NULL Then
|
||||
Dim nCurrId As Integer = EgtGetFirstInGroup(m_nIdSelectedRegionRettangle)
|
||||
While nCurrId <> GDB_ID.NULL
|
||||
If EgtGetType(nCurrId) = GDB_TY.EXT_TEXT Then
|
||||
Dim sVal As String = String.Empty
|
||||
EgtTextGetContent(nCurrId, sVal)
|
||||
If sVal = "*TOP*" Then
|
||||
m_nIdSelectedTextTopRettangle = nCurrId
|
||||
Else
|
||||
m_nIdSelectedTextRettangle = nCurrId
|
||||
m_sTextContent = GetMyRettangleText(sVal)
|
||||
End If
|
||||
ElseIf EgtGetType(nCurrId) = GDB_TY.SRF_FRGN Then
|
||||
m_nIdSelectedFlatSurfRettangle = nCurrId
|
||||
End If
|
||||
nCurrId = EgtGetNext(nCurrId)
|
||||
End While
|
||||
End If
|
||||
' seleziono ed evidenzio il lato selezionato
|
||||
EgtSelectObj(nIdSaw)
|
||||
EgtSetMark(nIdSaw)
|
||||
EgtSelectObj(nIdMy)
|
||||
EgtDraw()
|
||||
Exit While
|
||||
End If
|
||||
End If
|
||||
' se le'elemto corrente non è una linea
|
||||
End If
|
||||
' se le'elemto corrente non appartiene al layer OutLoop passo al prossimo elemento dell'elenco
|
||||
nIdMy = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
End Sub
|
||||
|
||||
' restituisce il valore del Text ripulito dalle dimensioni
|
||||
Private Function GetMyRettangleText(sTextPz As String) As String
|
||||
' da DrawPageUC.xaml.vb/MultipleInsert
|
||||
Dim sText As String = String.Empty
|
||||
If sTextPz.Contains("<br/>") Then
|
||||
Dim nLastIndex As Integer = sTextPz.LastIndexOf(">")
|
||||
sText = sTextPz.Remove(nLastIndex + 1)
|
||||
Return sText
|
||||
End If
|
||||
If sTextPz.Contains(" ") Then
|
||||
Dim sInfo() As String = sTextPz.Split(" ")
|
||||
If sInfo.Count > 3 Then
|
||||
Return sText = sInfo(0) & " " & sInfo(1) & " "
|
||||
End If
|
||||
End If
|
||||
Return sText
|
||||
End Function
|
||||
|
||||
' verifico che la figura selezionata sia realmente un rettangolo
|
||||
Private Function IsRettangle(ByRef IdSideList() As Integer) As Boolean
|
||||
' creo una lista con i lati del rettangolo
|
||||
Dim nCounter As Integer = 0
|
||||
' recupero i lati dal leyer "OutLoop"
|
||||
Dim IdSideRettangle As Integer = EgtGetFirstInGroup(m_nIdSelectedOutLoopRettangle)
|
||||
While IdSideRettangle <> GDB_ID.NULL And nCounter < 4
|
||||
Dim sVal As String = String.Empty
|
||||
Dim dPrevAng As Double = 0
|
||||
EgtGetInfo(IdSideRettangle, "PrevAng", sVal)
|
||||
StringToDouble(sVal, dPrevAng)
|
||||
Dim dNextAng As Double = 0
|
||||
EgtGetInfo(IdSideRettangle, "NextAng", sVal)
|
||||
StringToDouble(sVal, dNextAng)
|
||||
' se gli angoli non sono retti allora esco senza caricare il lato corrente
|
||||
If Math.Abs(dPrevAng - 90) > EPS_ANG_SMALL OrElse Math.Abs(dNextAng - 90) > EPS_ANG_SMALL Then
|
||||
Exit While
|
||||
End If
|
||||
IdSideList(nCounter) = IdSideRettangle
|
||||
nCounter += 1
|
||||
IdSideRettangle = EgtGetNext(IdSideRettangle)
|
||||
End While
|
||||
' verifico che siano solo quattro lati
|
||||
If IdSideRettangle = GDB_ID.NULL And nCounter = 4 Then
|
||||
' solo se la figura ha 4 lati ortogonali
|
||||
Return True
|
||||
End If
|
||||
|
||||
m_nIdSelectedOutLoopRettangle = GDB_ID.NULL
|
||||
' la figura presenta più/meno di 4 lati
|
||||
Return False
|
||||
End Function
|
||||
|
||||
' recupero le informazioni correnti per sapere se la figura è mdificabile
|
||||
Private Function GetRettangleInfoScale(ByRef frFixed As Frame3d, ByRef MaxLen As Double, ByRef MinLen As Double) As Vector3d
|
||||
' determino la direzione del lato selezionato
|
||||
Dim vtDirSelectedCurv As New Vector3d
|
||||
EgtStartVector(m_nIdSelectedCurvRettangle, GDB_ID.ROOT, vtDirSelectedCurv)
|
||||
|
||||
' recupero il lato successivo a quello selezionato
|
||||
Dim Index As Integer = 0
|
||||
Dim Len As Double = 0
|
||||
For Ind As Integer = 0 To 3
|
||||
If m_SideListRettangle(Ind) = m_nIdSelectedCurvRettangle Then
|
||||
' verifico se esiste un lato Precedente altrimenti recupero l'ultimo della lista
|
||||
If Ind = 0 Then
|
||||
Index = 3
|
||||
Else
|
||||
Index = Ind - 1
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
' recupero la dimensione del lato
|
||||
EgtCurveLength(m_SideListRettangle(Index), MaxLen)
|
||||
EgtCurveLength(m_nIdSelectedCurvRettangle, MinLen)
|
||||
|
||||
' verifico che il lato selezionato sia il maggiore
|
||||
If MinLen > MaxLen Then Return Nothing
|
||||
|
||||
' determimo il versore dal lato appena calcolato
|
||||
Dim vtDir As New Vector3d
|
||||
|
||||
EgtStartVector(m_SideListRettangle(Index), GDB_ID.ROOT, vtDir)
|
||||
vtDir.Normalize()
|
||||
Dim dProjectionBaseX As Double = vtDir * Vector3d.X_AX
|
||||
Dim ptFixed As New Point3d
|
||||
EgtStartPoint(m_SideListRettangle(Index), GDB_ID.ROOT, ptFixed)
|
||||
|
||||
Dim vtPerp As New Vector3d(vtDir.x, vtDir.y, vtDir.z)
|
||||
vtPerp.Rotate(Vector3d.Z_AX, 90)
|
||||
|
||||
' determino il Frame corrente
|
||||
frFixed = New Frame3d(ptFixed, vtDir, vtPerp, Vector3d.Z_AX)
|
||||
|
||||
Return vtDir
|
||||
|
||||
End Function
|
||||
|
||||
' funzione chiamata da OnMyMouseMoveScene: gestisce la modifica lungo una dimensione del rettangolo selezionato
|
||||
Private Sub OnMyMouseMoveSawRettangle(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
' Verifico di essere il gestore attivo
|
||||
If Not m_bActive Then Return
|
||||
' Se drag non abilitato o già in esecuzione, esco
|
||||
If Not m_bDrag Or m_bDragging Then Return
|
||||
' Se primo movimento di drag, verifico di aver superato la soglia di movimento in pixel
|
||||
If m_bDragToStart Then
|
||||
If Math.Abs(e.Location.X - m_locPrev.X) < m_nRestRadius And
|
||||
Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
||||
Return
|
||||
End If
|
||||
m_bDragToStart = False
|
||||
End If
|
||||
|
||||
' riferiemento che deve rimanere fisso del rettangolo
|
||||
Dim frFixed As Frame3d = Nothing
|
||||
' lunghezza del lato da modificare
|
||||
Dim MaxLen As Double = 0
|
||||
Dim MinLen As Double = 0
|
||||
' recupero info sul rettangolo selezionato
|
||||
Dim vtDir As Vector3d = GetRettangleInfoScale(frFixed, MaxLen, MinLen)
|
||||
If vtDir.Equals(Vector3d.NULL) Then
|
||||
Return
|
||||
End If
|
||||
|
||||
' Inizio esecuzione di drag
|
||||
m_bDragging = True
|
||||
|
||||
' Ricavo il punto corrente in coordinate mondo
|
||||
Dim ptCurr As Point3d
|
||||
EgtUnProjectPoint(e.Location, ptCurr)
|
||||
' Ricavo il vettore di movimento
|
||||
Dim vtMove As Vector3d = ptCurr - m_ptPrev
|
||||
' ricavo il valore efficace di allungamento (la proiezione)
|
||||
Dim dProjection As Double = vtMove * vtDir
|
||||
vtMove = vtDir * dProjection
|
||||
' recupero il valore di scalatura
|
||||
Dim dScalefactor = dProjection / MaxLen + 1
|
||||
|
||||
' Modifico dimensione figura
|
||||
If Math.Abs(dScalefactor) > EPS_SMALL * EPS_SMALL Then
|
||||
EgtScale(m_nIdSelectedOutLoopRettangle, frFixed, dScalefactor, 1, 1, GDB_ID.ROOT)
|
||||
EgtScale(m_nIdSelectedFlatSurfRettangle, frFixed, dScalefactor, 1, 1, GDB_ID.ROOT)
|
||||
Dim ptCen As Point3d
|
||||
EgtCenterPoint(m_nIdSelectedTextRettangle, ptCen)
|
||||
EgtModifyText(m_nIdSelectedTextRettangle, m_sTextContent & LenToString(MaxLen + dProjection, 2) & " x " & LenToString(MinLen, 2))
|
||||
EgtMove(m_nIdSelectedTextRettangle, vtMove * 0.5)
|
||||
If m_nIdSelectedTextTopRettangle <> GDB_ID.NULL Then
|
||||
EgtMove(m_nIdSelectedTextTopRettangle, vtMove * 0.5)
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim nWarn As Integer = 0
|
||||
ResetAllMachinings(nWarn)
|
||||
EnableReferenceRegion(False)
|
||||
' se la modifica genera un errore allora ripristino la figura prima della defomrazione
|
||||
If Not EgtVerifyPart(EgtGetParent(m_nIdSelectedOutLoopRettangle), True) Then
|
||||
EgtScale(m_nIdSelectedOutLoopRettangle, frFixed, 1 / dScalefactor, 1, 1, GDB_ID.ROOT)
|
||||
EgtScale(m_nIdSelectedFlatSurfRettangle, frFixed, 1 / dScalefactor, 1, 1, GDB_ID.ROOT)
|
||||
Dim ptCen As Point3d
|
||||
EgtCenterPoint(m_nIdSelectedTextRettangle, ptCen)
|
||||
EgtModifyText(m_nIdSelectedTextRettangle, m_sTextContent & LenToString(MaxLen, 2) & " x " & LenToString(MinLen, 2))
|
||||
EgtMove(m_nIdSelectedTextRettangle, -vtMove * 0.5)
|
||||
If m_nIdSelectedTextTopRettangle <> GDB_ID.NULL Then
|
||||
EgtMove(m_nIdSelectedTextTopRettangle, -vtMove * 0.5)
|
||||
End If
|
||||
End If
|
||||
|
||||
EgtDraw()
|
||||
' Aggiorno il punto precedente
|
||||
m_ptPrev = ptCurr
|
||||
' Terminata esecuzione di drag
|
||||
m_bDragging = False
|
||||
End Sub
|
||||
|
||||
' funzione chiamata da OnMyMouseUp: gestisce il reset di tutti gli indici in uso
|
||||
Public Sub ResetDragRettangleParam()
|
||||
' deseleziono l'elemento corrente
|
||||
EgtDeselectObj(m_nIdSelectedSawRettangle)
|
||||
EgtDeselectObj(m_nIdSelectedCurvRettangle)
|
||||
EgtResetMark(m_nIdSelectedSawRettangle)
|
||||
' resetto gli indici
|
||||
m_nIdSelectedOutLoopRettangle = GDB_ID.NULL
|
||||
m_nIdSelectedRegionRettangle = GDB_ID.NULL
|
||||
m_nIdSelectedSawRettangle = GDB_ID.NULL
|
||||
m_nIdSelectedCurvRettangle = GDB_ID.NULL
|
||||
m_nIdSelectedTextRettangle = GDB_ID.NULL
|
||||
m_nIdSelectedTextTopRettangle = GDB_ID.NULL
|
||||
m_nIdSelectedFlatSurfRettangle = GDB_ID.NULL
|
||||
m_SideListRettangle = {GDB_ID.NULL, GDB_ID.NULL, GDB_ID.NULL, GDB_ID.NULL}
|
||||
m_sTextContent = String.Empty
|
||||
' disattivo il drag
|
||||
m_bDrag = False
|
||||
' aggiorno le lavorazioni
|
||||
Dim nWarn As Integer = 0
|
||||
ResetAllMachinings(nWarn)
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
#End Region ' Drag Rettangolo
|
||||
|
||||
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
|
||||
' Verifico di essere il gestore attivo e non in modalità registrazione
|
||||
If Not m_bActive Or m_bRegister Then Return
|
||||
@@ -184,6 +498,25 @@ Public Class NestPageUC
|
||||
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
||||
Return
|
||||
End If
|
||||
|
||||
' se in modalità slezione tagli
|
||||
If m_bSelectCurv Then
|
||||
OnMyMouseDownSceneSelCurv(sender, e)
|
||||
Return
|
||||
End If
|
||||
|
||||
' se in modalità DragRettangle (deformazione delle componenti rettangolari)
|
||||
If m_bIsCheckedDragRettangle Then
|
||||
OnMyMouseDownSceneSelSideRettangle(sender, e)
|
||||
' Dati per drag (abilito il Drag)
|
||||
m_locPrev = e.Location
|
||||
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev) And m_nIdSelectedCurvRettangle <> GDB_ID.NULL
|
||||
m_bDragToStart = m_bDrag
|
||||
m_bVerify = m_bDrag AndAlso (Keyboard.Modifiers And ModifierKeys.Shift) > 0
|
||||
m_vtTotMove = Vector3d.NULL()
|
||||
Return
|
||||
End If
|
||||
|
||||
' Per default no drag
|
||||
m_bDrag = False
|
||||
' Verifico se selezionato indicativo di pezzo
|
||||
@@ -218,15 +551,15 @@ Public Class NestPageUC
|
||||
' se non è stata eseguita nessuna scelta esco dal ciclo
|
||||
If nRes = 0 Then Exit While
|
||||
' imposto l'altra tavola
|
||||
Dim sOtherTab = If( sNamePartId = MAIN_TAB, SECOND_TAB, MAIN_TAB)
|
||||
EgtChangeTable( sOtherTab, True)
|
||||
m_CurrProjPage.AdjustAdditionalTable( True)
|
||||
Dim sOtherTab = If(sNamePartId = MAIN_TAB, SECOND_TAB, MAIN_TAB)
|
||||
EgtChangeTable(sOtherTab, True)
|
||||
m_CurrProjPage.AdjustAdditionalTable(True)
|
||||
EgtSetMachineLook(MCH_LOOK.TAB)
|
||||
' aggiorno le lavorazioni
|
||||
UpdateAllMachiningsToolpaths()
|
||||
' aggiorno i movimenti pezzi tra disposizioni
|
||||
For nI As Integer = 1 To EgtGetPhaseCount()
|
||||
EgtSetCurrPhase( nI)
|
||||
For nI As Integer = 1 To EgtGetPhaseCount()
|
||||
EgtSetCurrPhase(nI)
|
||||
Dim nDispId As Integer = EgtGetPhaseDisposition(nI)
|
||||
SpecialApplyDisposition(nDispId, True)
|
||||
Next
|
||||
@@ -239,31 +572,31 @@ Public Class NestPageUC
|
||||
Dim nPPId As Integer = EgtGetFirstPart()
|
||||
While nPPId <> GDB_ID.NULL
|
||||
PackPartInStore(nPPId)
|
||||
nPPId = EgtGetNextPart( nPPId)
|
||||
nPPId = EgtGetNextPart(nPPId)
|
||||
End While
|
||||
' se prevista rotazione
|
||||
If GetPrivateProfileInt(S_TABLE, K_CHANGETABWD, 0, m_MainWindow.GetMachIniFile()) = 2 Then
|
||||
' Dati tavola
|
||||
Dim b3Tab As New BBox3d
|
||||
EgtGetTableArea( 1, b3Tab)
|
||||
EgtGetTableArea(1, b3Tab)
|
||||
' Box lastra
|
||||
Dim b3OrigRaw As New BBox3d
|
||||
GetRawBox( b3OrigRaw)
|
||||
GetRawBox(b3OrigRaw)
|
||||
' Allargo i limiti della tavola in tutte le fasi
|
||||
Const TAB_OFFS As Double = 3000
|
||||
For nI As Integer = 1 To EgtGetPhaseCount()
|
||||
EgtSetCurrPhase(nI)
|
||||
EgtSetTableAreaOffset( TAB_OFFS, TAB_OFFS, TAB_OFFS, TAB_OFFS)
|
||||
EgtSetTableAreaOffset(TAB_OFFS, TAB_OFFS, TAB_OFFS, TAB_OFFS)
|
||||
Next
|
||||
EgtSetCurrPhase(1)
|
||||
' Rotazione
|
||||
Dim dAngRot As Double = If(sOtherTab = SECOND_TAB, 180, -180)
|
||||
if Not RotateAllRawParts(dAngRot, False) Then
|
||||
If Not RotateAllRawParts(dAngRot, False) Then
|
||||
m_CurrProjPage.SetWarningMessage(EgtMsg(90339)) 'Rotazione impossibile
|
||||
End If
|
||||
' Traslazione per riportare la lastra nella stessa posizione rispetto all'angolo BL che diveta TR e viceversa
|
||||
Dim b3Raw As New BBox3d
|
||||
GetRawBox( b3Raw)
|
||||
GetRawBox(b3Raw)
|
||||
Dim vtMove As Vector3d
|
||||
If sOtherTab = SECOND_TAB Then
|
||||
Dim vtDiffIni As Vector3d = b3OrigRaw.Min() - b3Tab.Min()
|
||||
@@ -272,14 +605,14 @@ Public Class NestPageUC
|
||||
Else
|
||||
Dim vtDiffIni As Vector3d = b3Tab.Max() - b3OrigRaw.Max()
|
||||
Dim vtDiffFin As Vector3d = b3Raw.Min() - b3Tab.Min()
|
||||
vtMove = -( vtDiffFin - vtDiffIni)
|
||||
vtMove = -(vtDiffFin - vtDiffIni)
|
||||
End If
|
||||
vtMove.z = 0
|
||||
MoveAllRawParts(vtMove)
|
||||
' Ripristino i limiti della tavola in tutte le fasi
|
||||
For nI As Integer = 1 To EgtGetPhaseCount()
|
||||
EgtSetCurrPhase(nI)
|
||||
EgtSetTableAreaOffset( 0, 0, 0, 0)
|
||||
EgtSetTableAreaOffset(0, 0, 0, 0)
|
||||
Next
|
||||
EgtSetCurrPhase(1)
|
||||
HideAllMachinings()
|
||||
@@ -312,6 +645,13 @@ Public Class NestPageUC
|
||||
End If
|
||||
m_bDragToStart = False
|
||||
End If
|
||||
|
||||
' se devo muovere un lato del rettangolo
|
||||
If m_bIsCheckedDragRettangle Then
|
||||
OnMyMouseMoveSawRettangle(sender, e)
|
||||
Return
|
||||
End If
|
||||
|
||||
' Determino cosa muovere
|
||||
Dim nMoveId = If(m_nIdToSel <> GDB_ID.NULL, m_nIdToSel, GDB_ID.SEL)
|
||||
' Verifico se in tavola o in parcheggio
|
||||
@@ -402,6 +742,15 @@ Public Class NestPageUC
|
||||
Private Sub OnMyMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseUpScene
|
||||
' Verifico di essere il gestore attivo
|
||||
If Not m_bActive Then Return
|
||||
' verifico che non sia attivo il comando Test
|
||||
If m_bSelectCurv Then Return
|
||||
' verifico che non sia attivo il comando di Drag dei rettangoli
|
||||
If m_bIsCheckedDragRettangle Then
|
||||
' deseleziono gli oggeti, resetto le variabili usate, aggiorno il disegno
|
||||
ResetDragRettangleParam()
|
||||
Return
|
||||
End If
|
||||
|
||||
' Se eseguito drag
|
||||
If Not m_bDragToStart Then
|
||||
' Se movimento con sola verifica finale
|
||||
@@ -412,16 +761,16 @@ Public Class NestPageUC
|
||||
UpdateNestRegions()
|
||||
EnableReferenceRegion(False)
|
||||
' Eseguo verifica
|
||||
If VerifyTrfData( nMoveId) And EgtVerifyPart( nMoveId, m_bReducedCut) Then
|
||||
If VerifyTrfData(nMoveId) And EgtVerifyPart(nMoveId, m_bReducedCut) Then
|
||||
m_CurrProjPage.ResetOrderMachiningFlag()
|
||||
' Non superata riporto alla posizione iniziale
|
||||
' Non superata riporto alla posizione iniziale
|
||||
Else
|
||||
If m_bFromParking Then
|
||||
m_CurrProjPage.ClearMessage()
|
||||
PreRemoveOnePart( nMoveId)
|
||||
VeinMatching.OnRemovePartFromRaw( nMoveId)
|
||||
PreRemoveOnePart(nMoveId)
|
||||
VeinMatching.OnRemovePartFromRaw(nMoveId)
|
||||
Else
|
||||
EgtMove( nMoveId, -m_vtTotMove)
|
||||
EgtMove(nMoveId, -m_vtTotMove)
|
||||
' Eventuale notifica al VeinMatching
|
||||
If nMoveId = GDB_ID.SEL Then
|
||||
Dim nId As Integer = EgtGetFirstSelectedObj()
|
||||
@@ -435,11 +784,11 @@ Public Class NestPageUC
|
||||
End If
|
||||
End If
|
||||
m_bFromParking = False
|
||||
' altrimenti caso con verifica durante il movimento
|
||||
' altrimenti caso con verifica durante il movimento
|
||||
Else
|
||||
' Basta reset alla fine
|
||||
End If
|
||||
' Se selezione da eseguire
|
||||
' Se selezione da eseguire
|
||||
ElseIf m_nIdToSel <> GDB_ID.NULL Then
|
||||
' Determino se pezzo in tavola o in parcheggio
|
||||
Dim bPartInTable As Boolean = (EgtGetParent(m_nIdToSel) = m_nRawId)
|
||||
@@ -456,7 +805,7 @@ Public Class NestPageUC
|
||||
VeinMatching.OnSelectPart(m_nIdToSel)
|
||||
' Set flag posizione selezionati
|
||||
m_nPartPos = If(bPartInTable, PART_POS.IN_TABLE, PART_POS.OUT_TABLE)
|
||||
' Se deselezione da eseguire
|
||||
' Se deselezione da eseguire
|
||||
ElseIf m_nIdToDesel <> GDB_ID.NULL Then
|
||||
EgtDeselectObj(m_nIdToDesel)
|
||||
' Eventuale aggiornamento VeinMatching
|
||||
@@ -1168,7 +1517,7 @@ Public Class NestPageUC
|
||||
nLayId = EgtGetNextName(nLayId, NAME_INLOOP)
|
||||
End While
|
||||
' Aggiorno le entità con tallone e quelle con angolo esterno
|
||||
Const AGG_DEPTH As Double = 2.0
|
||||
Const AGG_DEPTH As Double = 0.75
|
||||
Dim bSizeOnTop As Boolean = ( GetPrivateProfileInt( S_SIDES, K_SIZEALWAYSONTOP, 0, m_MainWindow.GetIniFile()) <> 0)
|
||||
For Each nEnt As Integer In vEnt
|
||||
' Se aggiornamento vietato, vado oltre
|
||||
@@ -1194,12 +1543,14 @@ Public Class NestPageUC
|
||||
EgtSetInfo(nEnt, INFO_OFFSET2, 0)
|
||||
End If
|
||||
EgtSetInfo(nEnt, INFO_DEPTH2, (dTh - dHeel) + AGG_DEPTH)
|
||||
EgtSetInfo(nEnt, INFO_AGG2, AGG_DEPTH)
|
||||
' altrimenti, tallone superiore a spessore -> non c'è taglio inclinato
|
||||
Else
|
||||
EgtSetInfo(nEnt, INFO_SIDE_ANGLE, 0.0)
|
||||
EgtSetInfo(nEnt, INFO_SIDE_ANGLE2, 0.0)
|
||||
EgtRemoveInfo(nEnt, INFO_OFFSET2)
|
||||
EgtRemoveInfo(nEnt, INFO_DEPTH2)
|
||||
EgtRemoveInfo(nEnt, INFO_AGG2)
|
||||
End If
|
||||
' Inclinazione interna
|
||||
Else
|
||||
@@ -1208,12 +1559,14 @@ Public Class NestPageUC
|
||||
EgtSetInfo(nEnt, INFO_OFFSET, dHeel * Math.Tan(-dSideAng * Math.PI / 180))
|
||||
EgtSetInfo(nEnt, INFO_SIDE_ANGLE2, 0.0)
|
||||
EgtSetInfo(nEnt, INFO_DEPTH2, dHeel + AGG_DEPTH)
|
||||
EgtSetInfo(nEnt, INFO_AGG2, AGG_DEPTH)
|
||||
' altrimenti, tallone superiore a spessore -> non c'è taglio inclinato
|
||||
Else
|
||||
EgtSetInfo(nEnt, INFO_SIDE_ANGLE, 0.0)
|
||||
EgtRemoveInfo(nEnt, INFO_OFFSET)
|
||||
EgtRemoveInfo(nEnt, INFO_SIDE_ANGLE2)
|
||||
EgtRemoveInfo(nEnt, INFO_DEPTH2)
|
||||
EgtRemoveInfo(nEnt, INFO_AGG2)
|
||||
End If
|
||||
End If
|
||||
' Se altrimenti inclinazione esterna
|
||||
@@ -1228,6 +1581,18 @@ Public Class NestPageUC
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub DragRettangle_Click() Handles DragRettanleBtn.Click
|
||||
If DragRettanleBtn.IsChecked Then
|
||||
m_bIsCheckedDragRettangle = True
|
||||
Else
|
||||
m_bIsCheckedDragRettangle = False
|
||||
ResetDragRettangleParam()
|
||||
m_CurrProjPage.ClearMessage()
|
||||
ShowParkedParts()
|
||||
End If
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
Private Sub StorePartBtn_Click(sender As Object, e As RoutedEventArgs) Handles StorePartBtn.Click
|
||||
EgtSetCurrentContext(m_CurrProjPage.CurrentProjectScene.GetCtx())
|
||||
' Ciclo di parcheggio dei pezzi selezionati
|
||||
|
||||
@@ -166,6 +166,17 @@ Public Module SplitAuto
|
||||
End Function
|
||||
|
||||
'-----------------------------------------------------------------------------------------------
|
||||
' calcolo il numero di tipi di lavorazioni
|
||||
Friend Sub CountMachiningType(MachSplit As SplitMach, ByRef nCountSawing As Integer, ByRef nCountWaterjetting As Integer, ByRef nCountOtherMachining As Integer)
|
||||
If MachSplit.m_nType = MCH_OY.SAWING Then
|
||||
nCountSawing += 1
|
||||
ElseIf MachSplit.m_nType = MCH_OY.WATERJETTING Then
|
||||
nCountWaterjetting += 1
|
||||
Else
|
||||
nCountOtherMachining += 1
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Sub ColorMachining(MachSplit As SplitMach, Optional bReset As Boolean = False)
|
||||
EgtDisableModified()
|
||||
' Assegno stato
|
||||
|
||||
+428
-78
@@ -6,6 +6,9 @@ Public Class SplitPageUC
|
||||
|
||||
' Riferimento alla MainWindow
|
||||
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||
Private WithEvents m_CurrProjPage As CurrentProjectPageUC
|
||||
' Flag di pagina attiva
|
||||
Private m_bActive As Boolean = False
|
||||
' Tipo movimento dei grezzi (manuale o con testa ventosa)
|
||||
Private m_bByHand As Boolean = True
|
||||
' Abilitazione movimento finale pezzi su tavola ausiliaria
|
||||
@@ -13,6 +16,16 @@ Public Class SplitPageUC
|
||||
' Stato
|
||||
Private m_nCurrPhase As Integer = 0
|
||||
Private m_MachiningList As New List(Of SplitMach)
|
||||
|
||||
' numero di lavorazioni di tipo lama
|
||||
Private m_nCountSawing As Integer = 0
|
||||
' numero di lavprazioni di tipo waterjet
|
||||
Private m_nCountWaterjetting As Integer = 0
|
||||
' altri tipi di lavorazioni (Foro/Fresa)
|
||||
Private m_nCountOtherMachining As Integer = 0
|
||||
' verifico che le lavorazioni selezionate siano omogenee (con lo stesso utensile)
|
||||
Private m_bAreHomogeneous As Boolean = False
|
||||
|
||||
Private m_ItemList As New ObservableCollection(Of NameIdLsBxItem)
|
||||
'Private m_CurrInd As Integer = -1
|
||||
'Private m_CurrItems As New List(Of NameIdLsBxItem)
|
||||
@@ -23,6 +36,13 @@ Public Class SplitPageUC
|
||||
Private m_nNbrGrpId As Integer = GDB_ID.NULL
|
||||
Private m_bToNext As Boolean = False
|
||||
Friend m_bOnAuxTab As Boolean = False
|
||||
' Drag
|
||||
Private m_nDragInd As Integer = -1
|
||||
Private m_nDragType As Integer = 0 '0=niente, 1=attacco, 2=uscita
|
||||
Private m_ptDragPrev As Point3d
|
||||
Private m_bDragging As Boolean = False
|
||||
' Selected cut
|
||||
Private m_nSelected As Integer = GDB_ID.NULL
|
||||
|
||||
Private Sub SplitPageUC_Initialized(sender As Object, e As EventArgs)
|
||||
PrevBtn.IsEnabled = False
|
||||
@@ -53,6 +73,10 @@ Public Class SplitPageUC
|
||||
End Sub
|
||||
|
||||
Private Sub SplitPageUC_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded
|
||||
m_bActive = True
|
||||
m_CurrProjPage = m_MainWindow.m_CurrentProjectPageUC
|
||||
m_nDragInd = -1
|
||||
m_nDragType = 0
|
||||
' Leggo tipo movimento grezzi
|
||||
m_bByHand = (EgtGetHeadId(VACUUM_HEAD) = GDB_ID.NULL Or
|
||||
Not m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.AUTO_MANIP) Or
|
||||
@@ -79,7 +103,7 @@ Public Class SplitPageUC
|
||||
If Not m_bShow Then
|
||||
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then ResetAllMachinings()
|
||||
If SortAllMachinings() Then m_MainWindow.m_CurrentProjectPageUC.SetOrderMachiningFlag()
|
||||
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
|
||||
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
|
||||
Dim bModif As Boolean = TestAllMachiningsForStrict()
|
||||
If bModif Then m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(90321)) 'Ridotte alcune lavorazioni per evitare interferenze
|
||||
End If
|
||||
@@ -97,12 +121,18 @@ Public Class SplitPageUC
|
||||
ShowOnePhaseMachiningPreview(m_nCurrPhase)
|
||||
' Preparo la lista delle lavorazioni
|
||||
CalculateSplitMachList(m_nCurrPhase, m_MachiningList)
|
||||
' azzero i contatori delle lavorazioni
|
||||
m_nCountSawing = 0
|
||||
m_nCountWaterjetting = 0
|
||||
m_nCountOtherMachining = 0
|
||||
' Aggiorno visualizzazione delle lavorazioni
|
||||
For nI As Integer = 0 To m_MachiningList.Count() - 1
|
||||
' sistemo colore
|
||||
ColorMachining(m_MachiningList(nI))
|
||||
' assegno numerazione
|
||||
NumberDirectionMachining(nI)
|
||||
' conto il numero di tipi di lavorazioni
|
||||
CountMachiningType(m_MachiningList(nI), m_nCountSawing, m_nCountWaterjetting, m_nCountOtherMachining)
|
||||
Next
|
||||
' Preparo la lista degli Item
|
||||
ShowMachiningList()
|
||||
@@ -138,33 +168,222 @@ Public Class SplitPageUC
|
||||
Dim sText As String = String.Empty
|
||||
If Math.Abs(Mach.m_dSideAng) < EPS_ANG_SMALL Then
|
||||
sText = EgtMsg(90791) & " " & i.ToString()
|
||||
If Mach.m_sLay = NAME_ONPATH Then AddTopText( sText)
|
||||
If Mach.m_sLay = NAME_ONPATH Then AddTopText(sText)
|
||||
Else
|
||||
sText = EgtMsg(90791) & " " & i.ToString() & " " & DoubleToString( Mach.m_dSideAng, 2) & "°"
|
||||
sText = EgtMsg(90791) & " " & i.ToString() & " " & DoubleToString(Mach.m_dSideAng, 2) & "°"
|
||||
End If
|
||||
If Mach.m_bPause Then AddPauseText(sText)
|
||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled))
|
||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.SAWING))
|
||||
ElseIf Mach.m_nType = MCH_OY.DRILLING Then ' Foratura
|
||||
Dim sText As String = EgtMsg(90792) & " " & i.ToString()
|
||||
If Mach.m_bPause Then AddPauseText(sText)
|
||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled))
|
||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.DRILLING))
|
||||
ElseIf Mach.m_nType = MCH_OY.MILLING Then ' Fresatura
|
||||
Dim sText As String = EgtMsg(90793) & " " & i.ToString()
|
||||
If Mach.m_sLay = NAME_ONPATH Then AddTopText( sText)
|
||||
If Mach.m_bPause Then AddPauseText( sText)
|
||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled))
|
||||
If Mach.m_sLay = NAME_ONPATH Then AddTopText(sText)
|
||||
If Mach.m_bPause Then AddPauseText(sText)
|
||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.MILLING))
|
||||
ElseIf Mach.m_nType = MCH_OY.POCKETING Then ' Svuotatura
|
||||
Dim sText As String = EgtMsg(90796) & " " & i.ToString()
|
||||
If Mach.m_bPause Then AddPauseText(sText)
|
||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled))
|
||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.POCKETING))
|
||||
ElseIf Mach.m_nType = MCH_OY.WATERJETTING Then ' Waterjet
|
||||
Dim sText As String = EgtMsg(90797) & " " & i.ToString()
|
||||
If Mach.m_bPause Then AddPauseText(sText)
|
||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled))
|
||||
m_ItemList.Add(New NameIdLsBxItem(sText, i - 1, Mach.m_bEnabled, MCH_OY.WATERJETTING))
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
|
||||
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
|
||||
If Not m_bActive OrElse m_bShow Then Return
|
||||
' Si può selezionare solo con il tasto sinistro e se stato NULL
|
||||
If e.Button <> Windows.Forms.MouseButtons.Left Or
|
||||
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
||||
Return
|
||||
End If
|
||||
' Reset drag
|
||||
m_nDragInd = -1
|
||||
m_nDragType = 0
|
||||
' Reset selection interface
|
||||
m_nSelected = GDB_ID.NULL
|
||||
' Verifico se selezionato estremo di taglio con lama
|
||||
EgtSetObjFilterForSelWin(False, True, False, False, False)
|
||||
Dim nSel As Integer
|
||||
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
|
||||
Dim nId As Integer = EgtGetFirstObjInSelWin()
|
||||
While nId <> GDB_ID.NULL
|
||||
' Verifico sia un attacco o uscita di taglio con lama
|
||||
Dim nType As Integer = 0
|
||||
Dim sName As String = ""
|
||||
EgtGetName(nId, sName)
|
||||
If String.Compare(sName, NAME_PV_PRECUT) = 0 Then
|
||||
nType = 1
|
||||
ElseIf String.Compare(sName, NAME_PV_POSTCUT) = 0 Then
|
||||
nType = 2
|
||||
ElseIf String.Compare(sName, NAME_PV_CUT) = 0 Then
|
||||
nType = 3
|
||||
End If
|
||||
If nType = 1 Or nType = 2 Then
|
||||
Dim nPvId As Integer = EgtGetParent(EgtGetParent(nId))
|
||||
Dim nMchId As Integer = GDB_ID.NULL
|
||||
If EgtGetInfo(nPvId, "MId", nMchId) Then
|
||||
For nInd As Integer = 0 To m_MachiningList.Count() - 1
|
||||
If m_MachiningList(nInd).m_nId = nMchId Then
|
||||
m_nDragInd = nInd
|
||||
m_nDragType = nType
|
||||
End If
|
||||
For nJ As Integer = 0 To m_MachiningList(nInd).m_vOthId.Count() - 1
|
||||
If m_MachiningList(nInd).m_vOthId(nJ) = nMchId Then
|
||||
m_nDragInd = nInd
|
||||
m_nDragType = nType
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
If m_nDragInd >= 0 Then
|
||||
' Assegno l'id dell'elemnto selezionato
|
||||
m_nSelected = m_nDragInd
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
If m_nDragInd >= 0 Then
|
||||
' Assegno l'id dell'elemnto selezionato
|
||||
m_nSelected = m_nDragInd
|
||||
Exit While
|
||||
End If
|
||||
ElseIf nType = 3 Then
|
||||
Dim nPvId As Integer = EgtGetParent(EgtGetParent(nId))
|
||||
Dim nMchId As Integer = GDB_ID.NULL
|
||||
If EgtGetInfo(nPvId, "MId", nMchId) Then
|
||||
For nInd As Integer = 0 To m_MachiningList.Count() - 1
|
||||
If m_MachiningList(nInd).m_nId = nMchId Then
|
||||
m_nSelected = nInd
|
||||
End If
|
||||
For nJ As Integer = 0 To m_MachiningList(nInd).m_vOthId.Count() - 1
|
||||
If m_MachiningList(nInd).m_vOthId(nJ) = nMchId Then
|
||||
m_nSelected = nInd
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
If m_nSelected >= 0 Then Exit For
|
||||
Next
|
||||
End If
|
||||
If m_nSelected >= 0 Then Exit While
|
||||
End If
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
' Sistemazioni per drag
|
||||
If m_nSelected >= 0 AndAlso EgtUnProjectPoint(e.Location, m_ptDragPrev) Then
|
||||
MachiningLsBx.SelectedIndex = m_nSelected
|
||||
Else
|
||||
m_nDragInd = -1
|
||||
m_nDragType = 0
|
||||
m_nSelected = GDB_ID.NULL
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseMoveScene
|
||||
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
|
||||
If Not m_bActive OrElse m_bShow Then Return
|
||||
' Se drag non abilitato o in corso
|
||||
If m_nDragInd = -1L Or m_bDragging Then Return
|
||||
m_bDragging = True
|
||||
Dim nOperId As Integer = m_MachiningList(m_nDragInd).m_nId
|
||||
' Ricavo il punto corrente in coordinate mondo
|
||||
Dim ptCurr As Point3d
|
||||
EgtUnProjectPoint(e.Location, ptCurr)
|
||||
' Ricavo il vettore di movimento e la variazione di lunghezza
|
||||
Dim vtMove As Vector3d = ptCurr - m_ptDragPrev
|
||||
Dim dDelta = vtMove * m_MachiningList(m_nDragInd).m_vtDir
|
||||
If m_nDragType = 1 Then
|
||||
Dim dOrigUsal As Double = 0
|
||||
Dim dUsal As Double
|
||||
' ----------------------- REPEAT -----------------------
|
||||
Do
|
||||
dDelta = -dDelta
|
||||
' Leggo il valore salvato nella geometria
|
||||
EgtGetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
|
||||
dUsal = dOrigUsal + dDelta
|
||||
' Se c'è limite alla lunghezza libera
|
||||
If m_MachiningList(m_nDragInd).m_dStartFreeLen < FREELEN_INF Then
|
||||
' Recupero sicurezza in corner interno
|
||||
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
|
||||
' Recupero lunghezza baffo del taglio
|
||||
Dim nPvId As Integer = GDB_ID.NULL
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
|
||||
Dim dDT As Double = 0
|
||||
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
|
||||
dUsal = Math.Min(dUsal, m_MachiningList(m_nDragInd).m_dStartFreeLen - dDT - dCornerSafety)
|
||||
End If
|
||||
' Modifica della lavorazione
|
||||
EgtSetCurrMachining(nOperId)
|
||||
Dim dAddLen As Double = 0
|
||||
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
|
||||
|
||||
If dAddLen - dOrigUsal < -10 * EPS_SMALL Then
|
||||
m_bDragging = False
|
||||
Return
|
||||
End If
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen + dUsal - dOrigUsal)
|
||||
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dUsal)
|
||||
Loop Until UpdateMachiningPreview(m_MachiningList(m_nDragInd).m_nId, True)
|
||||
' ----------------------- REPEAT (solo se il segmento scompare) -----------------------
|
||||
Else
|
||||
Dim dOrigUeal As Double = 0
|
||||
Dim dUeal As Double
|
||||
dDelta = -dDelta
|
||||
Do
|
||||
dDelta = -dDelta
|
||||
' Leggo il valore salvato nella geometria
|
||||
EgtGetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
|
||||
dUeal = dOrigUeal + dDelta
|
||||
' Se c'è limite alla lunghezza libera
|
||||
If m_MachiningList(m_nDragInd).m_dEndFreeLen < FREELEN_INF Then
|
||||
' Recupero sicurezza in corner interno
|
||||
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
|
||||
' Recupero lunghezza baffo del taglio
|
||||
Dim nPvId As Integer = GDB_ID.NULL
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
|
||||
Dim dDT As Double = 0
|
||||
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
|
||||
dUeal = Math.Min(dUeal, m_MachiningList(m_nDragInd).m_dEndFreeLen - dDT - dCornerSafety)
|
||||
End If
|
||||
' Modifica della lavorazione
|
||||
EgtSetCurrMachining(nOperId)
|
||||
Dim dAddLen As Double = 0
|
||||
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
|
||||
|
||||
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then
|
||||
m_bDragging = False
|
||||
Return
|
||||
End If
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen + dUeal - dOrigUeal)
|
||||
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dUeal)
|
||||
Loop Until UpdateMachiningPreview(m_MachiningList(m_nDragInd).m_nId, True)
|
||||
End If
|
||||
' verifico interferenza
|
||||
EgtVerifyMachining(m_MachiningList(m_nDragInd).m_nId, m_MachiningList(m_nDragInd).m_nInterf)
|
||||
ColorMachining(m_MachiningList(m_nDragInd))
|
||||
ColorNumberArrow(m_nDragInd)
|
||||
' Aggiorno visualizzazione
|
||||
EgtDraw()
|
||||
m_bModified = True
|
||||
' Aggiorno punto e stato di drag
|
||||
m_ptDragPrev = ptCurr
|
||||
m_bDragging = False
|
||||
End Sub
|
||||
|
||||
Private Sub OnMyMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseUpScene
|
||||
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
|
||||
If Not m_bActive OrElse m_bShow Then Return
|
||||
' Se drag in corso
|
||||
If m_nDragInd >= 0 Then
|
||||
m_nDragInd = -1
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub AddPauseText(ByRef sName As String)
|
||||
sName &= " " & EgtMsg(MSG_SPLITPAGEUC + 32) ' Pausa
|
||||
End Sub
|
||||
@@ -180,11 +399,16 @@ Public Class SplitPageUC
|
||||
|
||||
Private Sub MachiningLsBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MachiningLsBx.SelectionChanged
|
||||
If MachiningLsBx.SelectedItems.Count = 0 Then Return
|
||||
If MachiningLsBx.SelectedItems.Count = 1 Then m_bAreHomogeneous = True
|
||||
' creo lista ordinata dei selezionati
|
||||
Dim ItemList As New List(Of NameIdLsBxItem)
|
||||
For Each Item As NameIdLsBxItem In MachiningLsBx.SelectedItems
|
||||
ItemList.Add(Item)
|
||||
Next
|
||||
|
||||
' verifico che le lavorazioni siano dello stesso tipo
|
||||
VerifyHomogenousMachining(ItemList)
|
||||
|
||||
ItemList.Sort(Function(x, y) Comparer(Of Integer).Default.Compare(m_ItemList.IndexOf(x), m_ItemList.IndexOf(y)))
|
||||
' verifico che siano contigui
|
||||
Dim bContigus As Boolean = False
|
||||
@@ -287,8 +511,14 @@ Public Class SplitPageUC
|
||||
EgtDraw()
|
||||
' Imposto flag di modifica
|
||||
m_bModified = True
|
||||
' Abilitazione bottone Next
|
||||
EnableButtons()
|
||||
|
||||
' recupero l'elenco degli elementi selezionati
|
||||
Dim ItemList As New List(Of NameIdLsBxItem)
|
||||
For Each Item As NameIdLsBxItem In MachiningLsBx.SelectedItems
|
||||
ItemList.Add(Item)
|
||||
Next
|
||||
|
||||
VerifyHomogenousMachining(ItemList)
|
||||
End Sub
|
||||
|
||||
Private Sub AllOnBtn_Click(sender As Object, e As RoutedEventArgs) Handles AllOnBtn.Click
|
||||
@@ -772,26 +1002,37 @@ Public Class SplitPageUC
|
||||
bFirstInd = False
|
||||
End If
|
||||
' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------
|
||||
Dim bRepeat As Boolean = False
|
||||
Do
|
||||
' Se c'è limite alla lunghezza libera
|
||||
If m_MachiningList(nI).m_dStartFreeLen < FREELEN_INF Then
|
||||
' Recupero sicurezza in corner interno
|
||||
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
|
||||
' Recupero lunghezza baffo del taglio
|
||||
Dim nPvId As Integer = GDB_ID.NULL
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
|
||||
Dim dDT As Double = 0
|
||||
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
|
||||
dUsal = Math.Min(dUsal, m_MachiningList(nI).m_dStartFreeLen - dDT - dCornerSafety)
|
||||
End If
|
||||
' Modifica della lavorazione
|
||||
EgtSetCurrMachining(nOperId)
|
||||
Dim dAddLen As Double = 0
|
||||
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
|
||||
' verifico che non sia sull'angolo interno (altrimenti vieto la modifica)
|
||||
If dAddLen - dOrigUsal < -10 * EPS_SMALL Then
|
||||
Return
|
||||
End If
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen + dUsal - dOrigUsal)
|
||||
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dUsal)
|
||||
bRepeat = Not UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||
If bRepeat Then
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dOrigUsal)
|
||||
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dOrigUsal)
|
||||
dUsal = dOrigUsal
|
||||
End If
|
||||
Loop Until Not bRepeat
|
||||
|
||||
' Se c'è limite alla lunghezza libera
|
||||
If m_MachiningList(nI).m_dStartFreeLen < FREELEN_INF Then
|
||||
' Recupero sicurezza in corner interno
|
||||
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
|
||||
' Recupero lunghezza baffo del taglio
|
||||
Dim nPvId As Integer = GDB_ID.NULL
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
|
||||
Dim dDT As Double = 0
|
||||
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
|
||||
dUsal = Math.Min(dUsal, m_MachiningList(nI).m_dStartFreeLen - dDT - dCornerSafety)
|
||||
End If
|
||||
' Modifica della lavorazione
|
||||
EgtSetCurrMachining(nOperId)
|
||||
Dim dAddLen As Double = 0
|
||||
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
|
||||
If dAddLen - dOrigUsal < -10 * EPS_SMALL Then Return
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen + dUsal - dOrigUsal)
|
||||
EgtSetInfo(nOperId, INFO_MCH_USER_SAL, dUsal)
|
||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||
' verifico interferenza
|
||||
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
||||
ColorMachining(m_MachiningList(nI))
|
||||
@@ -903,7 +1144,7 @@ Public Class SplitPageUC
|
||||
' Recupero la lavorazione corrente
|
||||
If m_CurrFirstInd = -1 Then Return
|
||||
Dim bGenModif As Boolean = False
|
||||
For Index As integer = m_CurrFirstInd To m_CurrLastInd
|
||||
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
|
||||
Dim nI As Integer = m_ItemList(Index).Ind
|
||||
Dim nOperId As Integer = m_MachiningList(nI).m_nId
|
||||
Dim nMachiningType As Integer = EgtGetOperationType(nOperId)
|
||||
@@ -924,26 +1165,38 @@ Public Class SplitPageUC
|
||||
bFirstInd = False
|
||||
End If
|
||||
' ------------------ FINE PREPARAZIONE TASTIERINO VIRTUALE ------------------
|
||||
Dim bRepeat As Boolean = False
|
||||
Do
|
||||
' Se c'è limite alla lunghezza libera
|
||||
If m_MachiningList(nI).m_dEndFreeLen < FREELEN_INF Then
|
||||
' Recupero sicurezza in corner interno
|
||||
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
|
||||
' Recupero lunghezza baffo del taglio
|
||||
Dim nPvId As Integer = GDB_ID.NULL
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
|
||||
Dim dDT As Double = 0
|
||||
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
|
||||
dUeal = Math.Min(dUeal, m_MachiningList(nI).m_dEndFreeLen - dDT - dCornerSafety)
|
||||
End If
|
||||
|
||||
' Modifica della lavorazione
|
||||
EgtSetCurrMachining(nOperId)
|
||||
Dim dAddLen As Double = 0
|
||||
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
|
||||
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then
|
||||
Return
|
||||
End If
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen + dUeal - dOrigUeal)
|
||||
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dUeal)
|
||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||
bRepeat = Not UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||
If bRepeat Then
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dOrigUeal)
|
||||
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dOrigUeal)
|
||||
dUeal = dOrigUeal
|
||||
End If
|
||||
Loop Until Not bRepeat
|
||||
|
||||
' Se c'è limite alla lunghezza libera
|
||||
If m_MachiningList(nI).m_dEndFreeLen < FREELEN_INF Then
|
||||
' Recupero sicurezza in corner interno
|
||||
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
|
||||
' Recupero lunghezza baffo del taglio
|
||||
Dim nPvId As Integer = GDB_ID.NULL
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
|
||||
Dim dDT As Double = 0
|
||||
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
|
||||
dUeal = Math.Min(dUeal, m_MachiningList(nI).m_dEndFreeLen - dDT - dCornerSafety)
|
||||
End If
|
||||
' Modifica della lavorazione
|
||||
EgtSetCurrMachining(nOperId)
|
||||
Dim dAddLen As Double = 0
|
||||
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
|
||||
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then Return
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen + dUeal - dOrigUeal)
|
||||
EgtSetInfo(nOperId, INFO_MCH_USER_EAL, dUeal)
|
||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||
' verifico interferenza
|
||||
EgtVerifyMachining(m_MachiningList(nI).m_nId, m_MachiningList(nI).m_nInterf)
|
||||
ColorMachining(m_MachiningList(nI))
|
||||
@@ -1027,40 +1280,40 @@ Public Class SplitPageUC
|
||||
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
|
||||
Dim nI As Integer = m_ItemList(Index).Ind
|
||||
' Si possono invertire solo i tagli di lama
|
||||
If m_MachiningList( nI).m_nType <> MCH_OY.SAWING Then Continue For
|
||||
If m_MachiningList(nI).m_nType <> MCH_OY.SAWING Then Continue For
|
||||
' Non si possono invertire i tagli di lama inclinati
|
||||
If Math.Abs( m_MachiningList(nI).m_dSideAng) > 0.1 Then Continue For
|
||||
If Math.Abs(m_MachiningList(nI).m_dSideAng) > 0.1 Then Continue For
|
||||
' Se abilitata inversione automatica e quindi non invertito
|
||||
If m_MachiningList( nI).m_bEnableInvert Then
|
||||
If m_MachiningList(nI).m_bEnableInvert Then
|
||||
' Inverto e disabilito inversione automatica
|
||||
If CamAuto.InvertVerticalCut( m_MachiningList( nI).m_nId) Then
|
||||
m_MachiningList( nI).m_bInvert = True
|
||||
m_MachiningList( nI).m_vtDir = - m_MachiningList( nI).m_vtDir
|
||||
m_MachiningList( nI).m_bEnableInvert = False
|
||||
SwapStartEndData( nI)
|
||||
ResetEnableInvert( m_MachiningList( nI).m_nEntId)
|
||||
EgtErase( m_MachiningList( nI).m_nArrId)
|
||||
NumberDirectionMachining( nI, False)
|
||||
If CamAuto.InvertVerticalCut(m_MachiningList(nI).m_nId) Then
|
||||
m_MachiningList(nI).m_bInvert = True
|
||||
m_MachiningList(nI).m_vtDir = -m_MachiningList(nI).m_vtDir
|
||||
m_MachiningList(nI).m_bEnableInvert = False
|
||||
SwapStartEndData(nI)
|
||||
ResetEnableInvert(m_MachiningList(nI).m_nEntId)
|
||||
EgtErase(m_MachiningList(nI).m_nArrId)
|
||||
NumberDirectionMachining(nI, False)
|
||||
EgtDraw()
|
||||
End If
|
||||
' se altrimenti disabilitata inversione automatica e invertito
|
||||
ElseIf m_MachiningList( nI).m_bInvert Then
|
||||
' se altrimenti disabilitata inversione automatica e invertito
|
||||
ElseIf m_MachiningList(nI).m_bInvert Then
|
||||
' Tolgo inversione e lascio disabilitazione inv. autom.
|
||||
If CamAuto.InvertVerticalCut( m_MachiningList( nI).m_nId) Then
|
||||
m_MachiningList( nI).m_bInvert = False
|
||||
m_MachiningList( nI).m_vtDir = - m_MachiningList( nI).m_vtDir
|
||||
SwapStartEndData( nI)
|
||||
EgtErase( m_MachiningList( nI).m_nArrId)
|
||||
NumberDirectionMachining( nI, False)
|
||||
If CamAuto.InvertVerticalCut(m_MachiningList(nI).m_nId) Then
|
||||
m_MachiningList(nI).m_bInvert = False
|
||||
m_MachiningList(nI).m_vtDir = -m_MachiningList(nI).m_vtDir
|
||||
SwapStartEndData(nI)
|
||||
EgtErase(m_MachiningList(nI).m_nArrId)
|
||||
NumberDirectionMachining(nI, False)
|
||||
EgtDraw()
|
||||
End If
|
||||
' altrimenti disabilitata inversione automatica e non invertito
|
||||
' altrimenti disabilitata inversione automatica e non invertito
|
||||
Else
|
||||
' Abilito inversione automatica e lascio non invertito
|
||||
m_MachiningList( nI).m_bEnableInvert = True
|
||||
SetEnableInvert( m_MachiningList( nI).m_nEntId)
|
||||
EgtErase( m_MachiningList( nI).m_nArrId)
|
||||
NumberDirectionMachining( nI, False)
|
||||
m_MachiningList(nI).m_bEnableInvert = True
|
||||
SetEnableInvert(m_MachiningList(nI).m_nEntId)
|
||||
EgtErase(m_MachiningList(nI).m_nArrId)
|
||||
NumberDirectionMachining(nI, False)
|
||||
EgtDraw()
|
||||
End If
|
||||
Next
|
||||
@@ -1122,7 +1375,7 @@ Public Class SplitPageUC
|
||||
' Se fase corrente è la prima, imposto partenza normale
|
||||
If m_nCurrPhase = 1 Then
|
||||
m_MainWindow.m_CurrentProjectPageUC.ResetProjectNcRestart()
|
||||
' Altrimenti, imposto la ripartenza dalla fase corrente
|
||||
' Altrimenti, imposto la ripartenza dalla fase corrente
|
||||
Else
|
||||
m_MainWindow.m_CurrentProjectPageUC.SetProjectNcRestart(m_nCurrPhase)
|
||||
m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage(EgtMsg(MSG_SPLITPAGEUC + 19) & " (" & m_nCurrPhase.ToString() & ")")
|
||||
@@ -1141,7 +1394,7 @@ Public Class SplitPageUC
|
||||
' Aggiorno le lavorazioni (eliminato sort per lasciare ordine immutato)
|
||||
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then ResetAllMachinings()
|
||||
m_MainWindow.m_CurrentProjectPageUC.SetOrderMachiningFlag()
|
||||
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
|
||||
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
|
||||
Dim bModif As Boolean = TestAllMachiningsForStrict()
|
||||
If bModif Then m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(90321)) 'Ridotte alcune lavorazioni per evitare interferenze
|
||||
End If
|
||||
@@ -1151,8 +1404,13 @@ Public Class SplitPageUC
|
||||
HideAllMachinings()
|
||||
' Preparo la lista delle lavorazioni e le disabilito
|
||||
CalculateSplitMachList(m_nCurrPhase, m_MachiningList)
|
||||
m_nCountSawing = 0
|
||||
m_nCountWaterjetting = 0
|
||||
m_nCountOtherMachining = 0
|
||||
For nI As Integer = 0 To m_MachiningList.Count() - 1
|
||||
m_MachiningList(nI).m_bEnabled = False
|
||||
' conto il numero di tipi di lavorazioni
|
||||
CountMachiningType(m_MachiningList(nI), m_nCountSawing, m_nCountWaterjetting, m_nCountOtherMachining)
|
||||
Next
|
||||
' Aggiorno visualizzazione delle lavorazioni
|
||||
EgtEmptyGroup(m_nNbrGrpId)
|
||||
@@ -1171,6 +1429,7 @@ Public Class SplitPageUC
|
||||
End Sub
|
||||
|
||||
Private Sub SplitPageUC_Unloaded(sender As Object, e As EventArgs) Handles Me.Unloaded
|
||||
m_bActive = False
|
||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||
ExitSplit(Not m_bToNext)
|
||||
EgtDraw()
|
||||
@@ -1338,6 +1597,86 @@ Public Class SplitPageUC
|
||||
ModifEndBtn.IsEnabled = Not m_bShow
|
||||
InvertBtn.IsEnabled = Not m_bShow
|
||||
PauseBtn.IsEnabled = Not m_bShow And m_MainWindow.m_CurrentMachine.bEnablePause
|
||||
|
||||
' nascondo i comandi che non devono essere visualizzati in funzione delle lavorazioni attive
|
||||
If m_nCountSawing = 0 And (m_nCountWaterjetting > 0 Or m_nCountOtherMachining) Then
|
||||
VisibilityButtonFromMachinig(MCH_OY.WATERJETTING)
|
||||
Else
|
||||
VisibilityButtonFromMachinig(MCH_OY.SAWING)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub VerifyHomogenousMachining(ItemList As List(Of NameIdLsBxItem))
|
||||
If IsNothing(ItemList) OrElse ItemList.Count = 0 Then
|
||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||
Return
|
||||
End If
|
||||
Dim nSawing As Integer = 0
|
||||
Dim nWaterjetting As Integer = 0
|
||||
Dim nOtherMachining As Integer = 0
|
||||
' conto il numero di tipi di lavprazioni
|
||||
For Each Item As NameIdLsBxItem In ItemList
|
||||
If Item.Type = MCH_OY.SAWING Then
|
||||
nSawing += 1
|
||||
ElseIf Item.Type = MCH_OY.WATERJETTING Then
|
||||
nWaterjetting += 1
|
||||
Else
|
||||
nOtherMachining += 1
|
||||
End If
|
||||
Next
|
||||
' verifico se le lavorazioni sono omeogenee
|
||||
If nSawing > 0 And (nWaterjetting > 0 Or nOtherMachining > 0) Then
|
||||
m_bAreHomogeneous = False
|
||||
VisibilityButtonFromMachinig(MCH_OY.SAWING)
|
||||
ElseIf nSawing = 0 And nOtherMachining > 0 And nWaterjetting > 0 Then
|
||||
m_bAreHomogeneous = False
|
||||
VisibilityButtonFromMachinig(MCH_OY.WATERJETTING)
|
||||
Else
|
||||
VisibilityButtonFromMachinig(ItemList(0).Type)
|
||||
m_bAreHomogeneous = True
|
||||
End If
|
||||
' eventualmente stampo messaggio
|
||||
If Not m_bAreHomogeneous Then
|
||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage("Lavorazioni non omogenee")
|
||||
Else
|
||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub VisibilityButtonFromMachinig(ByVal Type As Integer)
|
||||
If Type <> MCH_OY.SAWING Then
|
||||
CutBtn.Visibility = Visibility.Hidden
|
||||
CutStartBtn.Visibility = Visibility.Hidden
|
||||
CutEndBtn.Visibility = Visibility.Hidden
|
||||
|
||||
OutCenStartBtn.Visibility = Visibility.Hidden
|
||||
OutCenEndBtn.Visibility = Visibility.Hidden
|
||||
InvertBtn.Visibility = Visibility.Hidden
|
||||
PauseBtn.Visibility = Visibility.Hidden
|
||||
AllOutStartBtn.Visibility = Visibility.Hidden
|
||||
AllCenStartBtn.Visibility = Visibility.Hidden
|
||||
AllOutEndBtn.Visibility = Visibility.Hidden
|
||||
AllCenEndBtn.Visibility = Visibility.Hidden
|
||||
AllExtendBtn.Visibility = Visibility.Hidden
|
||||
AllReduceBtn.Visibility = Visibility.Hidden
|
||||
Else
|
||||
CutBtn.Visibility = Visibility.Visible
|
||||
CutStartBtn.Visibility = Visibility.Visible
|
||||
CutEndBtn.Visibility = Visibility.Visible
|
||||
|
||||
OutCenStartBtn.Visibility = Visibility.Visible
|
||||
OutCenEndBtn.Visibility = Visibility.Visible
|
||||
InvertBtn.Visibility = Visibility.Visible
|
||||
PauseBtn.Visibility = Visibility.Visible
|
||||
AllOutStartBtn.Visibility = Visibility.Visible
|
||||
AllCenStartBtn.Visibility = Visibility.Visible
|
||||
AllOutEndBtn.Visibility = Visibility.Visible
|
||||
AllCenEndBtn.Visibility = Visibility.Visible
|
||||
AllExtendBtn.Visibility = Visibility.Visible
|
||||
AllReduceBtn.Visibility = Visibility.Visible
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function ModifyOtherLeadIn(nI As Integer, nLiOthType As Integer) As Boolean
|
||||
@@ -1572,6 +1911,7 @@ Public Class SplitPageUC
|
||||
Private m_nInd As Integer
|
||||
Private m_sName As String
|
||||
Private m_bIsActive As Boolean
|
||||
Private m_nType As Integer
|
||||
|
||||
Public Property Ind As Integer
|
||||
Get
|
||||
@@ -1606,10 +1946,20 @@ Public Class SplitPageUC
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(Name As String, Ind As Integer, bIsActive As Boolean)
|
||||
Public Property Type As Integer
|
||||
Get
|
||||
Return m_nType
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_nType = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(Name As String, Ind As Integer, bIsActive As Boolean, nType As Integer)
|
||||
Me.m_sName = Name
|
||||
Me.m_nInd = Ind
|
||||
Me.m_bIsActive = bIsActive
|
||||
Me.m_nType = nType
|
||||
End Sub
|
||||
|
||||
Public Sub NotifyPropertyChanged(propName As String)
|
||||
|
||||
@@ -205,6 +205,7 @@ Module ConstGen
|
||||
Public Const INFO_DEPTH As String = "Depth"
|
||||
Public Const INFO_WIDTH As String = "Width"
|
||||
Public Const INFO_DEPTH2 As String = "Depth2"
|
||||
Public CONST INFO_AGG2 As String = "Agg2"
|
||||
' Info in entità da tagliare per taglio ristretto
|
||||
Public Const INFO_STRICT As String = "Strict"
|
||||
' Info in entità da tagliare per angolo di lato e tallone
|
||||
|
||||
@@ -148,6 +148,7 @@ Module ConstIni
|
||||
Public Const K_TEXTCOLOR As String = "TextColor"
|
||||
Public Const K_AUTOMATICOPTIMIZE As String = "AutomaticOptimize"
|
||||
Public Const K_AUTOMATICMAXTIME As String = "AutomaticMaxTime"
|
||||
Public Const K_DRAG_RETTANGLE As String = "DragRettangle"
|
||||
|
||||
Public Const S_SPLIT As String = "Split"
|
||||
Public Const K_MOVE_LEV As String = "MoveLevel"
|
||||
|
||||
@@ -282,5 +282,6 @@
|
||||
Public Const S_MATERIALS As String = "Materials"
|
||||
Public Const K_CURRMATERIAL As String = "CurrMaterial"
|
||||
Public Const K_MATERIAL As String = "Material"
|
||||
Public Const K_FROMDBWATERJET As String = "FromDBWaterJet"
|
||||
|
||||
End Module
|
||||
|
||||
@@ -133,25 +133,6 @@ Public Class DirectCutPageUC
|
||||
' leggo il numero di assi attivi nella macchina
|
||||
Dim AxesNumber = GetPrivateProfileInt(S_AXES, K_AXESNUM, 5, m_MainWindow.GetMachIniFile())
|
||||
|
||||
'' leggo se è stata configurata la nuova conole
|
||||
'If GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile()) = 1 And Not bCollapsedNewBottonsConsole Then
|
||||
' XYBtn.Content = "X - Y"
|
||||
' XYBtn.Foreground = Brushes.White
|
||||
' ZCBtn.Content = "Z - C"
|
||||
' ZCBtn.Foreground = Brushes.White
|
||||
' If AxesNumber < 5 Then
|
||||
' ZBBtn.Visibility = Windows.Visibility.Collapsed
|
||||
' End If
|
||||
' ZBBtn.Content = "Z - B"
|
||||
' ZBBtn.Foreground = Brushes.White
|
||||
' RemoteBtn.Content = "Remote"
|
||||
' RemoteBtn.Foreground = Brushes.White
|
||||
'Else
|
||||
' XYBtn.Visibility = Windows.Visibility.Collapsed
|
||||
' ZCBtn.Visibility = Windows.Visibility.Collapsed
|
||||
' ZBBtn.Visibility = Windows.Visibility.Collapsed
|
||||
'End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub DirectCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
@@ -228,8 +209,12 @@ Public Class DirectCutPageUC
|
||||
' Se macchina fotografica abilitata
|
||||
PhotoBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.MAN_PHOTO)
|
||||
|
||||
' Attivo le lavorazioni solo se esiste il grezzo
|
||||
' Attivo le lavorazioni solo se esiste il grezzo e se presente testa H1
|
||||
Dim bRawOk As Boolean = (GetRawHeight() > EPS_SMALL)
|
||||
Dim bH1Exists As Boolean = (EgtGetHeadId("H1") <> GDB_ID.NULL)
|
||||
|
||||
ManualBtn.IsEnabled = bH1Exists
|
||||
' sviluppo rimasto in sospeso
|
||||
If m_bManulaCut Then
|
||||
' anche se non è presente un grezzo mantengo abilitato il bottone
|
||||
SingleCutBtn.IsEnabled = True
|
||||
@@ -238,10 +223,14 @@ Public Class DirectCutPageUC
|
||||
End If
|
||||
MultipleCutBtn.IsEnabled = bRawOk
|
||||
GridCutBtn.IsEnabled = bRawOk
|
||||
SingleDrillBtn.IsEnabled = bRawOk
|
||||
FlatteningCutBtn.IsEnabled = bRawOk
|
||||
SingleDrillBtn.IsEnabled = (bRawOk And bH1Exists)
|
||||
FlatteningCutBtn.IsEnabled = (bRawOk And bH1Exists)
|
||||
PolishingBtn.IsEnabled = (bRawOk And m_MainWindow.m_CurrentMachine.bPolishing)
|
||||
SawTestBtn.IsEnabled = bRawOk
|
||||
SawTestBtn.IsEnabled = (bRawOk And bH1Exists)
|
||||
CopyTemplateBtn.IsEnabled = bH1Exists
|
||||
|
||||
' aggiorno la visualizzazione dei parametri
|
||||
ReloadParam()
|
||||
|
||||
' Nascondo i pezzi in parcheggio
|
||||
HideParkedParts()
|
||||
@@ -249,6 +238,20 @@ Public Class DirectCutPageUC
|
||||
|
||||
End Sub
|
||||
|
||||
Public Sub ReloadParam()
|
||||
Dim sCurrSawing As String = m_MainWindow.m_CurrentMachine.sCurrSawing
|
||||
Dim sCurrSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||
Dim bSaw As Boolean = False
|
||||
|
||||
' se esiste una lavorazione di lama corrente vuol dire che deve essere preferita
|
||||
If Not String.IsNullOrEmpty(sCurrSaw) And Not String.IsNullOrEmpty(sCurrSawing) Then
|
||||
bSaw = EgtSetCalcTool(sCurrSaw, "H1", 1)
|
||||
End If
|
||||
m_SingleCut.SetEnableParam(bSaw)
|
||||
m_MultipleCut.SetEnableParam(bSaw)
|
||||
m_GridCut.SetEnableParam(bSaw)
|
||||
End Sub
|
||||
|
||||
Private Sub SetVisibilityJogButtuns()
|
||||
XYBtn.Visibility = Visibility.Collapsed
|
||||
ZCBtn.Visibility = Visibility.Collapsed
|
||||
|
||||
+30
-16
@@ -152,6 +152,7 @@ Public Class GridCut
|
||||
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())
|
||||
@@ -185,6 +186,11 @@ Public Class GridCut
|
||||
m_bActive = False
|
||||
End Sub
|
||||
|
||||
Public Sub SetEnableParam(ByVal bIsSaw As Boolean)
|
||||
' se macchina solo WaterJet Disabilito/Nascondo parametri della lama
|
||||
DepthTxBx.IsEnabled = bIsSaw
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateSimulOkBtn()
|
||||
If m_bCutOk Then
|
||||
SimulBtn.IsEnabled = True
|
||||
@@ -242,6 +248,12 @@ Public Class GridCut
|
||||
' Verifico configurazione tavola e grezzo
|
||||
If Not m_bRawOk Then Return
|
||||
|
||||
' Recupero dati utensile e testa corrente
|
||||
Dim sTool As String = ""
|
||||
Dim sHead As String = ""
|
||||
Dim nExit As Integer = 0
|
||||
EgtGetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
' Se acquisizone lama o laser
|
||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||
|
||||
@@ -256,12 +268,12 @@ Public Class GridCut
|
||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
||||
' Ora imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
' Altrimenti da lama
|
||||
Else
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
||||
End If
|
||||
@@ -285,10 +297,8 @@ Public Class GridCut
|
||||
' Porto il tip nell'origine tavola
|
||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||
m_bPointP1Ok = True
|
||||
' Ricavo dati lama corrente
|
||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
End If
|
||||
|
||||
' Disegno il taglio
|
||||
@@ -317,6 +327,12 @@ Public Class GridCut
|
||||
' Verifico configurazione tavola e grezzo
|
||||
If Not m_bRawOk Then Return
|
||||
|
||||
' Recupero dati utensile e testa corrente
|
||||
Dim sTool As String = ""
|
||||
Dim sHead As String = ""
|
||||
Dim nExit As Integer = 0
|
||||
EgtGetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
' Se acquisizone lama o laser
|
||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||
|
||||
@@ -331,12 +347,12 @@ Public Class GridCut
|
||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
||||
' Ora imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
' Altrimenti da lama
|
||||
Else
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
||||
End If
|
||||
@@ -358,10 +374,8 @@ Public Class GridCut
|
||||
' Porto il tip nell'origine tavola
|
||||
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
||||
m_bPointP2Ok = True
|
||||
' Ricavo dati lama corrente
|
||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
End If
|
||||
|
||||
' Se il secondo punto non coincide con il primo, disegno il taglio
|
||||
|
||||
@@ -213,6 +213,10 @@ Public Class MultipleCut
|
||||
m_bActive = False
|
||||
End Sub
|
||||
|
||||
Public Sub SetEnableParam(ByVal bIsSaw As Boolean)
|
||||
DepthTxBx.IsEnabled = bIsSaw
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateSimulOkBtn()
|
||||
If m_bCutOk Then
|
||||
SimulBtn.IsEnabled = True
|
||||
@@ -270,6 +274,12 @@ Public Class MultipleCut
|
||||
' Verifico configurazione tavola e grezzo
|
||||
If Not m_bRawOk Then Return
|
||||
|
||||
' Recupero dati utensile e testa corrente
|
||||
Dim sTool As String = ""
|
||||
Dim sHead As String = ""
|
||||
Dim nExit As Integer = 0
|
||||
EgtGetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
' Se acquisizone lama o laser
|
||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||
|
||||
@@ -284,12 +294,14 @@ Public Class MultipleCut
|
||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
||||
' Ora imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Altrimenti da lama
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
' Altrimenti da lama
|
||||
Else
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
||||
End If
|
||||
@@ -312,10 +324,9 @@ Public Class MultipleCut
|
||||
' Porto il tip nell'origine tavola
|
||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||
m_bPointP1Ok = True
|
||||
' Ricavo dati lama corrente
|
||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
End If
|
||||
' Disegno il taglio
|
||||
CreateMultipleCut()
|
||||
@@ -343,6 +354,12 @@ Public Class MultipleCut
|
||||
' Verifico configurazione tavola e grezzo
|
||||
If Not m_bRawOk Then Return
|
||||
|
||||
' Recupero dati utensile e testa corrente
|
||||
Dim sTool As String = ""
|
||||
Dim sHead As String = ""
|
||||
Dim nExit As Integer = 0
|
||||
EgtGetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
' Se acquisizone lama o laser
|
||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||
|
||||
@@ -357,12 +374,12 @@ Public Class MultipleCut
|
||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
||||
' Ora imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Altrimenti da lama
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
' Altrimenti da lama
|
||||
Else
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
||||
End If
|
||||
@@ -383,10 +400,9 @@ Public Class MultipleCut
|
||||
' Porto il tip nell'origine tavola
|
||||
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
||||
m_bPointP2Ok = True
|
||||
' Ricavo dati lama corrente
|
||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
End If
|
||||
|
||||
' Se il secondo punto non coincide con il primo, disegno il taglio
|
||||
|
||||
@@ -137,6 +137,9 @@ Public Class SingleCutUC
|
||||
Point2Btn.IsEnabled = False
|
||||
' Deseleziono bottone primo punto
|
||||
Point1Btn.IsChecked = False
|
||||
|
||||
' la visualizzazione dei comandi è gestira dalla DirectCutPageUC richiamando la funzione ReloadParam
|
||||
|
||||
' Aggiorno visualizzazione
|
||||
EgtDraw()
|
||||
End Sub
|
||||
@@ -172,6 +175,12 @@ Public Class SingleCutUC
|
||||
m_bActive = False
|
||||
End Sub
|
||||
|
||||
Public Sub SetEnableParam(ByVal bIsSaw As Boolean)
|
||||
' se macchina solo WaterJet Disabilito/Nascondo parametri della lama
|
||||
DepthTxBx.IsEnabled = bIsSaw
|
||||
SawThChBx.IsEnabled = bIsSaw
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateSimulOkBtn()
|
||||
If m_bCutOk Then
|
||||
SimulBtn.IsEnabled = True
|
||||
@@ -229,6 +238,12 @@ Public Class SingleCutUC
|
||||
' Verifico configurazione tavola e grezzo
|
||||
If Not m_bRawOk Then Return
|
||||
|
||||
' Recupero dati utensile e testa corrente
|
||||
Dim sTool As String = ""
|
||||
Dim sHead As String = ""
|
||||
Dim nExit As Integer = 0
|
||||
EgtGetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
' Se acquisizione lama o laser
|
||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||
' Recupero la posizione macchina
|
||||
@@ -242,12 +257,12 @@ Public Class SingleCutUC
|
||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
||||
' Ora imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Altrimenti da lama
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
' Altrimenti da lama
|
||||
Else
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP1) Then Return
|
||||
End If
|
||||
@@ -271,10 +286,9 @@ Public Class SingleCutUC
|
||||
' Porto il tip nell'origine tavola
|
||||
m_ptTipP1.ToLoc(New Frame3d(m_ptTabOri))
|
||||
m_bPointP1Ok = True
|
||||
' Ricavo dati lama corrente
|
||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
End If
|
||||
|
||||
' Disegno il taglio
|
||||
@@ -303,6 +317,12 @@ Public Class SingleCutUC
|
||||
' Verifico configurazione tavola e grezzo
|
||||
If Not m_bRawOk Then Return
|
||||
|
||||
' Recupero dati utensile e testa corrente
|
||||
Dim sTool As String = ""
|
||||
Dim sHead As String = ""
|
||||
Dim nExit As Integer = 0
|
||||
EgtGetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
' Se acquisizone lama o laser
|
||||
If PointModeCmBx.SelectedIndex = PT_MODE.SAW Or PointModeCmBx.SelectedIndex = PT_MODE.LASER Then
|
||||
' Recupero la posizione macchina
|
||||
@@ -316,12 +336,14 @@ Public Class SingleCutUC
|
||||
If Not EgtSetCalcTool("", "H3", 1) Then Return
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
||||
' Ora imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Altrimenti da lama
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
' Altrimenti da lama
|
||||
Else
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, m_ptTipP2) Then Return
|
||||
End If
|
||||
@@ -343,10 +365,8 @@ Public Class SingleCutUC
|
||||
' Porto il tip nell'origine tavola
|
||||
m_ptTipP2.ToLoc(New Frame3d(m_ptTabOri))
|
||||
m_bPointP2Ok = True
|
||||
' Ricavo dati lama corrente
|
||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||
' Imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
End If
|
||||
|
||||
' Se il secondo punto non coincide con il primo, disegno il taglio
|
||||
@@ -559,9 +579,13 @@ Public Class SingleCutUC
|
||||
Dim dRawHeight As Double = m_ptRawMax.z - m_ptRawMin.z
|
||||
' Recupero spessore lama corrente
|
||||
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||
Dim sSawing As String = m_MainWindow.m_CurrentMachine.sCurrSawing
|
||||
EgtTdbSetCurrTool(sSaw)
|
||||
Dim dThick As Double = 0
|
||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
|
||||
' se è impostata una lavorazione di lama
|
||||
If Not String.IsNullOrEmpty(sSawing) Then
|
||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
|
||||
End If
|
||||
' Rimuovo eventuale vecchio pezzo per taglio diretto
|
||||
EraseDirectCutPart()
|
||||
' Disattivo eventuali lavorazioni presenti
|
||||
|
||||
@@ -281,32 +281,14 @@ Public Class AlzFrontUC
|
||||
|
||||
' restituisce vero se il lato possiede delle info legate al sideangle
|
||||
Private Function VerifyIsThereSideAngle(nCurrLine As Integer) As Boolean
|
||||
Dim sInfoSideAngle As String = String.Empty
|
||||
EgtGetInfo(nCurrLine, INFO_SIDE_ANGLE, sInfoSideAngle)
|
||||
If Not String.IsNullOrWhiteSpace(sInfoSideAngle) Or Not String.IsNullOrEmpty(sInfoSideAngle) Then
|
||||
' verifico che il dato salvato sia un double
|
||||
Try
|
||||
Dim dSideAngle As Double = 0
|
||||
StringToDouble(sInfoSideAngle, dSideAngle)
|
||||
If dSideAngle <> 0 Then
|
||||
Return True
|
||||
End If
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
End If
|
||||
Return False
|
||||
Dim dSideAngle As Double
|
||||
return EgtGetInfo(nCurrLine, INFO_SIDE_ANGLE, dSideAngle)
|
||||
End Function
|
||||
|
||||
' restituisce vero se il lato possiede delle info legate alle alette
|
||||
Private Function VerifyIsThereAlzFront(nCurrLine As Integer) As Boolean
|
||||
Dim sInfoAlzFront As String = String.Empty
|
||||
EgtGetInfo(nCurrLine, INFO_ALZFRONT, sInfoAlzFront)
|
||||
If Not String.IsNullOrWhiteSpace(sInfoAlzFront) Or Not String.IsNullOrEmpty(sInfoAlzFront) Then
|
||||
If sInfoAlzFront.Trim <> "0" Then
|
||||
Return True
|
||||
End If
|
||||
End If
|
||||
Return False
|
||||
Dim nAlzFront As Integer
|
||||
return EgtGetInfo(nCurrLine, INFO_ALZFRONT, nAlzFront) AndAlso nAlzFront <> 0
|
||||
End Function
|
||||
|
||||
' approvo la costruzione dell'aletta sul lato indicato
|
||||
|
||||
@@ -159,7 +159,7 @@ Module SideAngle
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function WriteSideAngleOnLoop(LoopId As Integer, TextLayId As Integer) As Boolean
|
||||
Friend Function WriteSideAngleOnLoop(LoopId As Integer, TextLayId As Integer) As Boolean
|
||||
' Verifiche
|
||||
If LoopId = GDB_ID.NULL Or TextLayId = GDB_ID.NULL Then Return False
|
||||
' Calcolo dimensione ingombro Loop
|
||||
|
||||
@@ -755,6 +755,10 @@ Public Class SideAngleUC
|
||||
vJoint.Add(False)
|
||||
End If
|
||||
Next
|
||||
|
||||
' se non riesco a generare un elenco allora esco
|
||||
If vJoint.Count < 1 Then Return
|
||||
|
||||
If vJoint(0) And vJoint(vJoint.Count - 1) Then
|
||||
bJointStart = True
|
||||
End If
|
||||
|
||||
@@ -809,6 +809,7 @@
|
||||
<Image Source="{DynamicResource SawProbeImg}" Style="{StaticResource OmagCut_ScaleButtonIcon}"/>
|
||||
</Button>
|
||||
|
||||
|
||||
<TextBlock Name="UseLaserOriginTxBl" Grid.Column="1"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
|
||||
<CheckBox Name="UseLaserOriginChBx" Style="{DynamicResource OmagCut_CheckBox_Single}" Grid.Column="2"
|
||||
|
||||
@@ -119,6 +119,14 @@ Public Class AlarmsPageUC
|
||||
' Variabile che accorcia il riferimento alla macchina corrente
|
||||
m_CurrentMachine = m_MainWindow.m_CurrentMachine
|
||||
|
||||
' in assenza dell'uscita H1 nascondo i parametri lama
|
||||
If EgtGetHeadId("H1") = GDB_ID.NULL Then
|
||||
SawGpBx.Visibility = Visibility.Hidden
|
||||
TopMillGpBx.Visibility = Visibility.Hidden
|
||||
CurrSawTxBl.Visibility = Visibility.Hidden
|
||||
CurrSawCmBx.Visibility = Visibility.Hidden
|
||||
End If
|
||||
|
||||
' Verifico la configurazione della macchina per creare i combobox
|
||||
Select Case m_CurrentMachine.MountedToolConfig
|
||||
Case CurrentMachine.MountedToolConfigs.SAW
|
||||
@@ -133,7 +141,7 @@ Public Class AlarmsPageUC
|
||||
' Disattivo il gruppo dei parametri fori
|
||||
HolesGpBx.Visibility = Windows.Visibility.Hidden
|
||||
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
|
||||
'Non faccio alcunchè
|
||||
'Non faccio alcunchè
|
||||
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER
|
||||
'Da implementare
|
||||
End Select
|
||||
@@ -152,7 +160,7 @@ Public Class AlarmsPageUC
|
||||
|
||||
' Se non previsti tagli waterjet, disabilito relativo box
|
||||
If Not m_CurrentMachine.bWaterJetting Then
|
||||
WJsParamGpBx.Visibility = Visibility.Hidden
|
||||
WjsParamGpBx.Visibility = Visibility.Hidden
|
||||
End If
|
||||
|
||||
' Abilitazione box per contorni grezzo da foto
|
||||
@@ -165,7 +173,7 @@ Public Class AlarmsPageUC
|
||||
End If
|
||||
|
||||
' Abilitazione Feed ridotta su inizio/fine tagli
|
||||
If m_CurrentMachine.bFsevEnable Then
|
||||
If m_CurrentMachine.bFsevEnable And EgtGetHeadId("H1") <> GDB_ID.NULL Then
|
||||
CutFredGpBx.Visibility = Windows.Visibility.Visible
|
||||
Else
|
||||
CutFredGpBx.Visibility = Windows.Visibility.Hidden
|
||||
@@ -180,8 +188,8 @@ Public Class AlarmsPageUC
|
||||
m_bFirst = False
|
||||
End If
|
||||
|
||||
' Aggiorno lista delle lame per pagina macchina in cui scegliere quella corrente
|
||||
CreateToolList(MCH_TF.SAWBLADE, m_SawList)
|
||||
' Aggiorno lista delle lame per pagina macchina in cui scegliere quella corrente
|
||||
CreateToolList(MCH_TF.SAWBLADE, m_SawList)
|
||||
' Seleziono lama corrente
|
||||
CurrSawCmBx.SelectedItem = m_CurrentMachine.sCurrSaw
|
||||
|
||||
@@ -429,10 +437,24 @@ Public Class AlarmsPageUC
|
||||
End If
|
||||
If m_CurrentMachine.sCurrWaterJetting <> String.Empty Then
|
||||
CurrWaterJettingTxBx.Text = m_CurrentMachine.sCurrWaterJetting
|
||||
CurrWaterJettingQualityTxBx.Text = m_CurrentMachine.sCurrWaterJettingQuality
|
||||
CurrWaterJettingTxBl.Visibility = Windows.Visibility.Visible
|
||||
CurrWaterJettingTxBx.Visibility = Windows.Visibility.Visible
|
||||
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Visible
|
||||
If m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
|
||||
CurrWaterJettingTxBx.SetValue(Grid.ColumnSpanProperty, 1)
|
||||
CurrWaterJettingTxBx.SetValue(MarginProperty, New Thickness(CurrWaterJettingTxBx.Margin.Left,
|
||||
CurrWaterJettingTxBx.Margin.Top,
|
||||
5,
|
||||
CurrWaterJettingTxBx.Margin.Bottom))
|
||||
CurrWaterJettingQualityTxBx.Text = m_CurrentMachine.sCurrWaterJettingQuality
|
||||
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Visible
|
||||
Else
|
||||
CurrWaterJettingTxBx.SetValue(Grid.ColumnSpanProperty, 2)
|
||||
CurrWaterJettingTxBx.SetValue(MarginProperty, New Thickness(CurrWaterJettingTxBx.Margin.Left,
|
||||
CurrWaterJettingTxBx.Margin.Top,
|
||||
10,
|
||||
CurrWaterJettingTxBx.Margin.Bottom))
|
||||
CurrWaterJettingQualityTxBx.Visibility = Windows.Visibility.Collapsed
|
||||
End If
|
||||
Else
|
||||
CurrWaterJettingTxBl.Visibility = Windows.Visibility.Hidden
|
||||
CurrWaterJettingTxBx.Visibility = Windows.Visibility.Hidden
|
||||
|
||||
@@ -77,6 +77,9 @@ Public Class CurrentMachine
|
||||
Private m_bPolishingWheel As Boolean = False
|
||||
Private m_bWaterJet As Boolean = False
|
||||
|
||||
' Abilitazione DB WaterJet
|
||||
Private m_bFromDBWaterJet As Boolean = False
|
||||
|
||||
' Flag per visualizzazione TcPos, Testa/uscita e Note utente
|
||||
Private m_nShowToolChanger As Integer = 0 ' 0=no, 1=tutti utensili, 2=solo lame
|
||||
Private m_bShowHeadExit As Boolean = False
|
||||
@@ -436,6 +439,12 @@ Public Class CurrentMachine
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property bFromDBWaterJet As Boolean
|
||||
Get
|
||||
Return m_bFromDBWaterJet
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property ShowToolChanger As Integer
|
||||
Get
|
||||
Return m_nShowToolChanger
|
||||
@@ -1006,7 +1015,7 @@ Public Class CurrentMachine
|
||||
End Get
|
||||
Set(value As Material)
|
||||
Dim CurrMatId As String = If(Not IsNothing(value), value.nId.ToString, "")
|
||||
If bWaterJet Then
|
||||
If bWaterJet And bFromDBWaterJet Then
|
||||
WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, CurrMatId & If(Not IsNothing(value), "." & value.SubId, ""), sMachIniFile)
|
||||
Else
|
||||
WritePrivateProfileString(S_MATERIALS, K_CURRMATERIAL, CurrMatId, sMachIniFile)
|
||||
@@ -1108,6 +1117,8 @@ Public Class CurrentMachine
|
||||
' waterjet
|
||||
m_bWaterJet = (GetPrivateProfileInt(S_TOOLS, K_WATERJET, 0, sMachIniFile) > 0) And
|
||||
m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.ENABLE_WJ)
|
||||
' Leggo abilitazione DB WaterJet
|
||||
m_bFromDBWaterJet = (GetPrivateProfileInt(S_MATERIALS, K_FROMDBWATERJET, 0, sMachIniFile) > 0)
|
||||
' Leggo abilitazione visualizzazione TcPos, Head/exit e Note utente
|
||||
m_nShowToolChanger = GetPrivateProfileInt(S_TOOLS, K_SHOWTOOLCHANGER, 0, sMachIniFile)
|
||||
m_bShowHeadExit = (GetPrivateProfileInt(S_TOOLS, K_SHOWHEADEXIT, 0, sMachIniFile) > 0)
|
||||
@@ -1247,7 +1258,7 @@ Public Class CurrentMachine
|
||||
Dim Material As Material = Nothing
|
||||
Dim nIndex As Integer = 1
|
||||
|
||||
If m_bWaterJet Then
|
||||
If m_bWaterJet And m_bFromDBWaterJet Then
|
||||
LoadWJMaterial(True)
|
||||
Else
|
||||
While (GetPrivateProfileMaterial(S_MATERIALS, K_MATERIAL & nIndex, Material, sMachIniFile))
|
||||
@@ -1262,7 +1273,7 @@ Public Class CurrentMachine
|
||||
' Leggo materiale correntemente attivo
|
||||
Dim sCurrMatId As String = String.Empty
|
||||
EgtUILib.GetPrivateProfileString(S_MATERIALS, K_CURRMATERIAL, "0", sCurrMatId, sMachIniFile)
|
||||
If bWaterJet Then
|
||||
If bWaterJet And bFromDBWaterJet Then
|
||||
Dim sCurrMatIds As String()
|
||||
sCurrMatIds = sCurrMatId.Split("."c)
|
||||
If sCurrMatIds.Length > 1 Then
|
||||
@@ -1303,7 +1314,6 @@ Public Class CurrentMachine
|
||||
Local_MaterialList = EgtWPFLib5.WaterjetDbWindowVM.LoadWjMaterials(sFilePath)
|
||||
' definisco la lista delle qualità (solo se è vuota)
|
||||
If m_Qualities.Count < 1 Then
|
||||
m_Qualities.Add("")
|
||||
m_Qualities.Add("Q1")
|
||||
m_Qualities.Add("Q2")
|
||||
m_Qualities.Add("Q3")
|
||||
|
||||
@@ -64,7 +64,7 @@ Public Class MachinePageUC
|
||||
PolishingsBtn.IsEnabled = False
|
||||
End If
|
||||
|
||||
If Not m_MainWindow.m_CurrentMachine.bWaterJet Then
|
||||
If Not m_MainWindow.m_CurrentMachine.bWaterJet Or Not m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
|
||||
WaterJetBtn.IsEnabled = False
|
||||
End If
|
||||
|
||||
|
||||
@@ -552,12 +552,15 @@ Public Class MachiningDbPageUC
|
||||
HeadSideCmBx.SelectedIndex = ToolInt - 1
|
||||
EgtMdbGetCurrMachiningParam(MCH_MP.LEADINTYPE, ToolInt)
|
||||
If LeadInTypeCmBx.Items.Count > 0 Then
|
||||
LeadInTypeCmBx.SelectedItem = LeadInTypeCmBx.Items(0)
|
||||
LeadInTypeCmBx.SelectedItem = LeadInTypeCmBx.Items(0)
|
||||
Else
|
||||
LeadInTypeCmBx.SelectedItem = Nothing
|
||||
End If
|
||||
For Each LInType As IdNameStruct In LeadInTypeCmBx.Items
|
||||
If ToolInt = LInType.Id Then LeadInTypeCmBx.SelectedItem = LInType
|
||||
If ToolInt = LInType.Id Then
|
||||
LeadInTypeCmBx.SelectedItem = LInType
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
EgtMdbGetCurrMachiningParam(MCH_MP.EXTLINKTYPE, ToolInt)
|
||||
ExtLinkTypeCmBx.SelectedIndex = ToolInt
|
||||
@@ -705,7 +708,7 @@ Public Class MachiningDbPageUC
|
||||
' Lista materiali
|
||||
m_MaterialsList.Clear()
|
||||
For Each Material As Material In m_MainWindow.m_CurrentMachine.Materials
|
||||
If m_MainWindow.m_CurrentMachine.bWaterJet Then
|
||||
If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
|
||||
m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName, Material.SubId))
|
||||
Else
|
||||
m_MaterialsList.Add(New MachiningMaterial(Material.nId, Material.sName))
|
||||
@@ -720,7 +723,7 @@ Public Class MachiningDbPageUC
|
||||
Dim SubParam() As String = Param(0).Split(".".ToCharArray)
|
||||
Dim nParId As Integer = 0
|
||||
Dim nSubParId As Integer = 0
|
||||
If m_MainWindow.m_CurrentMachine.bWaterJet Then
|
||||
If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
|
||||
If StringToInt(SubParam(0), nParId) AndAlso nParId = Material.nId AndAlso SubParam.Count > 1 AndAlso
|
||||
StringToInt(SubParam(1), nSubParId) AndAlso nSubParId = Material.nSubId Then
|
||||
|
||||
@@ -819,13 +822,13 @@ Public Class MachiningDbPageUC
|
||||
' Parmetri nascosti di svuotatura
|
||||
If nMachiningType = MCH_MY.POCKETING Then
|
||||
EgtMdbSetCurrMachiningParam(MCH_MP.SUBTYPE, MCH_POCK_SUB.SPIRALOUT)
|
||||
EgtMdbSetCurrMachiningParam( MCH_MP.LEADINTYPE, MCH_POCK_LI.HELIX)
|
||||
' EgtMdbSetCurrMachiningParam( MCH_MP.LEADINTYPE, MCH_POCK_LI.HELIX)
|
||||
Dim dToolDiam As Double = 100
|
||||
If Not IsNothing(ToolCmBx.SelectedItem) Then
|
||||
EgtTdbSetCurrTool( ToolCmBx.SelectedItem.ToString())
|
||||
EgtTdbGetCurrToolParam( MCH_TP.DIAM, dToolDiam)
|
||||
End If
|
||||
EgtMdbSetCurrMachiningParam( MCH_MP.LITANG, 0.495 * dToolDiam)
|
||||
EgtMdbSetCurrMachiningParam(MCH_MP.LITANG, 0.99 * dToolDiam)
|
||||
EgtMdbSetCurrMachiningParam( MCH_MP.LIELEV, 2.0)
|
||||
End If
|
||||
' Parametri WaterJetting
|
||||
@@ -894,7 +897,7 @@ Public Class MachiningDbPageUC
|
||||
' Scrivo stringa materiali da lista
|
||||
Dim sMaterialString As String = String.Empty
|
||||
For Each Material As MachiningMaterial In m_MaterialsList
|
||||
If m_MainWindow.m_CurrentMachine.bWaterJet Then
|
||||
If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
|
||||
If Material.bIsActive Then
|
||||
sMaterialString += Material.nId.ToString & "." & Material.nSubId.ToString & "," & DoubleToString(Material.dMinThickness, 0) & "," & DoubleToString(Material.dMaxThickness, 0) & ";"
|
||||
End If
|
||||
@@ -1138,30 +1141,26 @@ Public Class MachiningDbPageUC
|
||||
' Definizione della grid TypeGrd con la giusta altezza e numero di righe
|
||||
Dim RowNum As Integer = TypeGrd.RowDefinitions.Count
|
||||
If RowNum > 2 Then
|
||||
' elimino eventuali righe in eccesso
|
||||
For Index As Integer = RowNum - 1 To 2 Step -1
|
||||
TypeGrd.RowDefinitions.RemoveAt(Index)
|
||||
Next
|
||||
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 2)
|
||||
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 3)
|
||||
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
|
||||
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
|
||||
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
|
||||
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
|
||||
TypeBrd.SetValue(Grid.RowProperty, 12)
|
||||
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
|
||||
ElseIf RowNum < 2 Then
|
||||
' costruiso una riga in più da inserire
|
||||
Dim Row As New RowDefinition
|
||||
TypeGrd.RowDefinitions.Add(Row)
|
||||
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 2)
|
||||
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 3)
|
||||
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
|
||||
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
|
||||
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
|
||||
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
|
||||
TypeBrd.SetValue(Grid.RowProperty, 12)
|
||||
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
|
||||
End If
|
||||
LeadInTypeTxBl.SetValue(Grid.RowProperty, 1)
|
||||
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 0)
|
||||
LeadInTypeCmBx.SetValue(Grid.RowProperty, 1)
|
||||
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 1)
|
||||
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
|
||||
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
|
||||
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
|
||||
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
|
||||
TypeBrd.SetValue(Grid.RowProperty, 12)
|
||||
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
|
||||
|
||||
LeadInTypeTxBl.Visibility = Windows.Visibility.Visible
|
||||
LeadInTypeCmBx.Visibility = Windows.Visibility.Visible
|
||||
ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden
|
||||
@@ -1779,7 +1778,7 @@ Public Class MachiningDbPageUC
|
||||
StepTypeTxBl.Visibility = Windows.Visibility.Hidden
|
||||
StepTypeCmBx.Visibility = Windows.Visibility.Hidden
|
||||
SideBrd.SetValue(Grid.RowProperty, 9)
|
||||
SideBrd.Visibility = Windows.Visibility.Visible
|
||||
SideBrd.Visibility = Windows.Visibility.Hidden
|
||||
WorkSideTxBl.Visibility = Windows.Visibility.Hidden
|
||||
WorkSideCmBx.Visibility = Windows.Visibility.Hidden
|
||||
HeadSideTxBl.Visibility = Windows.Visibility.Hidden
|
||||
@@ -1791,15 +1790,22 @@ Public Class MachiningDbPageUC
|
||||
For Index As Integer = RowNum - 1 To 2 Step -1
|
||||
TypeGrd.RowDefinitions.RemoveAt(Index)
|
||||
Next
|
||||
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 2)
|
||||
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 3)
|
||||
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
|
||||
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
|
||||
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
|
||||
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
|
||||
TypeBrd.SetValue(Grid.RowProperty, 12)
|
||||
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
|
||||
ElseIf RowNum < 2 Then
|
||||
' costruiso una riga in più da inserire
|
||||
Dim Row As New RowDefinition
|
||||
TypeGrd.RowDefinitions.Add(Row)
|
||||
End If
|
||||
LeadInTypeTxBl.SetValue(Grid.RowProperty, 1)
|
||||
LeadInTypeTxBl.SetValue(Grid.ColumnProperty, 0)
|
||||
LeadInTypeCmBx.SetValue(Grid.RowProperty, 1)
|
||||
LeadInTypeCmBx.SetValue(Grid.ColumnProperty, 1)
|
||||
LeadOutTypeTxBl.SetValue(Grid.RowProperty, 1)
|
||||
LeadOutTypeTxBl.SetValue(Grid.ColumnProperty, 2)
|
||||
LeadOutTypeCmBx.SetValue(Grid.RowProperty, 1)
|
||||
LeadOutTypeCmBx.SetValue(Grid.ColumnProperty, 3)
|
||||
TypeBrd.SetValue(Grid.RowProperty, 12)
|
||||
TypeBrd.SetValue(Grid.RowSpanProperty, 6)
|
||||
|
||||
LeadInTypeTxBl.Visibility = Windows.Visibility.Visible
|
||||
LeadInTypeCmBx.Visibility = Windows.Visibility.Visible
|
||||
ExtLinkTypeTxBl.Visibility = Windows.Visibility.Hidden
|
||||
@@ -2285,7 +2291,7 @@ Public Class MachiningDbPageUC
|
||||
Private Sub MaxThicknessTxBx_EgtClosed(sender As Object, e As EventArgs) Handles MaxThicknessTxBx.EgtClosed
|
||||
Dim SelectedMaterial As MachiningMaterial = MaterialsList.SelectedItem
|
||||
Dim dMaxThick As Double = 0
|
||||
If m_MainWindow.m_CurrentMachine.bWaterJet Then
|
||||
If m_MainWindow.m_CurrentMachine.bWaterJet And m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
|
||||
' solo per water jet controllo lo spessore massimo ammissibile
|
||||
dMaxThick = m_MainWindow.m_CurrentMachine.GetMaxThicknessCurrMaterial(SelectedMaterial.Name)
|
||||
Dim dVal As Double
|
||||
@@ -2369,7 +2375,6 @@ Public Class MachiningDbPageUC
|
||||
Case MCH_MY.POCKETING
|
||||
LeadInTypeCmBx.ItemsSource = New ObservableCollection(Of IdNameStruct)(
|
||||
{New IdNameStruct(MCH_POCK_LI.NONE, EgtMsg(MSG_COMBOBOXPARAM + 42)),
|
||||
New IdNameStruct(MCH_POCK_LI.GLIDE, EgtMsg(MSG_COMBOBOXPARAM + 48)),
|
||||
New IdNameStruct(MCH_POCK_LI.ZIGZAG, EgtMsg(MSG_COMBOBOXPARAM + 38)),
|
||||
New IdNameStruct(MCH_POCK_LI.HELIX, EgtMsg(MSG_COMBOBOXPARAM + 49))})
|
||||
LeadOutTypeCmBx.ItemsSource = New ObservableCollection(Of IdNameStruct)(
|
||||
|
||||
+21
-4
@@ -323,8 +323,8 @@ Class MainWindow
|
||||
' Verifico abilitazione nesting automatico
|
||||
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
|
||||
' Recupero opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2312, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(9423, 2312, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2401, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(9423, 2401, 1, m_nKeyOptions)
|
||||
' Verifico abilitazione prodotto
|
||||
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
@@ -569,6 +569,8 @@ Class MainWindow
|
||||
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
|
||||
' disbilito Test
|
||||
TestOff()
|
||||
' disabilito DragRettangle
|
||||
DragRettangleOff()
|
||||
Select Case m_ActivePage
|
||||
Case Pages.WorkInProgress
|
||||
WorkInProgressBtn.IsChecked = True
|
||||
@@ -625,6 +627,7 @@ Class MainWindow
|
||||
EgtMdbGetGeneralParam(MCH_GP.SAFEZ, DirectCutPageUC.m_dZSafe)
|
||||
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
|
||||
TestOff()
|
||||
DragRettangleOff()
|
||||
Select Case m_ActivePage
|
||||
Case Pages.WorkInProgress
|
||||
WorkInProgressBtn.IsChecked = False
|
||||
@@ -678,6 +681,7 @@ Class MainWindow
|
||||
Private Sub CadCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles CadCutBtn.Click
|
||||
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
|
||||
TestOff()
|
||||
DragRettangleOff()
|
||||
Select Case m_ActivePage
|
||||
Case Pages.WorkInProgress
|
||||
WorkInProgressBtn.IsChecked = False
|
||||
@@ -730,6 +734,7 @@ Class MainWindow
|
||||
Private Sub FrameCutBtn_Click(sender As Object, e As RoutedEventArgs) Handles FrameCutBtn.Click
|
||||
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
|
||||
TestOff()
|
||||
DragRettangleOff()
|
||||
Select Case m_ActivePage
|
||||
Case Pages.WorkInProgress
|
||||
WorkInProgressBtn.IsChecked = False
|
||||
@@ -783,6 +788,7 @@ Class MainWindow
|
||||
Private Sub MachineBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachineBtn.Click
|
||||
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
|
||||
TestOff()
|
||||
DragRettangleOff()
|
||||
Select Case m_ActivePage
|
||||
Case Pages.WorkInProgress
|
||||
WorkInProgressBtn.IsChecked = False
|
||||
@@ -831,6 +837,7 @@ Class MainWindow
|
||||
Private Sub OptionsBtn_Click(sender As Object, e As RoutedEventArgs) Handles OptionsBtn.Click
|
||||
m_CurrentProjectPageUC.m_SceneButtons.MeasureBtn.IsChecked = False
|
||||
TestOff()
|
||||
DragRettangleOff()
|
||||
Select Case m_ActivePage
|
||||
Case Pages.WorkInProgress
|
||||
WorkInProgressBtn.IsChecked = False
|
||||
@@ -1139,7 +1146,8 @@ Class MainWindow
|
||||
Dim nPrjType As Integer = m_CurrentProjectPageUC.GetCurrentProjectType()
|
||||
' Aggiorno interfaccia
|
||||
CadCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FRAMES)
|
||||
FrameCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FLATS)
|
||||
FrameCutBtn.IsEnabled = (nPrjType <> CurrentProjectPageUC.PRJ_TYPE.FLATS) AndAlso (EgtGetHeadId("H1") <> GDB_ID.NULL)
|
||||
' DirectCutBtn.IsEnabled = (EgtGetHeadId("H1") <> GDB_ID.NULL)
|
||||
End Sub
|
||||
|
||||
' Nomi dei file per OmagVIEW
|
||||
@@ -1884,8 +1892,17 @@ Class MainWindow
|
||||
' deseleziono gli oggetti e spengo il bottone
|
||||
EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv)
|
||||
EgtDeselectObj(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
|
||||
EgtResetMark(m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
|
||||
m_CadCutPageUC.m_ProjectMgr.TestBtn.IsChecked = False
|
||||
m_CurrentProjectPageUC.m_bSelectCurv = False
|
||||
Me.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
|
||||
End Sub
|
||||
|
||||
' spegne il comando per la mofica dei rettangoli
|
||||
Public Sub DragRettangleOff()
|
||||
m_CadCutPageUC.m_NestPage.DragRettanleBtn.IsChecked = False
|
||||
Me.m_CadCutPageUC.m_NestPage.m_bIsCheckedDragRettangle = False
|
||||
ShowParkedParts()
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -22,7 +22,7 @@ Imports System.Windows
|
||||
#End If
|
||||
<Assembly: AssemblyCompany("EgalTech s.r.l.")>
|
||||
<Assembly: AssemblyProduct("OmagCUT")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2015-2021 by EgalTech s.r.l.")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2015-2022 by EgalTech s.r.l.")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
@@ -62,5 +62,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.3.12.1")>
|
||||
<Assembly: AssemblyFileVersion("2.3.12.1")>
|
||||
<Assembly: AssemblyVersion("2.4.1.3")>
|
||||
<Assembly: AssemblyFileVersion("2.4.1.3")>
|
||||
|
||||
@@ -1238,6 +1238,9 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\Acquisisci-P.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\Drag_Rettangle.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
<BitmapImage x:Key="Elimina-pezzoImg" UriSource="Resources/NewIcons/Elimina-pezzo.png"></BitmapImage>
|
||||
<BitmapImage x:Key="Seleziona-tuttoImg" UriSource="Resources/NewIcons/Seleziona-tutto.png"></BitmapImage>
|
||||
<BitmapImage x:Key="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage>
|
||||
<BitmapImage x:Key="Drag_RettangleImg" UriSource="Resources/NewIcons/Drag_Rettangle.png"></BitmapImage>
|
||||
|
||||
<!--Machine-->
|
||||
<BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage>
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
<BitmapImage x:Key="Elimina-pezzoImg" UriSource="Resources/NewIcons/Elimina-pezzo.png"></BitmapImage>
|
||||
<BitmapImage x:Key="Seleziona-tuttoImg" UriSource="Resources/NewIcons/Seleziona-tutto.png"></BitmapImage>
|
||||
<BitmapImage x:Key="Deseleziona-tuttoImg" UriSource="Resources/NewIcons/Deseleziona-tutto.png"></BitmapImage>
|
||||
<BitmapImage x:Key="Drag_RettangleImg" UriSource="Resources/NewIcons/Drag_Rettangle.png"></BitmapImage>
|
||||
|
||||
<!--Machine-->
|
||||
<BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage>
|
||||
@@ -1209,6 +1210,14 @@
|
||||
<Setter Property="Width" Value="80"/>
|
||||
<Setter Property="Keyboard" Value="Calculator"/>
|
||||
<Setter Property="KeyboardDimension" Value="300"/>
|
||||
<Setter Property="IsHitTestVisible" Value="False" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor,
|
||||
AncestorType={x:Type ListBoxItem}, AncestorLevel=1}}"
|
||||
Value="True">
|
||||
<Setter Property="IsHitTestVisible" Value="True" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="OmagCut_MachToolCalculatorTextBox" TargetType="{x:Type EgtWPFLib:EgtTextBox}" BasedOn="{StaticResource OmagCut_CalculatorTextBox}">
|
||||
|
||||
@@ -18,7 +18,7 @@ Class CicloStartWD
|
||||
Me.Top = Owner.Top + Owner.Height / 2 - Me.Height / 2
|
||||
Me.Left = Owner.Left + Owner.Width / 2 - Me.Width / 2
|
||||
' imopposto il messaggio di avvio
|
||||
CicloStartTxbl.Text = "Avvio Ciclo-Start"
|
||||
CicloStartTxbl.Text = EgtMsg(91130) ' Esegui programma?
|
||||
End Sub
|
||||
|
||||
' creo un progetto nuovo
|
||||
|
||||
@@ -6,7 +6,6 @@ Imports EgtWPFLib5
|
||||
|
||||
Public Class CurrentProjectPageUC
|
||||
' Dichiarazione eventi
|
||||
Friend Event OnMouseDownSceneSelCurv(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
Friend Event OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
Friend Event OnMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
Friend Event OnMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
@@ -24,8 +23,8 @@ Public Class CurrentProjectPageUC
|
||||
' Dati del grezzo
|
||||
Friend m_nRawId As Integer = GDB_ID.NULL
|
||||
Friend m_dRawHeight As Double
|
||||
' pagina impostata per selezionare una lavorazione
|
||||
Friend m_bSelectCurv As Boolean = False
|
||||
'' Flag per impostata per selezionare di una curva
|
||||
'Friend m_bSelectCurv As Boolean = False
|
||||
' Costanti tipo progetto
|
||||
Friend Enum PRJ_TYPE As Integer
|
||||
EMPTY = 0
|
||||
@@ -328,12 +327,7 @@ Public Class CurrentProjectPageUC
|
||||
End Sub
|
||||
|
||||
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseDownScene
|
||||
If m_bSelectCurv Then
|
||||
RaiseEvent OnMouseDownSceneSelCurv(sender, e)
|
||||
Else
|
||||
RaiseEvent OnMouseDownScene(sender, e)
|
||||
End If
|
||||
|
||||
RaiseEvent OnMouseDownScene(sender, e)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMyMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles CurrentProjectScene.OnMouseMoveScene
|
||||
@@ -622,6 +616,8 @@ Public Class CurrentProjectPageUC
|
||||
File.Copy(sPhoto, sNewPhoto, True)
|
||||
Catch ex As FileNotFoundException
|
||||
' non è un problema
|
||||
Catch ex As DirectoryNotFoundException
|
||||
' non è un problema
|
||||
Catch ex As Exception
|
||||
Return False
|
||||
End Try
|
||||
|
||||
@@ -276,7 +276,7 @@ Public Class ProjectMgrUC
|
||||
m_CurrProjPage.SetWarningMessage("Trial Version")
|
||||
#Else
|
||||
' se sono in modalità Test allora eseguo solo il posizionamento della lama
|
||||
If m_CurrProjPage.m_bSelectCurv Then
|
||||
If m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv Then
|
||||
' Verifico non sia versione Ufficio
|
||||
If m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.OFFICE_TYPE) Then
|
||||
m_CurrProjPage.SetWarningMessage("Office Version")
|
||||
@@ -336,7 +336,7 @@ Public Class ProjectMgrUC
|
||||
' verifica assi lineari
|
||||
EgtVerifyOutstroke(dX, dY, dZ, dC1, dB1, nStat)
|
||||
If nStat <> 0 Then
|
||||
vtDirT = - vtDirT
|
||||
vtDirT = -vtDirT
|
||||
ptMid -= vtDirT * dThick
|
||||
EgtGetCalcAngles(vtDirT, Vector3d.Z_AX(), nStat, dC1, dB1, dC2, dB2)
|
||||
' calcolo la posizione degli assi lineari X, Y, Z ( correggere il punto ptMid.z sommando il raggio utensile)
|
||||
@@ -736,11 +736,11 @@ Public Class ProjectMgrUC
|
||||
|
||||
Private Sub TestBtn_Click(sender As Object, e As RoutedEventArgs) Handles TestBtn.Click
|
||||
If TestBtn.IsChecked Then
|
||||
m_CurrProjPage.m_bSelectCurv = True
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = True
|
||||
' deseleziono tutto
|
||||
EgtDeselectAll()
|
||||
Else
|
||||
m_CurrProjPage.m_bSelectCurv = False
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.m_bSelectCurv = False
|
||||
EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedCurv)
|
||||
EgtDeselectObj(m_MainWindow.m_CadCutPageUC.m_NestPage.m_CurrSelectedSawCurv)
|
||||
End If
|
||||
|
||||
@@ -60,6 +60,12 @@ Public Class ChooseMachining
|
||||
|
||||
Private Sub InitializeMachiningLists()
|
||||
|
||||
' in assenza dell'uscita H1 nascondo i parametri lama
|
||||
If EgtGetHeadId("H1") = GDB_ID.NULL Then
|
||||
CurrSawingTxBl.Visibility = Visibility.Hidden
|
||||
CurrSawingCmBx.Visibility = Visibility.Hidden
|
||||
End If
|
||||
|
||||
' -- TAGLIO --
|
||||
CreateMachiningList(MCH_MY.SAWING, m_CurrentMachine.sCurrSaw, m_SawingList)
|
||||
' aggiungo un campo vuoto
|
||||
@@ -257,7 +263,7 @@ Public Class ChooseMachining
|
||||
If SysNotes <> String.Empty Then
|
||||
Dim MachiningMaterials() = SysNotes.Split(";".ToCharArray)
|
||||
SysNotes = String.Empty
|
||||
If m_CurrentMachine.bWaterJet Then
|
||||
If m_CurrentMachine.bWaterJet And m_CurrentMachine.bFromDBWaterJet Then
|
||||
For Each Material As Object In MachiningMaterials
|
||||
Dim Param() As String = Material.Split(",".ToCharArray)
|
||||
Dim SubParam() As String = Param(0).Split(".".ToCharArray)
|
||||
@@ -583,18 +589,24 @@ Public Class ChooseMachining
|
||||
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
|
||||
If CurrMillingCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJetting Then m_MachIsModified = True
|
||||
End If
|
||||
If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
|
||||
CurrWJettingQualityCmBx.SelectedItem = m_CurrentMachine.sCurrWaterJettingQuality
|
||||
End If
|
||||
' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
|
||||
If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
|
||||
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
|
||||
If CurrWJettingQualityCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJettingQuality Then m_MachIsModified = True
|
||||
End If
|
||||
|
||||
CurrWJettingQualityCmBx.Visibility = Windows.Visibility.Visible
|
||||
CurrWJettingTxBl.Visibility = Windows.Visibility.Visible
|
||||
CurrWJettingCmBx.Visibility = Windows.Visibility.Visible
|
||||
' se DB WaterJet abilitato avrò anche la CmBx della Quality altrimenti espando la CmBx del Waterjetting corrente su tutta la riga
|
||||
If m_MainWindow.m_CurrentMachine.bFromDBWaterJet Then
|
||||
CurrWJettingCmBx.SetValue(Grid.ColumnSpanProperty, 1)
|
||||
If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
|
||||
CurrWJettingQualityCmBx.SelectedItem = m_CurrentMachine.sCurrWaterJettingQuality
|
||||
End If
|
||||
' verifico che la selezione sia andata a buon fine, altrimenti comunico l'avvenuta modifica
|
||||
If String.IsNullOrEmpty(CurrWJettingQualityCmBx.SelectedItem) Then
|
||||
' verifico che sia stato inserito veramente una lavorazione prima di comunicare una modifica
|
||||
If CurrWJettingQualityCmBx.SelectedItem <> m_CurrentMachine.sCurrWaterJettingQuality Then m_MachIsModified = True
|
||||
End If
|
||||
CurrWJettingQualityCmBx.Visibility = Windows.Visibility.Visible
|
||||
Else
|
||||
CurrWJettingCmBx.SetValue(Grid.ColumnSpanProperty, 3)
|
||||
CurrWJettingQualityCmBx.Visibility = Windows.Visibility.Collapsed
|
||||
End If
|
||||
End If
|
||||
|
||||
Me.Height = 42 * m_RowNumber
|
||||
@@ -627,10 +639,14 @@ Public Class ChooseMachining
|
||||
|
||||
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
||||
DialogResult = True
|
||||
' Aggiorno i parametri dei tagli diretti
|
||||
m_MainWindow.m_DirectCutPageUC.ReloadParam()
|
||||
End Sub
|
||||
|
||||
Private Sub ExitBtn_Click(sender As Object, e As RoutedEventArgs) Handles ExitBtn.Click
|
||||
DialogResult = False
|
||||
' Aggiorno i parametri dei tagli diretti
|
||||
m_MainWindow.m_DirectCutPageUC.ReloadParam()
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -167,7 +167,7 @@ Public Class RawPartPageUC
|
||||
Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||
' aggiorno la lista dei materiali
|
||||
Dim Index As Integer = 1
|
||||
If m_CurrentMachine.bWaterJet Then
|
||||
If m_CurrentMachine.bWaterJet And m_CurrentMachine.bFromDBWaterJet Then
|
||||
m_CurrentMachine.LoadWJMaterial()
|
||||
End If
|
||||
|
||||
@@ -964,13 +964,21 @@ Public Class RawPartPageUC
|
||||
m_nPtMode = If(AddBtn.IsChecked, PTMODE.ADD, PTMODE.MOVE)
|
||||
Case RAWMODE.FROM_LASER
|
||||
Dim ptAcquired As Point3d
|
||||
'----------------------------------------- INIZIO ------------------ se decido di inserire i punti laser manualmente --------------------------------------------------
|
||||
If m_bFromDraw And Not IsNothing(m_ptPrev) Then
|
||||
ptAcquired = m_ptPrev
|
||||
ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
|
||||
'----------------------------------------- FINE ------------------- se decido di inserire i punti laser manualmente --------------------------------------------------
|
||||
ElseIf Not AcquireLaserPoint(ptAcquired) Then
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 32))
|
||||
' Se inserimento manuale dei punti laser
|
||||
If m_bFromDraw Then
|
||||
If Not IsNothing(m_ptPrev) Then
|
||||
ptAcquired = m_ptPrev
|
||||
ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
|
||||
Else
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
|
||||
Return
|
||||
End If
|
||||
' altrimenti da macchina
|
||||
Else
|
||||
If Not AcquireLaserPoint(ptAcquired) Then
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
' Limito il punto a stare nella tavola con franco pari al kerf
|
||||
If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST
|
||||
@@ -1014,13 +1022,21 @@ Public Class RawPartPageUC
|
||||
m_nPtDmgMode = DMGMODE.NONE
|
||||
Case RAWMODE.DAMAGED_BY_LASER
|
||||
Dim ptAcquired As Point3d
|
||||
'----------------------------------------- INIZIO ------------------ se decido di inserire i punti laser manualmente --------------------------------------------------
|
||||
If m_bFromDraw And Not IsNothing(m_ptPrev) Then
|
||||
ptAcquired = m_ptPrev
|
||||
ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
|
||||
'----------------------------------------- FINE ------------------- se decido di inserire i punti laser manualmente --------------------------------------------------
|
||||
ElseIf Not AcquireLaserPoint(ptAcquired) Then
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 32))
|
||||
' Se inserimento manuale dei punti laser
|
||||
If m_bFromDraw Then
|
||||
If Not IsNothing(m_ptPrev) Then
|
||||
ptAcquired = m_ptPrev
|
||||
ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
|
||||
Else
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
|
||||
Return
|
||||
End If
|
||||
' altrimenti da macchina
|
||||
Else
|
||||
If Not AcquireLaserPoint(ptAcquired) Then
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
' Limito il punto a stare nella tavola con franco pari al kerf
|
||||
If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST
|
||||
@@ -1062,8 +1078,11 @@ Public Class RawPartPageUC
|
||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then
|
||||
Return False
|
||||
End If
|
||||
' Ricavo dati lama corrente
|
||||
Dim sSaw As String = m_CurrentMachine.sCurrSaw
|
||||
' Recupero dati utensile e testa corrente
|
||||
Dim sTool As String = ""
|
||||
Dim sHead As String = ""
|
||||
Dim nExit As Integer = 0
|
||||
EgtGetCalcTool(sTool, sHead, nExit)
|
||||
' Imposto come testa corrente il laser (senza utensile ovviamente)
|
||||
If Not EgtSetCalcTool("", "H3", 1) Then
|
||||
Return False
|
||||
@@ -1072,10 +1091,8 @@ Public Class RawPartPageUC
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, ptTipP1) Then
|
||||
Return False
|
||||
End If
|
||||
' Ora imposto la lama corrente
|
||||
If Not EgtSetCalcTool(sSaw, "H1", 1) Then
|
||||
Return False
|
||||
End If
|
||||
' Reimposto eventuale precedente utensile
|
||||
EgtSetCalcTool(sTool, sHead, nExit)
|
||||
' Porto il tip nell'origine tavola
|
||||
ptAcquired = ptTipP1
|
||||
ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 6.4 KiB |
Reference in New Issue
Block a user