diff --git a/Controller.vb b/Controller.vb index 9d4b5cc..17eca94 100644 --- a/Controller.vb +++ b/Controller.vb @@ -826,6 +826,12 @@ Public Class Controller If m_nStep <> 0 Then Return False End If + ' se non è linea 2P reset punti speciali (tg, perp e mindist) + If (nCmd <> CMD.LINE2P) Then + m_Scene.DisableTangentPoint() + m_Scene.DisablePerpendicularPoint() + m_Scene.DisableMinDistPoint() + End If ' salvo ed eseguo il comando m_nLastCmd = nCmd Return ProcessStatus() diff --git a/Form1.vb b/Form1.vb index 4106b16..7a3ce6d 100644 --- a/Form1.vb +++ b/Form1.vb @@ -1609,7 +1609,12 @@ Public Class Form1 tsStatusOutput.Text = sText End Sub - Private Sub ToolStripStatusSnapPointType_Changed(ByVal sender As Object, ByVal nSpType As SP) Handles Scene1.OnChangedSnapPointType + Private Sub ToolStripStatusSnapPointType_Changed(ByVal sender As Object, ByVal nSpType As SP, ByVal bUser As Boolean) Handles Scene1.OnChangedSnapPointType + If bUser Then + tsStatusSnapPointType.BackColor = SystemColors.Control + Else + tsStatusSnapPointType.BackColor = Color.Bisque + End If Select Case nSpType Case SP.PT_SKETCH tsStatusSnapPointType.Text = EgtMsg(1102) 'Sketch Point diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index f68bd19..56c1ca7 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -46,5 +46,5 @@ Imports System.Runtime.InteropServices ' utilizzando l'asterisco (*) come descritto di seguito: ' - - + + diff --git a/Scene.vb b/Scene.vb index 7dee4cd..5073ce1 100644 --- a/Scene.vb +++ b/Scene.vb @@ -147,7 +147,7 @@ Public Class Scene EgtSetGeoLineAttribs(m_DstLnColor) EgtSetGeoTriaAttribs(m_DstLnColor) EgtInitTscExec() - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) End Sub Public Function GetCtx() As Integer @@ -205,7 +205,7 @@ Public Class Scene Public Event OnMouseSelectedPoint(ByVal sender As Object, ByVal PtP As Point3d, ByVal nSep As SEP, ByVal nId As Integer) Public Event OnMouseSelectedDir(ByVal sender As Object, ByVal VtDir As Vector3d) Public Event OnMouseMoveSelPoint(ByVal sender As Object, ByVal PtP As Point3d) - Public Event OnChangedSnapPointType(ByVal sender As Object, ByVal nSpType As SP) + Public Event OnChangedSnapPointType(ByVal sender As Object, ByVal nSpType As SP, ByVal bForced As Boolean) '---- Mouse ----------- ' Per correggere un problema con hot spot cursore, nei file cur è stato spostato di 4 pixel in Y+ (in basso) @@ -697,24 +697,24 @@ Public Class Scene Public Sub DisableTangentPoint() m_bTangentPointOn = False If m_nSnapType = SP.PT_TANGENT Then - m_nSnapType = SP.PT_NEAR - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + m_nSnapType = SP.PT_GRID + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, False) End If End Sub Public Sub DisablePerpendicularPoint() m_bPerpendicularPointOn = False If m_nSnapType = SP.PT_PERPENDICULAR Then - m_nSnapType = SP.PT_NEAR - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + m_nSnapType = SP.PT_GRID + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, False) End If End Sub Public Sub DisableMinDistPoint() m_bMinDistPointOn = False If m_nSnapType = SP.PT_MINDIST Then - m_nSnapType = SP.PT_NEAR - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + m_nSnapType = SP.PT_GRID + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, False) End If End Sub @@ -869,37 +869,37 @@ Public Class Scene ' Scelta tipo punto snap ElseIf e.ClickedItem.Name = "cmdSketchPoint" Then m_nSnapType = SP.PT_SKETCH - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ElseIf e.ClickedItem.Name = "cmdGridPoint" Then m_nSnapType = SP.PT_GRID - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ElseIf e.ClickedItem.Name = "cmdEndPoint" Then m_nSnapType = SP.PT_END - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ElseIf e.ClickedItem.Name = "cmdMidPoint" Then m_nSnapType = SP.PT_MID - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ElseIf e.ClickedItem.Name = "cmdCenterPoint" Then m_nSnapType = SP.CENTER - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ElseIf e.ClickedItem.Name = "cmdCentroid" Then m_nSnapType = SP.CENTROID - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ElseIf e.ClickedItem.Name = "cmdNearPoint" Then m_nSnapType = SP.PT_NEAR - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ElseIf e.ClickedItem.Name = "cmdIntersectionPoint" Then m_nSnapType = SP.PT_INTERS - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ElseIf e.ClickedItem.Name = "cmdTangentPoint" Then m_nSnapType = SP.PT_TANGENT - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ElseIf e.ClickedItem.Name = "cmdPerpendicularPoint" Then m_nSnapType = SP.PT_PERPENDICULAR - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ElseIf e.ClickedItem.Name = "cmdMinDistPoint" Then m_nSnapType = SP.PT_MINDIST - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ' esclusione superfici da punto snap ElseIf e.ClickedItem.Name = "cmdExcludeSurfForSnap" Then m_bAlsoSurfForSnap = Not m_bAlsoSurfForSnap @@ -916,52 +916,52 @@ Public Class Scene ' Con 'S' imposto Punto Sketch If e.KeyData = Keys.S Then m_nSnapType = SP.PT_SKETCH - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ' Con 'G' imposto Punto Griglia ElseIf e.KeyData = Keys.G Then m_nSnapType = SP.PT_GRID - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ' Con 'E' imposto Punto Finale ElseIf e.KeyData = Keys.E Then m_nSnapType = SP.PT_END - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ' Con 'M' imposto Punto Medio ElseIf e.KeyData = Keys.M Then m_nSnapType = SP.PT_MID - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ' Con 'C' imposto Centro ElseIf e.KeyData = Keys.C Then m_nSnapType = SP.CENTER - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ' Con 'B' imposto Baricentro ElseIf e.KeyData = Keys.B Then m_nSnapType = SP.CENTROID - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ' Con 'N' imposto Punto Vicino ElseIf e.KeyData = Keys.N Then m_nSnapType = SP.PT_NEAR - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ' Con 'I' imposto Punto Intersezione ElseIf e.KeyData = Keys.I Then m_nSnapType = SP.PT_INTERS - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) ' Con 'T' imposto Punto Tangente ElseIf e.KeyData = Keys.T Then If m_bTangentPointOn Then m_nSnapType = SP.PT_TANGENT - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) End If ' Con 'P' imposto Punto Perpendicolare ElseIf e.KeyData = Keys.P Then If m_bPerpendicularPointOn Then m_nSnapType = SP.PT_PERPENDICULAR - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) End If ' Con 'D' imposto Punto Minima Distanza ElseIf e.KeyData = Keys.D Then If m_bMinDistPointOn Then m_nSnapType = SP.PT_MINDIST - RaiseEvent OnChangedSnapPointType(Me, m_nSnapType) + RaiseEvent OnChangedSnapPointType(Me, m_nSnapType, True) End If End If End If @@ -1041,10 +1041,6 @@ Public Class Scene ' imposto lo stato m_nStatus = ST.SEL m_nOldStatus = ST.SEL - ' disabilito scelta punto tangente, perpendicolare e minima distanza - DisableTangentPoint() - DisablePerpendicularPoint() - DisableMinDistPoint() ' abilito drag m_bDragOn = True ' aggiorno visualizzazione