Files
omagoffice/MySceneHost/MySceneHostVM.vb
T
Dario Sassi 52a3cc910e OmagOffice 2.1e4 :
- gestione ventose con rotazione a step come in OmagCUT
- gestione angoli di lato e talloni da colori di DXF come in OmagCUT
- gestione flag tastatura su tagli con angoli di fianco come in OmagCUT
- impostata a Hidden regione di Kerf per Vacuum come in OmagCUT.
2019-06-04 18:26:00 +00:00

494 lines
23 KiB
VB.net

Imports System.Windows.Interop
Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Public Class MySceneHostVM
Inherits EgtWPFLib5.SceneHostVM
#Region "CONSTRUCTOR"
Sub New()
MyBase.New()
AddHandler MainController.OnNewProject, AddressOf OnNewProject
AddHandler MainController.OnOpenProject, AddressOf OnOpenProject
AddHandler MainController.OnSavingProject, AddressOf OnSavingProject
AddHandler MainController.OnSavedProject, AddressOf OnSavedProject
End Sub
#End Region ' CONSTRUCTOR
#Region "METHODS"
Overrides Sub InitScene()
InitSceneEvents()
' Inizializzazione Scena
PreInitializeScene()
' Se tutto bene
If MainScene.Init() And OmagOFFICEMap.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.OFFICE_BASE) Then
PostInitializeScene()
' Imposto stato gestione mouse diretto della scena a nessuno
MainScene.SetStatusNull()
' Recupero e imposto handle finestra principale
Dim hMainWnd As IntPtr = New WindowInteropHelper(Application.Current.MainWindow).Handle
EgtSetMainWindowHandle(hMainWnd)
' inizializzo gestore lavorazioni
EgtInitMachMgr(OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot, OmagOFFICEMap.refMainWindowVM.MainWindowM.sToolMakersDir)
Return
End If
' Problemi
' Se manca la chiave
If OmagOFFICEMap.refMainWindowVM.MainWindowM.nKeyLevel = -1 Or OmagOFFICEMap.refMainWindowVM.MainWindowM.nKeyLevel = -2 Then
EgtOutLog("Missing Dongle")
' Box di avviso chiave mancante : "Chiave non presente. \n Inserirla e riavviare il programma." "Errore"
Dim sText As String = EgtMsg(MSG_MISSINGKEYWD + 2) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 3)
Dim sTitle As String = EgtMsg(MSG_MISSINGKEYWD + 1)
MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error)
' Altrimenti manca la licenza
Else
EgtOutLog("Problems with Licence")
' Box di avviso licenza con problemi : "Programma senza licenza. \n Caricala e riavvia il programma." "Errore"
Dim sText As String = EgtMsg(MSG_MISSINGKEYWD + 5) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 6)
Dim sTitle As String = EgtMsg(MSG_MISSINGKEYWD + 1)
If MessageBox.Show(sText, sTitle, MessageBoxButton.OKCancel, MessageBoxImage.Error) = MessageBoxResult.OK Then
' Apro dialogo per richiesta file licenza
Dim LicDlg As New Microsoft.Win32.OpenFileDialog() With {
.DefaultExt = ".lic",
.Filter = "Licences (.lic)|*.lic",
.CheckFileExists = True,
.ValidateNames = True
}
If LicDlg.ShowDialog() = True Then
' Recupero il direttorio del file
Dim sDir As String = Path.GetDirectoryName(LicDlg.FileName)
' Se il file non è già nel direttorio di configurazione lo copio
If Not String.Equals(Path.GetFullPath(sDir), Path.GetFullPath(OmagOFFICEMap.refMainWindowVM.MainWindowM.sConfigDir), StringComparison.OrdinalIgnoreCase) Then
Try
File.Copy(LicDlg.FileName, Path.Combine(OmagOFFICEMap.refMainWindowVM.MainWindowM.sConfigDir, LicDlg.SafeFileName), True)
Catch ex As Exception
End Try
End If
' Imposto il nuovo file di licenza nell'Ini
WriteMainPrivateProfileString(S_GENERAL, K_LICENCE, LicDlg.SafeFileName)
End If
End If
End If
' Chiudo il programma
End
End Sub
Public Overrides Sub InitSceneEvents()
AddHandler MainScene.OnMouseDownScene, AddressOf OnMouseDownScene
AddHandler MainScene.OnMouseMoveScene, AddressOf OnMouseMoveScene
AddHandler MainScene.OnMouseUpScene, AddressOf OnMouseUpScene
AddHandler MainScene.KeyDown, AddressOf OnKeyDownScene
AddHandler MainScene.OnCursorPos, AddressOf OnCursorPos
AddHandler MainScene.OnShowDistance, AddressOf OnShowDistance
AddHandler MainScene.OnChangedSnapPointType, AddressOf OnChangedSnapPointType
End Sub
Private Sub PreInitializeScene()
' imposto colore di default
Dim DefColor As New Color3d(0, 0, 0)
GetMainPrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, DefColor)
MainScene.SetDefaultMaterial(DefColor)
' imposto colori sfondo
Dim BackTopColor As New Color3d(192, 192, 192)
GetMainPrivateProfileColor(S_SCENE, K_BACKTOP, BackTopColor)
Dim BackBotColor As New Color3d(BackTopColor)
GetMainPrivateProfileColor(S_SCENE, K_BACKBOTTOM, BackBotColor)
MainScene.SetViewBackground(BackTopColor, BackBotColor)
' imposto colore di evidenziazione
Dim MarkColor As New Color3d(255, 255, 0)
GetMainPrivateProfileColor(S_SCENE, K_MARK, MarkColor)
MainScene.SetMarkMaterial(MarkColor)
' imposto colore per superfici selezionate
Dim SelSurfColor As New Color3d(255, 255, 192)
GetMainPrivateProfileColor(S_SCENE, K_SELSURF, SelSurfColor)
MainScene.SetSelSurfMaterial(SelSurfColor)
' imposto tipo e colore del rettangolo di zoom
Dim bOutline As Boolean = True
Dim ZwColor As New Color3d(0, 0, 0)
GetMainPrivateProfileZoomWin(S_SCENE, K_ZOOMWIN, bOutline, ZwColor)
MainScene.SetZoomWinAttribs(bOutline, ZwColor)
' imposto colore della linea di distanza
Dim DstLnColor As New Color3d(255, 0, 0)
GetMainPrivateProfileColor(S_SCENE, K_DISTLINE, DstLnColor)
MainScene.SetDistLineMaterial(DstLnColor)
' imposto parametri OpenGL
Dim nDriver As Integer = GetMainPrivateProfileInt(S_OPENGL, K_DRIVER, 3)
Dim b2Buff As Boolean = (GetMainPrivateProfileInt(S_OPENGL, K_DOUBLEBUFFER, 1) <> 0)
Dim nColorBits As Integer = GetMainPrivateProfileInt(S_OPENGL, K_COLORBITS, 32)
Dim nDepthBits As Integer = GetMainPrivateProfileInt(S_OPENGL, K_DEPTHBITS, 32)
MainScene.SetViewAttributes(nDriver, b2Buff, nColorBits, nDepthBits)
End Sub
Private Sub PostInitializeScene()
' Impostazioni Controller
MainController.SetScene(MainScene)
' imposto tipo coordinate
MainScene.SetGridCursorPos(True)
' modo di visualizzazione
Dim nShowMode As Integer = GetMainPrivateProfileInt(S_SCENE, K_SHOWMODE, SM.SHADING)
OmagOFFICEMap.refShowPanelVM.SetShowMode(DirectCast(nShowMode, SM))
' visualizzazione avanzata dei triangoli costituenti le superfici
Dim bShowTriaAdv As Boolean = (GetMainPrivateProfileInt(S_SCENE, K_SHOWTRIAADV, 1) <> 0)
EgtSetShowTriaAdv(bShowTriaAdv)
' tipo visualizzazione per Zmap
Dim nShowZmap As Integer = GetMainPrivateProfileInt(S_SCENE, K_SHOWZMAP, 1)
EgtSetShowZmap(DirectCast(nShowZmap, ZSM), False)
' dimensione lineare max in pixel delle textures
Dim nTxrMaxLinPix As Integer = GetMainPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096)
EgtSetTextureMaxLinPixels(nTxrMaxLinPix)
' tipo snap point
MainScene.SetSnapPointType(SP.PT_SKETCH)
End Sub
#End Region ' METHODS
#Region "ProjectManager"
Public Overrides Sub NewProject()
EgtSetCurrentContext(MainScene.GetCtx())
Dim bOk As Boolean = MainController.NewProject()
' Eventuale reset VM
If bOk Then
VeinMatching.Clear()
End If
MainScene.SetStatusNull()
End Sub
Public Overrides Sub OpenProject(sFilePath As String)
EgtSetCurrentContext(MainScene.GetCtx())
Dim bOk As Boolean = False
If String.IsNullOrEmpty(sFilePath) Then
' Recupero cartella dell'ultimo progetto aperto
Dim sDir As String = MainController.GetCurrFile()
If String.IsNullOrWhiteSpace(sDir) Then
GetMainPrivateProfileString(S_MRUFILES, K_FILE, "", sDir)
End If
If Not String.IsNullOrWhiteSpace(sDir) Then
sDir = Path.GetDirectoryName(sDir)
End If
bOk = MainController.OpenProject(sDir)
Else
bOk = MainController.OpenProject(sFilePath, False)
End If
MainScene.SetStatusNull()
' Eventuale apertura file VM
Dim sFile As String = String.Empty
If bOk AndAlso EgtGetCurrFilePath(sFile) Then
Dim sVmFile As String = Path.ChangeExtension(sFile, ".vme")
VeinMatching.Open(sVmFile)
End If
End Sub
Public Overrides Sub ExportProject()
EgtSetCurrentContext(MainScene.GetCtx())
' Verifico che il progetto sia salvato
If EgtGetModified() Then
MessageBox.Show(EgtMsg(MSG_TOPCMDBAR + 1), "", MessageBoxButton.OK, MessageBoxImage.Exclamation)
Return
End If
' Scelta del direttorio di destinazione
Dim sLastExportDir As String = String.Empty
GetMainPrivateProfileString(S_GENERAL, K_EXPORTDIR, "", sLastExportDir)
Dim DirDlg As New System.Windows.Forms.FolderBrowserDialog
DirDlg.Description = EgtMsg(MSG_TOPCMDBAR + 2) ' Seleziona il direttorio di esportazione
DirDlg.SelectedPath = sLastExportDir
If DirDlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return
WriteMainPrivateProfileString(S_GENERAL, K_EXPORTDIR, DirDlg.SelectedPath)
' Eseguo esportazione
If Not ExecExport(DirDlg.SelectedPath) Then
' Errore nell'esportazione
MessageBox.Show(EgtMsg(MSG_TOPCMDBAR + 3), "", MessageBoxButton.OK, MessageBoxImage.Error)
End If
EgtSetCurrentContext(MainScene.GetCtx())
End Sub
Private Function ExecExport(sDirDest As String) As Boolean
' Path completa del progetto corrente
Dim sFilePath As String = String.Empty
EgtGetCurrFilePath(sFilePath)
' Preparo la lista dei gruppi di lavoro
Dim vMchGrps As New List(Of Integer)
Dim nGrpId = EgtGetFirstMachGroup()
While nGrpId <> GDB_ID.NULL
vMchGrps.Add(nGrpId)
nGrpId = EgtGetNextMachGroup(nGrpId)
End While
' Creo un contesto separato con gestore lavorazioni per poter spezzettare il progetto
Dim nCurrCtx As Integer = EgtGetCurrentContext()
Dim nCtx As Integer = EgtInitContext()
EgtInitMachMgr(OmagOFFICEMap.refMainWindowVM.MainWindowM.sMachinesRoot, OmagOFFICEMap.refMainWindowVM.MainWindowM.sToolMakersDir)
' Per ogni gruppo di lavoro
For Each nMchGrpId As Integer In vMchGrps
' Carico il progetto
EgtOpenFile(sFilePath)
' Recupero il nome del gruppo
Dim sMchGrp As String = String.Empty
EgtGetMachGroupName(nMchGrpId, sMchGrp)
' Recupero il nome della lastra
Dim sSlabName As String = String.Empty
EgtGetInfo(nMchGrpId, INFO_SLABNAME, sSlabName)
' Creo path del file di salvataggio
Dim sFileDest As String = sDirDest & "\" & Path.GetFileNameWithoutExtension(sFilePath) & "_" & If(String.IsNullOrEmpty(sSlabName), sMchGrp, sSlabName) & ".nge"
' Verifico se al gruppo è associata una foto
Dim nPhotoId As Integer = EgtGetFirstNameInGroup(EgtGetFirstNameInGroup(GDB_ID.ROOT, PHOTO_GRP), PHOTO_NAME & sMchGrp)
' Elimino le altre fotografie
Dim nPhId As Integer = EgtGetFirstInGroup(EgtGetFirstNameInGroup(GDB_ID.ROOT, PHOTO_GRP))
While nPhId <> GDB_ID.NULL
Dim nNextPhId As Integer = EgtGetNext(nPhId)
If nPhId <> nPhotoId Then
EgtErase(nPhId)
End If
nPhId = nNextPhId
End While
' Sistemo l'eventuale foto del gruppo
If nPhotoId <> GDB_ID.NULL Then
Dim sOriPath As String = String.Empty
EgtGetPhotoPath(nPhotoId, sOriPath)
Dim sNewPath As String = Path.ChangeExtension(sFileDest, Path.GetExtension(sOriPath))
EgtChangePhotoPath(nPhotoId, sNewPath)
File.Copy(sOriPath, sNewPath, True)
EgtSetName(nPhotoId, PHOTO_NAME)
End If
' Elimino gli altri gruppi di lavorazioni
For Each nMGrpId As Integer In vMchGrps
If nMGrpId <> nMchGrpId Then
EgtRemoveMachGroup(nMGrpId)
End If
Next
' Elimino i pezzi che non stanno nel gruppo corrente (sono ancora pezzi dopo averlo attivato)
EgtSetCurrMachGroup(nMchGrpId)
Dim nPartId As Integer = EgtGetFirstPart()
While nPartId <> GDB_ID.NULL
Dim nNextPartId As Integer = EgtGetNextPart(nPartId)
EgtErase(nPartId)
nPartId = nNextPartId
End While
EgtResetCurrMachGroup()
' Assegno nome standard OmagCUT al gruppo di lavoro
EgtSetName(nMchGrpId, MACH_GROUP)
' Definisco gruppo marcatore di OmagCUT
Dim nMarkId As Integer = EgtCreateGroup(GDB_ID.ROOT)
EgtSetName(nMarkId, NAME_PROJMARK)
EgtSetLevel(nMarkId, GDB_LV.SYSTEM)
Dim nReducedCut As Integer = 1
EgtGetInfo(nMchGrpId, INFO_REDUCEDCUT, nReducedCut)
EgtSetInfo(nMarkId, INFO_REDUCEDCUT, nReducedCut)
Dim nSacProbe As Integer = 0
EgtGetInfo(nMchGrpId, INFO_SACPROBE, nSacProbe)
EgtSetInfo(nMarkId, INFO_SACPROBE, nSacProbe)
Dim nWash As Integer = 1
EgtGetInfo(nMchGrpId, INFO_WASHING, nWash)
EgtSetInfo(nMarkId, INFO_WASHING, nWash)
Dim nOrder As Integer = 0
EgtGetInfo(nMchGrpId, INFO_MACHORDER, nOrder)
EgtSetInfo(nMarkId, INFO_MACHORDER, nOrder)
Dim sMatName As String = String.Empty
EgtGetInfo(nMchGrpId, INFO_PROJMAT, sMatName)
EgtSetInfo(nMarkId, INFO_PROJMAT, sMatName)
' Salvo il file
EgtSaveFile(sFileDest, NGE.CMPTEXT)
Next
' Distruggo il contesto corrente e ripristino quello originale
EgtSetCurrentContext(nCurrCtx)
EgtDeleteContext(nCtx)
Return True
End Function
#End Region ' ProjectManager
#Region "EVENTS"
Private Sub OnNewProject(sender As Object, bOk As Boolean)
OmagOFFICEMap.refMainWindowVM.Title = " New - OmagOFFICE"
End Sub
Private Sub OnOpenProject(sender As Object, sFile As String, bOk As Boolean)
' Verifico la validità del file appena aperto (deve contenere almeno un gruppo di lavoro)
If EgtGetMachGroupCount() = 0 Then bOk = False
' Procedo a seconda del risultato
If bOk Then
OmagOFFICEMap.refMainWindowVM.Title = sFile & " - OmagOFFICE"
WriteMainPrivateProfileString(S_GENERAL, K_LASTPROJ, sFile)
OmagOFFICEMap.refTopCommandBarVM.m_MruFiles.Add(sFile)
Else
EgtNewFile()
OmagOFFICEMap.refMainWindowVM.Title = " New - OmagOFFICE"
OmagOFFICEMap.refTopCommandBarVM.m_MruFiles.Remove(sFile)
Dim sMsg As String = EgtMsg(10003) & " '" & sFile & "'" 'Error opening file
MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) 'Error
End If
MainScene.SetStatusNull()
End Sub
Private Sub OnSavingProject(ByVal sender As Object, sFile As String)
' Recupero tutti i file di texture associabili ai gruppi di lavoro del progetto
Dim sDirToSearch As String = Path.GetDirectoryName(sFile)
Dim sFileToSearch As String = Path.GetFileNameWithoutExtension(sFile) & "." & PHOTO_NAME & "*"
Dim vsTxrFile As New List(Of String)
For Each sTxrFile In My.Computer.FileSystem.GetFiles(sDirToSearch, FileIO.SearchOption.SearchTopLevelOnly, sFileToSearch)
vsTxrFile.Add(sTxrFile)
Next
' Rinomino path di eventuali fotografie
Dim nPhotoId As Integer = EgtGetFirstInGroup(EgtGetFirstNameInGroup(GDB_ID.ROOT, PHOTO_GRP))
While nPhotoId <> GDB_ID.NULL
' Path originale
Dim sPhoto As String = String.Empty
If EgtGetPhotoPath(nPhotoId, sPhoto) Then
' Nome della foto
Dim sName As String = String.Empty
EgtGetName(nPhotoId, sName)
' Nuova path
Dim sNewPhoto As String = Path.GetDirectoryName(sFile) & "\" &
Path.GetFileNameWithoutExtension(sFile) & "." & sName &
Path.GetExtension(sPhoto)
' Se diverse, eseguo copia
If String.Compare(sPhoto, sNewPhoto, True) <> 0 Then
Try
' Eseguo copia
File.Copy(sPhoto, sNewPhoto, True)
' Notifico a foto il cambio di path
EgtChangePhotoPath(nPhotoId, sNewPhoto)
' Eventuale notifica a VeinMatching del cambio di path
VeinMatching.ChangePhotoPath(sPhoto, sNewPhoto)
Catch ex As Exception
End Try
End If
' Tolgo da lista file texture associabili, se presente
vsTxrFile.Remove(sNewPhoto)
End If
' passo alla successiva
nPhotoId = EgtGetNext(nPhotoId)
End While
' Se rimasti file associabili, li cancello
For Each sTxrFile In vsTxrFile
Try
My.Computer.FileSystem.DeleteFile(sTxrFile)
Catch
End Try
Next
End Sub
Private Sub OnSavedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean)
' Se salvataggio non riuscito, esco subito
If Not bOk Then
OmagOFFICEMap.refTopCommandBarVM.m_MruFiles.Remove(sFile)
Dim sMsg As String = EgtMsg(10004) & " '" & sFile & "'" 'Error saving file
MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
Return
End If
' Eventuale salvataggio VM
Dim sVmFile As String = Path.ChangeExtension(sFile, ".vme")
VeinMatching.Save(sVmFile)
' Eventuale salvataggio CSV
CsvM.SaveCsvPartList()
' Aggiornamento titolo
OmagOFFICEMap.refMainWindowVM.Title = sFile & " - OmagOFFICE"
' Riabilito visualizzazione pezzi in parcheggio
EstCalc.ShowParkedParts()
' Inserisco nome in MRU
OmagOFFICEMap.refTopCommandBarVM.m_MruFiles.Add(sFile)
' Salvo nome ultimo file
WriteMainPrivateProfileString(S_GENERAL, K_LASTPROJ, sFile)
End Sub
Private Sub OnMouseDownScene(sender As Object, e As Windows.Forms.MouseEventArgs)
' Si può selezionare solo con il tasto sinistro e se stato NULL
If e.Button <> Windows.Forms.MouseButtons.Left Or Not MainScene.IsStatusNull() Then Return
' Chiamo l'opportuno gestore
Select Case OmagOFFICEMap.refOptionPanelVM.SelItem
Case OptionPanelVM.Tabs.RAWPART
OmagOFFICEMap.refRawPartTabVM.OnMouseDownScene(sender, e)
Case OptionPanelVM.Tabs.NESTING
OmagOFFICEMap.refNestingTabVM.OnMouseDownScene(sender, e)
Case OptionPanelVM.Tabs.MACHINING
OmagOFFICEMap.refMachiningTabVM.OnMouseDownScene(sender, e)
Case OptionPanelVM.Tabs.SIMUL
End Select
End Sub
Private Sub OnMouseMoveScene(sender As Object, e As Windows.Forms.MouseEventArgs)
' Chiamo l'opportuno gestore
Select Case OmagOFFICEMap.refOptionPanelVM.SelItem
Case OptionPanelVM.Tabs.RAWPART
OmagOFFICEMap.refRawPartTabVM.OnMouseMoveScene(sender, e)
Case OptionPanelVM.Tabs.NESTING
OmagOFFICEMap.refNestingTabVM.OnMouseMoveScene(sender, e)
Case OptionPanelVM.Tabs.MACHINING
Case OptionPanelVM.Tabs.SIMUL
End Select
End Sub
Private Sub OnMouseUpScene(sender As Object, e As Windows.Forms.MouseEventArgs)
' Chiamo l'opportuno gestore
Select Case OmagOFFICEMap.refOptionPanelVM.SelItem
Case OptionPanelVM.Tabs.RAWPART
OmagOFFICEMap.refRawPartTabVM.OnMouseUpScene(sender, e)
Case OptionPanelVM.Tabs.NESTING
OmagOFFICEMap.refNestingTabVM.OnMouseUpScene(sender, e)
Case OptionPanelVM.Tabs.MACHINING
Case OptionPanelVM.Tabs.SIMUL
End Select
End Sub
Private Sub OnKeyDownScene(sender As Object, e As System.Windows.Forms.KeyEventArgs)
' Chiamo l'opportuno gestore
Select Case OmagOFFICEMap.refOptionPanelVM.SelItem
Case OptionPanelVM.Tabs.RAWPART
Case OptionPanelVM.Tabs.NESTING
OmagOFFICEMap.refNestingTabVM.OnKeyDownScene(sender, e)
Case OptionPanelVM.Tabs.MACHINING
Case OptionPanelVM.Tabs.SIMUL
End Select
End Sub
Private Sub OnCursorPos(ByVal sender As Object, ByVal sCursorPos As String)
OmagOFFICEMap.refStatusBarVM.SetCurrPos(sCursorPos)
End Sub
Private Sub OnShowDistance(ByVal sender As Object, ByVal sDistance As String)
OmagOFFICEMap.refStatusBarVM.SetOutputMessage(sDistance)
End Sub
Private Sub OnChangedSnapPointType(ByVal sender As Object, ByVal nSpType As SP, ByVal bUser As Boolean)
Dim BtnColor As Brush
If bUser Then
BtnColor = New SolidColorBrush(SystemColors.ControlColor)
Else
BtnColor = Brushes.Bisque
End If
Select Case nSpType
Case SP.PT_SKETCH
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1102), BtnColor) 'Sketch Point
Case SP.PT_GRID
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1104), BtnColor) 'Grid Point
Case SP.PT_END
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1106), BtnColor) 'End Point
Case SP.PT_MID
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1108), BtnColor) 'Mid Point
Case SP.CENTER
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1110), BtnColor) 'Center
Case SP.CENTROID
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1112), BtnColor) 'Centroid
Case SP.PT_NEAR
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1114), BtnColor) 'Near Point
Case SP.PT_INTERS
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1116), BtnColor) 'Inters Point
Case SP.PT_TANGENT
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1118), BtnColor) 'Tang Point
Case SP.PT_PERPENDICULAR
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1120), BtnColor) 'Perp Point
Case SP.PT_MINDIST
OmagOFFICEMap.refStatusBarVM.SetSnapPointType(EgtMsg(1122), BtnColor) 'MinDist Point
Case Else
OmagOFFICEMap.refStatusBarVM.SetSnapPointType("---", BtnColor)
End Select
End Sub
#End Region ' EVENTS
End Class