From 0a8dbb3557a1f1bb67eb932513bcdbcaa2fc5255 Mon Sep 17 00:00:00 2001 From: NicolaP Date: Fri, 8 Apr 2022 15:04:21 +0200 Subject: [PATCH] Abilitata la lettura degli angoli preferenziali per extra corsa Y ventose --- CadCuts/MoveRawPartPage.xaml.vb | 1 + CadCuts/VacuumCups.vb | 21 ++++++++++++++++----- Constants/ConstGen.vb | 2 ++ Constants/ConstMachIni.vb | 1 + 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/CadCuts/MoveRawPartPage.xaml.vb b/CadCuts/MoveRawPartPage.xaml.vb index 5aa71af..71a3f43 100644 --- a/CadCuts/MoveRawPartPage.xaml.vb +++ b/CadCuts/MoveRawPartPage.xaml.vb @@ -248,6 +248,7 @@ Public Class MoveRawPartPage Dim AverageDensity As Double = 2700 AverageDensity = GetPrivateProfileDouble(S_MATERIALS, K_AVERAGEDENSITY, AverageDensity, m_MainWindow.GetMachIniFile()) VacuumCups.GetWeightInformation(AverageDensity, MaxSinglePlugger, MaxDoublePlugger) + VacuumCups.GetRotationForExtraStrokeY(GetPrivateProfileInt(S_MACH_RAWMOVE, K_MACH_ROTATEVACUUMFOREXTRASTROKEY, 0, m_MainWindow.GetMachIniFile()) <> 0) If PutVacuumCupsOnRaw(nId, rmData) Then ' Visualizzo le ventose EgtSetStatus(GetVacuumId(), GDB_ST.ON_) diff --git a/CadCuts/VacuumCups.vb b/CadCuts/VacuumCups.vb index 5b96804..bef628b 100644 --- a/CadCuts/VacuumCups.vb +++ b/CadCuts/VacuumCups.vb @@ -10,6 +10,8 @@ Module VacuumCups Private m_dPreferredRot As Double = 0 Private m_dPrefVertRotXMinus As Double = 0 Private m_dPrefVertRotXPlus As Double = 0 + Private m_dPrefVertRotYMinus As Double = 0 + Private m_dPrefVertRotYPlus As Double = 0 Private m_dDripRefAng As Double = 0 ' dati carico massimo manipolatore Private m_RawDensity As Double = 2500 @@ -17,6 +19,8 @@ Module VacuumCups Private m_MaxWeightSinglePlugger As Double = 250 Private m_MaxWeightDoublePlugger As Double = 750 Public bOverWeight As Boolean = False + ' dati per rotazione ventose vicono al fine corsa Y + Private bRotateVacuumNearExtraStrokeY As Boolean = False ' Nome del gruppo temporaneo per le ventose Private Const VACTMP_GRP As String = "VacTmp" @@ -56,12 +60,17 @@ Module VacuumCups Return m_nVacType End Function + ' carico i dati macchina relativi al peso massimo movimentabile Friend Sub GetWeightInformation(Density As Double, MaxSingle As Double, MaxDouble As Double) m_RawDensity = Density m_MaxWeightSinglePlugger = MaxSingle m_MaxWeightDoublePlugger = MaxDouble End Sub + Friend Sub GetRotationForExtraStrokeY(Rotate As Boolean) + bRotateVacuumNearExtraStrokeY = Rotate + End Sub + Friend Function GetVacuumId() As Integer Return m_nVacId End Function @@ -90,7 +99,9 @@ Module VacuumCups 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 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_PREFVROTYPLUS, m_dPrefVertRotYPlus) ' Direzione di riferimento per tagli Drip EgtGetInfo( m_nVacId, KEY_VACLAY_DRIPREFDIR, m_dDripRefAng) ' Nascondo il gruppo ma rendo visibili le curve di contorno delle ventose @@ -433,12 +444,12 @@ Module VacuumCups Else dPreferredRot = m_dPrefVertRotXPlus End If - ElseIf Math.Abs(dRotAngDeg - 90) > 45 Or Math.Abs(dRotAngDeg - 270) > 45 Then - ' se l'orientemanto è orizzontale + ElseIf bRotateVacuumNearExtraStrokeY And (Math.Abs(dRotAngDeg - 90) > 45 Or Math.Abs(dRotAngDeg - 270) > 45) Then + ' se l'orientemanto è orizzontale e la macchina è stata abilitata If frMinRect.Orig().y < b3Tab.Center().y Then - dPreferredRot = m_dPrefVertRotXMinus + dPreferredRot = m_dPrefVertRotYPlus Else - dPreferredRot = m_dPrefVertRotXPlus + dPreferredRot = m_dPrefVertRotYMinus End If End If Dim dAngDelta As Double = If( Math.Abs( b3Vac.DimY() - b3Vac.DimX()) < 10 * EPS_SMALL, 90, 180) diff --git a/Constants/ConstGen.vb b/Constants/ConstGen.vb index f40dcae..962945b 100644 --- a/Constants/ConstGen.vb +++ b/Constants/ConstGen.vb @@ -94,6 +94,8 @@ Module ConstGen Public Const KEY_VACLAY_PREFROT As String = "PreferredRot" Public Const KEY_VACLAY_PREFVROTXMINUS As String = "PrefVertRotXMinus" Public Const KEY_VACLAY_PREFVROTXPLUS As String = "PrefVertRotXPlus" + Public Const KEY_VACLAY_PREFVROTYMINUS As String = "PrefVertRotYMinus" + Public Const KEY_VACLAY_PREFVROTYPLUS As String = "PrefVertRotYPlus" ' Info in gruppo layout per direzione di riferimento ventose per tagli da sotto Public Const KEY_VACLAY_DRIPREFDIR As String = "DripRefDir" ' Info in asse rotante ventosa per step discreti diff --git a/Constants/ConstMachIni.vb b/Constants/ConstMachIni.vb index 1f35d62..bee14ac 100644 --- a/Constants/ConstMachIni.vb +++ b/Constants/ConstMachIni.vb @@ -230,6 +230,7 @@ Public Const K_MACH_RM_FINALMOVE As String = "FinalMove" Public Const K_MACH_WEIGHT_SINGLEPLUGGER As String = "MaxWeightSinglePlugger" Public Const K_MACH_WEIGHT_DOUBLEPLUGGER As String = "MaxWeightDoublePlugger" + Public Const K_MACH_ROTATEVACUUMFOREXTRASTROKEY As String = "RotateVacuumForExtraStrokeY" Public Const S_MACH_REG As String = "Reg" Public Const K_MACH_MAX_ROT_ANG As String = "MaxRotAng"