Compare commits

...

17 Commits

Author SHA1 Message Date
Nicola Pievani 5da026accb Gestione doppia fotocamera (rulliera-tavolo) 2023-07-25 17:03:26 +02:00
Nicola Pievani 5396796d28 Merge commit 'ae18c7f027cc2408ed5f4adb03903ff9521da07d' into develop 2023-07-25 12:51:17 +02:00
Nicola Pievani ae18c7f027 Merge commit '54122d82e6f5179fe8dcfe0a6a907ed15a0c1a43' 2023-07-25 12:50:31 +02:00
DarioS 54122d82e6 OmagCUT 2.5g2 :
- migliorie varie alla gestione spostamento pezzi con due teste su macchine di linea
- disabilitati attese di comunicazione in modalità demo.
2023-07-25 08:33:05 +02:00
Nicola Pievani f85e97a126 Aggiunti commenti e apertura file Log 2023-07-24 18:40:18 +02:00
DarioS 06654d923c OmagCUT :
- in chiusura si aspetta chiusura DreepFeed solo se NUM_OLD (Axium).
2023-07-24 08:29:53 +02:00
Nicola Pievani ce1c6fcf02 Merge commit 'da11ec0a11faa5e6e59cee2171b222747faec822' 2023-07-21 17:31:58 +02:00
Nicola Pievani da11ec0a11 Merge commit '52688ed0dafd532cfca811a82f0c7c32b057cfb4' into develop 2023-07-21 17:31:38 +02:00
Nicola Pievani 52688ed0da Inizio gestione Vaccum due teste 2023-07-21 14:31:25 +02:00
Nicola Pievani 60eda04669 Correzione creazione file NewClick,txt 2023-07-17 09:51:25 +02:00
Nicola Pievani b95dd8f41d Gestione estensione file inviato al CN 2023-07-13 10:42:42 +02:00
Nicola Pievani 4b2351c20a Cambio versione 2.5g1 2023-07-11 16:02:51 +02:00
Nicola Pievani 988743187b Merge commit '2c0afccbe3b165a9d3c82b57d7328409ba334513' into develop 2023-07-10 14:59:29 +02:00
Nicola Pievani a5d6d34664 Merge commit '27b13292cf73a4d6b5ecfbaf614d5eaf6eaa1d54' 2023-06-26 18:32:42 +02:00
Nicola Pievani 10cb8f64f5 Merge commit '6dbf4f5ccbeb207f8df7d69550dd6d8bf6d06b89' 2023-06-13 18:34:25 +02:00
Nicola Pievani 4ba0fe2520 Merge commit 'a55ab4f83d56dc7237f70ed32fd7aba08221c063' 2023-06-08 17:14:51 +02:00
Nicola Pievani 419776c89f Merge commit 'fd89a6cf3b31ca241a41a8fc450fca9dbdc3f4aa' 2023-06-05 10:33:36 +02:00
20 changed files with 339 additions and 174 deletions
+1 -1
View File
@@ -30,7 +30,7 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Button Name="PhotoBtn" Grid.Column="0" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}"> <Button Name="PhotoBtn" Grid.Column="0" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
<Image Source="{DynamicResource PhotoImg}" Style="{StaticResource OmagCut_ButtonIcon}"/> <Image Name="PhotoIMG" Source="{DynamicResource PhotoImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</Button> </Button>
<Button Name="RawPartBtn" Grid.Column="1" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}"> <Button Name="RawPartBtn" Grid.Column="1" Style="{DynamicResource OmagCut_RightGrayGradientYellowButton}">
<Image Source="{DynamicResource RawPartImg}" Style="{StaticResource OmagCut_ButtonIcon}"/> <Image Source="{DynamicResource RawPartImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
+11 -1
View File
@@ -370,7 +370,15 @@ Public Class MoveRawPartPage
VacuumCups.SetWeightInformation(AverageDensity, MaxSinglePlugger, MaxDoublePlugger) VacuumCups.SetWeightInformation(AverageDensity, MaxSinglePlugger, MaxDoublePlugger)
VacuumCups.SetRotationForExtraStrokeY(GetPrivateProfileInt(S_MACH_RAWMOVE, K_MACH_ROTATEVACUUMFOREXTRASTROKEY, 0, m_MainWindow.GetMachIniFile()) <> 0) VacuumCups.SetRotationForExtraStrokeY(GetPrivateProfileInt(S_MACH_RAWMOVE, K_MACH_ROTATEVACUUMFOREXTRASTROKEY, 0, m_MainWindow.GetMachIniFile()) <> 0)
VacuumCups.SetRotationForExtraStrokeX(GetPrivateProfileInt(S_MACH_RAWMOVE, K_MACH_ROTATEVACUUMFOREXTRASTROKEX, 0, m_MainWindow.GetMachIniFile()) <> 0) VacuumCups.SetRotationForExtraStrokeX(GetPrivateProfileInt(S_MACH_RAWMOVE, K_MACH_ROTATEVACUUMFOREXTRASTROKEX, 0, m_MainWindow.GetMachIniFile()) <> 0)
If PutVacuumCupsOnRaw(nId, rmData) Then
VacuumCups.ResetHeadName()
Dim bPutVacuum As Boolean = PutVacuumCupsOnRaw(nId, rmData)
If Not bPutVacuum Then
Dim bTwoHeadVac As Boolean = ( EgtGetHeadId( VACUUM_HEAD_2) <> GDB_ID.NULL)
If bTwoHeadVac Then bPutVacuum = PutVacuumCupsOnRaw(nId, rmData)
End If
If bPutVacuum Then
' Visualizzo le ventose ' Visualizzo le ventose
EgtSetStatus(GetVacuumId(), GDB_ST.ON_) EgtSetStatus(GetVacuumId(), GDB_ST.ON_)
' Aggiorno i dati ' Aggiorno i dati
@@ -392,6 +400,8 @@ Public Class MoveRawPartPage
m_CurrProjPage.SetWarningMessage(EgtMsg(MSG_MOVERAWPAGEUC + 2)) 'Pezzo troppo piccolo : non si può muovere m_CurrProjPage.SetWarningMessage(EgtMsg(MSG_MOVERAWPAGEUC + 2)) 'Pezzo troppo piccolo : non si può muovere
End If End If
End If End If
End If End If
End If End If
EgtDraw() EgtDraw()
+5 -2
View File
@@ -2482,8 +2482,11 @@ Public Class NestPageUC
Const STORE_LARGH As Double = 6000 Const STORE_LARGH As Double = 6000
Const STORE_DIST As Double = 200 Const STORE_DIST As Double = 200
Const STORE_OFFS As Double = 20 + 40 + 20 Const STORE_OFFS As Double = 20 + 40 + 20
Dim dStXmin As Double = b3Tab.Min().x - 0.5 * (STORE_LARGH - b3Tab.DimX()) Dim dStoreLarg As Double = GetPrivateProfileDouble("Store", "StoreLargh", STORE_LARGH, m_MainWindow.GetMachIniFile())
Return EgtPackBox(nId, dStXmin, -INFINITO, dStXmin + STORE_LARGH, b3Tab.Min().y - STORE_DIST, STORE_OFFS, False) Dim dStoreDist As Double = GetPrivateProfileDouble("Store", "StoreDist", STORE_DIST, m_MainWindow.GetMachIniFile())
Dim dStoreOffs As Double = GetPrivateProfileDouble("Store", "StoreOffs", STORE_OFFS, m_MainWindow.GetMachIniFile())
Dim dStXmin As Double = b3Tab.Min().x - 0.5 * (dStoreLarg - b3Tab.DimX())
Return EgtPackBox(nId, dStXmin, -INFINITO, dStXmin + dStoreLarg, b3Tab.Min().y - dStoreDist, dStoreOffs, False)
End Function End Function
Private Sub RemovePartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemovePartBtn.Click Private Sub RemovePartBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemovePartBtn.Click
+20 -8
View File
@@ -1,4 +1,5 @@
Imports System.Windows.Forms.Integration Imports System.Net
Imports System.Windows.Forms.Integration
Imports EgtUILib Imports EgtUILib
Public Module SplitAuto Public Module SplitAuto
@@ -119,6 +120,9 @@ Public Module SplitAuto
Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine Mach.m_dStartFreeLen > FREELEN_INF And Mach.m_bIsLine
Mach.m_bCanEndAll = (dEndAddLen > -EPS_SMALL And (nRes And CAR_RES.LO_OK) <> 0) And Mach.m_bCanEndAll = (dEndAddLen > -EPS_SMALL And (nRes And CAR_RES.LO_OK) <> 0) And
Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine Mach.m_dEndFreeLen > FREELEN_INF And Mach.m_bIsLine
If nRes = 0 Then
EgtOutLog("Operation ID " & nOperId.ToString & " isn't split cut! verify depth machining.")
End If
End If End If
' se trasformabile in taglio di separazione, verifico se lo è ' se trasformabile in taglio di separazione, verifico se lo è
If Mach.m_bCanStartAll Or Mach.m_bCanEndAll Then If Mach.m_bCanStartAll Or Mach.m_bCanEndAll Then
@@ -795,21 +799,29 @@ Public Module SplitAuto
Private Function ExecMove(nDispId As Integer, vNewRaws As List(Of Integer), Private Function ExecMove(nDispId As Integer, vNewRaws As List(Of Integer),
vtMove As Vector3d, dMinMove As Double) As Boolean vtMove As Vector3d, dMinMove As Double) As Boolean
Dim vtMove2 As Vector3d = -vtMove Dim bTwoHeadVac As Boolean = ( EgtGetHeadId( VACUUM_HEAD_2) <> GDB_ID.NULL)
Dim rmData As New RawMoveData Dim rmData As New RawMoveData
If PutVacuumCupsOnRaw(vNewRaws(1), rmData) AndAlso Dim vtMove2 As Vector3d = -vtMove
SafeMoveRawPart(vNewRaws(1), vtMove, dMinMove) Then
VacuumCups.ResetHeadName()
Dim bPutVacuum As Boolean = PutVacuumCupsOnRaw(vNewRaws(1), rmData)
If Not bPutVacuum And bTwoHeadVac Then bPutVacuum= PutVacuumCupsOnRaw(vNewRaws(1), rmData)
If bPutVacuum AndAlso SafeMoveRawPart(vNewRaws(1), vtMove, dMinMove) Then
rmData.m_vtRawMove = vtMove rmData.m_vtRawMove = vtMove
SaveOneMoveInfoInDisposition(nDispId, rmData) SaveOneMoveInfoInDisposition(nDispId, rmData)
Return True Return True
ElseIf PutVacuumCupsOnRaw(vNewRaws(0), rmData) AndAlso End If
SafeMoveRawPart(vNewRaws(0), vtMove2, dMinMove) Then
VacuumCups.ResetHeadName()
Dim bPut2Vacuum As Boolean = PutVacuumCupsOnRaw(vNewRaws(0), rmData)
If Not bPut2Vacuum And bTwoHeadVac Then bPutVacuum = PutVacuumCupsOnRaw(vNewRaws(0), rmData)
If bPut2Vacuum AndAlso SafeMoveRawPart(vNewRaws(0), vtMove2, dMinMove) Then
rmData.m_vtRawMove = vtMove2 rmData.m_vtRawMove = vtMove2
SaveOneMoveInfoInDisposition(nDispId, rmData) SaveOneMoveInfoInDisposition(nDispId, rmData)
Return True Return True
Else
Return False
End If End If
Return False
End Function End Function
Private Function SafeMoveRawPart(nRawId As Integer, ByRef vtMove As Vector3d, dMindist As Double) As Boolean Private Function SafeMoveRawPart(nRawId As Integer, ByRef vtMove As Vector3d, dMindist As Double) As Boolean
+75 -40
View File
@@ -1,5 +1,6 @@
Imports EgtUILib Imports EgtUILib
Imports System.Text.RegularExpressions Imports System.Text.RegularExpressions
Imports System.Threading
Module VacuumCups Module VacuumCups
' Tipo manipolatore con ventosa (0=assente, 1=dietro, 2=laterale) ' Tipo manipolatore con ventosa (0=assente, 1=dietro, 2=laterale)
@@ -31,6 +32,19 @@ Module VacuumCups
' Nome del gruppo temporaneo per le ventose ' Nome del gruppo temporaneo per le ventose
Private Const VACTMP_GRP As String = "VacTmp" Private Const VACTMP_GRP As String = "VacTmp"
Private m_sHeadName As String = VACUUM_HEAD
Public Sub ResetHeadName()
Dim bReload As Boolean = (m_sHeadName <> VACUUM_HEAD)
m_sHeadName = VACUUM_HEAD
If bReload Then LoadVacuumCups()
End Sub
Public Function ChangeHeadName() As Boolean
If EgtGetHeadId( VACUUM_HEAD_2) = GDB_ID.NULL Then Return False
m_sHeadName = If( m_sHeadName = VACUUM_HEAD, VACUUM_HEAD_2, VACUUM_HEAD)
LoadVacuumCups()
Return True
End Function
'----------------------------------------------------------------------------------------------- '-----------------------------------------------------------------------------------------------
Friend Class RawMoveData Friend Class RawMoveData
@@ -87,17 +101,17 @@ Module VacuumCups
Friend Function LoadVacuumCups() As Boolean Friend Function LoadVacuumCups() As Boolean
' Leggo tipo manipolatore con ventosa ' Leggo tipo manipolatore con ventosa
m_nVacType = 0 m_nVacType = 0
EgtGetInfo(EgtGetHeadId(VACUUM_HEAD), KEY_VAC_TYPE, m_nVacType) EgtGetInfo(EgtGetHeadId(m_sHeadName), KEY_VAC_TYPE, m_nVacType)
' Cancello eventuali vecchie ventose ' Cancello eventuali vecchie ventose
RemoveVacuumCups() RemoveVacuumCups()
' Identificativo ventose nella macchina ' Identificativo ventose nella macchina
Dim nLayId As Integer = EgtGetFirstNameInGroup(EgtGetHeadId(VACUUM_HEAD), VACUUM_HEAD_LAYOUT) Dim nLayId As Integer = EgtGetFirstNameInGroup(EgtGetHeadId(m_sHeadName), VACUUM_HEAD_LAYOUT)
If nLayId = GDB_ID.NULL Then Return False If nLayId = GDB_ID.NULL Then Return False
' Identificativo riferimento della testa nella macchina ' Identificativo riferimento della testa nella macchina
Dim nT1Id As Integer = EgtGetFirstNameInGroup(EgtGetHeadId(VACUUM_HEAD), HEAD_FIRST_EXIT) Dim nT1Id As Integer = EgtGetFirstNameInGroup(EgtGetHeadId(m_sHeadName), HEAD_FIRST_EXIT)
If nT1Id = GDB_ID.NULL Then Return False If nT1Id = GDB_ID.NULL Then Return False
' imposto la l'uscita della ventosa come fosse l'uscita di un utensile ' imposto la l'uscita della ventosa come fosse l'uscita di un utensile
EgtSetCalcTool("", "H4", 1) EgtSetCalcTool("", m_sHeadName, 1)
' Creo gruppo temporaneo in cui copiarli ' Creo gruppo temporaneo in cui copiarli
m_nTempId = EgtCreateGroup(GDB_ID.ROOT) m_nTempId = EgtCreateGroup(GDB_ID.ROOT)
If m_nTempId = GDB_ID.NULL Then Return False If m_nTempId = GDB_ID.NULL Then Return False
@@ -107,23 +121,23 @@ Module VacuumCups
m_nVacId = EgtCopyGlob(nLayId, m_nTempId) m_nVacId = EgtCopyGlob(nLayId, m_nTempId)
If m_nVacId = GDB_ID.NULL Then Return False If m_nVacId = GDB_ID.NULL Then Return False
' Angolo di rotazione preferito ' Angolo di rotazione preferito
EgtGetInfo( m_nVacId, KEY_VACLAY_PREFROT, m_dPreferredRot) EgtGetInfo(m_nVacId, KEY_VACLAY_PREFROT, m_dPreferredRot)
' Angoli di rotazione preferiti per ventosa in verticale (lungo Y) a sinistra e a destra del centro tavola ' Angoli di rotazione preferiti per ventosa in verticale (lungo Y) a sinistra e a destra del centro tavola
EgtGetInfo( m_nVacId, KEY_VACLAY_PREFVROTXMINUS, m_dPrefVertRotXMinus) EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTXMINUS, m_dPrefVertRotXMinus)
EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTXPLUS, m_dPrefVertRotXPlus) EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTXPLUS, m_dPrefVertRotXPlus)
EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTYMINUS, m_dPrefVertRotYMinus) EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTYMINUS, m_dPrefVertRotYMinus)
EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTYPLUS, m_dPrefVertRotYPlus) EgtGetInfo(m_nVacId, KEY_VACLAY_PREFVROTYPLUS, m_dPrefVertRotYPlus)
' Direzione di riferimento per tagli Drip ' Direzione di riferimento per tagli Drip
EgtGetInfo( m_nVacId, KEY_VACLAY_DRIPREFDIR, m_dDripRefAng) EgtGetInfo(m_nVacId, KEY_VACLAY_DRIPREFDIR, m_dDripRefAng)
' Nascondo il gruppo ma rendo visibili le curve di contorno delle ventose ' Nascondo il gruppo ma rendo visibili le curve di contorno delle ventose
EgtSetStatus(m_nVacId, GDB_ST.OFF) EgtSetStatus(m_nVacId, GDB_ST.OFF)
Dim nId As Integer = EgtGetFirstInGroup(m_nVacId) Dim nId As Integer = EgtGetFirstInGroup(m_nVacId)
While nId <> GDB_ID.NULL While nId <> GDB_ID.NULL
Select Case EgtGetType(nId) Select Case EgtGetType(nId)
Case GDB_TY.CRV_LINE, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO Case GDB_TY.CRV_LINE, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO
EgtSetStatus(nId, GDB_ST.ON_) EgtSetStatus(nId, GDB_ST.ON_)
Case Else Case Else
EgtSetStatus(nId, GDB_ST.OFF) EgtSetStatus(nId, GDB_ST.OFF)
End Select End Select
nId = EgtGetNext(nId) nId = EgtGetNext(nId)
End While End While
@@ -152,7 +166,7 @@ Module VacuumCups
Friend Function ResetVacuumCups() As Boolean Friend Function ResetVacuumCups() As Boolean
' Ripristino posizione e rotazione originali ' Ripristino posizione e rotazione originali
Dim frOriRef As New Frame3d Dim frOriRef As New Frame3d
EgtFrame(EgtGetFirstNameInGroup(EgtGetHeadId(VACUUM_HEAD), HEAD_FIRST_EXIT), GDB_ID.ROOT, frOriRef) EgtFrame(EgtGetFirstNameInGroup(EgtGetHeadId(m_sHeadName), HEAD_FIRST_EXIT), GDB_ID.ROOT, frOriRef)
Dim frCurrRef As New Frame3d Dim frCurrRef As New Frame3d
EgtFrame(m_nRefId, GDB_ID.ROOT, frCurrRef) EgtFrame(m_nRefId, GDB_ID.ROOT, frCurrRef)
EgtMove(m_nVacId, frOriRef.Orig() - frCurrRef.Orig(), GDB_RT.GLOB) EgtMove(m_nVacId, frOriRef.Orig() - frCurrRef.Orig(), GDB_RT.GLOB)
@@ -164,10 +178,10 @@ Module VacuumCups
Dim nId As Integer = EgtGetFirstInGroup(m_nVacId) Dim nId As Integer = EgtGetFirstInGroup(m_nVacId)
While nId <> GDB_ID.NULL While nId <> GDB_ID.NULL
Select Case EgtGetType(nId) Select Case EgtGetType(nId)
Case GDB_TY.CRV_LINE, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO Case GDB_TY.CRV_LINE, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO
EgtSetStatus(nId, GDB_ST.ON_) EgtSetStatus(nId, GDB_ST.ON_)
Case Else Case Else
EgtSetStatus(nId, GDB_ST.OFF) EgtSetStatus(nId, GDB_ST.OFF)
End Select End Select
nId = EgtGetNext(nId) nId = EgtGetNext(nId)
End While End While
@@ -207,14 +221,17 @@ Module VacuumCups
EgtSurfFrGrossArea(nRKerfId, RawArea) EgtSurfFrGrossArea(nRKerfId, RawArea)
' volume calcolato in mmc ' volume calcolato in mmc
Dim RawVolume As Double = RawArea * b3Raw.DimZ() Dim RawVolume As Double = RawArea * b3Raw.DimZ()
' peso calolato in kg ' peso calcolato in kg
m_RawWeight = RawVolume * m_RawDensity / Math.Pow(10, 9) m_RawWeight = RawVolume * m_RawDensity / Math.Pow(10, 9)
'-------------------- FINE CALCOLO PESO -------------------- '-------------------- FINE CALCOLO PESO --------------------
' Eseguo ricerca ' Eseguo ricerca
If FindVacuumCupsOnRaw(nRawId, ptRawCen, b3Kerf, ptKerfCen, nKerfId, nRKerfId, rmData) Then If FindVacuumCupsOnRaw(nRawId, ptRawCen, b3Kerf, ptKerfCen, nKerfId, nRKerfId, rmData) Then
Return True Return True
Else
If ChangeHeadName() Then Return False
End If End If
' In caso di fallimento, provo riducendo con offset la regione di kerf ' In caso di fallimento, provo riducendo con offset la regione di kerf
' (così si simula la proiezione del centro sul MAT - medial axis transform) ' (così si simula la proiezione del centro sul MAT - medial axis transform)
Dim bOkFind As Boolean = False Dim bOkFind As Boolean = False
@@ -241,20 +258,20 @@ Module VacuumCups
' Verifico sia veramente un pezzo ' Verifico sia veramente un pezzo
If EgtGetRawPartFromPart(nPartId) = GDB_ID.NULL Then Return False If EgtGetRawPartFromPart(nPartId) = GDB_ID.NULL Then Return False
' Cerco la direzione del primo taglio attivo da sotto ' Cerco la direzione del primo taglio attivo da sotto
Dim nDripLayId As Integer = EgtGetFirstNameInGroup( nPartId, NAME_DRIPCUT) Dim nDripLayId As Integer = EgtGetFirstNameInGroup(nPartId, NAME_DRIPCUT)
Dim nDripLineId As Integer = EgtGetFirstInGroup( nDripLayId) Dim nDripLineId As Integer = EgtGetFirstInGroup(nDripLayId)
While nDripLineId <> GDB_ID.NULL While nDripLineId <> GDB_ID.NULL
Dim nMchId As Integer = EgtGetOperationId( "DripSaw" & nDripLineId.ToString()) Dim nMchId As Integer = EgtGetOperationId("DripSaw" & nDripLineId.ToString())
Dim nMode As Integer Dim nMode As Integer
If EgtGetMode( nMchId, nMode) AndAlso nMode = GDB_MD.STD Then Exit While If EgtGetMode(nMchId, nMode) AndAlso nMode = GDB_MD.STD Then Exit While
nDripLineId = EgtGetNext( nDripLineId) nDripLineId = EgtGetNext(nDripLineId)
End While End While
Dim vtDir As New Vector3d Dim vtDir As New Vector3d
if EgtStartVector( nDripLineId, GDB_ID.ROOT, vtDir) Then If EgtStartVector(nDripLineId, GDB_ID.ROOT, vtDir) Then
Dim dLen, dAngV, dAngH As Double Dim dLen, dAngV, dAngH As Double
vtDir.ToSpherical( dLen, dAngV, dAngH) vtDir.ToSpherical(dLen, dAngV, dAngH)
Dim dOffsAng = dAngH - m_dDripRefAng Dim dOffsAng = dAngH - m_dDripRefAng
While dOffsAng - m_dPreferredRot >= 90 While dOffsAng - m_dPreferredRot >= 90
dOffsAng -= 180 dOffsAng -= 180
End While End While
While dOffsAng - m_dPreferredRot <= -90 While dOffsAng - m_dPreferredRot <= -90
@@ -388,7 +405,7 @@ Module VacuumCups
Private Function GetVacRotAxisSteps(ByRef vAngRot As List(Of Double)) As Boolean Private Function GetVacRotAxisSteps(ByRef vAngRot As List(Of Double)) As Boolean
' Recupero l'asse rotante della testa ventosa ' Recupero l'asse rotante della testa ventosa
Dim nRotAxId As Integer = EgtGetParent(EgtGetHeadId(VACUUM_HEAD)) Dim nRotAxId As Integer = EgtGetParent(EgtGetHeadId(m_sHeadName))
' Verifico se contiene info con STEPS ' Verifico se contiene info con STEPS
Dim sSteps As String = "" Dim sSteps As String = ""
If Not EgtGetInfo(nRotAxId, KEY_ROTVAC_STEPS, sSteps) Then Return False If Not EgtGetInfo(nRotAxId, KEY_ROTVAC_STEPS, sSteps) Then Return False
@@ -493,15 +510,15 @@ Module VacuumCups
' Ordino secondo distanza angolare crescente da direzione di allineamento (modulo 180 deg) ' Ordino secondo distanza angolare crescente da direzione di allineamento (modulo 180 deg)
Dim dRotRefDeg As Double = dRotAngDeg Dim dRotRefDeg As Double = dRotAngDeg
vAngRot.Sort(Function(P, Q) vAngRot.Sort(Function(P, Q)
Dim dDiffP = Math.Abs( P - dRotRefDeg) Dim dDiffP = Math.Abs(P - dRotRefDeg)
If Math.Abs( dDiffP - 180) < 10 * EPS_ANG_SMALL Then dDiffP = 1 If Math.Abs(dDiffP - 180) < 10 * EPS_ANG_SMALL Then dDiffP = 1
Dim dDiffQ = Math.Abs( Q - dRotRefDeg) Dim dDiffQ = Math.Abs(Q - dRotRefDeg)
If Math.Abs( dDiffQ - 180) < 10 * EPS_ANG_SMALL Then dDiffQ = 1 If Math.Abs(dDiffQ - 180) < 10 * EPS_ANG_SMALL Then dDiffQ = 1
Return ( dDiffP - dDiffQ) Return (dDiffP - dDiffQ)
End Function) End Function)
' Annullo la rotazione di allineamento ' Annullo la rotazione di allineamento
dRotAngDeg = 0 dRotAngDeg = 0
' altrimenti in continuo ' altrimenti in continuo
Else Else
' Assegno più valori di ricerca e conservo angolo di allineamento ' Assegno più valori di ricerca e conservo angolo di allineamento
vAngRot.AddRange({0, +5, -5, +12.5, -12.5, +25, -25, +45, -45}) vAngRot.AddRange({0, +5, -5, +12.5, -12.5, +25, -25, +45, -45})
@@ -548,25 +565,43 @@ Module VacuumCups
' assegnate le posizioni del centro delle ventose e l'angolo di posizionamento orizzontale verifica che la posizione sia raggiungibile ' assegnate le posizioni del centro delle ventose e l'angolo di posizionamento orizzontale verifica che la posizione sia raggiungibile
Public Function VerifyOutOfStrokes(ptRef As Point3d, dRotAngDeg As Double) As Integer Public Function VerifyOutOfStrokes(ptRef As Point3d, dRotAngDeg As Double) As Integer
Dim sAxisName As String = "C"
' verifico che il nome dell'asse impostato sia corretto
If Not EgtGetAxisId(sAxisName) Then
If m_sHeadName = VACUUM_HEAD Then
sAxisName = "C1"
Else
sAxisName = "C2"
End If
End If
' Posizione Home dell'asse rotante ' Posizione Home dell'asse rotante
Dim dCHome As Double Dim dCHome As Double
EgtGetAxisHomePos("C", dCHome) EgtGetAxisHomePos(sAxisName, dCHome)
' Corse dell'asse ' Corse dell'asse
Dim dCMin As Double Dim dCMin As Double
EgtGetAxisMin("C", dCMin) EgtGetAxisMin(sAxisName, dCMin)
Dim dCMax As Double Dim dCMax As Double
EgtGetAxisMax("C", dCMax) EgtGetAxisMax(sAxisName, dCMax)
' Porto l'angolo nel range ' Porto l'angolo nel range
Dim dRotAngMachDeg As Double = dRotAngDeg + dCHome Dim dRotAngMachDeg As Double = dRotAngDeg + dCHome
AdjustAngleInRange(dRotAngMachDeg, dCMin, dCMax) AdjustAngleInRange(dRotAngMachDeg, dCMin, dCMax)
' Imposto la ventosa come fosse un utensile ' Imposto la ventosa come fosse un utensile
EgtSetCalcTool("", "H4", 1) EgtSetCalcTool("", m_sHeadName, 1)
' Calcolo gli assi macchina ' Calcolo gli assi macchina
Dim dX, dY, dZ As Double Dim dX, dY, dZ As Double
Dim nStat As Integer Dim nStat As Integer
EgtGetCalcPositions(ptRef, dRotAngMachDeg, 0, nStat, dX, dY, dZ) If EgtGetAxisId("A") Then
' Verifico le corse ' Asse tavola rotante (movimenti solo con A0)
EgtVerifyOutstroke(dX, dY, dZ, dRotAngMachDeg, 0, nStat) EgtGetCalcPositions(ptRef, 0, dRotAngMachDeg, nStat, dX, dY, dZ)
' Verifico le corse
EgtVerifyOutstroke(dX, dY, dZ, 0, dRotAngMachDeg, nStat)
Else
EgtGetCalcPositions(ptRef, dRotAngMachDeg, 0, nStat, dX, dY, dZ)
' Verifico le corse
EgtVerifyOutstroke(dX, dY, dZ, dRotAngMachDeg, 0, nStat)
End If
Return nStat Return nStat
End Function End Function
@@ -732,7 +767,7 @@ Module VacuumCups
rmList.RemoveAt(nInd) rmList.RemoveAt(nInd)
nInd = rmList.Count() - 1 nInd = rmList.Count() - 1
End If End If
' Se non trovato, lo accodo ' Se non trovato, lo accodo
Else Else
rmList.Add(New RawMoveData(nRawId)) rmList.Add(New RawMoveData(nRawId))
nInd = rmList.Count() - 1 nInd = rmList.Count() - 1
+5
View File
@@ -84,6 +84,11 @@ Module ConstGen
' Nome testa con ventose per spostamento pezzi ' Nome testa con ventose per spostamento pezzi
Public Const VACUUM_HEAD As String = "H4" Public Const VACUUM_HEAD As String = "H4"
Public Const VACUUM_HEAD_2 As String = "H104"
' Nome teste laser
Public Const LASER_HEAD As String = "H3"
Public Const LASER_HEAD_2 As String = "H103"
' Info tipo ventosa ' Info tipo ventosa
Public Const KEY_VAC_TYPE As String = "VacType" Public Const KEY_VAC_TYPE As String = "VacType"
' Nome gruppo layout in testa con ventose ' Nome gruppo layout in testa con ventose
+5
View File
@@ -5,6 +5,7 @@
Public Const S_PARTPROGRAM As String = "PartProgram" Public Const S_PARTPROGRAM As String = "PartProgram"
Public Const K_EXTENSION As String = "Extension" Public Const K_EXTENSION As String = "Extension"
Public Const K_EXTFILECN As String = "ExtFileCN"
Public Const S_AXES As String = "Axes" Public Const S_AXES As String = "Axes"
Public Const K_AXESNUM As String = "AxesNum" Public Const K_AXESNUM As String = "AxesNum"
@@ -56,6 +57,10 @@
Public Const S_EXECLUA As String = "ExecLua" Public Const S_EXECLUA As String = "ExecLua"
Public Const K_FILESCRIPT_LUA As String = "FileScript" Public Const K_FILESCRIPT_LUA As String = "FileScript"
Public Const S_CAMERAHQ As String = "CameraHQ"
Public Const K_CAMERAHQ_ENABLE As String = "EnableHQ"
Public Const K_CAMERAHQ_ACTIVATE As String = "ActivateHQ"
Public Const S_NCDATA As String = "NcData" Public Const S_NCDATA As String = "NcData"
Public Const K_NEWVARIABLE As String = "NewVariable" Public Const K_NEWVARIABLE As String = "NewVariable"
Public Const K_NEWCONSOLE As String = "NewConsole" Public Const K_NEWCONSOLE As String = "NewConsole"
+10
View File
@@ -54,6 +54,8 @@ Public Class CurrentMachine
Private m_sProdLiSawDiameter2Var As String = "" Private m_sProdLiSawDiameter2Var As String = ""
Private m_sClickState As String = "E80028" Private m_sClickState As String = "E80028"
Private m_sClickDir As String = "" Private m_sClickDir As String = ""
' Gestione speciale per canali CN
Private m_sExtFileCN As String = ".0"
' Numero e tipo di utensili correntemente disponibili sulla macchina ' Numero e tipo di utensili correntemente disponibili sulla macchina
Private m_MountedToolConfig As MountedToolConfigs = MountedToolConfigs.SAW Private m_MountedToolConfig As MountedToolConfigs = MountedToolConfigs.SAW
@@ -339,6 +341,12 @@ Public Class CurrentMachine
End Get End Get
End Property End Property
Friend ReadOnly Property sExtFileCN As String
Get
Return m_sExtFileCN
End Get
End Property
Friend Function sProdLiProbingStateVar(nI As Integer) As String Friend Function sProdLiProbingStateVar(nI As Integer) As String
If nI = 1 Then Return m_sProdLiProbingStateVar If nI = 1 Then Return m_sProdLiProbingStateVar
If nI = 2 Then Return m_sProdLiProbingState2Var If nI = 2 Then Return m_sProdLiProbingState2Var
@@ -1135,6 +1143,8 @@ Public Class CurrentMachine
m_sMachIniFile = m_MainWindow.GetMachinesRootDir & "\" & sMachineName & "\" & sMachineName & ".ini" m_sMachIniFile = m_MainWindow.GetMachinesRootDir & "\" & sMachineName & "\" & sMachineName & ".ini"
' Leggo estensione del file programma pezzo ' Leggo estensione del file programma pezzo
GetPrivateProfileString(S_PARTPROGRAM, K_EXTENSION, "xpi", m_sIsoFileExt, sMachIniFile) GetPrivateProfileString(S_PARTPROGRAM, K_EXTENSION, "xpi", m_sIsoFileExt, sMachIniFile)
' per gestione canali separati (macchina NUM con più di 5 Assi) ver. 2.5g1
GetPrivateProfileString(S_PARTPROGRAM, K_EXTFILECN, ".0", m_sExtFileCN, sMachIniFile)
If m_sIsoFileExt(0) <> "." Then m_sIsoFileExt = "." & m_sIsoFileExt If m_sIsoFileExt(0) <> "." Then m_sIsoFileExt = "." & m_sIsoFileExt
' Leggo flag incremento asse C ' Leggo flag incremento asse C
m_dDeltaC = GetPrivateProfileDouble(S_AXES, K_DELTA_C, 0.0, sMachIniFile) m_dDeltaC = GetPrivateProfileDouble(S_AXES, K_DELTA_C, 0.0, sMachIniFile)
+90 -77
View File
@@ -7,110 +7,123 @@
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="768" d:DesignWidth="1280"> d:DesignHeight="768" d:DesignWidth="1280">
<!-- Definizione della ImportPage --> <!-- Definizione della ImportPage -->
<Border Background="{DynamicResource OmagCut_Gray}" > <Border Background="{DynamicResource OmagCut_Gray}" >
<Grid Name="ImportPageGrid"> <Grid Name="ImportPageGrid">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="7.5*"/> <ColumnDefinition Width="7.5*"/>
<ColumnDefinition Width="1.5*"/> <ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="5*"/> <ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="1.5*"/> <RowDefinition Height="1.5*"/>
<RowDefinition Height="1.5*"/> <RowDefinition Height="1.5*"/>
<RowDefinition Height="1.5*"/> <RowDefinition Height="1.5*"/>
<RowDefinition Height="4.5*"/> <RowDefinition Height="4.5*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<GroupBox Name="CNModeGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.ColumnSpan="2" Margin="0,0,4,0"> <GroupBox Name="CNModeGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.ColumnSpan="2" Margin="0,0,4,0">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1.5*"/> <ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="1.5*"/> <ColumnDefinition Width="1.5*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<ToggleButton Name="AutoBtn" Grid.Column="0" <ToggleButton Name="AutoBtn" Grid.Column="0"
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}" Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
Foreground="White"/> Foreground="White"/>
<ToggleButton Name="ManualBtn" Grid.Column="1" <ToggleButton Name="ManualBtn" Grid.Column="1"
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}" Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
Foreground="White"/> Foreground="White"/>
<ToggleButton Name="MDIBtn" Grid.Column="2" <ToggleButton Name="MDIBtn" Grid.Column="2"
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}" Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
Foreground="White"/> Foreground="White"/>
<ToggleButton Name="SingleBtn" Grid.Column="3" <ToggleButton Name="SingleBtn" Grid.Column="3"
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}" Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
Foreground="White"/> Foreground="White"/>
<ToggleButton Name="HomeBtn" Grid.Column="4" <ToggleButton Name="HomeBtn" Grid.Column="4"
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}" Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
Foreground="White"/> Foreground="White"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
<GroupBox Name="CommandsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.ColumnSpan="2"> <GroupBox Name="CommandsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.ColumnSpan="2">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Button Name="StartBtn" Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> <Button Name="StartBtn" Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
<Button Name="StopBtn" Grid.Column="1" <Button Name="StopBtn" Grid.Column="1"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
<Button Name="ResetBtn" Grid.Column="2" <Button Name="ResetBtn" Grid.Column="2"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
<GroupBox Name="MDICommandGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="1"> <GroupBox Name="MDICommandGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="1">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="6*"/> <ColumnDefinition Width="6*"/>
<ColumnDefinition Width="1.5*"/> <ColumnDefinition Width="1.5*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<EgtWPFLib:EgtTextBox Name="MDITxBx" Margin="10,0,10,0" Style="{DynamicResource OmagCut_MDIKeyboardTextBox}"/> <EgtWPFLib:EgtTextBox Name="MDITxBx" Margin="10,0,10,0" Style="{DynamicResource OmagCut_MDIKeyboardTextBox}"/>
<Button Name="MDIConfirmBtn" Grid.Column="1" <Button Name="MDIConfirmBtn" Grid.Column="1"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
<GroupBox Name="PartProgTransferGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="2" <GroupBox Name="CameraHQ" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<ToggleButton Name="CameraHQBtn" Grid.Column="2"
Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"
Foreground="White"/>
</Grid>
</GroupBox>
<GroupBox Name="PartProgTransferGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="2"
Grid.ColumnSpan="3"> Grid.ColumnSpan="3">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Button Name="DownloadBtn" Grid.Column="0" <Button Name="DownloadBtn" Grid.Column="0"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
<Button Name="UploadBtn" Grid.Column="1" <Button Name="UploadBtn" Grid.Column="1"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
<Button Name="ActivateBtn" Grid.Column="2" <Button Name="ActivateBtn" Grid.Column="2"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
<Button Name="DeleteBtn" Grid.Column="3" <Button Name="DeleteBtn" Grid.Column="3"
Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/> Style="{DynamicResource OmagCut_RightGrayGradientYellowTextButton}"/>
<EgtWPFLib:EgtTextBox Name="DULoadTxBx" Grid.Column="4" Width="100" Text="900.0" <EgtWPFLib:EgtTextBox Name="DULoadTxBx" Grid.Column="4" Width="100" Text="900.0"
Style="{DynamicResource OmagCut_KeyboardTextBox}"/> Style="{DynamicResource OmagCut_KeyboardTextBox}"/>
</Grid> </Grid>
</GroupBox> </GroupBox>
<GroupBox Name="PowerGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="2" <GroupBox Name="PowerGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="2"
Grid.Column="3" Grid.ColumnSpan="3" Margin="5,0,0,0"> Grid.Column="3" Grid.ColumnSpan="3" Margin="5,0,0,0">
@@ -131,18 +144,18 @@
</GroupBox> </GroupBox>
<GroupBox Name="ErrorLstGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="3" Grid.ColumnSpan="4"> <GroupBox Name="ErrorLstGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Row="3" Grid.ColumnSpan="4">
<ListBox Name="ErrorLstBx"> <ListBox Name="ErrorLstBx">
<ListBox.ItemTemplate> <ListBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/> <TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
</DataTemplate> </DataTemplate>
</ListBox.ItemTemplate> </ListBox.ItemTemplate>
</ListBox> </ListBox>
</GroupBox> </GroupBox>
</Grid> </Grid>
</Border> </Border>
</UserControl> </UserControl>
+36
View File
@@ -29,6 +29,7 @@ Public Class MachineCNPageUC
MDICommandGpBx.Header = EgtMsg(MSG_MACHINECNPAGEUC + 16) MDICommandGpBx.Header = EgtMsg(MSG_MACHINECNPAGEUC + 16)
PartProgTransferGpBx.Header = EgtMsg(MSG_MACHINECNPAGEUC + 17) PartProgTransferGpBx.Header = EgtMsg(MSG_MACHINECNPAGEUC + 17)
ErrorLstGpBx.Header = EgtMsg(MSG_ALARMSPAGEUC + 12) ErrorLstGpBx.Header = EgtMsg(MSG_ALARMSPAGEUC + 12)
' Attivo gruppo PartProgTransferGpBx leggendo la variabile nel file ini ' Attivo gruppo PartProgTransferGpBx leggendo la variabile nel file ini
If GetPrivateProfileInt(S_GENERAL, K_TESTINGPAGE, 0, m_MainWindow.GetIniFile()) = 1 Then If GetPrivateProfileInt(S_GENERAL, K_TESTINGPAGE, 0, m_MainWindow.GetIniFile()) = 1 Then
PartProgTransferGpBx.Visibility = Windows.Visibility.Visible PartProgTransferGpBx.Visibility = Windows.Visibility.Visible
@@ -44,6 +45,27 @@ Public Class MachineCNPageUC
Else Else
PowerGpBx.Visibility = Visibility.Collapsed PowerGpBx.Visibility = Visibility.Collapsed
End If End If
' verifico che sia attiva la modalità per l'uso di due fotocamere
If GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ENABLE, 0, m_MainWindow.GetMachIniFile()) = 1 Then
CameraHQ.Header = "Photo on table"
CameraHQBtn.Content = "HQ"
' verifico quale camera è impostata
If GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ACTIVATE, 0, m_MainWindow.GetMachIniFile()) = 1 Then
CameraHQBtn.IsChecked = True
If Not IsNothing(m_MainWindow.m_CadCutPageUC.PhotoIMG) Then
m_MainWindow.m_CadCutPageUC.PhotoIMG.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/icone-tagli-1HQ.png", UriKind.Relative))
End If
Else
CameraHQBtn.IsChecked = False
If Not IsNothing(m_MainWindow.m_CadCutPageUC.PhotoIMG) Then
m_MainWindow.m_CadCutPageUC.PhotoIMG.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/icone-tagli-1.png", UriKind.Relative))
End If
End If
Else
CameraHQ.Visibility = Visibility.Collapsed
End If
End Sub End Sub
Private Sub TestingPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded Private Sub TestingPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
@@ -203,6 +225,20 @@ Public Class MachineCNPageUC
m_CN.DGeneralFunctions_WriteCncMode(8) m_CN.DGeneralFunctions_WriteCncMode(8)
End Sub End Sub
Private Sub CameraHQBtn_Click(sender As Object, e As RoutedEventArgs) Handles CameraHQBtn.Click
Dim sEnableHQ As String = If(CameraHQBtn.IsChecked, "1", "0")
WritePrivateProfileString(S_CAMERAHQ, K_CAMERAHQ_ENABLE, sEnableHQ, m_MainWindow.GetMachIniFile())
If CameraHQBtn.IsChecked Then
If Not IsNothing(m_MainWindow.m_CadCutPageUC.PhotoIMG) Then
m_MainWindow.m_CadCutPageUC.PhotoIMG.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/icone-tagli-1HQ.png", UriKind.Relative))
End If
Else
If Not IsNothing(m_MainWindow.m_CadCutPageUC.PhotoIMG) Then
m_MainWindow.m_CadCutPageUC.PhotoIMG.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("/Resources/NewIcons/icone-tagli-1.png", UriKind.Relative))
End If
End If
End Sub
Private Sub MDITxBx_KeyDown(sender As Object, e As KeyEventArgs) Handles MDITxBx.KeyDown Private Sub MDITxBx_KeyDown(sender As Object, e As KeyEventArgs) Handles MDITxBx.KeyDown
If e.Key = Key.Return Then If e.Key = Key.Return Then
' leggo se stato reset ' leggo se stato reset
+52 -38
View File
@@ -324,13 +324,13 @@ Class MainWindow
Dim sNestKey As String = "" Dim sNestKey As String = ""
EgtUILib.GetPrivateProfileString(S_LICENCE, K_NESTKEY, "", sNestKey, sLicFile) EgtUILib.GetPrivateProfileString(S_LICENCE, K_NESTKEY, "", sNestKey, sLicFile)
EgtSetNestKey(sNestKey) EgtSetNestKey(sNestKey)
Dim bNetHwKey As Boolean = ( GetPrivateProfileInt(S_GENERAL, K_NETKEY, 0, m_sIniFile) = 1) Dim bNetHwKey As Boolean = (GetPrivateProfileInt(S_GENERAL, K_NETKEY, 0, m_sIniFile) = 1)
EgtSetNetHwKey( bNetHwKey) EgtSetNetHwKey(bNetHwKey)
' Verifico abilitazione nesting automatico ' Verifico abilitazione nesting automatico
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey) m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
' Recupero opzioni della chiave ' Recupero opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2506, 1, m_nKeyLevel) And Dim bKey As Boolean = EgtGetKeyLevel(9423, 2507, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2506, 1, m_nKeyOptions) EgtGetKeyOptions(9423, 2507, 1, m_nKeyOptions)
' Verifico abilitazione prodotto ' Verifico abilitazione prodotto
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE) Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
' Inizializzazione generale di EgtInterface ' Inizializzazione generale di EgtInterface
@@ -440,7 +440,7 @@ Class MainWindow
' abilito il bottone per la gestione del comando di Check-Up-Start (posziona lama prelavorazione) ' abilito il bottone per la gestione del comando di Check-Up-Start (posziona lama prelavorazione)
If GetPrivateProfileInt(S_GENERAL, "Test", "0", m_sIniFile) = 0 OrElse If GetPrivateProfileInt(S_GENERAL, "Test", "0", m_sIniFile) = 0 OrElse
Not File.Exists( m_CurrentMachine.sMachDir() & "\DirectCmd\TestWork.lua") Then Not File.Exists(m_CurrentMachine.sMachDir() & "\DirectCmd\TestWork.lua") Then
m_CadCutPageUC.m_ProjectMgr.TestBtn.Visibility = Visibility.Collapsed m_CadCutPageUC.m_ProjectMgr.TestBtn.Visibility = Visibility.Collapsed
Else Else
m_CadCutPageUC.m_ProjectMgr.TestBtn.Visibility = Visibility.Visible m_CadCutPageUC.m_ProjectMgr.TestBtn.Visibility = Visibility.Visible
@@ -554,11 +554,11 @@ Class MainWindow
' è permessa una sola istanza alla volta del programma OmagCUT -> "(1)" : "(" & nIstance.ToString & ")" ' è permessa una sola istanza alla volta del programma OmagCUT -> "(1)" : "(" & nIstance.ToString & ")"
EgtPHOTOLib.MainData.SetUser(Environment.MachineName & "\" & Environment.UserName & " (1)") EgtPHOTOLib.MainData.SetUser(Environment.MachineName & "\" & Environment.UserName & " (1)")
Dim sIdKey As String = String.Empty Dim sIdKey As String = String.Empty
EgtGetKeyInfo(sIdKey) EgtGetKeyInfo(sIdKey)
EgtPHOTOLib.MainData.SetKey(sIdKey) EgtPHOTOLib.MainData.SetKey(sIdKey)
End If
End If End If
End If
End If End If
' --------------------------------- SLAB DB ------------------------------------------------------- ' --------------------------------- SLAB DB -------------------------------------------------------
ExitBtn.ToolTip = "Exit" & vbCrLf & "Minimize (Shift)" ExitBtn.ToolTip = "Exit" & vbCrLf & "Minimize (Shift)"
@@ -998,6 +998,16 @@ Class MainWindow
' Se già visualizzato errore, lo nascondo ' Se già visualizzato errore, lo nascondo
If m_CurrentProjectPageUC.OutMessageBrd.IsMouseOver Then If m_CurrentProjectPageUC.OutMessageBrd.IsMouseOver Then
m_CurrentProjectPageUC.ClearMessage() m_CurrentProjectPageUC.ClearMessage()
' se è premuto il pulsante Shift allora provvedo ad aprire il file di Log
If Keyboard.Modifiers And ModifierKeys.Shift Then
' Genero file CNC (lancio anche se errore in precedenza)
Dim sTemoDirect As String = GetTempDir() & "\OmagCUTLog.txt"
Try
Process.Start("Notepad.exe", sTemoDirect)
Catch ex As Exception
EgtOutLog(ex.ToString)
End Try
End If
End If End If
' Condizioni che impediscono di clickare fuori dalla calcolatrice o tastiera quando una di queste è aperta ' Condizioni che impediscono di clickare fuori dalla calcolatrice o tastiera quando una di queste è aperta
If EgtWPFLib.EgtCalculator.GetbIsActive Then If EgtWPFLib.EgtCalculator.GetbIsActive Then
@@ -1088,9 +1098,9 @@ Class MainWindow
m_CurrentProjectPageUC.SaveNamedProject() m_CurrentProjectPageUC.SaveNamedProject()
m_CurrentProjectPageUC.SaveProject() m_CurrentProjectPageUC.SaveProject()
End If End If
' Inizio la chiusura del programma (verifico di aver terminato il processo DripFeed) ' Inizio la chiusura del programma (se NUM_OLD verifico di aver terminato il processo DripFeed)
EgtOutLog("Iniziato processo di chiusura programma") EgtOutLog("Iniziato processo di chiusura programma")
m_IsClosingApplication = 1 m_IsClosingApplication = If( m_CNCommunication.m_nNCType = 1, 1, 2)
Dim nCount As Integer = 0 Dim nCount As Integer = 0
While m_IsClosingApplication <> 2 While m_IsClosingApplication <> 2
If nCount > 5 Then If nCount > 5 Then
@@ -1217,7 +1227,7 @@ Class MainWindow
Private Sub MainWindow_ContentRendered(sender As Object, e As EventArgs) Handles Me.ContentRendered Private Sub MainWindow_ContentRendered(sender As Object, e As EventArgs) Handles Me.ContentRendered
' Verifico presenza del collegamento al CN ' Verifico presenza del collegamento al CN
m_bNCLink = (GetPrivateProfileInt(S_GENERAL, K_CNLINK, 0, m_sIniFile) <> 0) And m_bNCLink = (GetPrivateProfileInt(S_GENERAL, K_CNLINK, 0, m_sIniFile) <> 0) And
Not GetKeyOption( KEY_OPT.OFFICE_TYPE) Not GetKeyOption(KEY_OPT.OFFICE_TYPE)
m_CNCommunication.CNCommunication_Initialization() m_CNCommunication.CNCommunication_Initialization()
' Se linea di produzione abilitata e collegata, lancio relativo timer ' Se linea di produzione abilitata e collegata, lancio relativo timer
If m_bNCLink And m_CurrentMachine.bProdLine Then If m_bNCLink And m_CurrentMachine.bProdLine Then
@@ -1294,7 +1304,9 @@ Class MainWindow
m_CNCommunication.m_CN.ReadEls_Add_Parameter(m_CurrentMachine.sVarProjFinished, 1) m_CNCommunication.m_CN.ReadEls_Add_Parameter(m_CurrentMachine.sVarProjFinished, 1)
Dim nVarFin As Integer = 0 Dim nVarFin As Integer = 0
For I As Integer = 1 To 4 For I As Integer = 1 To 4
System.Threading.Thread.Sleep(50) If Not m_CurrentMachine.bDemo Then
System.Threading.Thread.Sleep(50)
End If
If m_CNCommunication.m_CN.n_DReadELS_handle = 1 Then If m_CNCommunication.m_CN.n_DReadELS_handle = 1 Then
nVarFin = CInt(m_CNCommunication.m_CN.d_DReadELS_value) nVarFin = CInt(m_CNCommunication.m_CN.d_DReadELS_value)
Exit For Exit For
@@ -1307,11 +1319,11 @@ Class MainWindow
' Salvo in INI indice del progetto terminato ' Salvo in INI indice del progetto terminato
WritePrivateProfileString(S_GENERAL, K_LASTPROJFINISHED, nVarFin.ToString("D4"), GetIniFile()) WritePrivateProfileString(S_GENERAL, K_LASTPROJFINISHED, nVarFin.ToString("D4"), GetIniFile())
' Salvo in INI data e ora attuali di termine lavorazione del progetto (solo gli ultimi 10 tramite modulo) ' Salvo in INI data e ora attuali di termine lavorazione del progetto (solo gli ultimi 10 tramite modulo)
Dim sKey As String = K_DATETIMEFINISHED & "." & ( nVarFin Mod 10).ToString() Dim sKey As String = K_DATETIMEFINISHED & "." & (nVarFin Mod 10).ToString()
Dim sDateTime As String = My.Computer.Clock.LocalTime.ToString("dd.MM.yyyy HH\:mm\:ss") Dim sDateTime As String = My.Computer.Clock.LocalTime.ToString("dd.MM.yyyy HH\:mm\:ss")
WritePrivateProfileString(S_GENERAL, sKey, sDateTime, GetIniFile()) WritePrivateProfileString(S_GENERAL, sKey, sDateTime, GetIniFile())
' Eseguo script ' Eseguo script
ExecFinishedProgScript( nVarFin, sDateTime) ExecFinishedProgScript(nVarFin, sDateTime)
End If End If
End If End If
' Se OmagVIEW blocca, esco (riproverò al prossimo giro) ' Se OmagVIEW blocca, esco (riproverò al prossimo giro)
@@ -1347,16 +1359,18 @@ Class MainWindow
' Se richieste modalità standard o speciali ' Se richieste modalità standard o speciali
If m_CurrentMachine.nSaveProduced <> 3 Then If m_CurrentMachine.nSaveProduced <> 3 Then
StandardAndSpecialViewFileManagement() StandardAndSpecialViewFileManagement()
' altrimenti modalità custom ' altrimenti modalità custom
Else Else
CustomViewFileManagement( nProjInd) CustomViewFileManagement(nProjInd)
End If End If
' Leggo variabile con indice progetto da copiare per OmagVIEW (standard E80025) ' Leggo variabile con indice progetto da copiare per OmagVIEW (standard E80025)
m_CNCommunication.m_CN.n_DReadELS_handle = 0 m_CNCommunication.m_CN.n_DReadELS_handle = 0
m_CNCommunication.m_CN.ReadEls_Add_Parameter(m_CurrentMachine.sVarProjCopy, 1) m_CNCommunication.m_CN.ReadEls_Add_Parameter(m_CurrentMachine.sVarProjCopy, 1)
Dim nVarCopy As Integer = 0 Dim nVarCopy As Integer = 0
For I As Integer = 1 To 10 For I As Integer = 1 To 10
System.Threading.Thread.Sleep(50) If Not m_CurrentMachine.bDemo Then
System.Threading.Thread.Sleep(50)
End If
If m_CNCommunication.m_CN.n_DReadELS_handle = 1 Then If m_CNCommunication.m_CN.n_DReadELS_handle = 1 Then
nVarCopy = CInt(m_CNCommunication.m_CN.d_DReadELS_value) nVarCopy = CInt(m_CNCommunication.m_CN.d_DReadELS_value)
Exit For Exit For
@@ -1557,7 +1571,7 @@ Class MainWindow
nNewProjInd -= 1 nNewProjInd -= 1
End While End While
End If End If
' se altrimenti richiesto progetto successivo ' se altrimenti richiesto progetto successivo
ElseIf nMove > 0 Then ElseIf nMove > 0 Then
nNewProjInd = nProjInd + 1 nNewProjInd = nProjInd + 1
If nProjInd > nLastProj Then If nProjInd > nLastProj Then
@@ -1658,7 +1672,7 @@ Class MainWindow
Catch ex As Exception Catch ex As Exception
EgtOutLog("Error erasing " & sDestEplFile) EgtOutLog("Error erasing " & sDestEplFile)
End Try End Try
' altrimenti, ogni commessa ha il suo file dei pezzi rovinati ' altrimenti, ogni commessa ha il suo file dei pezzi rovinati
Else Else
' Sposto nel direttorio temporaneo ' Sposto nel direttorio temporaneo
Dim sDestEplFile = m_sTempDir & "\" & CURR_PROJ_EPL Dim sDestEplFile = m_sTempDir & "\" & CURR_PROJ_EPL
@@ -1768,7 +1782,7 @@ Class MainWindow
Return True Return True
End Function End Function
Private Function CustomViewFileManagement( nProjInd As Integer) As Boolean Private Function CustomViewFileManagement(nProjInd As Integer) As Boolean
' Se non esiste file EPL, esco ' Se non esiste file EPL, esco
Dim sSouEplFile As String = m_CurrentMachine.sLineDataDir & "\" & CURR_PROJ_EPL Dim sSouEplFile As String = m_CurrentMachine.sLineDataDir & "\" & CURR_PROJ_EPL
If Not My.Computer.FileSystem.FileExists(sSouEplFile) Then Return True If Not My.Computer.FileSystem.FileExists(sSouEplFile) Then Return True
@@ -1807,7 +1821,7 @@ Class MainWindow
' Verifico progetto restituito da View ' Verifico progetto restituito da View
If nProjInd = 0 Then nProjInd = nLastCopy If nProjInd = 0 Then nProjInd = nLastCopy
' Leggo variabile con data termine lavorazione ' Leggo variabile con data termine lavorazione
Dim sKey As String = K_DATETIMEFINISHED & "." & ( nProjInd Mod 10).ToString() Dim sKey As String = K_DATETIMEFINISHED & "." & (nProjInd Mod 10).ToString()
GetPrivateProfileString(S_GENERAL, sKey, sDateTime, sDateTime, GetIniFile()) GetPrivateProfileString(S_GENERAL, sKey, sDateTime, sDateTime, GetIniFile())
' Recupero direttorio per pezzi rovinati ' Recupero direttorio per pezzi rovinati
Dim sRuPartsDir As String = GetRuinedPartsDir() Dim sRuPartsDir As String = GetRuinedPartsDir()
@@ -1834,7 +1848,7 @@ Class MainWindow
Return True Return True
End Function End Function
Friend Function ExecSentProgScript( bDirectCut As Boolean, Optional bAlreadySent As Boolean = False) As Boolean Friend Function ExecSentProgScript(bDirectCut As Boolean, Optional bAlreadySent As Boolean = False) As Boolean
' Verifico esistenza script ' Verifico esistenza script
Dim sLuaPath As String = m_CurrentMachine.sMachDir() & "\Scripts\SentProg.lua" Dim sLuaPath As String = m_CurrentMachine.sMachDir() & "\Scripts\SentProg.lua"
If Not My.Computer.FileSystem.FileExists(sLuaPath) Then Return True If Not My.Computer.FileSystem.FileExists(sLuaPath) Then Return True
@@ -1853,8 +1867,8 @@ Class MainWindow
End If End If
EgtLuaResetGlobVar("SPS") EgtLuaResetGlobVar("SPS")
If nErr <> 0 Then If nErr <> 0 Then
EgtOutLog("Error in SentProg : " & nErr.ToString()) EgtOutLog("Error in SentProg : " & nErr.ToString())
m_CurrentProjectPageUC.SetErrorMessage(EgtMsg(90325)) 'Errore nel salvataggio delle statistiche m_CurrentProjectPageUC.SetErrorMessage(EgtMsg(90325)) 'Errore nel salvataggio delle statistiche
End If End If
Return (nErr = 0) Return (nErr = 0)
End Function End Function
@@ -1936,15 +1950,15 @@ Class MainWindow
End If End If
' Dichiaro progetto passato da View ' Dichiaro progetto passato da View
If nProjInd = m_CurrentProjectPageUC.GetCurrentProject() Then If nProjInd = m_CurrentProjectPageUC.GetCurrentProject() Then
EgtSetInfo( EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_UNLOADSAVED, 1) EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_UNLOADSAVED, 1)
Else Else
Dim nTmpCtx As Integer = EgtInitContext() Dim nTmpCtx As Integer = EgtInitContext()
If nTmpCtx <> 0 Then If nTmpCtx <> 0 Then
Dim sNgeFile As String = GetSaveDir() & "\" & nProjInd.ToString("D4") & ".nge" Dim sNgeFile As String = GetSaveDir() & "\" & nProjInd.ToString("D4") & ".nge"
EgtOpenFile( sNgeFile) EgtOpenFile(sNgeFile)
EgtSetInfo( EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_UNLOADSAVED, 1) EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), INFO_UNLOADSAVED, 1)
EgtSaveFile( sNgeFile, NGE.CMPTEXT) EgtSaveFile(sNgeFile, NGE.CMPTEXT)
EgtDeleteContext( nTmpCtx) EgtDeleteContext(nTmpCtx)
EgtSetCurrentContext(m_CurrentProjectPageUC.CurrentProjectScene.GetCtx()) EgtSetCurrentContext(m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
End If End If
End If End If
@@ -1978,21 +1992,21 @@ Class MainWindow
' Evento che apre AboutBox quando viene clickato il logo ' Evento che apre AboutBox quando viene clickato il logo
Private Sub LogoBrd_MouseDown(sender As Object, e As MouseButtonEventArgs) Handles LogoBrd.MouseDown Private Sub LogoBrd_MouseDown(sender As Object, e As MouseButtonEventArgs) Handles LogoBrd.MouseDown
' Se non premuto Shift -> AboutBox ' Se non premuto Shift -> AboutBox
If ( Keyboard.Modifiers And ModifierKeys.Shift) = 0 Then If (Keyboard.Modifiers And ModifierKeys.Shift) = 0 Then
Dim AboutBox As New AboutBoxWD( Me) Dim AboutBox As New AboutBoxWD(Me)
' Altrimenti lancio cambio macchina (solo uso interno) ' Altrimenti lancio cambio macchina (solo uso interno)
Else Else
If m_ActivePage = Pages.CadCut Or m_ActivePage = Pages.FrameCut Then If m_ActivePage = Pages.CadCut Or m_ActivePage = Pages.FrameCut Then
' Cambio macchina ' Cambio macchina
EgtLuaCreateGlobTable( "CHM") EgtLuaCreateGlobTable("CHM")
EgtLuaExecFile( GetConfigDir() & "\ChangeMachine.lua") EgtLuaExecFile(GetConfigDir() & "\ChangeMachine.lua")
Dim nRestart As Integer = 0 Dim nRestart As Integer = 0
EgtLuaGetGlobIntVar( "CHM.RESTART", nRestart) EgtLuaGetGlobIntVar("CHM.RESTART", nRestart)
EgtLuaResetGlobVar( "CHM") EgtLuaResetGlobVar("CHM")
' Riavvio ' Riavvio
If nRestart = 1 Then If nRestart = 1 Then
Close() Close()
Process.Start( Application.ResourceAssembly.Location) Process.Start(Application.ResourceAssembly.Location)
End If End If
End If End If
End If End If
+2 -2
View File
@@ -62,5 +62,5 @@ Imports System.Windows
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.5.6.2")> <Assembly: AssemblyVersion("2.5.7.2")>
<Assembly: AssemblyFileVersion("2.5.6.2")> <Assembly: AssemblyFileVersion("2.5.7.2")>
+5 -2
View File
@@ -515,7 +515,9 @@ Public Class CNCommunication
If nClickState = 1 Then If nClickState = 1 Then
' procedo a costruire un nuovo file nella cartella indicata in configurazione ' procedo a costruire un nuovo file nella cartella indicata in configurazione
Try Try
File.Create(m_MainWindow.m_CurrentMachine.sClickDir & "\NewClick.txt") Dim fs As FileStream = File.Create(m_MainWindow.m_CurrentMachine.sClickDir & "\NewClick.txt")
' chiudo il file creato
fs.Close()
' Dichiaro di aver provveduto a comunicare di scattare la foto ' Dichiaro di aver provveduto a comunicare di scattare la foto
m_CN.DVariables_WriteVariables2(m_MainWindow.m_CurrentMachine.sClickState, "0") m_CN.DVariables_WriteVariables2(m_MainWindow.m_CurrentMachine.sClickState, "0")
Catch ex As Exception Catch ex As Exception
@@ -1165,7 +1167,8 @@ Public Class CNCommunication
bOk = (m_nNCType > 0) bOk = (m_nNCType > 0)
Dim sNumProg As String = String.Empty Dim sNumProg As String = String.Empty
If m_nNCType = 1 Or m_nNCType = 2 Then If m_nNCType = 1 Or m_nNCType = 2 Then
sNumProg = "%" & nNumProg.ToString() & ".0" Dim sExtFileCN As String = m_MainWindow.m_CurrentMachine.sExtFileCN
sNumProg = "%" & nNumProg.ToString() & sExtFileCN
Else Else
sNumProg = nNumProg.ToString() sNumProg = nNumProg.ToString()
End If End If
+1 -1
View File
@@ -144,7 +144,7 @@ Public Class CN_Siemens
End Select End Select
Else Else
' per verificare che la comunicazione funzioni correttamente ' per verificare che la comunicazione funzioni correttamente
EgtOutLog("Modo -read_active_mode-: " & M_MMFiles.SiemensRet.n_param2.ToString) ' EgtOutLog("Modo -read_active_mode-: " & M_MMFiles.SiemensRet.n_param2.ToString)
Return M_MMFiles.read_active_mode() Return M_MMFiles.read_active_mode()
'Return CShort(M_MMFiles.SiemensRet.n_param2) 'Return CShort(M_MMFiles.SiemensRet.n_param2)
End If End If
+6
View File
@@ -1340,6 +1340,12 @@
<ItemGroup> <ItemGroup>
<Resource Include="Resources\NewIcons\RefTab.png" /> <Resource Include="Resources\NewIcons\RefTab.png" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Resource Include="Resources\PhotoHQ.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\icone-tagli-1HQ.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup> <PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe <PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
+2 -1
View File
@@ -1400,7 +1400,8 @@ Public Class CurrentProjectPageUC
Friend Sub ClearMessage() Friend Sub ClearMessage()
OutMessageBrd.Background = Brushes.Transparent OutMessageBrd.Background = Brushes.Transparent
OutMessageBrd.Visibility = Windows.Visibility.Hidden OutMessageTxBl.Text = ""
'OutMessageBrd.Visibility = Windows.Visibility.Hidden
End Sub End Sub
End Class End Class
+6
View File
@@ -205,6 +205,12 @@ Public Class Camera
Dim nInd As Integer = 1 Dim nInd As Integer = 1
If m_nCameraCount = 2 Then If m_nCameraCount = 2 Then
nInd = GetCurrentTable() nInd = GetCurrentTable()
' verifico se la macchina è configurata per fotocamera sulla tavola di lavoro
If (GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ENABLE, 0, m_MainWindow.GetMachIniFile()) <> 0) AndAlso
(GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ACTIVATE, 0, m_MainWindow.GetMachIniFile()) <> 0) Then
' forzo l'utilizzo della seconda camera (sopra alla tavola di lavoro)
nInd = 2
End If
If nInd <> 1 And nInd <> 2 Then Return 0 If nInd <> 1 And nInd <> 2 Then Return 0
End If End If
' Se gestore macchina non attivo, lo lancio in modo cieco ' Se gestore macchina non attivo, lo lancio in modo cieco
+7 -1
View File
@@ -1420,7 +1420,7 @@ Public Class RawPartPageUC
Dim nExit As Integer = 0 Dim nExit As Integer = 0
EgtGetCalcTool(sTool, sHead, nExit) EgtGetCalcTool(sTool, sHead, nExit)
' Imposto come testa corrente il laser (senza utensile ovviamente) ' Imposto come testa corrente il laser (senza utensile ovviamente)
If Not EgtSetCalcTool("", "H3", 1) Then If Not EgtSetCalcTool("", LASER_HEAD, 1) Then
Return False Return False
End If End If
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
@@ -1432,6 +1432,10 @@ Public Class RawPartPageUC
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
ptAcquired = ptTipP1 ptAcquired = ptTipP1
ptAcquired.ToLoc(New Frame3d(m_ptTableMin)) ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
EgtOutLog("Actual axis laser H3: L1=" & dL1.ToString & ", L2=" & dL2.ToString & ", L3=" & dL3.ToString &
", R1=" & dR1.ToString & ", R2=" & dR2.ToString)
EgtOutLog("Actual pos laser H3: " & ptTipP1.x.ToString & "," & ptTipP1.y.ToString & "," & ptTipP1.z.ToString &
"; on table: " & ptAcquired.x.ToString & "," & ptAcquired.y.ToString & "," & ptAcquired.z.ToString)
Return True Return True
End Function End Function
@@ -1449,6 +1453,8 @@ Public Class RawPartPageUC
EgtGetCalcTool(sTool, sHead, nExit) EgtGetCalcTool(sTool, sHead, nExit)
' Trasformo in posizione punta utensile in basso ' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, ptTipP1) Then If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, ptTipP1) Then
EgtOutLog("Actual pos " & sHead & ": L1=" & dL1.ToString & ", L2=" & dL2.ToString & ", L3=" & dL3.ToString &
", R1=" & dR1.ToString & ", R2=" & dR2.ToString)
Return False Return False
End If End If
' Porto il tip nell'origine tavola ' Porto il tip nell'origine tavola
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB