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.
@@ -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)
|
||||
|
||||
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||