Compare commits
36 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 18966d103e | |||
| 8a65942370 | |||
| c55cbfa5bb | |||
| 1557f0865c | |||
| e5e80e9a55 | |||
| c7828774d8 | |||
| cd0388b970 | |||
| 135be5f104 | |||
| 2f116ba3fe | |||
| 96ee5b5172 | |||
| 484f7eb410 | |||
| c1eb839fe8 | |||
| f3b1d80de7 | |||
| 14b4897575 | |||
| 213a66d916 | |||
| c9c7aeafae | |||
| 07d54499b7 | |||
| 9f266f1c56 | |||
| 48e523ce26 | |||
| a73b45d23e | |||
| 8ea607611c | |||
| bdf0971c20 | |||
| 7d77297695 | |||
| bdcdcaecf0 | |||
| 44011c5775 | |||
| cba095188e | |||
| ebedccf46a | |||
| 8bd7d9e3fa | |||
| 8dfa932bd7 | |||
| 5422e905e7 | |||
| da396cc82e | |||
| da8e7a9e42 | |||
| d8cbe1a2c6 | |||
| 79c2c17d6b | |||
| ccb8945a4f | |||
| 842ab19e8b |
@@ -22,9 +22,12 @@ Friend Module CamAuto
|
||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.Add")
|
||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||
EgtLuaResetGlobVar("CAM")
|
||||
If nErr <> 0 Then
|
||||
If nErr > 0 Then
|
||||
bOk = False
|
||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||
ElseIf nErr < 0 Then
|
||||
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage(EgtMsg(91017))
|
||||
End If
|
||||
m_MainWindow.m_CurrentProjectPageUC.ResetOrderMachiningFlag()
|
||||
Return bOk
|
||||
@@ -40,9 +43,12 @@ Friend Module CamAuto
|
||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.AddWaterJet")
|
||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||
EgtLuaResetGlobVar("CAM")
|
||||
If nErr <> 0 Then
|
||||
If nErr > 0 Then
|
||||
bOk = False
|
||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||
ElseIf nErr < 0 Then
|
||||
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||
End If
|
||||
Return bOk
|
||||
End Function
|
||||
@@ -60,9 +66,11 @@ Friend Module CamAuto
|
||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.AddWaterJets")
|
||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||
EgtLuaResetGlobVar("CAM")
|
||||
If nErr <> 0 Then
|
||||
If nErr > 0 Then
|
||||
bOk = False
|
||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||
ElseIf nErr < 0 Then
|
||||
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||
End If
|
||||
Return bOk
|
||||
End Function
|
||||
@@ -76,9 +84,11 @@ Friend Module CamAuto
|
||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.Erase")
|
||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||
EgtLuaResetGlobVar("CAM")
|
||||
If nErr <> 0 Then
|
||||
If nErr > 0 Then
|
||||
bOk = False
|
||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||
ElseIf nErr < 0 Then
|
||||
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||
End If
|
||||
m_MainWindow.m_CurrentProjectPageUC.ResetOrderMachiningFlag()
|
||||
m_MainWindow.m_CurrentProjectPageUC.ResetProjectNcRestart()
|
||||
@@ -94,9 +104,11 @@ Friend Module CamAuto
|
||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.InvertVerticalCut")
|
||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||
EgtLuaResetGlobVar("CAM")
|
||||
If nErr <> 0 Then
|
||||
If nErr > 0 Then
|
||||
bOk = False
|
||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||
ElseIf nErr < 0 Then
|
||||
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||
End If
|
||||
Return bOk
|
||||
End Function
|
||||
@@ -291,9 +303,11 @@ Friend Module CamAuto
|
||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.UpdateAllTp")
|
||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||
EgtLuaResetGlobVar("CAM")
|
||||
If nErr <> 0 Then
|
||||
If nErr > 0 Then
|
||||
bOk = False
|
||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||
ElseIf nErr < 0 Then
|
||||
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||
End If
|
||||
Return bOk
|
||||
End Function
|
||||
@@ -307,9 +321,11 @@ Friend Module CamAuto
|
||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.Sort")
|
||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||
EgtLuaResetGlobVar("CAM")
|
||||
If nErr <> 0 Then
|
||||
If nErr > 0 Then
|
||||
bOk = False
|
||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||
ElseIf nErr < 0 Then
|
||||
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||
End If
|
||||
Return bOk
|
||||
End Function
|
||||
@@ -324,9 +340,11 @@ Friend Module CamAuto
|
||||
bOk = bOk AndAlso EgtLuaCallFunction("CAM.SpecApplyDisp")
|
||||
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
|
||||
EgtLuaResetGlobVar("CAM")
|
||||
If nErr <> 0 Then
|
||||
If nErr > 0 Then
|
||||
bOk = False
|
||||
EgtOutLog("Error in CamAuto : " & nErr.ToString())
|
||||
ElseIf nErr < 0 Then
|
||||
EgtOutLog("Warning in CamAuto : " & nErr.ToString())
|
||||
End If
|
||||
If ResetOrderMachiningFlag Then
|
||||
m_MainWindow.m_CurrentProjectPageUC.ResetOrderMachiningFlag()
|
||||
|
||||
@@ -74,6 +74,12 @@ Public Class ChooseTestToolWD
|
||||
End If
|
||||
|
||||
Select Case m_MainWindow.m_CurrentMachine.MountedToolConfig
|
||||
Case CurrentMachine.MountedToolConfigs.SAW
|
||||
sNameTool = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||
If Not String.IsNullOrEmpty(sNameTool) Then
|
||||
' Imposto la lama
|
||||
m_SetUpToolList.Add(New TestTool(sNameTool, sNameTool))
|
||||
End If
|
||||
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
|
||||
sNameTool = m_MainWindow.m_CurrentMachine.sCurrSaw
|
||||
If Not String.IsNullOrEmpty(sNameTool) Then
|
||||
|
||||
@@ -133,9 +133,17 @@ Public Class MoveRawPartPage
|
||||
EgtDraw()
|
||||
' Carico i parametri di movimento
|
||||
m_dStep = GetPrivateProfileDouble(S_RAWMOVE, K_RAWSTEP, 50, m_MainWindow.GetIniFile())
|
||||
' Carico il valore ci
|
||||
Dim ExtraStep As Double = GetPrivateProfileDouble(S_RAWMOVE, K_EXTRASTEP, 1, m_MainWindow.GetIniFile())
|
||||
' Ricavo la lunghezza del baffo di taglio
|
||||
m_dStep = SplitAuto.MaxCuttingMustache(m_dStep)
|
||||
StepMoveTxBx.Text = LenToString(m_dStep, 1) & "+1"
|
||||
If ExtraStep < EPS_SMALL Then
|
||||
StepMoveTxBx.Text = LenToString(m_dStep, 1)
|
||||
Else
|
||||
StepMoveTxBx.Text = LenToString(m_dStep, 1) & "+" & LenToString(ExtraStep, 1)
|
||||
' Aggiorno il valore sommando l'extra
|
||||
m_dStep = m_dStep + ExtraStep
|
||||
End If
|
||||
m_dRotation = GetPrivateProfileDouble(S_RAWMOVE, K_RAWROTATION, 30, m_MainWindow.GetIniFile())
|
||||
RotationAngleTxBx.Text = DoubleToString(m_dRotation, 3)
|
||||
' Se movimento manuale perpendicolare
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
<Image Source="{DynamicResource Deseleziona-tuttoImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</Button>
|
||||
<ToggleButton Name="ParkIndBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
|
||||
<Image Source="{DynamicResource ParkingImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
<Image Name="ParkIndImg" Source="{DynamicResource ParkingImg}" Style="{StaticResource OmagCut_ArrowButtonIcon}"/>
|
||||
</ToggleButton>
|
||||
</UniformGrid>
|
||||
|
||||
|
||||
@@ -149,15 +149,27 @@ Public Class NestPageUC
|
||||
UG0.Columns = nColumnIn_UG0
|
||||
|
||||
' Gestione dei comandi di parcheggio e selezione (UniformGrid2)
|
||||
'...
|
||||
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) = 0 Then
|
||||
EgtOutLog("Button 'EnableDXFPark' is not enable, check in file *.ini program.")
|
||||
ParkIndBtn.Visibility = Visibility.Collapsed
|
||||
UG2.Columns = 2
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Dim ImageConverter As New ImageSourceConverter
|
||||
|
||||
Private Sub NestPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||
m_bActive = True
|
||||
LoadParams()
|
||||
Dim ListparkInd As New List(Of ParkInd)
|
||||
SelParkIndWD.LoadParkInd(ListparkInd)
|
||||
If ListparkInd.Count > 2 Then ParkIndBtn.IsChecked = True
|
||||
Dim nCpuntParkInd As Integer = UpdateImageParkInd()
|
||||
If nCpuntParkInd > 2 Then
|
||||
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) = 0 Then
|
||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||
m_MainWindow.m_CurrentProjectPageUC.SetWarningMessage("There are " & (nCpuntParkInd - 1).ToString & " park in project.")
|
||||
EgtOutLog("WARNONG: Enable button 'EnableDXFPark' in file *.ini program.")
|
||||
End If
|
||||
ParkIndBtn.IsChecked = True
|
||||
End If
|
||||
ParkIndBtn_Click()
|
||||
EgtZoom(ZM.ALL)
|
||||
End Sub
|
||||
@@ -230,21 +242,21 @@ Public Class NestPageUC
|
||||
m_nCountSpot = 0
|
||||
m_nCountSpotCUT = 0
|
||||
End If
|
||||
EgtOutLog("Numero di SPOT caricati da OFFICE: " & m_nCountSpot.ToString)
|
||||
'EgtOutLog("Numero di SPOT caricati da OFFICE: " & m_nCountSpot.ToString)
|
||||
' Se nel progetto non sono inseriti punti SpotReg disabilito i comandi
|
||||
If m_nCountSpot < 1 Then
|
||||
UG0_Reg.IsEnabled = False
|
||||
UG1_Reg.IsEnabled = False
|
||||
EgtOutLog(" Abilito comandi gestione SPOT")
|
||||
'EgtOutLog(" Abilito comandi gestione SPOT")
|
||||
Else
|
||||
UG0_Reg.IsEnabled = True
|
||||
UG1_Reg.IsEnabled = True
|
||||
EgtOutLog(" Disabilito comandi gestione SPOT")
|
||||
'EgtOutLog(" Disabilito comandi gestione SPOT")
|
||||
End If
|
||||
' Se nel progetto non sono inseriti punti SpotRegCUT provvedo ad aggiungerli
|
||||
If m_nCountSpotCUT < 1 Then
|
||||
InsertSpotRegistration()
|
||||
EgtOutLog(" Creo SPOT_CUT")
|
||||
'EgtOutLog(" Creo SPOT_CUT")
|
||||
End If
|
||||
|
||||
' Se necessario riabilito impostazione modificato
|
||||
@@ -2810,9 +2822,7 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
||||
' Aggiorno vista
|
||||
EgtZoom(ZM.ALL)
|
||||
' Aggiorno la lista dei parcheggi
|
||||
If ParkIndBtn.IsChecked Then
|
||||
m_SelParkInd.UpdateList()
|
||||
End If
|
||||
ReloadListParkInd()
|
||||
End Sub
|
||||
|
||||
' ripulisco la lista dei pezzi in parcheggio
|
||||
@@ -2985,8 +2995,39 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
||||
If ParkIndBtn.IsChecked Then
|
||||
m_SelParkInd.UpdateList()
|
||||
End If
|
||||
UpdateImageParkInd()
|
||||
End Sub
|
||||
|
||||
' Aggiorna immagine e restituisce il numero di parcheggi (+1) disponibili (+1 perchè conto anche il comando All_Off)
|
||||
Private Function UpdateImageParkInd() As Integer
|
||||
' Carcico la lista dei parcheggi
|
||||
Dim ListparkInd As New List(Of ParkInd)
|
||||
SelParkIndWD.LoadParkInd(ListparkInd)
|
||||
Dim nCount As Integer = ListparkInd.Count
|
||||
' Se il comando è abilitato allora provvedo ad aggiornare l'immagine
|
||||
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
|
||||
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\Parking.png"
|
||||
If nCount > 1 Then
|
||||
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_Busy.png"
|
||||
Else
|
||||
s = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\NewIcons\Park_Empty.png"
|
||||
End If
|
||||
ParkIndImg.Source = ImageConverter.ConvertFromString(s)
|
||||
Else
|
||||
' Se il comando non è abilitato allora provvedo a selezionare il primo parcheggio
|
||||
Dim CurrparkInd As ParkInd = SelParkIndWD.GetCurrentParkIndSelected()
|
||||
If Not IsNothing(CurrparkInd) Then
|
||||
SelParkIndWD.SetStatusPartInParkInd(CurrparkInd, True)
|
||||
Else
|
||||
If nCount > 1 Then
|
||||
ListparkInd(1).Status = GDB_ST.ON_
|
||||
SelParkIndWD.SetStatusPartInParkInd(ListparkInd(1), True)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Return nCount
|
||||
End Function
|
||||
|
||||
Private Sub DeleteBridgeAssociated(nMyId As Integer)
|
||||
' verifico se esistono dei ponticelli associati al pezzo indicato
|
||||
' recuoero il gruppo di lavorazione corrente
|
||||
@@ -3107,17 +3148,18 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
||||
End Sub
|
||||
|
||||
Private Sub ParkIndBtn_Click() Handles ParkIndBtn.Click
|
||||
If ParkIndBtn.Visibility = Visibility.Collapsed Then
|
||||
Return
|
||||
End If
|
||||
If ParkIndBtn.IsChecked Then
|
||||
If IsNothing(m_SelParkInd) Then
|
||||
m_SelParkInd = New SelParkIndWD(m_MainWindow)
|
||||
End If
|
||||
'm_SelParkInd.Show()
|
||||
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectSceneHost.SetValue(Grid.ColumnSpanProperty, 1)
|
||||
m_SelParkInd.SetValue(Grid.ColumnProperty, 1)
|
||||
m_MainWindow.m_CurrentProjectPageUC.SceneHostGrid.Children.Add(m_SelParkInd)
|
||||
Else
|
||||
If Not IsNothing(m_SelParkInd) Then
|
||||
'm_SelParkInd.Close()
|
||||
m_MainWindow.m_CurrentProjectPageUC.SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||
m_SelParkInd = Nothing
|
||||
@@ -3130,6 +3172,7 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
||||
If Not IsNothing(m_SelParkInd) Then
|
||||
m_SelParkInd.UpdateList()
|
||||
End If
|
||||
UpdateImageParkInd()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
@@ -6,13 +6,27 @@ Imports EgtUILib
|
||||
Imports OmagCUT.NestPageUC
|
||||
|
||||
Public Class SelParkIndWD
|
||||
|
||||
Private Shared m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||
Private m_ParkIndList As New List(Of ParkInd)
|
||||
Private m_nCtx As Integer = -1
|
||||
Public Const nIndAllOff As Integer = 999
|
||||
|
||||
Sub New(Owner As Window)
|
||||
Public Shared sActualProj As String = String.Empty
|
||||
|
||||
Private m_ParkIndList As New List(Of ParkInd)
|
||||
Public Property ParkIndList As List(Of ParkInd)
|
||||
Get
|
||||
Return m_ParkIndList
|
||||
End Get
|
||||
Set(value As List(Of ParkInd))
|
||||
m_ParkIndList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(Owner As Window, Optional nCtx As Integer = -1)
|
||||
'Me.Owner = Owner
|
||||
InitializeComponent()
|
||||
If nCtx > -1 Then m_nCtx = nCtx
|
||||
End Sub
|
||||
|
||||
Public Sub Me_Laoded() Handles Me.Loaded
|
||||
@@ -24,7 +38,7 @@ Public Class SelParkIndWD
|
||||
|
||||
Public Sub UpdateList()
|
||||
' Carico lista dei pezzi
|
||||
LoadParkInd(m_ParkIndList)
|
||||
LoadParkInd(m_ParkIndList, m_nCtx)
|
||||
ParkIndListBox.ItemsSource = m_ParkIndList
|
||||
UpdateDefaultSelection()
|
||||
' Forzo l'aggiornamento della grafica
|
||||
@@ -82,19 +96,19 @@ Public Class SelParkIndWD
|
||||
End While
|
||||
' Assegno lo stato del parcheggio a tutti i pezzi i parcheggio
|
||||
If bFound Then
|
||||
SetStatusPartInParkInd(localParkInd)
|
||||
SetStatusPartInParkInd(localParkInd, True, m_nCtx)
|
||||
Else
|
||||
' Significa che i pezzi sono tutti in macchina: quindi i pezzi sono (SICURAMENTE?) accesi
|
||||
Dim OppositStat As Integer = If(localParkInd.Status = GDB_ST.ON_, GDB_ST.OFF, GDB_ST.ON_)
|
||||
localParkInd.Status = OppositStat
|
||||
SetStatusPartInParkInd(localParkInd)
|
||||
SetStatusPartInParkInd(localParkInd, True, m_nCtx)
|
||||
End If
|
||||
' Se accendo un parcheggio procedo a spegnere tutto gli atri
|
||||
If localParkInd.Status = GDB_ST.ON_ Then
|
||||
For Each ItemParkInd As ParkInd In m_ParkIndList
|
||||
If localParkInd.Ind <> ItemParkInd.Ind Then
|
||||
ItemParkInd.Status = GDB_ST.OFF
|
||||
SetStatusPartInParkInd(ItemParkInd)
|
||||
SetStatusPartInParkInd(ItemParkInd, True, m_nCtx)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
@@ -104,11 +118,12 @@ Public Class SelParkIndWD
|
||||
#Region "METODI SHARED per gestione della lista parcheggi"
|
||||
|
||||
' Restituisce il primo indice di parcheggio libero
|
||||
Public Shared Function NewParkInd() As Integer
|
||||
Public Shared Function NewParkInd(Optional nCtx As Integer = -1) As Integer
|
||||
' recupero il contesto corrente
|
||||
Dim CurrCtx As Integer = EgtGetCurrentContext()
|
||||
' recupero il contesto del progetto
|
||||
Dim ProjCtx As Integer = m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()
|
||||
If nCtx > -1 Then ProjCtx = nCtx
|
||||
EgtSetCurrentContext(ProjCtx)
|
||||
Dim LastParkInd As Integer = 0
|
||||
Dim nRawId As Integer = GetCurrentRaw()
|
||||
@@ -144,12 +159,13 @@ Public Class SelParkIndWD
|
||||
End Function
|
||||
|
||||
' Gestisce lo stato dei pezzi associati al parcheggio indicato
|
||||
Public Shared Sub SetStatusPartInParkInd(localParkInd As ParkInd, Optional bDraw As Boolean = True)
|
||||
Public Shared Sub SetStatusPartInParkInd(localParkInd As ParkInd, Optional bDraw As Boolean = True, Optional nCtx As Integer = -1)
|
||||
If IsNothing(localParkInd) Then Return
|
||||
' recupero il contesto corrente
|
||||
Dim CurrCtx As Integer = EgtGetCurrentContext()
|
||||
' recupero il contesto del progetto
|
||||
Dim ProjCtx As Integer = m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()
|
||||
If nCtx > -1 Then ProjCtx = nCtx
|
||||
EgtSetCurrentContext(ProjCtx)
|
||||
Dim nRawId As Integer = GetCurrentRaw()
|
||||
' Pezzi in tavola
|
||||
@@ -182,7 +198,7 @@ Public Class SelParkIndWD
|
||||
End Sub
|
||||
|
||||
' Restituuisce la lista dei parcheggi del progetto corrente
|
||||
Public Shared Sub LoadParkInd(P_List As List(Of ParkInd))
|
||||
Public Shared Sub LoadParkInd(P_List As List(Of ParkInd), Optional nCtx As Integer = -1)
|
||||
If IsNothing(P_List) Then Return
|
||||
P_List.Clear()
|
||||
P_List.Add(New ParkInd(nIndAllOff, "All off", 0))
|
||||
@@ -190,6 +206,7 @@ Public Class SelParkIndWD
|
||||
Dim CurrCtx As Integer = EgtGetCurrentContext()
|
||||
' recupero il contesto del progetto
|
||||
Dim ProjCtx As Integer = m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()
|
||||
If nCtx > -1 Then ProjCtx = nCtx
|
||||
EgtSetCurrentContext(ProjCtx)
|
||||
Dim nRawId As Integer = GetCurrentRaw()
|
||||
' Pezzi in tavola
|
||||
@@ -210,7 +227,7 @@ Public Class SelParkIndWD
|
||||
' Se non trovo nessun parcheggio con questo indice allora lo aggiungo
|
||||
If IsNothing(localParkInd) Then
|
||||
Dim nStatus As Integer
|
||||
EgtGetInfo(nPartId, INFO_PARKSTATUS, nStatus)
|
||||
If Not EgtGetInfo(nPartId, INFO_PARKSTATUS, nStatus) Then nStatus = GDB_ST.ON_
|
||||
' EgtGetStatus(nPartId, nStatus)
|
||||
P_List.Add(New ParkInd(nInfoParkInd, "Park_" & nInfoParkInd.ToString, nStatus))
|
||||
End If
|
||||
@@ -235,7 +252,7 @@ Public Class SelParkIndWD
|
||||
' Se non trovo nessun parcheggio con questo indice allora lo aggiungo
|
||||
If IsNothing(localParkInd) Then
|
||||
Dim nStatus As Integer
|
||||
EgtGetInfo(nPartId, INFO_PARKSTATUS, nStatus)
|
||||
If Not EgtGetInfo(nPartId, INFO_PARKSTATUS, nStatus) Then nStatus = GDB_ST.ON_
|
||||
' EgtGetStatus(nPartId, nStatus)
|
||||
P_List.Add(New ParkInd(nInfoParkInd, "Park_" & nInfoParkInd.ToString, nStatus))
|
||||
End If
|
||||
@@ -273,9 +290,43 @@ Public Class SelParkIndWD
|
||||
Public Shared Function GetPathCurrProj() As String
|
||||
Dim nProj As Integer = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProject()
|
||||
Dim sParkPath As String = m_MainWindow.GetSaveDir() & "\" & Math.Abs(nProj).ToString("D4") & "_ParkInd_"
|
||||
If Not String.IsNullOrEmpty(sActualProj) Then
|
||||
Dim sDir As String = System.IO.Path.GetDirectoryName(sActualProj)
|
||||
Dim sFile As String = System.IO.Path.GetFileNameWithoutExtension(sActualProj)
|
||||
sParkPath = sDir & "\" & sFile & "_ParkInd_"
|
||||
End If
|
||||
Return sParkPath
|
||||
End Function
|
||||
|
||||
Public Shared Sub CopyImgSvg(sNewFileName As String, Optional nCtx As Integer = -1)
|
||||
If sNewFileName.EndsWith(".nge") Then
|
||||
sNewFileName = sNewFileName.Remove(sNewFileName.Length - 4, 4) & "_ParkInd_"
|
||||
End If
|
||||
Dim Extension As String = ".svg"
|
||||
If Not MainWindow.m_bShowSVGParkInd Then Extension = ".png"
|
||||
Dim ListParkInd As New List(Of ParkInd)
|
||||
' ricarico la lista
|
||||
SelParkIndWD.LoadParkInd(ListParkInd, nCtx)
|
||||
'SelParkIndWD.sActualProj = Path.GetFileNameWithoutExtension(sPath)
|
||||
For Each ItemParkInd As ParkInd In ListParkInd
|
||||
If ItemParkInd.Ind <> 0 And ItemParkInd.Ind <> 999 And ItemParkInd.nPartInPark > 0 Then
|
||||
Try
|
||||
Dim sNewFile As String = sNewFileName & ItemParkInd.Ind.ToString & Extension
|
||||
If MainWindow.m_bShowSVGParkInd Then
|
||||
WriteMyXML(sNewFile, ItemParkInd.LocalMyCanvas)
|
||||
Else
|
||||
If System.IO.File.Exists(sNewFile) Then
|
||||
System.IO.File.Delete(sNewFile)
|
||||
End If
|
||||
System.IO.File.Copy(If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img), sNewFile)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Copia immagine " & If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img) & " di ParkInd non roiscita")
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
#End Region ' Metodi Shared
|
||||
|
||||
End Class
|
||||
@@ -338,7 +389,7 @@ Public Class ParkInd
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_nPartInPark As Integer = 0
|
||||
Private m_nPartInPark As Integer = GDB_ST.ON_
|
||||
Public Property nPartInPark As Integer
|
||||
Get
|
||||
Return m_nPartInPark
|
||||
|
||||
@@ -90,6 +90,7 @@ Module ConstIni
|
||||
Public Const K_TEXMAXLINPIX As String = "TextureMaxLinPixels"
|
||||
Public Const K_ZOOMWIN As String = "ZoomWin"
|
||||
Public Const K_DISTLINE As String = "DistLine"
|
||||
Public Const K_ORTOGRAPHIC As String = "OrtoGraphic"
|
||||
|
||||
Public Const S_ALZFRONT As String = "Alz&Front"
|
||||
Public Const K_ALZFRONT As String = "Alz&Front"
|
||||
@@ -211,6 +212,7 @@ Module ConstIni
|
||||
Public Const K_OFFSXY As String = "OffsXY"
|
||||
Public Const K_OFFSYY As String = "OffsYY"
|
||||
Public Const K_OFFSXINTERY As String = "OffsYInterY"
|
||||
Public Const K_OFFSXINTERYSAWTH As String = "OffsYInterYSawTh"
|
||||
Public Const K_STARTTRIM As String = "StartTrim"
|
||||
Public Const K_ENDTRIM As String = "EndTrim"
|
||||
Public Const K_OTHERSIDE As String = "OtherSide"
|
||||
@@ -235,10 +237,13 @@ Module ConstIni
|
||||
Public Const K_OTHERREFTABX As String = "OtherRefTabX"
|
||||
Public Const K_OTHERREFTABY As String = "OtherRefTabY"
|
||||
Public Const K_OTHERREFTABPOS As String = "OtherRefTabPos"
|
||||
Public Const K_REFTAB As String = "RefTab"
|
||||
Public Const K_CURRENTREFTAB As String = "CurrRefTab"
|
||||
|
||||
|
||||
Public Const S_RAWMOVE As String = "RawMove"
|
||||
Public Const K_RAWSTEP As String = "Step"
|
||||
Public Const K_EXTRASTEP As String = "ExtraStep"
|
||||
Public Const K_RAWROTATION As String = "Rotation"
|
||||
Public Const K_PERPENDICULAR As String = "Perpendicular"
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
Public Const K_A10ID As String = "A10Id"
|
||||
Public Const K_DELTA_C As String = "DeltaC"
|
||||
Public Const K_ININCHES As String = "InInches"
|
||||
Public Const K_CPOS As String = "CPos"
|
||||
|
||||
Public Const S_NCSIEMENS As String = "NcSiemens"
|
||||
Public Const K_COMM_NAME As String = "CommName"
|
||||
@@ -185,6 +186,7 @@
|
||||
Public Const K_CAMERA_DIRECT_CMD As String = "CameraDirectCmd"
|
||||
Public Const K_CAMERA_STATE_VAR As String = "CameraStateVar"
|
||||
Public Const K_ENABELE_GOHOME_FOR_PHOTO As String = "EnableGoHomeForPhoto"
|
||||
Public Const K_PENDIG_TIME_FOR_PHOTO As String = "PendigTimeForPhoto"
|
||||
|
||||
Public Const S_TOOLS As String = "Tools"
|
||||
Public Const K_DRILLBIT As String = "Drillbit"
|
||||
|
||||
@@ -482,7 +482,7 @@ Public Class DirectCutPageUC
|
||||
|
||||
Private Sub ManualModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles ManualModeBtn.Click
|
||||
' Imposto modalità manuale della macchina
|
||||
Dim nResult As Short = m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
|
||||
Dim nResult As Short = m_MainWindow.m_DirectCutPageUC.m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -350,6 +350,7 @@ Public Class SquaringUC
|
||||
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nType)
|
||||
Dim dThick As Double = 0
|
||||
EgtTdbGetCurrToolParam(If(nType = MCH_TY.SAW_STD, MCH_TP.THICK, MCH_TP.DIAM), dThick)
|
||||
EgtOutLog("Curr tool type in use for squaring: " & If(nType = MCH_TY.SAW_STD, "SAW_STD", "NOT 'SAW_STD'"))
|
||||
' Ricalcolo lo spessore in base all'inclinazione
|
||||
dThick = dThick / Math.Cos(m_dAngV * Math.PI / 180)
|
||||
' Imposto angolo di rotazione a seconda del lato dei tagli paralleli
|
||||
@@ -367,9 +368,12 @@ Public Class SquaringUC
|
||||
If dDimPzY <> 0 And nNumPzY > 0 And dDimPzX <> 0 And nNumPzX > 0 Then
|
||||
Dim dLenX As Double = dThick + (dDimPzX + dThick) * nNumPzX
|
||||
Dim nCutParaId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, dLenX + 0.1)
|
||||
' Imposto affondamento e angolo di fianco sul taglio
|
||||
EgtSetInfo(nCutParaId, INFO_DEPTH, m_dDepth)
|
||||
EgtSetInfo(nCutParaId, INFO_SIDE_ANGLE, m_dAngV)
|
||||
' Imposto affondamento e angolo di fianco sul taglio (solo se non lama STD)
|
||||
If Not nType = MCH_TY.SAW_STD Then
|
||||
EgtSetInfo(nCutParaId, INFO_DEPTH, m_dDepth)
|
||||
EgtSetInfo(nCutParaId, INFO_SIDE_ANGLE, m_dAngV)
|
||||
EgtOutLog("Curr tool in use is not of type SAW_STD: Depth is limited to raw thickness")
|
||||
End If
|
||||
' Allungo la geometria
|
||||
EgtExtendCurveStartByLen(nCutParaId, m_dOffsetSquaring + m_dExtraLength)
|
||||
EgtExtendCurveEndByLen(nCutParaId, m_dOffsetSquaring + +m_dExtraLength)
|
||||
|
||||
@@ -1174,7 +1174,6 @@ Public Class DrawPageUC
|
||||
If m_ActiveComponentPage = Pages.CompoDimension And m_bInternalCompo Then Return
|
||||
' Se errore esco
|
||||
If Not m_bDrawOk Then Return
|
||||
|
||||
' Nome pezzo
|
||||
Dim sPartName As String = PartNameTxBx.Text
|
||||
' Leggo numero di pezzi da inserire
|
||||
@@ -1186,6 +1185,8 @@ Public Class DrawPageUC
|
||||
Else
|
||||
MakeMultipleInsert(InsNbr, sPartName)
|
||||
End If
|
||||
' Attivo il parcheggio dei pezzi Draw (per il corretto posizionamento nella scena)
|
||||
ActivateParkIndZero()
|
||||
Dim bExitPage As Boolean = GetPrivateProfileInt(S_GENERAL, K_QUITDRAWPAGE, 1, m_MainWindow.GetIniFile) <> 0
|
||||
' Se Shift premuto eseguo il contrario
|
||||
If Keyboard.Modifiers And ModifierKeys.Shift Then
|
||||
@@ -1206,9 +1207,6 @@ Public Class DrawPageUC
|
||||
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_DrawPageUC)
|
||||
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
|
||||
m_MainWindow.m_ActivePage = If(m_MainWindow.FrameCutBtn.IsChecked, MainWindow.Pages.FrameCut, MainWindow.Pages.CadCut)
|
||||
' Attivo il parcheggio dei pezzi Draw
|
||||
ActivateParkIndZero()
|
||||
|
||||
Else
|
||||
m_SceneButtons.MeasureBtn.IsChecked = False
|
||||
DrawPage_Unloaded(sender, e)
|
||||
|
||||
@@ -92,22 +92,23 @@
|
||||
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
|
||||
<Image Source="{DynamicResource Sezione-corniceImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
|
||||
</Button>-->
|
||||
|
||||
<Grid>
|
||||
<Button Name="SelGuideBtn" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
<UniformGrid Name="ArcGrid" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Columns="2" >
|
||||
<TextBlock Name="ArcRadTxBl" Grid.Row="2" Grid.ColumnSpan="2"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="ArcRadTxBx" Grid.Column="2" Grid.Row="2" Width="50"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
<TextBlock Name="ArcAngTxBl" Grid.Row="3" Grid.ColumnSpan="2"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="ArcAngTxBx" Grid.Column="2" Grid.Row="3" Width="50"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
</UniformGrid>
|
||||
</Grid>
|
||||
<UniformGrid Name="ArcGrid" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Columns="2" >
|
||||
<TextBlock Name="ArcRadTxBl" Grid.Row="2" Grid.ColumnSpan="2"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="ArcRadTxBx" Grid.Column="2" Grid.Row="2" Width="50"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
<TextBlock Name="ArcAngTxBl" Grid.Row="3" Grid.ColumnSpan="2"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="ArcAngTxBx" Grid.Column="2" Grid.Row="3" Width="50"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
</UniformGrid>
|
||||
</UniformGrid>
|
||||
|
||||
<UniformGrid Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Columns="2" >
|
||||
<Button Name="SelGuideBtn" Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
<ToggleButton Name="SelRawSideBtn" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
|
||||
</UniformGrid>
|
||||
|
||||
<TextBlock Name="OffsZTxBl" Grid.Row="2" Grid.ColumnSpan="2"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="OffsZTxBx" Grid.Column="2" Grid.Row="2" Width="50"
|
||||
@@ -123,10 +124,19 @@
|
||||
<EgtWPFLib:EgtTextBox Name="OffsYyTxBx" Grid.Column="2" Grid.Row="4" Width="50"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
|
||||
<TextBlock Name="OffsXInteryTxBl" Grid.Row="5" Grid.ColumnSpan="2"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="OffsXInteryTxBx" Grid.Column="2" Grid.Row="5" Width="50"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
<Grid Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Name="OffsXInteryTxBl" Grid.Column="0"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<CheckBox Name="UseInteraxisChBx" Grid.Row="7" Grid.Column="1" Height="30" Width="40" HorizontalAlignment="Right"
|
||||
Margin="-20,0,0,0"/>
|
||||
<EgtWPFLib:EgtTextBox Name="OffsXInteryTxBx" Grid.Column="2" Width="50"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}" IsEnabled="{Binding ElementName=UseInteraxisChBx, Path=IsChecked}"/>
|
||||
</Grid>
|
||||
|
||||
<UniformGrid Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" Columns="2" >
|
||||
<Button Name="MirrorPartBtn"
|
||||
|
||||
@@ -23,6 +23,10 @@ Public Class FrameCutPageUC
|
||||
' Importazione guida in corso
|
||||
Private m_bGuide As Boolean = False
|
||||
|
||||
' Linea selezionata dal contorno del grezzo
|
||||
Private m_LineDir As Integer = -1
|
||||
Private m_ptMidLineDir As New Point3d
|
||||
|
||||
Private Sub FrameCutPage_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
||||
' Creazione delle Page UserControl
|
||||
m_ProjectMgr = New ProjectMgrUC
|
||||
@@ -54,14 +58,17 @@ Public Class FrameCutPageUC
|
||||
OffsYyTxBx.Text = LenToString(dOffsYY, 3)
|
||||
Dim dOffsXInterY As Double = GetPrivateProfileDouble(S_FRAME, K_OFFSXINTERY, 5, m_MainWindow.GetIniFile())
|
||||
OffsXInteryTxBx.Text = LenToString(dOffsXInterY, 3)
|
||||
Dim bOffsYInterYSawTh As Boolean = False
|
||||
UseInteraxisChBx.IsChecked = (GetPrivateProfileInt(S_FRAME, K_OFFSXINTERYSAWTH, 0, m_MainWindow.GetIniFile()) <> 1)
|
||||
|
||||
' Imposto i messaggi letti dal file dei messaggi
|
||||
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 1)) 'Lungo X
|
||||
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 2)) 'Lungo Y
|
||||
If GetPrivateProfileInt(S_FRAME, K_ARC_ENABLE, 0, m_MainWindow.GetIniFile()) <> 0 And
|
||||
m_MainWindow.GetKeyOption( MainWindow.KEY_OPT.CURVED_FRAME) Then
|
||||
m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.CURVED_FRAME) Then
|
||||
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 13)) 'Arco
|
||||
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 14)) 'Guida
|
||||
m_AlongAx.Add("Raw side")
|
||||
End If
|
||||
SelSectionBtn.ToolTip = EgtMsg(MSG_FRAMECUTPAGEUC + 15) 'Sezione
|
||||
SelGuideBtn.Content = EgtMsg(MSG_FRAMECUTPAGEUC + 16) 'Guida
|
||||
@@ -73,6 +80,18 @@ Public Class FrameCutPageUC
|
||||
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 9) 'Distanza inizio
|
||||
OffsYyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 22) 'Distanza Y
|
||||
OffsXInteryTxBl.Text = EgtMsg(90645) 'Interasse
|
||||
SelRawSideBtn.Content = "Sel raw side"
|
||||
Dim sChBxToolTip As String = EgtMsg(90646) 'Applica valore indicato\n altrienti spessore lama
|
||||
sChBxToolTip = sChBxToolTip.Replace("/n", "£")
|
||||
Dim sItems As String() = sChBxToolTip.Split("£")
|
||||
For Index As Integer = 0 To sItems.Count - 1
|
||||
If Index = 0 Then
|
||||
sChBxToolTip = sItems(Index).Trim
|
||||
Else
|
||||
sChBxToolTip &= vbCrLf & sItems(Index).Trim
|
||||
End If
|
||||
Next
|
||||
UseInteraxisChBx.ToolTip = sChBxToolTip
|
||||
End Sub
|
||||
|
||||
Private Sub FrameCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
@@ -125,25 +144,26 @@ Public Class FrameCutPageUC
|
||||
AlongAxCmBx.SelectedIndex = m_CurrAx
|
||||
AlongAxCmBx.IsEnabled = False
|
||||
' Se cornice arco o curva, disabilito scelta nuova sezione
|
||||
SelSectionBtn.IsEnabled = ( m_CurrAx = 0 Or m_CurrAx = 1)
|
||||
SelSectionBtn.IsEnabled = (m_CurrAx = 0 Or m_CurrAx = 1)
|
||||
' Se cornice curva, verifico se disabilitare scelta guida
|
||||
If m_CurrAx = 3 Then
|
||||
SelGuideBtn.IsEnabled = ( EgtGetFirstNameInGroup( nPartId, NAME_GUIDE) = GDB_ID.NULL)
|
||||
End If
|
||||
Dim bIsEnable As Boolean = (EgtGetFirstNameInGroup(nPartId, NAME_GUIDE) = GDB_ID.NULL)
|
||||
If m_CurrAx = 3 Then SelGuideBtn.IsEnabled = bIsEnable
|
||||
If m_CurrAx = 4 Then SelRawSideBtn.IsEnabled = bIsEnable
|
||||
' Se cornice su arco ne leggo i dati
|
||||
If m_CurrAx = 2 Then
|
||||
Dim dExtRad As Double
|
||||
if EgtGetInfo(nPartId, INFO_FRAME_ARCRAD, dExtRad) Then ArcRadTxBx.Text = LenToString( dExtRad, 3)
|
||||
If EgtGetInfo(nPartId, INFO_FRAME_ARCRAD, dExtRad) Then ArcRadTxBx.Text = LenToString(dExtRad, 3)
|
||||
Dim dAngCenDeg As Double
|
||||
if EgtGetInfo(nPartId, INFO_FRAME_ARCANG, dAngCenDeg) Then ArcAngTxBx.Text = DoubleToString( dAngCenDeg, 3)
|
||||
If EgtGetInfo(nPartId, INFO_FRAME_ARCANG, dAngCenDeg) Then ArcAngTxBx.Text = DoubleToString(dAngCenDeg, 3)
|
||||
End If
|
||||
' Altrimenti
|
||||
' Altrimenti
|
||||
Else
|
||||
' Abilito cambio direzione e scelta sezione
|
||||
AlongAxCmBx.SelectedIndex = m_CurrAx
|
||||
AlongAxCmBx.IsEnabled = True
|
||||
SelSectionBtn.IsEnabled = True
|
||||
SelGuideBtn.IsEnabled = True
|
||||
If m_CurrAx = 3 Then SelGuideBtn.IsEnabled = True
|
||||
If m_CurrAx = 4 Then SelRawSideBtn.IsEnabled = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -155,6 +175,7 @@ Public Class FrameCutPageUC
|
||||
ArcGrid.Visibility = Windows.Visibility.Collapsed
|
||||
OffsYyTxBl.Visibility = Windows.Visibility.Collapsed
|
||||
OffsYyTxBx.Visibility = Windows.Visibility.Collapsed
|
||||
SelRawSideBtn.Visibility = Windows.Visibility.Collapsed
|
||||
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 9) 'Distanza inizio
|
||||
Case 2 'Arco
|
||||
SelSectionBtn.Visibility = Windows.Visibility.Visible
|
||||
@@ -162,6 +183,7 @@ Public Class FrameCutPageUC
|
||||
ArcGrid.Visibility = Windows.Visibility.Visible
|
||||
OffsYyTxBl.Visibility = Windows.Visibility.Visible
|
||||
OffsYyTxBx.Visibility = Windows.Visibility.Visible
|
||||
SelRawSideBtn.Visibility = Windows.Visibility.Collapsed
|
||||
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 21) 'Distanza X
|
||||
Case 3 'Guida
|
||||
SelSectionBtn.Visibility = Windows.Visibility.Visible
|
||||
@@ -170,6 +192,16 @@ Public Class FrameCutPageUC
|
||||
ArcGrid.Visibility = Windows.Visibility.Collapsed
|
||||
OffsYyTxBl.Visibility = Windows.Visibility.Visible
|
||||
OffsYyTxBx.Visibility = Windows.Visibility.Visible
|
||||
SelRawSideBtn.Visibility = Windows.Visibility.Collapsed
|
||||
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 21) 'Distanza X
|
||||
Case 4
|
||||
SelSectionBtn.Visibility = Windows.Visibility.Visible
|
||||
SelGuideBtn.Visibility = Windows.Visibility.Collapsed
|
||||
ArcGrid.Visibility = Windows.Visibility.Collapsed
|
||||
OffsYyTxBl.Visibility = Windows.Visibility.Visible
|
||||
OffsYyTxBx.Visibility = Windows.Visibility.Visible
|
||||
SelRawSideBtn.Visibility = Windows.Visibility.Visible
|
||||
SelRawSideBtn.IsEnabled = False
|
||||
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 21) 'Distanza X
|
||||
End Select
|
||||
End Sub
|
||||
@@ -196,11 +228,58 @@ Public Class FrameCutPageUC
|
||||
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
|
||||
Return
|
||||
End If
|
||||
|
||||
' Verifico se selezionato indicativo di pezzo
|
||||
EgtSetObjFilterForSelWin(False, False, True, False, False)
|
||||
Dim nSel As Integer
|
||||
Dim nSel As Integer = GDB_ID.NULL
|
||||
Dim nId As Integer = GDB_ID.NULL
|
||||
|
||||
If SelRawSideBtn.IsChecked Then
|
||||
' Verifico se selezionato indicativo di pezzo
|
||||
EgtSetObjFilterForSelWin(False, True, False, False, False)
|
||||
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
|
||||
nId = EgtGetFirstObjInSelWin()
|
||||
Dim ptPrev As Point3d
|
||||
' Verifico cosa selezionato
|
||||
Dim nSolidId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID)
|
||||
Dim nKerfId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_KERF)
|
||||
' Acquisisco punto da disegno
|
||||
EgtUnProjectPoint(e.Location, ptPrev)
|
||||
Dim sName As String = String.Empty
|
||||
While nId <> GDB_ID.NULL
|
||||
sName = String.Empty
|
||||
EgtGetName(nId, sName)
|
||||
If sName = NAME_KERF Then
|
||||
' la sottoentità del Kerf selezionato
|
||||
EgtUnProjectPoint(e.Location, ptPrev)
|
||||
Dim dDist, dU As Double
|
||||
EgtPointCurveDist(ptPrev.Loc(nKerfId), nKerfId, nKerfId, dDist, dU)
|
||||
Dim ptStart As New Point3d
|
||||
EgtAtParamPoint(nKerfId, CInt(Math.Floor(dU)), GDB_ID.ROOT, ptStart)
|
||||
Dim ptEnd As New Point3d
|
||||
EgtAtParamPoint(nKerfId, CInt(Math.Ceiling(dU)), GDB_ID.ROOT, ptEnd)
|
||||
Dim nParentLineGuide As Integer = EgtCreateGroup(GDB_ID.ROOT)
|
||||
' creo la linea a partire dall'entita sopra
|
||||
m_LineDir = EgtCreateLine(EgtCreateGroup(nParentLineGuide), ptStart, ptEnd, GDB_RT.GLOB)
|
||||
m_ptMidLineDir = New Point3d(ptStart)
|
||||
EgtMidPoint(m_LineDir, GDB_RT.GLOB, m_ptMidLineDir)
|
||||
EgtExtendCurveStartByLen(m_LineDir, 3500)
|
||||
EgtSetMark(m_LineDir)
|
||||
EgtDraw()
|
||||
m_bGuide = True
|
||||
If MyCreateFrame(nParentLineGuide) Then SelRawSideBtn.IsChecked = False
|
||||
' Privilegio il kerf, pertanto esco
|
||||
Exit While
|
||||
End If
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
Return
|
||||
End If
|
||||
|
||||
' Verifico se selezionato indicativo di pezzo
|
||||
EgtSetObjFilterForSelWin(False, True, True, False, False)
|
||||
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
|
||||
Dim nId As Integer = EgtGetFirstObjInSelWin()
|
||||
nId = EgtGetFirstObjInSelWin()
|
||||
|
||||
While nId <> GDB_ID.NULL
|
||||
' Recupero l'identificativo del layer e del pezzo cui appartiene
|
||||
Dim nLayId As Integer = EgtGetParent(nId)
|
||||
@@ -280,7 +359,7 @@ Public Class FrameCutPageUC
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OffsXXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffsZTxBx.EgtClosed, OffsXyTxBx.EgtClosed, OffsYyTxBx.EgtClosed, OffsXInteryTxBx.EgtClosed
|
||||
Private Sub OffsXXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles OffsZTxBx.EgtClosed, OffsXyTxBx.EgtClosed, OffsYyTxBx.EgtClosed, OffsXInteryTxBx.EgtClosed, UseInteraxisChBx.Click
|
||||
' Forzo aggiornamento grezzo nella pagina di Nesting
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.CalcRawPart()
|
||||
' Parcheggio pezzi presenti nel grezzo
|
||||
@@ -312,6 +391,11 @@ Public Class FrameCutPageUC
|
||||
If StringToLen(OffsXInteryTxBx.Text, dOffsXIntery) Then
|
||||
WritePrivateProfileString(S_FRAME, K_OFFSXINTERY, DoubleToString(dOffsXIntery, 3), m_MainWindow.GetIniFile())
|
||||
End If
|
||||
Dim sUseInteraxis As String = "1"
|
||||
If UseInteraxisChBx.IsChecked Then
|
||||
sUseInteraxis = "0"
|
||||
End If
|
||||
WritePrivateProfileString(S_FRAME, K_OFFSXINTERYSAWTH, sUseInteraxis, m_MainWindow.GetIniFile())
|
||||
End Sub
|
||||
|
||||
Private Sub MirrorPartBtn_Click(sender As Object, e As RoutedEventArgs) Handles MirrorPartBtn.Click
|
||||
@@ -356,14 +440,14 @@ Public Class FrameCutPageUC
|
||||
' Cerco pezzo in grezzo
|
||||
Dim nPartId As Integer = EgtGetFirstPartInRawPart(m_nRawId)
|
||||
' Se modalità curva e presa solo sezione, cancello unico pezzo in grezzo
|
||||
If m_CurrAx = 3 And EgtGetFirstNameInGroup( nPartId, NAME_GUIDE) = GDB_ID.NULL
|
||||
If m_CurrAx = 3 And EgtGetFirstNameInGroup(nPartId, NAME_GUIDE) = GDB_ID.NULL Then
|
||||
If EgtRemovePartFromRawPart(nPartId) Then
|
||||
' Rimuovo le lavorazioni
|
||||
EraseMachinings(nPartId)
|
||||
' Cancello
|
||||
EgtErase(nPartId)
|
||||
End If
|
||||
' Altrimenti esco subito
|
||||
' Altrimenti esco subito
|
||||
Else
|
||||
Return
|
||||
End If
|
||||
@@ -460,14 +544,14 @@ Public Class FrameCutPageUC
|
||||
End Sub
|
||||
|
||||
Friend Function CreateFrame(nPartId As Integer) As Boolean
|
||||
If Not MyCreateFrame( nPartId) Then
|
||||
EgtErase( nPartId)
|
||||
If Not MyCreateFrame(nPartId) Then
|
||||
EgtErase(nPartId)
|
||||
If m_CurrAx <> 2 Then
|
||||
' Errore : creazione cornice non riuscita
|
||||
m_CurrProjPage.SetErrorMessage( EgtMsg(MSG_FRAMECUTPAGEUC + 20))
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_FRAMECUTPAGEUC + 20))
|
||||
Else
|
||||
' Errore : raggio più piccolo della larghezza della sezione
|
||||
m_CurrProjPage.SetErrorMessage( EgtMsg(MSG_FRAMECUTPAGEUC + 19))
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_FRAMECUTPAGEUC + 19))
|
||||
End If
|
||||
Return False
|
||||
End If
|
||||
@@ -483,12 +567,12 @@ Public Class FrameCutPageUC
|
||||
' Sistemo la sezione o la guida della cornice
|
||||
If Not m_bGuide Then
|
||||
If Not AdjustSection(nPartId) Then
|
||||
EgtOutLog( "Error in CreateFrame : problems with Section")
|
||||
EgtOutLog("Error in CreateFrame : problems with Section")
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
If Not AdjustGuide(nPartId) Then
|
||||
EgtOutLog( "Error in CreateFrame : problems with Guide")
|
||||
EgtOutLog("Error in CreateFrame : problems with Guide")
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
@@ -500,48 +584,49 @@ Public Class FrameCutPageUC
|
||||
Dim nSectId As Integer = EgtGetFirstInGroup(nSectLayId)
|
||||
If nSectId = GDB_ID.NULL Then Return False
|
||||
' Creazione cornice
|
||||
nSurfId = CreateLineFrame( nSectId, nSectLayId, nPartId)
|
||||
nSurfId = CreateLineFrame(nSectId, nSectLayId, nPartId)
|
||||
' Se non creata superficie, reset di tutto e segnalazione errore
|
||||
If nSurfId = GDB_ID.NULL Then
|
||||
EgtErase( nPartId)
|
||||
EgtOutLog( "Error in CreateFrame : Surface not constructible")
|
||||
EgtErase(nPartId)
|
||||
EgtOutLog("Error in CreateFrame : Surface not constructible")
|
||||
Return False
|
||||
End If
|
||||
' se cornice su arco
|
||||
' se cornice su arco
|
||||
ElseIf m_CurrAx = 2 Then
|
||||
' Recupero layer e curva della sezione
|
||||
Dim nSectLayId As Integer = EgtGetFirstNameInGroup(nPartId, NAME_SECT)
|
||||
Dim nSectId As Integer = EgtGetFirstInGroup(nSectLayId)
|
||||
If nSectId = GDB_ID.NULL Then Return False
|
||||
' Porto l'inizio della curva a X0 locale
|
||||
ChangeCurveStartToX0( nSectId)
|
||||
ChangeCurveStartToX0(nSectId)
|
||||
' Creazione cornice
|
||||
nSurfId = CreateArcFrame( nSectId, nSectLayId, nPartId)
|
||||
nSurfId = CreateArcFrame(nSectId, nSectLayId, nPartId)
|
||||
' Se non creata superficie, reset di tutto e segnalazione errore
|
||||
If nSurfId = GDB_ID.NULL Then
|
||||
EgtErase( nPartId)
|
||||
EgtOutLog( "Error in CreateFrame : radius too small for the section")
|
||||
EgtErase(nPartId)
|
||||
EgtOutLog("Error in CreateFrame : radius too small for the section")
|
||||
Return False
|
||||
End If
|
||||
' altrimenti cornice su guida
|
||||
' altrimenti cornice su guida
|
||||
Else
|
||||
If not m_bGuide Then
|
||||
If Not m_bGuide Then
|
||||
' Recupero layer e curva della sezione
|
||||
Dim nSectLayId As Integer = EgtGetFirstNameInGroup(nPartId, NAME_SECT)
|
||||
Dim nSectId As Integer = EgtGetFirstInGroup(nSectLayId)
|
||||
If nSectId = GDB_ID.NULL Then Return False
|
||||
' Porto l'inizio della curva a X0 locale
|
||||
ChangeCurveStartToX0( nSectId)
|
||||
ChangeCurveStartToX0(nSectId)
|
||||
Else
|
||||
' Porto la guida nel pezzo con la sezione
|
||||
Dim nTruePartId As Integer = EgtGetFirstPartInRawPart( m_nRawId)
|
||||
Dim nTruePartId As Integer = EgtGetFirstPartInRawPart(m_nRawId)
|
||||
|
||||
If nTruePartId = GDB_ID.NULL Then
|
||||
EgtOutLog( "Error in CreateFrame : Section not found")
|
||||
EgtOutLog("Error in CreateFrame : Section not found")
|
||||
Return False
|
||||
End If
|
||||
' Parcheggio il pezzo trovato
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.CalcRawPart()
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart( nTruePartId)
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nTruePartId)
|
||||
' Recupero layer e curva della sezione
|
||||
Dim nSectLayId As Integer = EgtGetFirstNameInGroup(nTruePartId, NAME_SECT)
|
||||
Dim nSectId As Integer = EgtGetFirstInGroup(nSectLayId)
|
||||
@@ -551,17 +636,17 @@ Public Class FrameCutPageUC
|
||||
Dim nGuideId As Integer = EgtGetFirstInGroup(nGuideLayId)
|
||||
If nGuideId = GDB_ID.NULL Then Return False
|
||||
' Sposto la guida in questo pezzo
|
||||
EgtRelocate( nGuideLayId, nTruePartId)
|
||||
EgtRelocate(nGuideLayId, nTruePartId)
|
||||
' Cancello il pezzo
|
||||
EgtErase( nPartId)
|
||||
EgtErase(nPartId)
|
||||
' Creazione cornice
|
||||
nPartId = nTruePartId
|
||||
nSurfId = CreateCurveFrame( nSectId, nSectLayId, nGuideId, nGuideLayId, nPartId)
|
||||
nPartId = nTruePartId
|
||||
nSurfId = CreateCurveFrame(nSectId, nSectLayId, nGuideId, nGuideLayId, nPartId)
|
||||
m_bGuide = False
|
||||
' Se non creata superficie, reset di tutto e segnalazione errore
|
||||
If nSurfId = GDB_ID.NULL Then
|
||||
EgtErase( nPartId)
|
||||
EgtOutLog( "Error in CreateFrame : Surface not constructible")
|
||||
EgtErase(nPartId)
|
||||
EgtOutLog("Error in CreateFrame : Surface not constructible")
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
@@ -605,17 +690,17 @@ Public Class FrameCutPageUC
|
||||
Dim nSurfId As Integer = GDB_ID.NULL
|
||||
' Se cornice rettilinea
|
||||
If m_CurrAx = 0 Or m_CurrAx = 1 Then
|
||||
nSurfId = CreateLineFrame( nSectId, nSectLayId, nPartId)
|
||||
' se cornice su arco
|
||||
nSurfId = CreateLineFrame(nSectId, nSectLayId, nPartId)
|
||||
' se cornice su arco
|
||||
ElseIf m_CurrAx = 2 Then
|
||||
nSurfId = CreateArcFrame( nSectId, nSectLayId, nPartId)
|
||||
' altrimenti cornice su curva
|
||||
nSurfId = CreateArcFrame(nSectId, nSectLayId, nPartId)
|
||||
' altrimenti cornice su curva
|
||||
Else
|
||||
' Recupero layer e curva della guida
|
||||
Dim nGuideLayId As Integer = EgtGetFirstNameInGroup(nPartId, NAME_GUIDE)
|
||||
Dim nGuideId As Integer = EgtGetFirstInGroup(nGuideLayId)
|
||||
If nGuideId = GDB_ID.NULL Then Return False
|
||||
nSurfId = CreateCurveFrame( nSectId, nSectLayId, nGuideId, nGuideLayId, nPartId)
|
||||
nSurfId = CreateCurveFrame(nSectId, nSectLayId, nGuideId, nGuideLayId, nPartId)
|
||||
End If
|
||||
' Assegno nome e direzione a pezzo
|
||||
EgtSetName(nPartId, NAME_FRAME)
|
||||
@@ -681,7 +766,7 @@ Public Class FrameCutPageUC
|
||||
ptStart = ptTmp
|
||||
End If
|
||||
' Se cornice rettilinea
|
||||
If m_CurrAx = 0 Or m_CurrAx = 1 Then
|
||||
If m_CurrAx = 0 Or m_CurrAx = 1 Then
|
||||
' Se linea orizzontale, aggiungo tratti verticali
|
||||
If b3Box.DimY() < EPS_SMALL Then
|
||||
ptStart -= 10 * EPS_SMALL * Vector3d.Y_AX()
|
||||
@@ -722,7 +807,7 @@ Public Class FrameCutPageUC
|
||||
EgtAddCurveCompoLine(nCrvId, ptEnd)
|
||||
b3Box.Add(ptEnd)
|
||||
End If
|
||||
' Altrimenti cornice curva
|
||||
' Altrimenti cornice curva
|
||||
Else
|
||||
' Aggiungo linea verticale dall'estremo più alto alla quota del più basso
|
||||
If ptStart.y > ptEnd.y Then
|
||||
@@ -749,7 +834,15 @@ Public Class FrameCutPageUC
|
||||
EgtSelectLayerObjs(nLayerId)
|
||||
Dim nCrvIds(0) As Integer
|
||||
nCrvIds(0) = GDB_ID.SEL
|
||||
Dim nCrvId As Integer = EgtCreateCurveCompoByChain(nLayerId, 1, nCrvIds, New Point3d(), True)
|
||||
' ---- INIZIO ---- NUOVA GESTIONE ---- Verifico che il segmento passato è una linea ricavata dal contorno del grezzo
|
||||
Dim nCrvId As Integer = GDB_ID.NULL
|
||||
If m_CurrAx = 4 And m_LineDir <> GDB_ID.NULL Then
|
||||
nCrvId = m_LineDir
|
||||
Else
|
||||
nCrvId = EgtCreateCurveCompoByChain(nLayerId, 1, nCrvIds, New Point3d(), True)
|
||||
End If
|
||||
' ---- FINE ---- NUOVA GESTIONE ----
|
||||
' Se non è stata creata esco
|
||||
If nCrvId = GDB_ID.NULL Then Return False
|
||||
' Elimino eventuali curve oltre la prima
|
||||
Dim nId As Integer = EgtGetNext(nCrvId)
|
||||
@@ -774,17 +867,17 @@ Public Class FrameCutPageUC
|
||||
' Elimino vecchio layer
|
||||
EgtErase(nLayerId)
|
||||
' Impongo rotazione guida CCW
|
||||
Dim bClosed As Boolean = EgtCurveIsClosed( nCrvId)
|
||||
If Not bClosed Then EgtCloseCurveCompo( nCrvId)
|
||||
Dim bClosed As Boolean = EgtCurveIsClosed(nCrvId)
|
||||
If Not bClosed Then EgtCloseCurveCompo(nCrvId)
|
||||
Dim dArea As Double = 0
|
||||
EgtCurveAreaXY( nCrvId, dArea)
|
||||
If Not bClosed Then EgtRemoveCurveCompoCurve( nCrvId)
|
||||
If dArea < -1 Then EgtInvertCurve( nCrvId)
|
||||
EgtCurveAreaXY(nCrvId, dArea)
|
||||
If Not bClosed Then EgtRemoveCurveCompoCurve(nCrvId)
|
||||
If dArea < -1 Then EgtInvertCurve(nCrvId)
|
||||
' Se curva chiusa, impongo inizio a metà del lato a X max
|
||||
If bClosed Then
|
||||
Dim b3Guide As New BBox3d
|
||||
EgtGetBBox( nCrvId, GDB_BB.STANDARD, b3Guide)
|
||||
Dim ptStart As New Point3d( b3Guide.Max().x, b3Guide.Center().y, b3Guide.Center().z)
|
||||
EgtGetBBox(nCrvId, GDB_BB.STANDARD, b3Guide)
|
||||
Dim ptStart As New Point3d(b3Guide.Max().x, b3Guide.Center().y, b3Guide.Center().z)
|
||||
EgtChangeClosedCurveStartPoint(nCrvId, ptStart)
|
||||
End If
|
||||
Return True
|
||||
@@ -810,7 +903,7 @@ Public Class FrameCutPageUC
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function CreateLineFrame( nSectId As Integer, nSectLayId As Integer, nPartId As Integer) As Integer
|
||||
Private Function CreateLineFrame(nSectId As Integer, nSectLayId As Integer, nPartId As Integer) As Integer
|
||||
' Porto la sezione nel piano opportuno e calcolo il vettore di estrusione
|
||||
Dim vtExtr As Vector3d
|
||||
If m_CurrAx = 0 Then
|
||||
@@ -851,7 +944,7 @@ Public Class FrameCutPageUC
|
||||
Return nSurfId
|
||||
End Function
|
||||
|
||||
Private Function CreateArcFrame( nSectId As Integer, nSectLayId As Integer, nPartId As Integer) As Integer
|
||||
Private Function CreateArcFrame(nSectId As Integer, nSectLayId As Integer, nPartId As Integer) As Integer
|
||||
' Recupero ingombro locale della sezione
|
||||
Dim b3Sect As New BBox3d
|
||||
EgtGetBBox(nSectId, GDB_BB.STANDARD, b3Sect)
|
||||
@@ -894,22 +987,22 @@ Public Class FrameCutPageUC
|
||||
' Creo la superficie swept
|
||||
Dim dSectRotDeg As Double = 90 + dAngIniDeg
|
||||
EgtRotate(nSectLayId, ptStart, Vector3d.Z_AX(), dSectRotDeg, GDB_RT.LOC)
|
||||
Dim nSurfId As Integer = EgtCreateSurfTmSwept( nSurfLayId, nSectId, nGuideId, True, EPS_STM)
|
||||
Dim nSurfId As Integer = EgtCreateSurfTmSwept(nSurfLayId, nSectId, nGuideId, True, EPS_STM)
|
||||
Return nSurfId
|
||||
End Function
|
||||
|
||||
Private Function CreateCurveFrame( nSectId As Integer, nSectLayId As Integer, nGuideId As Integer, nGuideLayId As Integer, nPartId As Integer) As Integer
|
||||
Private Function CreateCurveFrame(nSectId As Integer, nSectLayId As Integer, nGuideId As Integer, nGuideLayId As Integer, nPartId As Integer) As Integer
|
||||
' Recupero flag lavorazione da lato opposto
|
||||
Dim bOthSide As Boolean = False
|
||||
EgtGetInfo( nPartId, INFO_FRAME_OTHSIDE, bOthSide)
|
||||
EgtGetInfo(nPartId, INFO_FRAME_OTHSIDE, bOthSide)
|
||||
' Recupero dati inizio guida
|
||||
Dim ptStart As Point3d
|
||||
EgtStartPoint(nGuideId, nPartId, ptStart)
|
||||
Dim vtStart As Vector3d
|
||||
EgtStartVector(nGuideId, nPartId, vtStart)
|
||||
' Creo riferimento per sezione
|
||||
dim frSect As New Frame3d
|
||||
frSect.Setup( ptStart, -vtStart)
|
||||
Dim frSect As New Frame3d
|
||||
frSect.Setup(ptStart, -vtStart)
|
||||
' Porto la sezione in questo riferimento
|
||||
EgtChangeGroupFrame(nSectLayId, frSect)
|
||||
' Recupero ingombro locale della sezione
|
||||
@@ -917,16 +1010,16 @@ Public Class FrameCutPageUC
|
||||
EgtGetBBox(nSectId, GDB_BB.STANDARD, b3Sect)
|
||||
' Recupero ingombro locale della guida
|
||||
Dim b3Guide As New BBox3d
|
||||
EgtGetBBox( nGuideId, GDB_BB.STANDARD, b3Guide)
|
||||
b3Guide.ToLoc( frSect)
|
||||
EgtGetBBox(nGuideId, GDB_BB.STANDARD, b3Guide)
|
||||
b3Guide.ToLoc(frSect)
|
||||
' Muovo sezione dalla parte interna della curva
|
||||
If ( Not bOthSide And Math.Abs( b3Guide.Min().x) > Math.Abs( b3Guide.Max().x)) OrElse
|
||||
( bOthSide And Math.Abs( b3Guide.Min().x) <= Math.Abs( b3Guide.Max().x)) Then
|
||||
Dim vtMove As New Vector3d( - b3Sect.Max().x, -b3Sect.Min().y, 0)
|
||||
EgtMove( nSectId, vtMove)
|
||||
If (Not bOthSide And Math.Abs(b3Guide.Min().x) > Math.Abs(b3Guide.Max().x)) OrElse
|
||||
(bOthSide And Math.Abs(b3Guide.Min().x) <= Math.Abs(b3Guide.Max().x)) Then
|
||||
Dim vtMove As New Vector3d(-b3Sect.Max().x, -b3Sect.Min().y, 0)
|
||||
EgtMove(nSectId, vtMove)
|
||||
Else
|
||||
Dim vtMove As New Vector3d( - b3Sect.Min().x, -b3Sect.Min().y, 0)
|
||||
EgtMove( nSectId, vtMove)
|
||||
Dim vtMove As New Vector3d(-b3Sect.Min().x, -b3Sect.Min().y, 0)
|
||||
EgtMove(nSectId, vtMove)
|
||||
End If
|
||||
' Recupero o creo layer per la superficie
|
||||
Dim nSurfLayId As Integer = EgtGetFirstNameInGroup(nPartId, NAME_SURF)
|
||||
@@ -938,11 +1031,44 @@ Public Class FrameCutPageUC
|
||||
End If
|
||||
EgtSetColor(nSurfLayId, COL_FRAME())
|
||||
' Creo la superficie swept
|
||||
Dim nSurfId As Integer = EgtCreateSurfTmSwept( nSurfLayId, nSectId, nGuideId, True, EPS_STM)
|
||||
Dim nSurfId As Integer = EgtCreateSurfTmSwept(nSurfLayId, nSectId, nGuideId, True, EPS_STM)
|
||||
Return nSurfId
|
||||
End Function
|
||||
|
||||
Private Function InsertPartInRawPart(nPartId As Integer) As Boolean
|
||||
' Determino distanza (interasse cornici) da spessore lama oppure offset
|
||||
Dim dMinDist As Double = 0
|
||||
Dim dSawThick As Double = 0
|
||||
Dim dOffsXIntery As Double = 0
|
||||
StringToLen(OffsXInteryTxBx.Text, dOffsXIntery)
|
||||
If EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw) AndAlso
|
||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dSawThick) Then
|
||||
If UseInteraxisChBx.IsChecked Then
|
||||
If dOffsXIntery < 0 Then
|
||||
dMinDist = 5 * EPS_SMALL
|
||||
OffsXInteryTxBx.Text = "0"
|
||||
Else
|
||||
dMinDist = dOffsXIntery + 5 * EPS_SMALL
|
||||
End If
|
||||
Else
|
||||
dMinDist = dSawThick + 5 * EPS_SMALL
|
||||
End If
|
||||
Else
|
||||
EgtOutLog("Not found current saw for frames mindist")
|
||||
dMinDist = dOffsXIntery
|
||||
End If
|
||||
|
||||
If m_CurrAx = 4 Then
|
||||
Dim nCountFrame As Integer = 0
|
||||
Dim nIdOtherFrame As Integer = EgtGetFirstPartInRawPart(m_nRawId)
|
||||
While nIdOtherFrame <> GDB_ID.NULL
|
||||
nCountFrame += 1
|
||||
nIdOtherFrame = EgtGetNextPartInRawPart(nIdOtherFrame)
|
||||
End While
|
||||
EgtAddPartToRawPart(nPartId, New Point3d(0, 0, 0), EgtGetFirstRawPart())
|
||||
Return AdjustPartInGenericRawPart(nCountFrame, dMinDist)
|
||||
End If
|
||||
|
||||
' Determino ingombro del pezzo
|
||||
Dim PartBox As New BBox3d
|
||||
EgtGetBBoxGlob(nPartId, GDB_BB.EXACT + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, PartBox)
|
||||
@@ -956,22 +1082,7 @@ Public Class FrameCutPageUC
|
||||
End If
|
||||
nId2 = EgtGetNextPartInRawPart(nId2)
|
||||
End While
|
||||
' Determino distanza da spessore lama
|
||||
Dim dMinDist As Double = 0
|
||||
Dim dSawThick As Double = 0
|
||||
Dim dOffsXIntery As Double = 0
|
||||
StringToLen(OffsXInteryTxBx.Text, dOffsXIntery)
|
||||
If EgtTdbSetCurrTool(m_MainWindow.m_CurrentMachine.sCurrSaw) AndAlso
|
||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dSawThick) Then
|
||||
If dOffsXIntery <= dSawThick Then
|
||||
dMinDist = dSawThick + 5 * EPS_SMALL
|
||||
Else
|
||||
dMinDist = dOffsXIntery + 5 * EPS_SMALL
|
||||
End If
|
||||
Else
|
||||
EgtOutLog("Not found current saw for frames mindist")
|
||||
dMinDist = dOffsXIntery
|
||||
End If
|
||||
|
||||
' Inserisco il pezzo nel grezzo
|
||||
Dim ptIns As Point3d
|
||||
If OtherBox.IsEmpty() Then
|
||||
@@ -998,11 +1109,95 @@ Public Class FrameCutPageUC
|
||||
ptIns.y = m_dKerf
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim dOffsZ As Double = 0
|
||||
StringToLen(OffsZTxBx.Text, dOffsZ)
|
||||
ptIns.z = (m_RawBox.Max().z - m_RawBox.Min().z) - (PartBox.Max().z - PartBox.Min().z) - dOffsZ
|
||||
ptIns.z = Math.Max(ptIns.z, 0)
|
||||
Return EgtAddPartToRawPart(nPartId, ptIns, EgtGetFirstRawPart())
|
||||
|
||||
End Function
|
||||
|
||||
Public Function AdjustPartInGenericRawPart(Optional nCountOtherFrame As Integer = 0, Optional dMinDist As Double = 0) As Boolean
|
||||
' --- Eseguo una traslazione per portare il FRAME sul punto iniziale della guida (NON NEL PUNTO MINIMO DEL BOX!) ---
|
||||
Dim nTruePartId As Integer = EgtGetFirstPartInRawPart(m_nRawId)
|
||||
|
||||
' Recupero layer e curva della guida
|
||||
Dim nGuideLayId As Integer = EgtGetFirstNameInGroup(nTruePartId, NAME_GUIDE)
|
||||
If nGuideLayId = GDB_ID.NULL Then Return True
|
||||
Dim nGuideId As Integer = EgtGetFirstInGroup(nGuideLayId)
|
||||
' Recupero il layer e il contorno della sezione
|
||||
Dim nSectLayId As Integer = EgtGetFirstNameInGroup(nTruePartId, NAME_SECT)
|
||||
Dim nSectId As Integer = EgtGetFirstInGroup(nSectLayId)
|
||||
|
||||
' Aggiusto la poszione del pezzo: punto medio della guida sul punto medio del lato selezionato
|
||||
Dim ptMid As Point3d
|
||||
EgtMidPoint(nGuideId, GDB_RT.GLOB, ptMid)
|
||||
Dim vtTrasl As Vector3d = m_ptMidLineDir - ptMid
|
||||
vtTrasl.z = 0
|
||||
EgtMove(nTruePartId, vtTrasl)
|
||||
|
||||
' Porto il pezzo dentro al grezzo
|
||||
Dim vtPerp As New Vector3d
|
||||
EgtStartVector(nGuideId, GDB_RT.GLOB, vtPerp)
|
||||
vtPerp.Rotate(Vector3d.Z_AX, 90)
|
||||
' Definisco il frame su cui iniziare a lavorare
|
||||
Dim ptS As New Point3d
|
||||
EgtStartPoint(nGuideId, GDB_RT.GLOB, ptS)
|
||||
Dim vtDir As New Vector3d
|
||||
EgtStartVector(nGuideId, GDB_RT.GLOB, vtDir)
|
||||
Dim frSect As New Frame3d(ptS, vtDir, vtPerp, Vector3d.Z_AX)
|
||||
' Costruisco il BBox nel riferimento indicato
|
||||
Dim BBoxRef As New BBox3d
|
||||
EgtGetBBoxRef(nTruePartId, GDB_BB.EXACT + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, frSect, BBoxRef)
|
||||
' Nella grafica i nomi dei parametri di offset devono diventare "Perp" e "Orto" oppure un solo parametro "Orto"?
|
||||
Dim dOffsXy As Double = 0
|
||||
StringToLen(OffsXyTxBx.Text, dOffsXy)
|
||||
dOffsXy = (dOffsXy + BBoxRef.DimY) + (dMinDist + BBoxRef.DimY) * nCountOtherFrame
|
||||
EgtMove(nTruePartId, vtPerp * dOffsXy)
|
||||
|
||||
' Ritaglio il volume del pezzo per occupare il grezzo
|
||||
Dim nSurfLayId As Integer = EgtGetFirstNameInGroup(nTruePartId, "Surf")
|
||||
Dim nSurfId As Integer = EgtGetFirstInGroup(nSurfLayId)
|
||||
' Recupero una copia del grezzo
|
||||
Dim nCopyRawId As Integer = EgtCopyGlob(EgtGetFirstNameInGroup(m_nRawId, "RawSolid"), nSurfLayId)
|
||||
EgtSetName(nCopyRawId, "SurfTrimmed")
|
||||
EgtSurfTmIntersect(nCopyRawId, nSurfId)
|
||||
' Assegno colori e trasparenza
|
||||
EgtSetColor(nCopyRawId, COL_FRAME)
|
||||
EgtSetAlpha(nCopyRawId, 100)
|
||||
EgtErase(nSurfId)
|
||||
|
||||
|
||||
' Recupero il box in coordinate locali dell'ingombro del pezzo
|
||||
Dim ptSlast As New Point3d
|
||||
EgtStartPoint(nGuideId, GDB_RT.GLOB, ptSlast)
|
||||
Dim frSectLast As New Frame3d(ptSlast, vtDir, vtPerp, Vector3d.Z_AX)
|
||||
Dim BBoxRefLast As New BBox3d
|
||||
EgtGetBBoxRef(nCopyRawId, GDB_BB.EXACT + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, frSect, BBoxRefLast)
|
||||
|
||||
' Ricalcolo la lunghezza della guida
|
||||
Dim dLenGUide As Double = 0
|
||||
EgtCurveLength(nGuideId, dLenGUide)
|
||||
Dim pt1 As New Point3d
|
||||
EgtStartPoint(nGuideId, GDB_RT.GLOB, pt1)
|
||||
EgtTrimExtendCurveByLen(nGuideId, -BBoxRefLast.Min.x, pt1)
|
||||
|
||||
Dim pt2 As New Point3d
|
||||
EgtEndPoint(nGuideId, GDB_RT.GLOB, pt2)
|
||||
EgtTrimExtendCurveByLen(nGuideId, BBoxRefLast.Max.x - dLenGUide, pt2)
|
||||
|
||||
|
||||
' riposizione l'origine della sezione
|
||||
Dim pt3 As New Point3d
|
||||
EgtStartPoint(nGuideId, GDB_RT.GLOB, pt3)
|
||||
EgtMove(nSectId, New Vector3d(pt3 - pt1), GDB_RT.GLOB)
|
||||
|
||||
EgtDraw()
|
||||
|
||||
'EgtSaveFile("C:\EgtData\OmagCUT\Temp\BOB.nge", NGE.BIN)
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
@@ -204,6 +204,9 @@ Public Class CurrentMachine
|
||||
' Massima profondità lavorabile nei tagli diretti
|
||||
Private m_MaxTabDepth As Double = 10.0
|
||||
|
||||
' Massima altezza lavorabile con lama grande
|
||||
Private m_dHighPieceZ As Double = 200.0
|
||||
|
||||
#Region "Proprietà che leggono e scrivono i valori anche da o su file ini"
|
||||
Friend ReadOnly Property MaxTabDepth As Double
|
||||
Get
|
||||
@@ -1149,6 +1152,12 @@ Public Class CurrentMachine
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property dHighPieceZ As Double
|
||||
Get
|
||||
Return m_dHighPieceZ
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region
|
||||
|
||||
Sub New()
|
||||
@@ -1417,6 +1426,9 @@ Public Class CurrentMachine
|
||||
If m_MaxTabDepth < 0 Then
|
||||
m_MaxTabDepth = 10.0
|
||||
End If
|
||||
|
||||
' Massimo spessore lavorabile con lama grande
|
||||
m_dHighPieceZ = GetPrivateProfileDouble(S_RAWMOVE, "MaxHeightPiece", 800.0, m_MainWindow.GetMachIniFile())
|
||||
End Sub
|
||||
|
||||
' Per il controllo FANUC al momento dell'inizializzazione del CN devono essere lette alcune variabili
|
||||
|
||||
@@ -298,6 +298,8 @@ Public Class MachinePageUC
|
||||
WaterJetBtn.IsChecked = False
|
||||
MachinePageGrid.Children.Remove(m_WaterJetPageUC)
|
||||
MachinePageGrid.Children.Add(m_MachiningDbPageUC)
|
||||
' Aggiorno lista materiali
|
||||
m_MainWindow.m_CurrentMachine.LoadWJMaterial()
|
||||
m_ActiveMachinePage = MachinePages.MachiningDb
|
||||
Case MachinePages.MachineCN
|
||||
MachiningDBBtn.IsChecked = True
|
||||
|
||||
@@ -279,12 +279,16 @@ Public Class MachineStatusUC
|
||||
|
||||
Sub DisplayFeed()
|
||||
Dim dRealFeed As Double = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
|
||||
' modifica richiesta 26/05/2023 da Rosario per cliente Lanzetta
|
||||
If m_MainWindow.m_CNCommunication.m_nNCType = 4 Then
|
||||
dRealFeed = m_CN.d_DInterpo_Prog_Feed
|
||||
Else
|
||||
dRealFeed = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
|
||||
End If
|
||||
'' modifica richiesta 26/05/2023 da Rosario per cliente Lanzetta (lettura feed per CN Fanuc)
|
||||
'If m_MainWindow.m_CNCommunication.m_nNCType = 4 Then
|
||||
' dRealFeed = m_CN.d_DInterpo_Prog_Feed
|
||||
'Else
|
||||
' dRealFeed = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
|
||||
'End If
|
||||
|
||||
' modifica richiesta 24/03/2025 da Fabio per cliente Frigerio
|
||||
dRealFeed = m_CN.d_DInterpo_Prog_Feed * m_CN.d_DInterpo_Feed_override / 100
|
||||
|
||||
'Feed = DoubleToString(dRealFeed, 0)
|
||||
FeedTxBx.Text = LenToString(dRealFeed, 0, True)
|
||||
'FeedOverride = DoubleToString(m_CN.d_DInterpo_Feed_override, 0) & "%"
|
||||
|
||||
@@ -345,8 +345,8 @@ Class MainWindow
|
||||
' Verifico abilitazione nesting automatico
|
||||
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
|
||||
' Recupero opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2612, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(9423, 2612, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2704, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(9423, 2704, 1, m_nKeyOptions)
|
||||
' Verifico abilitazione prodotto
|
||||
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
|
||||
' Impostazione per programma OnlyFrame: solo se CUT_BASE non attivo
|
||||
|
||||
@@ -22,7 +22,7 @@ Imports System.Windows
|
||||
#End If
|
||||
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
||||
<Assembly: AssemblyProduct("OmagCUT")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2015-2024 by Egalware s.r.l.")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2015-2025 by Egalware 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.6.12.1")>
|
||||
<Assembly: AssemblyFileVersion("2.6.12.1")>
|
||||
<Assembly: AssemblyVersion("2.7.4.1")>
|
||||
<Assembly: AssemblyFileVersion("2.7.4.1")>
|
||||
|
||||
@@ -413,6 +413,10 @@ Public Class CNCommunication
|
||||
GetPrivateProfileString(S_NCDATA, K_NAXES, "", sVal, m_MainWindow.GetMachIniFile())
|
||||
m_CN.SetCnDataVar(CN_generico.CnData.nAxes, sVal)
|
||||
|
||||
' Solo per controllo speciale NUM 22/01/2025
|
||||
GetPrivateProfileString(S_NCDATA, K_CPOS, "", sVal, m_MainWindow.GetMachIniFile())
|
||||
m_CN.SetCnDataVar(CN_generico.CnData.CPos, sVal)
|
||||
If Not String.IsNullOrEmpty(sVal) Then m_CN.bCPos = True
|
||||
|
||||
' Inizializzo la comunicazione
|
||||
m_CN.Init()
|
||||
@@ -1600,9 +1604,17 @@ Public Class CNCommunication
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Private Sub GetSpecialCAxes()
|
||||
If m_CN.bCPos Then
|
||||
m_CN.d_axis_position(m_nA4) = m_CN.dCPos
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Function GetAxesPositions(ByRef dA1 As Double, ByRef dA2 As Double, ByRef dA3 As Double,
|
||||
ByRef dA4 As Double, ByRef dA5 As Double, ByRef dA6 As Double,
|
||||
ByRef dA7 As Double, ByRef dA8 As Double, ByRef dA9 As Double, ByRef dA10 As Double) As Boolean
|
||||
' gestione speciale asse C
|
||||
GetSpecialCAxes()
|
||||
dA1 = If(m_nA1 >= 0, m_CN.d_axis_position(m_nA1), 0)
|
||||
dA2 = If(m_nA2 >= 0, m_CN.d_axis_position(m_nA2), 0)
|
||||
dA3 = If(m_nA3 >= 0, m_CN.d_axis_position(m_nA3), 0)
|
||||
@@ -1619,6 +1631,8 @@ Public Class CNCommunication
|
||||
|
||||
Friend Function GetAxesPositions(ByRef dA1 As Double, ByRef dA2 As Double, ByRef dA3 As Double,
|
||||
ByRef dA4 As Double, ByRef dA5 As Double) As Boolean
|
||||
' gestione speciale asse C
|
||||
GetSpecialCAxes()
|
||||
dA1 = If(m_nA1 >= 0, m_CN.d_axis_position(m_nA1), 0)
|
||||
dA2 = If(m_nA2 >= 0, m_CN.d_axis_position(m_nA2), 0)
|
||||
dA3 = If(m_nA3 >= 0, m_CN.d_axis_position(m_nA3), 0)
|
||||
@@ -1637,6 +1651,8 @@ Public Class CNCommunication
|
||||
End Function
|
||||
|
||||
Friend Function GetRotaryAxesPositions(ByRef dR1 As Double, ByRef dR2 As Double) As Boolean
|
||||
' gestione speciale asse C
|
||||
GetSpecialCAxes()
|
||||
dR1 = If(m_nA4 >= 0, m_CN.d_axis_position(m_nA4), 0)
|
||||
dR2 = If(m_nA5 >= 0, m_CN.d_axis_position(m_nA5), 0)
|
||||
Return m_bAxesOk
|
||||
|
||||
@@ -8,7 +8,7 @@ Public MustInherit Class CN_generico
|
||||
Public Const MAX_VAR As Short = 100
|
||||
Public Const MAX_VALUES As Short = 9 ' Max. index to read the data from the FXServer array
|
||||
Public Const MAX_TOOLS As Short = 100
|
||||
Public Const NUM_DATA = 57 ' Numero di dati del CN (Speed,Feed,...)
|
||||
Public Const NUM_DATA = 58 ' Numero di dati del CN (Speed,Feed,...)
|
||||
|
||||
Public m_NewVariable As Boolean = False ' per scrittura delle vairbaili Apllication del PLC
|
||||
|
||||
@@ -74,6 +74,8 @@ Public MustInherit Class CN_generico
|
||||
nAxes = 55
|
||||
|
||||
ResetStatus = 56
|
||||
|
||||
CPos = 57
|
||||
End Enum
|
||||
|
||||
Public Enum Type As Short
|
||||
@@ -233,6 +235,10 @@ Public MustInherit Class CN_generico
|
||||
Public bRemote As Boolean
|
||||
' Nuovi di bottoni -------------------------------------------
|
||||
|
||||
' gestione speciale asse C
|
||||
Public bCPos As Boolean = False
|
||||
Public dCPos As Double
|
||||
|
||||
' solo per NumOld
|
||||
Public bIsDripFeed As Boolean = False
|
||||
|
||||
|
||||
@@ -53,14 +53,14 @@ Namespace Num
|
||||
Dim WithEvents objDRunTimeSystem As FXServer.DRunTimeSystem
|
||||
Dim WithEvents objDGroupManager As FXServer.DGroupManager
|
||||
Dim WithEvents objDReadELS As FXServer.DReadELS
|
||||
' questa è classe che serve a scrivere i dati nel PLC
|
||||
' questa � classe che serve a scrivere i dati nel PLC
|
||||
Dim WithEvents objDPlcVariables As FXServer.DPlcVariables
|
||||
' questa è la classe che serve a scrivere i dati nelle variabili E
|
||||
' questa � la classe che serve a scrivere i dati nelle variabili E
|
||||
Dim WithEvents objDVariables As FXServer.DVariables
|
||||
Dim WithEvents objDReadTestExectime As FXServer.DReadTestExectime
|
||||
Dim WithEvents objDPosition As FXServer.DPosition
|
||||
Dim WithEvents objDNCKParameter As FXServer.DNCKParameter
|
||||
' questa è la classe che serve a scrivere i comandi MDI (come ad esempio le funzioni M)
|
||||
' questa � la classe che serve a scrivere i comandi MDI (come ad esempio le funzioni M)
|
||||
Dim WithEvents objDMdiCommand As FXServer.DMdiCommand
|
||||
Dim WithEvents objDMainCncData As FXServer.DMainCncData
|
||||
|
||||
@@ -458,7 +458,7 @@ Namespace Num
|
||||
'sz_var_names.Add("Application.IOCONFIG_GLOBALS.Flexium_NCK.WCNC.Spindle[2].Override") ' segnaposto per la speed override
|
||||
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_Vel_prog") ' FEED
|
||||
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabRPM") ' Speed
|
||||
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabAmper") ' Ampère = *0.01
|
||||
'sz_var_names.Add("Application.GVL_HMI_OMAG.HMI_LabAmper") ' Amp�re = *0.01
|
||||
|
||||
' Creo lista nomi variabili PLC da leggere
|
||||
m_nCnDataVarNum = 0
|
||||
@@ -823,7 +823,7 @@ Namespace Num
|
||||
|
||||
|
||||
' Only for FX Server >= 3.9.0.0
|
||||
' poi in realtà ritorna sempre tipo = -1 per cui è eguale alle altre.....
|
||||
' poi in realt� ritorna sempre tipo = -1 per cui � eguale alle altre.....
|
||||
Private Sub objDReadELS_ValueChanged3(nHandle As Integer, value As Object, DataType As Short, Writable As Short, nerrorCode As Short) Handles objDReadELS.ValueChanged3
|
||||
|
||||
Dim edata_type As eDatatype
|
||||
@@ -996,7 +996,7 @@ Namespace Num
|
||||
d_spindle_eff(0) = CDbl(values(n))
|
||||
Case CnData.SpeedOvr ' (5) Potenziom. speed = ...
|
||||
n_spindle_override(0) = CShort(Math.Round((CDbl(values(n)) * 50 / 255) + 50))
|
||||
Case CnData.Power ' (6) Ampère = * 0.01
|
||||
Case CnData.Power ' (6) Amp�re = * 0.01
|
||||
d_spindle_power = CDbl(CLng(values(n))) * 0.01
|
||||
b_spindle_power_changed = True
|
||||
Case CnData.Spindle ' (7) Stato rotazione mandrino
|
||||
@@ -1095,6 +1095,9 @@ Namespace Num
|
||||
Case CnData.EnablePC ' (54)
|
||||
nEnablePc = CInt(values(n))
|
||||
|
||||
Case CnData.CPos ' (57)
|
||||
dCPos = CDbl(values(n))
|
||||
|
||||
End Select
|
||||
Next
|
||||
|
||||
@@ -1701,11 +1704,11 @@ Namespace Num
|
||||
nTimeOut += 1
|
||||
End While
|
||||
If Not bSetModeDone Then
|
||||
EgtOutLog("Errore cambio modalità in MDI: " & TIMEOUT)
|
||||
EgtOutLog("Errore cambio modalit� in MDI: " & TIMEOUT)
|
||||
Return TIMEOUT 'Errore di timeout
|
||||
End If
|
||||
If nSetModeResult <> 0 Then
|
||||
EgtOutLog("Errore 2 cambio modalità in MDI: " & nSetModeResult)
|
||||
EgtOutLog("Errore 2 cambio modalit� in MDI: " & nSetModeResult)
|
||||
End If
|
||||
Return nSetModeResult
|
||||
|
||||
|
||||
@@ -1396,6 +1396,22 @@
|
||||
<Resource Include="Resources\NewIcons\LightArrowOff.png" />
|
||||
<Resource Include="Resources\NewIcons\LightArrowOn.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\Park_Busy.png" />
|
||||
<Resource Include="Resources\NewIcons\icoRight-3D.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\icoLeft-3D.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\icoBack-3D.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\icoFront-3D.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\icoBottom-3D.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
|
||||
|
||||
@@ -196,7 +196,7 @@ Public Class CurrentProjectPageUC
|
||||
' Inizializzo gestore lavorazioni
|
||||
EgtInitMachMgr(m_MainWindow.GetMachinesRootDir(), m_MainWindow.GetToolMakersDir())
|
||||
m_bFirst = False
|
||||
Dim bOrtoGraphic As Boolean = (GetPrivateProfileInt(S_SCENE, "OrtoGraphic", 1, m_MainWindow.GetIniFile()) <> 0)
|
||||
Dim bOrtoGraphic As Boolean = (GetPrivateProfileInt(S_SCENE, K_ORTOGRAPHIC, 1, m_MainWindow.GetIniFile()) <> 0)
|
||||
EgtSetCameraType(bOrtoGraphic, True)
|
||||
' creo nuovo progetto
|
||||
m_nCurrProj = GetPrivateProfileInt(S_GENERAL, K_LASTPROJ, 0, m_MainWindow.GetIniFile())
|
||||
@@ -436,21 +436,29 @@ Public Class CurrentProjectPageUC
|
||||
' prima di parcheggiare svuoto dei pezzi in parcheggio sia vuota
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.ResetListOfGruopInPark()
|
||||
' Parcheggio correttamente i pezzi precedentemente salvati
|
||||
Dim nIdList As New List(Of Integer)
|
||||
Dim nStatList As New List(Of Integer)
|
||||
Dim nId2 As Integer = EgtGetFirstPart()
|
||||
While nId2 <> GDB_ID.NULL
|
||||
' Forzo lo stato per avere il giusto calcolo delle posizioni per evitare sovrapposizioni
|
||||
EgtSetStatus(nId2, GDB_ST.ON_)
|
||||
' Inserisco correttamente in parcheggio
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId2, True)
|
||||
' Aggiorno lo stato di visualizzazione
|
||||
Dim nInfoStatus As Integer = 1
|
||||
' Salvo lo stato (per gestire la navigazione)
|
||||
EgtGetInfo(nId2, INFO_PARKSTATUS, nInfoStatus)
|
||||
' Imposto lo stato
|
||||
EgtSetStatus(nId2, nInfoStatus)
|
||||
' Salvo l'Id e lo stato da impostare successivamente al posizionamento
|
||||
nIdList.Add(nId2)
|
||||
nStatList.Add(nInfoStatus)
|
||||
' Notifica a WeinMatching per modifica Id
|
||||
VeinMatching.UpdatePart(nId2)
|
||||
' Passo al pezzo successivo
|
||||
nId2 = EgtGetNextPart(nId2)
|
||||
End While
|
||||
For IndIndex As Integer = 0 To nIdList.Count - 1
|
||||
EgtSetStatus(nIdList(IndIndex), nStatList(IndIndex))
|
||||
Next
|
||||
' Aggiorno Aree totale e da lavorare dei pezzi
|
||||
SetTotalArea(dTotArea)
|
||||
UpdateToProduceArea()
|
||||
@@ -769,6 +777,17 @@ Public Class CurrentProjectPageUC
|
||||
' Notifico a foto il cambio di path
|
||||
EgtChangePhotoPath(nPhotoId, sNewPhoto)
|
||||
End If
|
||||
|
||||
'--------------------------------------------------------------------------------
|
||||
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
|
||||
' Gestione visulizzazione lista pezzi in parcheggio
|
||||
Dim sNewFileName As String = SelParkIndWD.GetPathCurrProj()
|
||||
SelParkIndWD.CopyImgSvg(sPath)
|
||||
SelParkIndWD.sActualProj = String.Empty
|
||||
SelParkIndWD.CopyImgSvg(sNewFileName)
|
||||
End If
|
||||
'--------------------------------------------------------------------------------
|
||||
|
||||
' Se assente, inserisco contrassegno di progetto OmagCut valido
|
||||
AddProjectMark()
|
||||
' Eseguo
|
||||
|
||||
@@ -6,33 +6,40 @@
|
||||
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="853.3" d:DesignWidth="1280" Initialized="OpenPage_Initialized" Loaded="OpenPage_Loaded" Unloaded="OpenPage_Unloaded">
|
||||
|
||||
<!-- Definizione della OpenPage -->
|
||||
<Border>
|
||||
<Grid Name="OpenPageGrid" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="3*"/>
|
||||
<ColumnDefinition Width="12*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="8*"/>
|
||||
|
||||
<!-- Definizione della OpenPage -->
|
||||
<Border>
|
||||
<Grid Name="OpenPageGrid" >
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="3*"/>
|
||||
<ColumnDefinition Width="12*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="8*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Definizione della Grid Superiore -->
|
||||
<Grid Name="UpperButtonsGrid" Grid.Column="1" Grid.RowSpan="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*"/>
|
||||
<ColumnDefinition Width="7*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
</Grid>
|
||||
|
||||
<TextBlock Name="FilePathTxBl" Grid.Row="0" Foreground="White" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||
|
||||
<Grid Grid.Row="1" Grid.RowSpan="2">
|
||||
<!-- Definizione della Grid Superiore -->
|
||||
<Grid Name="UpperButtonsGrid" Grid.Column="1" Grid.RowSpan="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*"/>
|
||||
<ColumnDefinition Width="7*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
</Grid>
|
||||
|
||||
<Grid Name="SceneHostGrid" Grid.Row="2" Grid.Column="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="6*"/>
|
||||
<ColumnDefinition Width="1.2*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
</Grid>
|
||||
|
||||
<TextBlock Name="FilePathTxBl" Grid.Row="0" Foreground="White" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||
|
||||
<Grid Grid.Row="1" Grid.RowSpan="2">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="6.5*"/>
|
||||
<RowDefinition Height="0.65*"/>
|
||||
@@ -53,39 +60,39 @@
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
<Border Name="MessageBrd" Grid.Row="3" BorderThickness="0,1,0,0" BorderBrush="Gray">
|
||||
<TextBlock Name="MessageTxBx" TextAlignment="Center"
|
||||
|
||||
<Border Name="MessageBrd" Grid.Row="3" BorderThickness="0,1,0,0" BorderBrush="Gray">
|
||||
<TextBlock Name="MessageTxBx" TextAlignment="Center"
|
||||
Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||
</Border>
|
||||
|
||||
<!-- Definizione della Grid Inferiore per i Button V e X -->
|
||||
<Grid Name="BottomButtonsGrid" Grid.Column="1" Grid.Row="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="6*"/>
|
||||
<ColumnDefinition Width="3*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
</Border>
|
||||
|
||||
<Button Name="BarCodeBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
|
||||
<!-- Definizione della Grid Inferiore per i Button V e X -->
|
||||
<Grid Name="BottomButtonsGrid" Grid.Column="1" Grid.Row="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="6*"/>
|
||||
<ColumnDefinition Width="3*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Name="BarCodeBtn" Grid.Column="0" Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
|
||||
<Image Source="{DynamicResource BarCodeImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
</Button>
|
||||
|
||||
<Button Name="OkBtn" Grid.Column="3" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||
<Image Source="{DynamicResource VImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
||||
<Button Name="OkBtn" Grid.Column="3" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||
<Image Source="{DynamicResource VImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center" />
|
||||
</Button>
|
||||
<Button Name="ExitBtn" Grid.Column="4" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||
<Image Source="{DynamicResource XImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
||||
</Button>
|
||||
<Button Name="ExitBtn" Grid.Column="4" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||
<Image Source="{DynamicResource XImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center" />
|
||||
</Button>
|
||||
</Button>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Border>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Border>
|
||||
|
||||
</UserControl>
|
||||
|
||||
@@ -5,6 +5,7 @@ Public Class OpenPageUC
|
||||
|
||||
'Riferimento alla MainWindow
|
||||
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||
Private m_SelParkInd As SelParkIndWD
|
||||
|
||||
'Dichiarazione dello UserControl SceneButtons
|
||||
Private m_SceneButtons As SceneButtonsUC
|
||||
@@ -35,11 +36,12 @@ Public Class OpenPageUC
|
||||
|
||||
' Assegnazione scena all'host e posizionamento nella OpenPageGrid
|
||||
OpenSceneHost.Child = OpenScene
|
||||
OpenSceneHost.SetValue(Grid.ColumnProperty, 1)
|
||||
OpenSceneHost.SetValue(Grid.RowProperty, 2)
|
||||
OpenSceneHost.SetValue(Grid.ColumnProperty, 0) '1
|
||||
OpenSceneHost.SetValue(Grid.RowProperty, 0) ' 2
|
||||
' OpenSceneHost.SetValue(Grid.RowSpanProperty, 1)
|
||||
OpenSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||
Me.OpenPageGrid.Children.Add(OpenSceneHost)
|
||||
'Me.OpenPageGrid.Children.Add(OpenSceneHost)
|
||||
SceneHostGrid.Children.Add(OpenSceneHost)
|
||||
|
||||
' Definizione del collegamento tra ItemList e ListBox1
|
||||
FileListBox.ItemsSource = m_MainWindow.m_OpenItemList
|
||||
@@ -241,6 +243,14 @@ Public Class OpenPageUC
|
||||
Private Function ClearView() As Boolean
|
||||
' Pulisco il DB geometrico locale
|
||||
EgtNewFile()
|
||||
' Elimino elenco dei parcheggi
|
||||
If Not IsNothing(m_SelParkInd) Then
|
||||
OpenSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||
SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||
m_SelParkInd = Nothing
|
||||
End If
|
||||
' Pulisco la selezione dei dati
|
||||
SelParkIndWD.sActualProj = String.Empty
|
||||
' Eseguo zoom
|
||||
OpenScene.ZoomAll()
|
||||
' Cancello messaggio
|
||||
@@ -302,6 +312,24 @@ Public Class OpenPageUC
|
||||
MessageBrd.Background = Brushes.Tomato
|
||||
OkBtn.IsEnabled = False
|
||||
End If
|
||||
|
||||
' Recupero il percorso del progetto per caricare le immagini
|
||||
SelParkIndWD.sActualProj = sPath
|
||||
Dim ListParkInd As New List(Of ParkInd)
|
||||
SelParkIndWD.LoadParkInd(ListParkInd, OpenScene.GetCtx)
|
||||
If ListParkInd.Count > 2 And GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
|
||||
m_SelParkInd = New SelParkIndWD(m_MainWindow, OpenScene.GetCtx)
|
||||
OpenSceneHost.SetValue(Grid.ColumnSpanProperty, 1)
|
||||
m_SelParkInd.SetValue(Grid.ColumnProperty, 1)
|
||||
SceneHostGrid.Children.Add(m_SelParkInd)
|
||||
Else
|
||||
OpenSceneHost.SetValue(Grid.ColumnSpanProperty, 2)
|
||||
If Not IsNothing(m_SelParkInd) Then
|
||||
SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||
m_SelParkInd = Nothing
|
||||
End If
|
||||
End If
|
||||
|
||||
' Eseguo zoom
|
||||
OpenScene.ZoomAll()
|
||||
Return bOk
|
||||
@@ -475,11 +503,21 @@ Public Class OpenPageUC
|
||||
' Se file dxf devo processarlo opportunamente
|
||||
Dim bFileDxf As Boolean = (EgtGetFileType(m_sCurrFile) = FT.DXF)
|
||||
If bFileDxf Then AdjustSlabDxf()
|
||||
|
||||
' Istruzioni per chiudere OpenPageUC e aprire currentproject
|
||||
m_MainWindow.MainWindowGrid.Children.Remove(m_MainWindow.m_OpenPage)
|
||||
m_MainWindow.MainWindowGrid.Children.Add(m_MainWindow.m_CurrentProjectPageUC)
|
||||
' Lancio caricamento nuovo progetto corrente
|
||||
m_MainWindow.m_CadCutPageUC.m_ProjectMgr.PostLoad(m_sCurrDir, m_sCurrFile)
|
||||
|
||||
'--------------------------------------------------------------------------------
|
||||
' Gestione visulizzazione lista pezzi in parcheggio
|
||||
Dim nProj As Integer = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProject()
|
||||
Dim sNewFileName As String = m_MainWindow.GetSaveDir() & "\" & Math.Abs(nProj).ToString("D4") & "_ParkInd_"
|
||||
SelParkIndWD.CopyImgSvg(sNewFileName, OpenScene.GetCtx)
|
||||
SelParkIndWD.sActualProj = String.Empty
|
||||
'--------------------------------------------------------------------------------
|
||||
|
||||
' Se file dxf
|
||||
If bFileDxf Then
|
||||
' Applico le lavorazioni
|
||||
@@ -513,6 +551,12 @@ Public Class OpenPageUC
|
||||
End Sub
|
||||
|
||||
Private Sub OpenPage_Unloaded(sender As Object, e As RoutedEventArgs)
|
||||
If Not IsNothing(m_SelParkInd) Then
|
||||
SceneHostGrid.Children.Remove(m_SelParkInd)
|
||||
m_SelParkInd = Nothing
|
||||
End If
|
||||
' resetto il nome del progetto corrente
|
||||
SelParkIndWD.sActualProj = String.Empty
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -110,24 +110,26 @@ Public Class ProjectMgrUC
|
||||
' Gestione visulizzazione lista pezzi in parcheggio
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.ReloadListParkInd()
|
||||
Dim sNewFileName As String = SelParkIndWD.GetPathCurrProj()
|
||||
Dim Extension As String = ".svg"
|
||||
For Each ItemParkInd As ParkInd In ListParkInd
|
||||
If ItemParkInd.Ind <> 0 And ItemParkInd.Ind <> 999 And ItemParkInd.nPartInPark > 0 Then
|
||||
Try
|
||||
Dim sNewFile As String = sNewFileName & ItemParkInd.Ind.ToString & Extension
|
||||
If MainWindow.m_bShowSVGParkInd Then
|
||||
WriteMyXML(sNewFile, ItemParkInd.LocalMyCanvas)
|
||||
Else
|
||||
If File.Exists(sNewFile) Then
|
||||
File.Delete(sNewFile)
|
||||
End If
|
||||
File.Copy(If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img), sNewFile)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Copia immagine " & If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img) & " di ParkInd non roiscita")
|
||||
End Try
|
||||
End If
|
||||
Next
|
||||
SelParkIndWD.CopyImgSvg(sNewFileName)
|
||||
'Dim Extension As String = ".svg"
|
||||
'If Not MainWindow.m_bShowSVGParkInd Then Extension = ".png"
|
||||
'For Each ItemParkInd As ParkInd In ListParkInd
|
||||
' If ItemParkInd.Ind <> 0 And ItemParkInd.Ind <> 999 And ItemParkInd.nPartInPark > 0 Then
|
||||
' Try
|
||||
' Dim sNewFile As String = sNewFileName & ItemParkInd.Ind.ToString & Extension
|
||||
' If MainWindow.m_bShowSVGParkInd Then
|
||||
' WriteMyXML(sNewFile, ItemParkInd.LocalMyCanvas)
|
||||
' Else
|
||||
' If File.Exists(sNewFile) Then
|
||||
' File.Delete(sNewFile)
|
||||
' End If
|
||||
' File.Copy(If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img), sNewFile)
|
||||
' End If
|
||||
' Catch ex As Exception
|
||||
' EgtOutLog("Copia immagine " & If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img) & " di ParkInd non roiscita")
|
||||
' End Try
|
||||
' End If
|
||||
'Next
|
||||
m_MainWindow.m_CadCutPageUC.m_NestPage.ReloadListParkInd()
|
||||
|
||||
|
||||
|
||||
@@ -39,6 +39,43 @@
|
||||
<Button Name="TopViewBtn" Grid.Column="6" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource LookFromTOPImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
<Popup Name="ViewPopUp"
|
||||
IsOpen="False"
|
||||
AllowsTransparency="False"
|
||||
PopupAnimation="Scroll"
|
||||
StaysOpen="False"
|
||||
Placement="Bottom"
|
||||
PlacementTarget="{Binding ElementName=TopViewBtn}">
|
||||
<WrapPanel Orientation="Vertical"
|
||||
Width="78"
|
||||
Background="{DynamicResource OmagCut_Gray}">
|
||||
<Button x:Name="BottomViewBtn"
|
||||
ToolTip="Bottom View"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource LookFromBOTTOMImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
<Button x:Name="FrontViewBtn"
|
||||
ToolTip="Front View"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource LookFromFRONTImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
<Button x:Name="BackViewBtn"
|
||||
ToolTip="Back View"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource LookFromBACKImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
<Button x:Name="LeftViewBtn"
|
||||
ToolTip="Left View"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource LookFromLEFTImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
<Button x:Name="RightViewBtn"
|
||||
ToolTip="Right View"
|
||||
Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
|
||||
<Image Source="{DynamicResource LookFromRIGHTImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
</WrapPanel>
|
||||
</Popup>
|
||||
|
||||
</Grid>
|
||||
|
||||
|
||||
@@ -5,6 +5,10 @@ Public Class SceneButtonsUC
|
||||
'Riferimento alla MainWindow
|
||||
Dim m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||
|
||||
Private Sub Init() Handles Me.Initialized
|
||||
TopViewBtn.ToolTip = "Top View" & vbCrLf & "Select View (Shift)"
|
||||
End Sub
|
||||
|
||||
Private Sub MeasureBtn_Checked(sender As Object, e As RoutedEventArgs) Handles MeasureBtn.Checked
|
||||
GetCurrScene.SetStatusGetDistance()
|
||||
Dim ptRef1 As Point3d
|
||||
@@ -49,6 +53,12 @@ Public Class SceneButtonsUC
|
||||
'End Sub
|
||||
|
||||
Private Sub PanBtn_Click(sender As Object, e As RoutedEventArgs) Handles PanBtn.Click
|
||||
If Keyboard.IsKeyDown(Key.LeftShift) Then
|
||||
Dim bOrtoGraphic As Boolean = (GetPrivateProfileInt(S_SCENE, K_ORTOGRAPHIC, 1, m_MainWindow.GetIniFile()) <> 0)
|
||||
EgtSetCameraType(Not bOrtoGraphic, True)
|
||||
WritePrivateProfileString(S_SCENE, K_ORTOGRAPHIC, If(Not bOrtoGraphic, "1", "0"), m_MainWindow.GetIniFile())
|
||||
Return
|
||||
End If
|
||||
GetCurrScene.SetStatusPan()
|
||||
End Sub
|
||||
|
||||
@@ -69,7 +79,35 @@ Public Class SceneButtonsUC
|
||||
End Sub
|
||||
|
||||
Private Sub TopViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles TopViewBtn.Click
|
||||
EgtSetView(VT.TOP)
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) > 0 Then
|
||||
If ViewPopUp.IsOpen Then
|
||||
ViewPopUp.IsOpen = False
|
||||
Else
|
||||
ViewPopUp.IsOpen = True
|
||||
End If
|
||||
Else
|
||||
EgtSetView(VT.TOP)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub BottomViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles BottomViewBtn.Click
|
||||
EgtSetView(VT.BOTTOM)
|
||||
End Sub
|
||||
|
||||
Private Sub FrontViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles FrontViewBtn.Click
|
||||
EgtSetView(VT.FRONT)
|
||||
End Sub
|
||||
|
||||
Private Sub BackViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles BackViewBtn.Click
|
||||
EgtSetView(VT.BACK)
|
||||
End Sub
|
||||
|
||||
Private Sub LeftViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles LeftViewBtn.Click
|
||||
EgtSetView(VT.LEFT)
|
||||
End Sub
|
||||
|
||||
Private Sub RightViewBtn_Click(sender As Object, e As RoutedEventArgs) Handles RightViewBtn.Click
|
||||
EgtSetView(VT.RIGHT)
|
||||
End Sub
|
||||
|
||||
Private Function GetCurrScene() As EgtUILib.Scene
|
||||
|
||||
@@ -390,6 +390,8 @@ Public Class Camera
|
||||
' Leggo nome variabile posizione home raggiunta
|
||||
Dim CameraStateNameVar As String = String.Empty
|
||||
GetPrivateProfileString(S_PHOTO, K_CAMERA_STATE_VAR, "", CameraStateNameVar, m_MainWindow.GetMachIniFile())
|
||||
Dim nSteps As Integer = 20
|
||||
nSteps = GetPrivateProfileInt(S_PHOTO, K_PENDIG_TIME_FOR_PHOTO, nSteps, m_MainWindow.GetMachIniFile())
|
||||
If String.IsNullOrEmpty(CameraStateNameVar) Then
|
||||
'Return False
|
||||
Else
|
||||
@@ -403,7 +405,7 @@ Public Class Camera
|
||||
System.Threading.Thread.Sleep(300)
|
||||
' Definisco flag posizionamento completato
|
||||
Dim bPositionOk As Boolean = False
|
||||
For I As Integer = 0 To 40
|
||||
For I As Integer = 0 To nSteps
|
||||
' Devo rileggere la variabile ad ogni ciclo
|
||||
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(CameraStateNameVar, 3)
|
||||
System.Threading.Thread.Sleep(100)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
||||
FontFamily="{DynamicResource OmagCut_Font}"
|
||||
ResizeMode="NoResize" WindowStyle="None" AllowsTransparency="True" Background="Transparent"
|
||||
Title="ModifStartEndWD" Height="250" Width="320" ShowInTaskbar="False">
|
||||
Title="ModifStartEndWD" Height="350" Width="320" ShowInTaskbar="False">
|
||||
|
||||
<!--Definizione della pagina di scelta del nome con cui salvare il progetto-->
|
||||
<Border Style="{DynamicResource OmagCut_Border}">
|
||||
@@ -28,14 +28,30 @@
|
||||
<RowDefinition Height="0.2*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.2*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.2*"/>
|
||||
<RowDefinition Height="0.2*"/>
|
||||
<RowDefinition Height="1.5*"/>
|
||||
<RowDefinition Height="0.2*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Name="RefRawTxbl" Grid.Column="1" Grid.Row="1"
|
||||
<TextBlock Name="SelRefTxbl" Grid.Column="1" Grid.Row="1"
|
||||
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
|
||||
|
||||
<ComboBox Name="RefTabModeCmBx" Grid.Column="2" Grid.Row="1" Style="{StaticResource OmagCut_ComboBox}"
|
||||
|
||||
<ComboBox Name="RefTabCmBx" Grid.Column="2" Grid.Row="1" Style="{StaticResource OmagCut_ComboBox}"
|
||||
MaxDropDownHeight="300" Margin="0,0,0,0">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Name}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
|
||||
|
||||
<TextBlock Name="RefRawTxbl" Grid.Column="1" Grid.Row="3"
|
||||
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
|
||||
|
||||
<ComboBox Name="RefTabOrientationCmBx" Grid.Column="2" Grid.Row="3" Style="{StaticResource OmagCut_ComboBox}"
|
||||
MaxDropDownHeight="300" Margin="0,0,0,0">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
@@ -44,17 +60,17 @@
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
|
||||
<TextBlock Name="RefTabXTxbl" Grid.Column="1" Grid.Row="3"
|
||||
<TextBlock Name="RefTabXTxbl" Grid.Column="1" Grid.Row="5"
|
||||
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="RefTabXTxBx" Grid.Column="2" Grid.Row="3"
|
||||
<EgtWPFLib:EgtTextBox Name="RefTabXTxBx" Grid.Column="2" Grid.Row="5"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
|
||||
<TextBlock Name="RefTabYTxbl" Grid.Column="1" Grid.Row="5"
|
||||
<TextBlock Name="RefTabYTxbl" Grid.Column="1" Grid.Row="7"
|
||||
Style="{DynamicResource OmagCut_CenteredLowerCaseCharacterTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="RefTabYTxBx" Grid.Column="2" Grid.Row="5"
|
||||
<EgtWPFLib:EgtTextBox Name="RefTabYTxBx" Grid.Column="2" Grid.Row="7"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
|
||||
<Grid Name="ButtonsGrid" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="7" Grid.RowSpan="1">
|
||||
<Grid Name="ButtonsGrid" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="10" Grid.RowSpan="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports System.IO
|
||||
Imports System.Reflection
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib
|
||||
|
||||
@@ -12,9 +13,14 @@ Public Class OtherRefTabWD
|
||||
Private m_dPrevOffsetX As Double = 0
|
||||
Private m_dPrevOffsetY As Double = 0
|
||||
|
||||
Private m_bModifX As Boolean = False
|
||||
Private m_bModifY As Boolean = False
|
||||
|
||||
Private m_SelIndex As Integer = 0
|
||||
|
||||
Sub New(Owner As Window, PosX As String, PosY As String, OffsetX As Double, OffsetY As Double, OtherRefMode As Integer)
|
||||
Private m_SelRef As Integer = 0
|
||||
|
||||
Sub New(Owner As Window, PosX As String, PosY As String, OffsetX As Double, OffsetY As Double, OtherRefMode As Integer, SelRef As Integer)
|
||||
Me.Owner = Owner
|
||||
' La chiamata è richiesta dalla finestra di progettazione.
|
||||
InitializeComponent()
|
||||
@@ -25,6 +31,7 @@ Public Class OtherRefTabWD
|
||||
m_dPrevOffsetX = OffsetX
|
||||
m_dPrevOffsetY = OffsetY
|
||||
m_SelIndex = OtherRefMode
|
||||
m_SelRef = SelRef
|
||||
End Sub
|
||||
|
||||
Private Sub OtherRrefTabWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
||||
@@ -36,8 +43,11 @@ Public Class OtherRefTabWD
|
||||
RefRawTxbl.Text = "Raw reference"
|
||||
RefTabXTxbl.Text = "Position X"
|
||||
RefTabYTxbl.Text = "Position Y"
|
||||
RefTabModeCmBx.ItemsSource = m_RawPartPage.m_OtherRefTabList
|
||||
RefTabModeCmBx.SelectedIndex = m_RawPartPage.m_OtherRefTabPos
|
||||
SelRefTxbl.Text = "Sel reference"
|
||||
RefTabOrientationCmBx.ItemsSource = m_RawPartPage.m_OtherRefTabOrientationList
|
||||
RefTabOrientationCmBx.SelectedIndex = m_RawPartPage.m_OtherRefTabPos
|
||||
RefTabCmBx.ItemsSource = m_RawPartPage.m_OtherRefTabList
|
||||
RefTabCmBx.SelectedIndex = m_RawPartPage.m_CurrRefTab
|
||||
End Sub
|
||||
|
||||
Private Sub OtherRrefTabWD_Load(sender As Object, e As EventArgs) Handles Me.Loaded
|
||||
@@ -45,9 +55,44 @@ Public Class OtherRefTabWD
|
||||
RefTabYTxBx.Text = m_sPosY
|
||||
End Sub
|
||||
|
||||
Private Sub RefTabModeCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles RefTabModeCmBx.SelectionChanged
|
||||
m_RawPartPage.m_OtherRefTabPos = RefTabModeCmBx.SelectedIndex
|
||||
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABPOS, m_RawPartPage.m_OtherRefTabPos.ToString, m_MainWindow.GetIniFile())
|
||||
Private Sub RefTabCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles RefTabCmBx.SelectionChanged
|
||||
If m_bModifX Or m_bModifY Then
|
||||
Dim SaveCurrToolWnd = New EgtMsgBox(m_MainWindow, "", EgtMsg(MSG_EGTMSGBOX + 2), EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL)
|
||||
Select Case SaveCurrToolWnd.m_nPressedBtn
|
||||
Case 0 ' Annulla
|
||||
' annullo l'operazione di cambio indice
|
||||
RefTabCmBx.SelectedIndex = m_RawPartPage.m_CurrRefTab
|
||||
Return
|
||||
Case 1 ' Si
|
||||
' salvo i valori modificati
|
||||
UpdateCurrOffset()
|
||||
' recupero l'oggetto precedentemente selezionato e lo aggiorno (per evitare di rileggere il file ini)
|
||||
Dim temp_RefTab As ReferenceTable = m_RawPartPage.m_OtherRefTabList(m_RawPartPage.m_CurrRefTab)
|
||||
temp_RefTab.dOffsetX = m_RawPartPage.m_OtherRefTabX
|
||||
temp_RefTab.dOffsetY = m_RawPartPage.m_OtherRefTabY
|
||||
temp_RefTab.nPos = m_RawPartPage.m_OtherRefTabPos
|
||||
Case 2 ' No
|
||||
' Non salvo e vado oltre
|
||||
m_bModifX = False
|
||||
m_bModifY = False
|
||||
End Select
|
||||
End If
|
||||
' recupero l'oggetto selezionato
|
||||
Dim local_RefTab As ReferenceTable = m_RawPartPage.m_OtherRefTabList(RefTabCmBx.SelectedIndex)
|
||||
m_RawPartPage.m_CurrRefTab = RefTabCmBx.SelectedIndex
|
||||
' Imposto gli Offset del riferimento selezionato
|
||||
RefTabXTxBx.Text = LenToString(local_RefTab.dOffsetX, 2)
|
||||
m_RawPartPage.m_OtherRefTabX = local_RefTab.dOffsetX
|
||||
RefTabYTxBx.Text = LenToString(local_RefTab.dOffsetY, 2)
|
||||
m_RawPartPage.m_OtherRefTabY = local_RefTab.dOffsetY
|
||||
' Aggiorno la posizine del grezzo
|
||||
m_RawPartPage.RefTabModeChange()
|
||||
m_bModifX = False
|
||||
m_bModifY = False
|
||||
End Sub
|
||||
|
||||
Private Sub RefTabOrientationCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles RefTabOrientationCmBx.SelectionChanged
|
||||
m_RawPartPage.m_OtherRefTabPos = RefTabOrientationCmBx.SelectedIndex
|
||||
m_RawPartPage.RefTabModeChange()
|
||||
End Sub
|
||||
|
||||
@@ -66,6 +111,7 @@ Public Class OtherRefTabWD
|
||||
' errore, posizione fuori dalla tavola
|
||||
End If
|
||||
m_RawPartPage.m_OtherRefTabX = dX
|
||||
m_bModifX = True
|
||||
m_RawPartPage.RefTabModeChange()
|
||||
End If
|
||||
End Sub
|
||||
@@ -85,24 +131,99 @@ Public Class OtherRefTabWD
|
||||
' errore, posizione fuori dalla tavola
|
||||
End If
|
||||
m_RawPartPage.m_OtherRefTabY = dY
|
||||
m_bModifY = True
|
||||
m_RawPartPage.RefTabModeChange()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OkBtn_Click() Handles OkBtn.Click
|
||||
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABX, DoubleToString(RefTabXTxBx.Text, 2), m_MainWindow.GetIniFile())
|
||||
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABY, DoubleToString(RefTabYTxBx.Text, 2), m_MainWindow.GetIniFile())
|
||||
WritePrivateProfileString(S_RAWPART, K_OTHERREFTABPOS, m_RawPartPage.m_OtherRefTabPos.ToString, m_MainWindow.GetIniFile())
|
||||
WritePrivateProfileString(S_RAWPART, K_CURRENTREFTAB, m_RawPartPage.m_CurrRefTab.ToString, m_MainWindow.GetIniFile())
|
||||
' Aggiorno il valore del riferimento correntemente modificato
|
||||
UpdateCurrOffset()
|
||||
m_RawPartPage.RefTabModeChange()
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateCurrOffset()
|
||||
Dim sKeyMsg As String = K_REFTAB & m_RawPartPage.m_CurrRefTab.ToString
|
||||
Dim sValMsg As String = DoubleToString(m_RawPartPage.m_OtherRefTabX, 2) & "," & DoubleToString(m_RawPartPage.m_OtherRefTabY, 2) & "," & m_RawPartPage.m_OtherRefTabPos.ToString
|
||||
WritePrivateProfileString(S_RAWPART, sKeyMsg, sValMsg, m_MainWindow.GetIniFile())
|
||||
End Sub
|
||||
|
||||
Private Sub ExitBtn_Click() Handles ExitBtn.Click
|
||||
' riposiziono l'origine
|
||||
m_RawPartPage.m_OtherRefTabX = m_sPosX
|
||||
m_RawPartPage.m_OtherRefTabY = m_sPosY
|
||||
' ripristino il valore della combobox
|
||||
m_RawPartPage.m_OtherRefTabPos = m_SelIndex
|
||||
' Recupero la prima selezione eseguita
|
||||
m_RawPartPage.m_CurrRefTab = m_SelRef
|
||||
Dim temp_RefTab As ReferenceTable = m_RawPartPage.m_OtherRefTabList(m_RawPartPage.m_CurrRefTab)
|
||||
' aggiorno i valori
|
||||
m_RawPartPage.m_OtherRefTabX = temp_RefTab.dOffsetX
|
||||
m_RawPartPage.m_OtherRefTabY = temp_RefTab.dOffsetY
|
||||
m_RawPartPage.m_OtherRefTabPos = temp_RefTab.nPos
|
||||
m_RawPartPage.RefTabModeChange()
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class ReferenceTable
|
||||
|
||||
Private m_dOffsetX As Double
|
||||
Private m_dOffsetY As Double
|
||||
Private m_nPos As RawPartPageUC.OTHERREFMODE = RawPartPageUC.OTHERREFMODE.BL
|
||||
Private m_nIndexRef As Integer = 0
|
||||
|
||||
Public Property dOffsetX As Double
|
||||
Get
|
||||
Return m_dOffsetX
|
||||
End Get
|
||||
Set(value As Double)
|
||||
m_dOffsetX = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property dOffsetY As Double
|
||||
Get
|
||||
Return m_dOffsetY
|
||||
End Get
|
||||
Set(value As Double)
|
||||
m_dOffsetY = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property nPos As Integer
|
||||
Get
|
||||
Return m_nPos
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_nPos = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property nIndexRef As Integer
|
||||
Get
|
||||
Return m_nIndexRef
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_nIndexRef = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Name As String
|
||||
Get
|
||||
Return "REF_" & m_nIndexRef.ToString()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly bOk As Boolean = True
|
||||
|
||||
Sub New(sStringFromIni As String, IndexRef As Integer)
|
||||
Dim sItems() As String = sStringFromIni.Split(","c)
|
||||
If sItems.Count = 3 Then
|
||||
bOk = bOk And StringToLen(sItems(0), m_dOffsetX)
|
||||
bOk = bOk And StringToLen(sItems(1), m_dOffsetY)
|
||||
bOk = bOk And StringToInt(sItems(2), m_nPos)
|
||||
m_nIndexRef = IndexRef
|
||||
Else
|
||||
bOk = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -176,7 +176,9 @@
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="5*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="3*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
@@ -197,7 +199,11 @@
|
||||
<Image Source="{DynamicResource RefTabImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
|
||||
<Button Name="OkBtn" Grid.Column="6" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||
<Button Name="ManualModeBtn" Grid.Column="6" Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
|
||||
<Image Source="{DynamicResource ManualImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
|
||||
<Button Name="OkBtn" Grid.Column="8" Style="{DynamicResource OmagCut_GradientBlueIconButton}">
|
||||
<Image Source="{DynamicResource VImg}" Width="65" Height="65" HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center" />
|
||||
</Button>
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
Imports System.Globalization
|
||||
Imports System.IO
|
||||
Imports System.Windows.Media.Animation
|
||||
Imports System.IO
|
||||
Imports System.Reflection
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib
|
||||
Imports Microsoft.VisualBasic.Devices
|
||||
|
||||
Public Class RawPartPageUC
|
||||
|
||||
' Dati generali CN
|
||||
Friend m_CN As CN_generico
|
||||
|
||||
' Riferimento alla MainWindow
|
||||
Dim m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||
Dim WithEvents m_CurrProjPage As CurrentProjectPageUC
|
||||
@@ -81,13 +82,23 @@ Public Class RawPartPageUC
|
||||
' Costante raggio cerchietto
|
||||
Private Const RAD_CIRCLE As Double = 30
|
||||
|
||||
Private m_nIdMinRedX As Integer = -1
|
||||
Private m_SafetyZone_X = 0
|
||||
Private m_nIdMinRedY As Integer = -1
|
||||
Private m_SafetyZone_Y = 0
|
||||
Private m_bSafetyZoneRight As Boolean = True
|
||||
Private m_bSafetyZoneBottom As Boolean = True
|
||||
Private m_bExistsSafetyZone As Boolean = False
|
||||
|
||||
' Riferimento grezzo
|
||||
Private m_bEnableOtherRefTab As Boolean = False
|
||||
Private m_bOtherRefTab As Boolean
|
||||
Public m_OtherRefTabX As Double = 0
|
||||
Public m_OtherRefTabY As Double = 0
|
||||
Public m_OtherRefTabList(3) As String
|
||||
Public m_OtherRefTabPos As Integer = 0
|
||||
Public m_OtherRefTabX As Double = 0 ' offset riferimento corrente
|
||||
Public m_OtherRefTabY As Double = 0 ' offset riferimento corrente
|
||||
Public m_OtherRefTabPos As Integer = 0 ' poisizione riferimento (Bottom-Left, ..)
|
||||
Public m_OtherRefTabOrientationList(3) As String ' oriemtazione riferiemnto
|
||||
Public m_OtherRefTabList As New List(Of ReferenceTable) ' lista dei riferiemneti configurata nel programma
|
||||
Public m_CurrRefTab As Integer = 1 ' inidice del riferimento della lista corrente
|
||||
Private m_nOtherRefTabLay As Integer = GDB_ID.NULL
|
||||
Private m_OtherRefTabPoint As Point3d
|
||||
|
||||
@@ -118,13 +129,20 @@ Public Class RawPartPageUC
|
||||
FROM_SAW = 7
|
||||
End Enum
|
||||
|
||||
Private Enum OTHERREFMODE As Integer
|
||||
Friend Enum OTHERREFMODE As Integer
|
||||
BL = 0
|
||||
BR = 1
|
||||
TR = 2
|
||||
TL = 3
|
||||
End Enum
|
||||
|
||||
Private Enum STATDRAG As Integer
|
||||
OK = 0
|
||||
X_ = 1
|
||||
_Y = 2
|
||||
XY = 3
|
||||
End Enum
|
||||
|
||||
Private Sub RawPartPage_Initialized(sender As Object, e As EventArgs)
|
||||
|
||||
'Creazione della Page UserControl e relative impostazioni
|
||||
@@ -167,10 +185,10 @@ Public Class RawPartPageUC
|
||||
RawModeCmBx.ItemsSource = m_RawModeList
|
||||
|
||||
' Creo la lista dei riferimenti tavola
|
||||
m_OtherRefTabList(OTHERREFMODE.BL) = "Bottom left"
|
||||
m_OtherRefTabList(OTHERREFMODE.BR) = "Bottom right"
|
||||
m_OtherRefTabList(OTHERREFMODE.TR) = "Top right"
|
||||
m_OtherRefTabList(OTHERREFMODE.TL) = "Top left"
|
||||
m_OtherRefTabOrientationList(OTHERREFMODE.BL) = "Bottom left"
|
||||
m_OtherRefTabOrientationList(OTHERREFMODE.BR) = "Bottom right"
|
||||
m_OtherRefTabOrientationList(OTHERREFMODE.TR) = "Top right"
|
||||
m_OtherRefTabOrientationList(OTHERREFMODE.TL) = "Top left"
|
||||
|
||||
' lista per selezione RawModeDamaged
|
||||
m_RawModeDamagedList(0) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
|
||||
@@ -214,6 +232,7 @@ Public Class RawPartPageUC
|
||||
ConfirmPhotoBtn.Content = EgtMsg(MSG_RAWPARTPAGEUC + 24) 'Conferma
|
||||
|
||||
OtherRefTabTxBl.Text = "New Ref On Tab"
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub RawPartPage_Loaded(sender As Object, e As RoutedEventArgs)
|
||||
@@ -320,6 +339,23 @@ Public Class RawPartPageUC
|
||||
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
|
||||
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
|
||||
KerfTxBx.Text = LenToString(dInvertKerf * m_RawKerf, 2)
|
||||
|
||||
' Recupero gli ID delle pareti che delimitano l'area Protetta (movimenti in OverZ)
|
||||
Dim nIdBase As Integer = EgtGetBaseId("Base")
|
||||
m_nIdMinRedX = EgtGetFirstNameInGroup(nIdBase, "MinRedX")
|
||||
m_nIdMinRedY = EgtGetFirstNameInGroup(nIdBase, "MinRedY")
|
||||
If m_nIdMinRedY <> GDB_ID.NULL And m_nIdMinRedY <> GDB_ID.NULL Then
|
||||
m_bExistsSafetyZone = True
|
||||
Dim ptMinX, ptMaxX As Point3d
|
||||
EgtGetBBoxGlob(m_nIdMinRedX, GDB_BB.STANDARD, ptMinX, ptMaxX)
|
||||
m_SafetyZone_X = ptMinX.x
|
||||
Dim ptMinY, ptMaxY As Point3d
|
||||
EgtGetBBoxGlob(m_nIdMinRedY, GDB_BB.STANDARD, ptMinY, ptMaxY)
|
||||
m_SafetyZone_Y = ptMinY.y
|
||||
End If
|
||||
' Verifico se attivare la visualizzazione dell'area sicura (prendo la posizione corrente come posizione di partenza)
|
||||
DrawSafetyZone(m_RawHeight, m_CurrentMachine.dHighPieceZ, New Vector3d(0, 0, 0))
|
||||
|
||||
' Creo layer temporaneo per crocette
|
||||
m_nTempLay = EgtCreateGroup(GDB_ID.ROOT)
|
||||
EgtSetLevel(m_nTempLay, GDB_LV.TEMP)
|
||||
@@ -348,7 +384,6 @@ Public Class RawPartPageUC
|
||||
EgtZoom(ZM.ALL)
|
||||
End If
|
||||
'Imposto il materiale corrente nella combobox
|
||||
'MaterialsCmbx.SelectedItem = m_CurrentMachine.CurrMat
|
||||
Dim Item As Material
|
||||
For Each Item In MaterialsCmbx.Items
|
||||
If Not IsNothing(m_CurrentMachine.CurrMat) AndAlso Item.sName = m_CurrentMachine.CurrMat.sName Then
|
||||
@@ -368,9 +403,36 @@ Public Class RawPartPageUC
|
||||
OtherRefTabBtn.Visibility = Visibility.Visible
|
||||
End If
|
||||
m_bOtherRefTab = (GetPrivateProfileInt(S_RAWPART, K_OTHERREFTAB, 0, m_MainWindow.GetIniFile()) <> 0)
|
||||
m_OtherRefTabX = GetPrivateProfileDouble(S_RAWPART, K_OTHERREFTABX, 0, m_MainWindow.GetIniFile())
|
||||
m_OtherRefTabY = GetPrivateProfileDouble(S_RAWPART, K_OTHERREFTABY, 0, m_MainWindow.GetIniFile())
|
||||
m_OtherRefTabPos = GetPrivateProfileInt(S_RAWPART, K_OTHERREFTABPOS, 0, m_MainWindow.GetIniFile())
|
||||
' Recupero il riferimento attivo
|
||||
m_CurrRefTab = GetPrivateProfileInt(S_RAWPART, K_CURRENTREFTAB, 0, m_MainWindow.GetIniFile())
|
||||
' carico l'elenco dei riferimenti da usare
|
||||
LoadRefTabList()
|
||||
' Solo se non esiste una lista allora leggo i valori
|
||||
If m_OtherRefTabList.Count = 0 Then
|
||||
' Versione precedente 2.7c# DEPRECABILE
|
||||
Dim Off_X As Double = -1000
|
||||
Dim Off_Y As Double = -1000
|
||||
Dim Pos_Ind As Integer = -1
|
||||
Off_X = GetPrivateProfileDouble(S_RAWPART, K_OTHERREFTABX, -1000, m_MainWindow.GetIniFile())
|
||||
Off_Y = GetPrivateProfileDouble(S_RAWPART, K_OTHERREFTABY, -1000, m_MainWindow.GetIniFile())
|
||||
Pos_Ind = GetPrivateProfileInt(S_RAWPART, K_OTHERREFTABPOS, -1, m_MainWindow.GetIniFile())
|
||||
If Off_X <> -1000 And Off_Y <> -1000 And Pos_Ind <> -1 Then
|
||||
Dim Local_Text As String = DoubleToString(Off_X, 2) & "," & DoubleToString(Off_Y, 2) & "," & Pos_Ind.ToString
|
||||
Dim local_NewRef As New ReferenceTable(Local_Text, 0)
|
||||
If local_NewRef.bOk Then
|
||||
m_OtherRefTabList.Add(local_NewRef)
|
||||
m_CurrRefTab = 0
|
||||
' Carico i valori
|
||||
m_OtherRefTabX = m_OtherRefTabList(m_CurrRefTab).dOffsetX
|
||||
m_OtherRefTabY = m_OtherRefTabList(m_CurrRefTab).dOffsetY
|
||||
m_OtherRefTabPos = m_OtherRefTabList(m_CurrRefTab).nPos
|
||||
' Creo la nuova configurazione da usare
|
||||
Dim sKeyMsg As String = K_REFTAB & m_CurrRefTab.ToString
|
||||
Dim sValMsg As String = DoubleToString(m_OtherRefTabX, 2) & "," & DoubleToString(m_OtherRefTabY, 2) & "," & m_OtherRefTabPos.ToString
|
||||
WritePrivateProfileString(S_RAWPART, sKeyMsg, sValMsg, m_MainWindow.GetIniFile())
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
' RefTabPosCmbx.SelectedIndex = m_OtherRefTabPos
|
||||
OtherRefTabChBx.IsChecked = m_bOtherRefTab
|
||||
' se riferimento tavola differente da quello atteso
|
||||
@@ -389,6 +451,29 @@ Public Class RawPartPageUC
|
||||
' EgtDraw()
|
||||
End Sub
|
||||
|
||||
Private Sub LoadRefTabList()
|
||||
m_OtherRefTabList.Clear()
|
||||
Dim sRefTab As String = String.Empty
|
||||
Dim nIndex As Integer = 0
|
||||
While GetPrivateProfileString(S_RAWPART, K_REFTAB & nIndex.ToString, "", sRefTab, m_MainWindow.GetIniFile()) > 0
|
||||
Dim local_NewRef As New ReferenceTable(sRefTab, nIndex)
|
||||
If local_NewRef.bOk Then
|
||||
m_OtherRefTabList.Add(local_NewRef)
|
||||
nIndex += 1
|
||||
Else
|
||||
EgtOutLog("ERROR in reading RefTab" & nIndex.ToString & " is not correctly defined in file OmagCUT.ini, any other reference will not loaded")
|
||||
Exit While
|
||||
End If
|
||||
End While
|
||||
' Assegno il riferimento corrente
|
||||
If m_CurrRefTab < m_OtherRefTabList.Count Then
|
||||
m_OtherRefTabX = m_OtherRefTabList(m_CurrRefTab).dOffsetX
|
||||
m_OtherRefTabY = m_OtherRefTabList(m_CurrRefTab).dOffsetY
|
||||
m_OtherRefTabPos = m_OtherRefTabList(m_CurrRefTab).nPos
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub OnMyMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_CurrProjPage.OnMouseDownScene
|
||||
' Verifico di essere il gestore attivo
|
||||
If Not m_bActive Then Return
|
||||
@@ -571,6 +656,19 @@ Public Class RawPartPageUC
|
||||
' Ricavo il punto corrente in coordinate mondo
|
||||
Dim ptCurr As Point3d
|
||||
EgtUnProjectPoint(e.Location, ptCurr)
|
||||
|
||||
' Creo una copia del punto corrente
|
||||
Dim ptTemp As New Point3d(ptCurr.x, ptCurr.y, ptCurr.z)
|
||||
Select Case DrawSafetyZone(m_RawHeight, m_CurrentMachine.dHighPieceZ, ptCurr - m_ptPrev)
|
||||
Case STATDRAG.X_
|
||||
ptCurr.x = m_ptPrev.x
|
||||
Case STATDRAG._Y
|
||||
ptCurr.y = m_ptPrev.y
|
||||
Case STATDRAG.XY
|
||||
m_ptPrev = ptCurr
|
||||
Return
|
||||
End Select
|
||||
|
||||
' Eseguo modifica
|
||||
Select Case m_ActiveRawMode
|
||||
Case RAWMODE.RECTANGLE
|
||||
@@ -581,7 +679,7 @@ Public Class RawPartPageUC
|
||||
ModifyDamaged(ptCurr)
|
||||
End Select
|
||||
' Aggiorno il punto precedente
|
||||
m_ptPrev = ptCurr
|
||||
m_ptPrev = ptTemp
|
||||
' Resetto i ponticelli (per ora non sono in grado di muoverli assieme ai pezzi)
|
||||
ResetAllBRidges()
|
||||
End Sub
|
||||
@@ -764,6 +862,13 @@ Public Class RawPartPageUC
|
||||
If m_bProbingOn Then Return
|
||||
' reimposto il comando OutLine
|
||||
OutlineBtn_Click(Nothing, Nothing)
|
||||
' Nasocndo eventuali pareti
|
||||
If m_bExistsSafetyZone Then
|
||||
' gestisco la visualizzazione delle pareti che delimitano l'area sicura
|
||||
EgtSetStatus(m_nIdMinRedX, GDB_ST.OFF)
|
||||
EgtSetStatus(m_nIdMinRedY, GDB_ST.OFF)
|
||||
End If
|
||||
|
||||
' Se confermata uscita
|
||||
If ExitRawPart(True) Then
|
||||
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(Me)
|
||||
@@ -2019,6 +2124,8 @@ Public Class RawPartPageUC
|
||||
Dim dInvertKerf As Double = 1
|
||||
EgtGetInfo(EgtGetFirstRawPart(), KEY_INVERT_KERF, dInvertKerf)
|
||||
Dim dMaxLen = m_dTableLength - m_RawOffsX - m_RawKerf * dInvertKerf
|
||||
' Se è attiva l'area sicura allora devo ricalcolare la dimensione massima
|
||||
|
||||
If dLength <= dMaxLen Then
|
||||
m_CurrProjPage.ClearMessage()
|
||||
If dKerf < 0 Then
|
||||
@@ -2063,6 +2170,8 @@ Public Class RawPartPageUC
|
||||
If Not StringToLen(HeightTxBx.Text, dHeight) Then
|
||||
Return
|
||||
End If
|
||||
' verifico se l'altezza del pezzo è maggiore di quella consentita in macchina
|
||||
DrawSafetyZone(dHeight, m_CurrentMachine.dHighPieceZ, New Vector3d(0, 0, 0))
|
||||
If dHeight > -EPS_ZERO Then
|
||||
m_CurrProjPage.ClearMessage()
|
||||
If Math.Abs(dHeight - m_RawHeight) > EPS_SMALL Then
|
||||
@@ -2132,6 +2241,91 @@ Public Class RawPartPageUC
|
||||
End If
|
||||
End Sub
|
||||
|
||||
' Funzione che si occupa di disegnare le pareti dell'area sicura e di gestire il grezzo (
|
||||
Private Function DrawSafetyZone(dHeight As Double, dHighPieceZ As Double, vtMove As Vector3d) As STATDRAG
|
||||
' Se non esiste allora esci senza eseguire controlli
|
||||
If Not m_bExistsSafetyZone Then Return STATDRAG.OK
|
||||
' Verifico se attivare la visualizzazione
|
||||
Dim nStatus As GDB_ST = GDB_ST.OFF
|
||||
If dHeight > dHighPieceZ Then
|
||||
nStatus = GDB_ST.ON_
|
||||
End If
|
||||
' gestisco la visualizzazione delle pareti che delimitano l'area sicura
|
||||
EgtSetStatus(m_nIdMinRedX, nStatus)
|
||||
EgtSetStatus(m_nIdMinRedY, nStatus)
|
||||
EgtDraw()
|
||||
If nStatus = GDB_ST.ON_ Then
|
||||
Return VerifyDimensionRawSafetyZone(vtMove)
|
||||
End If
|
||||
Return STATDRAG.OK
|
||||
End Function
|
||||
|
||||
' Verifica che le dimensioni del grezzo siano conformi con l'area sicura (altrimenti provvedo a ridimensionare il grezzo)
|
||||
Private Function VerifyDimensionRawSafetyZone(vtMove As Vector3d) As STATDRAG
|
||||
Dim nRawSolidId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID)
|
||||
Dim ptMinRaw, ptMaxRaw As Point3d
|
||||
EgtGetBBoxGlob(nRawSolidId, GDB_BB.STANDARD, ptMinRaw, ptMaxRaw)
|
||||
' Dimensioni grezzo
|
||||
Dim Len_X As Double = ptMaxRaw.x - ptMinRaw.x
|
||||
Dim Wid_Y As Double = ptMaxRaw.y - ptMinRaw.y
|
||||
' Posiztion SafetyZone: RIGHT-BOTTOM
|
||||
Dim RedTab_X = m_dTableLength - Math.Abs(m_SafetyZone_X - m_ptTableMin.x)
|
||||
Dim RedTab_Y = Math.Abs(m_SafetyZone_Y - m_ptTableMin.y)
|
||||
If RedTab_X < Len_X Then
|
||||
' riduco le dimensioni del grezzo
|
||||
m_RawLength = RedTab_X - EPS_SMALL * 10
|
||||
LengthTxBx.Text = LenToString(m_RawLength, 2)
|
||||
UpdateRawPart()
|
||||
End If
|
||||
If RedTab_Y < Wid_Y Then
|
||||
' riduco le dimensioni del grezzo
|
||||
m_RawWidth = RedTab_Y - EPS_SMALL * 10
|
||||
WidthTxBx.Text = LenToString(m_RawWidth, 2)
|
||||
UpdateRawPart()
|
||||
End If
|
||||
Return VerifyRawInSafetyZone(vtMove)
|
||||
End Function
|
||||
|
||||
' Verifico che la posizione del grezzo sia conforme con la posizione di area sicura
|
||||
Private Function VerifyRawInSafetyZone(vtMove As Vector3d) As STATDRAG
|
||||
Dim nStat As STATDRAG = STATDRAG.OK
|
||||
Dim bCalcBBoxRaw As Boolean = False
|
||||
Dim nRawSolidId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID)
|
||||
Dim ptMinRaw, ptMaxRaw As Point3d
|
||||
EgtGetBBoxGlob(nRawSolidId, GDB_BB.STANDARD, ptMinRaw, ptMaxRaw)
|
||||
' Posiztion SafetyZone: RIGHT-BOTTOM
|
||||
' Verifico che il grezzo sia all'interno di questi estremi
|
||||
If ptMinRaw.x + vtMove.x < m_SafetyZone_X Then
|
||||
' riposiziono il grezzo sulla parete
|
||||
Dim ptRef As Point3d = New Point3d(m_SafetyZone_X - m_ptTableMin.x, ptMinRaw.y - m_ptTableMin.y, 0)
|
||||
EgtMoveToCornerRawPart(m_CurrProjPage.m_nRawId, ptRef, MCH_CR.BL)
|
||||
' aggiorno il valore di Offset
|
||||
m_RawOffsX = m_SafetyZone_X + m_RawKerf - m_ptTableMin.x
|
||||
m_RawOffsY = ptMinRaw.y + m_RawKerf - m_ptTableMin.y
|
||||
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
|
||||
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
|
||||
bCalcBBoxRaw = True
|
||||
nStat = STATDRAG.X_
|
||||
End If
|
||||
' Ricalcolo la posizione del grezzo se nel processo sopra ho eseguito uno spostamento
|
||||
If bCalcBBoxRaw Then EgtGetBBoxGlob(nRawSolidId, GDB_BB.STANDARD, ptMinRaw, ptMaxRaw)
|
||||
If ptMaxRaw.y + vtMove.y > m_SafetyZone_Y Then
|
||||
Dim dRawWidth As Double = ptMaxRaw.y - ptMinRaw.y
|
||||
Dim ptRef As Point3d = New Point3d(ptMinRaw.x - m_ptTableMin.x, m_SafetyZone_Y - dRawWidth - m_ptTableMin.y, 0)
|
||||
EgtMoveToCornerRawPart(m_CurrProjPage.m_nRawId, ptRef, MCH_CR.BL)
|
||||
m_RawOffsX = ptMinRaw.x + m_RawKerf - m_ptTableMin.x
|
||||
m_RawOffsY = m_SafetyZone_Y - dRawWidth + m_RawKerf - m_ptTableMin.y
|
||||
OffsetXTxBx.Text = LenToString(m_RawOffsX, 2)
|
||||
OffsetYTxBx.Text = LenToString(m_RawOffsY, 2)
|
||||
bCalcBBoxRaw = True
|
||||
nStat = nStat + STATDRAG._Y
|
||||
End If
|
||||
EgtDraw()
|
||||
' Se ho ricalcolato la posizione del BBox grezzo allora ritorno falso
|
||||
Return nStat
|
||||
End Function
|
||||
|
||||
|
||||
#Region "OTHERREFTAB"
|
||||
|
||||
Private Sub OtherRefTabChBx_Click(sender As Object, e As EventArgs) Handles OtherRefTabChBx.Click
|
||||
@@ -2228,11 +2422,19 @@ Public Class RawPartPageUC
|
||||
End Sub
|
||||
|
||||
Private Sub OtherRefTabBtn_Click(sender As Object, e As EventArgs) Handles OtherRefTabBtn.Click
|
||||
' Aggiorno la lista dei riferimenti
|
||||
LoadRefTabList()
|
||||
' apro la finestra per gestire il riferimento
|
||||
Dim OthWD As New OtherRefTabWD(m_MainWindow, LenToString(m_OtherRefTabX, 2), LenToString(m_OtherRefTabY, 2), m_RawOffsX, m_RawOffsY, m_OtherRefTabPos)
|
||||
Dim OthWD As New OtherRefTabWD(m_MainWindow, LenToString(m_OtherRefTabX, 2), LenToString(m_OtherRefTabY, 2), m_RawOffsX, m_RawOffsY, m_OtherRefTabPos, m_CurrRefTab)
|
||||
OthWD.ShowDialog()
|
||||
End Sub
|
||||
|
||||
Private Sub ManualModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles ManualModeBtn.Click
|
||||
' Imposto modalità manuale della macchina
|
||||
Dim nResult As Short = m_MainWindow.m_CNCommunication.m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region ' OtherRefTab
|
||||
|
||||
Private Sub KerfTxBx_EgtClosed(sender As Object, e As EventArgs) Handles KerfTxBx.EgtClosed
|
||||
@@ -2352,6 +2554,8 @@ Public Class RawPartPageUC
|
||||
KerfTxBx.Text = LenToString(m_RawKerf, 2)
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_RAWPARTPAGEUC + 22) & " " & LenToString(dMaxKerf, 2)) 'Massimo kerf =
|
||||
End If
|
||||
' Verifico se attivare la visualizzazione dell'area sicura (prendo la posizione corrente come posizione di partenza)
|
||||
DrawSafetyZone(m_RawHeight, m_CurrentMachine.dHighPieceZ, New Vector3d(0, 0, 0))
|
||||
End Sub
|
||||
|
||||
Private Sub RawProbingBtn_Click(sender As Object, e As RoutedEventArgs) Handles RawProbingBtn.Click
|
||||
|
||||
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 6.5 KiB |
@@ -206,6 +206,12 @@ Public Class SimulationPageUC
|
||||
Else
|
||||
PlayPauseImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/Play.png", UriKind.Relative))
|
||||
End If
|
||||
|
||||
Dim nIdBase As Integer = EgtGetBaseId("Base")
|
||||
Dim m_nIdMinRedX = EgtGetFirstNameInGroup(nIdBase, "MinRedX")
|
||||
If m_nIdMinRedX <> GDB_ID.NULL Then EgtSetStatus(m_nIdMinRedX, GDB_ST.OFF)
|
||||
Dim m_nIdMinRedY = EgtGetFirstNameInGroup(nIdBase, "MinRedY")
|
||||
If m_nIdMinRedY <> GDB_ID.NULL Then EgtSetStatus(m_nIdMinRedY, GDB_ST.OFF)
|
||||
End Sub
|
||||
|
||||
Private Sub StepBtn_Click(sender As Object, e As RoutedEventArgs) Handles StepBtn.Click
|
||||
|
||||