EgtCAM5 :

- primo rilascio.
This commit is contained in:
Emmanuele Sassi
2016-07-06 09:46:23 +00:00
parent c67804e686
commit 6233d89e0f
133 changed files with 12953 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
<Application x:Class="Application"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
<ResourceDictionary Source="EgtCAM5Resources.xaml" />
</Application.Resources>
</Application>
+126
View File
@@ -0,0 +1,126 @@
Imports EgtCAM5.EgtCAM5
Class Application
' Application-level events, such as Startup, Exit, and DispatcherUnhandledException
' can be handled in this file.
Protected Overrides Sub OnStartUp(e As System.Windows.StartupEventArgs)
MyBase.OnStartup(e)
' Creo la View principale
Dim MainWndView As New MainWindow
' Creo il ViewModel principale
Dim MainWndViewModel As New MainWindowViewModel
' Assegno il ViewModel alla View
MainWndView.DataContext = MainWndViewModel
' Mostro la View principale
MainWndView.Show()
End Sub
#Region "Messages"
' Generic messages
Friend Const MAINWINDOW_CONTENTRENDERED As String = "MainWindow_ContentRendered"
Friend Const MAINWINDOW_ACTIVATED As String = "MainWindow_Activated"
Friend Const MAINWINDOW_DEACTIVATED As String = "MainWindow_Deactivated"
Friend Const CLOSEAPPLICATION As String = "CloseApplication"
Friend Const PROJECTPAGE_SELECTED As String = "ProjectPage_Selected"
Friend Const PROJECTPAGE_DESELECTED As String = "ProjectPage_Deselected"
' ProjectPage messages
Friend Const NOTIFYCURRPOSCHANGED As String = "ProjectPage_CurrPosChanged"
Friend Const NOTIFYINPUTTEXT As String = "NotifyInputText"
Friend Const REGISTERINPUTTEXT As String = "Register_InputText_Text"
Friend Const NOTIFYSTATUSOUTPUT As String = "NotifyStatusOutput"
Friend Const NOTIFYSTATUSPROGRESS As String = "NotifyStatusProgress"
Friend Const NOTIFYSTATUSSTOP_ISENABLED As String = "NotifyStatusStop_IsEnabled"
' GridViewPanel messages
Friend Const WIREFRAME As String = "Wireframe"
Friend Const HIDDENLINE As String = "HiddenLine"
Friend Const SHADING As String = "Shading"
Friend Const ZOOMALL As String = "ZoomAll"
Friend Const ZOOMIN As String = "ZoomIn"
Friend Const ZOOMOUT As String = "ZoomOut"
Friend Const TOPVIEW As String = "TopView"
Friend Const FRONTVIEW As String = "FrontView"
Friend Const LEFTVIEW As String = "LeftView"
Friend Const BACKVIEW As String = "BackView"
Friend Const RIGHTVIEW As String = "RightView"
Friend Const ISOVIEWSW As String = "IsoViewSW"
Friend Const ISOVIEWSE As String = "IsoViewSE"
Friend Const ISOVIEWNE As String = "IsoViewNE"
Friend Const ISOVIEWNW As String = "IsoViewNW"
Friend Const CURVEDIR As String = "CurveDir"
Friend Const ANALYZE As String = "Analyze"
Friend Const GETDIST As String = "GetDist"
Friend Const CPLANETOP As String = "CPlaneTop"
Friend Const CPLANEFRONT As String = "CPlaneFront"
Friend Const CPLANERIGHT As String = "CPlaneRight"
Friend Const CPLANEBACK As String = "CPlaneBack"
Friend Const CPLANELEFT As String = "CPlaneLeft"
Friend Const CPLANEBOTTOM As String = "CPlaneBottom"
Friend Const CPLANEVIEW As String = "CPlaneView"
Friend Const CPLANEELEVATION As String = "CPlaneElevation"
Friend Const CPLANEORIGIN As String = "CPlaneOrigin"
Friend Const CPLANEROTATE As String = "CPlaneRotate"
Friend Const CPLANE3P As String = "CPlane3P"
Friend Const CPLANEPERPOBJ As String = "CPlanePerpObj"
Friend Const CPLANEOBJ As String = "CPlaneObj"
Friend Const POINT As String = "Point"
Friend Const LINE2P As String = "Line2P"
Friend Const LINEPDL As String = "LinePDL"
Friend Const CIRCLE As String = "Circle"
Friend Const ARCCSE As String = "ArcCSE"
Friend Const ARC3P As String = "Arc3P"
Friend Const ARCPDP As String = "ArcPDP"
Friend Const FILLET As String = "Fillet"
Friend Const RECTANGLE2P As String = "Rectangle2P"
Friend Const POLYGON As String = "Polygon"
Friend Const TEXT As String = "Text"
Friend Const PLANE As String = "Plane"
Friend Const EXTRUDE As String = "Extrude"
Friend Const REVOLVE As String = "Revolve"
Friend Const SCREW As String = "Screw"
Friend Const RULED As String = "Ruled"
Friend Const MERGESURF As String = "MergeSurf"
Friend Const EXPLODESURF As String = "ExplodeSurf"
Friend Const INVERTSURF As String = "InvertSurf"
Friend Const DELETE As String = "Delete"
Friend Const CHANGELAYER As String = "ChangeLayer"
Friend Const CHANGECOLOR As String = "ChangeColor"
Friend Const INVERTCURVE As String = "InvertCurve"
Friend Const CHANGESTARTCURVE As String = "ChangeStartCurve"
Friend Const EXTENDCURVE As String = "ExtendCurve"
Friend Const BREAKCURVE As String = "BreakCurve"
Friend Const JOINCURVE As String = "JoinCurve"
Friend Const EXPLODECURVE As String = "ExplodeCurve"
Friend Const SETCURVETH As String = "SetCurveTh"
Friend Const MOVE As String = "Move"
Friend Const ROTATE As String = "Rotate"
Friend Const MIRROR As String = "Mirror"
Friend Const SCALE As String = "Scale"
Friend Const OFFSET As String = "Offset"
' ToolsDbPage messages
Friend Const REMOVETOOL As String = "RemoveTool"
Friend Const ERRORONTOOL As String = "ErrorOnTool"
' MachiningsDbPage messages
Friend Const REMOVEMACHINING As String = "RemoveMachining"
Friend Const ERRORONMACHINING As String = "ErrorOnMachining"
Shared ReadOnly _messenger As New Messenger()
Friend Shared ReadOnly Property Msn As Messenger
Get
Return _messenger
End Get
End Property
Private Sub Application_DispatcherUnhandledException(ByVal sender As System.Object, ByVal e As System.Windows.Threading.DispatcherUnhandledExceptionEventArgs)
MessageBox.Show(e.Exception.Message)
e.Handled = True
End Sub
#End Region
End Class
@@ -0,0 +1,61 @@
Public NotInheritable Class InputBindingsManager
Private Sub New()
End Sub
Public Shared ReadOnly UpdatePropertySourceWhenEnterPressedProperty As DependencyProperty = DependencyProperty.RegisterAttached("UpdatePropertySourceWhenEnterPressed", GetType(DependencyProperty), GetType(InputBindingsManager), New PropertyMetadata(Nothing, AddressOf OnUpdatePropertySourceWhenEnterPressedPropertyChanged))
Shared Sub New()
End Sub
Public Shared Sub SetUpdatePropertySourceWhenEnterPressed(dp As DependencyObject, value As DependencyProperty)
dp.SetValue(UpdatePropertySourceWhenEnterPressedProperty, value)
End Sub
Public Shared Function GetUpdatePropertySourceWhenEnterPressed(dp As DependencyObject) As DependencyProperty
Return DirectCast(dp.GetValue(UpdatePropertySourceWhenEnterPressedProperty), DependencyProperty)
End Function
Private Shared Sub OnUpdatePropertySourceWhenEnterPressedPropertyChanged(dp As DependencyObject, e As DependencyPropertyChangedEventArgs)
Dim element As UIElement = TryCast(dp, UIElement)
If element Is Nothing Then
Return
End If
If e.OldValue IsNot Nothing Then
RemoveHandler element.PreviewKeyDown, AddressOf HandlePreviewKeyDown
End If
If e.NewValue IsNot Nothing Then
AddHandler element.PreviewKeyDown, New KeyEventHandler(AddressOf HandlePreviewKeyDown)
End If
End Sub
Private Shared Sub HandlePreviewKeyDown(sender As Object, e As KeyEventArgs)
If e.Key = Key.Enter Then
DoUpdateSource(e.Source)
End If
End Sub
Private Shared Sub DoUpdateSource(source As Object)
Dim [property] As DependencyProperty = GetUpdatePropertySourceWhenEnterPressed(TryCast(source, DependencyObject))
If [property] Is Nothing Then
Return
End If
Dim elt As UIElement = TryCast(source, UIElement)
If elt Is Nothing Then
Return
End If
Dim binding As BindingExpression = BindingOperations.GetBindingExpression(elt, [property])
If binding IsNot Nothing Then
binding.UpdateSource()
End If
End Sub
End Class
+12
View File
@@ -0,0 +1,12 @@
<EgtWpfLib5:EgtPanelWindow x:Class="BaseWindowView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWpfLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
Title="BaseWindowView"
SizeToContent="WidthAndHeight"
TitleBarOrientation="{Binding TitleBarOrientation}">
<!--ContentPresenter that contains the actual View-->
<ContentPresenter Content="{Binding}"/>
</EgtWpfLib5:EgtPanelWindow>
+24
View File
@@ -0,0 +1,24 @@
Imports EgtWPFLib5
Public Class BaseWindowView
Inherits EgtPanelWindow
Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
' Set this as owned by MainWindow, when this one is rendered
Application.Msn.Register(Application.MAINWINDOW_CONTENTRENDERED, Sub()
Me.Owner = Application.Current.MainWindow
End Sub)
Application.Msn.Register(Application.MAINWINDOW_ACTIVATED, Sub()
'Me.Topmost = True
End Sub)
Application.Msn.Register(Application.MAINWINDOW_DEACTIVATED, Sub()
'Me.Topmost = False
End Sub)
End Sub
End Class
+18
View File
@@ -0,0 +1,18 @@
Namespace EgtCAM5
Public Class TabViewModel
Inherits ViewModelBase
Private m_sTabName As String
Public Property sTabName As String
Get
Return m_sTabName
End Get
Set(value As String)
m_sTabName = value
End Set
End Property
End Class
End Namespace
+195
View File
@@ -0,0 +1,195 @@
Imports System.Collections.ObjectModel
Imports System.ComponentModel
' Classe che definisce un elemento di base del TreeView
Public Class TreeViewItemBase
Implements INotifyPropertyChanged
Friend m_Name As String
Public Overridable Property Name As String
Get
Return m_Name
End Get
Set(value As String)
If (value <> m_Name) Then
m_Name = value
NotifyPropertyChanged("Name")
End If
End Set
End Property
Friend m_isSelected As Boolean
Public Overridable Property IsSelected As Boolean
Get
Return m_isSelected
End Get
Set(value As Boolean)
If (value <> m_isSelected) Then
m_isSelected = value
NotifyPropertyChanged("IsSelected")
End If
End Set
End Property
Private m_isExpanded As Boolean
Public Property IsExpanded As Boolean
Get
Return m_isExpanded
End Get
Set(value As Boolean)
If (value <> m_isExpanded) Then
m_isExpanded = value
NotifyPropertyChanged("IsExpanded")
End If
End Set
End Property
Private m_IsActive As Boolean
Public Property IsActive As Boolean
Get
Return m_IsActive
End Get
Set(value As Boolean)
If value <> m_IsActive Then
m_IsActive = value
NotifyPropertyChanged("IsActive")
End If
End Set
End Property
Private m_IsEnabled As Boolean = True
Public Property IsEnabled As Boolean
Get
Return m_IsEnabled
End Get
Set(value As Boolean)
m_IsEnabled = value
NotifyPropertyChanged("IsEnabled")
End Set
End Property
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Public Sub NotifyPropertyChanged(propName As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
End Sub
Sub New(Name As String)
m_Name = Name
End Sub
Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
Me.Name = Name
Me.IsSelected = IsSelected
Me.IsExpanded = IsExpanded
Me.IsActive = IsActive
End Sub
End Class
' Elemento del treeview che ha sottoelementi del suo stesso tipo
'Public Class TreeViewItem
' Inherits TreeViewItemBase
' Private m_sPictureString As String
' Private m_Items As ObservableCollection(Of TreeViewItem)
' Public Property PictureString As String
' Get
' Return m_sPictureString
' End Get
' Set(value As String)
' If value <> m_sPictureString Then
' m_sPictureString = value
' NotifyPropertyChanged("PictureString")
' End If
' End Set
' End Property
' Public Property Items As ObservableCollection(Of TreeViewItem)
' Get
' Return m_Items
' End Get
' Set(value As ObservableCollection(Of TreeViewItem))
' m_Items = value
' End Set
' End Property
' Sub New(Name As String)
' MyBase.New(Name)
' Me.Items = New ObservableCollection(Of TreeViewItem)
' End Sub
' Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
' MyBase.New(Name, IsSelected, IsExpanded, IsActive)
' Me.Items = New ObservableCollection(Of TreeViewItem)
' End Sub
'End Class
' Elemento che ha sottoelementi di tipo childitem
Public Class ParentItem
Inherits TreeViewItemBase
Private m_sPictureString As String
Private m_Items As ObservableCollection(Of ChildItem)
Public Property PictureString As String
Get
Return m_sPictureString
End Get
Set(value As String)
If value <> m_sPictureString Then
m_sPictureString = value
NotifyPropertyChanged("PictureString")
End If
End Set
End Property
Public Property Items As ObservableCollection(Of ChildItem)
Get
Return m_Items
End Get
Set(value As ObservableCollection(Of ChildItem))
m_Items = value
End Set
End Property
Sub New(Name As String)
MyBase.New(Name)
Me.Items = New ObservableCollection(Of ChildItem)
End Sub
Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
MyBase.New(Name, IsSelected, IsExpanded, IsActive)
Me.Items = New ObservableCollection(Of ChildItem)
End Sub
End Class
' Elemento presente solo come figlio di un ParentItem
Public Class ChildItem
Inherits TreeViewItemBase
Private m_sPictureString As String
Public Property PictureString As String
Get
Return m_sPictureString
End Get
Set(value As String)
If value <> m_sPictureString Then
m_sPictureString = value
NotifyPropertyChanged("PictureString")
End If
End Set
End Property
Sub New(Name As String)
MyBase.New(Name)
End Sub
Sub New(Name As String, IsSelected As Boolean, IsExpanded As Boolean, IsActive As Boolean)
MyBase.New(Name, IsSelected, IsExpanded, IsActive)
End Sub
End Class
+97
View File
@@ -0,0 +1,97 @@
Imports System.ComponentModel
Namespace EgtCAM5
Public Class ViewModelBase
Implements INotifyPropertyChanged
#Region "Constructor"
Protected Sub New()
End Sub
#End Region ' Constructor
#Region "DisplayName"
''' <summary>
''' Returns the user-friendly name of this object.
''' Child classes can set this property to a new value,
''' or override it to determine the value on-demand.
''' </summary>
Private m_sDisplayName As String
Public Overridable Property sDisplayName() As String
Get
Return m_sDisplayName
End Get
Protected Set(ByVal value As String)
m_sDisplayName = value
End Set
End Property
#End Region ' DisplayName
#Region "Debugging Aides"
''' <summary>
''' Warns the developer if this object does not have
''' a public property with the specified name. This
''' method does not exist in a Release build.
''' </summary>
<Conditional("DEBUG"), DebuggerStepThrough()> _
Public Sub VerifyPropertyName(ByVal sPropertyName As String)
' Verify that the property name matches a real,
' public, instance property on this object.
If TypeDescriptor.GetProperties(Me)(sPropertyName) Is Nothing Then
Dim msg As String = "Invalid property name: " & sPropertyName
If Me.ThrowOnInvalidPropertyName Then
Throw New Exception(msg)
Else
Debug.Fail(msg)
End If
End If
End Sub
''' <summary>
''' Returns whether an exception is thrown, or if a Debug.Fail() is used
''' when an invalid property name is passed to the VerifyPropertyName method.
''' The default value is false, but subclasses used by unit tests might
''' override this property's getter to return true.
''' </summary>
Private privateThrowOnInvalidPropertyName As Boolean
Protected Overridable Property ThrowOnInvalidPropertyName() As Boolean
Get
Return privateThrowOnInvalidPropertyName
End Get
Set(ByVal value As Boolean)
privateThrowOnInvalidPropertyName = value
End Set
End Property
#End Region ' Debugging Aides
#Region "INotifyPropertyChanged Members"
''' <summary>
''' Raised when a property on this object has a new value.
''' </summary>
Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
''' <summary>
''' Raises this object's PropertyChanged event.
''' </summary>
''' <param name="spropertyName">The property that has a new value.</param>
Protected Overridable Sub OnPropertyChanged(ByVal sPropertyName As String)
Me.VerifyPropertyName(sPropertyName)
If Me.PropertyChangedEvent IsNot Nothing Then
RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(sPropertyName))
End If
End Sub
#End Region ' INotifyPropertyChanged Members
End Class
End Namespace
+71
View File
@@ -0,0 +1,71 @@
Namespace EgtCAM5
''' <summary>
''' A command whose sole purpose is to
''' relay its functionality to other
''' objects by invoking delegates. The
''' default return value for the CanExecute
''' method is 'true'.
''' </summary>
Public Class RelayCommand
Implements ICommand
#Region "Fields"
Private ReadOnly _execute As Action(Of Object)
Private ReadOnly _canExecute As Predicate(Of Object)
#End Region ' Fields
#Region "Constructors"
''' <summary>
''' Creates a new command that can always execute.
''' </summary>
''' <param name="execute">The execution logic.</param>
Public Sub New(ByVal execute As Action(Of Object))
Me.New(execute, Nothing)
End Sub
''' <summary>
''' Creates a new command.
''' </summary>
''' <param name="execute">The execution logic.</param>
''' <param name="canExecute">The execution status logic.</param>
Public Sub New(ByVal execute As Action(Of Object), ByVal canExecute As Predicate(Of Object))
If execute Is Nothing Then
Throw New ArgumentNullException("execute")
End If
_execute = execute
_canExecute = canExecute
End Sub
#End Region ' Constructors
#Region "ICommand Members"
<DebuggerStepThrough> _
Public Function CanExecute(ByVal parameter As Object) As Boolean Implements ICommand.CanExecute
Return If(_canExecute Is Nothing, True, _canExecute(parameter))
End Function
Public Custom Event CanExecuteChanged As EventHandler Implements ICommand.CanExecuteChanged
AddHandler(ByVal value As EventHandler)
AddHandler CommandManager.RequerySuggested, value
End AddHandler
RemoveHandler(ByVal value As EventHandler)
RemoveHandler CommandManager.RequerySuggested, value
End RemoveHandler
RaiseEvent(ByVal sender As System.Object, ByVal e As System.EventArgs)
End RaiseEvent
End Event
Public Sub Execute(ByVal parameter As Object) Implements ICommand.Execute
_execute(parameter)
End Sub
#End Region ' ICommand Members
End Class
End Namespace
+190
View File
@@ -0,0 +1,190 @@
'----------------------------------------------------------------------------
' EgalTech 2015-2015
'----------------------------------------------------------------------------
' File : ConstGen.vb Data : 12.02.15 Versione : 1.6b3
' Contenuto : Modulo costanti generali.
'
'
'
' Modifiche : 12.02.15 DS Creazione modulo.
'
'
'----------------------------------------------------------------------------
Imports EgtUILib
Module ConstGen
' File con direttorio radice dei dati
Public Const DAT_FILE_NAME As String = "DataRoot.Ini"
Public Const S_DATA As String = "Data"
Public Const K_DATAROOT As String = "DataRoot"
' File con dati di licenza
Public Const LIC_FILE_NAME As String = "EgtCAM5.lic"
Public Const S_LICENCE As String = "Licence"
Public Const K_KEY As String = "Key"
' File di log generale
Public Const GENLOG_FILE_NAME As String = "EgtCAM5Log.txt"
' File di log dei comandi
Public Const CMDLOG_FILE_NAME As String = "EgtCAM5Log.tua"
' Sottodirettorio di configurazione
Public Const CONF_DIR As String = "Config"
' Sottodirettorio delle risorse
Public Const RES_DIR As String = "Resources"
' Sottodirettorio temporaneo
Public Const TEMP_DIR As String = "Temp"
' Sottodirettorio per Cam automatico
Public Const CAMAUTO_DIR As String = "CamAuto"
' Sottodirettorio per Csv automatico
Public Const CSVAUTO_DIR As String = "CsvAuto"
' Sottodirettorio per file Cnc
Public Const CNC_DIR As String = "CNC"
' Sottodirettorio di default per il salvataggio
Public Const SAVE_DFL_DIR As String = "Data"
' Sottodirettorio di default per il salvataggio con nome
Public Const SAVE_DFL_NAMEDIR As String = "MyProjects"
' Sottodirettorio di default per le macchine
Public Const MACHINES_DFL_DIR As String = "Machines"
' Sottodirettorio con le dime salvate
Public Const TEMPLATE_DFL_DIR As String = "CopyTemplate"
' Delta Z sovratavola per evitare problemi di visualizzazione texture
Public Const DELTAZ_ADDTAB As Double = 0.1
' Nome testa con ventose per spostamento pezzi
Public Const VACUUM_HEAD As String = "H4"
' Nome gruppo layout in testa con ventose
Public Const VACUUM_HEAD_LAYOUT As String = "LAYOUT"
' Nome oggetto frame prima uscita di una testa
Public Const HEAD_FIRST_EXIT As String = "_T1"
' Costanti per lavorazioni
Public Const MACH_GROUP As String = "Mach01"
Public Const MAIN_TAB As String = "MainTab"
Public Const SECOND_TAB As String = "2ndTab"
Public Const PHOTO_GRP As String = "Photos"
Public Const PHOTO_NAME As String = "Raw"
' Nome della superficie del grezzo
Public Const NAME_RAW_SOLID As String = "RawSolid"
' Nome del centro del grezzo
Public Const NAME_RAW_CENTER As String = "RawCenter"
' Nome del contorno di kerf nel grezzo
Public Const NAME_KERF As String = "Kerf"
' Chiave per info di kerf nel grezzo
Public Const KEY_KERF As String = "Kerf"
' Nome del contorno del grezzo
Public Const NAME_RAW_OUTLINE As String = "RawOutline"
' Nome della regione del kerf grezzo
Public Const NAME_KERF_REGION As String = "KerfRegion"
' Nome della regione fuori kerf nel grezzo
Public Const NAME_OUTKERF As String = "SheetOut"
' Chiave per definizione del grezzo per punti
Public Const KEY_RAWBYPOINTS As String = "Rbp"
' Nome del contorno di un'area rovinata
Public Const NAME_DAMAGED As String = "Damaged"
' Nome della regione di un'area rovinata
Public Const NAME_DAMAGED_REG As String = "DmgReg"
' Contrassegno di progetto OmagCut
Public Const NAME_PROJMARK As String = "OmagCut"
' Info per stato flag taglio ridotto
Public Const INFO_REDUCEDCUT = "ReducedCut"
' Info per lavorazioni già ordinate
Public Const INFO_MACHORDER As String = "MachOrder"
' Info per indice progetto
Public Const INFO_PROJINDEX As String = "ProjIndex"
' Nome layer delle regioni
Public Const NAME_REGION As String = "Region"
' Delta Z regioni di pezzi per evitare problemi di visualizzazione con grezzi
Public Const DELTAZ_REG As Double = 0.1
' Nome layer contorni esterni
Public Const NAME_OUTLOOP As String = "OutLoop"
' Nome layer contorni interni
Public Const NAME_INLOOP As String = "InLoop"
' Nome layer percorsi sul pezzo
Public Const NAME_ONPATH As String = "OnPath"
' Nome layer preview
Public Const NAME_PREVIEW As String = "PV"
' Info in entità da tagliare per affondamento
Public Const INFO_DEPTH As String = "Depth"
' Info in entità da tagliare per angolo di lato
Public Const INFO_SIDE_ANGLE As String = "SideAng"
' Info in entità da tagliare per abilitare possibilità di inversione
Public Const INFO_ENABLE_INVERT As String = "EnInv"
' Info in preview lavorazione con identificativo layer preview spostato nel pezzo
Public Const INFO_PV_ONPART_ID As String = "PvId"
' Info in lavorazione con identificativo lavorazioni inglobate
Public Const INFO_MCH_OTHMID As String = "OthMIds"
' Info lavorazione disabilitata dall'utente
Public Const INFO_MCH_USER_OFF As String = "UserOff"
' Nome contorno taglio
Public Const NAME_PV_CUT As String = "CUT"
' Nome contorno pre-taglio
Public Const NAME_PV_PRECUT As String = "PRC"
' Nome contorno post-taglio
Public Const NAME_PV_POSTCUT As String = "POC"
' Nome contorno in basso taglio
Public Const NAME_PV_DOWN_CUT As String = "DCUT"
' Nome contorno in basso pre-taglio
Public Const NAME_PV_DOWN_PRECUT As String = "DPRC"
' Nome contorno in basso post-taglio
Public Const NAME_PV_DOWN_POSTCUT As String = "DPOC"
' Info in lavorazione taglio per attacco originale
Public Const INFO_MCH_ORILEADIN As String = "OriLI"
' Info in lavorazione taglio per uscita originale
Public Const INFO_MCH_ORILEADOUT As String = "OriLO"
' Info in pezzo con path di Csv di provenienza
Public Const INFO_CSV_PATH As String = "CsvPath"
' Info in pezzo con suo nome in Csv
Public Const INFO_CSV_PART As String = "CsvPart"
' Nome di pezzo che è una cornice
Public Const NAME_FRAME As String = "Frame"
' Nome del layer con la sezione della cornice
Public Const NAME_SECT As String = "Sect"
' Nome del layer con la linea guida della cornice
Public Const NAME_GUIDE As String = "Guide"
' Nome del layer con la superficie della cornice
Public Const NAME_SURF As String = "Surf"
' Info con direzione della cornice (0=lungoX,1=lungoY)
Public Const INFO_FRAME_DIR As String = "Dir"
' Nome della lavorazione di sgrossatura cornici
Public Const NAME_FRAME_SAWROU As String = "FrameSawRou"
' Nome della lavorazione di finitura cornici
Public Const NAME_FRAME_SAWFIN As String = "FrameSawFin"
' Nome della lavorazione di spatolatura cornici
Public Const NAME_FRAME_SAWSIDEFIN As String = "FrameSawSideFin"
' Nome di pezzo temporaneo che serve per copia dime
Public Const NAME_COPYTEMPLATE As String = "CopyTemplate"
' Costante per flag di BBox
Public Const BBFLAG As Integer = GDB_BB.ONLY_VISIBLE + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM
' Colori per lavorazioni
Public Function COL_MCH_CUT() As Color3d
Return New Color3d(0, 255, 0)
End Function
Public Function COL_MCH_DISABLED() As Color3d
Return New Color3d(192, 192, 192)
End Function
Public Function COL_MCH_DIS_INTERF() As Color3d
Return New Color3d(255, 128, 128)
End Function
Public Function COL_MCH_FREE() As Color3d
Return New Color3d(0, 0, 255)
End Function
Public Function COL_MCH_INTERF() As Color3d
Return New Color3d(255, 0, 0)
End Function
' Colore superficie di cornice
Public Function COL_FRAME() As Color3d
Return New Color3d(128, 192, 96)
End Function
End Module
+93
View File
@@ -0,0 +1,93 @@
'----------------------------------------------------------------------------
' EgalTech 2015-2015
'----------------------------------------------------------------------------
' File : ConstIni.vb Data : 12.02.15 Versione : 1.6b3
' Contenuto : Modulo costanti sezione e chiavi per file Ini.
'
'
'
' Modifiche : 12.02.15 DS Creazione modulo.
'
'
'----------------------------------------------------------------------------
Module ConstIni
Public Const INI_FILE_NAME As String = "EgtCAM5.ini"
Public Const S_GENERAL As String = "General"
Public Const K_DEBUG As String = "Debug"
Public Const K_LICENCE As String = "Licence"
Public Const K_USERLEVEL As String = "UserLevel"
Public Const K_MAXINST As String = "MaxInstances"
Public Const K_INSTANCES As String = "Instances"
Public Const K_COMMANDLOG As String = "CommandLog"
Public Const K_MESSAGESDIR As String = "MessagesDir"
Public Const K_MESSAGES As String = "Messages"
Public Const K_WINPLACE As String = "WinPlace"
Public Const K_LASTNGEDIR As String = "LastNgeDir"
Public Const K_LASTNGEOBJDIR As String = "LastNgeObjDir"
Public Const K_LASTLUADIR As String = "LastLuaDir"
Public Const K_LASTIMPDIR As String = "LastImpDir"
Public Const K_LASTEXPDIR As String = "LastExpDir"
Public Const S_LUA As String = "Lua"
Public Const K_LIBSDIR As String = "LibsDir"
Public Const K_BASELIB As String = "BaseLib"
Public Const S_GEOMDB As String = "GeomDB"
Public Const K_DEFAULTFONT As String = "DefaultFont"
Public Const K_NFEFONTDIR As String = "NfeFontDir"
Public Const K_DEFAULTCOLOR As String = "DefaultColor"
Public Const K_SAVETYPE As String = "SaveType"
Public Const S_OPENGL As String = "OpenGL"
Public Const K_DOUBLEBUFFER As String = "DoubleBuffer"
Public Const K_COLORBITS As String = "ColorBits"
Public Const K_DEPTHBITS As String = "DepthBits"
Public Const K_DRIVER As String = "Driver"
Public Const S_SCENE As String = "Scene"
Public Const K_BACKTOP As String = "BackTop"
Public Const K_BACKBOTTOM As String = "BackBottom"
Public Const K_SHOWGFRAME As String = "ShowGFrame"
Public Const K_MARK As String = "Mark"
Public Const K_SELSURF As String = "SelSurf"
Public Const K_SHOWMODE As String = "ShowMode"
Public Const K_CURVEDIR As String = "CurveDir"
Public Const K_SHOWTRIAADV As String = "ShowTriaAdv"
Public Const K_ZOOMWIN As String = "ZoomWin"
Public Const K_DISTLINE As String = "DistLine"
Public Const K_MMUNITS As String = "MmUnits"
Public Const S_GRID As String = "Grid"
Public Const K_SHOWGRID As String = "ShowGrid"
Public Const K_SHOWFRAME As String = "ShowFrame"
Public Const K_SNAPSTEP As String = "SnapStep"
Public Const K_SNAPSTEPINCH As String = "SnapStepInch"
Public Const K_MINLINESSTEP As String = "MinLineSStep"
Public Const K_MAJLINESSTEP As String = "MajLineSStep"
Public Const K_EXTSSTEP As String = "ExtSStep"
Public Const K_MINLNCOLOR As String = "MinLnColor"
Public Const K_MAJLNCOLOR As String = "MajLnColor"
Public Const S_TABSPECIAL As String = "TabSpecial"
Public Const K_TSSHOW As String = "Show"
Public Const S_COMPO As String = "Compo"
Public Const K_CMPWINPLACE As String = "WinPlace"
Public Const K_COMPODIR As String = "CompoDir"
Public Const S_FLATPARTS As String = "FlatParts"
Public Const K_FLPWINPLACE As String = "WinPlace"
Public Const K_FLPCURRDIR As String = "CurrDir"
Public Const S_MACH As String = "Mach"
Public Const K_MACHINESDIR As String = "MachinesDir"
Public Const K_TOOLMAKERSDIR As String = "ToolMakersDir"
Public Const S_MRUFILES As String = "MruFiles"
Public Const S_MRUSCRIPTS As String = "MruScripts"
Public Const K_FILE As String = "File"
End Module
+38
View File
@@ -0,0 +1,38 @@
Module ConstMachIni
Public Const S_TOOLS As String = "Tools"
Public Const K_DRILLBIT As String = "Drillbit"
Public Const K_SAWBLADE As String = "Sawblade"
Public Const K_MILL As String = "Mill"
Public Const K_MORTISE As String = "Mortise"
Public Const K_COMPO As String = "Compo"
Public Const K_SHOWTOOLCHANGER As String = "ShowToolChanger"
Public Const K_SHOWHEADEXIT As String = "ShowHeadExit"
Public Const K_DRILLHOLDER As String = "DrillHolder"
Public Const K_SAWBLADEHOLDER As String = "SawBladeHolder"
Public Const K_MILLHOLDER As String = "MillHolder"
Public Const K_DRILLMAKER As String = "DrillMaker"
Public Const K_SAWBLADEMAKER As String = "SawBladeMaker"
Public Const K_MILLMAKER As String = "MillMaker"
Public Const K_MOUNTEDTOOLCONFIG As String = "MountedToolConfig"
Public Const S_TOOLHOLDER As String = "ToolHolder"
Public Const S_MACHININGS As String = "Machinings"
Public Const K_SAWING As String = "Sawing"
Public Const K_DRILLING As String = "Drilling"
Public Const K_MILLING As String = "Milling"
Public Const K_POCKETING As String = "Pocketing"
Public Const K_MORTISING As String = "Mortising"
Public Const K_SAWROUGHING As String = "SawRoughing"
Public Const K_SAWFINISHING As String = "SawFinishing"
Public Const S_TOOLCHANGER As String = "ToolChanger"
Public Const K_NUMBER As String = "Number"
Public Const K_POS As String = "Pos"
Public Const K_NAME As String = "Name"
Public Const K_MANUALNUMBER As String = "ManualNumber"
Public Const K_MANUALPOS As String = "ManualPos"
Public Const K_MANUALNAME As String = "ManualName"
End Module
+33
View File
@@ -0,0 +1,33 @@
Module ConstMsg
'Public Const MSG_MISSINGKEYWD As Integer = 10100
'Public Const MSG_NUMERICKEYBOARDWD As Integer = 10200
Public Const MSG_EGTCAM5 As Integer = 5000
Public Const MSG_MAINWINDOW As Integer = MSG_EGTCAM5
Public Const MSG_TOOLSDBPAGE As Integer = MSG_EGTCAM5 + 1000
Public Const MSG_MACHININGSDBPAGE As Integer = MSG_EGTCAM5 + 1100
'Public Const MSG_MANUALAXESMOVEPAGEUC As Integer = MSG_OMAGCUT + 220
'Public Const MSG_CADCUTPAGEUC As Integer = MSG_OMAGCUT + 300
'Public Const MSG_NESTPAGEUC As Integer = MSG_OMAGCUT + 330
'Public Const MSG_SPLITPAGEUC As Integer = MSG_OMAGCUT + 340
'Public Const MSG_MOVERAWPAGEUC As Integer = MSG_OMAGCUT + 360
'Public Const MSG_DRAWPAGEUC As Integer = MSG_OMAGCUT + 380
'Public Const MSG_COMPONENTPAGEUC As Integer = MSG_OMAGCUT + 400
'Public Const MSG_IMPORTPAGEUC As Integer = MSG_OMAGCUT + 450
'Public Const MSG_OPENPAGEUC As Integer = MSG_OMAGCUT + 490
'Public Const MSG_RAWPARTPAGEUC As Integer = MSG_OMAGCUT + 500
'Public Const MSG_CHOOSEMACHININGPAGEUC As Integer = MSG_OMAGCUT + 535
'Public Const MSG_SIMULATIONPAGEUC As Integer = MSG_OMAGCUT + 550
'Public Const MSG_FRAMECUTPAGEUC As Integer = MSG_OMAGCUT + 600
'Public Const MSG_MACHINEPAGEUC As Integer = MSG_OMAGCUT + 700
'Public Const MSG_TOOLSDBPAGEUC As Integer = MSG_OMAGCUT + 720
'Public Const MSG_MACHININGSDBPAGEUC As Integer = MSG_OMAGCUT + 760
'Public Const MSG_COMBOBOXPARAM As Integer = MSG_OMAGCUT + 800
'Public Const MSG_ALARMSPAGEUC As Integer = MSG_OMAGCUT + 900
'Public Const MSG_MACHINECNPAGEUC As Integer = MSG_OMAGCUT + 930
'Public Const MSG_OPTIONSPAGEUC As Integer = MSG_OMAGCUT + 950
'Public Const MSG_EGTMSGBOX As Integer = MSG_OMAGCUT + 1100
'Public Const MSG_CSVPAGEUC As Integer = MSG_OMAGCUT + 1200
End Module
+28
View File
@@ -0,0 +1,28 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EgtCAM5", "EgtCAM5.vbproj", "{D8543E3E-F5E1-44F3-813C-94E3A91677BC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Debug|x64.ActiveCfg = Debug|x64
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Debug|x64.Build.0 = Debug|x64
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Debug|x86.ActiveCfg = Debug|x86
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Debug|x86.Build.0 = Debug|x86
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Release|x64.ActiveCfg = Release|x64
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Release|x64.Build.0 = Release|x64
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Release|x86.ActiveCfg = Release|x86
{D8543E3E-F5E1-44F3-813C-94E3A91677BC}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
+364
View File
@@ -0,0 +1,364 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{D8543E3E-F5E1-44F3-813C-94E3A91677BC}</ProjectGuid>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
<OutputType>WinExe</OutputType>
<RootNamespace>EgtCAM5</RootNamespace>
<AssemblyName>EgtCAM5</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<MyType>Custom</MyType>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Text</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Debug\</OutputPath>
<DocumentationFile>EgtCAM5.xml</DocumentationFile>
<NoWarn>
</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Release\</OutputPath>
<DocumentationFile>EgtCAM5.xml</DocumentationFile>
<Optimize>true</Optimize>
<NoWarn>
</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x86\Debug\</OutputPath>
<DocumentationFile>EgtCAM5.xml</DocumentationFile>
<NoWarn>
</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x86\Release\</OutputPath>
<DocumentationFile>EgtCAM5.xml</DocumentationFile>
<Optimize>true</Optimize>
<NoWarn>
</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
<Reference Include="EgtUILib">
<HintPath>..\..\EgtProg\DllD32\EgtUILib.dll</HintPath>
</Reference>
<Reference Include="EgtWPFLib5">
<HintPath>..\EgtWPFLib5\bin\Debug\EgtWPFLib5.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="UIAutomationProvider" />
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="WindowsFormsIntegration" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="Application.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="AttachedBehaviours\InputBindingsManager.vb" />
<Compile Include="Base\BaseWindow\BaseWindowView.xaml.vb">
<DependentUpon>BaseWindowView.xaml</DependentUpon>
</Compile>
<Compile Include="Base\TabViewModel.vb" />
<Compile Include="Base\TreeView\TreeViewItemBase.vb" />
<Compile Include="Base\ViewModelBase.vb" />
<Compile Include="Command\RelayCommand.vb" />
<Compile Include="Constants\ConstGen.vb" />
<Compile Include="Constants\ConstIni.vb" />
<Compile Include="Constants\ConstMachIni.vb" />
<Compile Include="Constants\ConstMsg.vb" />
<Compile Include="EgtCAM5Params.vb" />
<Compile Include="MachiningsDbPage\MachiningsDbView.xaml.vb">
<DependentUpon>MachiningsDbView.xaml</DependentUpon>
</Compile>
<Compile Include="MachiningsDbPage\MachiningsDbViewModel.vb" />
<Compile Include="MachiningsDbPage\MachiningTreeView.vb" />
<Compile Include="MainWindow\MainWindowViewModel.vb" />
<Compile Include="Messenger.vb" />
<Compile Include="ProjectPage\DrawPanel\DrawPanelView.xaml.vb">
<DependentUpon>DrawPanelView.xaml</DependentUpon>
</Compile>
<Compile Include="ProjectPage\DrawPanel\DrawPanelViewModel.vb" />
<Compile Include="ProjectPage\GridViewPanel\GridViewPanelView.xaml.vb">
<DependentUpon>GridViewPanelView.xaml</DependentUpon>
</Compile>
<Compile Include="ProjectPage\GridViewPanel\GridViewPanelViewModel.vb" />
<Compile Include="IniFile.vb" />
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\DrawOptionPanelView.xaml.vb">
<DependentUpon>DrawOptionPanelView.xaml</DependentUpon>
</Compile>
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\DrawOptionPanelViewModel.vb" />
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\InfoExpander\InfoExpanderView.xaml.vb">
<DependentUpon>InfoExpanderView.xaml</DependentUpon>
</Compile>
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\InfoExpander\InfoExpanderViewModel.vb" />
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\InputExpander\InputExpanderView.xaml.vb">
<DependentUpon>InputExpanderView.xaml</DependentUpon>
</Compile>
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\InputExpander\InputExpanderViewModel.vb" />
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\ManageLayerExpander\ManageLayerExpanderView.xaml.vb">
<DependentUpon>ManageLayerExpanderView.xaml</DependentUpon>
</Compile>
<Compile Include="ProjectPage\OptionPanel\DrawOptionPanel\ManageLayerExpander\ManageLayerExpanderViewModel.vb" />
<Compile Include="ProjectPage\ProjectView.xaml.vb">
<DependentUpon>ProjectView.xaml</DependentUpon>
</Compile>
<Compile Include="ProjectPage\ProjectViewModel.vb" />
<Compile Include="StatusBar\StatusBarView.xaml.vb">
<DependentUpon>StatusBarView.xaml</DependentUpon>
</Compile>
<Compile Include="StatusBar\StatusBarViewModel.vb" />
<Compile Include="SharedFieldsClass.vb" />
<Compile Include="ToolsDbPage\ToolsDbView.xaml.vb">
<DependentUpon>ToolsDbView.xaml</DependentUpon>
</Compile>
<Compile Include="ToolsDbPage\ToolsDbViewModel.vb" />
<Compile Include="ToolsDbPage\ToolTreeView.vb" />
<Compile Include="Utility.vb" />
<Page Include="Base\BaseWindow\BaseWindowView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="MachiningsDbPage\MachiningsDbView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="MainWindow\MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="Application.xaml.vb">
<DependentUpon>Application.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="MainWindow\MainWindow.xaml.vb">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="EgtCAM5Resources.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ProjectPage\DrawPanel\DrawPanelView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProjectPage\GridViewPanel\GridViewPanelView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProjectPage\OptionPanel\DrawOptionPanel\DrawOptionPanelView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProjectPage\OptionPanel\DrawOptionPanel\InfoExpander\InfoExpanderView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProjectPage\OptionPanel\DrawOptionPanel\InputExpander\InputExpanderView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProjectPage\OptionPanel\DrawOptionPanel\ManageLayerExpander\ManageLayerExpanderView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProjectPage\ProjectView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="StatusBar\StatusBarView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ToolsDbPage\ToolsDbView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows" />
<Import Include="System.Windows.Controls" />
<Import Include="System.Windows.Data" />
<Import Include="System.Windows.Documents" />
<Import Include="System.Windows.Input" />
<Import Include="System.Windows.Shapes" />
<Import Include="System.Windows.Media" />
<Import Include="System.Windows.Media.Imaging" />
<Import Include="System.Windows.Navigation" />
</ItemGroup>
<ItemGroup>
<Compile Include="My Project\AssemblyInfo.vb">
<SubType>Code</SubType>
</Compile>
<Compile Include="My Project\MyExtensions\MyWpfExtension.vb">
<VBMyExtensionTemplateID>Microsoft.VisualBasic.WPF.MyExtension</VBMyExtensionTemplateID>
<VBMyExtensionTemplateVersion>1.0.0.0</VBMyExtensionTemplateVersion>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
</EmbeddedResource>
<None Include="app.config" />
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<AppDesigner Include="My Project\" />
</ItemGroup>
<ItemGroup>
<Folder Include="Internals\" />
<Folder Include="ProjectPage\OptionPanel\MachiningOptionPanel\" />
<Folder Include="Resources\OptionPanel\DrawOptionPanel\" />
<Folder Include="Resources\OptionPanel\MachiningOptionPanel\" />
<Folder Include="Resources\ProjectPage\" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DrawPanel\Arc3P.png" />
<Resource Include="Resources\DrawPanel\ArcCSE.png" />
<Resource Include="Resources\DrawPanel\ArcPDP.png" />
<Resource Include="Resources\DrawPanel\BreakCurve.png" />
<Resource Include="Resources\DrawPanel\ChangeColor.png" />
<Resource Include="Resources\DrawPanel\ChangeLayer.png" />
<Resource Include="Resources\DrawPanel\ChangeStart.png" />
<Resource Include="Resources\DrawPanel\Circle.png" />
<Resource Include="Resources\DrawPanel\Delete.png" />
<Resource Include="Resources\DrawPanel\ExplodeCurve.png" />
<Resource Include="Resources\DrawPanel\ExplodeSurf.png" />
<Resource Include="Resources\DrawPanel\ExtendCurve.png" />
<Resource Include="Resources\DrawPanel\Extrude.png" />
<Resource Include="Resources\DrawPanel\Fillet.png" />
<Resource Include="Resources\DrawPanel\InvertCurve.png" />
<Resource Include="Resources\DrawPanel\InvertSurf.png" />
<Resource Include="Resources\DrawPanel\JoinCurve.png" />
<Resource Include="Resources\DrawPanel\Line2P.png" />
<Resource Include="Resources\DrawPanel\LinePDL.png" />
<Resource Include="Resources\DrawPanel\MergeSurf.png" />
<Resource Include="Resources\DrawPanel\Mirror.png" />
<Resource Include="Resources\DrawPanel\Move.png" />
<Resource Include="Resources\DrawPanel\Offset.png" />
<Resource Include="Resources\DrawPanel\Plane.png" />
<Resource Include="Resources\DrawPanel\Point.png" />
<Resource Include="Resources\DrawPanel\Polygon.png" />
<Resource Include="Resources\DrawPanel\Rectangle2P.png" />
<Resource Include="Resources\DrawPanel\Revolve.png" />
<Resource Include="Resources\DrawPanel\Rotate.png" />
<Resource Include="Resources\DrawPanel\Ruled.png" />
<Resource Include="Resources\DrawPanel\Scale.png" />
<Resource Include="Resources\DrawPanel\Screw.png" />
<Resource Include="Resources\DrawPanel\Text.png" />
<Resource Include="Resources\DrawPanel\ThickCurve.png" />
<Resource Include="Resources\GridViewPanel\Analyze.png" />
<Resource Include="Resources\GridViewPanel\CurveDir.png" />
<Resource Include="Resources\GridViewPanel\GetDist.png" />
<Resource Include="Resources\GridViewPanel\LookFromGrid.png" />
<Resource Include="Resources\GridViewPanel\LookFromISO_SO.png" />
<Resource Include="Resources\GridViewPanel\ZoomAll.png" />
<Resource Include="Resources\GridViewPanel\ZoomIn.png" />
<Resource Include="Resources\GridViewPanel\ZoomOut.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\GridViewPanel\Cplane3POINTS.png" />
<Resource Include="Resources\GridViewPanel\CplaneBACK.png" />
<Resource Include="Resources\GridViewPanel\CplaneBOTTOM.png" />
<Resource Include="Resources\GridViewPanel\CplaneELEVATION.png" />
<Resource Include="Resources\GridViewPanel\CplaneFRONT.png" />
<Resource Include="Resources\GridViewPanel\CplaneLEFT.png" />
<Resource Include="Resources\GridViewPanel\CplaneOBJECT.png" />
<Resource Include="Resources\GridViewPanel\CplaneORIGIN.png" />
<Resource Include="Resources\GridViewPanel\CplanePERPCURVE.png" />
<Resource Include="Resources\GridViewPanel\CplaneRIGHT.png" />
<Resource Include="Resources\GridViewPanel\CplaneROTATE.png" />
<Resource Include="Resources\GridViewPanel\CplaneTOP.png" />
<Resource Include="Resources\GridViewPanel\CplaneView.png" />
<Resource Include="Resources\GridViewPanel\LookFromBACK.png" />
<Resource Include="Resources\GridViewPanel\LookFromBOTTOM.png" />
<Resource Include="Resources\GridViewPanel\LookFromFRONT.png" />
<Resource Include="Resources\GridViewPanel\LookFromISO_NE.png" />
<Resource Include="Resources\GridViewPanel\LookFromISO_NW.png" />
<Resource Include="Resources\GridViewPanel\LookFromISO_SE.png" />
<Resource Include="Resources\GridViewPanel\LookFromISO_SW.png" />
<Resource Include="Resources\GridViewPanel\LookFromLEFT.png" />
<Resource Include="Resources\GridViewPanel\LookFromRIGHT.png" />
<Resource Include="Resources\GridViewPanel\LookFromTOP.png" />
<Resource Include="Resources\GridViewPanel\LookToCplane.png" />
<Resource Include="Resources\GridViewPanel\RenderingHL.png" />
<Resource Include="Resources\GridViewPanel\RenderingSH.png" />
<Resource Include="Resources\GridViewPanel\RenderingWF.png" />
<Resource Include="Resources\TreeView\Folder.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5R32.exe
IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Debug" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5D32.exe
IF "$(PlatformName)"=="x64" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5R64.exe
IF "$(PlatformName)"=="x64" IF "$(ConfigurationName)" == "Debug" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5D64.exe</PostBuildEvent>
</PropertyGroup>
</Project>
+4
View File
@@ -0,0 +1,4 @@
Module EgtCAM5Params
End Module
+155
View File
@@ -0,0 +1,155 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:EgtCAM5"
xmlns:ViewModel="clr-namespace:EgtCAM5.EgtCAM5">
<!--
This template applies a ProjectView to an instance
of the ProjectViewModel class shown in the main window.
-->
<DataTemplate DataType="{x:Type ViewModel:ProjectViewModel}">
<local:ProjectView />
</DataTemplate>
<!--
This template applies a ToolsDbView to an instance
of the ToolsDbViewModel class shown in the main window.
-->
<DataTemplate DataType="{x:Type ViewModel:ToolsDbViewModel}">
<local:ToolsDbView />
</DataTemplate>
<!--
This template applies a MachiningsDbView to an instance
of the MachiningsDbViewModel class shown in the main window.
-->
<DataTemplate DataType="{x:Type ViewModel:MachiningsDbViewModel}">
<local:MachiningsDbView />
</DataTemplate>
<!--
This template applies an GridViewPanelView to an instance
of the GridViewPanelViewModel class shown in the ProjectPage.
-->
<DataTemplate DataType="{x:Type ViewModel:GridViewPanelViewModel}">
<local:GridViewPanelView />
</DataTemplate>
<!--
This template applies an DrawPanelView to an instance
of the DrawPanelViewModel class shown in the ProjectPage.
-->
<DataTemplate DataType="{x:Type ViewModel:DrawPanelViewModel}">
<local:DrawPanelView />
</DataTemplate>
<!--
This template applies an DrawOptionPanelView to an instance
of the DrawOptionPanelViewModel class shown in the ProjectPage.
-->
<DataTemplate DataType="{x:Type ViewModel:DrawOptionPanelViewModel}">
<local:DrawOptionPanelView />
</DataTemplate>
<!--
This template applies an DrawOptionPanelView to an instance
of the DrawOptionPanelViewModel class shown in the ProjectPage.
-->
<DataTemplate DataType="{x:Type ViewModel:InputExpanderViewModel}">
<local:InputExpanderView />
</DataTemplate>
<!--
This template applies an StatusBarView to an instance
of the StatusBarViewModel class shown in the main window.
-->
<DataTemplate DataType="{x:Type ViewModel:StatusBarViewModel}">
<local:StatusBarView />
</DataTemplate>
<!--Style for the EgtTabControl that permit to select new tab without cancel the older one--><!--
<SolidColorBrush x:Key="TabControlNormalBorderBrush" Color="#8C8E94"/>
<Style TargetType="{x:Type local:EgtTabControl}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="Padding" Value="4,4,4,4"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="{StaticResource TabControlNormalBorderBrush}"/>
<Setter Property="Background" Value="#F9F9F9"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:EgtTabControl}">
<Grid ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="ColumnDefinition0"/>
<ColumnDefinition x:Name="ColumnDefinition1" Width="0"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition x:Name="RowDefinition0" Height="Auto"/>
<RowDefinition x:Name="RowDefinition1" Height="*"/>
</Grid.RowDefinitions>
<TabPanel x:Name="HeaderPanel" Grid.Column="0" IsItemsHost="true" Margin="2,2,2,0" Grid.Row="0" KeyboardNavigation.TabIndex="1" Panel.ZIndex="1"/>
<Border x:Name="ContentPanel" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.Column="0" KeyboardNavigation.DirectionalNavigation="Contained" Grid.Row="1" KeyboardNavigation.TabIndex="2" KeyboardNavigation.TabNavigation="Local">
<Grid x:Name="PART_ItemsHolder" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
--><!--<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>--><!--
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="TabStripPlacement" Value="Bottom">
<Setter Property="Grid.Row" TargetName="HeaderPanel" Value="1"/>
<Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
<Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
<Setter Property="Height" TargetName="RowDefinition1" Value="Auto"/>
<Setter Property="Margin" TargetName="HeaderPanel" Value="2,0,2,2"/>
</Trigger>
<Trigger Property="TabStripPlacement" Value="Left">
<Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/>
<Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
<Setter Property="Grid.Column" TargetName="HeaderPanel" Value="0"/>
<Setter Property="Grid.Column" TargetName="ContentPanel" Value="1"/>
<Setter Property="Width" TargetName="ColumnDefinition0" Value="Auto"/>
<Setter Property="Width" TargetName="ColumnDefinition1" Value="*"/>
<Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
<Setter Property="Height" TargetName="RowDefinition1" Value="0"/>
<Setter Property="Margin" TargetName="HeaderPanel" Value="2,2,0,2"/>
</Trigger>
<Trigger Property="TabStripPlacement" Value="Right">
<Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0"/>
<Setter Property="Grid.Row" TargetName="ContentPanel" Value="0"/>
<Setter Property="Grid.Column" TargetName="HeaderPanel" Value="1"/>
<Setter Property="Grid.Column" TargetName="ContentPanel" Value="0"/>
<Setter Property="Width" TargetName="ColumnDefinition0" Value="*"/>
<Setter Property="Width" TargetName="ColumnDefinition1" Value="Auto"/>
<Setter Property="Height" TargetName="RowDefinition0" Value="*"/>
<Setter Property="Height" TargetName="RowDefinition1" Value="0"/>
<Setter Property="Margin" TargetName="HeaderPanel" Value="0,2,2,2"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>-->
<!--GridViewPanel-->
<Style x:Key="EgtCAM5_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Height" Value="30"/>
<Setter Property="Width" Value="30"/>
</Style>
<Style x:Key="EgtCAM5_ToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Height" Value="30"/>
<Setter Property="Width" Value="30"/>
</Style>
<Style x:Key="EgtCAM5_RadioButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource EgtCAM5_ToggleButton}">
</Style>
</ResourceDictionary>
+45
View File
@@ -0,0 +1,45 @@
Imports EgtUILib
Module IniFile
' MainWindow Page
Friend m_sIniFilePath As String
Friend m_sMachinesRoot As String
' Project Page
Friend m_ProjectSceneContext As Integer
' TOOLS DB PAGE
Friend m_sDbsCurrMachIniFilePath As String 'IniFile della macchina correntemente selezionata nella pagina di Db selezionata (Tools o Machinings)
Friend m_sTdbCurrMachToolsDirPath As String
' Variabile che contiene la path della cartella che contiene i ToolMaker
Friend m_sToolMakersDir As String = String.Empty
' Variabile che contiene il contesto della scena presente nel database utensili
Friend m_ToolsDbSceneContext As Integer
Public Function GetPrivateProfileInt(IpAppName As String, IpKeyName As String, nDefault As Integer) As Integer
Return EgtUILib.GetPrivateProfileInt(IpAppName, IpKeyName, nDefault, m_sIniFilePath)
End Function
Public Function GetPrivateProfileDouble(IpAppName As String, IpKeyName As String, nDefault As Integer) As Double
Return EgtUILib.GetPrivateProfileDouble(IpAppName, IpKeyName, nDefault, m_sIniFilePath)
End Function
Public Function GetPrivateProfileString(IpAppName As String, IpKeyName As String, IpDefault As String, ByRef IpString As String) As Integer
Return EgtUILib.GetPrivateProfileString(IpAppName, IpKeyName, IpDefault, IpString, m_sIniFilePath)
End Function
Public Function GetPrivateProfileColor(IpAppName As String, IpKeyName As String, ByRef Col As EgtUILib.EgtInterface.Color3d) As Boolean
Return EgtUILib.GetPrivateProfileColor(IpAppName, IpKeyName, Col, m_sIniFilePath)
End Function
Public Function GetPrivateProfileWinPos(IpAppName As String, IpKeyName As String, ByRef nFlag As Integer, ByRef nLeft As Integer, ByRef nTop As Integer, ByRef nWidth As Integer, ByRef nHeight As Integer) As Boolean
Return EgtUILib.GetPrivateProfileWinPos(IpAppName, IpKeyName, nFlag, nLeft, nTop, nWidth, nHeight, m_sIniFilePath)
End Function
Public Function GetPrivateProfileZoomWin(IpAppName As String, IpKeyName As String, ByRef bOutline As Boolean, ByRef Col As EgtUILib.EgtInterface.Color3d) As Boolean
Return EgtUILib.GetPrivateProfileZoomWin(IpAppName, IpKeyName, bOutline, Col, m_sIniFilePath)
End Function
Public Function WritePrivateProfileString(IpAppName As String, IpKeyName As String, ByRef IpString As String) As Boolean
Return EgtUILib.WritePrivateProfileString(IpAppName, IpKeyName, IpString, m_sIniFilePath)
End Function
End Module
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,3 @@
Public Class MachiningsDbView
End Class
+641
View File
@@ -0,0 +1,641 @@
Imports System.Windows.Forms.Integration
Imports System.Collections.ObjectModel
Imports System.IO
Imports EgtUILib
Namespace EgtCAM5
Public Class MachiningsDbViewModel
Inherits TabViewModel
' Lista delle macchine disponibili nel programma
Private m_MachinesList As New ObservableCollection(Of Machine)
Public Property MachinesList As ObservableCollection(Of Machine)
Get
Return m_MachinesList
End Get
Set(value As ObservableCollection(Of Machine))
m_MachinesList = value
End Set
End Property
' Macchina correntemente selezionata e quindi attiva
Private m_SelectedMachine As Machine
Public Property SelectedMachine As Machine
Get
Return m_SelectedMachine
End Get
Set(value As Machine)
If value IsNot m_SelectedMachine Then
m_SelectedMachine = value
'EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtSetCurrMachine(m_SelectedMachine.Name)
IniFile.m_sDbsCurrMachIniFilePath = m_SelectedMachine.MachineDirPath & "\" & m_SelectedMachine.Name & ".ini"
'IniFile.m_sTdbCurrMachToolsDirPath = m_SelectedMachine.MachineDirPath & "\Tools"
m_MachiningsList.Clear()
LoadSelectedMachineMachinings()
OnPropertyChanged("SelectedMachine")
End If
End Set
End Property
' Lista delle lavorazioni
Private m_MachiningsList As New ObservableCollection(Of FamilyMachiningTreeViewItem)
Public Property MachiningsList As ObservableCollection(Of FamilyMachiningTreeViewItem)
Get
Return m_MachiningsList
End Get
Set(value As ObservableCollection(Of FamilyMachiningTreeViewItem))
m_MachiningsList = value
End Set
End Property
' Definizione comandi
Private m_cmdNew As ICommand
Private m_cmdSave As ICommand
Private m_cmdRemove As ICommand
'Definizione dei messaggi della pagina
Public ReadOnly Property InvertTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 51)
End Get
End Property
Public ReadOnly Property LeaveTabTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 52)
End Get
End Property
Public ReadOnly Property WorkSideTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 54)
End Get
End Property
Public ReadOnly Property HeadSideTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 55)
End Get
End Property
Public ReadOnly Property LeadInTypeTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 56)
End Get
End Property
Public ReadOnly Property ExtLinkTypeTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 57)
End Get
End Property
Public ReadOnly Property LeadOutTypeTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 58)
End Get
End Property
Public ReadOnly Property CurveUseTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 59)
End Get
End Property
Public ReadOnly Property StepTypeTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 60)
End Get
End Property
Public ReadOnly Property LeadLinkTypeTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 62)
End Get
End Property
Public ReadOnly Property SpeedTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 63)
End Get
End Property
Public ReadOnly Property FeedTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 64)
End Get
End Property
Public ReadOnly Property StartFeedTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 65)
End Get
End Property
Public ReadOnly Property EndFeedTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 66)
End Get
End Property
Public ReadOnly Property TipFeedTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 67)
End Get
End Property
Public ReadOnly Property OffSrTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 68)
End Get
End Property
Public ReadOnly Property OffSlTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 69)
End Get
End Property
Public ReadOnly Property SideAngleTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 71)
End Get
End Property
Public ReadOnly Property ApproxTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 72)
End Get
End Property
Public ReadOnly Property StartPosTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 73)
End Get
End Property
Public ReadOnly Property StartSlowLenTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 74)
End Get
End Property
Public ReadOnly Property EndSlowLenTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 75)
End Get
End Property
Public ReadOnly Property ThrouAddLenTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 76)
End Get
End Property
Public ReadOnly Property StepParTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 77)
End Get
End Property
Public ReadOnly Property ReturnPosTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 78)
End Get
End Property
Public ReadOnly Property TabLenTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 80)
End Get
End Property
Public ReadOnly Property TabDistTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 81)
End Get
End Property
Public ReadOnly Property TabHeightTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 82)
End Get
End Property
Public ReadOnly Property TabAngleTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 83)
End Get
End Property
Public ReadOnly Property LiTangTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 84)
End Get
End Property
Public ReadOnly Property LiPerpTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 85)
End Get
End Property
Public ReadOnly Property LiElevTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 86)
End Get
End Property
Public ReadOnly Property LiCompLenTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 87)
End Get
End Property
Public ReadOnly Property LoTangTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 88)
End Get
End Property
Public ReadOnly Property LoPerpTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 89)
End Get
End Property
Public ReadOnly Property LoElevTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 90)
End Get
End Property
Public ReadOnly Property LoCompLenTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 91)
End Get
End Property
Public ReadOnly Property StartAddLenTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 92)
End Get
End Property
Public ReadOnly Property EndAddLenTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 93)
End Get
End Property
Public ReadOnly Property StepExtArcTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 95)
End Get
End Property
Public ReadOnly Property StepIntArcTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 96)
End Get
End Property
Public ReadOnly Property SideStepTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 97)
End Get
End Property
Public ReadOnly Property VertFeedTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 98)
End Get
End Property
Public ReadOnly Property NameParTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 99)
End Get
End Property
Public ReadOnly Property ToolTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 100)
End Get
End Property
Public ReadOnly Property DepthStrTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 101)
End Get
End Property
Public ReadOnly Property UserNotesTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 104)
End Get
End Property
Public ReadOnly Property OverLapStrTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 105)
End Get
End Property
Public ReadOnly Property OffsetStrTxBl As String
Get
Return EgtMsg(MSG_MACHININGSDBPAGE + 106)
End Get
End Property
''' <summary>
''' Constructor
''' </summary>
Sub New()
Me.sTabName = EgtMsg(MSG_MAINWINDOW + 4)
SearchMachine()
Application.Msn.Register(Application.REMOVEMACHINING, Sub(MachiningToRemove As MachiningTreeViewItem)
Remove(MachiningToRemove)
End Sub)
' Quando chiamato, disattiva tutti gli item dell'albero o li riattiva a seconda che ci sia o meno un errore
Application.Msn.Register(Application.ERRORONMACHINING, Sub(WrongMachining As MachiningTreeViewItem)
For Each FamilyMachiningItem In MachiningsList
If IsNothing(WrongMachining) Then
FamilyMachiningItem.IsEnabled = True
Else
FamilyMachiningItem.IsEnabled = False
End If
For Each MachiningItem In FamilyMachiningItem.Items
If IsNothing(WrongMachining) Then
MachiningItem.IsEnabled = True
ElseIf MachiningItem IsNot WrongMachining Then
MachiningItem.IsEnabled = False
Else
MachiningItem.IsEnabled = True
End If
Next
Next
End Sub)
End Sub
''' <summary>
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
''' </summary>
Private Sub SearchMachine()
Dim TempArray As String() = Directory.GetDirectories(IniFile.m_sMachinesRoot)
For i As Integer = 0 To TempArray.Count - 1
Dim MachinePathIni As String = TempArray(i) & "\" & Path.GetFileName(TempArray(i)) & ".ini"
If File.Exists(MachinePathIni) Then
m_MachinesList.Add(New Machine With {.Name = Path.GetFileName(TempArray(i)), .MachineDirPath = TempArray(i)})
End If
Next
End Sub
''' <summary>
''' Class that create the association Name/IniPath for the machine's
''' </summary>
Class Machine
Private m_sName As String
Public Property Name As String
Get
Return m_sName
End Get
Set(value As String)
m_sName = value
End Set
End Property
Friend MachineDirPath As String
End Class
''' <summary>
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
''' </summary>
Private Sub LoadSelectedMachineMachinings()
Dim ActiveMachiningsTypes() As MachiningsType = ReadActiveMachiningsFamilies()
For Each MachiningsType In ActiveMachiningsTypes
Dim FamilyTreeView As New FamilyMachiningTreeViewItem(MachiningsType.TypeName, MachiningsType.TypeId)
MachiningsList.Add(FamilyTreeView)
Dim MachiningName As String = String.Empty
If EgtMdbGetFirstMachining(MachiningsType.TypeId, MachiningName) Then
FamilyTreeView.Items.Add(New MachiningTreeViewItem(MachiningName, MachiningsType.TypeId))
While EgtMdbGetNextMachining(MachiningsType.TypeId, MachiningName)
FamilyTreeView.Items.Add(New MachiningTreeViewItem(MachiningName, MachiningsType.TypeId))
End While
End If
Next
' Se esiste almeno una famiglia di lavorazioni, la seleziono
If MachiningsList.Count > 0 Then
MachiningsList(0).IsSelected = True
MachiningsList(0).NotifyPropertyChanged("IsSelected")
End If
End Sub
''' <summary>
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
''' </summary>
Private Function ReadActiveMachiningsFamilies() As MachiningsType()
Dim ActiveMachiningsFamiliesList As New List(Of MachiningsType)
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_DRILLING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.DRILLING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 1)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.SAWING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 2)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_MILLING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.MILLING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 3)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_POCKETING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.POCKETING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 4)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_MORTISING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.MORTISING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 5)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWROUGHING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.SAWROUGHING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 6)})
End If
If EgtUILib.GetPrivateProfileInt(S_MACHININGS, K_SAWFINISHING, 0, m_sDbsCurrMachIniFilePath) <> 0 Then
ActiveMachiningsFamiliesList.Add(New MachiningsType With {.TypeId = MCH_MY.SAWFINISHING, .TypeName = EgtMsg(MSG_MACHININGSDBPAGE + 7)})
End If
Return ActiveMachiningsFamiliesList.ToArray
End Function
''' <summary>
''' Structure that represent a tool's family, containing family type and family name
''' </summary>
Structure MachiningsType
Friend TypeId As MCH_MY
Friend TypeName As String
End Structure
#Region "NewCommand"
''' <summary>
''' Returns a command that create a new machining.
''' </summary>
Public ReadOnly Property NewCommand As ICommand
Get
If m_cmdNew Is Nothing Then
m_cmdNew = New RelayCommand(AddressOf NewPar, AddressOf CanNew)
End If
Return m_cmdNew
End Get
End Property
''' <summary>
''' Creata the new machining. This method is invoked by the NewCommand.
''' </summary>
Public Sub NewPar(ByVal param As Object)
' Verifico se sia selezionata una famiglia
Dim NewMachiningItem As MachiningTreeViewItem
If TypeOf param Is FamilyMachiningTreeViewItem Then
Dim MachiningFamily As FamilyMachiningTreeViewItem = DirectCast(param, FamilyMachiningTreeViewItem)
Dim NewName As String = MachiningFamily.Name
EgtMdbGetMachiningNewName(NewName)
If EgtMdbAddMachining(NewName, MachiningFamily.MachiningType) Then
NewMachiningItem = New MachiningTreeViewItem(NewName, DirectCast(MachiningFamily.Type, MCH_MY))
MachiningFamily.Items.Add(NewMachiningItem)
EgtMdbSaveCurrMachining()
NewMachiningItem.NewMachining = True
If Not MachiningFamily.IsExpanded Then MachiningFamily.IsExpanded = True
NewMachiningItem.IsSelected = True
NewMachiningItem.NotifyPropertyChanged("IsSelected")
End If
' Verifico se sia selezionata una lavorazione
ElseIf TypeOf param Is MachiningTreeViewItem Then
Dim MachiningCopied As MachiningTreeViewItem = DirectCast(param, MachiningTreeViewItem)
Dim NewName As String = MachiningCopied.Name
EgtMdbGetMachiningNewName(NewName)
If EgtMdbCopyMachining(MachiningCopied.Name, NewName) Then
Dim CurrType As Integer
EgtMdbGetCurrMachiningParam(MCH_MP.TYPE, CurrType)
For Each MachiningFamily In MachiningsList
If (MachiningFamily.MachiningType And CurrType) <> 0 Then
NewMachiningItem = New MachiningTreeViewItem(NewName, DirectCast(MachiningFamily.Type, MCH_MY))
MachiningFamily.Items.Add(NewMachiningItem)
EgtMdbSaveCurrMachining()
NewMachiningItem.IsSelected = True
NewMachiningItem.NotifyPropertyChanged("IsSelected")
Exit For
End If
Next
End If
End If
End Sub
''' <summary>
''' Returns true if the selected treeviewitem is valid for new tool creation.
''' </summary>
Private Function CanNew(ByVal param As Object) As Boolean
' Verifico se sia selezionata una famiglia
If TypeOf param Is FamilyMachiningTreeViewItem Then
Return True
' Verifico se sia selezionata una lavorazione
ElseIf TypeOf param Is MachiningTreeViewItem Then
' Verifico che i parametri della lavorazione siano validi
Return DirectCast(param, MachiningTreeViewItem).IsValid
Else
Return False
End If
End Function
#End Region ' NewCommand
#Region "SaveCommand"
''' <summary>
''' Returns a command that save the current selected machining.
''' </summary>
Public ReadOnly Property SaveCommand() As ICommand
Get
If m_cmdSave Is Nothing Then
m_cmdSave = New RelayCommand(AddressOf Save, AddressOf CanSave)
End If
Return m_cmdSave
End Get
End Property
''' <summary>
''' Saves the current machining. This method is invoked by the SaveCommand.
''' </summary>
Public Sub Save(ByVal param As Object)
EgtMdbSaveCurrMachining()
EgtMdbSave()
End Sub
''' <summary>
''' Returns true if the selected machining is valid and can be saved.
''' </summary>
Private Function CanSave(ByVal param As Object) As Boolean
' Verifico che sia selezionata una lavorazione
If TypeOf param Is ToolTreeViewItem Then
' Verifico che i parametri della lavorazione siano validi
Return DirectCast(param, ToolTreeViewItem).IsValid And EgtMdbIsCurrMachiningModified()
Else
Return False
End If
End Function
#End Region ' SaveCommand
#Region "RemoveCommand"
''' <summary>
''' Returns a command that remove the current selected machining.
''' </summary>
Public ReadOnly Property RemoveCommand() As ICommand
Get
If m_cmdRemove Is Nothing Then
m_cmdRemove = New RelayCommand(AddressOf Remove, AddressOf CanRemove)
End If
Return m_cmdRemove
End Get
End Property
''' <summary>
''' Remove the current selected machining from Db and TreeView. This method is invoked by the RemoveCommand.
''' </summary>
Public Sub Remove(ByVal param As Object)
Dim MachiningToRemove As MachiningTreeViewItem = DirectCast(param, MachiningTreeViewItem)
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
' Salvo il tipo di lavorazione per poterla cancellare
Dim MachiningType As Integer = MachiningToRemove.Type
' Cancello la lavorazione
EgtMdbRemoveMachining(MachiningToRemove.Name)
' Rimuovo il nome dell'albero
For Each MachiningFamily In MachiningsList
If (MachiningFamily.MachiningType And MachiningType) <> 0 Then
MachiningFamily.Items.Remove(MachiningToRemove)
End If
Next
Application.Msn.NotifyColleagues(Application.ERRORONMACHINING, Nothing)
End Sub
''' <summary>
''' Returns true if the selected machining can be removed.
''' </summary>
Private Function CanRemove(ByVal param As Object) As Boolean
' Verifico se sia selezionata una famiglia
If TypeOf param Is FamilyMachiningTreeViewItem Then
Return False
' Verifico se sia selezionata una lavorazione
ElseIf TypeOf param Is MachiningTreeViewItem Then
Return True
Else
Return False
End If
End Function
#End Region ' RemoveCommand
End Class
End Namespace
+53
View File
@@ -0,0 +1,53 @@
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
xmlns:local="clr-namespace:EgtCAM5"
Title="MainWindow" Height="768" Width="1366">
<interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="ContentRendered">
<interactivity:InvokeCommandAction Command="{Binding cmdMainWindow_ContentRendered}"/>
</interactivity:EventTrigger>
<interactivity:EventTrigger EventName="Activated">
<interactivity:InvokeCommandAction Command="{Binding cmdMainWindow_ContentRendered}"/>
</interactivity:EventTrigger>
<interactivity:EventTrigger EventName="Deactivated">
<interactivity:InvokeCommandAction Command="{Binding cmdMainWindow_ContentRendered}"/>
</interactivity:EventTrigger>
<interactivity:EventTrigger EventName="Closing">
<interactivity:InvokeCommandAction Command="{Binding cmdMainWindow_Closing}"/>
</interactivity:EventTrigger>
</interactivity:Interaction.Triggers>
<!--Pannello principale che permette di disporre la barra superiore e il tabcontrol-->
<DockPanel>
<!--Barra superiore dei comandi-->
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Height="30">
<Button Content="New" Command="{Binding NewCommand}"/>
<Button Content="Open" />
<Button Content="Save" />
<Button Content="Save as..." />
<Button Content="Import" />
<Button Content="Export" />
<Button Content="Execute" />
</StackPanel>
<!--StatusBar-->
<ContentControl DockPanel.Dock="Bottom" Content="{Binding StatusBar}"/>
<!--EgtTabControl che contiene le pagine e permette di non cancellarle quando non sono
selezionate per non doverle ricaricare ogni volta (la scena non funzionerebbe!!!)-->
<EgtWPFLib5:EgtTabControl ItemsSource="{Binding TabList}" ContentTemplate="{Binding}"
SelectedItem="{Binding SelectedTab}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding sTabName}"/>
</DataTemplate>
</TabControl.ItemTemplate>
</EgtWPFLib5:EgtTabControl>
</DockPanel>
</Window>
+3
View File
@@ -0,0 +1,3 @@
Class MainWindow
End Class
+499
View File
@@ -0,0 +1,499 @@
Imports System.Collections.ObjectModel
Imports System.Threading
Imports System.Math
Imports EgtUILib
Namespace EgtCAM5
Public Class MainWindowViewModel
Inherits ViewModelBase
#Region "FIELDS"
' EGALTECH ENVIRONMENT FIELDS
Private m_objMutex As New Mutex
Private m_nInstance As Integer = 0
Private m_sDataRoot As String = String.Empty
Private m_sConfigDir As String = String.Empty
Private m_sTempDir As String = String.Empty
Private m_sMachinesRoot As String = String.Empty
Private m_sIniFile As String = String.Empty
Private m_nDebug As Integer = 0
Private m_nUserLevel As Integer = 1
'Private m_bShowGrid As Boolean
'Private m_bShowGridFrame As Boolean
'Private m_bCPlaneTypePos As Boolean
'Private m_bMmUnits As Boolean
'Private WithEvents m_Controller As New Controller
'Private m_MruFiles As New MruList
'Private m_MruScripts As New MruList
'Private m_bStopExec As Boolean = False
'Private m_ProcEventsCallback As New ProcessEventsCallback(AddressOf ProcessEvents)
'Private m_OutTextCallback As New OutTextCallback(AddressOf OutText)
' EGALTECH ENVIRONMENT FIELDS WITH PROPERTY
' GRAPHICAL FIELDS
' Event commands
' MainWindow ContentRendered Event
Private m_cmdMainWindow_ContentRendered As ICommand
' MainWindow Activated Event
Private m_cmdMainWindow_Activated As ICommand
' MainWindow Deactivated Event
Private m_cmdMainWindow_Deactivated As ICommand
' MainWindow Closing Event
Private m_cmdMainWindow_Closing As ICommand
' GRAPHICAL FIELDS WITH PROPERTY
' ObservableCollection that contains all the main TabControl pages
Private m_TabList As New ObservableCollection(Of TabViewModel)
Public Property TabList As ObservableCollection(Of TabViewModel)
Get
Return m_TabList
End Get
Set(value As ObservableCollection(Of TabViewModel))
m_TabList = value
End Set
End Property
' Fields that contains current selected page in the main TabControl
Private m_SelectedTab As TabViewModel
Public Property SelectedTab As TabViewModel
Get
Return m_SelectedTab
End Get
Set(value As TabViewModel)
If value IsNot m_SelectedTab Then
m_SelectedTab = value
OnPropertyChanged("SelectedTab")
If TypeOf value Is ProjectViewModel Then
ProjectPageSelected = True
Else
ProjectPageSelected = False
End If
If TypeOf value Is ToolsDbViewModel Then
' Esce dal gruppo di lavorazione corrente per poter aprire le macchine del database
EgtResetCurrMachGroup()
End If
End If
End Set
End Property
' Fields that know if the ProjectPage is currently selected
Private m_ProjectPageSelected As Boolean
Public Property ProjectPageSelected As Boolean
Get
Return m_ProjectPageSelected
End Get
Set(value As Boolean)
If value <> m_ProjectPageSelected Then
m_ProjectPageSelected = value
If value Then
Application.Msn.NotifyColleagues(Application.PROJECTPAGE_SELECTED)
Else
Application.Msn.NotifyColleagues(Application.PROJECTPAGE_DESELECTED)
End If
End If
End Set
End Property
'
Private m_StatusBar As New StatusBarView
Private m_bfirst As Boolean = True
Public ReadOnly Property StatusBar As StatusBarView
Get
If m_bfirst Then
m_StatusBar.DataContext = New StatusBarViewModel
m_bfirst = False
End If
Return m_StatusBar
End Get
End Property
#End Region
#Region "CONSTRUCTOR"
Sub New()
'
Application.Msn.Register(Application.CLOSEAPPLICATION, Sub()
'Application.Current.MainWindow.Close()
End Sub)
' INITIALIZE EGALTECH ENVIRONMENT
InitializeEgtEnvironment()
' INITIALIZE GRAPHICS
TabList.Add(New ProjectViewModel)
TabList.Add(New ToolsDbViewModel)
TabList.Add(New MachiningsDbViewModel)
SelectedTab = TabList(0)
End Sub
#End Region
#Region "COMMANDS"
#Region "cmdMainWindow_Closing"
''' <summary>
''' Returns a command that manage the MainWindow_Unloaded command
''' </summary>
Public ReadOnly Property cmdMainWindow_Closing() As ICommand
Get
If m_cmdMainWindow_Closing Is Nothing Then
m_cmdMainWindow_Closing = New RelayCommand(AddressOf MainWindow_Closing, AddressOf CanMainWindow_Closing)
End If
Return m_cmdMainWindow_Closing
End Get
End Property
''' <summary>
''' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
''' </summary>
Public Sub MainWindow_Closing(ByVal param As Object)
'' Gestisco eventuale file corrente modificato
'If Not m_Controller.ManageModified() Then
' E.Cancel = True
' Return
'End If
'' Salvo modo di visualizzazione
'WritePrivateProfileString(S_SCENE, K_SHOWMODE, EgtGetShowMode(), m_sIniFile)
'' Salvo stato visualizzazione direzione curve
'WritePrivateProfileString(S_SCENE, K_CURVEDIR, If(EgtGetShowCurveDirection(), 1, 0), m_sIniFile)
'' Salvo stato visualizzazione griglia
'WritePrivateProfileString(S_GRID, K_SHOWGRID, If(m_bShowGrid, 1, 0), m_sIniFile)
'' Salvo stato unità di misura per interfaccia utente
'WritePrivateProfileString(S_SCENE, K_MMUNITS, If(m_bMmUnits, 1, 0), m_sIniFile)
' Salvo posizione Form (se non minimizzato)
'If Me.WindowState <> FormWindowState.Minimized Then
' Dim nFlag As Integer = If(Me.WindowState = FormWindowState.Maximized, 1, 0)
' WritePrivateProfileWinPos(S_GENERAL, K_WINPLACE, nFlag, Me.Left, Me.Top, Me.Width, Me.Height, m_sIniFile)
'End If
' Terminazione generale di EgtInterface
EgtExit()
' Rilascio mutex
m_objMutex.Close()
' Aggiorno istanze usate
Dim nTmp As Integer = GetPrivateProfileInt(S_GENERAL, K_INSTANCES, 0)
nTmp -= (1 << (m_nInstance - 1))
WritePrivateProfileString(S_GENERAL, K_INSTANCES, nTmp)
'' Disabilito gestore Idle
'RemoveHandler Application.Idle, AddressOf Application_Idle
End Sub
''' <summary>
''' Returns true if the application can be closed
''' </summary>
Private Function CanMainWindow_Closing(ByVal param As Object) As Boolean
'' Impedisco uscita se script in esecuzione
'If m_bScriptRunning Then
' m_bStopScript = True
' E.Cancel = True
' Return
'End If
Return True
End Function
#End Region ' Closing Command
#Region "cmdMainWindow_ContentRendered"
''' <summary>
''' Returns a command that manage the MainWindow_ContentRendered command
''' </summary>
Public ReadOnly Property cmdMainWindow_ContentRendered() As ICommand
Get
If m_cmdMainWindow_ContentRendered Is Nothing Then
m_cmdMainWindow_ContentRendered = New RelayCommand(AddressOf MainWindow_ContentRendered)
End If
Return m_cmdMainWindow_ContentRendered
End Get
End Property
''' <summary>
''' Manage the MainWindow_ContentRendered event. This method is invoked by the cmdMainWindow_ContentRendered.
''' </summary>
Public Sub MainWindow_ContentRendered(ByVal param As Object)
' Notify the ContentRendered event
Application.Msn.NotifyColleagues(Application.MAINWINDOW_CONTENTRENDERED)
End Sub
#End Region ' ContentRendered Command
#Region "cmdMainWindow_Activated"
''' <summary>
''' Returns a command that manage the MainWindow_ContentRendered command
''' </summary>
Public ReadOnly Property cmdMainWindow_Activated() As ICommand
Get
If m_cmdMainWindow_Activated Is Nothing Then
m_cmdMainWindow_Activated = New RelayCommand(AddressOf MainWindow_Activated)
End If
Return m_cmdMainWindow_Activated
End Get
End Property
''' <summary>
''' Manage the MainWindow_ContentRendered event. This method is invoked by the cmdMainWindow_ContentRendered.
''' </summary>
Public Sub MainWindow_Activated(ByVal param As Object)
' Notify the ContentRendered event
Application.Msn.NotifyColleagues(Application.MAINWINDOW_ACTIVATED)
End Sub
#End Region ' Activated Command
#Region "cmdMainWindow_Deactivated"
''' <summary>
''' Returns a command that manage the MainWindow_ContentRendered command
''' </summary>
Public ReadOnly Property cmdMainWindow_Deactivated() As ICommand
Get
If m_cmdMainWindow_Deactivated Is Nothing Then
m_cmdMainWindow_Deactivated = New RelayCommand(AddressOf MainWindow_Deactivated)
End If
Return m_cmdMainWindow_Deactivated
End Get
End Property
''' <summary>
''' Manage the MainWindow_ContentRendered event. This method is invoked by the cmdMainWindow_ContentRendered.
''' </summary>
Public Sub MainWindow_Deactivated(ByVal param As Object)
' Notify the ContentRendered event
Application.Msn.NotifyColleagues(Application.MAINWINDOW_DEACTIVATED)
End Sub
#End Region ' Deactivated Command
#End Region
#Region "METHODS"
''' <summary>
''' Method that initialize EgalTech environment
''' </summary>
Private Sub InitializeEgtEnvironment()
'' Installo aggiornamento interfaccia
'AddHandler System.Windows.Forms.Application.Idle, AddressOf Application_Idle
'' Abilito drag and drop
'Me.AllowDrop = True
'' Title
'EmitTitle()
' Impostazione path radice per i dati
m_sDataRoot = System.AppDomain.CurrentDomain.BaseDirectory
If EgtUILib.GetPrivateProfileString(S_DATA, K_DATAROOT, "", m_sDataRoot, m_sDataRoot & "\" & DAT_FILE_NAME) = 0 Then
m_sDataRoot = System.AppDomain.CurrentDomain.BaseDirectory
End If
' Impostazione direttorio di configurazione
m_sConfigDir = m_sDataRoot & "\" & CONF_DIR
' Impostazione direttorio per file temporanei
m_sTempDir = m_sDataRoot & "\" & TEMP_DIR
' Impostazione path Ini file
m_sIniFile = m_sConfigDir & "\" & INI_FILE_NAME
' Lo riporto nel modulo IniFile
IniFile.m_sIniFilePath = m_sIniFile
' Impostazione direttorio per le macchine
If GetPrivateProfileString(S_MACH, K_MACHINESDIR, "", m_sMachinesRoot) = 0 Then
m_sMachinesRoot = m_sDataRoot & "\" & MACHINES_DFL_DIR
End If
IniFile.m_sMachinesRoot = m_sMachinesRoot
' Verifico indice di istanza
ManageIstance()
' Leggo e imposto chiave di protezione
Dim sLicFileName As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_LICENCE, LIC_FILE_NAME, sLicFileName)
Dim sLicFile As String = m_sConfigDir & "\" & sLicFileName
Dim sKey As String = String.Empty
EgtUILib.GetPrivateProfileString(S_LICENCE, K_KEY, "", sKey, sLicFile)
EgtSetKey(sKey)
' Inizializzazione generale di EgtInterface
m_nDebug = GetPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
Dim sLogFile As String = m_sTempDir & "\" & GENLOG_FILE_NAME
Dim sLogMsg As String = My.Application.Info.Description.ToString() & " ver. " & My.Application.Info.Version.ToString()
EgtInit(m_nDebug, sLogFile, sLogMsg)
' Leggo direttorio dei messaggi (se manca uso direttorio di configurazione)
Dim sMsgDir As String = String.Empty
If GetPrivateProfileString(S_GENERAL, K_MESSAGESDIR, "", sMsgDir) = 0 Then
sMsgDir = m_sConfigDir
End If
' Leggo file messaggi
Dim sMsgFile As String = String.Empty
GetPrivateProfileString(S_GENERAL, K_MESSAGES, "", sMsgFile)
Dim sMsgFilePath As String = sMsgDir & "\" & sMsgFile
If Not EgtLoadMessages(sMsgFilePath) Then
EgtOutLog("Error in EgtLoadMessages")
End If
' Leggo e imposto livello utilizzatore
m_nUserLevel = GetPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1)
' imposto dir font Nfe e font default
Dim sNfeDir As String = String.Empty
GetPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir)
Dim sDefFont As String = String.Empty
GetPrivateProfileString(S_GEOMDB, K_DEFAULTFONT, "", sDefFont)
EgtSetFont(sNfeDir, sDefFont)
' imposto dir di default per libreria Lua e lancio libreria di base
Dim sLuaLibsDir As String = String.Empty
GetPrivateProfileString(S_LUA, K_LIBSDIR, "", sLuaLibsDir)
EgtSetLuaLibs(sLuaLibsDir)
Dim sLuaBaseLib As String = String.Empty
GetPrivateProfileString(S_LUA, K_BASELIB, "EgtBase", sLuaBaseLib)
EgtLuaRequire(sLuaBaseLib)
'' imposto unità di misura per interfaccia utente
'm_bMmUnits = (GetPrivateProfileInt(S_SCENE, K_MMUNITS, 1, m_sIniFile) <> 0)
'UpdateStatusUnits()
'' imposto visualizzazione riferimento globale
'Dim bShowGlobFrame As Boolean = (GetPrivateProfileInt(S_SCENE, K_SHOWGFRAME, 1, m_sIniFile) <> 0)
'EgtSetGlobFrameShow(bShowGlobFrame)
'' imposto i dati della griglia
'LoadGridData()
'' imposto stato di visualizzazione della griglia
'm_bShowGrid = (GetPrivateProfileInt(S_GRID, K_SHOWGRID, 1, m_sIniFile) <> 0)
'm_bShowGridFrame = (GetPrivateProfileInt(S_GRID, K_SHOWFRAME, 1, m_sIniFile) <> 0)
'UpdateStatusGrid()
'' imposto tipo coordinate
'm_bCPlaneTypePos = True
'Scene1.SetGridCursorPos(m_bCPlaneTypePos)
'' modo di visualizzazione
'Dim nShowMode As Integer = GetPrivateProfileInt(S_SCENE, K_SHOWMODE, SM.SHADING, m_sIniFile)
'If nShowMode = SM.WIREFRAME Then
' btnWireFrame.Checked = True
'ElseIf nShowMode = SM.HIDDENLINE Then
' btnHiddenLine.Checked = True
'Else
' btnShading.Checked = True
'End If
'' visualizzazione direzione curve
'Dim nShowCurveDir As Integer = GetPrivateProfileInt(S_SCENE, K_CURVEDIR, 0, m_sIniFile)
'chkCurveDir.Checked = (nShowCurveDir <> 0)
'' visualizzazione avanzata dei triangoli costituenti le superfici
'Dim bShowTriaAdv As Boolean = (GetPrivateProfileInt(S_SCENE, K_SHOWTRIAADV, 1, m_sIniFile) <> 0)
'EgtSetShowTriaAdv(bShowTriaAdv)
'' ObjTree non selezionato
'm_nObjTreeOldId = GDB_ID.NULL
'' nascondo input box
'ResetInputBox()
'' aggiungo voce per about box nel menù di sistema
'Dim hSysMenu As IntPtr = GetSystemMenu(Handle, False)
'If hSysMenu <> IntPtr.Zero Then
' AppendMenu(hSysMenu, MF_SEPARATOR, 0, "")
' AppendMenu(hSysMenu, MF_STRING, IDM_ABOUTBOX, "About TestEIn...")
'End If
'' Visualizzo o nascondo TabTest
'Dim bShowTabTest As Boolean = (GetPrivateProfileInt(S_TABSPECIAL, K_TSSHOW, 0, m_sIniFile) <> 0)
'If Not bShowTabTest Then
' TabControl2.TabPages.Remove(TabSpecial)
'End If
'' Posizione e dimensioni del Form
'If ModifierKeys <> Keys.Shift Then
' Dim nFlag As Integer
' Dim nLeft As Integer
' Dim nTop As Integer
' Dim nWidth As Integer
' Dim nHeight As Integer
' GetPrivateProfileWinPos(S_GENERAL, K_WINPLACE, nFlag, nLeft, nTop, nWidth, nHeight, m_sIniFile)
' Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual
' Me.Location = New Point(nLeft, nTop)
' Me.Size = New Size(nWidth, nHeight)
' WindowState = If(nFlag = 1, FormWindowState.Maximized, FormWindowState.Normal)
'End If
'' Impostazioni controller
'm_Controller.SetScene(Scene1)
'Dim bLuaReg As Boolean = (GetPrivateProfileInt(S_GENERAL, K_COMMANDLOG, 0, m_sIniFile) <> 0)
'Dim sCmdLogFile As String = CMDLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
'If Not m_Controller.SetCommandLog(bLuaReg, m_sTempDir, sCmdLogFile) Then
' EgtOutLog("Command log not started")
' If My.Application.CommandLineArgs.Count() = 0 Then
' MessageBox.Show("Command log not started", "TestEIn Warning",
' MessageBoxButtons.OK, MessageBoxIcon.Warning)
' End If
'End If
'If m_Controller.GetCommandLog() Then
' tsStatusReg.BackColor = Color.Lime
'ElseIf bLuaReg Then
' tsStatusReg.BackColor = Color.Red
'End If
'' Impostazioni MruLists
'm_MruFiles.Init(m_sIniFile, S_MRUFILES, 8)
'm_MruScripts.Init(m_sIniFile, S_MRUSCRIPTS, 8)
'' Apro progetto vuoto
'm_Controller.NewProject(True)
'' Impostazione Testi e ToolTips
'SetMessages()
'' Installo funzione gestione eventi per lua
'EgtSetProcessEvents(m_ProcEventsCallback)
'' Installo funzione output testo su status per lua
'EgtSetOutText(m_OutTextCallback)
End Sub
''' <summary>
''' Funzione che permette di gestire il numero di istanze del programma attive contemporaneamente
''' </summary>
Private Sub ManageIstance()
Dim bCreated As Boolean
Try
m_objMutex = New Mutex(False, "Global\EgtCAM5", bCreated)
Catch
bCreated = False
End Try
If bCreated Then
' Prima istanza
m_nInstance = 1
' Aggiorno stato istanze attive
WritePrivateProfileString(S_GENERAL, K_INSTANCES, m_nInstance.ToString)
Else
' Leggo il massimo numero di istanze ammesse
Dim nMaxInst As Integer = GetPrivateProfileInt(S_GENERAL, K_MAXINST, 1)
nMaxInst = Max(1, Min(nMaxInst, 32))
' Cerco il primo indice di istanza libero (max 32)
Dim nTmp As Integer = GetPrivateProfileInt(S_GENERAL, K_INSTANCES, 0)
m_nInstance = 1
Dim nMask As Integer = 1
While (nTmp And nMask) <> 0 And m_nInstance <= m_nInstance
m_nInstance += 1
nMask *= 2
End While
' Se l'indice supera il massimo
If m_nInstance > nMaxInst Then
' porto in primo piano la prima istanza
Dim bFound As Boolean = False
' processi del programma a 32 bit
Dim localProc As Process() = Process.GetProcessesByName("EgtCAM5R32")
For Each p As Process In localProc
If p.Id <> Process.GetCurrentProcess().Id Then
bFound = True
ShowWindow(p.MainWindowHandle, SW.SHOWMAXIMIZED)
Exit For
End If
Next
' se non trovati processi a 32 bit provo a 64 bit
If Not bFound Then
localProc = Process.GetProcessesByName("EgtCAM5R64")
For Each p As Process In localProc
If p.Id <> Process.GetCurrentProcess().Id Then
bFound = True
ShowWindow(p.MainWindowHandle, SW.SHOWMAXIMIZED)
Exit For
End If
Next
End If
' esco dal programma
End
End If
' Aggiorno stato istanze attive
nTmp += (1 << (m_nInstance - 1))
WritePrivateProfileString(S_GENERAL, K_INSTANCES, nTmp)
End If
End Sub
#End Region
End Class
End Namespace
+229
View File
@@ -0,0 +1,229 @@
Imports System.Reflection
''' <summary>
''' Provides loosely-coupled messaging between
''' various colleague objects. All references to objects
''' are stored weakly, to prevent memory leaks.
''' </summary>
Public Class Messenger
Public Sub New()
End Sub
''' <summary>
''' Registers a callback method to be invoked when a specific message is broadcasted.
''' </summary>
''' <param name="message">The message to register for.</param>
''' <param name="callback">The callback to be called when this message is broadcasted.</param>
Public Sub Register(ByVal message As String, ByVal callback As [Delegate])
If String.IsNullOrEmpty(message) Then
Throw New ArgumentException("'message' cannot be null or empty.")
End If
If callback Is Nothing Then
Throw New ArgumentNullException("callback")
End If
Dim parameters As ParameterInfo() = callback.Method.GetParameters()
If parameters IsNot Nothing AndAlso parameters.Length > 1 Then
Throw New InvalidOperationException("The registered delegate can have no more than one parameter.")
End If
Dim parameterType As Type = If((parameters Is Nothing OrElse parameters.Length = 0), Nothing, parameters(0).ParameterType)
_messageToActionsMap.AddAction(message, callback.Target, callback.Method, parameterType)
End Sub
''' <summary>
''' Notifies all registered parties that a message is being broadcasted.
''' </summary>
''' <param name="message">The message to broadcast.</param>
Public Sub NotifyColleagues(ByVal message As String)
If String.IsNullOrEmpty(message) Then
Throw New ArgumentException("'message' cannot be null or empty.")
End If
Dim actions = _messageToActionsMap.GetActions(message)
If actions IsNot Nothing Then
actions.ForEach(Function(action) action.DynamicInvoke())
End If
End Sub
''' <summary>
''' Notifies all registered parties that a message is being broadcasted.
''' </summary>
''' <param name="message">The message to broadcast</param>
''' <param name="parameter">The parameter to pass together with the message</param>
Public Sub NotifyColleagues(ByVal message As String, ByVal parameter As Object)
If String.IsNullOrEmpty(message) Then
Throw New ArgumentException("'message' cannot be null or empty.")
End If
Dim actions = _messageToActionsMap.GetActions(message)
If actions IsNot Nothing Then
actions.ForEach(Function(action) action.DynamicInvoke(parameter))
End If
End Sub
''' <summary>
''' This class is an implementation detail of the Messenger class.
''' </summary>
Private Class MessageToActionsMap
' Stores a hash where the key is the message and the value is the list of callbacks to invoke.
ReadOnly _map As New Dictionary(Of String, List(Of WeakAction))()
Friend Sub New()
End Sub
''' <summary>
''' Adds an action to the list.
''' </summary>
''' <param name="message">The message to register.</param>
''' <param name="target">The target object to invoke, or null.</param>
''' <param name="method">The method to invoke.</param>
''' <param name="actionType">The type of the Action delegate.</param>
Friend Sub AddAction(ByVal message As String, ByVal target As Object, ByVal method As MethodInfo, ByVal actionType As Type)
If message Is Nothing Then
Throw New ArgumentNullException("message")
End If
If method Is Nothing Then
Throw New ArgumentNullException("method")
End If
SyncLock _map
If Not _map.ContainsKey(message) Then
_map(message) = New List(Of WeakAction)()
End If
_map(message).Add(New WeakAction(target, method, actionType))
End SyncLock
End Sub
''' <summary>
''' Gets the list of actions to be invoked for the specified message
''' </summary>
''' <param name="message">The message to get the actions for</param>
''' <returns>Returns a list of actions that are registered to the specified message</returns>
Friend Function GetActions(ByVal message As String) As List(Of [Delegate])
If message Is Nothing Then
Throw New ArgumentNullException("message")
End If
Dim actions As List(Of [Delegate])
SyncLock _map
If Not _map.ContainsKey(message) Then
Return Nothing
End If
Dim weakActions As List(Of WeakAction) = _map(message)
actions = New List(Of [Delegate])(weakActions.Count)
For i As Integer = weakActions.Count - 1 To -1 + 1 Step -1
Dim weakAction As WeakAction = weakActions(i)
If weakAction Is Nothing Then
Continue For
End If
Dim action As [Delegate] = weakAction.CreateAction()
If action IsNot Nothing Then
actions.Add(action)
Else
' The target object is dead, so get rid of the weak action.
weakActions.Remove(weakAction)
End If
Next
' Delete the list from the map if it is now empty.
If weakActions.Count = 0 Then
_map.Remove(message)
End If
End SyncLock
Return actions
End Function
End Class
''' <summary>
''' This class is an implementation detail of the MessageToActionsMap class.
''' </summary>
Private Class WeakAction
ReadOnly _delegateType As Type
ReadOnly _method As MethodInfo
ReadOnly _targetRef As WeakReference
''' <summary>
''' Constructs a WeakAction.
''' </summary>
''' <param name="target">The object on which the target method is invoked, or null if the method is static.</param>
''' <param name="method">The MethodInfo used to create the Action.</param>
''' <param name="parameterType">The type of parameter to be passed to the action. Pass null if there is no parameter.</param>
Friend Sub New(ByVal target As Object, ByVal method As MethodInfo, ByVal parameterType As Type)
If target Is Nothing Then
_targetRef = Nothing
Else
_targetRef = New WeakReference(target)
End If
_method = method
If parameterType Is Nothing Then
_delegateType = GetType(Action)
Else
_delegateType = GetType(Action(Of )).MakeGenericType(parameterType)
End If
End Sub
''' <summary>
''' Creates a "throw away" delegate to invoke the method on the target, or null if the target object is dead.
''' </summary>
Friend Function CreateAction() As [Delegate]
' Rehydrate into a real Action object, so that the method can be invoked.
If _targetRef Is Nothing Then
Return [Delegate].CreateDelegate(_delegateType, _method)
Else
Try
Dim target As Object = _targetRef.Target
If target IsNot Nothing Then
Return [Delegate].CreateDelegate(_delegateType, target, _method)
End If
Catch
End Try
End If
Return Nothing
End Function
End Class
ReadOnly _messageToActionsMap As New MessageToActionsMap()
End Class
+59
View File
@@ -0,0 +1,59 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
Imports System.Globalization
Imports System.Resources
Imports System.Windows
' General Information about an assembly is controlled through the following
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.
' Review the values of the assembly attributes
<Assembly: AssemblyTitle("EgtCAM5")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("EgtCAM5")>
<Assembly: AssemblyCopyright("Copyright © 2016")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(false)>
'In order to begin building localizable applications, set
'<UICulture>CultureYouAreCodingWith</UICulture> in your .vbproj file
'inside a <PropertyGroup>. For example, if you are using US english
'in your source files, set the <UICulture> to "en-US". Then uncomment the
'NeutralResourceLanguage attribute below. Update the "en-US" in the line
'below to match the UICulture setting in the project file.
'<Assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found.
'1st parameter: where theme specific resource dictionaries are located
'(used if a resource is not found in the page,
' or application resource dictionaries)
'2nd parameter: where the generic resource dictionary is located
'(used if a resource is not found in the page,
'app, and any theme specific resource dictionaries)
<Assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)>
'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("cee22c87-86ab-49a3-afe4-cb73e6743c09")>
' Version information for an assembly consists of the following four values:
'
' Major Version
' Minor Version
' Build Number
' Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
+121
View File
@@ -0,0 +1,121 @@
#If _MyType <> "Empty" Then
Namespace My
''' <summary>
''' Module used to define the properties that are available in the My Namespace for WPF
''' </summary>
''' <remarks></remarks>
<Global.Microsoft.VisualBasic.HideModuleName()> _
Module MyWpfExtension
Private s_Computer As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Devices.Computer)
Private s_User As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.ApplicationServices.User)
Private s_Windows As New ThreadSafeObjectProvider(Of MyWindows)
Private s_Log As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Logging.Log)
''' <summary>
''' Returns the application object for the running application
''' </summary>
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property Application() As Application
Get
Return CType(Global.System.Windows.Application.Current, Application)
End Get
End Property
''' <summary>
''' Returns information about the host computer.
''' </summary>
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property Computer() As Global.Microsoft.VisualBasic.Devices.Computer
Get
Return s_Computer.GetInstance()
End Get
End Property
''' <summary>
''' Returns information for the current user. If you wish to run the application with the current
''' Windows user credentials, call My.User.InitializeWithWindowsUser().
''' </summary>
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property User() As Global.Microsoft.VisualBasic.ApplicationServices.User
Get
Return s_User.GetInstance()
End Get
End Property
''' <summary>
''' Returns the application log. The listeners can be configured by the application's configuration file.
''' </summary>
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property Log() As Global.Microsoft.VisualBasic.Logging.Log
Get
Return s_Log.GetInstance()
End Get
End Property
''' <summary>
''' Returns the collection of Windows defined in the project.
''' </summary>
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property Windows() As MyWindows
<Global.System.Diagnostics.DebuggerHidden()> _
Get
Return s_Windows.GetInstance()
End Get
End Property
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Never)> _
<Global.Microsoft.VisualBasic.MyGroupCollection("System.Windows.Window", "Create__Instance__", "Dispose__Instance__", "My.MyWpfExtenstionModule.Windows")> _
Friend NotInheritable Class MyWindows
<Global.System.Diagnostics.DebuggerHidden()> _
Private Shared Function Create__Instance__(Of T As {New, Global.System.Windows.Window})(ByVal Instance As T) As T
If Instance Is Nothing Then
If s_WindowBeingCreated IsNot Nothing Then
If s_WindowBeingCreated.ContainsKey(GetType(T)) = True Then
Throw New Global.System.InvalidOperationException("The window cannot be accessed via My.Windows from the Window constructor.")
End If
Else
s_WindowBeingCreated = New Global.System.Collections.Hashtable()
End If
s_WindowBeingCreated.Add(GetType(T), Nothing)
Return New T()
s_WindowBeingCreated.Remove(GetType(T))
Else
Return Instance
End If
End Function
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
<Global.System.Diagnostics.DebuggerHidden()> _
Private Sub Dispose__Instance__(Of T As Global.System.Windows.Window)(ByRef instance As T)
instance = Nothing
End Sub
<Global.System.Diagnostics.DebuggerHidden()> _
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Never)> _
Public Sub New()
MyBase.New()
End Sub
<Global.System.ThreadStatic()> Private Shared s_WindowBeingCreated As Global.System.Collections.Hashtable
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function Equals(ByVal o As Object) As Boolean
Return MyBase.Equals(o)
End Function
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function GetHashCode() As Integer
Return MyBase.GetHashCode
End Function
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> _
Friend Overloads Function [GetType]() As Global.System.Type
Return GetType(MyWindows)
End Function
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function ToString() As String
Return MyBase.ToString
End Function
End Class
End Module
End Namespace
Partial Class Application
Inherits Global.System.Windows.Application
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
Friend ReadOnly Property Info() As Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo
<Global.System.Diagnostics.DebuggerHidden()> _
Get
Return New Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo(Global.System.Reflection.Assembly.GetExecutingAssembly())
End Get
End Property
End Class
#End If
+63
View File
@@ -0,0 +1,63 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.34209
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Imports System
Namespace My.Resources
'This class was auto-generated by the StronglyTypedResourceBuilder
'class via a tool like ResGen or Visual Studio.
'To add or remove a member, edit your .ResX file then rerun ResGen
'with the /str option, or rebuild your VS project.
'''<summary>
''' A strongly-typed resource class, for looking up localized strings, etc.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' Returns the cached ResourceManager instance used by this class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EgtCAM5.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' Overrides the current thread's CurrentUICulture property for all
''' resource lookups using this strongly typed resource class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set
resourceCulture = value
End Set
End Property
End Module
End Namespace
+117
View File
@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
+71
View File
@@ -0,0 +1,71 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.34209
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
End Class
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.EgtCAM5.MySettings
Get
Return Global.EgtCAM5.MySettings.Default
End Get
End Property
End Module
End Namespace
+7
View File
@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
+134
View File
@@ -0,0 +1,134 @@
<UserControl x:Class="DrawPanelView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid Background="DarkGray">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Expander Header="2D Draw" Grid.Row="0">
<UniformGrid Columns="2">
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding PointCommand}">
<Image Source="/Resources/DrawPanel/Point.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding Line2PCommand}">
<Image Source="/Resources/DrawPanel/Line2P.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding LinePDLCommand}">
<Image Source="/Resources/DrawPanel/LinePDL.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CircleCommand}">
<Image Source="/Resources/DrawPanel/Circle.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ArcCSECommand}">
<Image Source="/Resources/DrawPanel/ArcCSE.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding Arc3PCommand}">
<Image Source="/Resources/DrawPanel/Arc3P.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ArcPDPCommand}">
<Image Source="/Resources/DrawPanel/ArcPDP.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding FilletCommand}">
<Image Source="/Resources/DrawPanel/Fillet.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding Rectangle2PCommand}">
<Image Source="/Resources/DrawPanel/Rectangle2P.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding PolygonCommand}">
<Image Source="/Resources/DrawPanel/Polygon.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding TextCommand}">
<Image Source="/Resources/DrawPanel/Text.png" Stretch="Uniform"/>
</Button>
</UniformGrid>
</Expander>
<Expander Header="3D Draw" Grid.Row="1">
<UniformGrid Columns="2">
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding PlaneCommand}">
<Image Source="/Resources/DrawPanel/Plane.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ExtrudeCommand}">
<Image Source="/Resources/DrawPanel/Extrude.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding RevolveCommand}">
<Image Source="/Resources/DrawPanel/Revolve.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ScrewCommand}">
<Image Source="/Resources/DrawPanel/Screw.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding RuledCommand}">
<Image Source="/Resources/DrawPanel/Ruled.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding MergeSurfCommand}">
<Image Source="/Resources/DrawPanel/MergeSurf.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ExplodeSurfCommand}">
<Image Source="/Resources/DrawPanel/ExplodeSurf.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding InvertSurfCommand}">
<Image Source="/Resources/DrawPanel/InvertSurf.png" Stretch="Uniform"/>
</Button>
</UniformGrid>
</Expander>
<Expander Header="Modify" Grid.Row="2">
<UniformGrid Columns="2">
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding DeleteCommand}">
<Image Source="/Resources/DrawPanel/Delete.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ChangeLayerCommand}">
<Image Source="/Resources/DrawPanel/ChangeLayer.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ChangeColorCommand}">
<Image Source="/Resources/DrawPanel/ChangeColor.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding InvertCurveCommand}">
<Image Source="/Resources/DrawPanel/InvertCurve.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ChangeStartCurveCommand}">
<Image Source="/Resources/DrawPanel/ChangeStart.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ExtendCurveCommand}">
<Image Source="/Resources/DrawPanel/ExtendCurve.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding BreakCurveCommand}">
<Image Source="/Resources/DrawPanel/BreakCurve.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding JoinCurveCommand}">
<Image Source="/Resources/DrawPanel/JoinCurve.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ExplodeCurveCommand}">
<Image Source="/Resources/DrawPanel/ExplodeCurve.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding SetCurveThCommand}">
<Image Source="/Resources/DrawPanel/ThickCurve.png" Stretch="Uniform"/>
</Button>
</UniformGrid>
</Expander>
<Expander Header="Transform" Grid.Row="3">
<UniformGrid Columns="2">
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding MoveCommand}">
<Image Source="/Resources/DrawPanel/Move.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding RotateCommand}">
<Image Source="/Resources/DrawPanel/Rotate.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding MirrorCommand}">
<Image Source="/Resources/DrawPanel/Mirror.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ScaleCommand}">
<Image Source="/Resources/DrawPanel/Scale.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding OffsetCommand}">
<Image Source="/Resources/DrawPanel/Offset.png" Stretch="Uniform"/>
</Button>
</UniformGrid>
</Expander>
</Grid>
</UserControl>
@@ -0,0 +1,3 @@
Public Class DrawPanelView
End Class
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,103 @@
<UserControl x:Class="GridViewPanelView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel Background="Gray" Orientation="Horizontal">
<RadioButton Style="{StaticResource EgtCAM5_RadioButton}" Command="{Binding WireframeCommand}">
<Image Source="/Resources/GridViewPanel/RenderingWF.png" Stretch="Uniform"/>
</RadioButton>
<RadioButton Style="{StaticResource EgtCAM5_RadioButton}" Command="{Binding HiddenLineCommand}">
<Image Source="/Resources/GridViewPanel/RenderingHL.png" Stretch="Uniform"/>
</RadioButton>
<RadioButton Style="{StaticResource EgtCAM5_RadioButton}" Command="{Binding ShadingCommand}">
<Image Source="/Resources/GridViewPanel/RenderingSH.png" Stretch="Uniform"/>
</RadioButton>
<Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" Background="LightGray"/>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ZoomAllCommand}">
<Image Source="/Resources/GridViewPanel/ZoomAll.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ZoomInCommand}">
<Image Source="/Resources/GridViewPanel/ZoomIn.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding ZoomOutCommand}">
<Image Source="/Resources/GridViewPanel/ZoomOut.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding TopViewCommand}">
<Image Source="/Resources/GridViewPanel/LookFromTOP.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding FrontViewCommand}">
<Image Source="/Resources/GridViewPanel/LookFromFRONT.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding LeftViewCommand}">
<Image Source="/Resources/GridViewPanel/LookFromLEFT.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding BackViewCommand}">
<Image Source="/Resources/GridViewPanel/LookFromBACK.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding RightViewCommand}">
<Image Source="/Resources/GridViewPanel/LookFromRIGHT.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding IsoViewSWCommand}">
<Image Source="/Resources/GridViewPanel/LookFromISO_SW.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding IsoViewSECommand}">
<Image Source="/Resources/GridViewPanel/LookFromISO_SE.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding IsoViewNECommand}">
<Image Source="/Resources/GridViewPanel/LookFromISO_NE.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding IsoViewNWCommand}">
<Image Source="/Resources/GridViewPanel/LookFromISO_NW.png" Stretch="Uniform"/>
</Button>
<ToggleButton Style="{StaticResource EgtCAM5_ToggleButton}" Command="{Binding CurveDirCommand}">
<Image Source="/Resources/GridViewPanel/CurveDir.png" Stretch="Uniform"/>
</ToggleButton>
<ToggleButton Style="{StaticResource EgtCAM5_ToggleButton}" Command="{Binding AnalyzeCommand}">
<Image Source="/Resources/GridViewPanel/Analyze.png" Stretch="Uniform"/>
</ToggleButton>
<ToggleButton Style="{StaticResource EgtCAM5_ToggleButton}" Command="{Binding GetDistCommand}">
<Image Source="/Resources/GridViewPanel/GetDist.png" Stretch="Uniform"/>
</ToggleButton>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneTopCommand}">
<Image Source="/Resources/GridViewPanel/CplaneTOP.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneFrontCommand}">
<Image Source="/Resources/GridViewPanel/CplaneFRONT.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneRightCommand}">
<Image Source="/Resources/GridViewPanel/CplaneRIGHT.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneBackCommand}">
<Image Source="/Resources/GridViewPanel/CplaneBACK.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneLeftCommand}">
<Image Source="/Resources/GridViewPanel/CplaneLEFT.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneBottomCommand}">
<Image Source="/Resources/GridViewPanel/CplaneBOTTOM.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneViewCommand}">
<Image Source="/Resources/GridViewPanel/CplaneView.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneElevationCommand}">
<Image Source="/Resources/GridViewPanel/CplaneELEVATION.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneOriginCommand}">
<Image Source="/Resources/GridViewPanel/CplaneORIGIN.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneRotateCommand}">
<Image Source="/Resources/GridViewPanel/CplaneROTATE.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlane3PCommand}">
<Image Source="/Resources/GridViewPanel/Cplane3POINTS.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlanePerpObjCommand}">
<Image Source="/Resources/GridViewPanel/CplanePERPCURVE.png" Stretch="Uniform"/>
</Button>
<Button Style="{StaticResource EgtCAM5_Button}" Command="{Binding CPlaneObjCommand}">
<Image Source="/Resources/GridViewPanel/CplaneOBJECT.png" Stretch="Uniform"/>
</Button>
</StackPanel>
</UserControl>
@@ -0,0 +1,3 @@
Public Class GridViewPanelView
End Class
@@ -0,0 +1,981 @@
Namespace EgtCAM5
Public Class GridViewPanelViewModel
Inherits ViewModelBase
Private m_TitleBarOrientation As Orientation
Public Property TitleBarOrientation As Orientation
Get
Return m_TitleBarOrientation
End Get
Set(value As Orientation)
m_TitleBarOrientation = value
End Set
End Property
' Definizione comandi
Private m_cmdWireframe As ICommand
Private m_cmdHiddenLine As ICommand
Private m_cmdShading As ICommand
Private m_cmdZoomAll As ICommand
Private m_cmdZoomIn As ICommand
Private m_cmdZoomOut As ICommand
Private m_cmdTopView As ICommand
Private m_cmdFrontView As ICommand
Private m_cmdLeftView As ICommand
Private m_cmdBackView As ICommand
Private m_cmdRightView As ICommand
Private m_cmdIsoViewSW As ICommand
Private m_cmdIsoViewSE As ICommand
Private m_cmdIsoViewNE As ICommand
Private m_cmdIsoViewNW As ICommand
Private m_cmdCurveDir As ICommand
Private m_cmdAnalyze As ICommand
Private m_cmdGetDist As ICommand
Private m_cmdCPlaneTop As ICommand
Private m_cmdCPlaneFront As ICommand
Private m_cmdCPlaneRight As ICommand
Private m_cmdCPlaneBack As ICommand
Private m_cmdCPlaneLeft As ICommand
Private m_cmdCPlaneBottom As ICommand
Private m_cmdCPlaneView As ICommand
Private m_cmdCPlaneElevation As ICommand
Private m_cmdCPlaneOrigin As ICommand
Private m_cmdCPlaneRotate As ICommand
Private m_cmdCPlane3P As ICommand
Private m_cmdCPlanePerpObj As ICommand
Private m_cmdCPlaneObj As ICommand
' Costruttore
Sub New()
End Sub
#Region "WireframeCommand"
''' <summary>
''' Returns a command that manage the MainWindow_ContentRendered command
''' </summary>
Public ReadOnly Property WireframeCommand() As ICommand
Get
If m_cmdWireframe Is Nothing Then
m_cmdWireframe = New RelayCommand(AddressOf Wireframe)
End If
Return m_cmdWireframe
End Get
End Property
''' <summary>
''' Manage the MainWindow_ContentRendered event. This method is invoked by the cmdMainWindow_ContentRendered.
''' </summary>
Public Sub Wireframe(ByVal param As Object)
' Notify the ContentRendered event
Application.Msn.NotifyColleagues(Application.WIREFRAME)
End Sub
#End Region ' WireframeCommand
#Region "HiddenLineCommand"
''' <summary>
''' Returns a command that swith the view mode to HiddenLine.
''' </summary>
Public ReadOnly Property HiddenLineCommand As ICommand
Get
If m_cmdHiddenLine Is Nothing Then
m_cmdHiddenLine = New RelayCommand(AddressOf HiddenLine, AddressOf CanHiddenLine)
End If
Return m_cmdHiddenLine
End Get
End Property
''' <summary>
''' Swith the view mode to HiddenLine. This method is invoked by the HiddenLineCommand.
''' </summary>
Public Sub HiddenLine(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.HIDDENLINE)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanHiddenLine(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' HiddenLineCommand
#Region "ShadingCommand"
''' <summary>
''' Returns a command that swith the view mode to Shading.
''' </summary>
Public ReadOnly Property ShadingCommand As ICommand
Get
If m_cmdShading Is Nothing Then
m_cmdShading = New RelayCommand(AddressOf Shading, AddressOf CanShading)
End If
Return m_cmdShading
End Get
End Property
''' <summary>
''' Swith the view mode to Shading. This method is invoked by the ShadingCommand.
''' </summary>
Public Sub Shading(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.SHADING)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanShading(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' ShadingCommand
#Region "ZoomAllCommand"
''' <summary>
''' Returns a command that do ZoomAll.
''' </summary>
Public ReadOnly Property ZoomAllCommand As ICommand
Get
If m_cmdZoomAll Is Nothing Then
m_cmdZoomAll = New RelayCommand(AddressOf ZoomAll, AddressOf CanZoomAll)
End If
Return m_cmdZoomAll
End Get
End Property
''' <summary>
''' Execute the ZoomAll. This method is invoked by the ZoomAllCommand.
''' </summary>
Public Sub ZoomAll(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.ZOOMALL)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanZoomAll(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' ZoomAllCommand
#Region "ZoomInCommand"
''' <summary>
''' Returns a command that do ZoomIn.
''' </summary>
Public ReadOnly Property ZoomInCommand As ICommand
Get
If m_cmdZoomIn Is Nothing Then
m_cmdZoomIn = New RelayCommand(AddressOf ZoomIn, AddressOf CanZoomIn)
End If
Return m_cmdZoomIn
End Get
End Property
''' <summary>
''' Execute the ZoomIn. This method is invoked by the ZoomInCommand.
''' </summary>
Public Sub ZoomIn(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.ZOOMIN)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanZoomIn(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' ZoomInCommand
#Region "ZoomOutCommand"
''' <summary>
''' Returns a command that do ZoomOut.
''' </summary>
Public ReadOnly Property ZoomOutCommand As ICommand
Get
If m_cmdZoomOut Is Nothing Then
m_cmdZoomOut = New RelayCommand(AddressOf ZoomOut, AddressOf CanZoomOut)
End If
Return m_cmdZoomOut
End Get
End Property
''' <summary>
''' Execute the ZoomOut. This method is invoked by the ZoomOutCommand.
''' </summary>
Public Sub ZoomOut(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.ZOOMOUT)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanZoomOut(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' ZoomOutCommand
#Region "TopViewCommand"
''' <summary>
''' Returns a command that do TopView.
''' </summary>
Public ReadOnly Property TopViewCommand As ICommand
Get
If m_cmdTopView Is Nothing Then
m_cmdTopView = New RelayCommand(AddressOf TopView, AddressOf CanTopView)
End If
Return m_cmdTopView
End Get
End Property
''' <summary>
''' Execute the TopView. This method is invoked by the TopViewCommand.
''' </summary>
Public Sub TopView(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.TOPVIEW)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanTopView(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' TopViewCommand
#Region "FrontViewCommand"
''' <summary>
''' Returns a command that do FrontView.
''' </summary>
Public ReadOnly Property FrontViewCommand As ICommand
Get
If m_cmdFrontView Is Nothing Then
m_cmdFrontView = New RelayCommand(AddressOf FrontView, AddressOf CanFrontView)
End If
Return m_cmdFrontView
End Get
End Property
''' <summary>
''' Execute the FrontView. This method is invoked by the FrontViewCommand.
''' </summary>
Public Sub FrontView(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.FRONTVIEW)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanFrontView(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' FrontViewCommand
#Region "LeftViewCommand"
''' <summary>
''' Returns a command that do LeftView.
''' </summary>
Public ReadOnly Property LeftViewCommand As ICommand
Get
If m_cmdLeftView Is Nothing Then
m_cmdLeftView = New RelayCommand(AddressOf LeftView, AddressOf CanLeftView)
End If
Return m_cmdLeftView
End Get
End Property
''' <summary>
''' Execute the LeftView. This method is invoked by the LeftViewCommand.
''' </summary>
Public Sub LeftView(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.LEFTVIEW)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanLeftView(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' LeftViewCommand
#Region "BackViewCommand"
''' <summary>
''' Returns a command that do BackView.
''' </summary>
Public ReadOnly Property BackViewCommand As ICommand
Get
If m_cmdBackView Is Nothing Then
m_cmdBackView = New RelayCommand(AddressOf BackView, AddressOf CanBackView)
End If
Return m_cmdBackView
End Get
End Property
''' <summary>
''' Execute the BackView. This method is invoked by the BackViewCommand.
''' </summary>
Public Sub BackView(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.BACKVIEW)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanBackView(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' BackViewCommand
#Region "RightViewCommand"
''' <summary>
''' Returns a command that do RightView.
''' </summary>
Public ReadOnly Property RightViewCommand As ICommand
Get
If m_cmdRightView Is Nothing Then
m_cmdRightView = New RelayCommand(AddressOf RightView, AddressOf CanRightView)
End If
Return m_cmdRightView
End Get
End Property
''' <summary>
''' Execute the RightView. This method is invoked by the RightViewCommand.
''' </summary>
Public Sub RightView(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.RIGHTVIEW)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanRightView(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' RightViewCommand
#Region "IsoViewSWCommand"
''' <summary>
''' Returns a command that do IsoViewSW.
''' </summary>
Public ReadOnly Property IsoViewSWCommand As ICommand
Get
If m_cmdIsoViewSW Is Nothing Then
m_cmdIsoViewSW = New RelayCommand(AddressOf IsoViewSW, AddressOf CanIsoViewSW)
End If
Return m_cmdIsoViewSW
End Get
End Property
''' <summary>
''' Execute the IsoViewSW. This method is invoked by the IsoViewSWCommand.
''' </summary>
Public Sub IsoViewSW(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.ISOVIEWSW)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanIsoViewSW(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' IsoViewSWCommand
#Region "IsoViewSECommand"
''' <summary>
''' Returns a command that do IsoViewSE.
''' </summary>
Public ReadOnly Property IsoViewSECommand As ICommand
Get
If m_cmdIsoViewSE Is Nothing Then
m_cmdIsoViewSE = New RelayCommand(AddressOf IsoViewSE, AddressOf CanIsoViewSE)
End If
Return m_cmdIsoViewSE
End Get
End Property
''' <summary>
''' Execute the IsoViewSE. This method is invoked by the IsoViewSECommand.
''' </summary>
Public Sub IsoViewSE(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.ISOVIEWSE)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanIsoViewSE(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' IsoViewSECommand
#Region "IsoViewNECommand"
''' <summary>
''' Returns a command that do IsoViewNE.
''' </summary>
Public ReadOnly Property IsoViewNECommand As ICommand
Get
If m_cmdIsoViewNE Is Nothing Then
m_cmdIsoViewNE = New RelayCommand(AddressOf IsoViewNE, AddressOf CanIsoViewNE)
End If
Return m_cmdIsoViewNE
End Get
End Property
''' <summary>
''' Execute the IsoViewNE. This method is invoked by the IsoViewNECommand.
''' </summary>
Public Sub IsoViewNE(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.ISOVIEWNE)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanIsoViewNE(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' IsoViewNECommand
#Region "IsoViewNWCommand"
''' <summary>
''' Returns a command that do IsoViewNW.
''' </summary>
Public ReadOnly Property IsoViewNWCommand As ICommand
Get
If m_cmdIsoViewNW Is Nothing Then
m_cmdIsoViewNW = New RelayCommand(AddressOf IsoViewNW, AddressOf CanIsoViewNW)
End If
Return m_cmdIsoViewNW
End Get
End Property
''' <summary>
''' Execute the IsoViewNW. This method is invoked by the IsoViewNWCommand.
''' </summary>
Public Sub IsoViewNW(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.ISOVIEWNW)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanIsoViewNW(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' IsoViewNWCommand
#Region "CurveDirCommand"
''' <summary>
''' Returns a command that do CurveDir.
''' </summary>
Public ReadOnly Property CurveDirCommand As ICommand
Get
If m_cmdCurveDir Is Nothing Then
m_cmdCurveDir = New RelayCommand(AddressOf CurveDir, AddressOf CanCurveDir)
End If
Return m_cmdCurveDir
End Get
End Property
''' <summary>
''' Execute the CurveDir. This method is invoked by the CurveDirCommand.
''' </summary>
Public Sub CurveDir(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CURVEDIR)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCurveDir(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CurveDirCommand
#Region "AnalyzeCommand"
''' <summary>
''' Returns a command that do Analyze.
''' </summary>
Public ReadOnly Property AnalyzeCommand As ICommand
Get
If m_cmdAnalyze Is Nothing Then
m_cmdAnalyze = New RelayCommand(AddressOf Analyze, AddressOf CanAnalyze)
End If
Return m_cmdAnalyze
End Get
End Property
''' <summary>
''' Execute the Analyze. This method is invoked by the AnalyzeCommand.
''' </summary>
Public Sub Analyze(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.ANALYZE)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanAnalyze(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' AnalyzeCommand
#Region "GetDistCommand"
''' <summary>
''' Returns a command that do GetDist.
''' </summary>
Public ReadOnly Property GetDistCommand As ICommand
Get
If m_cmdGetDist Is Nothing Then
m_cmdGetDist = New RelayCommand(AddressOf GetDist, AddressOf CanGetDist)
End If
Return m_cmdGetDist
End Get
End Property
''' <summary>
''' Execute the GetDist. This method is invoked by the GetDistCommand.
''' </summary>
Public Sub GetDist(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.GETDIST)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanGetDist(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' GetDistCommand
#Region "CPlaneTopCommand"
''' <summary>
''' Returns a command that do CPlaneTop.
''' </summary>
Public ReadOnly Property CPlaneTopCommand As ICommand
Get
If m_cmdCPlaneTop Is Nothing Then
m_cmdCPlaneTop = New RelayCommand(AddressOf CPlaneTop, AddressOf CanCPlaneTop)
End If
Return m_cmdCPlaneTop
End Get
End Property
''' <summary>
''' Execute the CPlaneTop. This method is invoked by the CPlaneTopCommand.
''' </summary>
Public Sub CPlaneTop(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANETOP)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneTop(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneTopCommand
#Region "CPlaneFrontCommand"
''' <summary>
''' Returns a command that do CPlaneFront.
''' </summary>
Public ReadOnly Property CPlaneFrontCommand As ICommand
Get
If m_cmdCPlaneFront Is Nothing Then
m_cmdCPlaneFront = New RelayCommand(AddressOf CPlaneFront, AddressOf CanCPlaneFront)
End If
Return m_cmdCPlaneFront
End Get
End Property
''' <summary>
''' Execute the CPlaneFront. This method is invoked by the CPlaneFrontCommand.
''' </summary>
Public Sub CPlaneFront(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANEFRONT)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneFront(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneFrontCommand
#Region "CPlaneRightCommand"
''' <summary>
''' Returns a command that do CPlaneRight.
''' </summary>
Public ReadOnly Property CPlaneRightCommand As ICommand
Get
If m_cmdCPlaneRight Is Nothing Then
m_cmdCPlaneRight = New RelayCommand(AddressOf CPlaneRight, AddressOf CanCPlaneRight)
End If
Return m_cmdCPlaneRight
End Get
End Property
''' <summary>
''' Execute the CPlaneRight. This method is invoked by the CPlaneRightCommand.
''' </summary>
Public Sub CPlaneRight(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANERIGHT)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneRight(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneRightCommand
#Region "CPlaneBackCommand"
''' <summary>
''' Returns a command that do CPlaneBack.
''' </summary>
Public ReadOnly Property CPlaneBackCommand As ICommand
Get
If m_cmdCPlaneBack Is Nothing Then
m_cmdCPlaneBack = New RelayCommand(AddressOf CPlaneBack, AddressOf CanCPlaneBack)
End If
Return m_cmdCPlaneBack
End Get
End Property
''' <summary>
''' Execute the CPlaneBack. This method is invoked by the CPlaneBackCommand.
''' </summary>
Public Sub CPlaneBack(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANEBACK)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneBack(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneBackCommand
#Region "CPlaneLeftCommand"
''' <summary>
''' Returns a command that do CPlaneLeft.
''' </summary>
Public ReadOnly Property CPlaneLeftCommand As ICommand
Get
If m_cmdCPlaneLeft Is Nothing Then
m_cmdCPlaneLeft = New RelayCommand(AddressOf CPlaneLeft, AddressOf CanCPlaneLeft)
End If
Return m_cmdCPlaneLeft
End Get
End Property
''' <summary>
''' Execute the CPlaneLeft. This method is invoked by the CPlaneLeftCommand.
''' </summary>
Public Sub CPlaneLeft(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANELEFT)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneLeft(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneLeftCommand
#Region "CPlaneBottomCommand"
''' <summary>
''' Returns a command that do CPlaneBottom.
''' </summary>
Public ReadOnly Property CPlaneBottomCommand As ICommand
Get
If m_cmdCPlaneBottom Is Nothing Then
m_cmdCPlaneBottom = New RelayCommand(AddressOf CPlaneBottom, AddressOf CanCPlaneBottom)
End If
Return m_cmdCPlaneBottom
End Get
End Property
''' <summary>
''' Execute the CPlaneBottom. This method is invoked by the CPlaneBottomCommand.
''' </summary>
Public Sub CPlaneBottom(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANEBOTTOM)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneBottom(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneBottomCommand
#Region "CPlaneViewCommand"
''' <summary>
''' Returns a command that do CPlaneView.
''' </summary>
Public ReadOnly Property CPlaneViewCommand As ICommand
Get
If m_cmdCPlaneView Is Nothing Then
m_cmdCPlaneView = New RelayCommand(AddressOf CPlaneView, AddressOf CanCPlaneView)
End If
Return m_cmdCPlaneView
End Get
End Property
''' <summary>
''' Execute the CPlaneView. This method is invoked by the CPlaneViewCommand.
''' </summary>
Public Sub CPlaneView(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANEVIEW)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneView(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneViewCommand
#Region "CPlaneElevationCommand"
''' <summary>
''' Returns a command that do CPlaneElevation.
''' </summary>
Public ReadOnly Property CPlaneElevationCommand As ICommand
Get
If m_cmdCPlaneElevation Is Nothing Then
m_cmdCPlaneElevation = New RelayCommand(AddressOf CPlaneElevation, AddressOf CanCPlaneElevation)
End If
Return m_cmdCPlaneElevation
End Get
End Property
''' <summary>
''' Execute the CPlaneElevation. This method is invoked by the CPlaneElevationCommand.
''' </summary>
Public Sub CPlaneElevation(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANEELEVATION)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneElevation(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneElevationCommand
#Region "CPlaneOriginCommand"
''' <summary>
''' Returns a command that do CPlaneOrigin.
''' </summary>
Public ReadOnly Property CPlaneOriginCommand As ICommand
Get
If m_cmdCPlaneOrigin Is Nothing Then
m_cmdCPlaneOrigin = New RelayCommand(AddressOf CPlaneOrigin, AddressOf CanCPlaneOrigin)
End If
Return m_cmdCPlaneOrigin
End Get
End Property
''' <summary>
''' Execute the CPlaneOrigin. This method is invoked by the CPlaneOriginCommand.
''' </summary>
Public Sub CPlaneOrigin(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANEORIGIN)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneOrigin(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneOriginCommand
#Region "CPlaneRotateCommand"
''' <summary>
''' Returns a command that do CPlaneRotate.
''' </summary>
Public ReadOnly Property CPlaneRotateCommand As ICommand
Get
If m_cmdCPlaneRotate Is Nothing Then
m_cmdCPlaneRotate = New RelayCommand(AddressOf CPlaneRotate, AddressOf CanCPlaneRotate)
End If
Return m_cmdCPlaneRotate
End Get
End Property
''' <summary>
''' Execute the CPlaneRotate. This method is invoked by the CPlaneRotateCommand.
''' </summary>
Public Sub CPlaneRotate(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANEROTATE)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneRotate(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneRotateCommand
#Region "CPlane3PCommand"
''' <summary>
''' Returns a command that do CPlane3P.
''' </summary>
Public ReadOnly Property CPlane3PCommand As ICommand
Get
If m_cmdCPlane3P Is Nothing Then
m_cmdCPlane3P = New RelayCommand(AddressOf CPlane3P, AddressOf CanCPlane3P)
End If
Return m_cmdCPlane3P
End Get
End Property
''' <summary>
''' Execute the CPlane3P. This method is invoked by the CPlane3PCommand.
''' </summary>
Public Sub CPlane3P(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANE3P)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlane3P(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlane3PCommand
#Region "CPlanePerpObjCommand"
''' <summary>
''' Returns a command that do CPlanePerpObj.
''' </summary>
Public ReadOnly Property CPlanePerpObjCommand As ICommand
Get
If m_cmdCPlanePerpObj Is Nothing Then
m_cmdCPlanePerpObj = New RelayCommand(AddressOf CPlanePerpObj, AddressOf CanCPlanePerpObj)
End If
Return m_cmdCPlanePerpObj
End Get
End Property
''' <summary>
''' Execute the CPlanePerpObj. This method is invoked by the CPlanePerpObjCommand.
''' </summary>
Public Sub CPlanePerpObj(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANEPERPOBJ)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlanePerpObj(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlanePerpObjCommand
#Region "CPlaneObjCommand"
''' <summary>
''' Returns a command that do CPlanepObj.
''' </summary>
Public ReadOnly Property CPlaneObjCommand As ICommand
Get
If m_cmdCPlaneObj Is Nothing Then
m_cmdCPlaneObj = New RelayCommand(AddressOf CPlaneObj, AddressOf CanCPlaneObj)
End If
Return m_cmdCPlaneObj
End Get
End Property
''' <summary>
''' Execute the CPlaneObj. This method is invoked by the CPlaneObjCommand.
''' </summary>
Public Sub CPlaneObj(ByVal param As Object)
Application.Msn.NotifyColleagues(Application.CPLANEOBJ)
End Sub
''' <summary>
''' Returns always true.
''' </summary>
Private Function CanCPlaneObj(ByVal param As Object) As Boolean
Return True
End Function
#End Region ' CPlaneObjCommand
End Class
End Namespace
@@ -0,0 +1,14 @@
<UserControl x:Class="DrawOptionPanelView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel Background="DarkGray">
<!--ContentPresenter that contains the ManageLayerExpander-->
<ContentPresenter Content="{Binding ManageLayerExpander}"/>
<!--ContentPresenter that contains the InfoExpander-->
<ContentPresenter Content="{Binding InfoExpander}"/>
<!--ContentPresenter that contains the InputExpander-->
<ContentPresenter Content="{Binding InputExpander}"/>
</StackPanel>
</UserControl>
@@ -0,0 +1,3 @@
Public Class DrawOptionPanelView
End Class
@@ -0,0 +1,150 @@
Imports System.Collections.ObjectModel
Namespace EgtCAM5
Public Class DrawOptionPanelViewModel
Inherits ViewModelBase
' GRAPHICAL ELEMENTS
Private m_ManageLayerExpander As ManageLayerExpanderView
Public ReadOnly Property ManageLayerExpander As ManageLayerExpanderView
Get
If IsNothing(m_ManageLayerExpander) Then
m_ManageLayerExpander = New ManageLayerExpanderView
m_ManageLayerExpander.DataContext = New ManageLayerExpanderViewModel
End If
Return m_ManageLayerExpander
End Get
End Property
Private m_InputExpander As InputExpanderView
Public ReadOnly Property InputExpander As InputExpanderView
Get
If IsNothing(m_InputExpander) Then
m_InputExpander = New InputExpanderView
m_InputExpander.DataContext = New InputExpanderViewModel
End If
Return m_InputExpander
End Get
End Property
Private m_InfoExpander As InfoExpanderView
Public ReadOnly Property InfoExpander As InfoExpanderView
Get
If IsNothing(m_InfoExpander) Then
m_InfoExpander = New InfoExpanderView
m_InfoExpander.DataContext = New InfoExpanderViewModel
End If
Return m_InfoExpander
End Get
End Property
Private m_Title As String
Public Property Title As String
Get
Return m_Title
End Get
Set(value As String)
m_Title = value
OnPropertyChanged("Title")
End Set
End Property
Private m_TextBlock As String
Public Property TextBlock As String
Get
Return m_TextBlock
End Get
Set(value As String)
m_TextBlock = value
OnPropertyChanged("TextBlock")
End Set
End Property
Private m_TextBox As String
Public Property TextBox As String
Get
Return m_TextBox
End Get
Set(value As String)
m_TextBox = value
OnPropertyChanged("TextBox")
End Set
End Property
Private m_CheckBoxText As String
Public Property CheckBoxText As String
Get
Return m_CheckBoxText
End Get
Set(value As String)
m_CheckBoxText = value
OnPropertyChanged("CheckBoxText")
End Set
End Property
Private m_ComboItemsList As ObservableCollection(Of String)
Public Property ComboItemsList As ObservableCollection(Of String)
Get
Return m_ComboItemsList
End Get
Set(value As ObservableCollection(Of String))
m_ComboItemsList = value
OnPropertyChanged("ComboItemsList")
End Set
End Property
Private m_ComboSelectedItem As String
Public Property ComboSelectedItem As String
Get
Return m_ComboSelectedItem
End Get
Set(value As String)
m_ComboSelectedItem = value
OnPropertyChanged("ComboSelectedItem")
End Set
End Property
Private m_ShowVisibility As Boolean
Public Property ShowVisibility As Boolean
Get
Return m_ShowVisibility
End Get
Set(value As Boolean)
m_ShowVisibility = value
OnPropertyChanged("ShowVisibility")
End Set
End Property
Sub New()
Application.Msn.NotifyColleagues(Application.NOTIFYINPUTTEXT, TextBox)
End Sub
Private Sub PrepareInputBox(ByRef sTitle As String, ByRef sLabel As String, ByRef sCheckLabel As String,
ByVal bShowCombo As Boolean, ByVal bShowBtn As Boolean)
Title = sTitle
TextBlock = sLabel
TextBox = ""
If sCheckLabel <> "" Then
CheckBoxText = sCheckLabel
End If
If bShowCombo Then
ComboItemsList.Clear()
End If
If bShowBtn Then
ShowVisibility = True
End If
'InputText.Focus()
End Sub
Private Sub ResetInputBox()
'InputBox.Hide()
'InputCheck.Hide()
'InputCombo.Hide()
'btnShow.Hide()
'Scene1.Focus()
End Sub
End Class
End Namespace
@@ -0,0 +1,9 @@
<UserControl x:Class="InfoExpanderView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Expander Header="Properties">
<UniformGrid>
<TextBox/>
</UniformGrid>
</Expander>
</UserControl>
@@ -0,0 +1,3 @@
Public Class InfoExpanderView
End Class
@@ -0,0 +1,7 @@
Namespace EgtCAM5
Public Class InfoExpanderViewModel
End Class
End Namespace
@@ -0,0 +1,18 @@
<UserControl x:Class="InputExpanderView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Expander Header="{Binding Title}" IsExpanded="{Binding IsExpanded}" IsEnabled="{Binding }" Grid.Row="2">
<StackPanel>
<TextBlock Text="{Binding TextBlock}"/>
<TextBox Text="{Binding TextBox}" FocusManager.FocusedElement="{Binding }"/>
<CheckBox Content="{Binding CheckBoxText}"/>
<ComboBox ItemsSource="{Binding ComboItemsList}" SelectedIndex="{Binding ComboSelectedItem}"/>
<UniformGrid>
<Button Visibility="{Binding ShowVisibility}" Content="Show" Style="{StaticResource EgtCAM5_Button}"/>
<Button Content="Done" Style="{StaticResource EgtCAM5_Button}"/>
</UniformGrid>
</StackPanel>
</Expander>
</UserControl>
@@ -0,0 +1,3 @@
Public Class InputExpanderView
End Class
@@ -0,0 +1,7 @@
Namespace EgtCAM5
Public Class InputExpanderViewModel
End Class
End Namespace
@@ -0,0 +1,16 @@
<UserControl x:Class="ManageLayerExpanderView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Expander Header="Layers" Grid.Row="0">
<StackPanel>
<TextBox/>
<UniformGrid Rows="1">
<Button Content="Button4" Width="40" Height="40"/>
<Button Content="Button5" Width="40" Height="40"/>
<Button Content="Button6" Width="40" Height="40"/>
</UniformGrid>
<TreeView/>
</StackPanel>
</Expander>
</UserControl>
@@ -0,0 +1,3 @@
Public Class ManageLayerExpanderView
End Class
@@ -0,0 +1,7 @@
Namespace EgtCAM5
Public Class ManageLayerExpanderViewModel
End Class
End Namespace
+13
View File
@@ -0,0 +1,13 @@
<UserControl x:Class="ProjectView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtUILib="clr-namespace:EgtUILib;assembly=EgtUILib"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" Loaded="UserControl_Loaded">
<!--ContentControl che ospita la scena restituita sotto forma di WindowsFormsHost-->
<ContentControl Content="{Binding ProjectSceneHost}"/>
</UserControl>
+12
View File
@@ -0,0 +1,12 @@
Imports EgtUILib
Public Class ProjectView
Private Sub UserControl_Loaded(sender As Object, e As RoutedEventArgs)
' Inizializzo la scena
'If Not ProjectScene.Init() Then
' EgtOutLog("Errore nella creazione della scena")
'End If
End Sub
End Class
+605
View File
@@ -0,0 +1,605 @@
Imports System.Windows.Forms.Integration
Imports System.IO
Imports EgtUILib
Namespace EgtCAM5
Public Class ProjectViewModel
Inherits TabViewModel
#Region "FIELDS"
'PROJECT PAGE'S PANELS
Private m_GridViewPanel As BaseWindowView
Private m_DrawPanel As BaseWindowView
Private m_DrawOptionPanel As BaseWindowView
'PROJECT PAGE'S SCENE FIELDS AND PROPERTIES
' Reference to the ProjectScene
Private WithEvents m_ProjectScene As New Scene
' Reference to the ProjectSceneHost
Private SceneHost As WindowsFormsHost
' Property used to bind the scene to the WindowsFormsHost in XAML
Private m_bfirst As Boolean = True
Public ReadOnly Property ProjectSceneHost As WindowsFormsHost
Get
If m_bfirst Then
SceneHost = New WindowsFormsHost() With {.Child = m_ProjectScene}
If Not m_ProjectScene.Init() Then
EgtOutLog("Error in Project scene creation")
' Chiudo il programma
Application.Msn.NotifyColleagues(Application.CLOSEAPPLICATION)
End If
IniFile.m_ProjectSceneContext = m_ProjectScene.GetCtx
' inizializzo gestore lavorazioni
EgtInitMachMgr(IniFile.m_sMachinesRoot)
EgtOpenFile("c:\EgtData\Varie\Temp\Fiera02.Nge")
EgtZoom(ZM.ALL)
m_bfirst = False
End If
Return SceneHost
End Get
End Property
' Scene controller
Private WithEvents m_Controller As New Controller
#End Region
#Region "EGTUILIB FIELDS"
Private m_bScriptRunning As Boolean = False
' Variabile per implementazione eventi
Private m_InputText As String
#End Region
#Region "CONSTRUCTOR"
Sub New()
Me.sTabName = EgtMsg(MSG_MAINWINDOW + 1)
m_GridViewPanel = New BaseWindowView
m_GridViewPanel.DataContext = New GridViewPanelViewModel
m_GridViewPanel.Show()
m_DrawPanel = New BaseWindowView
m_DrawPanel.DataContext = New DrawPanelViewModel
m_DrawPanel.Show()
m_DrawOptionPanel = New BaseWindowView
m_DrawOptionPanel.DataContext = New DrawOptionPanelViewModel
m_DrawOptionPanel.Show()
ManagePanelVisibility()
RegisterDrawPanelCommands()
'Impostazioni Controller
m_Controller.SetScene(m_ProjectScene)
'Dim bLuaReg As Boolean = (GetPrivateProfileInt(S_GENERAL, K_COMMANDLOG, 0, m_sIniFile) <> 0)
'Dim sCmdLogFile As String = CMDLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
'If Not m_Controller.SetCommandLog(bLuaReg, m_sTempDir, sCmdLogFile) Then
' EgtOutLog("Command log not started")
' 'If My.Application.CommandLineArgs.Count() = 0 Then
' ' MessageBox.Show("Command log not started", "TestEIn Warning",
' ' MessageBoxButtons.OK, MessageBoxIcon.Warning)
' 'End If
'End If
' MESSAGGI PER IL CONTROLLER
Application.Msn.Register(Application.NOTIFYINPUTTEXT, Sub(sInputText As String)
m_InputText = sInputText
End Sub)
End Sub
#End Region
#Region "METHODS"
''' <summary>
''' Method that manage the visibility of the ProjectPage's Panels
''' </summary>
Sub ManagePanelVisibility()
Application.Msn.Register(Application.PROJECTPAGE_SELECTED, Sub()
m_GridViewPanel.Visibility = Visibility.Visible
m_DrawPanel.Visibility = Visibility.Visible
m_DrawOptionPanel.Visibility = Visibility.Visible
End Sub)
Application.Msn.Register(Application.PROJECTPAGE_DESELECTED, Sub()
m_GridViewPanel.Visibility = Visibility.Hidden
m_DrawPanel.Visibility = Visibility.Hidden
m_DrawOptionPanel.Visibility = Visibility.Hidden
End Sub)
End Sub
''' <summary>
''' Method that manage the visibility of the ProjectPage's Panels
''' </summary>
Sub RegisterDrawPanelCommands()
Application.Msn.Register(Application.WIREFRAME, Sub()
m_ProjectScene.WireFrame()
End Sub)
Application.Msn.Register(Application.HIDDENLINE, Sub()
m_ProjectScene.HiddenLine()
End Sub)
Application.Msn.Register(Application.SHADING, Sub()
m_ProjectScene.Shading()
End Sub)
Application.Msn.Register(Application.ZOOMALL, Sub()
m_ProjectScene.ZoomAll()
End Sub)
Application.Msn.Register(Application.ZOOMIN, Sub()
m_ProjectScene.ZoomIn()
End Sub)
Application.Msn.Register(Application.ZOOMOUT, Sub()
m_ProjectScene.ZoomOut()
End Sub)
Application.Msn.Register(Application.TOPVIEW, Sub()
m_ProjectScene.TopView()
End Sub)
Application.Msn.Register(Application.FRONTVIEW, Sub()
m_ProjectScene.FrontView()
End Sub)
Application.Msn.Register(Application.LEFTVIEW, Sub()
m_ProjectScene.LeftView()
End Sub)
Application.Msn.Register(Application.BACKVIEW, Sub()
m_ProjectScene.BackView()
End Sub)
Application.Msn.Register(Application.RIGHTVIEW, Sub()
m_ProjectScene.RightView()
End Sub)
Application.Msn.Register(Application.ISOVIEWSW, Sub()
m_ProjectScene.IsoViewSW()
End Sub)
Application.Msn.Register(Application.ISOVIEWSE, Sub()
m_ProjectScene.IsoViewSE()
End Sub)
Application.Msn.Register(Application.ISOVIEWNE, Sub()
m_ProjectScene.IsoViewNE()
End Sub)
Application.Msn.Register(Application.ISOVIEWNW, Sub()
m_ProjectScene.IsoViewNW()
End Sub)
Application.Msn.Register(Application.CURVEDIR, Sub()
End Sub)
Application.Msn.Register(Application.ANALYZE, Sub()
End Sub)
Application.Msn.Register(Application.GETDIST, Sub()
End Sub)
Application.Msn.Register(Application.CPLANETOP, Sub()
m_Controller.SetLastInteger(Controller.GRID_TYPE.TOP)
m_Controller.ExecuteCommand(Controller.CMD.GRID)
End Sub)
Application.Msn.Register(Application.CPLANEFRONT, Sub()
m_Controller.SetLastInteger(Controller.GRID_TYPE.FRONT)
m_Controller.ExecuteCommand(Controller.CMD.GRID)
End Sub)
Application.Msn.Register(Application.CPLANERIGHT, Sub()
m_Controller.SetLastInteger(Controller.GRID_TYPE.RIGHT)
m_Controller.ExecuteCommand(Controller.CMD.GRID)
End Sub)
Application.Msn.Register(Application.CPLANEBACK, Sub()
m_Controller.SetLastInteger(Controller.GRID_TYPE.BACK)
m_Controller.ExecuteCommand(Controller.CMD.GRID)
End Sub)
Application.Msn.Register(Application.CPLANELEFT, Sub()
m_Controller.SetLastInteger(Controller.GRID_TYPE.LEFT)
m_Controller.ExecuteCommand(Controller.CMD.GRID)
End Sub)
Application.Msn.Register(Application.CPLANEBOTTOM, Sub()
m_Controller.SetLastInteger(Controller.GRID_TYPE.BOTTOM)
m_Controller.ExecuteCommand(Controller.CMD.GRID)
End Sub)
Application.Msn.Register(Application.CPLANEVIEW, Sub()
m_Controller.SetLastInteger(Controller.GRID_TYPE.VIEW)
m_Controller.ExecuteCommand(Controller.CMD.GRID)
End Sub)
Application.Msn.Register(Application.CPLANEELEVATION, Sub()
m_Controller.ExecuteCommand(Controller.CMD.GRID_ELEVATION)
End Sub)
Application.Msn.Register(Application.CPLANEORIGIN, Sub()
m_Controller.ExecuteCommand(Controller.CMD.GRID_ORIGIN)
End Sub)
Application.Msn.Register(Application.CPLANEROTATE, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.GRID_ROTATE)
Else
m_Controller.ExecuteCommand(Controller.CMD.GRID_ROTATE3D)
End If
End Sub)
Application.Msn.Register(Application.CPLANE3P, Sub()
m_Controller.ExecuteCommand(Controller.CMD.GRID_3P)
End Sub)
Application.Msn.Register(Application.CPLANEPERPOBJ, Sub()
m_Controller.ExecuteCommand(Controller.CMD.GRID_PERPCURVE)
End Sub)
Application.Msn.Register(Application.CPLANEOBJ, Sub()
m_Controller.ExecuteCommand(Controller.CMD.GRID_OBJ)
End Sub)
Application.Msn.Register(Application.POINT, Sub()
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
m_Controller.ExecuteCommand(Controller.CMD.FRAME)
ElseIf (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.VECTOR)
Else
m_Controller.ExecuteCommand(Controller.CMD.POINT)
End If
End Sub)
Application.Msn.Register(Application.LINE2P, Sub()
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
m_Controller.SetContinue()
'EmitStripStatusOutput(EgtMsg(399)) ' Continue : 'L' with line, 'A' with arc
End If
m_Controller.ExecuteCommand(Controller.CMD.LINE2P)
End Sub)
Application.Msn.Register(Application.LINEPDL, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.LINEPDL)
Else
m_Controller.ExecuteCommand(Controller.CMD.LINEPVL)
End If
End Sub)
Application.Msn.Register(Application.CIRCLE, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.CIRCLECP)
Else
m_Controller.ExecuteCommand(Controller.CMD.CIRCLECD)
End If
End Sub)
Application.Msn.Register(Application.ARCCSE, Sub()
m_Controller.ExecuteCommand(Controller.CMD.ARCCSE)
End Sub)
Application.Msn.Register(Application.ARC3P, Sub()
m_Controller.ExecuteCommand(Controller.CMD.ARC3P)
End Sub)
Application.Msn.Register(Application.ARCPDP, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
m_Controller.SetContinue()
'EmitStripStatusOutput(EgtMsg(399)) ' Continue : 'L' with line, 'A' with arc
End If
m_Controller.ExecuteCommand(Controller.CMD.ARCPDP)
Else
m_Controller.ExecuteCommand(Controller.CMD.ARCPVP)
End If
End Sub)
Application.Msn.Register(Application.FILLET, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.FILLET)
Else
m_Controller.ExecuteCommand(Controller.CMD.CHAMFER)
End If
End Sub)
Application.Msn.Register(Application.RECTANGLE2P, Sub()
m_Controller.ExecuteCommand(Controller.CMD.RECTANGLE2P)
End Sub)
Application.Msn.Register(Application.POLYGON, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.POLYGON)
Else
m_Controller.ExecuteCommand(Controller.CMD.POLYGONSIDE)
End If
End Sub)
Application.Msn.Register(Application.TEXT, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.TEXT)
Else
m_Controller.ExecuteCommand(Controller.CMD.TEXTPLUS)
End If
End Sub)
Application.Msn.Register(Application.PLANE, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.REGION)
Else
m_Controller.ExecuteCommand(Controller.CMD.PLANE)
End If
End Sub)
Application.Msn.Register(Application.EXTRUDE, Sub()
m_Controller.ExecuteCommand(Controller.CMD.EXTRUDE)
End Sub)
Application.Msn.Register(Application.REVOLVE, Sub()
m_Controller.ExecuteCommand(Controller.CMD.REVOLVE)
End Sub)
Application.Msn.Register(Application.SCREW, Sub()
m_Controller.ExecuteCommand(Controller.CMD.SCREW)
End Sub)
Application.Msn.Register(Application.RULED, Sub()
m_Controller.ExecuteCommand(Controller.CMD.RULED)
End Sub)
Application.Msn.Register(Application.MERGESURF, Sub()
m_Controller.ExecuteCommand(Controller.CMD.MERGESURF)
End Sub)
Application.Msn.Register(Application.EXPLODESURF, Sub()
m_Controller.ExecuteCommand(Controller.CMD.EXPLODESURF)
End Sub)
Application.Msn.Register(Application.INVERTSURF, Sub()
m_Controller.ExecuteCommand(Controller.CMD.INVERTSURF)
End Sub)
Application.Msn.Register(Application.DELETE, Sub()
m_Controller.SetLastInteger(GDB_ID.SEL)
m_Controller.ExecuteCommand(Controller.CMD.DELETE)
End Sub)
Application.Msn.Register(Application.CHANGELAYER, Sub()
m_Controller.ExecuteCommand(Controller.CMD.CHANGELAYER)
End Sub)
Application.Msn.Register(Application.CHANGECOLOR, Sub()
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
m_Controller.ExecuteCommand(Controller.CMD.CHANGEALPHA)
ElseIf (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.RESETCOLOR)
Else
m_Controller.ExecuteCommand(Controller.CMD.CHANGECOLOR)
End If
End Sub)
Application.Msn.Register(Application.INVERTCURVE, Sub()
m_Controller.ExecuteCommand(Controller.CMD.INVERTCURVE)
End Sub)
Application.Msn.Register(Application.CHANGESTARTCURVE, Sub()
m_Controller.ExecuteCommand(Controller.CMD.CHANGESTARTCURVE)
End Sub)
Application.Msn.Register(Application.EXTENDCURVE, Sub()
m_Controller.ExecuteCommand(Controller.CMD.TRIMEXTENDCURVE)
End Sub)
Application.Msn.Register(Application.BREAKCURVE, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.BREAKCURVE)
Else
m_Controller.ExecuteCommand(Controller.CMD.SPLITCURVE)
End If
End Sub)
Application.Msn.Register(Application.JOINCURVE, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.SetLastBoolean(False)
Else
m_Controller.SetLastBoolean(True)
End If
m_Controller.ExecuteCommand(Controller.CMD.JOINCURVE)
End Sub)
Application.Msn.Register(Application.EXPLODECURVE, Sub()
m_Controller.ExecuteCommand(Controller.CMD.EXPLODECURVE)
End Sub)
Application.Msn.Register(Application.SETCURVETH, Sub()
m_Controller.ExecuteCommand(Controller.CMD.SETCURVETHICKNESS)
End Sub)
Application.Msn.Register(Application.MOVE, Sub()
m_Controller.ExecuteCommand(Controller.CMD.MOVE)
End Sub)
Application.Msn.Register(Application.ROTATE, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.ROTATE)
Else
m_Controller.ExecuteCommand(Controller.CMD.ROTATE3D)
End If
End Sub)
Application.Msn.Register(Application.MIRROR, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.MIRROR)
Else
m_Controller.ExecuteCommand(Controller.CMD.MIRROR3D)
End If
End Sub)
Application.Msn.Register(Application.SCALE, Sub()
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
m_Controller.ExecuteCommand(Controller.CMD.SCALE)
Else
m_Controller.ExecuteCommand(Controller.CMD.SCALE3D)
End If
End Sub)
Application.Msn.Register(Application.OFFSET, Sub()
m_Controller.ExecuteCommand(Controller.CMD.OFFSET)
End Sub)
End Sub
#End Region
#Region "SCENE EVENTS"
Private Sub OnCursorPos(ByVal sender As Object, ByVal sCursorPos As String) Handles m_ProjectScene.OnCursorPos
Application.Msn.NotifyColleagues(Application.NOTIFYCURRPOSCHANGED, sCursorPos)
End Sub
Private Sub OnMouseSelectedAll(ByVal sender As Object) Handles m_ProjectScene.OnMouseSelectedAll
m_Controller.MouseSelectedAll()
End Sub
Private Sub OnMouseDeselectedAll(ByVal sender As Object) Handles m_ProjectScene.OnMouseDeselectedAll
m_Controller.MouseDeselectedAll()
End Sub
Private Sub OnMouseSelectedObj(ByVal sender As Object, ByVal nId As Integer, ByVal bLast As Boolean) Handles m_ProjectScene.OnMouseSelectedObj
m_Controller.MouseSelectedObj(nId, bLast)
End Sub
Private Sub OnMouseSelectedPart(ByVal sender As Object, ByVal nId As Integer) Handles m_ProjectScene.OnMouseSelectedPart
m_Controller.MouseSelectedPart(nId)
End Sub
Private Sub OnMouseSelectedLayer(ByVal sender As Object, ByVal nId As Integer) Handles m_ProjectScene.OnMouseSelectedLayer
m_Controller.MouseSelectedLayer(nId)
End Sub
Private Sub OnMouseSelectedPath(ByVal sender As Object, ByVal nId As Integer, ByVal bHaltOnFork As Boolean) Handles m_ProjectScene.OnMouseSelectedPath
m_Controller.MouseSelectedPath(nId, bHaltOnFork)
End Sub
Private Sub OnMousePointFromSelection(ByVal sender As Object, ByVal nId As Integer, ByVal PtP As Point3d, ByVal nAux As Integer) Handles m_ProjectScene.OnMousePointFromSelection
m_Controller.SetPointFromSelection(nId, PtP, nAux)
End Sub
Private Sub OnMouseDone(ByVal sender As Object) Handles m_ProjectScene.OnMouseDone
m_Controller.Done(m_InputText)
End Sub
Private Sub OnMouseSelectedPoint(ByVal sender As Object, ByVal PtP As Point3d, ByVal nSep As SEP, ByVal nId As Integer) Handles m_ProjectScene.OnMouseSelectedPoint
Dim bDone As Boolean = (Keyboard.Modifiers And ModifierKeys.Control) <> ModifierKeys.Control
m_Controller.MouseSelectedPoint(PtP, nSep, nId, bDone)
End Sub
Private Sub OnMouseSelectedDir(ByVal sender As Object, ByVal VtDir As Vector3d) Handles m_ProjectScene.OnMouseSelectedDir
m_Controller.SetLastVector3d(VtDir)
End Sub
Private Sub OnMouseMoveSelPoint(ByVal sender As Object, ByVal PtP As Point3d) Handles m_ProjectScene.OnMouseMoveSelPoint
m_Controller.MouseMoveInSelectionPoint(PtP)
End Sub
' Private Sub OnMouseAnalyzed(ByVal sender As Object, ByVal nId As Integer) Handles m_ProjectScene.OnMouseAnalyzed
' UpdateObjInObjTree(nId)
' SelectIdInObjTree(nId)
' End Sub
Private Sub OnShowDistance(ByVal sender As Object, ByVal sDistance As String) Handles m_ProjectScene.OnShowDistance
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSOUTPUT, sDistance)
End Sub
#End Region
#Region "CONTROLLER EVENTS"
Private Sub OnNewProject(ByVal sender As Object, ByVal bOk As Boolean) Handles m_Controller.OnNewProject
If Not bOk Then
MessageBox.Show(EgtMsg(10002), EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error on new file - Error
End If
End Sub
' Private Sub OnOpeningProject(ByVal sender As Object) Handles m_Controller.OnOpeningProject
' ClearObjTree()
' End Sub
Private Sub OnOpenProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnOpenProject
WritePrivateProfileString(S_GENERAL, K_LASTNGEDIR, Path.GetDirectoryName(sFile))
'If bOk Then
' m_MruFiles.Add(sFile)
'Else
' 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
End Sub
Private Sub OnSavingProject(ByVal sender As Object) Handles m_Controller.OnSavingProject
End Sub
Private Sub OnSavedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnSavedProject
WritePrivateProfileString(S_GENERAL, K_LASTNGEDIR, Path.GetDirectoryName(sFile))
'If bOk Then
' m_MruFiles.Add(sFile)
'Else
' m_MruFiles.Remove(sFile)
' Dim sMsg As String = EgtMsg(10004) & " '" & sFile & "'" 'Error saving file
' MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButtons.OK, MessageBoxIcon.Error) ' Error
'End If
End Sub
Private Sub OnSavingObject(ByVal sender As Object) Handles m_Controller.OnSavingObject
End Sub
Private Sub OnSavedObject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnSavedObject
WritePrivateProfileString(S_GENERAL, K_LASTNGEOBJDIR, Path.GetDirectoryName(sFile))
'If bOk Then
' m_MruFiles.Add(sFile)
'Else
' m_MruFiles.Remove(sFile)
' Dim sMsg As String = EgtMsg(10004) & " '" & sFile & "'" 'Error saving file
' MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButtons.OK, MessageBoxIcon.Error) ' Error
'End If
End Sub
Private Sub OnImportingProject(ByVal sender As Object, ByVal bOkType As Boolean) Handles m_Controller.OnImportingProject
If bOkType Then
'ClearObjTree()
Else
MessageBox.Show(EgtMsg(10005), EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' File type unknown - Error
End If
End Sub
Private Sub OnImportedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnImportedProject
WritePrivateProfileString(S_GENERAL, K_LASTIMPDIR, Path.GetDirectoryName(sFile))
If Not bOk Then
Dim sMsg As String = EgtMsg(10006) & " '" & sFile & "'" 'Error importing file
MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
End If
End Sub
Private Sub OnExportingProject(ByVal sender As Object) Handles m_Controller.OnExportingProject
End Sub
Private Sub OnExportedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean) Handles m_Controller.OnExportedProject
WritePrivateProfileString(S_GENERAL, K_LASTEXPDIR, Path.GetDirectoryName(sFile))
If Not bOk Then
Dim sMsg As String = EgtMsg(10007) & " '" & sFile & "'" 'Error exporting file
MessageBox.Show(sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
End If
End Sub
Private Sub OnExecutingScript(ByVal sender As Object) Handles m_Controller.OnExecutingScript
'ClearObjTree()
'Abilito progress e bottone stop
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSPROGRESS, 0)
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSSTOP_ISENABLED, True)
' Dichiaro script in esecuzione
m_bScriptRunning = True
End Sub
Private Sub OnExecutedScript(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean, ByVal sError As String) Handles m_Controller.OnExecutedScript
' Salvo path dello script in lista recenti
WritePrivateProfileString(S_GENERAL, K_LASTLUADIR, Path.GetDirectoryName(sFile))
'If bOk Then
' m_MruScripts.Add(sFile)
'Else
' m_MruScripts.Remove(sFile)
' MessageBox.Show(sError, EgtMsg(10001), MessageBoxButtons.OK, MessageBoxIcon.Error) ' Error
'End If
' Disabilito progress e bottone stop
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSPROGRESS, 0)
Application.Msn.NotifyColleagues(Application.NOTIFYSTATUSSTOP_ISENABLED, False)
'' Dichiaro terminata esecuzione script
m_bScriptRunning = False
End Sub
Private Sub OnPrepareInputBox(ByVal sTitle As String, ByVal sLabel As String, ByVal sCheckLabel As String,
ByVal bShowCombo As Boolean, ByVal bShowBtn As Boolean) Handles m_Controller.PrepareInputBox
'PrepareInputBox(sTitle, sLabel, sCheckLabel, bShowCombo, bShowBtn)
End Sub
' Private Sub OnSetInputBoxText(ByVal sText As String) Handles m_Controller.SetInputBoxText
' SetInputBoxText(sText)
' End Sub
' Private Sub OnSetInputBoxCheck(ByVal bCheck As Boolean) Handles m_Controller.SetInputBoxCheck
' SetInputBoxCheck(bCheck)
' End Sub
' Private Sub OnAddInputBoxCombo(ByVal sText As String, ByVal bSelected As Boolean) Handles m_Controller.AddInputBoxCombo
' AddInputBoxCombo(sText, bSelected)
' End Sub
' Private Sub OnUpdateUI(ByVal sender As Object, ByVal bReloadUI As Boolean) Handles m_Controller.UpdateUI
' ' pulisco input e relativi messaggi
' ResetInputBox()
' If m_Controller.GetContinue() Then
' EmitStripStatusOutput(EgtMsg(399)) ' Continue : 'L' with line, 'A' with arc
' Else
' EmitStripStatusOutput("")
' End If
' ' aggiorno dati correnti
' EmitTitle()
' EmitCurrPartLayer()
' If bReloadUI Then
' LoadObjTree()
' Else
' UpdateObjTree()
' End If
' End Sub
' Private Sub OutputInfo(ByVal sender As Object, ByVal sText As String) Handles m_Controller.OutputInfo
' EmitStripStatusOutput(sText)
' End Sub
#End Region
End Class
End Namespace
Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 707 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 994 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 932 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 962 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 759 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More