OmagCUT :

- estesa gestione scarico pezzi
- aggiunta gestione flag attivo (0/1) a Angoli di Lato da Colore
- in simulazione si visualizzano anche gli errori custom generati dagli script lua
- in split page per il calcolo dei tagli dei grezzi si tiene conto solo dei tagli dei contorni esterni o interni
- migliorato orientamento ventose quando rotazione è a step.
This commit is contained in:
Dario Sassi
2019-06-11 17:36:52 +00:00
parent 83f761d713
commit 1089f154bd
9 changed files with 30 additions and 7 deletions
+13 -1
View File
@@ -472,11 +472,23 @@ Public Class MoveRawPartPage
' Recupero il primo grezzo selezionato
Dim nRawId As Integer = EgtGetFirstSelectedObj()
If nRawId = GDB_ID.NULL Then Return
' Recupero la posizione del riferimento TL (4)
' Recupero la posizione e il tipo corner del riferimento TL (4)
Dim nRefId As Integer = EgtGetFirstNameInGroup(EgtGetFirstNameInGroup(m_nAuxTabId, "SOLID"), sRef)
If nRefId = GDB_ID.NULL Then Return
Dim ptRef As Point3d
If Not EgtGetInfo(nRefId, "Pos", ptRef) Then Return
Dim sCorn As String = ""
EgtGetInfo( nRefId, "COR", sCorn)
Select sCorn
Case "TL"
nCorn = MCH_CR.TL
Case "TR"
nCorn = MCH_CR.TR
Case "BL"
nCorn = MCH_CR.BL
Case "BR"
nCorn = MCH_CR.BR
End Select
' Recupero il centro del grezzo
Dim ptRawCen As Point3d
EgtGetRawPartCenter(nRawId, ptRawCen)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

+5 -2
View File
@@ -243,6 +243,7 @@ Module SideAngle
'--------------------------------------------------------------------------------------------------
Friend Class ColorSideAngs
Class CTSA
Friend m_bOk As Boolean
Friend m_R As Integer
Friend m_G As Integer
Friend m_B As Integer
@@ -271,7 +272,8 @@ Module SideAngle
Dim sVal As String = String.Empty
GetPrivateProfileString(sSect, sKey, "", sVal, sIniFile)
Dim sItems() As String = sVal.Split(",".ToCharArray)
If sItems.Count() = 5 Then
OneCtsa.m_bOk = If( sItems.Count() = 6, ( sItems(5).Trim() <> "0"), True)
If sItems.Count() >= 5 Then
StringToInt( sItems(0), OneCtsa.m_R)
StringToInt( sItems(1), OneCtsa.m_G)
StringToInt( sItems(2), OneCtsa.m_B)
@@ -284,7 +286,8 @@ Module SideAngle
Friend Function GetSideAngHeel( cCol As Color3d, ByRef dAng As Double, ByRef dHeel As Double) As Boolean
For Each Ctsa In m_ListCtsa
If Math.Abs( cCol.R - Ctsa.m_R) < m_nTol And
If Ctsa.m_bOk And
Math.Abs( cCol.R - Ctsa.m_R) < m_nTol And
Math.Abs( cCol.G - Ctsa.m_G) < m_nTol And
Math.Abs( cCol.B - Ctsa.m_B) < m_nTol Then
dAng = Ctsa.m_dAng
+6 -1
View File
@@ -297,7 +297,12 @@ Public Class SimulationPageUC
Case MCH_SIM.DIR_ERR
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_SIMULATIONPAGEUC + 3)) 'Direzione utensile irraggiungibile
Case Else
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_SIMULATIONPAGEUC + 4)) 'Errore
If EgtGetLastMachMgrErrorId() <> 0 Then
Dim sErr As String = EgtGetLastMachMgrErrorString()
m_CurrProjPage.SetErrorMessage(sErr)
Else
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_SIMULATIONPAGEUC + 4)) 'Errore
End If
End Select
End If
' Aggiorno stato visualizzazione macchina (dipende anche da utensile)
+2 -1
View File
@@ -940,7 +940,8 @@ Public Class SplitPageUC
' Determino l'elenco dei tagli abilitati
Dim MyCuts As New List(Of Integer)
For nI As Integer = 0 To m_MachiningList.Count() - 1
If m_MachiningList(nI).m_bEnabled Then
If m_MachiningList(nI).m_bEnabled And
( m_MachiningList(nI).m_sLay = NAME_OUTLOOP Or m_MachiningList(nI).m_sLay = NAME_INLOOP) Then
MyCuts.Add(m_MachiningList(nI).m_nId)
End If
Next
+4 -2
View File
@@ -371,8 +371,10 @@ Module VacuumCups
' Ordino secondo distanza angolare crescente da direzione di allineamento (modulo 180 deg)
Dim dRotRefDeg As Double = dRotAngDeg
vAngRot.Sort(Function(P, Q)
Dim dDiffP = Math.Abs(( P - dRotRefDeg) Mod 180)
Dim dDiffQ = Math.Abs(( Q - dRotRefDeg) Mod 180)
Dim dDiffP = Math.Abs( P - dRotRefDeg)
If Math.Abs( dDiffP - 180) < 10 * EPS_ANG_SMALL Then dDiffP = 1
Dim dDiffQ = Math.Abs( Q - dRotRefDeg)
If Math.Abs( dDiffQ - 180) < 10 * EPS_ANG_SMALL Then dDiffQ = 1
Return ( dDiffP - dDiffQ)
End Function)
' Annullo la rotazione di allineamento