Compare commits
48 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a6756b6f77 | |||
| 647e3fe318 | |||
| 6f2fcbaf3e | |||
| 295f882d45 | |||
| 60ecebf9ff | |||
| 02ecb31ae7 | |||
| 51c736f7f9 | |||
| 1b9f5457f2 | |||
| cb2a22863c | |||
| 82bc1f4ff2 | |||
| b695326901 | |||
| 63092f1ed6 | |||
| 8d548dee9c | |||
| 60758454ed | |||
| a328be0e1c | |||
| 05864bcac5 | |||
| 238bdbb1ce | |||
| 144b8dc66e | |||
| 5f9a01ae2e | |||
| a6386e64d9 | |||
| 551eec6496 | |||
| a24c4ada62 | |||
| 2a86d67ca9 | |||
| 5c4a8adf9b | |||
| 0cc2534628 | |||
| 2a861dca1b | |||
| 16715a8c08 | |||
| 4c5500c490 | |||
| 75b4b4e4d0 | |||
| b643cb5030 | |||
| a666749d85 | |||
| f710918411 | |||
| 1585fc2659 | |||
| a00170b37a | |||
| 00836e0695 | |||
| c06d75e292 | |||
| a6acc66099 | |||
| c822538fb7 | |||
| 9072dc3780 | |||
| a9ed233d77 | |||
| 0635302dac | |||
| 12de367ba1 | |||
| a68dba11a2 | |||
| 60784d2588 | |||
| 5d26914967 | |||
| 4c4356dac7 | |||
| 98628b887e | |||
| 5152600fd9 |
@@ -3,18 +3,24 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.32002.261
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Icarus", "Icarus/Icarus.vbproj", "{BCDE0368-2C69-4948-8723-D0FE71417986}"
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Icarus", "Icarus\Icarus.vbproj", "{BCDE0368-2C69-4948-8723-D0FE71417986}"
|
||||
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
|
||||
{BCDE0368-2C69-4948-8723-D0FE71417986}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BCDE0368-2C69-4948-8723-D0FE71417986}.Debug|x64.Build.0 = Debug|x64
|
||||
{BCDE0368-2C69-4948-8723-D0FE71417986}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{BCDE0368-2C69-4948-8723-D0FE71417986}.Debug|x86.Build.0 = Debug|x86
|
||||
{BCDE0368-2C69-4948-8723-D0FE71417986}.Release|x64.ActiveCfg = Release|x64
|
||||
{BCDE0368-2C69-4948-8723-D0FE71417986}.Release|x64.Build.0 = Release|x64
|
||||
{BCDE0368-2C69-4948-8723-D0FE71417986}.Release|x86.ActiveCfg = Release|x86
|
||||
{BCDE0368-2C69-4948-8723-D0FE71417986}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -1,275 +0,0 @@
|
||||
' Follow steps 1a or 1b and then 2 to use this custom control in a XAML file.
|
||||
'
|
||||
' Step 1a) Using this custom control in a XAML file that exists in the current project.
|
||||
' Add this XmlNamespace attribute to the root element of the markup file where it is
|
||||
' to be used:
|
||||
'
|
||||
' xmlns:MyNamespace="clr-namespace:Icarus"
|
||||
'
|
||||
'
|
||||
' Step 1b) Using this custom control in a XAML file that exists in a different project.
|
||||
' Add this XmlNamespace attribute to the root element of the markup file where it is
|
||||
' to be used:
|
||||
'
|
||||
' xmlns:MyNamespace="clr-namespace:Icarus;assembly=Icarus"
|
||||
'
|
||||
' You will also need to add a project reference from the project where the XAML file lives
|
||||
' to this project and Rebuild to avoid compilation errors:
|
||||
'
|
||||
' Right click on the target project in the Solution Explorer and
|
||||
' "Add Reference"->"Projects"->[Browse to and select this project]
|
||||
'
|
||||
'
|
||||
' Step 2)
|
||||
' Go ahead and use your control in the XAML file. Note that Intellisense in the
|
||||
' XML editor does not currently work on custom controls and its child elements.
|
||||
'
|
||||
' <MyNamespace:AirspacePopup/>
|
||||
'
|
||||
|
||||
Imports System.Windows.Controls.Primitives
|
||||
Imports System
|
||||
Imports System.ComponentModel
|
||||
Imports System.Diagnostics
|
||||
Imports System.Runtime.InteropServices
|
||||
Imports System.Windows
|
||||
Imports System.Windows.Input
|
||||
Imports System.Windows.Interop
|
||||
|
||||
Public Class AirspacePopup
|
||||
Inherits Popup
|
||||
|
||||
Public Shared ReadOnly IsTopmostProperty As DependencyProperty = DependencyProperty.Register("IsTopmost", GetType(Boolean), GetType(AirspacePopup), New FrameworkPropertyMetadata(False, AddressOf OnIsTopmostChanged))
|
||||
Public Shared ReadOnly FollowPlacementTargetProperty As DependencyProperty = DependencyProperty.RegisterAttached("FollowPlacementTarget", GetType(Boolean), GetType(AirspacePopup), New UIPropertyMetadata(False))
|
||||
Public Shared ReadOnly AllowOutsideScreenPlacementProperty As DependencyProperty = DependencyProperty.RegisterAttached("AllowOutsideScreenPlacement", GetType(Boolean), GetType(AirspacePopup), New UIPropertyMetadata(False))
|
||||
Public Shared ReadOnly ParentWindowProperty As DependencyProperty = DependencyProperty.RegisterAttached("ParentWindow", GetType(Window), GetType(AirspacePopup), New UIPropertyMetadata(Nothing, AddressOf ParentWindowPropertyChanged))
|
||||
|
||||
Private Shared Sub OnIsTopmostChanged(ByVal source As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
|
||||
Dim airspacePopup As AirspacePopup = TryCast(source, AirspacePopup)
|
||||
airspacePopup.SetTopmostState(airspacePopup.IsTopmost)
|
||||
End Sub
|
||||
|
||||
Private Shared Sub ParentWindowPropertyChanged(ByVal source As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
|
||||
Dim airspacePopup As AirspacePopup = TryCast(source, AirspacePopup)
|
||||
airspacePopup.ParentWindowChanged()
|
||||
End Sub
|
||||
|
||||
Private m_appliedTopMost As Boolean?
|
||||
Private m_alreadyLoaded As Boolean
|
||||
Private m_parentWindow As Window
|
||||
|
||||
Shared Sub New()
|
||||
'This OverrideMetadata call tells the system that this element wants to provide a style that is different than its base class.
|
||||
'This style is defined in themes\generic.xaml
|
||||
DefaultStyleKeyProperty.OverrideMetadata(GetType(AirspacePopup), New FrameworkPropertyMetadata(GetType(AirspacePopup)))
|
||||
End Sub
|
||||
|
||||
Public Sub New()
|
||||
AddHandler Loaded, AddressOf OnPopupLoaded
|
||||
AddHandler Unloaded, AddressOf OnPopupUnloaded
|
||||
Dim descriptor As DependencyPropertyDescriptor = DependencyPropertyDescriptor.FromProperty(PlacementTargetProperty, GetType(AirspacePopup))
|
||||
descriptor.AddValueChanged(Me, AddressOf PlacementTargetChanged)
|
||||
End Sub
|
||||
|
||||
Public Property IsTopmost As Boolean
|
||||
Get
|
||||
Return CBool(GetValue(IsTopmostProperty))
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
SetValue(IsTopmostProperty, value)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property FollowPlacementTarget As Boolean
|
||||
Get
|
||||
Return CBool(GetValue(FollowPlacementTargetProperty))
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
SetValue(FollowPlacementTargetProperty, value)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property AllowOutsideScreenPlacement As Boolean
|
||||
Get
|
||||
Return CBool(GetValue(AllowOutsideScreenPlacementProperty))
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
SetValue(AllowOutsideScreenPlacementProperty, value)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property ParentWindow As Window
|
||||
Get
|
||||
Return CType(GetValue(ParentWindowProperty), Window)
|
||||
End Get
|
||||
Set(ByVal value As Window)
|
||||
SetValue(ParentWindowProperty, value)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Sub ParentWindowChanged()
|
||||
If ParentWindow IsNot Nothing Then
|
||||
AddHandler ParentWindow.LocationChanged, Function(sender, e2)
|
||||
UpdatePopupPosition()
|
||||
End Function
|
||||
|
||||
AddHandler ParentWindow.SizeChanged, Function(sender, e2)
|
||||
UpdatePopupPosition()
|
||||
End Function
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub PlacementTargetChanged(ByVal sender As Object, ByVal e As EventArgs)
|
||||
Dim placementTarget As FrameworkElement = TryCast(Me.PlacementTarget, FrameworkElement)
|
||||
|
||||
If placementTarget IsNot Nothing Then
|
||||
AddHandler placementTarget.SizeChanged, Function(sender2, e2)
|
||||
UpdatePopupPosition()
|
||||
End Function
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub UpdatePopupPosition()
|
||||
Dim placementTarget As FrameworkElement = TryCast(Me.PlacementTarget, FrameworkElement)
|
||||
Dim child As FrameworkElement = TryCast(Me.Child, FrameworkElement)
|
||||
|
||||
If PresentationSource.FromVisual(placementTarget) IsNot Nothing AndAlso AllowOutsideScreenPlacement = True Then
|
||||
Dim leftOffset As Double = CutLeft(placementTarget)
|
||||
Dim topOffset As Double = CutTop(placementTarget)
|
||||
Dim rightOffset As Double = CutRight(placementTarget)
|
||||
Dim bottomOffset As Double = CutBottom(placementTarget)
|
||||
Debug.WriteLine(bottomOffset)
|
||||
Me.Width = Math.Max(0, Math.Min(leftOffset, rightOffset) + placementTarget.ActualWidth)
|
||||
Me.Height = Math.Max(0, Math.Min(topOffset, bottomOffset) + placementTarget.ActualHeight)
|
||||
|
||||
If child IsNot Nothing Then
|
||||
child.Margin = New Thickness(leftOffset, topOffset, rightOffset, bottomOffset)
|
||||
End If
|
||||
End If
|
||||
|
||||
If FollowPlacementTarget = True Then
|
||||
Me.HorizontalOffset += 0.01
|
||||
Me.HorizontalOffset -= 0.01
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function CutLeft(ByVal placementTarget As FrameworkElement) As Double
|
||||
Dim point As Point = placementTarget.PointToScreen(New Point(0, placementTarget.ActualWidth))
|
||||
Return Math.Min(0, point.X)
|
||||
End Function
|
||||
|
||||
Private Function CutTop(ByVal placementTarget As FrameworkElement) As Double
|
||||
Dim point As Point = placementTarget.PointToScreen(New Point(placementTarget.ActualHeight, 0))
|
||||
Return Math.Min(0, point.Y)
|
||||
End Function
|
||||
|
||||
Private Function CutRight(ByVal placementTarget As FrameworkElement) As Double
|
||||
Dim point As Point = placementTarget.PointToScreen(New Point(0, placementTarget.ActualWidth))
|
||||
point.X += placementTarget.ActualWidth
|
||||
Return Math.Min(0, SystemParameters.VirtualScreenWidth - (Math.Max(SystemParameters.VirtualScreenWidth, point.X)))
|
||||
End Function
|
||||
|
||||
Private Function CutBottom(ByVal placementTarget As FrameworkElement) As Double
|
||||
Dim point As Point = placementTarget.PointToScreen(New Point(placementTarget.ActualHeight, 0))
|
||||
point.Y += placementTarget.ActualHeight
|
||||
Return Math.Min(0, SystemParameters.VirtualScreenHeight - (Math.Max(SystemParameters.VirtualScreenHeight, point.Y)))
|
||||
End Function
|
||||
|
||||
Private Sub OnPopupLoaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
|
||||
If m_alreadyLoaded Then Return
|
||||
m_alreadyLoaded = True
|
||||
|
||||
If Child IsNot Nothing Then
|
||||
Child.[AddHandler](PreviewMouseLeftButtonDownEvent, New MouseButtonEventHandler(AddressOf OnChildPreviewMouseLeftButtonDown), True)
|
||||
End If
|
||||
|
||||
m_parentWindow = Window.GetWindow(Me)
|
||||
If m_parentWindow Is Nothing Then Return
|
||||
AddHandler m_parentWindow.Activated, AddressOf OnParentWindowActivated
|
||||
AddHandler m_parentWindow.Deactivated, AddressOf OnParentWindowDeactivated
|
||||
End Sub
|
||||
|
||||
Private Sub OnPopupUnloaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
|
||||
If m_parentWindow Is Nothing Then Return
|
||||
RemoveHandler m_parentWindow.Activated, AddressOf OnParentWindowActivated
|
||||
RemoveHandler m_parentWindow.Deactivated, AddressOf OnParentWindowDeactivated
|
||||
End Sub
|
||||
|
||||
Private Sub OnParentWindowActivated(ByVal sender As Object, ByVal e As EventArgs)
|
||||
SetTopmostState(True)
|
||||
End Sub
|
||||
|
||||
Private Sub OnParentWindowDeactivated(ByVal sender As Object, ByVal e As EventArgs)
|
||||
If IsTopmost = False Then
|
||||
SetTopmostState(IsTopmost)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnChildPreviewMouseLeftButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)
|
||||
SetTopmostState(True)
|
||||
|
||||
If Not m_parentWindow.IsActive AndAlso IsTopmost = False Then
|
||||
m_parentWindow.Activate()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Overrides Sub OnOpened(ByVal e As EventArgs)
|
||||
SetTopmostState(IsTopmost)
|
||||
MyBase.OnOpened(e)
|
||||
End Sub
|
||||
|
||||
Private Sub SetTopmostState(ByVal isTop As Boolean)
|
||||
If m_appliedTopMost.HasValue AndAlso m_appliedTopMost = isTop Then
|
||||
Return
|
||||
End If
|
||||
|
||||
If Child Is Nothing Then Return
|
||||
Dim hwndSource = TryCast((PresentationSource.FromVisual(Child)), HwndSource)
|
||||
If hwndSource Is Nothing Then Return
|
||||
Dim hwnd = hwndSource.Handle
|
||||
Dim rect As RECT
|
||||
If Not GetWindowRect(hwnd, rect) Then Return
|
||||
Debug.WriteLine("setting z-order " & isTop)
|
||||
|
||||
If isTop Then
|
||||
SetWindowPos(hwnd, HWND_TOPMOST, rect.Left, rect.Top, CInt(Width), CInt(Height), TOPMOST_FLAGS)
|
||||
Else
|
||||
SetWindowPos(hwnd, HWND_BOTTOM, rect.Left, rect.Top, CInt(Width), CInt(Height), TOPMOST_FLAGS)
|
||||
SetWindowPos(hwnd, HWND_TOP, rect.Left, rect.Top, CInt(Width), CInt(Height), TOPMOST_FLAGS)
|
||||
SetWindowPos(hwnd, HWND_NOTOPMOST, rect.Left, rect.Top, CInt(Width), CInt(Height), TOPMOST_FLAGS)
|
||||
End If
|
||||
|
||||
m_appliedTopMost = isTop
|
||||
End Sub
|
||||
|
||||
<StructLayout(LayoutKind.Sequential)>
|
||||
Public Structure RECT
|
||||
Public Left As Integer
|
||||
Public Top As Integer
|
||||
Public Right As Integer
|
||||
Public Bottom As Integer
|
||||
End Structure
|
||||
|
||||
<DllImport("user32.dll")>
|
||||
Private Shared Function GetWindowRect(ByVal hWnd As IntPtr, <Out> ByRef lpRect As RECT) As Boolean
|
||||
End Function
|
||||
<DllImport("user32.dll")>
|
||||
Private Shared Function SetWindowPos(ByVal hWnd As IntPtr, ByVal hWndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal uFlags As UInteger) As Boolean
|
||||
End Function
|
||||
Shared ReadOnly HWND_TOPMOST As IntPtr = New IntPtr(-1)
|
||||
Shared ReadOnly HWND_NOTOPMOST As IntPtr = New IntPtr(-2)
|
||||
Shared ReadOnly HWND_TOP As IntPtr = New IntPtr(0)
|
||||
Shared ReadOnly HWND_BOTTOM As IntPtr = New IntPtr(1)
|
||||
Private Const SWP_NOSIZE As UInt32 = &H1
|
||||
Const SWP_NOMOVE As UInt32 = &H2
|
||||
Const SWP_NOZORDER As UInt32 = &H4
|
||||
Const SWP_NOREDRAW As UInt32 = &H8
|
||||
Const SWP_NOACTIVATE As UInt32 = &H10
|
||||
Const SWP_FRAMECHANGED As UInt32 = &H20
|
||||
Const SWP_SHOWWINDOW As UInt32 = &H40
|
||||
Const SWP_HIDEWINDOW As UInt32 = &H80
|
||||
Const SWP_NOCOPYBITS As UInt32 = &H100
|
||||
Const SWP_NOOWNERZORDER As UInt32 = &H200
|
||||
Const SWP_NOSENDCHANGING As UInt32 = &H400
|
||||
Const TOPMOST_FLAGS As UInt32 = SWP_NOACTIVATE Or SWP_NOOWNERZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_NOREDRAW Or SWP_NOSENDCHANGING
|
||||
End Class
|
||||
@@ -19,6 +19,7 @@
|
||||
Public Const RESULT_READ_PROG = "ResultReadProg"
|
||||
Public Const KEY_CALC_SOLIDS = "CalcSolids"
|
||||
Public Const KEY_HAS_SOLIDS = "Solids"
|
||||
Public Const LAY_CHUNKS = "Chunks"
|
||||
|
||||
|
||||
' parametri calcolo tempi, F ed S
|
||||
@@ -36,6 +37,7 @@
|
||||
Public Const KEY_SPEED = "Speed"
|
||||
Public Const KEY_SLICEID = "SliceId"
|
||||
Public Const KEY_MASS = "PrintMass"
|
||||
Public Const KEY_EMITWAITINGTIME = "EmitWaitingTime"
|
||||
|
||||
|
||||
' parametri Materiali
|
||||
@@ -46,7 +48,8 @@
|
||||
Public Const MAT_T3 = "T3"
|
||||
Public Const MAT_T4 = "T4"
|
||||
Public Const MAT_T5 = "T5"
|
||||
Public Const MAT_K = "K"
|
||||
Public Const MAT_KEXTRUSION = "KExtrusion"
|
||||
Public Const MAT_KLAYERTIME = "KLayerTime"
|
||||
Public Const MAT_C1 = "C1"
|
||||
Public Const MAT_C2 = "C2"
|
||||
Public Const MAT_DENSITY = "Density"
|
||||
@@ -95,6 +98,7 @@
|
||||
Public Const MAC_WIPEDIR = "WipeDir"
|
||||
Public Const MAC_FLOORCOUNT = "FloorCount"
|
||||
Public Const MAC_G0FEED = "G0Feed"
|
||||
Public Const MAC_G0FEEDZ = "G0FeedZ"
|
||||
Public Const MAC_TOOLDIAM = "ToolDiam"
|
||||
Public Const MAC_RIBSTYPE = "RibsType"
|
||||
Public Const MAC_RIBSOVERLAP = "RibsOverlap"
|
||||
@@ -122,6 +126,7 @@
|
||||
Public Const MAC_AUXSOLIDSCOASTINGLEN = "AuxSolidsCoastingLen"
|
||||
Public Const MAC_AUXSOLIDSWIPELEN = "AuxSolidsWipeLen"
|
||||
Public Const MAC_AUXSOLIDSWIPEDIR = "AuxSolidsWipeDir"
|
||||
Public Const MAC_DYNAMICMODE = "DynamicMode"
|
||||
Public Const MAC_CONSTANT = "Constant"
|
||||
Public Const MAC_MATERIALS = "Materials"
|
||||
|
||||
|
||||
@@ -51,17 +51,7 @@ Public Module ConstGen
|
||||
|
||||
' Abilitazioni licenza
|
||||
Friend Enum KEY_OPT As UInteger
|
||||
BASE = 1 ' Prodotto EgtCAM5
|
||||
DOORS = 2
|
||||
GUNSTOCK = 4
|
||||
DOORCREATOR = 8 ' Prodotto DOORCreator
|
||||
VIRTUALMILLING = 16
|
||||
JAMBS = 32
|
||||
BEAM = 64
|
||||
CAD2D = 128
|
||||
STEELDORS = 256
|
||||
WALL = 512
|
||||
_3DPRINT = 1024
|
||||
BASE = 1 ' Prodotto Icarus
|
||||
End Enum
|
||||
|
||||
' File di log generale
|
||||
|
||||
@@ -113,6 +113,14 @@ Public Module ConstIni
|
||||
Public Const K_VIEWSLIDER As String = "ViewSlider"
|
||||
Public Const K_IMPORTCURREXTENSION As String = "ImportCurrExtension"
|
||||
|
||||
Public Const S_COLORS As String = "Colors"
|
||||
Public Const K_CLR_PRINTPART As String = "PrintPart"
|
||||
Public Const K_CLR_RIBS As String = "Ribs"
|
||||
Public Const K_CLR_SHELLNUMBERS As String = "ShellNumbers"
|
||||
Public Const K_CLR_AUXSOLIDS As String = "AuxSolids"
|
||||
Public Const K_CLR_MACHSTART As String = "MachStart"
|
||||
Public Const K_CLR_OTHERS As String = "Others"
|
||||
|
||||
Public Const S_MRUFILES As String = "MruFiles"
|
||||
Public Const S_MRUIMPORTFILES As String = "MruImportFiles"
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
Public Const K_MACH_EXITSCRIPT As String = "ExitScript"
|
||||
|
||||
Public Const S_MACH_PRINTING3D As String = "3dPrinting"
|
||||
Public Const K_HORIZONTAL_PRINT As String = "HorizontalPrint"
|
||||
Public Const K_SLICINGTYPE As String = "SlicingType"
|
||||
Public Const K_SPEED_MIN As String = "SpeedMin"
|
||||
Public Const K_SPEED_MAX As String = "SpeedMax"
|
||||
|
||||
|
||||
@@ -194,8 +194,10 @@ Public Class CurrMachiningCathegory
|
||||
New CurrComboMachiningParam(MachiningParam.Params.DIRECTION, nPartId, nIndex, bForceFromDb),
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.FLOORCOUNT, nPartId, nIndex, bForceFromDb),
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.G0FEED, nPartId, nIndex, bForceFromDb),
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.G0FEEDZ, nPartId, nIndex, bForceFromDb),
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.TOOLDIAM, nPartId, nIndex, bForceFromDb),
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.FLOWRATE_PC, nPartId, nIndex, bForceFromDb)})
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.FLOWRATE_PC, nPartId, nIndex, bForceFromDb),
|
||||
New CurrComboMachiningParam(MachiningParam.Params.DYNAMIC_MODE, nPartId, nIndex, bForceFromDb)})
|
||||
Case Cathegories.LINK
|
||||
m_sName = "Shell"
|
||||
m_MachiningParamList = New List(Of MachiningParam)({New CurrComboMachiningParam(MachiningParam.Params.LINKTYPE, nPartId, nIndex, bForceFromDb),
|
||||
@@ -211,8 +213,8 @@ Public Class CurrMachiningCathegory
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.COASTINGLEN, nPartId, nIndex, bForceFromDb),
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nPartId, nIndex, bForceFromDb),
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.WIPELEN, nPartId, nIndex, bForceFromDb),
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nPartId, nIndex, bForceFromDb),
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.WIPEDIR, nPartId, nIndex, bForceFromDb)})
|
||||
New CurrNumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nPartId, nIndex, bForceFromDb)})
|
||||
'New CurrNumericMachiningParam(MachiningParam.Params.WIPEDIR, nPartId, nIndex, bForceFromDb)})
|
||||
Case Cathegories.RIBS
|
||||
m_sName = "Ribs"
|
||||
m_MachiningParamList = New List(Of MachiningParam)({New CurrComboMachiningParam(MachiningParam.Params.RIBSTYPE, nPartId, nIndex, bForceFromDb),
|
||||
@@ -273,13 +275,13 @@ Public Class CurrNumericMachiningParam
|
||||
|
||||
Public Overrides Property sValue As String
|
||||
Get
|
||||
Return If(m_bIsLen, LenToString(m_dValue, 1), DoubleToString( m_dValue, 2))
|
||||
Return If(m_bIsLen, LenToString(m_dValue, 1), DoubleToString(m_dValue, 2))
|
||||
End Get
|
||||
Set(value As String)
|
||||
If m_bIsLen Then
|
||||
StringToLen(value, m_dValue)
|
||||
Else
|
||||
StringToDouble( value, m_dValue)
|
||||
StringToDouble(value, m_dValue)
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(sValue))
|
||||
NotifyPropertyChanged(NameOf(bIsModifiedFromDb))
|
||||
@@ -314,13 +316,13 @@ Public Class CurrNumericMachiningParam
|
||||
m_bIsLen = True
|
||||
Case Params.STRANDCOUNT
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_STRANDCOUNT, m_dValue)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.OFFSET
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_OFFSET, m_dValue)
|
||||
m_bIsLen = True
|
||||
Case Params.STRANDOVERLAP
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_STRANDOVERLAP, m_dValue)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.STARTPOINTOFFSETONSLICE
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_STARTPOINTOFFSETONSLICE, m_dValue)
|
||||
m_bIsLen = True
|
||||
@@ -357,24 +359,27 @@ Public Class CurrNumericMachiningParam
|
||||
Case Params.WIPEFEED_PC
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_WIPEFEEDPU, m_dValue)
|
||||
m_bIsLen = False
|
||||
Case Params.WIPEDIR
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_WIPEDIR, m_dValue)
|
||||
m_bIsLen = True
|
||||
'Case Params.WIPEDIR
|
||||
' bReadFromPart = EgtGetInfo(nPartId, MAC_WIPEDIR, m_dValue)
|
||||
' m_bIsLen = True
|
||||
Case Params.FLOORCOUNT
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_FLOORCOUNT, m_dValue)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.G0FEED
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_G0FEED, m_dValue)
|
||||
m_bIsLen = True
|
||||
Case Params.G0FEEDZ
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_G0FEEDZ, m_dValue)
|
||||
m_bIsLen = True
|
||||
Case Params.TOOLDIAM
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_TOOLDIAM, m_dValue)
|
||||
m_bIsLen = True
|
||||
Case Params.RIBSOVERLAP
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSOVERLAP, m_dValue)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.RIBSSTRANDCOUNT
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSSTRANDCOUNT, m_dValue)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.RIBSLEADINLEN
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSLEADINLEN, m_dValue)
|
||||
m_bIsLen = True
|
||||
@@ -389,10 +394,10 @@ Public Class CurrNumericMachiningParam
|
||||
m_bIsLen = True
|
||||
Case Params.RIBSLEADOUTWIPEDIR
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSLEADOUTWIPEDIR, m_dValue)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.SHELLNBRDIFFERENCE
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_SHELLNBRDIFFERENCE, m_dValue)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.SHELLNBRCOASTING
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_SHELLNBRCOASTING, m_dValue)
|
||||
m_bIsLen = True
|
||||
@@ -401,10 +406,10 @@ Public Class CurrNumericMachiningParam
|
||||
m_bIsLen = True
|
||||
Case Params.SHELLNBRWIPEDIR
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_SHELLNBRWIPEDIR, m_dValue)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.AUXSOLIDSOVERLAP
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_AUXSOLIDSOVERLAP, m_dValue)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.AUXSOLIDSLINKPARAM
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_AUXSOLIDSLINKPARAM, m_dValue)
|
||||
m_bIsLen = True
|
||||
@@ -419,7 +424,7 @@ Public Class CurrNumericMachiningParam
|
||||
m_bIsLen = True
|
||||
Case Params.AUXSOLIDSWIPEDIR
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_AUXSOLIDSWIPEDIR, m_dValue)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.FLOWRATE_PC
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_CONSTANT, m_dValue)
|
||||
m_bIsLen = False
|
||||
@@ -429,11 +434,11 @@ Public Class CurrNumericMachiningParam
|
||||
Dim DbMachining As Machining = Map.refMachiningDbVM.MachiningList.FirstOrDefault(Function(x) x.nIndex = nIndex)
|
||||
Select Case Type
|
||||
Case Params.STRANDH, Params.STRANDW, Params.STRANDCOUNT, Params.OFFSET, Params.STRANDOVERLAP, Params.STARTPOINTOFFSETONSLICE,
|
||||
Params.FLOORCOUNT, Params.G0FEED, Params.TOOLDIAM, Params.FLOWRATE_PC
|
||||
Params.FLOORCOUNT, Params.G0FEED, Params.G0FEEDZ, Params.TOOLDIAM, Params.FLOWRATE_PC
|
||||
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
|
||||
Case Params.LINKPARAM, Params.LINKZUP, Params.OFFSETLEADPOINT, Params.LEADINTANGDIST, Params.LEADINORTHODIST,
|
||||
Params.LEADOUTTANGDIST, Params.LEADOUTORTHODIST, Params.COASTINGLEN, Params.COASTINGFEED_PC,
|
||||
Params.WIPELEN, Params.WIPEFEED_PC, Params.WIPEDIR
|
||||
Params.WIPELEN, Params.WIPEFEED_PC ' Params.WIPEDIR
|
||||
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.LINK).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
|
||||
Case Params.RIBSOVERLAP, Params.RIBSSTRANDCOUNT, Params.RIBSLINK, Params.RIBSINVERTORDER, Params.RIBSINVERTDIRECTION,
|
||||
Params.RIBSLEADININVERT, Params.RIBSLEADINLEN, Params.RIBSLEADOUTINVERT, Params.RIBSLEADOUTLEN, Params.RIBSLEADOUTCOASTING,
|
||||
@@ -449,6 +454,9 @@ Public Class CurrNumericMachiningParam
|
||||
m_dValue = m_DbParam.dOrigValue
|
||||
m_dOrigValue = m_DbParam.dOrigValue
|
||||
End If
|
||||
ElseIf Type = Params.G0FEEDZ AndAlso Not bReadFromPart Then
|
||||
m_dValue = 1000
|
||||
m_dOrigValue = 1000
|
||||
ElseIf Type = Params.FLOWRATE_PC AndAlso Not bReadFromPart Then
|
||||
m_dValue = 100
|
||||
m_dOrigValue = 100
|
||||
@@ -497,12 +505,14 @@ Public Class CurrNumericMachiningParam
|
||||
EgtSetInfo(nPartId, MAC_WIPELEN, sWriteValue)
|
||||
Case Params.WIPEFEED_PC
|
||||
EgtSetInfo(nPartId, MAC_WIPEFEEDPU, sWriteValue)
|
||||
Case Params.WIPEDIR
|
||||
EgtSetInfo(nPartId, MAC_WIPEDIR, sWriteValue)
|
||||
'Case Params.WIPEDIR
|
||||
' EgtSetInfo(nPartId, MAC_WIPEDIR, sWriteValue)
|
||||
Case Params.FLOORCOUNT
|
||||
EgtSetInfo(nPartId, MAC_FLOORCOUNT, sWriteValue)
|
||||
Case Params.G0FEED
|
||||
EgtSetInfo(nPartId, MAC_G0FEED, sWriteValue)
|
||||
Case Params.G0FEEDZ
|
||||
EgtSetInfo(nPartId, MAC_G0FEEDZ, sWriteValue)
|
||||
Case Params.TOOLDIAM
|
||||
EgtSetInfo(nPartId, MAC_TOOLDIAM, sWriteValue)
|
||||
Case Params.RIBSOVERLAP
|
||||
@@ -677,11 +687,16 @@ Public Class CurrComboMachiningParam
|
||||
Dim bReadFromPart As Boolean = False
|
||||
Select Case Type
|
||||
Case Params.SLICINGTYPE
|
||||
Dim nHorizontalPrint As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_HORIZONTAL_PRINT, 0, CurrentMachine.sMachIniFile)
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical"),
|
||||
New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45°")})
|
||||
If nHorizontalPrint > 0 Then
|
||||
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal"))
|
||||
Dim nSlicingType As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_SLICINGTYPE, 0, CurrentMachine.sMachIniFile)
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical")})
|
||||
If nSlicingType >= 1 Then
|
||||
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45deg X"))
|
||||
If nSlicingType >= 2 Then
|
||||
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45_Y, "45deg Y"))
|
||||
If nSlicingType >= 3 Then
|
||||
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal"))
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Dim nSelValue As Integer = 0
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_SLICINGTYPE, nSelValue)
|
||||
@@ -727,7 +742,8 @@ Public Class CurrComboMachiningParam
|
||||
Case Params.RIBSTYPE
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_RIBSTYPE.INTERNAL, "Internal"),
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.EXTERNAL, "External"),
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.UNBOUNDED, "Unbounded")})
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.UNBOUNDED, "Unbounded"),
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.SUPPORT, "Support")})
|
||||
Dim nSelValue As Integer = 0
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSTYPE, nSelValue)
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = nSelValue)
|
||||
@@ -751,12 +767,18 @@ Public Class CurrComboMachiningParam
|
||||
Dim nSelValue As Integer = 0
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_AUXSOLIDSLINKTYPE, nSelValue)
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = nSelValue)
|
||||
Case Params.DYNAMIC_MODE
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_DYNAMIC_MODE.STANDARD, "Standard"),
|
||||
New IdNameStruct(Machining.MPAR_DYNAMIC_MODE.FAST, "Fast")})
|
||||
Dim nSelValue As Integer = 0
|
||||
bReadFromPart = EgtGetInfo(nPartId, MAC_DYNAMICMODE, nSelValue)
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = nSelValue)
|
||||
End Select
|
||||
m_OrigSelValue = m_SelValue
|
||||
If nIndex > 0 Then
|
||||
Dim DbMachining As Machining = Map.refMachiningDbVM.MachiningList.FirstOrDefault(Function(x) x.nIndex = nIndex)
|
||||
Select Case Type
|
||||
Case Params.SLICINGTYPE, Params.STRANDORDER, Params.DIRECTION
|
||||
Case Params.SLICINGTYPE, Params.STRANDORDER, Params.DIRECTION, Params.DYNAMIC_MODE
|
||||
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
|
||||
Case Params.LINKTYPE, Params.LEADIN, Params.LEADOUT
|
||||
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.LINK).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
|
||||
@@ -772,6 +794,9 @@ Public Class CurrComboMachiningParam
|
||||
ElseIf Type = Params.RIBSTYPE AndAlso Not bReadFromPart Then
|
||||
m_OrigSelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = Machining.MPAR_RIBSTYPE.INTERNAL)
|
||||
m_SelValue = m_OrigSelValue
|
||||
ElseIf Type = Params.DYNAMIC_MODE AndAlso Not bReadFromPart Then
|
||||
m_OrigSelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = Machining.MPAR_DYNAMIC_MODE.STANDARD)
|
||||
m_SelValue = m_OrigSelValue
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -797,6 +822,8 @@ Public Class CurrComboMachiningParam
|
||||
EgtSetInfo(nPartId, MAC_AUXSOLIDSSTRANDORDER, m_SelValue.Id)
|
||||
Case Params.AUXSOLIDSLINKTYPE
|
||||
EgtSetInfo(nPartId, MAC_AUXSOLIDSLINKTYPE, m_SelValue.Id)
|
||||
Case Params.DYNAMIC_MODE
|
||||
EgtSetInfo(nPartId, MAC_DYNAMICMODE, m_SelValue.Id)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -186,15 +186,15 @@
|
||||
<UniformGrid Columns="3">
|
||||
<RadioButton Content="X"
|
||||
GroupName="Axes"
|
||||
IsChecked="{Binding RotAxes[0]}"
|
||||
IsChecked="{Binding RotX}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"/>
|
||||
<RadioButton Content="Y"
|
||||
GroupName="Axes"
|
||||
IsChecked="{Binding RotAxes[1]}"
|
||||
IsChecked="{Binding RotY}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"/>
|
||||
<RadioButton Content="Z"
|
||||
GroupName="Axes"
|
||||
IsChecked="{Binding RotAxes[2]}"
|
||||
IsChecked="{Binding RotZ}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:EgtTextBox Grid.Row="1"
|
||||
|
||||
@@ -21,12 +21,12 @@ Public Class DispositionPanelVM
|
||||
Dim dNewXPos As Double = ptReference.x
|
||||
StringToLen(value, dNewXPos)
|
||||
If dNewXPos >= 0 AndAlso dNewXPos <= CurrentMachine.b3Tab.DimX Then
|
||||
EgtMove(Map.refTopPanelVM.SelPart.nPartId, New Point3d(dNewXPos, ptReference.y, ptReference.z) - ptReference)
|
||||
EgtMove(Map.refTopPanelVM.SelPart.nPartId, New Point3d(dNewXPos, ptReference.y, ptReference.z) - ptReference, GDB_RT.GLOB)
|
||||
Map.refReferencePanelVM.UpdateFramePosition()
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sXPos))
|
||||
End If
|
||||
Map.refReferencePanelVM.UpdateFramePosition()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -46,12 +46,12 @@ Public Class DispositionPanelVM
|
||||
Dim dNewYPos As Double = ptReference.y
|
||||
StringToLen(value, dNewYPos)
|
||||
If dNewYPos >= 0 AndAlso dNewYPos <= CurrentMachine.b3Tab.DimY Then
|
||||
EgtMove(Map.refTopPanelVM.SelPart.nPartId, New Point3d(ptReference.x, dNewYPos, ptReference.z) - ptReference)
|
||||
EgtMove(Map.refTopPanelVM.SelPart.nPartId, New Point3d(ptReference.x, dNewYPos, ptReference.z) - ptReference, GDB_RT.GLOB)
|
||||
Map.refReferencePanelVM.UpdateFramePosition()
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sYPos))
|
||||
End If
|
||||
Map.refReferencePanelVM.UpdateFramePosition()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -71,22 +71,38 @@ Public Class DispositionPanelVM
|
||||
Dim dNewZPos As Double = ptReference.z
|
||||
StringToLen(value, dNewZPos)
|
||||
If dNewZPos >= 0 Then
|
||||
EgtMove(Map.refTopPanelVM.SelPart.nPartId, New Point3d(ptReference.x, ptReference.y, dNewZPos) - ptReference)
|
||||
EgtMove(Map.refTopPanelVM.SelPart.nPartId, New Point3d(ptReference.x, ptReference.y, dNewZPos) - ptReference, GDB_RT.GLOB)
|
||||
Map.refReferencePanelVM.UpdateFramePosition()
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sZPos))
|
||||
End If
|
||||
Map.refReferencePanelVM.UpdateFramePosition()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_RotAxes() As Boolean = {False, False, True}
|
||||
Public Property RotAxes As Boolean()
|
||||
Private m_RotAxes As Boolean() = { False, False, False}
|
||||
Public Property RotX As Boolean
|
||||
Get
|
||||
Return m_RotAxes
|
||||
Return m_RotAxes(0)
|
||||
End Get
|
||||
Set(value As Boolean())
|
||||
m_RotAxes = value
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(0) = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property RotY As Boolean
|
||||
Get
|
||||
Return m_RotAxes(1)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(1) = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property RotZ As Boolean
|
||||
Get
|
||||
Return m_RotAxes(2)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(2) = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -96,7 +112,7 @@ Public Class DispositionPanelVM
|
||||
Return Vector3d.X_AX
|
||||
ElseIf m_RotAxes(1) Then
|
||||
Return Vector3d.Y_AX
|
||||
ElseIf m_RotAxes(2) Then
|
||||
Else
|
||||
Return Vector3d.Z_AX
|
||||
End If
|
||||
End Get
|
||||
@@ -109,22 +125,33 @@ Public Class DispositionPanelVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dNewAngle As Double = 0
|
||||
If Not StringToLen(value, dNewAngle) Then
|
||||
If IsNothing( value) OrElse Not StringToLen(value, dNewAngle) Then
|
||||
m_sRotAngle = 0
|
||||
NotifyPropertyChanged(NameOf(sRotAngle))
|
||||
Return
|
||||
End If
|
||||
Dim vtMovedPart As Vector3d
|
||||
if EgtGetInfo(Map.refTopPanelVM.SelPart.nPartId, "MovedPart", vtMovedPart) Then
|
||||
Dim nEntId = EgtGetFirstInGroup( Map.refTopPanelVM.SelPart.nPrintSolidLayerId)
|
||||
While nEntId <> GDB_ID.NULL
|
||||
EgtMove(nEntId, -vtMovedPart, GDB_RT.GLOB)
|
||||
nEntId = EgtGetNext( nEntId)
|
||||
End While
|
||||
EgtRemoveInfo(Map.refTopPanelVM.SelPart.nPartId, "MovedPart")
|
||||
End If
|
||||
Dim b3PrintSolid As New BBox3d
|
||||
EgtGetBBoxGlob(Map.refTopPanelVM.SelPart.nPartId, GDB_BB.STANDARD, b3PrintSolid)
|
||||
If EgtRotate(Map.refTopPanelVM.SelPart.nPartId, b3PrintSolid.Center, vtSelRotAxes, dNewAngle) Then
|
||||
EgtDraw()
|
||||
RefreshPos()
|
||||
If EgtRotate(Map.refTopPanelVM.SelPart.nPartId, b3PrintSolid.Center, vtSelRotAxes, dNewAngle, GDB_RT.GLOB) Then
|
||||
m_sRotAngle = 0
|
||||
Map.refReferencePanelVM.UpdateFramePosition()
|
||||
RefreshPos()
|
||||
EgtDraw()
|
||||
NotifyPropertyChanged(NameOf(sRotAngle))
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
Else
|
||||
m_sRotAngle = value
|
||||
End If
|
||||
Map.refReferencePanelVM.UpdateFramePosition()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -178,7 +205,8 @@ Public Class DispositionPanelVM
|
||||
End Sub
|
||||
|
||||
Friend Sub Init()
|
||||
|
||||
RotZ = True
|
||||
NotifyPropertyChanged(NameOf(RotZ))
|
||||
End Sub
|
||||
|
||||
Friend Sub RefreshPos()
|
||||
|
||||
@@ -53,6 +53,28 @@
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DocumentationFile>Icarus.xml</DocumentationFile>
|
||||
<NoWarn>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DocumentationFile>Icarus.xml</DocumentationFile>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="EgtUILib, Version=2.4.7.1, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
@@ -123,6 +145,10 @@
|
||||
<DependentUpon>DispositionPanelV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DispositionPanel\DispositionPanelVM.vb" />
|
||||
<Compile Include="ImportExportMachiningPanel\ImportExportMachiningPanelV.xaml.vb">
|
||||
<DependentUpon>ImportExportMachiningPanelV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ImportExportMachiningPanel\ImportExportMachiningPanelVM.vb" />
|
||||
<Compile Include="InstrumentPanel\InstrumentPanelV.xaml.vb">
|
||||
<DependentUpon>InstrumentPanelV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -299,6 +325,10 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="ImportExportMachiningPanel\ImportExportMachiningPanelV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="InstrumentPanel\InstrumentPanelV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -631,15 +661,24 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\TopPanel\Edit.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\MachiningDb\Export.png" />
|
||||
<Resource Include="Resources\MachiningDb\Import.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\SplashScreen\GoldSplashscreen.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\SplashScreen\LogoEgalware.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\ProjectManager\Export.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x64" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\Icarus\IcarusR64.exe
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\Icarus\IcarusR32.exe
|
||||
IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Debug" copy $(TargetPath) c:\EgtProg\Icarus\IcarusD32.exe
|
||||
IF "$(PlatformName)"=="x64" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\Icarus\IcarusR64.exe
|
||||
IF "$(PlatformName)"=="x64" IF "$(ConfigurationName)" == "Debug" copy $(TargetPath) c:\EgtProg\Icarus\IcarusD64.exe</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,62 @@
|
||||
<EgtWPFLib5:EgtCustomWindow x:Class="ImportExportMachiningPanelV"
|
||||
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="{Binding OkMsg}"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="30" IsResizable="False"
|
||||
IsMinimizable="False" WindowStartupLocation="CenterOwner" ShowInTaskbar="False"
|
||||
Width="400" Height="500">
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="7*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<ListBox ItemsSource="{Binding MachiningList}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate DataType="{x:Type EgtWPFLib5:ImpExpMachiningItem}">
|
||||
<Grid Height="20">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<CheckBox Name="ActiveTxBx"
|
||||
Grid.Column="0"
|
||||
IsChecked="{Binding Active}"
|
||||
Height="15"
|
||||
Width="15"
|
||||
Margin="0,0,5,0"
|
||||
VerticalContentAlignment="Center"
|
||||
Visibility="{Binding Path=DataContext.Active_Visibility,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtWPFLib5:EgtCustomWindow}}}"/>
|
||||
<TextBlock Grid.Column="1"
|
||||
Text="{Binding sName}"
|
||||
FontSize="15"
|
||||
Margin="0,0,5,0"
|
||||
VerticalAlignment="Center" />
|
||||
<Ellipse Grid.Column="2"
|
||||
Width="15"
|
||||
Height="15"
|
||||
Fill="DarkOrange"
|
||||
Visibility="{Binding Overwrite_Visibility}"/>
|
||||
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
|
||||
<Button Command="{Binding OkCommand}"
|
||||
Content="{Binding OkMsg}"
|
||||
IsEnabled="{Binding IsEnabledOkBtn, Mode=OneWay}"
|
||||
Grid.Row="1"
|
||||
Height="30" Width="100"
|
||||
Margin="10" />
|
||||
|
||||
</Grid>
|
||||
|
||||
</EgtWPFLib5:EgtCustomWindow>
|
||||
@@ -0,0 +1,18 @@
|
||||
Public Class ImportExportMachiningPanelV
|
||||
|
||||
Private WithEvents m_ImportExportMachiningPanelVM As ImportExportMachiningPanelVM
|
||||
|
||||
Sub New(Owner As Window, ImportExportMachiningPanelVM As ImportExportMachiningPanelVM)
|
||||
MyBase.New(Owner)
|
||||
' This call is required by the designer.
|
||||
InitializeComponent()
|
||||
Me.DataContext = ImportExportMachiningPanelVM
|
||||
' Assegno al riferimento locale al VM il VM preso dal DataContext
|
||||
m_ImportExportMachiningPanelVM = ImportExportMachiningPanelVM
|
||||
End Sub
|
||||
|
||||
Private Sub CloseWindow(bDialogResult As Boolean) Handles m_ImportExportMachiningPanelVM.m_CloseWindow
|
||||
Me.DialogResult = bDialogResult
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,441 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.IO
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class ImportExportMachiningPanelVM
|
||||
Inherits VMBase
|
||||
|
||||
' Modalita' di apertura della finestra
|
||||
Public Enum WindowModeEnum As Integer
|
||||
IMPORT
|
||||
EXPORT
|
||||
End Enum
|
||||
|
||||
Private m_WindowMode As WindowModeEnum
|
||||
Public ReadOnly Property WindowMode As WindowModeEnum
|
||||
Get
|
||||
Return m_WindowMode
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Lista delle lavorazioni
|
||||
Private m_MachiningList As New ObservableCollection(Of ImpExpMachiningItem)
|
||||
Public Property MachiningList As ObservableCollection(Of ImpExpMachiningItem)
|
||||
Get
|
||||
Return m_MachiningList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of ImpExpMachiningItem))
|
||||
m_MachiningList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Percorso del file da cui importare le lavorazioni
|
||||
Private m_ImportFilePath As String
|
||||
Public ReadOnly Property ImportFilePath As String
|
||||
Get
|
||||
Return m_ImportFilePath
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Lista delle lavorazioni presenti nel file da cui importare
|
||||
Private m_ImportFileMachiningNameList As String()
|
||||
Public ReadOnly Property ImportFileMachiningNameList As String()
|
||||
Get
|
||||
Return m_ImportFileMachiningNameList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Lista delle lavorazioni importate con successo
|
||||
Private m_vsImported As String()
|
||||
Public ReadOnly Property vsImported As String()
|
||||
Get
|
||||
Return m_vsImported
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property IsEnabledOkBtn As Boolean
|
||||
Get
|
||||
For Each Machining In MachiningList
|
||||
If Machining.Active Then Return True
|
||||
Next
|
||||
Return False
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend Event m_CloseWindow(bDialogResult As Boolean)
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdOk As ICommand
|
||||
|
||||
#Region "MESSAGES"
|
||||
|
||||
Public ReadOnly Property OkMsg As String
|
||||
Get
|
||||
If WindowMode = WindowModeEnum.IMPORT Then
|
||||
Return EgtMsg(31450)
|
||||
Else
|
||||
Return EgtMsg(31451)
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Messages
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
' export
|
||||
Sub New()
|
||||
m_WindowMode = WindowModeEnum.EXPORT
|
||||
' carico lista lavorazioni
|
||||
MachiningList.Clear()
|
||||
' leggo ed aggiungo le altre
|
||||
Dim nIndex As Integer = 1
|
||||
Dim sGUID As String = ""
|
||||
Dim sName As String = ""
|
||||
Dim sMaterials As String = ""
|
||||
While ReadMachiningParamString(nIndex, MAC_GUID, "", sGUID) > 0
|
||||
Dim Guid As Guid = Guid.Empty
|
||||
Guid.TryParse(sGUID, Guid)
|
||||
ReadMachiningParamString(nIndex, MAC_NAME, "", sName)
|
||||
MachiningList.Add(New ImpExpMachiningItem(nIndex, Guid, sName, False))
|
||||
nIndex += 1
|
||||
End While
|
||||
ImpExpMachiningItem.m_delEnableOkBtn = AddressOf EnableOkBtn
|
||||
End Sub
|
||||
|
||||
' import
|
||||
Sub New(sImportFilePath As String)
|
||||
m_WindowMode = WindowModeEnum.IMPORT
|
||||
m_ImportFilePath = sImportFilePath
|
||||
' carico lista lavorazioni
|
||||
MachiningList.Clear()
|
||||
' leggo ed aggiungo le altre
|
||||
Dim nIndex As Integer = 1
|
||||
Dim sGUID As String = ""
|
||||
Dim sName As String = ""
|
||||
Dim sMaterials As String = ""
|
||||
While ReadMachiningParamString(nIndex, MAC_GUID, "", sGUID, sImportFilePath) > 0
|
||||
Dim Guid As Guid = Guid.Empty
|
||||
Guid.TryParse(sGUID, Guid)
|
||||
ReadMachiningParamString(nIndex, MAC_NAME, "", sName, sImportFilePath)
|
||||
MachiningList.Add(New ImpExpMachiningItem(nIndex, Guid, sName, AlreadyExist(sName)))
|
||||
nIndex += 1
|
||||
End While
|
||||
ImpExpMachiningItem.m_delEnableOkBtn = AddressOf EnableOkBtn
|
||||
End Sub
|
||||
|
||||
#End Region ' Constructor
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Private Sub EnableOkBtn()
|
||||
NotifyPropertyChanged(NameOf(IsEnabledOkBtn))
|
||||
End Sub
|
||||
|
||||
Private Function AlreadyExist(MachiningName As String) As Boolean
|
||||
Return Map.refMachiningDbVM.MachiningList.Any(Function(x) x.sName = MachiningName)
|
||||
End Function
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "OkCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that remove the current selected machining.
|
||||
''' </summary>
|
||||
Public ReadOnly Property OkCommand() As ICommand
|
||||
Get
|
||||
If m_cmdOk Is Nothing Then
|
||||
m_cmdOk = New Command(AddressOf ConfirmImpExpMachinings)
|
||||
End If
|
||||
Return m_cmdOk
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Manage the MachiningDb closing. This method is invoked by the CloseMachiningDbCommand.
|
||||
''' </summary>
|
||||
Public Sub ConfirmImpExpMachinings(param As Object)
|
||||
Select Case WindowMode
|
||||
Case WindowModeEnum.IMPORT
|
||||
Dim OrigFilePath As String = CurrentMachine.sMachiningFilePath
|
||||
Dim NewMachining As Machining = Nothing
|
||||
For Each Machining In m_MachiningList
|
||||
Dim nIndex As Integer = Map.refMachiningDbVM.MachiningList.Max(Function(x) x.nIndex) + 1
|
||||
If Machining.Active Then
|
||||
CurrentMachine.SetMachiningFilePath(ImportFilePath)
|
||||
' leggo lavorazione da file di import
|
||||
NewMachining = New Machining(Machining.nIndex)
|
||||
' cambio guid, indice e verifico nome
|
||||
NewMachining.sGUID = Guid.NewGuid.ToString()
|
||||
NewMachining.SetIndex(nIndex)
|
||||
If Machining.AlreadyExist Then
|
||||
If Machining.ChangeName Then
|
||||
NewMachining.sName = Machining.sName
|
||||
End If
|
||||
End If
|
||||
Map.refMachiningDbVM.MachiningList.Add(NewMachining)
|
||||
' ripristino path corretta del Db
|
||||
CurrentMachine.SetMachiningFilePath(OrigFilePath)
|
||||
' salvo la lavorazione
|
||||
NewMachining.Save()
|
||||
End If
|
||||
Next
|
||||
' ripristino path corretta del Db
|
||||
CurrentMachine.SetMachiningFilePath(OrigFilePath)
|
||||
' seleziono ultima importata
|
||||
If Not IsNothing(NewMachining) Then
|
||||
Map.refMachiningDbVM.SelMachining = NewMachining
|
||||
Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.SelMachining))
|
||||
End If
|
||||
Case WindowModeEnum.EXPORT
|
||||
' recupero le lavorazioni checkate
|
||||
Dim FinalNameList As New List(Of String)
|
||||
For Each Machining In MachiningList
|
||||
If Machining.Active Then
|
||||
FinalNameList.Add(Machining.sName)
|
||||
End If
|
||||
Next
|
||||
If FinalNameList.Count() = 0 Then Return
|
||||
Dim FinalNameArray = FinalNameList.ToArray()
|
||||
' chiedo il nome con cui salvare il file .data
|
||||
Dim SaveFileDlg As New System.Windows.Forms.SaveFileDialog() With {
|
||||
.Title = EgtMsg(31451) & " " & EgtMsg(31452),
|
||||
.Filter = "File data (*.data)|*.data|Tutti i file (*.*)|*.*",
|
||||
.FileName = String.Empty
|
||||
}
|
||||
If SaveFileDlg.ShowDialog() <> System.Windows.Forms.DialogResult.OK Then Return
|
||||
Dim sFilePath As String = String.Empty
|
||||
sFilePath = SaveFileDlg.FileName
|
||||
' se esiste già lo elimino
|
||||
If File.Exists(sFilePath) Then
|
||||
Try
|
||||
File.Delete(sFilePath)
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
End If
|
||||
' creo nuovo file
|
||||
If Not File.Exists(sFilePath) Then
|
||||
Try
|
||||
File.WriteAllLines(sFilePath, {"; Commento per evitare BOM con UTF-8"})
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
End If
|
||||
Dim ActiveMachiningList As List(Of Machining) = (From Machining In Map.refMachiningDbVM.MachiningList
|
||||
Select Machining
|
||||
Where m_MachiningList.Any(Function(x) x.sGUID.ToString() = Machining.sGUID AndAlso x.Active)).ToList()
|
||||
' salvo tutte le lavorazioni sul Db
|
||||
For Index = 0 To ActiveMachiningList.Count - 1
|
||||
ActiveMachiningList(Index).WriteParamsOnDb(Index + 1, sFilePath)
|
||||
Next
|
||||
End Select
|
||||
|
||||
' Chiusura finestra
|
||||
RaiseEvent m_CloseWindow(True)
|
||||
End Sub
|
||||
|
||||
#End Region ' OkCommand
|
||||
|
||||
#End Region ' Commands
|
||||
|
||||
End Class
|
||||
|
||||
Public Class ImpExpMachiningItem
|
||||
Inherits VMBase
|
||||
|
||||
Public Const IMPEXTNAME As String = "_imp"
|
||||
|
||||
' Actions
|
||||
Friend Shared m_delEnableOkBtn As Action
|
||||
|
||||
Private Shared m_Empty As New MachiningIndex(-1, Guid.Empty, "None")
|
||||
|
||||
Private m_nIndex As Integer
|
||||
Public ReadOnly Property nIndex As Integer
|
||||
Get
|
||||
Return m_nIndex
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sGUID As Guid
|
||||
Public ReadOnly Property sGUID As Guid
|
||||
Get
|
||||
Return m_sGUID
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sOrigName As String
|
||||
Private m_sName As String
|
||||
Public ReadOnly Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_Active As Boolean
|
||||
Public Property Active As Boolean
|
||||
Get
|
||||
Return m_Active
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
' se esiste gia' chiedo se sovrascriverla
|
||||
If value Then
|
||||
If m_AlreadyExist Then
|
||||
Select Case System.Windows.MessageBox.Show(EgtMsg(31453), "", MessageBoxButton.YesNoCancel)
|
||||
Case MessageBoxResult.Yes
|
||||
m_ChangeName = False
|
||||
m_Active = True
|
||||
Case MessageBoxResult.No
|
||||
Dim bImpNameAlreadyInList = False
|
||||
Dim nImpNameIndex As Integer = 0
|
||||
If Map.refMachiningDbVM.MachiningList.Any(Function(x) x.sName = m_sOrigName & IMPEXTNAME) Then
|
||||
nImpNameIndex += 1
|
||||
While Map.refMachiningDbVM.MachiningList.Any(Function(x) x.sName = m_sOrigName & IMPEXTNAME & "_" & nImpNameIndex)
|
||||
nImpNameIndex += 1
|
||||
End While
|
||||
End If
|
||||
m_sName = m_sOrigName & IMPEXTNAME & If(nImpNameIndex > 0, "_" & nImpNameIndex, "")
|
||||
System.Windows.MessageBox.Show("Machining will be imported with the name: " & m_sName, "", MessageBoxButton.OK)
|
||||
NotifyPropertyChanged(NameOf(sName))
|
||||
m_ChangeName = True
|
||||
m_Active = True
|
||||
Case Else
|
||||
m_Active = False
|
||||
End Select
|
||||
NotifyPropertyChanged(NameOf(Active))
|
||||
Else
|
||||
m_Active = True
|
||||
End If
|
||||
Else
|
||||
m_ChangeName = False
|
||||
m_Active = False
|
||||
m_sName = m_sOrigName
|
||||
NotifyPropertyChanged(NameOf(sName))
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(Overwrite_Visibility))
|
||||
If Not IsNothing(m_delEnableOkBtn) Then m_delEnableOkBtn()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Parametro che indica se questo item da importare esiste gia'
|
||||
Private m_AlreadyExist As Boolean
|
||||
Friend ReadOnly Property AlreadyExist As Boolean
|
||||
Get
|
||||
Return m_AlreadyExist
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_Overwrite_Visibility As Visibility = Visibility.Collapsed
|
||||
Public ReadOnly Property Overwrite_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_Active AndAlso m_AlreadyExist AndAlso Not m_ChangeName, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Parametro che indica se cambiare il nome di un item che esiste gia' o sovrascriverlo
|
||||
Private m_ChangeName As Boolean
|
||||
Friend Property ChangeName As Boolean
|
||||
Get
|
||||
Return m_ChangeName
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_ChangeName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(nIndex As Integer, GUID As Guid, sName As String, AlreadyExist As Boolean)
|
||||
m_nIndex = nIndex
|
||||
m_sGUID = GUID
|
||||
m_sOrigName = sName
|
||||
m_sName = sName
|
||||
m_AlreadyExist = AlreadyExist
|
||||
m_Active = False
|
||||
End Sub
|
||||
|
||||
Friend Shared Function Empty() As MachiningIndex
|
||||
Return m_Empty
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
Public Class MachiningItem
|
||||
Inherits VMBase
|
||||
|
||||
' Actions
|
||||
Friend Shared m_delEnableOkBtn As Action
|
||||
|
||||
Private m_Name As String
|
||||
Public Property Name As String
|
||||
Get
|
||||
If m_ChangeName Then
|
||||
Return m_Name & "_imp"
|
||||
Else
|
||||
Return m_Name
|
||||
End If
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_Name = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_Active As Boolean
|
||||
Public Property Active As Boolean
|
||||
Get
|
||||
Return m_Active
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
' se esiste gia' chiedo se sovrascriverla
|
||||
If value Then
|
||||
If m_AlreadyExist Then
|
||||
Select Case System.Windows.MessageBox.Show(EgtMsg(31453), "", MessageBoxButton.YesNoCancel)
|
||||
Case MessageBoxResult.Yes
|
||||
m_ChangeName = False
|
||||
m_Active = True
|
||||
Case MessageBoxResult.No
|
||||
System.Windows.MessageBox.Show(EgtMsg(31454), "", MessageBoxButton.OK)
|
||||
m_ChangeName = True
|
||||
m_Active = True
|
||||
Case Else
|
||||
m_Active = False
|
||||
End Select
|
||||
NotifyPropertyChanged("Active")
|
||||
Else
|
||||
m_Active = True
|
||||
End If
|
||||
Else
|
||||
m_ChangeName = False
|
||||
m_Active = False
|
||||
End If
|
||||
If Not IsNothing(m_delEnableOkBtn) Then m_delEnableOkBtn()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Parametro che indica se questo item da importare esiste gia'
|
||||
Private m_AlreadyExist As Boolean
|
||||
Friend ReadOnly Property AlreadyExist As Boolean
|
||||
Get
|
||||
Return m_AlreadyExist
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Parametro che indica se cambiare il nome di un item che esiste gia' o sovrascriverlo
|
||||
Private m_ChangeName As Boolean
|
||||
Friend Property ChangeName As Boolean
|
||||
Get
|
||||
Return m_ChangeName
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_ChangeName = value
|
||||
NotifyPropertyChanged("Name")
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(Name As String, AlreadyExist As Boolean)
|
||||
m_Name = Name
|
||||
m_AlreadyExist = AlreadyExist
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -1,109 +0,0 @@
|
||||
<UserControl x:Class="ImportPanelV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:Icarus"
|
||||
Width="150"
|
||||
Margin="5,0,0,0">
|
||||
<Grid DockPanel.Dock="Left">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Style="{StaticResource LeftPanelTitle_Border}">
|
||||
<TextBlock Text="New part list"
|
||||
FontWeight="DemiBold"
|
||||
FontSize="14"/>
|
||||
</Border>
|
||||
<DockPanel Grid.Row="1">
|
||||
<Button DockPanel.Dock="Left"
|
||||
Content="+"
|
||||
FontSize="20"
|
||||
Command="{Binding AddPart_Command}"
|
||||
Style="{StaticResource LeftPanel_Button}"/>
|
||||
<Button DockPanel.Dock="Left"
|
||||
Content="-"
|
||||
FontSize="20"
|
||||
Command="{Binding RemovePart_Command}"
|
||||
Style="{StaticResource LeftPanel_Button}"/>
|
||||
<Button Content="Reference"
|
||||
Command="{Binding SetReference_Command}"
|
||||
Style="{StaticResource LeftPanel_TextButton}"/>
|
||||
</DockPanel>
|
||||
<TreeView Grid.Row="2"
|
||||
ItemsSource="{Binding ImportPartList}"
|
||||
MinHeight="300">
|
||||
<TreeView.Resources>
|
||||
<HierarchicalDataTemplate DataType="{x:Type local:ImportPart}"
|
||||
ItemsSource="{Binding LayerList}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Image Source="/Resources/TreeView/Folder.png"
|
||||
Height="15"/>
|
||||
<TextBlock Text="{Binding ghName}" />
|
||||
</StackPanel>
|
||||
</HierarchicalDataTemplate>
|
||||
<HierarchicalDataTemplate DataType="{x:Type local:ImportLayer}"
|
||||
ItemsSource="{Binding EntityList, UpdateSourceTrigger=PropertyChanged}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Image Source="/Resources/TreeView/Folder.png"
|
||||
Height="15"/>
|
||||
<TextBlock Text="{Binding sName}" />
|
||||
</StackPanel>
|
||||
</HierarchicalDataTemplate>
|
||||
<HierarchicalDataTemplate DataType="{x:Type local:GeomEntity}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<!--<Image Source="/WpfTutorialSamples;component/Images/user.png" Margin="0,0,5,0" />-->
|
||||
<TextBlock Text="{Binding ghName}" />
|
||||
<TextBlock Text="{Binding ghReference, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</StackPanel>
|
||||
</HierarchicalDataTemplate>
|
||||
</TreeView.Resources>
|
||||
<TreeView.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type TreeViewItem}">
|
||||
<Setter Property="IsSelected" Value="{Binding bIsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Setter Property="IsExpanded" Value="True" />
|
||||
</Style>
|
||||
</TreeView.ItemContainerStyle>
|
||||
</TreeView>
|
||||
<Border Grid.Row="3"
|
||||
Style="{StaticResource LeftPanelTitle_Border}">
|
||||
<TextBlock Text="Imported entity list"
|
||||
FontWeight="DemiBold"
|
||||
FontSize="14"/>
|
||||
</Border>
|
||||
<ListBox Grid.Row="4"
|
||||
ItemsSource="{Binding ImportedEntityList, UpdateSourceTrigger=PropertyChanged}"
|
||||
SelectedItem="{Binding SelImportedEntity}"
|
||||
MinHeight="200">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid HorizontalAlignment="Stretch">
|
||||
<Grid.InputBindings>
|
||||
<MouseBinding Gesture="LeftDoubleClick"
|
||||
Command="{Binding ImportedEntity_DoubleClick}"/>
|
||||
</Grid.InputBindings>
|
||||
<TextBlock Text="{Binding ghName}">
|
||||
</TextBlock>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
<UniformGrid Grid.Row="5"
|
||||
Rows="1">
|
||||
<Button Content="Ok"
|
||||
Command="{Binding Ok_Command}"
|
||||
Style="{StaticResource LeftPanel_TextButton}"/>
|
||||
<Button Content="Cancel"
|
||||
Command="{Binding Cancel_Command}"
|
||||
Style="{StaticResource LeftPanel_TextButton}"/>
|
||||
</UniformGrid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -1,3 +0,0 @@
|
||||
Public Class ImportPanelV
|
||||
|
||||
End Class
|
||||
@@ -1,443 +0,0 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class ImportPanelVM
|
||||
Inherits VMBase
|
||||
|
||||
Private m_nImportedPartId As Integer = GDB_ID.NULL
|
||||
Friend ReadOnly Property nImportedPartId As Integer
|
||||
Get
|
||||
Return m_nImportedPartId
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_ImportedEntityList As New ObservableCollection(Of GeomEntity)
|
||||
Public Property ImportedEntityList As ObservableCollection(Of GeomEntity)
|
||||
Get
|
||||
Return m_ImportedEntityList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of GeomEntity))
|
||||
m_ImportedEntityList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_SelImportedEntity As GeomEntity
|
||||
Public Property SelImportedEntity As GeomEntity
|
||||
Get
|
||||
Return m_SelImportedEntity
|
||||
End Get
|
||||
Set(value As GeomEntity)
|
||||
m_SelImportedEntity = value
|
||||
EgtDeselectAll()
|
||||
If Not IsNothing(m_SelImportedEntity) Then
|
||||
EgtSelectObj(m_SelImportedEntity.nId)
|
||||
End If
|
||||
EgtDraw()
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetSelImportedEntity(nId As Integer)
|
||||
m_SelImportedEntity = Map.refImportPanelVM.ImportedEntityList.FirstOrDefault(Function(x) x.nId = nId)
|
||||
EgtDeselectAll()
|
||||
If Not IsNothing(m_SelImportedEntity) Then
|
||||
EgtSelectObj(m_SelImportedEntity.nId)
|
||||
End If
|
||||
EgtDraw()
|
||||
NotifyPropertyChanged(NameOf(SelImportedEntity))
|
||||
End Sub
|
||||
|
||||
Private m_ImportPartList As New ObservableCollection(Of ImportPart)
|
||||
Public ReadOnly Property ImportPartList As ObservableCollection(Of ImportPart)
|
||||
Get
|
||||
Return m_ImportPartList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelImportPart As ImportPart
|
||||
Friend Sub SetSelImportPart(SelImportPart As ImportPart)
|
||||
m_SelImportPart = SelImportPart
|
||||
m_SelImportLayer = Nothing
|
||||
End Sub
|
||||
Public ReadOnly Property SelImportPart As ImportPart
|
||||
Get
|
||||
Return m_SelImportPart
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelImportLayer As ImportLayer
|
||||
Public ReadOnly Property SelImportLayer As ImportLayer
|
||||
Get
|
||||
Return m_SelImportLayer
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetSelImportLayer(SelImportLayer As ImportLayer)
|
||||
m_SelImportPart = m_ImportPartList.FirstOrDefault(Function(x) x.LayerList.Contains(SelImportLayer))
|
||||
m_SelImportLayer = SelImportLayer
|
||||
End Sub
|
||||
|
||||
Private m_SelGeomEntity As GeomEntity
|
||||
Public ReadOnly Property SelGeomEntity As GeomEntity
|
||||
Get
|
||||
Return m_SelGeomEntity
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetSelGeomEntity(SelGeomEntity As GeomEntity)
|
||||
For Each CurrPart In m_ImportPartList
|
||||
Dim CurrLayer As ImportLayer = CurrPart.LayerList.FirstOrDefault(Function(x) x.EntityList.Contains(SelGeomEntity))
|
||||
If Not IsNothing(CurrLayer) Then
|
||||
m_SelImportPart = CurrPart
|
||||
m_SelImportLayer = CurrLayer
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
m_SelGeomEntity = SelGeomEntity
|
||||
End Sub
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdSetReference As ICommand
|
||||
Private m_cmdAddPart As ICommand
|
||||
Private m_cmdRemovePart As ICommand
|
||||
Private m_cmdOk As ICommand
|
||||
Private m_cmdCancel As ICommand
|
||||
|
||||
Sub New()
|
||||
' Creo riferimento a questa classe in EgtCAM5Map
|
||||
Map.SetRefImportPanelVM(Me)
|
||||
End Sub
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Friend Sub Init()
|
||||
m_ImportedEntityList.Clear()
|
||||
m_ImportPartList.Clear()
|
||||
' aggiungo geometrie importate a lista
|
||||
m_nImportedPartId = EgtGetLastPart()
|
||||
Dim nLayerId As Integer = EgtGetFirstLayer(m_nImportedPartId)
|
||||
Dim nGeometryId As Integer = EgtGetFirstInGroup(nLayerId)
|
||||
While nGeometryId <> GDB_ID.NULL
|
||||
Dim sGeometryName As String = ""
|
||||
EgtGetName(nGeometryId, sGeometryName)
|
||||
m_ImportedEntityList.Add(New GeomEntity(nGeometryId, sGeometryName))
|
||||
nGeometryId = EgtGetNext(nGeometryId)
|
||||
End While
|
||||
' aggiungo primo pezzo
|
||||
m_ImportPartList.Add(New ImportPart())
|
||||
m_ImportPartList(0).LayerList.FirstOrDefault(Function(x) x.Type = ImportLayer.LayerType.PRINT_SOLID).bIsSelected = True
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "SetReference"
|
||||
|
||||
Public ReadOnly Property SetReference_Command As ICommand
|
||||
Get
|
||||
If m_cmdSetReference Is Nothing Then
|
||||
m_cmdSetReference = New Command(AddressOf SetReference)
|
||||
End If
|
||||
Return m_cmdSetReference
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub SetReference()
|
||||
If Not IsNothing(SelGeomEntity) Then
|
||||
Dim ChooseReferenceWndVM As New ChooseReferenceWndVM
|
||||
Dim ChooseReferenceWndV As New ChooseReferenceWndV(Application.Current.MainWindow, ChooseReferenceWndVM)
|
||||
If Not ChooseReferenceWndV.ShowDialog() Then Return
|
||||
SelGeomEntity.Reference = ChooseReferenceWndVM.SelReference
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' SetReference
|
||||
|
||||
#Region "AddPart"
|
||||
|
||||
Public ReadOnly Property AddPart_Command As ICommand
|
||||
Get
|
||||
If m_cmdAddPart Is Nothing Then
|
||||
m_cmdAddPart = New Command(AddressOf AddPart)
|
||||
End If
|
||||
Return m_cmdAddPart
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub AddPart()
|
||||
m_ImportPartList.Add(New ImportPart)
|
||||
End Sub
|
||||
|
||||
#End Region ' AddPart
|
||||
|
||||
#Region "RemovePart"
|
||||
|
||||
Public ReadOnly Property RemovePart_Command As ICommand
|
||||
Get
|
||||
If m_cmdRemovePart Is Nothing Then
|
||||
m_cmdRemovePart = New Command(AddressOf RemovePart)
|
||||
End If
|
||||
Return m_cmdRemovePart
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub RemovePart()
|
||||
If IsNothing(SelImportLayer) Then
|
||||
' rimuovo pezzo
|
||||
m_ImportPartList.Remove(SelImportPart)
|
||||
Else
|
||||
' rimuovo geometria
|
||||
Dim CurrEntity As GeomEntity = m_SelGeomEntity
|
||||
SelImportLayer.EntityList.Remove(m_SelGeomEntity)
|
||||
' la rimetto in lista importati
|
||||
ImportedEntityList.Add(CurrEntity)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' RemovePart
|
||||
|
||||
#Region "Ok"
|
||||
|
||||
Public ReadOnly Property Ok_Command As ICommand
|
||||
Get
|
||||
If m_cmdOk Is Nothing Then
|
||||
m_cmdOk = New Command(AddressOf Ok)
|
||||
End If
|
||||
Return m_cmdOk
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Ok()
|
||||
Dim sErr As New List(Of String)
|
||||
' verifico che tutti i pezzi abbiano una superficie da stampare nel layer apposito
|
||||
For Each CurrPart In m_ImportPartList
|
||||
For Each CurrLayer In CurrPart.LayerList
|
||||
Select Case CurrLayer.Type
|
||||
Case ImportLayer.LayerType.PRINT_SOLID
|
||||
If CurrLayer.EntityList.Count = 0 Then
|
||||
If sErr.Count > 0 Then sErr(sErr.Count - 1) &= Environment.NewLine
|
||||
sErr.Add(CurrPart.ghName & " - No print surface defined!")
|
||||
End If
|
||||
End Select
|
||||
Next
|
||||
Next
|
||||
If sErr.Count > 0 Then
|
||||
MessageBox.Show(String.Concat(sErr), "Error")
|
||||
Return
|
||||
Else
|
||||
' Creo pezzi e layer necessari
|
||||
For ImportPartIndex = 0 To m_ImportPartList.Count - 1
|
||||
Dim ImportPart As ImportPart = m_ImportPartList(ImportPartIndex)
|
||||
Dim frImportedPart As New Frame3d
|
||||
EgtGetGroupGlobFrame(m_nImportedPartId, frImportedPart)
|
||||
Dim nPartId As Integer = EgtCreateGroup(GDB_ID.ROOT, frImportedPart)
|
||||
EgtSetName(nPartId, PART)
|
||||
Dim nFrameId As Integer = GDB_ID.NULL
|
||||
Dim b3PrintSolid As New BBox3d
|
||||
Dim nPrintPartLayerId As Integer = GDB_ID.NULL
|
||||
Dim PrintSolidEntity As GeomEntity = Nothing
|
||||
Dim nOriginalPartLayerId As Integer = GDB_ID.NULL
|
||||
Dim nRibsLayerId As Integer = GDB_ID.NULL
|
||||
Dim nShellNumberLayerId As Integer = GDB_ID.NULL
|
||||
Dim nAuxSolidsLayerId As Integer = GDB_ID.NULL
|
||||
Dim nMachStartLayerId As Integer = GDB_ID.NULL
|
||||
Dim nOthersLayerId As Integer = GDB_ID.NULL
|
||||
For Each ImportLayer In ImportPart.LayerList
|
||||
Select Case ImportLayer.Type
|
||||
Case ImportLayer.LayerType.PRINT_SOLID
|
||||
nPrintPartLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nPrintPartLayerId, PRINT_SOLID)
|
||||
If ImportLayer.EntityList.Count > 0 Then
|
||||
PrintSolidEntity = ImportLayer.EntityList(0)
|
||||
EgtRelocateGlob(PrintSolidEntity.nId, nPrintPartLayerId, GDB_POS.LAST_SON)
|
||||
' calcolo box superficie per creazione riferimento
|
||||
EgtGetBBoxGlob(PrintSolidEntity.nId, GDB_BB.STANDARD, b3PrintSolid)
|
||||
End If
|
||||
'Case ImportLayer.LayerType.ORIGINAL_SOLID
|
||||
' nOriginalPartLayerId = EgtCreateGroup(nPartId)
|
||||
' EgtSetName(nOriginalPartLayerId, ORIGINAL_SOLID)
|
||||
' For Each GeomEntity In ImportLayer.EntityList
|
||||
' EgtRelocateGlob(GeomEntity.nId, nOriginalPartLayerId, GDB_POS.LAST_SON)
|
||||
' Next
|
||||
Case ImportLayer.LayerType.MACH_START
|
||||
nMachStartLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nMachStartLayerId, LAY_MACH_START)
|
||||
Dim nMachStartId As Integer = GDB_ID.NULL
|
||||
If ImportLayer.EntityList.Count > 0 Then
|
||||
For Each GeomEntity In ImportLayer.EntityList
|
||||
' se punto o curva compo
|
||||
Dim EntityType As GDB_TY = EgtGetType(GeomEntity.nId)
|
||||
Select Case EntityType
|
||||
Case GDB_TY.GEO_POINT, GDB_TY.CRV_COMPO
|
||||
' gli cambio layer
|
||||
EgtRelocateGlob(GeomEntity.nId, nMachStartLayerId, GDB_POS.LAST_SON)
|
||||
nMachStartId = GeomEntity.nId
|
||||
Case GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_LINE
|
||||
' altrimenti la trasformo in curva compo
|
||||
nMachStartId = EgtCreateCurveCompo(nMachStartLayerId, GeomEntity.nId, True)
|
||||
End Select
|
||||
EgtSetName(nMachStartId, START_GEOM)
|
||||
' coloro l'entita' di rosso
|
||||
Dim c3Red As Color3d
|
||||
c3Red.FromColor(System.Drawing.Color.Red)
|
||||
EgtSetColor(nMachStartId, c3Red)
|
||||
Next
|
||||
Else
|
||||
' creo punto di partenza
|
||||
Dim ptStart As Point3d = b3PrintSolid.Center() - 0.6 * b3PrintSolid.DimY() * Vector3d.Y_AX() - 0.5 * b3PrintSolid.DimZ() * Vector3d.Z_AX()
|
||||
nMachStartId = EgtCreateGeoPoint(nMachStartLayerId, ptStart, GDB_RT.GLOB)
|
||||
EgtSetName(nMachStartId, START_GEOM)
|
||||
' coloro l'entita' di rosso
|
||||
Dim c3Red As Color3d
|
||||
c3Red.FromColor(System.Drawing.Color.Red)
|
||||
EgtSetColor(nMachStartId, c3Red)
|
||||
End If
|
||||
Case ImportLayer.LayerType.RIBS
|
||||
nRibsLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nRibsLayerId, LAY_RIBS)
|
||||
For Each GeomEntity In ImportLayer.EntityList
|
||||
EgtSetInfo(GeomEntity.nId, KEY_RIB_TYPE, RibEntity.RibTypes.FROMIMPORT)
|
||||
EgtRelocateGlob(GeomEntity.nId, nRibsLayerId, GDB_POS.LAST_SON)
|
||||
' coloro l'entita' di viola
|
||||
Dim c3LightBlue As Color3d
|
||||
c3LightBlue.FromColor(System.Drawing.Color.MediumOrchid)
|
||||
EgtSetColor(GeomEntity.nId, c3LightBlue)
|
||||
Next
|
||||
Case ImportLayer.LayerType.SHELL_NUMBER
|
||||
nShellNumberLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nShellNumberLayerId, LAY_SHELL_NBR)
|
||||
For Each GeomEntity In ImportLayer.EntityList
|
||||
EgtSetInfo(GeomEntity.nId, KEY_SHELLNBR_TYPE, ShellNumberEntity.ShellNumberTypes.FROMIMPORT)
|
||||
EgtRelocateGlob(GeomEntity.nId, nShellNumberLayerId, GDB_POS.LAST_SON)
|
||||
' coloro l'entita' di verde
|
||||
Dim c3LightBlue As Color3d
|
||||
c3LightBlue.FromColor(System.Drawing.Color.Lime)
|
||||
EgtSetColor(GeomEntity.nId, c3LightBlue)
|
||||
Next
|
||||
Case ImportLayer.LayerType.AUX_SOLIDS
|
||||
nAuxSolidsLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nAuxSolidsLayerId, LAY_AUX_SOLIDS)
|
||||
For Each GeomEntity In ImportLayer.EntityList
|
||||
EgtSetInfo(GeomEntity.nId, KEY_AUXSOLID_TYPE, RibEntity.RibTypes.FROMIMPORT)
|
||||
EgtRelocateGlob(GeomEntity.nId, nAuxSolidsLayerId, GDB_POS.LAST_SON)
|
||||
' coloro l'entita' di oro
|
||||
Dim c3LightBlue As Color3d
|
||||
c3LightBlue.FromColor(System.Drawing.Color.DarkGoldenrod)
|
||||
EgtSetColor(GeomEntity.nId, c3LightBlue)
|
||||
Next
|
||||
Case ImportLayer.LayerType.OTHERS
|
||||
nOthersLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nOthersLayerId, LAY_OTHERS)
|
||||
For Each GeomEntity In ImportLayer.EntityList
|
||||
EgtRelocateGlob(GeomEntity.nId, nOthersLayerId, GDB_POS.LAST_SON)
|
||||
Next
|
||||
If ImportPartIndex = 0 Then
|
||||
For Each GeomEntity In ImportedEntityList
|
||||
' se curva
|
||||
Dim EntityType As GDB_TY = EgtGetType(GeomEntity.nId)
|
||||
Select Case EntityType
|
||||
Case GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_LINE
|
||||
' la trasformo in curva compo
|
||||
EgtCreateCurveCompo(nOthersLayerId, GeomEntity.nId, True)
|
||||
Case Else
|
||||
' altrimenti la sposto solamente
|
||||
EgtRelocateGlob(GeomEntity.nId, nOthersLayerId, GDB_POS.LAST_SON)
|
||||
End Select
|
||||
Next
|
||||
End If
|
||||
End Select
|
||||
Next
|
||||
' aggiungo riferimento
|
||||
Dim nReferenceLayerId As Integer = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nReferenceLayerId, LAY_REFERENCE)
|
||||
' Creo riferimento
|
||||
Dim ptOrig As New Point3d(b3PrintSolid.Min())
|
||||
Select Case PrintSolidEntity.Reference
|
||||
Case ChooseReferenceWndVM.References.TL
|
||||
ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX
|
||||
Case ChooseReferenceWndVM.References.TR
|
||||
ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX + b3PrintSolid.DimX() * Vector3d.X_AX
|
||||
Case ChooseReferenceWndVM.References.BL
|
||||
Case ChooseReferenceWndVM.References.BR
|
||||
ptOrig += b3PrintSolid.DimX() * Vector3d.X_AX
|
||||
Case ChooseReferenceWndVM.References.TC
|
||||
ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
|
||||
Case ChooseReferenceWndVM.References.ML
|
||||
ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX
|
||||
Case ChooseReferenceWndVM.References.MR
|
||||
ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() * Vector3d.X_AX
|
||||
Case ChooseReferenceWndVM.References.TC
|
||||
ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
|
||||
Case ChooseReferenceWndVM.References.MR
|
||||
ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() * Vector3d.X_AX
|
||||
Case ChooseReferenceWndVM.References.BC
|
||||
ptOrig += b3PrintSolid.DimX() / 2 * Vector3d.X_AX
|
||||
Case ChooseReferenceWndVM.References.MC
|
||||
ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
|
||||
End Select
|
||||
Dim frPrintSolid As New Frame3d(ptOrig)
|
||||
nFrameId = EgtCreateGeoFrame(nReferenceLayerId, frPrintSolid, GDB_RT.GLOB)
|
||||
If nFrameId Then
|
||||
EgtSetName(nFrameId, FRAME_PART)
|
||||
EgtSetMode(nFrameId, GDB_MD.LOCKED)
|
||||
End If
|
||||
EgtSetInfo(nReferenceLayerId, KEY_REFERENCE, PrintSolidEntity.Reference)
|
||||
' appoggio il pezzo sulla tavola
|
||||
EgtMove(nPartId, New Vector3d(0, 0, -b3PrintSolid.Min.z))
|
||||
' lo aggiungo a lista pezzi
|
||||
Dim sFilePath As String = ""
|
||||
EgtGetInfo(m_nImportedPartId, FILE_PATH, sFilePath)
|
||||
EgtSetInfo(nPartId, FILE_PATH, sFilePath)
|
||||
EgtSetInfo(nPartId, "PartOnTable", 1)
|
||||
Dim NewPart As New Print3dPartVM(nPartId, nPrintPartLayerId, PrintSolidEntity.nId, nOriginalPartLayerId, nReferenceLayerId, nFrameId, nMachStartLayerId, nRibsLayerId, nShellNumberLayerId, nAuxSolidsLayerId, nOthersLayerId, sFilePath)
|
||||
Map.refTopPanelVM.PartList.Add(NewPart)
|
||||
Next
|
||||
End If
|
||||
'EgtAddMachGroup("3dPrint")
|
||||
'EgtSetTable("Tab")
|
||||
|
||||
'Dim nRawId As Integer = EgtAddRawPart(b3PrintSolid.Min, b3PrintSolid.DimX, b3PrintSolid.DimY, b3PrintSolid.DimZ, New Color3d(128, 128, 128, 30))
|
||||
'EgtAddPartToRawPart(nPartId, b3PrintSolid.Min, nRawId)
|
||||
'EgtMoveToCornerRawPart(nRawId, New Point3d(dPosX, dPosY, 0), MCH_CR.BL)
|
||||
|
||||
'EgtResetCurrMachGroup()
|
||||
|
||||
' seleziono ultimo pezzo aggiunto
|
||||
Map.refTopPanelVM.SelLastPart()
|
||||
' elimino vecchio pezzo d'importazione
|
||||
EgtErase(m_nImportedPartId)
|
||||
|
||||
EgtDraw()
|
||||
' ripristino modalita' standard
|
||||
Map.refTopPanelVM.SelPage = Pages.MODIFY
|
||||
End Sub
|
||||
|
||||
#End Region ' Ok
|
||||
|
||||
#Region "Cancel"
|
||||
|
||||
Public ReadOnly Property Cancel_Command As ICommand
|
||||
Get
|
||||
If m_cmdCancel Is Nothing Then
|
||||
m_cmdCancel = New Command(AddressOf Cancel)
|
||||
End If
|
||||
Return m_cmdCancel
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Cancel()
|
||||
' elimino pezzo importato
|
||||
EgtErase(m_nImportedPartId)
|
||||
EgtDraw()
|
||||
' se ci sono pezzi
|
||||
If Map.refTopPanelVM.PartList.Count > 0 Then
|
||||
' ripristino modalita' standard
|
||||
Map.refTopPanelVM.SelPage = Pages.MODIFY
|
||||
Else
|
||||
Map.refTopPanelVM.SelPage = Pages.NULL
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' Cancel
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
End Class
|
||||
@@ -1,231 +0,0 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class GeomEntity
|
||||
Inherits VMBase
|
||||
|
||||
Private m_bIsSelected As Boolean
|
||||
Public Property bIsSelected As Boolean
|
||||
Get
|
||||
Return m_bIsSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bIsSelected = value
|
||||
' seleziono in scena
|
||||
EgtDeselectAll()
|
||||
If Not IsNothing(value) Then
|
||||
EgtSelectObj(m_nId)
|
||||
End If
|
||||
EgtDraw()
|
||||
' segno come elemento selezionato in treeview
|
||||
Map.refImportPanelVM.SetSelGeomEntity(Me)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_nId As Integer = GDB_ID.NULL
|
||||
Public ReadOnly Property nId As Integer
|
||||
Get
|
||||
Return m_nId
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sName As String
|
||||
Public ReadOnly Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ghName As String
|
||||
Get
|
||||
Return m_nId & If(Not String.IsNullOrWhiteSpace(m_sName), " - " & m_sName, "")
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_Reference As ChooseReferenceWndVM.References = ChooseReferenceWndVM.References.BL
|
||||
Public Property Reference As ChooseReferenceWndVM.References
|
||||
Get
|
||||
Return m_Reference
|
||||
End Get
|
||||
Set(value As ChooseReferenceWndVM.References)
|
||||
m_Reference = value
|
||||
NotifyPropertyChanged(NameOf(ghReference))
|
||||
End Set
|
||||
End Property
|
||||
Public ReadOnly Property ghReference As String
|
||||
Get
|
||||
Select Case m_Reference
|
||||
Case ChooseReferenceWndVM.References.TL
|
||||
Return "┌"
|
||||
Case ChooseReferenceWndVM.References.TR
|
||||
Return "┐"
|
||||
Case ChooseReferenceWndVM.References.BL
|
||||
Return "└"
|
||||
Case ChooseReferenceWndVM.References.BR
|
||||
Return "┘"
|
||||
Case ChooseReferenceWndVM.References.TC
|
||||
Return "┬"
|
||||
Case ChooseReferenceWndVM.References.ML
|
||||
Return "├"
|
||||
Case ChooseReferenceWndVM.References.MR
|
||||
Return "┤"
|
||||
Case ChooseReferenceWndVM.References.BC
|
||||
Return "┴"
|
||||
Case ChooseReferenceWndVM.References.MC
|
||||
Return "┼"
|
||||
Case Else
|
||||
Return "X"
|
||||
End Select
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdImportedEntity As ICommand
|
||||
|
||||
Sub New(nId As Integer, sName As String)
|
||||
m_nId = nId
|
||||
m_sName = sName
|
||||
End Sub
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "ImportedEntity"
|
||||
|
||||
Public ReadOnly Property ImportedEntity_DoubleClick As ICommand
|
||||
Get
|
||||
If m_cmdImportedEntity Is Nothing Then
|
||||
m_cmdImportedEntity = New Command(AddressOf ImportedEntity)
|
||||
End If
|
||||
Return m_cmdImportedEntity
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub ImportedEntity()
|
||||
If Not IsNothing(Map.refImportPanelVM.SelImportLayer) Then
|
||||
Map.refImportPanelVM.ImportedEntityList.Remove(Me)
|
||||
Map.refImportPanelVM.SelImportLayer.EntityList.Add(Me)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' ImportedEntity
|
||||
|
||||
#End Region ' COMMANDS
|
||||
End Class
|
||||
|
||||
Public Class ImportPart
|
||||
Inherits VMBase
|
||||
|
||||
Private m_bIsSelected As Boolean
|
||||
Public Property bIsSelected As Boolean
|
||||
Get
|
||||
Return m_bIsSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bIsSelected = value
|
||||
Map.refImportPanelVM.SetSelImportPart(Me)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_nId As Integer
|
||||
Public ReadOnly Property nId As Integer
|
||||
Get
|
||||
Return m_nId
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sName As String
|
||||
Public Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ghName As String
|
||||
Get
|
||||
Return If(Not String.IsNullOrWhiteSpace(m_sName), m_nId & " - " & m_sName, "Part" & m_nId)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_LayerList As New ObservableCollection(Of ImportLayer)
|
||||
Public ReadOnly Property LayerList As ObservableCollection(Of ImportLayer)
|
||||
Get
|
||||
Return m_LayerList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Sub New()
|
||||
m_nId = If(Map.refImportPanelVM.ImportPartList.Count = 0, 1, Map.refImportPanelVM.ImportPartList.Max(Function(x) x.m_nId) + 1)
|
||||
m_LayerList.Add(New ImportLayer(ImportLayer.LayerType.PRINT_SOLID, "Print"))
|
||||
m_LayerList.Add(New ImportLayer(ImportLayer.LayerType.MACH_START, "Layer Start"))
|
||||
'm_LayerList.Add(New ImportLayer(ImportLayer.LayerType.ORIGINAL_SOLID, "Original Solid"))
|
||||
m_LayerList.Add(New ImportLayer(ImportLayer.LayerType.RIBS, "Ribs"))
|
||||
m_LayerList.Add(New ImportLayer(ImportLayer.LayerType.SHELL_NUMBER, "Reduce Shell Number"))
|
||||
m_LayerList.Add(New ImportLayer(ImportLayer.LayerType.AUX_SOLIDS, "Filled Solids"))
|
||||
m_LayerList.Add(New ImportLayer(ImportLayer.LayerType.OTHERS, "Others"))
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class ImportLayer
|
||||
Inherits VMBase
|
||||
|
||||
Public Enum LayerType As Integer
|
||||
PRINT_SOLID = 1
|
||||
MACH_START = 2
|
||||
RIBS = 3
|
||||
SHELL_NUMBER = 4
|
||||
AUX_SOLIDS = 5
|
||||
OTHERS = 7
|
||||
End Enum
|
||||
|
||||
Private m_bIsSelected As Boolean
|
||||
Public Property bIsSelected As Boolean
|
||||
Get
|
||||
Return m_bIsSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bIsSelected = value
|
||||
Map.refImportPanelVM.SetSelImportLayer(Me)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_Type As LayerType
|
||||
Public Property Type As LayerType
|
||||
Get
|
||||
Return m_Type
|
||||
End Get
|
||||
Set(value As LayerType)
|
||||
m_Type = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_sName As String
|
||||
Public Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_EntityList As New ObservableCollection(Of GeomEntity)
|
||||
Public Property EntityList As ObservableCollection(Of GeomEntity)
|
||||
Get
|
||||
Return m_EntityList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of GeomEntity))
|
||||
m_EntityList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(Type As LayerType, sName As String)
|
||||
m_Type = Type
|
||||
m_sName = sName
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -1,10 +0,0 @@
|
||||
<UserControl x:Class="ImportSceneHostV"
|
||||
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">
|
||||
|
||||
<WindowsFormsHost>
|
||||
<EgtUILib:Scene x:Name="MainScene"/>
|
||||
</WindowsFormsHost>
|
||||
|
||||
</UserControl>
|
||||
@@ -1,33 +0,0 @@
|
||||
Imports System.Windows.Interop
|
||||
Imports System.IO
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class ImportSceneHostV
|
||||
|
||||
Private m_ImportSceneHostVM As ImportSceneHostVM
|
||||
|
||||
Sub New()
|
||||
' This call is required by the designer.
|
||||
InitializeComponent()
|
||||
' Assegno al riferimento locale al VM il VM preso dal DataContext
|
||||
Me.DataContext = New ImportSceneHostVM
|
||||
m_ImportSceneHostVM = DirectCast(Me.DataContext, ImportSceneHostVM)
|
||||
m_ImportSceneHostVM.SetMainScene(MainScene)
|
||||
End Sub
|
||||
|
||||
Private Sub MainScene_GotFocus() Handles MainScene.GotFocus
|
||||
m_ImportSceneHostVM.SetIsFocused(True)
|
||||
EgtOutLog("MainScene_GotFocus")
|
||||
' Map.refSecondaryWindowV.Topmost = True
|
||||
'Map.refSecondaryWindowVM.SetVisibility(True)
|
||||
End Sub
|
||||
|
||||
Private Sub MainScene_LostFocus() Handles MainScene.LostFocus
|
||||
m_ImportSceneHostVM.SetIsFocused(False)
|
||||
EgtOutLog("MainScene_LostFocus")
|
||||
' Map.refSecondaryWindowV.Topmost = False
|
||||
'Map.refSecondaryWindowVM.SetVisibility(False)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -1,722 +0,0 @@
|
||||
Imports System.IO
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports Microsoft.Win32
|
||||
|
||||
Public Class ImportSceneHostVM
|
||||
Inherits EgtWPFLib5.SceneHostVM
|
||||
|
||||
Friend m_bIsFocused As Boolean
|
||||
Friend Sub SetIsFocused(bValue As Boolean)
|
||||
m_bIsFocused = bValue
|
||||
End Sub
|
||||
|
||||
' Identificativi per pezzo da selezionare/deselezionare
|
||||
Private m_nIdToSel As Integer = GDB_ID.NULL
|
||||
Private m_nIdToDesel As Integer = GDB_ID.NULL
|
||||
' Dati movimento
|
||||
Private m_dMaxStep As Double = 0
|
||||
' Dati per Drag
|
||||
Private m_nRestRadius As Integer = 5
|
||||
Private m_bDrag As Boolean = False
|
||||
Private m_bDragToStart As Boolean = False
|
||||
Private m_bVerify As Boolean = False
|
||||
Private m_bFromParking As Boolean = False
|
||||
Private m_bDragging As Boolean = False
|
||||
Private m_locPrev As System.Drawing.Point
|
||||
Private m_ptPrev As Point3d
|
||||
Private m_vtTotMove As Vector3d
|
||||
Private m_dSnapDist As Double = 0
|
||||
|
||||
Private bReducedCut As Boolean = False
|
||||
Private m_bMagnetic As Boolean
|
||||
|
||||
' punto di snap per inizializzazione
|
||||
Private m_SnapType As SP
|
||||
Friend ReadOnly Property SnapType As SP
|
||||
Get
|
||||
Return m_SnapType
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
MyBase.New()
|
||||
AddHandler MainController.OnNewProject, AddressOf OnNewProject
|
||||
AddHandler MainController.OnOpenProject, AddressOf OnOpenProject
|
||||
AddHandler MainController.OnSavingProject, AddressOf OnSavingProject
|
||||
AddHandler MainController.OnSavedProject, AddressOf OnSavedProject
|
||||
AddHandler MainController.OnInsertedProject, AddressOf OnInsertedProject
|
||||
AddHandler MainController.OnImportingProject, AddressOf OnImportingProject
|
||||
AddHandler MainController.OnImportedProject, AddressOf OnImportedProject
|
||||
AddHandler MainController.PrepareInputBox, AddressOf PrepareInputBox
|
||||
AddHandler MainController.SetInputBoxText, AddressOf SetInputBoxText
|
||||
AddHandler MainController.SetInputBoxCheck, AddressOf SetInputBoxCheck
|
||||
AddHandler MainController.AddInputBoxCombo, AddressOf AddInputBoxCombo
|
||||
AddHandler MainController.UpdateUI, AddressOf UpdateUI
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Overrides Sub InitScene()
|
||||
InitSceneEvents()
|
||||
' Inizializzazione Scena
|
||||
PreInitializeScene()
|
||||
' Se tutto bene
|
||||
If MainScene.Init() And Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT._3DPRINT) Then
|
||||
PostInitializeScene()
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
' inizializzo gestore lavorazioni
|
||||
EgtInitMachMgr(Map.refMainWindowVM.MainWindowM.sMachinesRoot, Map.refMainWindowVM.MainWindowM.sToolMakersDir)
|
||||
Return
|
||||
End If
|
||||
' Problemi
|
||||
' Se manca la chiave
|
||||
If Map.refMainWindowVM.MainWindowM.nKeyLevel = -1 Or Map.refMainWindowVM.MainWindowM.nKeyLevel = -2 Then
|
||||
EgtOutLog("Missing Dongle")
|
||||
' Box di avviso chiave mancante : "Chiave non presente. \n Inserirla e riavviare il programma." "Errore"
|
||||
Dim sText As String = EgtMsg(MSG_MISSINGKEYWD + 2) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 3)
|
||||
Dim sTitle As String = EgtMsg(MSG_MISSINGKEYWD + 1)
|
||||
MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
' Altrimenti manca la licenza
|
||||
Else
|
||||
EgtOutLog("Problems with Licence")
|
||||
' Box di avviso licenza con problemi : "Programma senza licenza. \n Caricala e riavvia il programma." "Errore"
|
||||
Dim sText As String = EgtMsg(MSG_MISSINGKEYWD + 5) & vbCrLf & EgtMsg(MSG_MISSINGKEYWD + 6)
|
||||
Dim sTitle As String = EgtMsg(MSG_MISSINGKEYWD + 1)
|
||||
If MessageBox.Show(sText, sTitle, MessageBoxButton.OKCancel, MessageBoxImage.Error) = MessageBoxResult.OK Then
|
||||
' Apro dialogo per richiesta file licenza
|
||||
Dim LicDlg As New Microsoft.Win32.OpenFileDialog() With {
|
||||
.DefaultExt = ".lic",
|
||||
.Filter = "Licences (.lic)|*.lic",
|
||||
.CheckFileExists = True,
|
||||
.ValidateNames = True
|
||||
}
|
||||
If LicDlg.ShowDialog() = True Then
|
||||
' Recupero il direttorio del file
|
||||
Dim sDir As String = Path.GetDirectoryName(LicDlg.FileName)
|
||||
' Se il file non è già nel direttorio di configurazione lo copio
|
||||
If Not String.Equals(Path.GetFullPath(sDir), Path.GetFullPath(Map.refMainWindowVM.MainWindowM.sConfigDir), StringComparison.OrdinalIgnoreCase) Then
|
||||
Try
|
||||
File.Copy(LicDlg.FileName, Path.Combine(Map.refMainWindowVM.MainWindowM.sConfigDir, LicDlg.SafeFileName), True)
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
End If
|
||||
' Imposto il nuovo file di licenza nell'Ini
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_LICENCE, LicDlg.SafeFileName)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
' Chiudo il programma
|
||||
End
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub InitSceneEvents()
|
||||
AddHandler MainScene.OnCursorPos, AddressOf OnCursorPos
|
||||
AddHandler MainScene.OnMouseSetObjFilterForSelect, AddressOf OnMouseSetObjFilterForSelect
|
||||
AddHandler MainScene.OnMouseSelectedAll, AddressOf OnMouseSelectedAll
|
||||
AddHandler MainScene.OnMouseDeselectedAll, AddressOf OnMouseDeselectedAll
|
||||
AddHandler MainScene.OnMouseDownScene, AddressOf OnMouseDownScene
|
||||
AddHandler MainScene.OnMouseMoveScene, AddressOf OnMouseMoveScene
|
||||
AddHandler MainScene.OnMouseUpScene, AddressOf OnMouseUpScene
|
||||
AddHandler MainScene.OnMouseSelectedObj, AddressOf OnMouseSelectedObj
|
||||
AddHandler MainScene.OnMouseSelectedPart, AddressOf OnMouseSelectedPart
|
||||
AddHandler MainScene.OnMouseSelectedLayer, AddressOf OnMouseSelectedLayer
|
||||
AddHandler MainScene.OnMouseSelectedPath, AddressOf OnMouseSelectedPath
|
||||
AddHandler MainScene.OnMousePointFromSelection, AddressOf OnMousePointFromSelection
|
||||
AddHandler MainScene.OnMouseDone, AddressOf OnMouseDone
|
||||
AddHandler MainScene.OnMouseSelectedPoint, AddressOf OnMouseSelectedPoint
|
||||
AddHandler MainScene.OnMouseSelectedDir, AddressOf OnMouseSelectedDir
|
||||
AddHandler MainScene.OnMouseMoveSelPoint, AddressOf OnMouseMoveSelPoint
|
||||
AddHandler MainScene.OnShowDistance, AddressOf OnShowDistance
|
||||
AddHandler MainScene.KeyDown, AddressOf OnKeyDown
|
||||
AddHandler MainScene.OnCloseGetDist, AddressOf OnCloseGetDist
|
||||
AddHandler MainScene.OnChangedSnapPointType, AddressOf OnChangedSnapPointType
|
||||
End Sub
|
||||
|
||||
Private Sub PreInitializeScene()
|
||||
' imposto colore di default
|
||||
Dim DefColor As New Color3d(0, 0, 0)
|
||||
GetMainPrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, DefColor)
|
||||
MainScene.SetDefaultMaterial(DefColor)
|
||||
' imposto colori sfondo
|
||||
Dim BackTopColor As New Color3d(192, 192, 192)
|
||||
GetMainPrivateProfileColor(S_SCENE, K_BACKTOP, BackTopColor)
|
||||
Dim BackBotColor As New Color3d(BackTopColor)
|
||||
GetMainPrivateProfileColor(S_SCENE, K_BACKBOTTOM, BackBotColor)
|
||||
MainScene.SetViewBackground(BackTopColor, BackBotColor)
|
||||
' imposto spessore linee
|
||||
Dim nLineWidth As Integer = 1
|
||||
nLineWidth = GetMainPrivateProfileInt(S_SCENE, K_LINEWIDTH, nLineWidth)
|
||||
MainScene.SetLineWidth(nLineWidth)
|
||||
' imposto colore di evidenziazione
|
||||
Dim MarkColor As New Color3d(255, 255, 0)
|
||||
GetMainPrivateProfileColor(S_SCENE, K_MARK, MarkColor)
|
||||
MainScene.SetMarkMaterial(MarkColor)
|
||||
' imposto colore per superfici selezionate
|
||||
Dim SelSurfColor As New Color3d(255, 255, 192)
|
||||
GetMainPrivateProfileColor(S_SCENE, K_SELSURF, SelSurfColor)
|
||||
MainScene.SetSelSurfMaterial(SelSurfColor)
|
||||
' imposto tipo e colore del rettangolo di zoom
|
||||
Dim bOutline As Boolean = True
|
||||
Dim ZwColor As New Color3d(0, 0, 0)
|
||||
GetMainPrivateProfileZoomWin(S_SCENE, K_ZOOMWIN, bOutline, ZwColor)
|
||||
MainScene.SetZoomWinAttribs(bOutline, ZwColor)
|
||||
' imposto colore della linea di distanza
|
||||
Dim DstLnColor As New Color3d(255, 0, 0)
|
||||
GetMainPrivateProfileColor(S_SCENE, K_DISTLINE, DstLnColor)
|
||||
MainScene.SetDistLineMaterial(DstLnColor)
|
||||
' imposto parametri OpenGL
|
||||
Dim nDriver As Integer = GetMainPrivateProfileInt(S_OPENGL, K_DRIVER, 3)
|
||||
Dim b2Buff As Boolean = (GetMainPrivateProfileInt(S_OPENGL, K_DOUBLEBUFFER, 1) <> 0)
|
||||
Dim nColorBits As Integer = GetMainPrivateProfileInt(S_OPENGL, K_COLORBITS, 32)
|
||||
Dim nDepthBits As Integer = GetMainPrivateProfileInt(S_OPENGL, K_DEPTHBITS, 32)
|
||||
MainScene.SetViewAttributes(nDriver, b2Buff, nColorBits, nDepthBits)
|
||||
End Sub
|
||||
|
||||
Private Sub PostInitializeScene()
|
||||
' Impostazioni Controller
|
||||
MainController.SetScene(MainScene)
|
||||
MainController.SetSurfTmTolerance(0.05)
|
||||
MainController.SetUseCustomColors(True, S_SCENE, K_CUSTOMCOLORS)
|
||||
' imposto unità di misura per interfaccia utente
|
||||
Dim nMeasureUnit As Integer = GetMainPrivateProfileInt(S_SCENE, K_MMUNITS, 1)
|
||||
EgtSetUiUnits(nMeasureUnit <> 0)
|
||||
'Map.refMyStatusBarVM.SetMeasureUnit(nMeasureUnit <> 0)
|
||||
' imposto visualizzazione riferimento globale
|
||||
EgtSetGlobFrameShow(True)
|
||||
' imposto i dati della griglia
|
||||
'LoadGridData()
|
||||
EgtSetGridFrame(Frame3d.GLOB)
|
||||
EgtSetGridGeo(10, 10, 100, 484)
|
||||
EgtSetGridColor(New Color3d(160, 160, 160), New Color3d(160, 160, 160))
|
||||
EgtSetGridShow(True, False)
|
||||
' imposto tipo coordinate
|
||||
MainScene.SetGridCursorPos(True)
|
||||
' modo di visualizzazione
|
||||
Dim nShowMode As Integer = GetMainPrivateProfileInt(S_SCENE, K_SHOWMODE, SM.SHADING)
|
||||
'''Map.refShowPanelVM.SetShowMode(DirectCast(nShowMode, SM))
|
||||
' visualizzazione avanzata dei triangoli costituenti le superfici
|
||||
Dim bShowTriaAdv As Boolean = (GetMainPrivateProfileInt(S_SCENE, K_SHOWTRIAADV, 1) <> 0)
|
||||
EgtSetShowTriaAdv(bShowTriaAdv)
|
||||
' tipo visualizzazione per Zmap
|
||||
Dim nShowZmap As Integer = GetMainPrivateProfileInt(S_SCENE, K_SHOWZMAP, 1)
|
||||
EgtSetShowZmap(DirectCast(nShowZmap, ZSM), False)
|
||||
' dimensione lineare max in pixel delle textures
|
||||
Dim nTxrMaxLinPix As Integer = GetMainPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096)
|
||||
EgtSetTextureMaxLinPixels(nTxrMaxLinPix)
|
||||
' tipo snap point
|
||||
MainScene.SetSnapPointType(SP.PT_SKETCH)
|
||||
' visualizzazione assemblato
|
||||
Dim nShowBuilding As Boolean = GetMainPrivateProfileInt(S_SCENE, K_SHOWBUILDING, 0) <> 0
|
||||
'''Map.refShowBeamPanelVM.SetShowBuilding(nShowBuilding)
|
||||
' nascondo input box
|
||||
'''Map.refFreeContourInputVM.ResetInputBox()
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
#Region "ProjectManager"
|
||||
|
||||
Public Overrides Sub NewProject()
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
Dim bOk As Boolean = MainController.NewProject()
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub OpenProject(sFilePath As String)
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
Dim bOk As Boolean = False
|
||||
If String.IsNullOrEmpty(sFilePath) Then
|
||||
' Recupero cartella dell'ultimo progetto aperto
|
||||
Dim sDir As String = MainController.GetCurrFile()
|
||||
If String.IsNullOrWhiteSpace(sDir) Then
|
||||
GetMainPrivateProfileString(S_MRUFILES, K_FILE, "", sDir)
|
||||
End If
|
||||
If Not String.IsNullOrWhiteSpace(sDir) Then
|
||||
sDir = Path.GetDirectoryName(sDir)
|
||||
End If
|
||||
bOk = MainController.OpenProject(sDir)
|
||||
Else
|
||||
bOk = MainController.OpenProject(sFilePath, False)
|
||||
End If
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub SaveProject()
|
||||
MyBase.SaveProject()
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub SaveAsProject()
|
||||
MyBase.SaveAsProject()
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub InsertProject()
|
||||
' eseguo
|
||||
Dim sDir As String = String.Empty
|
||||
GetMainPrivateProfileString(S_MRUIMPORT, K_FILE & "1", "", sDir)
|
||||
Dim OpenFileDialog As New OpenFileDialog With {.Title = "Insert",
|
||||
.Filter = "Stereolithography (*.stl)|*.stl" &
|
||||
"|New geometry EgalTech(*.nge)|*.nge" &
|
||||
"|All Files (*.*)|*.*",
|
||||
.FilterIndex = 1,
|
||||
.InitialDirectory = sDir}
|
||||
If Not OpenFileDialog.ShowDialog Then
|
||||
Return
|
||||
End If
|
||||
Dim sFile As String = String.Empty
|
||||
sFile = OpenFileDialog.FileName
|
||||
Dim ChooseReferenceWndVM As New ChooseReferenceWndVM
|
||||
Dim ChooseReferenceWndV As New ChooseReferenceWndV(Application.Current.MainWindow, ChooseReferenceWndVM)
|
||||
If Not ChooseReferenceWndV.ShowDialog() Then Return
|
||||
|
||||
Dim nImportContext As Integer = EgtInitContext()
|
||||
MainController.InsertProject(sFile, False)
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub ImportProject()
|
||||
Dim sDir As String = String.Empty
|
||||
GetMainPrivateProfileString(S_MRUIMPORT, K_FILE & "1", "", sDir)
|
||||
If Not String.IsNullOrWhiteSpace(sDir) Then
|
||||
sDir = Path.GetDirectoryName(sDir)
|
||||
End If
|
||||
sDir.TrimEnd("\"c)
|
||||
MainController.ImportProject(sDir)
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
|
||||
Friend Sub PreExecScript(bScriptInMru As Boolean)
|
||||
'm_bScriptInMru = bScriptInMru
|
||||
End Sub
|
||||
|
||||
Friend Sub ExecScript(sFilePath As String)
|
||||
If String.IsNullOrEmpty(sFilePath) Then
|
||||
Dim sDir As String = String.Empty
|
||||
'GetMainPrivateProfileString(S_GENERAL, K_LASTLUADIR, "", sDir)
|
||||
MainController.Exec(sDir)
|
||||
Else
|
||||
MainController.Exec(sFilePath, False)
|
||||
End If
|
||||
Dim bMachiningMode As Boolean = EgtGetCurrMachGroup() <> GDB_ID.NULL
|
||||
If Not bMachiningMode And EgtGetCurrLayer() = GDB_ID.NULL Then
|
||||
Dim nCurrPart As Integer = EgtGetCurrPart()
|
||||
If nCurrPart = GDB_ID.NULL Or Not EgtSetCurrPartLayer(nCurrPart, EgtGetFirstLayer(nCurrPart, True)) Then
|
||||
EgtResetCurrPartLayer()
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' ProjectManager
|
||||
|
||||
#Region "SCENE EVENTS"
|
||||
|
||||
Private Sub OnCursorPos(ByVal sender As Object, ByVal sCursorPos As String)
|
||||
Map.refMyStatusBarVM.SetCurrPos(sCursorPos)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSetObjFilterForSelect(sender As Object, bZeroDim As Boolean, bCurve As Boolean,
|
||||
bSurf As Boolean, bVolume As Boolean, bExtra As Boolean)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedAll(ByVal sender As Object, bOnlyVisble As Boolean)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseDeselectedAll(ByVal sender As Object)
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseDownScene(sender As Object, e As Forms.MouseEventArgs)
|
||||
If e.Button = Forms.MouseButtons.Middle Then Return
|
||||
If Map.refInstrumentPanelVM.GetDistIsChecked Then Return
|
||||
Basic_OnMouseDownScene(sender, e)
|
||||
'Select Case Map.refMainMenuVM.SelPage
|
||||
' Case Pages.VIEW
|
||||
' If Not IsNothing(Map.refProjectVM.BTLStructureVM) Then
|
||||
' If Map.refFreeContourManagerVM.bIsActive Then Return
|
||||
' If Map.refShowBeamPanelVM.bShowAll Then
|
||||
' View_Part_OnMouseDownScene(sender, e)
|
||||
' Else
|
||||
' View_Feature_OnMouseDownScene(sender, e)
|
||||
' End If
|
||||
' End If
|
||||
' Case Pages.MACHINING
|
||||
' If Not IsNothing(Map.refMachGroupPanelVM) AndAlso Not IsNothing(Map.refMachGroupPanelVM.SelectedMachGroup) Then
|
||||
' Dim SelectedMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup
|
||||
' If EgtGetCurrMachGroup() = GDB_ID.NULL Then Return
|
||||
' If SelectedMachGroup.nType = BWType.BEAM Then
|
||||
' Beam_OnMouseDownScene(sender, e)
|
||||
' ElseIf SelectedMachGroup.nType = BWType.WALL Then
|
||||
' Wall_OnMouseDownScene(sender, e)
|
||||
' End If
|
||||
' End If
|
||||
'End Select
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseMoveScene(sender As Object, e As Forms.MouseEventArgs)
|
||||
If e.Button = Forms.MouseButtons.Middle Then Return
|
||||
If Map.refInstrumentPanelVM.GetDistIsChecked Then Return
|
||||
Basic_OnMouseMoveScene(sender, e)
|
||||
'Select Case Map.refMainMenuVM.SelPage
|
||||
' Case Pages.VIEW
|
||||
' If Not IsNothing(Map.refProjectVM.BTLStructureVM) Then
|
||||
' If Map.refFreeContourManagerVM.bIsActive Then Return
|
||||
' If Map.refShowBeamPanelVM.bShowAll Then
|
||||
' View_Part_OnMouseMoveScene(sender, e)
|
||||
' Else
|
||||
' View_Feature_OnMouseMoveScene(sender, e)
|
||||
' End If
|
||||
' End If
|
||||
' Case Pages.MACHINING
|
||||
' If Not IsNothing(Map.refMachGroupPanelVM) AndAlso Not IsNothing(Map.refMachGroupPanelVM.SelectedMachGroup) Then
|
||||
' Dim SelectedMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup
|
||||
' If EgtGetCurrMachGroup() = GDB_ID.NULL Then Return
|
||||
' If SelectedMachGroup.nType = BWType.BEAM Then
|
||||
' Beam_OnMouseMoveScene(sender, e)
|
||||
' ElseIf SelectedMachGroup.nType = BWType.WALL Then
|
||||
' Wall_OnMouseMoveScene(sender, e)
|
||||
' End If
|
||||
' End If
|
||||
'End Select
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseUpScene(sender As Object, e As Forms.MouseEventArgs)
|
||||
If e.Button = Forms.MouseButtons.Middle Then Return
|
||||
If Map.refInstrumentPanelVM.GetDistIsChecked Then Return
|
||||
Basic_OnMouseUpScene(sender, e)
|
||||
'Select Case Map.refMainMenuVM.SelPage
|
||||
' Case Pages.VIEW
|
||||
' If Not IsNothing(Map.refProjectVM.BTLStructureVM) Then
|
||||
' If Map.refFreeContourManagerVM.bIsActive Then Return
|
||||
' If Map.refShowBeamPanelVM.bShowAll Then
|
||||
' View_Part_OnMouseUpScene(sender, e)
|
||||
' Else
|
||||
' View_Feature_OnMouseUpScene(sender, e)
|
||||
' End If
|
||||
' End If
|
||||
' Case Pages.MACHINING
|
||||
' If Not IsNothing(Map.refMachGroupPanelVM) AndAlso Not IsNothing(Map.refMachGroupPanelVM.SelectedMachGroup) Then
|
||||
' Dim SelectedMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.SelectedMachGroup
|
||||
' If EgtGetCurrMachGroup() = GDB_ID.NULL Then Return
|
||||
' If SelectedMachGroup.nType = BWType.BEAM Then
|
||||
' Beam_OnMouseUpScene(sender, e)
|
||||
' ElseIf SelectedMachGroup.nType = BWType.WALL Then
|
||||
' Wall_OnMouseUpScene(sender, e)
|
||||
' End If
|
||||
' End If
|
||||
'End Select
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedObj(ByVal sender As Object, ByVal nId As Integer, ByVal bLast As Boolean)
|
||||
'' Se in modalità edit L250
|
||||
'If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refFreeContourManagerVM.bIsActive Then
|
||||
' ' se sto editando testo angoli
|
||||
' If Map.refFreeContourManagerVM.bIsModifyingTextAngle Then
|
||||
' ' passo testo selezionato
|
||||
' Map.refFreeContourManagerVM.TextAngleSelected(nId)
|
||||
' End If
|
||||
' MainController.MouseSelectedObj(nId, bLast)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedPart(ByVal sender As Object, ByVal nId As Integer)
|
||||
'' Se in modalità edit L250
|
||||
'If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refFreeContourManagerVM.bIsActive Then
|
||||
' MainController.MouseSelectedPart(nId)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedLayer(ByVal sender As Object, ByVal nId As Integer)
|
||||
'' Se in modalità edit L250
|
||||
'If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refFreeContourManagerVM.bIsActive Then
|
||||
' MainController.MouseSelectedLayer(nId)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedPath(ByVal sender As Object, ByVal nId As Integer, ByVal bHaltOnFork As Boolean)
|
||||
'' Se in modalità edit L250
|
||||
'If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refFreeContourManagerVM.bIsActive Then
|
||||
' MainController.MouseSelectedPath(nId, bHaltOnFork)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnMousePointFromSelection(ByVal sender As Object, ByVal nId As Integer, ByVal PtP As Point3d, ByVal nAux As Integer)
|
||||
'' Se in modalità edit L250
|
||||
'If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refFreeContourManagerVM.bIsActive Then
|
||||
' MainController.SetPointFromSelection(nId, PtP, nAux)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseDone(ByVal sender As Object)
|
||||
'' Se in modalità edit L250
|
||||
'If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refFreeContourManagerVM.bIsActive Then
|
||||
' MainController.Done(Map.refFreeContourInputVM.Text)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedPoint(ByVal sender As Object, ByVal PtP As Point3d, ByVal nSep As SEP, ByVal nId As Integer)
|
||||
'' Se in modalità edit L250
|
||||
'If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refFreeContourManagerVM.bIsActive Then
|
||||
' Dim bDone As Boolean = (Keyboard.Modifiers And ModifierKeys.Control) <> ModifierKeys.Control
|
||||
' MainController.MouseSelectedPoint(PtP, nSep, nId, bDone)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseSelectedDir(ByVal sender As Object, ByVal VtDir As Vector3d)
|
||||
'' Se in modalità edit L250
|
||||
'If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refFreeContourManagerVM.bIsActive Then
|
||||
' MainController.SetLastVector3d(VtDir)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnMouseMoveSelPoint(ByVal sender As Object, ByVal PtP As Point3d)
|
||||
'' Se in modalità edit L250
|
||||
'If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refFreeContourManagerVM.bIsActive Then
|
||||
' MainController.MouseMoveInSelectionPoint(PtP)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnShowDistance(ByVal sender As Object, ByVal sDistance As String)
|
||||
Map.refMyStatusBarVM.SetOutputMessage(sDistance)
|
||||
End Sub
|
||||
|
||||
Private Sub OnKeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs)
|
||||
'' Se in modalità edit L250
|
||||
'If Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refFreeContourManagerVM.bIsActive Then
|
||||
' ' Con DEL eseguo cancellazione delle entità selezionate
|
||||
' If e.KeyData = System.Windows.Forms.Keys.Delete Then
|
||||
' MainController.SetLastInteger(GDB_ID.SEL)
|
||||
' MainController.ExecuteCommand(Controller.CMD.DELETE)
|
||||
' ' Con SPAZIO ripeto l'ultimo comando
|
||||
' ElseIf e.KeyData = System.Windows.Forms.Keys.Space Then
|
||||
' MainController.RepeatLastCommand()
|
||||
' ' Con 'A' e in modalità continuazione, forzo il passaggio ad arco
|
||||
' ElseIf e.KeyData = System.Windows.Forms.Keys.A And MainController.GetContinue() Then
|
||||
' MainController.ContinueArcPDP()
|
||||
' ' Con 'L' e in modalità continuazione, forzo il passaggio a retta
|
||||
' ElseIf e.KeyData = System.Windows.Forms.Keys.L And MainController.GetContinue() Then
|
||||
' MainController.ContinueLine2P()
|
||||
' ' Con 'V' cambio lo stato del check
|
||||
' ElseIf e.KeyData = System.Windows.Forms.Keys.V Then
|
||||
' Map.refFreeContourInputVM.ChangeInputBoxCheck()
|
||||
' End If
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnCloseGetDist(sender As System.Object)
|
||||
Map.refInstrumentPanelVM.SetGetDistance_IsChecked(False)
|
||||
End Sub
|
||||
|
||||
Friend Sub OnChangedSnapPointType(ByVal sender As Object, ByVal nSpType As SP, ByVal bUser As Boolean)
|
||||
m_SnapType = nSpType
|
||||
If Not IsNothing(Map.refMyStatusBarVM) Then Map.refMyStatusBarVM.SetSnapPointType(nSpType)
|
||||
End Sub
|
||||
|
||||
#End Region ' SCENE EVENTS
|
||||
|
||||
#Region "CONTROLLER EVENTS"
|
||||
|
||||
Private Sub OnNewProject(sender As Object, bOk As Boolean)
|
||||
CurrentMachine.CreateMachineTable()
|
||||
If Not bOk Then
|
||||
MessageBox.Show(Application.Current.MainWindow, EgtMsg(10002), EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error on new file - Error
|
||||
End If
|
||||
EgtZoom(ZM.ALL)
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
|
||||
Private Sub OnOpenProject(sender As Object, sFile As String, bOk As Boolean)
|
||||
EgtZoom(ZM.ALL)
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_LASTNGEDIR, Path.GetDirectoryName(sFile))
|
||||
If bOk Then
|
||||
Map.refProjManagerVM.MruFiles.Add(sFile)
|
||||
Else
|
||||
Map.refProjManagerVM.MruFiles.Remove(sFile)
|
||||
Dim sMsg As String
|
||||
If My.Computer.FileSystem.FileExists(sFile) Then
|
||||
sMsg = EgtMsg(10003) & " '" & sFile & "'" 'Error opening file
|
||||
Else
|
||||
sMsg = EgtMsg(10009) & " '" & sFile & "'" 'Missing file
|
||||
End If
|
||||
MessageBox.Show(Application.Current.MainWindow, sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) 'Error
|
||||
End If
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
|
||||
Private Sub OnSavingProject(ByVal sender As Object, sFile As String)
|
||||
End Sub
|
||||
|
||||
Private Sub OnSavedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean)
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_LASTNGEDIR, Path.GetDirectoryName(sFile))
|
||||
If bOk Then
|
||||
Map.refProjManagerVM.MruFiles.Add(sFile)
|
||||
Else
|
||||
Map.refProjManagerVM.MruFiles.Remove(sFile)
|
||||
Dim sMsg As String = EgtMsg(10004) & " '" & sFile & "'" 'Error saving file
|
||||
MessageBox.Show(Application.Current.MainWindow, sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnInsertedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean)
|
||||
' Segnalo eventuale errore
|
||||
If Not bOk Then
|
||||
Dim sMsg As String = EgtMsg(10006) & " '" & sFile & "'" 'Error importing file
|
||||
MessageBox.Show(Application.Current.MainWindow, sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
|
||||
Else
|
||||
' lo aggiungo alla lista pezzi
|
||||
Map.refProjectVM.AddNewPart(sFile)
|
||||
End If
|
||||
EgtDraw()
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
|
||||
Private Sub OnImportingProject(sender As Object, nType As Integer, ByRef nFlag As Integer)
|
||||
If nType <> FT.NULL Then
|
||||
If nType = FT.CNC Then
|
||||
nFlag = GetMainPrivateProfileInt(S_IMPORT, K_CNCFLAG, EIC_FL.NONE)
|
||||
Else
|
||||
nFlag = 0
|
||||
End If
|
||||
' Abilito progress e bottone stop
|
||||
Map.refMyStatusBarVM.StartLoading("", True)
|
||||
Else
|
||||
MessageBox.Show(Application.Current.MainWindow, 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)
|
||||
EgtZoom(ZM.ALL)
|
||||
' Disabilito progress e bottone stop
|
||||
Map.refMyStatusBarVM.EndLoading("")
|
||||
' Salvo path
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_LASTIMPDIR, Path.GetDirectoryName(sFile))
|
||||
' Segnalo eventuale errore
|
||||
If Not bOk Then
|
||||
Dim sMsg As String = EgtMsg(10006) & " '" & sFile & "'" 'Error importing file
|
||||
MessageBox.Show(Application.Current.MainWindow, sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
|
||||
ElseIf Path.GetExtension(sFile) <> ".cnc" Then
|
||||
' creo oggetto pezzo in lista
|
||||
'Map.refProjectVM.
|
||||
End If
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
|
||||
Private Sub PrepareInputBox(ByVal sTitle As String, ByVal sLabel As String, ByVal sCheckLabel As String,
|
||||
ByVal bShowCombo As Boolean, ByVal bShowBtn As Boolean)
|
||||
'Map.refFreeContourInputVM.PrepareInputBox(sTitle, sLabel, sCheckLabel, bShowCombo, bShowBtn)
|
||||
End Sub
|
||||
|
||||
Private Sub SetInputBoxText(ByVal sText As String)
|
||||
'Map.refFreeContourInputVM.SetInputBoxText(sText)
|
||||
End Sub
|
||||
|
||||
Private Sub SetInputBoxCheck(ByVal bCheck As Boolean)
|
||||
'Map.refFreeContourInputVM.SetInputBoxCheck(bCheck)
|
||||
End Sub
|
||||
|
||||
Private Sub AddInputBoxCombo(ByVal sText As String, ByVal bSelected As Boolean)
|
||||
'Map.refFreeContourInputVM.AddInputBoxCombo(sText, bSelected)
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateUI(ByVal sender As Object, ByVal bReloadUI As Boolean)
|
||||
'' pulisco input e relativi messaggi
|
||||
'Map.refFreeContourInputVM.ResetInputBox()
|
||||
If MainController.GetContinue() Then
|
||||
Map.refMyStatusBarVM.SetOutputMessage(EgtMsg(399)) ' Continue : 'L' with line, 'A' with arc
|
||||
Else
|
||||
Map.refMyStatusBarVM.ClearOutputMessage()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' CONTROLLER EVENTS
|
||||
|
||||
#Region "Part"
|
||||
|
||||
Friend Sub Basic_OnMouseDownScene(sender As Object, e As Forms.MouseEventArgs)
|
||||
' Verifico se selezionato indicativo di pezzo
|
||||
EgtSetObjFilterForSelWin(True, True, True, True, True)
|
||||
Dim nSel As Integer
|
||||
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
|
||||
Dim nId As Integer = EgtGetFirstObjInSelWin()
|
||||
While nId <> GDB_ID.NULL
|
||||
' Recupero l'identificativo del pezzo cui appartiene
|
||||
Dim nPartId As Integer = EgtGetParent(EgtGetParent(nId))
|
||||
Dim bFound As Boolean = False
|
||||
If EgtIsPart(nPartId) Then bFound = True
|
||||
If Not bFound Then
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
Continue While
|
||||
End If
|
||||
Dim nStat As Integer = GDB_ST.ON_
|
||||
EgtGetStatus(nPartId, nStat)
|
||||
' Se già selezionato
|
||||
If nStat = GDB_ST.SEL Then
|
||||
' Memorizzo Id da deselezionare
|
||||
m_nIdToDesel = nPartId
|
||||
Else
|
||||
' Memorizzo Id da selezionare
|
||||
m_nIdToSel = nPartId
|
||||
End If
|
||||
Exit While
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
' Dati per drag
|
||||
m_bDragToStart = True
|
||||
End Sub
|
||||
|
||||
Friend Sub Basic_OnMouseMoveScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
' Se drag non abilitato o già in esecuzione, esco
|
||||
If Not m_bDragToStart Then Return
|
||||
' Se primo movimento di drag, verifico di aver superato la soglia di movimento in pixel
|
||||
If m_bDragToStart Then
|
||||
If Math.Abs(e.Location.X - m_locPrev.X) < m_nRestRadius And
|
||||
Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
|
||||
Return
|
||||
End If
|
||||
m_bDragToStart = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Sub Basic_OnMouseUpScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
' Se eseguito drag
|
||||
If Not m_bDragToStart Then
|
||||
' Se selezione da eseguire
|
||||
ElseIf m_nIdToSel <> GDB_ID.NULL Then
|
||||
' Se pezzo da selezionare non è già selezionato
|
||||
'If EgtIsSelectedObj(m_nIdToSel) Then
|
||||
' Eseguo la selezione
|
||||
Map.refProjectVM.SelPartFromId(m_nIdToSel)
|
||||
'EgtDeselectAll()
|
||||
'EgtSelectPartObjs(m_nIdToSel)
|
||||
'EgtSelectObj(m_nIdToSel)
|
||||
'EgtSetMark(m_nIdToSel)
|
||||
'End If
|
||||
'If IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) OrElse Map.refProjectVM.BTLStructureVM.SelBTLPart.nPartId <> m_nIdToSel Then
|
||||
' ' Eseguo la selezione
|
||||
' For Each BTLPart In Map.refProjectVM.BTLStructureVM.BTLPartVMList
|
||||
' If BTLPart.nPartId = m_nIdToSel Then
|
||||
' BTLPart.SetIsSelected(True)
|
||||
' ElseIf BTLPart.IsSelected Then
|
||||
' BTLPart.SetIsSelected(False)
|
||||
' End If
|
||||
' Next
|
||||
' End If
|
||||
End If
|
||||
' Reset
|
||||
m_bDrag = False
|
||||
m_nIdToSel = GDB_ID.NULL
|
||||
m_nIdToDesel = GDB_ID.NULL
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
#End Region ' Part
|
||||
|
||||
End Class
|
||||
@@ -1,33 +0,0 @@
|
||||
<EgtWPFLib5:EgtCustomWindow x:Class="ImportWndV"
|
||||
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"
|
||||
xmlns:local="clr-namespace:Icarus">
|
||||
<DockPanel>
|
||||
<Grid DockPanel.Dock="Left">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<ListBox ItemsSource="{Binding ImportedEntityList}"
|
||||
SelectedItem="{Binding SelImportedEntity}"/>
|
||||
<StackPanel Grid.Row="1"
|
||||
Orientation="Horizontal">
|
||||
<Button Content="+"
|
||||
Command="{Binding AddPart_Command}"
|
||||
Style="{StaticResource ToolBar_Button}"/>
|
||||
<Button Content="-"
|
||||
Command="{Binding RemovePart_Command}"
|
||||
Style="{StaticResource ToolBar_Button}"/>
|
||||
<Button Content="Ref"
|
||||
Command="{Binding ChangeReference_Command}"
|
||||
Style="{StaticResource ToolBar_Button}"/>
|
||||
</StackPanel>
|
||||
<ListBox Grid.Row="2"
|
||||
ItemsSource="{Binding ImportPartList}"
|
||||
SelectedItem="{Binding SelImportPartList}"/>
|
||||
</Grid>
|
||||
<!--<local:ImportSceneHostV/>-->
|
||||
</DockPanel>
|
||||
</EgtWPFLib5:EgtCustomWindow>
|
||||
@@ -1,18 +0,0 @@
|
||||
Public Class ImportWndV
|
||||
|
||||
Private WithEvents m_ImportWndVM As ImportWndVM
|
||||
|
||||
Sub New(Owner As Window, ImportWndVM As ImportWndVM)
|
||||
MyBase.New(Owner)
|
||||
' This call is required by the designer.
|
||||
InitializeComponent()
|
||||
Me.DataContext = ImportWndVM
|
||||
' Assegno al riferimento locale al VM il VM preso dal DataContext
|
||||
m_ImportWndVM = ImportWndVM
|
||||
End Sub
|
||||
|
||||
'Private Sub CloseWindow(bDialogResult As Boolean) Handles m_ImportWndVM.m_CloseWindow
|
||||
' Me.DialogResult = bDialogResult
|
||||
'End Sub
|
||||
|
||||
End Class
|
||||
@@ -1,106 +0,0 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtUILib
|
||||
|
||||
Public Class ImportWndVM
|
||||
Inherits VMBase
|
||||
|
||||
Private m_ImportedEntityList As ObservableCollection(Of GeomEntity)
|
||||
Public ReadOnly Property ImportedEntityList As ObservableCollection(Of GeomEntity)
|
||||
Get
|
||||
Return m_ImportedEntityList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelImportedEntity As GeomEntity
|
||||
Public Property SelImportedEntity As GeomEntity
|
||||
Get
|
||||
Return m_SelImportedEntity
|
||||
End Get
|
||||
Set(value As GeomEntity)
|
||||
m_SelImportedEntity = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_ImportPartList As ObservableCollection(Of ImportPart)
|
||||
Public ReadOnly Property ImportPartList As ObservableCollection(Of ImportPart)
|
||||
Get
|
||||
Return m_ImportPartList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelImportPartList As ImportPart
|
||||
Public Property SelImportPartList As ImportPart
|
||||
Get
|
||||
Return m_SelImportPartList
|
||||
End Get
|
||||
Set(value As ImportPart)
|
||||
m_SelImportPartList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(sFilePath As String)
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class GeomEntity
|
||||
|
||||
Private m_nId As Integer = GDB_ID.NULL
|
||||
Public ReadOnly Property nId As Integer
|
||||
Get
|
||||
Return m_nId
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sName As String
|
||||
Public ReadOnly Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
End Property
|
||||
|
||||
End Class
|
||||
|
||||
Public Class ImportPart
|
||||
|
||||
Private m_sName As String
|
||||
Public Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_LayerList As List(Of ImportLayer)
|
||||
Public ReadOnly Property LayerList As List(Of ImportLayer)
|
||||
Get
|
||||
Return m_LayerList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
End Class
|
||||
|
||||
Public Class ImportLayer
|
||||
|
||||
Private m_sName As String
|
||||
Public Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_EntityList As List(Of GeomEntity)
|
||||
Public ReadOnly Property EntityList As List(Of GeomEntity)
|
||||
Get
|
||||
Return m_EntityList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
End Class
|
||||
@@ -6,6 +6,20 @@ Imports EgtWPFLib5
|
||||
Public Class MyInstrumentPanelVM
|
||||
Inherits InstrumentPanelVM
|
||||
|
||||
Private m_PrevSelObjs As New List(Of Integer)
|
||||
Friend ReadOnly Property PrevSelObjs As List(Of Integer)
|
||||
Get
|
||||
Return m_PrevSelObjs
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_PrevPage As Pages
|
||||
Friend ReadOnly Property PrevPage As Pages
|
||||
Get
|
||||
Return m_PrevPage
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_InstrumentPanel_IsEnabled As Boolean = True
|
||||
Public Property InstrumentPanel_IsEnabled As Boolean
|
||||
Get
|
||||
@@ -16,6 +30,114 @@ Public Class MyInstrumentPanelVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_bEdgeAnalysis_IsChecked As Boolean
|
||||
Public Property bEdgeAnalysis_IsChecked As Boolean
|
||||
Get
|
||||
Return m_bEdgeAnalysis_IsChecked
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
' verifico che non sia in corso un altro comando
|
||||
If Map.refSceneHostVM.MainController.GetStep <> 0 Then Return
|
||||
m_bEdgeAnalysis_IsChecked = value
|
||||
If value Then
|
||||
' salvo pagina precedente ed imposto pagina nulla
|
||||
m_PrevPage = Map.refTopPanelVM.SelPage
|
||||
Map.refTopPanelVM.SelPage = Pages.NULL
|
||||
' disabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
|
||||
Map.refProjManagerVM.SetProjCmdIsEnabled(False)
|
||||
Map.refTopPanelVM.SetTopPanelIsEnabled(False)
|
||||
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(False)
|
||||
Map.refSliceManagerVM.SetButtonsIsEnabled(False)
|
||||
Map.refSliderManagerVM.SetLayerIndexIsEnabled(False)
|
||||
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(False)
|
||||
' Disabilito segnalazione modificato
|
||||
Dim DisableMgr As New DisableModifiedMgr
|
||||
' salvo selezione precedente e deseleziono altri oggetti
|
||||
Dim nSelObjId As Integer = EgtGetFirstSelectedObj()
|
||||
While nSelObjId <> GDB_ID.NULL
|
||||
m_PrevSelObjs.Add(nSelObjId)
|
||||
nSelObjId = EgtGetNextSelectedObj()
|
||||
End While
|
||||
' eseguo comando su tutti i pezzi
|
||||
Dim sResult As String = "Chunk Number for every part:"
|
||||
For Each CurrPart In Map.refTopPanelVM.PartList
|
||||
EgtDeselectAll()
|
||||
Dim nPrintSolidId As Integer = EgtGetFirstInGroup(CurrPart.nPrintSolidLayerId)
|
||||
Dim nChunkLayerId As Integer = EgtGetFirstNameInGroup(CurrPart.nPartId, LAY_CHUNKS)
|
||||
If nChunkLayerId = GDB_ID.NULL Then
|
||||
nChunkLayerId = EgtCreateGroup(CurrPart.nPartId)
|
||||
EgtSetName(nChunkLayerId, LAY_CHUNKS)
|
||||
End If
|
||||
EgtSelectObj(nPrintSolidId)
|
||||
EgtSetCurrPartLayer(CurrPart.nPartId, nChunkLayerId)
|
||||
' estraggo bordi superficie
|
||||
Dim nCount As Integer = 0
|
||||
If EgtGetType(nPrintSolidId) = GDB_TY.SRF_FRGN Then
|
||||
For nChunk As Integer = 0 To EgtSurfFrChunkCount(nPrintSolidId) - 1
|
||||
EgtExtractSurfFrChunkLoops(nPrintSolidId, nChunk, nChunkLayerId, nCount)
|
||||
Next
|
||||
ElseIf EgtGetType(nPrintSolidId) = GDB_TY.SRF_MESH Then
|
||||
EgtExtractSurfTmLoops(nPrintSolidId, nChunkLayerId, nCount)
|
||||
ElseIf EgtGetType(nPrintSolidId) = GDB_TY.SRF_BEZ Then
|
||||
EgtExtractSurfBezierLoops(nPrintSolidId, nChunkLayerId, nCount)
|
||||
End If
|
||||
sResult &= Environment.NewLine & CurrPart.sName & " = " & nCount
|
||||
Next
|
||||
EgtDeselectAll()
|
||||
' li seleziono per evidenziarli
|
||||
For Each CurrPart In Map.refTopPanelVM.PartList
|
||||
Dim nChunkLayerId As Integer = EgtGetFirstNameInGroup(CurrPart.nPartId, LAY_CHUNKS)
|
||||
Dim nChunkId As Integer = EgtGetFirstInGroup(nChunkLayerId)
|
||||
While nChunkId <> GDB_ID.NULL
|
||||
EgtSelectObj(nChunkId)
|
||||
nChunkId = EgtGetNext(nChunkId)
|
||||
End While
|
||||
Next
|
||||
EgtDraw()
|
||||
' Ripristino stato segnalazione modifica
|
||||
DisableMgr.ReEnable()
|
||||
MessageBox.Show(sResult)
|
||||
Else
|
||||
' Disabilito segnalazione modificato
|
||||
Dim DisableMgr As New DisableModifiedMgr
|
||||
' cancello tutti i gruppi con i chunk
|
||||
For Each CurrPart In Map.refTopPanelVM.PartList
|
||||
Dim nChunkLayerId As Integer = EgtGetFirstNameInGroup(CurrPart.nPartId, LAY_CHUNKS)
|
||||
If nChunkLayerId <> GDB_ID.NULL Then EgtErase(nChunkLayerId)
|
||||
Next
|
||||
' ripristino selezioni precedenti
|
||||
For Each Id In m_PrevSelObjs
|
||||
EgtSelectObj(Id)
|
||||
Next
|
||||
' Ripristino stato segnalazione modifica
|
||||
DisableMgr.ReEnable()
|
||||
EgtDraw()
|
||||
' ripristino pagina precedente
|
||||
Map.refTopPanelVM.SelPage = m_PrevPage
|
||||
' riabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
|
||||
Map.refProjManagerVM.SetProjCmdIsEnabled(True)
|
||||
Map.refTopPanelVM.SetTopPanelIsEnabled(True)
|
||||
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(True)
|
||||
Map.refSliceManagerVM.SetButtonsIsEnabled(True)
|
||||
Map.refSliderManagerVM.SetLayerIndexIsEnabled(True)
|
||||
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(True)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_bEdgeAnalysis_IsEnabled As Boolean = True
|
||||
Public Property bEdgeAnalysis_IsEnabled As Boolean
|
||||
Get
|
||||
Return m_bEdgeAnalysis_IsEnabled
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bEdgeAnalysis_IsEnabled = value
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetEdgeAnalysisIsEnabled(value As Boolean)
|
||||
m_bEdgeAnalysis_IsEnabled = value
|
||||
NotifyPropertyChanged(NameOf(bEdgeAnalysis_IsEnabled))
|
||||
End Sub
|
||||
|
||||
#Region "CONSTRUCTORS"
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ Public Class Machining
|
||||
Public Enum MPAR_SLICINGTYPE As Integer
|
||||
VERTICAL = 1
|
||||
DEG45 = 2
|
||||
HORIZONTAL = 3
|
||||
DEG45_Y = 3
|
||||
HORIZONTAL = 4
|
||||
End Enum
|
||||
|
||||
Public Enum MPAR_STRANDORDERS As Integer
|
||||
@@ -38,6 +39,7 @@ Public Class Machining
|
||||
INTERNAL = 1
|
||||
EXTERNAL = 2
|
||||
UNBOUNDED = 3
|
||||
SUPPORT = 4
|
||||
End Enum
|
||||
|
||||
Public Enum MPAR_INFILL As Integer
|
||||
@@ -46,6 +48,11 @@ Public Class Machining
|
||||
ZIGZAG = 3
|
||||
End Enum
|
||||
|
||||
Public Enum MPAR_DYNAMIC_MODE As Integer
|
||||
STANDARD = 1
|
||||
FAST = 2
|
||||
End Enum
|
||||
|
||||
Protected m_CathegoryList As New ObservableCollection(Of MachiningCathegory)
|
||||
Public ReadOnly Property CathegoryList As ObservableCollection(Of MachiningCathegory)
|
||||
Get
|
||||
@@ -70,6 +77,9 @@ Public Class Machining
|
||||
Return m_nIndex
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetIndex(nValue As Integer)
|
||||
m_nIndex = nValue
|
||||
End Sub
|
||||
|
||||
Protected m_sGUID As String = ""
|
||||
Public Property sGUID As String
|
||||
@@ -184,11 +194,11 @@ Public Class Machining
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Friend Sub WriteParamsOnDb(nIndex As Integer)
|
||||
WriteMachiningParam(nIndex, MAC_GUID, m_sGUID)
|
||||
WriteMachiningParam(nIndex, MAC_NAME, m_sName)
|
||||
Friend Sub WriteParamsOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
||||
WriteMachiningParam(nIndex, MAC_GUID, m_sGUID, sFilePath)
|
||||
WriteMachiningParam(nIndex, MAC_NAME, m_sName, sFilePath)
|
||||
For Each Cathegory In m_CathegoryList
|
||||
Cathegory.WriteParamOnDb(nIndex)
|
||||
Cathegory.WriteParamOnDb(nIndex, sFilePath)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
@@ -303,8 +313,10 @@ Public Class MachiningCathegory
|
||||
New ComboMachiningParam(MachiningParam.Params.DIRECTION, nIndex),
|
||||
New NumericMachiningParam(MachiningParam.Params.FLOORCOUNT, nIndex),
|
||||
New NumericMachiningParam(MachiningParam.Params.G0FEED, nIndex),
|
||||
New NumericMachiningParam(MachiningParam.Params.G0FEEDZ, nIndex),
|
||||
New NumericMachiningParam(MachiningParam.Params.TOOLDIAM, nIndex),
|
||||
New NumericMachiningParam(MachiningParam.Params.FLOWRATE_PC, nIndex)})
|
||||
New NumericMachiningParam(MachiningParam.Params.FLOWRATE_PC, nIndex),
|
||||
New ComboMachiningParam(MachiningParam.Params.DYNAMIC_MODE, nIndex)})
|
||||
Case Cathegories.LINK
|
||||
m_sName = "Shell"
|
||||
m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.LINKTYPE, nIndex),
|
||||
@@ -320,8 +332,8 @@ Public Class MachiningCathegory
|
||||
New NumericMachiningParam(MachiningParam.Params.COASTINGLEN, nIndex),
|
||||
New NumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nIndex),
|
||||
New NumericMachiningParam(MachiningParam.Params.WIPELEN, nIndex),
|
||||
New NumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nIndex),
|
||||
New NumericMachiningParam(MachiningParam.Params.WIPEDIR, nIndex)})
|
||||
New NumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nIndex)})
|
||||
'New NumericMachiningParam(MachiningParam.Params.WIPEDIR, nIndex)})
|
||||
Case Cathegories.RIBS
|
||||
m_sName = "Ribs"
|
||||
m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.RIBSTYPE, nIndex),
|
||||
@@ -378,12 +390,12 @@ Public Class MachiningCathegory
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Friend Sub WriteParamOnDb(nIndex As Integer)
|
||||
Friend Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
||||
If Type = Cathegories.MATERIALS Then
|
||||
WriteMachiningParamSplit(nIndex, MAC_MATERIALS, "")
|
||||
WriteMachiningParamSplit(nIndex, MAC_MATERIALS, "", sFilePath)
|
||||
End If
|
||||
For Each Param In m_MachiningParamList
|
||||
Param.WriteParamOnDb(nIndex)
|
||||
Param.WriteParamOnDb(nIndex, sFilePath)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
@@ -418,37 +430,39 @@ Public MustInherit Class MachiningParam
|
||||
WIPEFEED_PC = 24
|
||||
FLOORCOUNT = 25
|
||||
G0FEED = 26
|
||||
TOOLDIAM = 27
|
||||
RIBSTYPE = 28
|
||||
RIBSOVERLAP = 29
|
||||
RIBSSTRANDCOUNT = 30
|
||||
RIBSLINK = 31
|
||||
RIBSINVERTORDER = 32
|
||||
RIBSINVERTDIRECTION = 33
|
||||
RIBSLEADININVERT = 34
|
||||
RIBSLEADINLEN = 35
|
||||
RIBSLEADOUTINVERT = 36
|
||||
RIBSLEADOUTLEN = 37
|
||||
RIBSLEADOUTCOASTING = 38
|
||||
RIBSLEADOUTWIPE = 39
|
||||
RIBSLEADOUTWIPEDIR = 40
|
||||
SHELLNBRDIFFERENCE = 41
|
||||
SHELLNBRCOASTING = 42
|
||||
SHELLNBRWIPE = 43
|
||||
SHELLNBRWIPEDIR = 44
|
||||
AUXSOLIDSOVERLAP = 45
|
||||
AUXSOLIDSINFILL = 46
|
||||
AUXSOLIDSSTRANDORDER = 47
|
||||
AUXSOLIDSLINKTYPE = 48
|
||||
AUXSOLIDSLINKPARAM = 49
|
||||
AUXSOLIDSSTARTPOINTOFFSETONSLICE = 50
|
||||
AUXSOLIDSCOASTINGLEN = 51
|
||||
AUXSOLIDSWIPELEN = 52
|
||||
AUXSOLIDSWIPEDIR = 53
|
||||
SPIRALVASE = 54
|
||||
WIPEDIR = 55
|
||||
STRANDOVERLAP = 56
|
||||
FLOWRATE_PC = 57
|
||||
G0FEEDZ = 27
|
||||
TOOLDIAM = 28
|
||||
RIBSTYPE = 29
|
||||
RIBSOVERLAP = 30
|
||||
RIBSSTRANDCOUNT = 31
|
||||
RIBSLINK = 32
|
||||
RIBSINVERTORDER = 33
|
||||
RIBSINVERTDIRECTION = 34
|
||||
RIBSLEADININVERT = 35
|
||||
RIBSLEADINLEN = 36
|
||||
RIBSLEADOUTINVERT = 37
|
||||
RIBSLEADOUTLEN = 38
|
||||
RIBSLEADOUTCOASTING = 39
|
||||
RIBSLEADOUTWIPE = 40
|
||||
RIBSLEADOUTWIPEDIR = 41
|
||||
SHELLNBRDIFFERENCE = 42
|
||||
SHELLNBRCOASTING = 43
|
||||
SHELLNBRWIPE = 44
|
||||
SHELLNBRWIPEDIR = 45
|
||||
AUXSOLIDSOVERLAP = 46
|
||||
AUXSOLIDSINFILL = 47
|
||||
AUXSOLIDSSTRANDORDER = 48
|
||||
AUXSOLIDSLINKTYPE = 49
|
||||
AUXSOLIDSLINKPARAM = 50
|
||||
AUXSOLIDSSTARTPOINTOFFSETONSLICE = 51
|
||||
AUXSOLIDSCOASTINGLEN = 52
|
||||
AUXSOLIDSWIPELEN = 53
|
||||
AUXSOLIDSWIPEDIR = 54
|
||||
SPIRALVASE = 55
|
||||
'WIPEDIR = 56
|
||||
STRANDOVERLAP = 57
|
||||
FLOWRATE_PC = 58
|
||||
DYNAMIC_MODE = 59
|
||||
MATERIALS = 100
|
||||
End Enum
|
||||
|
||||
@@ -519,6 +533,8 @@ Public MustInherit Class MachiningParam
|
||||
m_sName = "Floor Count"
|
||||
Case Params.G0FEED
|
||||
m_sName = "G0 Feed"
|
||||
Case Params.G0FEEDZ
|
||||
m_sName = "G0 Feed Z"
|
||||
Case Params.TOOLDIAM
|
||||
m_sName = "Nozzle Diameter"
|
||||
Case Params.RIBSTYPE
|
||||
@@ -575,12 +591,14 @@ Public MustInherit Class MachiningParam
|
||||
m_sName = "Wipe Direction [deg]"
|
||||
Case Params.SPIRALVASE
|
||||
m_sName = "Spiral Vase"
|
||||
Case Params.WIPEDIR
|
||||
m_sName = "Wipe Direction [deg]"
|
||||
'Case Params.WIPEDIR
|
||||
' m_sName = "Wipe Direction [deg]"
|
||||
Case Params.STRANDOVERLAP
|
||||
m_sName = "Strand Overlap [%]"
|
||||
Case Params.FLOWRATE_PC
|
||||
m_sName = "Flow rate [%]"
|
||||
Case Params.DYNAMIC_MODE
|
||||
m_sName = "Dynamic Mode"
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
@@ -589,7 +607,7 @@ Public MustInherit Class MachiningParam
|
||||
m_sName = sName
|
||||
End Sub
|
||||
|
||||
Friend MustOverride Sub WriteParamOnDb(nIndex As Integer)
|
||||
Friend MustOverride Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
||||
Friend Overridable Sub WriteParamInPart(nIndex As Integer)
|
||||
End Sub
|
||||
Friend MustOverride Sub SaveParam()
|
||||
@@ -610,15 +628,16 @@ Public Class NumericMachiningParam
|
||||
End Property
|
||||
Public Overridable Property sValue As String
|
||||
Get
|
||||
Return If(m_bIsLen, LenToString(m_dValue, 1), DoubleToString( m_dValue, 2))
|
||||
Return If(m_bIsLen, LenToString(m_dValue, 1), DoubleToString(m_dValue, 2))
|
||||
End Get
|
||||
Set(value As String)
|
||||
If m_bIsLen Then
|
||||
StringToLen(value, m_dValue)
|
||||
Else
|
||||
StringToDouble( value, m_dValue)
|
||||
StringToDouble(value, m_dValue)
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(sValue))
|
||||
Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -654,13 +673,13 @@ Public Class NumericMachiningParam
|
||||
m_bIsLen = True
|
||||
Case Params.STRANDCOUNT
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_STRANDCOUNT, 0)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.OFFSET
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_OFFSET, 0)
|
||||
m_bIsLen = True
|
||||
Case Params.STRANDOVERLAP
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_STRANDOVERLAP, 0)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.STARTPOINTOFFSETONSLICE
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_STARTPOINTOFFSETONSLICE, 0)
|
||||
m_bIsLen = True
|
||||
@@ -697,24 +716,27 @@ Public Class NumericMachiningParam
|
||||
Case Params.WIPEFEED_PC
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_WIPEFEEDPU, 0)
|
||||
m_bIsLen = False
|
||||
Case Params.WIPEDIR
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_WIPEDIR, 0)
|
||||
m_bIsLen = True
|
||||
'Case Params.WIPEDIR
|
||||
' m_dValue = ReadMachiningParamDouble(nIndex, MAC_WIPEDIR, 0)
|
||||
' m_bIsLen = True
|
||||
Case Params.FLOORCOUNT
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_FLOORCOUNT, 0)
|
||||
m_bIsLen = False
|
||||
Case Params.G0FEED
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_G0FEED, 0)
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_G0FEED, 10000)
|
||||
m_bIsLen = True
|
||||
Case Params.G0FEEDZ
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_G0FEEDZ, 1000)
|
||||
m_bIsLen = True
|
||||
Case Params.TOOLDIAM
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_TOOLDIAM, 0)
|
||||
m_bIsLen = True
|
||||
Case Params.RIBSOVERLAP
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSOVERLAP, 0)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.RIBSSTRANDCOUNT
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSSTRANDCOUNT, 0)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.RIBSLEADINLEN
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADINLEN, 0)
|
||||
m_bIsLen = True
|
||||
@@ -729,10 +751,10 @@ Public Class NumericMachiningParam
|
||||
m_bIsLen = True
|
||||
Case Params.RIBSLEADOUTWIPEDIR
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLEADOUTWIPEDIR, 0)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.SHELLNBRDIFFERENCE
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SHELLNBRDIFFERENCE, 0)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.SHELLNBRCOASTING
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SHELLNBRCOASTING, 0)
|
||||
m_bIsLen = True
|
||||
@@ -741,10 +763,10 @@ Public Class NumericMachiningParam
|
||||
m_bIsLen = True
|
||||
Case Params.SHELLNBRWIPEDIR
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SHELLNBRWIPEDIR, 0)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.AUXSOLIDSOVERLAP
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSOVERLAP, 0)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.AUXSOLIDSLINKPARAM
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSLINKPARAM, 0)
|
||||
m_bIsLen = True
|
||||
@@ -759,7 +781,7 @@ Public Class NumericMachiningParam
|
||||
m_bIsLen = True
|
||||
Case Params.AUXSOLIDSWIPEDIR
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSWIPEDIR, 0)
|
||||
m_bIsLen = True
|
||||
m_bIsLen = False
|
||||
Case Params.FLOWRATE_PC
|
||||
m_dValue = ReadMachiningParamDouble(nIndex, MAC_CONSTANT, 100)
|
||||
m_bIsLen = False
|
||||
@@ -768,7 +790,7 @@ Public Class NumericMachiningParam
|
||||
m_dOrigValue = m_dValue
|
||||
End Sub
|
||||
|
||||
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
|
||||
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
||||
Dim sWriteValue As String = ""
|
||||
If m_bIsLen Then
|
||||
sWriteValue = LenToString(m_dValue, 2)
|
||||
@@ -777,83 +799,85 @@ Public Class NumericMachiningParam
|
||||
End If
|
||||
Select Case Type
|
||||
Case Params.STRANDH
|
||||
WriteMachiningParam(nIndex, MAC_STRANDH, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_STRANDH, sWriteValue, sFilePath)
|
||||
Case Params.STRANDW
|
||||
WriteMachiningParam(nIndex, MAC_STRANDW, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_STRANDW, sWriteValue, sFilePath)
|
||||
Case Params.STRANDCOUNT
|
||||
WriteMachiningParam(nIndex, MAC_STRANDCOUNT, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_STRANDCOUNT, sWriteValue, sFilePath)
|
||||
Case Params.OFFSET
|
||||
WriteMachiningParam(nIndex, MAC_OFFSET, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_OFFSET, sWriteValue, sFilePath)
|
||||
Case Params.STRANDOVERLAP
|
||||
WriteMachiningParam(nIndex, MAC_STRANDOVERLAP, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_STRANDOVERLAP, sWriteValue, sFilePath)
|
||||
Case Params.STARTPOINTOFFSETONSLICE
|
||||
WriteMachiningParam(nIndex, MAC_STARTPOINTOFFSETONSLICE, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_STARTPOINTOFFSETONSLICE, sWriteValue, sFilePath)
|
||||
Case Params.LINKPARAM
|
||||
WriteMachiningParam(nIndex, MAC_LINKPARAM, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_LINKPARAM, sWriteValue, sFilePath)
|
||||
Case Params.LINKZUP
|
||||
WriteMachiningParam(nIndex, MAC_LINKZUP, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_LINKZUP, sWriteValue, sFilePath)
|
||||
Case Params.OFFSETLEADPOINT
|
||||
WriteMachiningParam(nIndex, MAC_OFFSETLEADPOINT, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_OFFSETLEADPOINT, sWriteValue, sFilePath)
|
||||
Case Params.LEADINTANGDIST
|
||||
WriteMachiningParam(nIndex, MAC_LEADINTANGDIST, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_LEADINTANGDIST, sWriteValue, sFilePath)
|
||||
Case Params.LEADINORTHODIST
|
||||
WriteMachiningParam(nIndex, MAC_LEADINORTHODIST, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_LEADINORTHODIST, sWriteValue, sFilePath)
|
||||
Case Params.LEADOUTTANGDIST
|
||||
WriteMachiningParam(nIndex, MAC_LEADOUTTANGDIST, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_LEADOUTTANGDIST, sWriteValue, sFilePath)
|
||||
Case Params.LEADOUTORTHODIST
|
||||
WriteMachiningParam(nIndex, MAC_LEADOUTORTHODIST, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_LEADOUTORTHODIST, sWriteValue, sFilePath)
|
||||
Case Params.COASTINGLEN
|
||||
WriteMachiningParam(nIndex, MAC_COASTINGLEN, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_COASTINGLEN, sWriteValue, sFilePath)
|
||||
Case Params.COASTINGFEED_PC
|
||||
WriteMachiningParam(nIndex, MAC_COASTINGFEEDPU, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_COASTINGFEEDPU, sWriteValue, sFilePath)
|
||||
Case Params.WIPELEN
|
||||
WriteMachiningParam(nIndex, MAC_WIPELEN, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_WIPELEN, sWriteValue, sFilePath)
|
||||
Case Params.WIPEFEED_PC
|
||||
WriteMachiningParam(nIndex, MAC_WIPEFEEDPU, sWriteValue)
|
||||
Case Params.WIPEDIR
|
||||
WriteMachiningParam(nIndex, MAC_WIPEDIR, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_WIPEFEEDPU, sWriteValue, sFilePath)
|
||||
'Case Params.WIPEDIR
|
||||
' WriteMachiningParam(nIndex, MAC_WIPEDIR, sWriteValue, sFilePath)
|
||||
Case Params.FLOORCOUNT
|
||||
WriteMachiningParam(nIndex, MAC_FLOORCOUNT, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_FLOORCOUNT, sWriteValue, sFilePath)
|
||||
Case Params.G0FEED
|
||||
WriteMachiningParam(nIndex, MAC_G0FEED, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_G0FEED, sWriteValue, sFilePath)
|
||||
Case Params.G0FEEDZ
|
||||
WriteMachiningParam(nIndex, MAC_G0FEEDZ, sWriteValue, sFilePath)
|
||||
Case Params.TOOLDIAM
|
||||
WriteMachiningParam(nIndex, MAC_TOOLDIAM, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_TOOLDIAM, sWriteValue, sFilePath)
|
||||
Case Params.RIBSOVERLAP
|
||||
WriteMachiningParam(nIndex, MAC_RIBSOVERLAP, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_RIBSOVERLAP, sWriteValue, sFilePath)
|
||||
Case Params.RIBSSTRANDCOUNT
|
||||
WriteMachiningParam(nIndex, MAC_RIBSSTRANDCOUNT, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_RIBSSTRANDCOUNT, sWriteValue, sFilePath)
|
||||
Case Params.RIBSLEADINLEN
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADINLEN, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADINLEN, sWriteValue, sFilePath)
|
||||
Case Params.RIBSLEADOUTLEN
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTLEN, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTLEN, sWriteValue, sFilePath)
|
||||
Case Params.RIBSLEADOUTCOASTING
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTCOASTING, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTCOASTING, sWriteValue, sFilePath)
|
||||
Case Params.RIBSLEADOUTWIPE
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTWIPE, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTWIPE, sWriteValue, sFilePath)
|
||||
Case Params.RIBSLEADOUTWIPEDIR
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTWIPEDIR, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTWIPEDIR, sWriteValue, sFilePath)
|
||||
Case Params.SHELLNBRDIFFERENCE
|
||||
WriteMachiningParam(nIndex, MAC_SHELLNBRDIFFERENCE, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_SHELLNBRDIFFERENCE, sWriteValue, sFilePath)
|
||||
Case Params.SHELLNBRCOASTING
|
||||
WriteMachiningParam(nIndex, MAC_SHELLNBRCOASTING, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_SHELLNBRCOASTING, sWriteValue, sFilePath)
|
||||
Case Params.SHELLNBRWIPE
|
||||
WriteMachiningParam(nIndex, MAC_SHELLNBRWIPE, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_SHELLNBRWIPE, sWriteValue, sFilePath)
|
||||
Case Params.SHELLNBRWIPEDIR
|
||||
WriteMachiningParam(nIndex, MAC_SHELLNBRWIPEDIR, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_SHELLNBRWIPEDIR, sWriteValue, sFilePath)
|
||||
Case Params.AUXSOLIDSOVERLAP
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSOVERLAP, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSOVERLAP, sWriteValue, sFilePath)
|
||||
Case Params.AUXSOLIDSLINKPARAM
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSLINKPARAM, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSLINKPARAM, sWriteValue, sFilePath)
|
||||
Case Params.AUXSOLIDSSTARTPOINTOFFSETONSLICE
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSSTARTPOINTOFFSETONSLICE, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSSTARTPOINTOFFSETONSLICE, sWriteValue, sFilePath)
|
||||
Case Params.AUXSOLIDSCOASTINGLEN
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSCOASTINGLEN, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSCOASTINGLEN, sWriteValue, sFilePath)
|
||||
Case Params.AUXSOLIDSWIPELEN
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSWIPELEN, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSWIPELEN, sWriteValue, sFilePath)
|
||||
Case Params.AUXSOLIDSWIPEDIR
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSWIPEDIR, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSWIPEDIR, sWriteValue, sFilePath)
|
||||
Case Params.FLOWRATE_PC
|
||||
WriteMachiningParam(nIndex, MAC_CONSTANT, sWriteValue)
|
||||
WriteMachiningParam(nIndex, MAC_CONSTANT, sWriteValue, sFilePath)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
@@ -879,6 +903,7 @@ Public Class StringMachiningParam
|
||||
Set(value As String)
|
||||
m_sValue = value
|
||||
NotifyPropertyChanged(NameOf(sValue))
|
||||
Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -901,10 +926,10 @@ Public Class StringMachiningParam
|
||||
m_sOrigValue = m_sValue
|
||||
End Sub
|
||||
|
||||
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
|
||||
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
||||
Select Case Type
|
||||
Case Params.STRANDH
|
||||
'WritePrivateProfileString(nIndex, MAC_STRANDH, sWriteValue)
|
||||
'WritePrivateProfileString(nIndex, MAC_STRANDH, sWriteValue, sFilePath)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
@@ -937,6 +962,7 @@ Public Class ComboMachiningParam
|
||||
Set(value As IdNameStruct)
|
||||
m_SelValue = value
|
||||
NotifyPropertyChanged(NameOf(SelValue))
|
||||
Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -965,11 +991,16 @@ Public Class ComboMachiningParam
|
||||
Else
|
||||
Select Case Type
|
||||
Case Params.SLICINGTYPE
|
||||
Dim nHorizontalPrint As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_HORIZONTAL_PRINT, 0, CurrentMachine.sMachIniFile)
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical"),
|
||||
New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45°")})
|
||||
If nHorizontalPrint > 0 Then
|
||||
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal"))
|
||||
Dim nSlicingType As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_SLICINGTYPE, 0, CurrentMachine.sMachIniFile)
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical")})
|
||||
If nSlicingType >= 1 Then
|
||||
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45deg X"))
|
||||
If nSlicingType >= 2 Then
|
||||
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45_Y, "45deg Y"))
|
||||
If nSlicingType >= 3 Then
|
||||
m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal"))
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Dim nSelValue As Double = ReadMachiningParamDouble(nIndex, MAC_SLICINGTYPE, -1)
|
||||
If nSelValue = -1 Then
|
||||
@@ -980,73 +1011,80 @@ Public Class ComboMachiningParam
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = nSelValue)
|
||||
Case Params.STRANDORDER
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_STRANDORDERS.OUTTOIN, "From Outside To Inside"),
|
||||
New IdNameStruct(Machining.MPAR_STRANDORDERS.INTOOUT, "From Inside To Outside")})
|
||||
New IdNameStruct(Machining.MPAR_STRANDORDERS.INTOOUT, "From Inside To Outside")})
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_STRANDORDER, 0))
|
||||
Case Params.DIRECTION
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_DIRECTIONS.CCW, "Counterclockwise"),
|
||||
New IdNameStruct(Machining.MPAR_DIRECTIONS.CW, "Clockwise")})
|
||||
New IdNameStruct(Machining.MPAR_DIRECTIONS.CW, "Clockwise")})
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_DIRECTION, 0))
|
||||
Case Params.LINKTYPE
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_LINKTYPES.NONE, "None"),
|
||||
New IdNameStruct(Machining.MPAR_LINKTYPES.LINEAR, "Linear"),
|
||||
New IdNameStruct(Machining.MPAR_LINKTYPES.BIARC, "Biarc")})
|
||||
New IdNameStruct(Machining.MPAR_LINKTYPES.LINEAR, "Linear"),
|
||||
New IdNameStruct(Machining.MPAR_LINKTYPES.BIARC, "Biarc")})
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_LINKTYPE, 0))
|
||||
Case Params.LEADIN
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_LEADINOUT.NONE, "None"),
|
||||
New IdNameStruct(Machining.MPAR_LEADINOUT.LINEAR, "Linear"),
|
||||
New IdNameStruct(Machining.MPAR_LEADINOUT.ARC, "Arc")})
|
||||
New IdNameStruct(Machining.MPAR_LEADINOUT.LINEAR, "Linear"),
|
||||
New IdNameStruct(Machining.MPAR_LEADINOUT.ARC, "Arc")})
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_LEADIN, 0))
|
||||
Case Params.LEADOUT
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_LEADINOUT.NONE, "None"),
|
||||
New IdNameStruct(Machining.MPAR_LEADINOUT.LINEAR, "Linear"),
|
||||
New IdNameStruct(Machining.MPAR_LEADINOUT.ARC, "Arc")})
|
||||
New IdNameStruct(Machining.MPAR_LEADINOUT.LINEAR, "Linear"),
|
||||
New IdNameStruct(Machining.MPAR_LEADINOUT.ARC, "Arc")})
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_LEADOUT, 0))
|
||||
Case Params.RIBSTYPE
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_RIBSTYPE.INTERNAL, "Internal"),
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.EXTERNAL, "External"),
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.UNBOUNDED, "Unbounded")})
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.EXTERNAL, "External"),
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.UNBOUNDED, "Unbounded"),
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.SUPPORT, "Support")})
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_RIBSTYPE, 1))
|
||||
Case Params.AUXSOLIDSINFILL
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_INFILL.NONE, "None"),
|
||||
New IdNameStruct(Machining.MPAR_INFILL.OFFSET, "Offset"),
|
||||
New IdNameStruct(Machining.MPAR_INFILL.ZIGZAG, "ZigZag")})
|
||||
New IdNameStruct(Machining.MPAR_INFILL.OFFSET, "Offset"),
|
||||
New IdNameStruct(Machining.MPAR_INFILL.ZIGZAG, "ZigZag")})
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSINFILL, 0))
|
||||
Case Params.AUXSOLIDSSTRANDORDER
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_STRANDORDERS.OUTTOIN, "From Outside To Inside"),
|
||||
New IdNameStruct(Machining.MPAR_STRANDORDERS.INTOOUT, "From Inside To Outside")})
|
||||
New IdNameStruct(Machining.MPAR_STRANDORDERS.INTOOUT, "From Inside To Outside")})
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSSTRANDORDER, 0))
|
||||
Case Params.AUXSOLIDSLINKTYPE
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_LINKTYPES.NONE, "None"),
|
||||
New IdNameStruct(Machining.MPAR_LINKTYPES.LINEAR, "Linear"),
|
||||
New IdNameStruct(Machining.MPAR_LINKTYPES.BIARC, "Biarc")})
|
||||
New IdNameStruct(Machining.MPAR_LINKTYPES.LINEAR, "Linear"),
|
||||
New IdNameStruct(Machining.MPAR_LINKTYPES.BIARC, "Biarc")})
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_AUXSOLIDSLINKTYPE, 0))
|
||||
Case Params.DYNAMIC_MODE
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_DYNAMIC_MODE.STANDARD, "Standard"),
|
||||
New IdNameStruct(Machining.MPAR_DYNAMIC_MODE.FAST, "Fast")})
|
||||
m_SelValue = m_ValueList.FirstOrDefault(Function(x) x.Id = ReadMachiningParamDouble(nIndex, MAC_DYNAMICMODE, 1))
|
||||
End Select
|
||||
End If
|
||||
m_OrigSelValue = m_SelValue
|
||||
End Sub
|
||||
|
||||
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
|
||||
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
||||
Select Case Type
|
||||
Case Params.SLICINGTYPE
|
||||
WriteMachiningParam(nIndex, MAC_SLICINGTYPE, m_SelValue.Id)
|
||||
WriteMachiningParam(nIndex, MAC_SLICINGTYPE, m_SelValue.Id, sFilePath)
|
||||
Case Params.STRANDORDER
|
||||
WriteMachiningParam(nIndex, MAC_STRANDORDER, m_SelValue.Id)
|
||||
WriteMachiningParam(nIndex, MAC_STRANDORDER, m_SelValue.Id, sFilePath)
|
||||
Case Params.DIRECTION
|
||||
WriteMachiningParam(nIndex, MAC_DIRECTION, m_SelValue.Id)
|
||||
WriteMachiningParam(nIndex, MAC_DIRECTION, m_SelValue.Id, sFilePath)
|
||||
Case Params.LINKTYPE
|
||||
WriteMachiningParam(nIndex, MAC_LINKTYPE, m_SelValue.Id)
|
||||
WriteMachiningParam(nIndex, MAC_LINKTYPE, m_SelValue.Id, sFilePath)
|
||||
Case Params.LEADIN
|
||||
WriteMachiningParam(nIndex, MAC_LEADIN, m_SelValue.Id)
|
||||
WriteMachiningParam(nIndex, MAC_LEADIN, m_SelValue.Id, sFilePath)
|
||||
Case Params.LEADOUT
|
||||
WriteMachiningParam(nIndex, MAC_LEADOUT, m_SelValue.Id)
|
||||
WriteMachiningParam(nIndex, MAC_LEADOUT, m_SelValue.Id, sFilePath)
|
||||
Case Params.RIBSTYPE
|
||||
WriteMachiningParam(nIndex, MAC_RIBSTYPE, m_SelValue.Id)
|
||||
WriteMachiningParam(nIndex, MAC_RIBSTYPE, m_SelValue.Id, sFilePath)
|
||||
Case Params.AUXSOLIDSINFILL
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSINFILL, m_SelValue.Id)
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSINFILL, m_SelValue.Id, sFilePath)
|
||||
Case Params.AUXSOLIDSSTRANDORDER
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSSTRANDORDER, m_SelValue.Id)
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSSTRANDORDER, m_SelValue.Id, sFilePath)
|
||||
Case Params.AUXSOLIDSLINKTYPE
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSLINKTYPE, m_SelValue.Id)
|
||||
WriteMachiningParam(nIndex, MAC_AUXSOLIDSLINKTYPE, m_SelValue.Id, sFilePath)
|
||||
Case Params.DYNAMIC_MODE
|
||||
WriteMachiningParam(nIndex, MAC_DYNAMICMODE, m_SelValue.Id, sFilePath)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
@@ -1072,6 +1110,7 @@ Public Class CheckMachiningParam
|
||||
Set(value As Boolean)
|
||||
m_bValue = value
|
||||
NotifyPropertyChanged(NameOf(bValue))
|
||||
Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -1115,20 +1154,20 @@ Public Class CheckMachiningParam
|
||||
m_bOrigValue = m_bValue
|
||||
End Sub
|
||||
|
||||
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
|
||||
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
||||
Select Case Type
|
||||
Case Params.SPIRALVASE
|
||||
WriteMachiningParam(nIndex, MAC_SPIRALVASE, If(m_bValue, 1, 0))
|
||||
WriteMachiningParam(nIndex, MAC_SPIRALVASE, If(m_bValue, 1, 0), sFilePath)
|
||||
Case Params.RIBSLINK
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLINK, If(m_bValue, 1, 0))
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLINK, If(m_bValue, 1, 0), sFilePath)
|
||||
Case Params.RIBSINVERTORDER
|
||||
WriteMachiningParam(nIndex, MAC_RIBSINVERTORDER, If(m_bValue, 1, 0))
|
||||
WriteMachiningParam(nIndex, MAC_RIBSINVERTORDER, If(m_bValue, 1, 0), sFilePath)
|
||||
Case Params.RIBSINVERTDIRECTION
|
||||
WriteMachiningParam(nIndex, MAC_RIBSINVERTDIRECTION, If(m_bValue, 1, 0))
|
||||
WriteMachiningParam(nIndex, MAC_RIBSINVERTDIRECTION, If(m_bValue, 1, 0), sFilePath)
|
||||
Case Params.RIBSLEADININVERT
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADININVERT, If(m_bValue, 1, 0))
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADININVERT, If(m_bValue, 1, 0), sFilePath)
|
||||
Case Params.RIBSLEADOUTINVERT
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTINVERT, If(m_bValue, 1, 0))
|
||||
WriteMachiningParam(nIndex, MAC_RIBSLEADOUTINVERT, If(m_bValue, 1, 0), sFilePath)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
@@ -1164,6 +1203,7 @@ Public Class MaterialMachiningParam
|
||||
Set(value As Boolean)
|
||||
m_bValue = value
|
||||
NotifyPropertyChanged(NameOf(bValue))
|
||||
Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -1187,9 +1227,9 @@ Public Class MaterialMachiningParam
|
||||
m_bOrigValue = m_bValue
|
||||
End Sub
|
||||
|
||||
Friend Overrides Sub WriteParamOnDb(nIndex As Integer)
|
||||
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
|
||||
Dim sMaterials As String = ""
|
||||
ReadMachiningParamSplit(nIndex, MAC_MATERIALS, "", sMaterials)
|
||||
ReadMachiningParamSplit(nIndex, MAC_MATERIALS, "", sMaterials, sFilePath)
|
||||
Dim MaterialGuidList As New List(Of String)
|
||||
If Not String.IsNullOrWhiteSpace(sMaterials) Then
|
||||
MaterialGuidList = sMaterials.Split(";"c).ToList()
|
||||
@@ -1203,7 +1243,7 @@ Public Class MaterialMachiningParam
|
||||
For Index = 0 To MaterialGuidList.Count - 1
|
||||
sMaterials &= MaterialGuidList(Index) & If(Index < MaterialGuidList.Count - 1, ";"c, "")
|
||||
Next
|
||||
WriteMachiningParamSplit(nIndex, MAC_MATERIALS, sMaterials)
|
||||
WriteMachiningParamSplit(nIndex, MAC_MATERIALS, sMaterials, sFilePath)
|
||||
End Sub
|
||||
|
||||
Friend Overrides Sub SaveParam()
|
||||
|
||||
@@ -14,20 +14,43 @@
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<UniformGrid Rows="1">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Content="New"
|
||||
Command="{Binding New_Command}"
|
||||
IsEnabled="{Binding IsEnabled}"
|
||||
Style="{StaticResource ToolBar_TextButton}"/>
|
||||
<Button Content="Save"
|
||||
Grid.Column="1"
|
||||
Command="{Binding Save_Command}"
|
||||
IsEnabled="{Binding IsEnabled}"
|
||||
Style="{StaticResource ToolBar_TextButton}"/>
|
||||
<Button Content="Delete"
|
||||
Grid.Column="2"
|
||||
Command="{Binding Delete_Command}"
|
||||
IsEnabled="{Binding IsEnabled}"
|
||||
Style="{StaticResource ToolBar_TextButton}"/>
|
||||
</UniformGrid>
|
||||
<Button Grid.Column="3"
|
||||
Command="{Binding Import_Command}"
|
||||
ToolTip="{Binding ImportToolTip}"
|
||||
IsEnabled="{Binding ImpExp_IsEnabled}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/MachiningDB/Import.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Grid.Column="4"
|
||||
Command="{Binding Export_Command}"
|
||||
ToolTip="{Binding ImportToolTip}"
|
||||
IsEnabled="{Binding ImpExp_IsEnabled}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/MachiningDB/Export.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
|
||||
@@ -26,7 +26,7 @@ Public Class MachiningDbVM
|
||||
' verifico se modificato
|
||||
If m_SelMachining.bIsModified Then
|
||||
' chiedo se salvare
|
||||
Select Case MessageBox.Show("Salvare le modifiche apportate alla lavorazione selezionata?", "Info", MessageBoxButton.YesNoCancel, MessageBoxImage.Question)
|
||||
Select Case MessageBox.Show("Do you want to save the modification done on the selected machining?", "Info", MessageBoxButton.YesNoCancel, MessageBoxImage.Question)
|
||||
Case MessageBoxResult.Yes
|
||||
m_SelMachining.Save()
|
||||
Case MessageBoxResult.No
|
||||
@@ -50,6 +50,7 @@ Public Class MachiningDbVM
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(ImpExp_IsEnabled))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -105,12 +106,20 @@ Public Class MachiningDbVM
|
||||
NotifyPropertyChanged(NameOf(UserShouldEditValueNow))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property ImpExp_IsEnabled As Boolean
|
||||
Get
|
||||
Return m_IsEnabled AndAlso (IsNothing(m_SelMachining) OrElse Not m_SelMachining.bIsModified)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdOk As ICommand
|
||||
Private m_cmdNew As ICommand
|
||||
Private m_cmdSave As ICommand
|
||||
Private m_cmdDelete As ICommand
|
||||
Private m_cmdEditName As ICommand
|
||||
Private m_cmdImport As ICommand
|
||||
Private m_cmdExport As ICommand
|
||||
|
||||
#End Region ' FIELDS & PROPERTIES
|
||||
|
||||
@@ -138,6 +147,7 @@ Public Class MachiningDbVM
|
||||
GetMainPrivateProfileString(S_PRINTING3D, K_CURRMACHINING, "", sCurrMachining)
|
||||
m_SelMachining = MachiningList.FirstOrDefault(Function(x) x.sGUID = sCurrMachining)
|
||||
NotifyPropertyChanged(NameOf(SelMachining))
|
||||
NotifyPropertyChanged(NameOf(ImpExp_IsEnabled))
|
||||
End Sub
|
||||
|
||||
Friend Sub SetNameVisibility(bValue As Boolean)
|
||||
@@ -213,7 +223,7 @@ Public Class MachiningDbVM
|
||||
' aggiorno combo top
|
||||
Dim CurrSelTopMachining As MachiningIndex = Map.refTopPanelVM.SelMachining
|
||||
Map.refTopPanelVM.InitMachiningsList()
|
||||
Map.refTopPanelVM.SetSelMachining( CurrSelTopMachining)
|
||||
Map.refTopPanelVM.SetSelMachining(CurrSelTopMachining)
|
||||
End If
|
||||
' ripristino modalita' standard
|
||||
Map.refTopPanelVM.SelPage = Pages.MODIFY
|
||||
@@ -239,6 +249,7 @@ Public Class MachiningDbVM
|
||||
m_SelMachining = NewMachining
|
||||
NotifyPropertyChanged(NameOf(SelMachining))
|
||||
SetNameVisibility(True)
|
||||
SetIsModified(True)
|
||||
End Sub
|
||||
|
||||
#End Region ' New
|
||||
@@ -255,8 +266,9 @@ Public Class MachiningDbVM
|
||||
End Property
|
||||
|
||||
Public Sub Save()
|
||||
If IsNothing( m_SelMachining) Then Return
|
||||
If IsNothing(m_SelMachining) Then Return
|
||||
m_SelMachining.Save()
|
||||
NotifyPropertyChanged(NameOf(ImpExp_IsEnabled))
|
||||
End Sub
|
||||
|
||||
#End Region ' Save
|
||||
@@ -275,7 +287,7 @@ Public Class MachiningDbVM
|
||||
Public Sub Delete()
|
||||
If IsNothing(m_SelMachining) Then Return
|
||||
' chiedo conferma
|
||||
Select Case MessageBox.Show("Sei sicuro di voler cancellare la lavorazione selezionata?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning)
|
||||
Select Case MessageBox.Show("Are you sure you want to delete the selected machining?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning)
|
||||
Case MessageBoxResult.Yes
|
||||
m_MachiningList.Remove(m_SelMachining)
|
||||
SetIsModified(True)
|
||||
@@ -305,6 +317,49 @@ Public Class MachiningDbVM
|
||||
|
||||
#End Region ' EditName
|
||||
|
||||
#Region "Import"
|
||||
|
||||
Public ReadOnly Property Import_Command As ICommand
|
||||
Get
|
||||
If m_cmdImport Is Nothing Then
|
||||
m_cmdImport = New Command(AddressOf Import)
|
||||
End If
|
||||
Return m_cmdImport
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Import()
|
||||
' chiedo il nome del file .data da aprire
|
||||
Dim OpenFileDlg As New System.Windows.Forms.OpenFileDialog() With {
|
||||
.Title = EgtMsg(31451) & " " & EgtMsg(31452),
|
||||
.Filter = "File data (*.data)|*.data|Tutti i file (*.*)|*.*",
|
||||
.FileName = String.Empty
|
||||
}
|
||||
If OpenFileDlg.ShowDialog() <> System.Windows.Forms.DialogResult.OK Then Return
|
||||
Dim ImportWindow As New ImportExportMachiningPanelV(Application.Current.MainWindow, New ImportExportMachiningPanelVM(OpenFileDlg.FileName))
|
||||
ImportWindow.ShowDialog()
|
||||
End Sub
|
||||
|
||||
#End Region ' Import
|
||||
|
||||
#Region "Export"
|
||||
|
||||
Public ReadOnly Property Export_Command As ICommand
|
||||
Get
|
||||
If m_cmdExport Is Nothing Then
|
||||
m_cmdExport = New Command(AddressOf Export)
|
||||
End If
|
||||
Return m_cmdExport
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Export()
|
||||
Dim ExportWindow As New ImportExportMachiningPanelV(Application.Current.MainWindow, New ImportExportMachiningPanelVM)
|
||||
ExportWindow.ShowDialog()
|
||||
End Sub
|
||||
|
||||
#End Region ' Export
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
End Class
|
||||
|
||||
@@ -195,8 +195,8 @@ Public Class MainWindowM
|
||||
' Verifico abilitazione nesting automatico
|
||||
m_bAutoNestOption = Not String.IsNullOrWhiteSpace(sNestKey)
|
||||
' Recupero livello e opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(3279, 2410, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(3279, 2410, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(5583, 2501, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(5583, 2501, 1, m_nKeyOptions)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
||||
m_sLogFile = m_sTempDir & "\" & GENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
End If
|
||||
Case GetType(ManagePart_Layer)
|
||||
LayerItem = DirectCast(e.OriginalSource.DataContext, ManagePart_Layer)
|
||||
e.Handled = True
|
||||
If LayerItem.Type <> ManagePart_Layer.LayerType.PRINT_SOLID OrElse LayerItem.MenuList.Count = 0 Then
|
||||
e.Handled = True
|
||||
End If
|
||||
Case GetType(PartManager_GeomEntity)
|
||||
EntityItem = DirectCast(e.OriginalSource.DataContext, PartManager_GeomEntity)
|
||||
If EntityItem.MenuList.Count = 0 Then
|
||||
|
||||
@@ -310,13 +310,14 @@ Public Class ManagePartPanelVM
|
||||
Case ManagePart_Layer.LayerType.PRINT_SOLID
|
||||
nPrintPartLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nPrintPartLayerId, PRINT_SOLID)
|
||||
EgtSetColor(nPrintPartLayerId, GeomEntityColors.c3Print)
|
||||
If ManagePart_Layer.EntityList.Count > 0 Then
|
||||
PrintSolidEntity = ManagePart_Layer.EntityList(0)
|
||||
EgtRelocateGlob(PrintSolidEntity.nId, nPrintPartLayerId, GDB_POS.LAST_SON)
|
||||
' calcolo box superficie per creazione riferimento
|
||||
EgtGetBBoxGlob(PrintSolidEntity.nId, GDB_BB.STANDARD, b3PrintSolid)
|
||||
' coloro l'entita'
|
||||
EgtSetColor(PrintSolidEntity.nId, GeomEntityColors.c3Print)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(PrintSolidEntity.nId)
|
||||
If PrintSolidEntity.sName <> PrintSolidEntity.nId.ToString() Then
|
||||
EgtSetInfo(PrintSolidEntity.nId, ENTITY_NAME, PrintSolidEntity.sName)
|
||||
End If
|
||||
@@ -324,6 +325,7 @@ Public Class ManagePartPanelVM
|
||||
Case ManagePart_Layer.LayerType.MACH_START
|
||||
nMachStartLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nMachStartLayerId, LAY_MACH_START)
|
||||
EgtSetColor(nMachStartLayerId, GeomEntityColors.c3MachStart)
|
||||
Dim nMachStartId As Integer = GDB_ID.NULL
|
||||
If ManagePart_Layer.EntityList.Count > 0 Then
|
||||
For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
|
||||
@@ -339,8 +341,8 @@ Public Class ManagePartPanelVM
|
||||
nMachStartId = EgtCreateCurveCompo(nMachStartLayerId, PartManager_GeomEntity.nId, True)
|
||||
End Select
|
||||
EgtSetName(nMachStartId, START_GEOM)
|
||||
' coloro l'entita'
|
||||
EgtSetColor(nMachStartId, GeomEntityColors.c3MachStart)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(nMachStartId)
|
||||
If PartManager_GeomEntity.sName <> PartManager_GeomEntity.nId.ToString() Then
|
||||
EgtSetInfo(PartManager_GeomEntity.nId, ENTITY_NAME, PartManager_GeomEntity.sName)
|
||||
End If
|
||||
@@ -350,17 +352,18 @@ Public Class ManagePartPanelVM
|
||||
Dim ptStart As Point3d = b3PrintSolid.Center() - 0.6 * b3PrintSolid.DimY() * Vector3d.Y_AX() - 0.5 * b3PrintSolid.DimZ() * Vector3d.Z_AX()
|
||||
nMachStartId = EgtCreateGeoPoint(nMachStartLayerId, ptStart, GDB_RT.GLOB)
|
||||
EgtSetName(nMachStartId, START_GEOM)
|
||||
' coloro l'entita' di rosso
|
||||
EgtSetColor(nMachStartId, GeomEntityColors.c3MachStart)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(nMachStartId)
|
||||
End If
|
||||
Case ManagePart_Layer.LayerType.RIBS
|
||||
nRibsLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nRibsLayerId, LAY_RIBS)
|
||||
EgtSetColor(nRibsLayerId, GeomEntityColors.c3Rib)
|
||||
For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
|
||||
EgtSetInfo(PartManager_GeomEntity.nId, KEY_RIB_TYPE, RibEntity.RibTypes.FROMIMPORT)
|
||||
EgtRelocateGlob(PartManager_GeomEntity.nId, nRibsLayerId, GDB_POS.LAST_SON)
|
||||
' coloro l'entita'
|
||||
EgtSetColor(PartManager_GeomEntity.nId, GeomEntityColors.c3Rib)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(PartManager_GeomEntity.nId)
|
||||
If PartManager_GeomEntity.sName <> PartManager_GeomEntity.nId.ToString() Then
|
||||
EgtSetInfo(PartManager_GeomEntity.nId, ENTITY_NAME, PartManager_GeomEntity.sName)
|
||||
End If
|
||||
@@ -368,11 +371,12 @@ Public Class ManagePartPanelVM
|
||||
Case ManagePart_Layer.LayerType.SHELL_NUMBER
|
||||
nShellNumberLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nShellNumberLayerId, LAY_SHELL_NBR)
|
||||
EgtSetColor(nShellNumberLayerId, GeomEntityColors.c3ShellNumber)
|
||||
For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
|
||||
EgtSetInfo(PartManager_GeomEntity.nId, KEY_SHELLNBR_TYPE, ShellNumberEntity.ShellNumberTypes.FROMIMPORT)
|
||||
EgtRelocateGlob(PartManager_GeomEntity.nId, nShellNumberLayerId, GDB_POS.LAST_SON)
|
||||
' coloro l'entita'
|
||||
EgtSetColor(PartManager_GeomEntity.nId, GeomEntityColors.c3ShellNumber)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(PartManager_GeomEntity.nId)
|
||||
If PartManager_GeomEntity.sName <> PartManager_GeomEntity.nId.ToString() Then
|
||||
EgtSetInfo(PartManager_GeomEntity.nId, ENTITY_NAME, PartManager_GeomEntity.sName)
|
||||
End If
|
||||
@@ -380,11 +384,12 @@ Public Class ManagePartPanelVM
|
||||
Case ManagePart_Layer.LayerType.AUX_SOLIDS
|
||||
nAuxSolidsLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nAuxSolidsLayerId, LAY_AUX_SOLIDS)
|
||||
EgtSetColor(nAuxSolidsLayerId, GeomEntityColors.c3AuxSolids)
|
||||
For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
|
||||
EgtSetInfo(PartManager_GeomEntity.nId, KEY_AUXSOLID_TYPE, RibEntity.RibTypes.FROMIMPORT)
|
||||
EgtRelocateGlob(PartManager_GeomEntity.nId, nAuxSolidsLayerId, GDB_POS.LAST_SON)
|
||||
' coloro l'entita'
|
||||
EgtSetColor(PartManager_GeomEntity.nId, GeomEntityColors.c3AuxSolids)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(PartManager_GeomEntity.nId)
|
||||
If PartManager_GeomEntity.sName <> PartManager_GeomEntity.nId.ToString() Then
|
||||
EgtSetInfo(PartManager_GeomEntity.nId, ENTITY_NAME, PartManager_GeomEntity.sName)
|
||||
End If
|
||||
@@ -392,10 +397,11 @@ Public Class ManagePartPanelVM
|
||||
Case ManagePart_Layer.LayerType.OTHERS
|
||||
nOthersLayerId = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nOthersLayerId, LAY_OTHERS)
|
||||
EgtSetColor(nOthersLayerId, GeomEntityColors.c3Others)
|
||||
For Each PartManager_GeomEntity In ManagePart_Layer.EntityList
|
||||
EgtRelocateGlob(PartManager_GeomEntity.nId, nOthersLayerId, GDB_POS.LAST_SON)
|
||||
' coloro l'entita'
|
||||
EgtSetColor(PartManager_GeomEntity.nId, GeomEntityColors.c3Others)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(PartManager_GeomEntity.nId)
|
||||
If PartManager_GeomEntity.sName <> PartManager_GeomEntity.nId.ToString() Then
|
||||
EgtSetInfo(PartManager_GeomEntity.nId, ENTITY_NAME, PartManager_GeomEntity.sName)
|
||||
End If
|
||||
@@ -408,16 +414,16 @@ Public Class ManagePartPanelVM
|
||||
Case GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_LINE
|
||||
' la trasformo in curva compo
|
||||
Dim nOtherId As Integer = EgtCreateCurveCompo(nOthersLayerId, PartManager_GeomEntity.nId, True)
|
||||
' coloro l'entita'
|
||||
EgtSetColor(nOtherId, GeomEntityColors.c3Others)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(PartManager_GeomEntity.nId)
|
||||
If PartManager_GeomEntity.sName <> PartManager_GeomEntity.nId.ToString() Then
|
||||
EgtSetInfo(nOtherId, ENTITY_NAME, PartManager_GeomEntity.sName)
|
||||
End If
|
||||
Case Else
|
||||
' altrimenti la sposto solamente
|
||||
EgtRelocateGlob(PartManager_GeomEntity.nId, nOthersLayerId, GDB_POS.LAST_SON)
|
||||
' coloro l'entita'
|
||||
EgtSetColor(PartManager_GeomEntity.nId, GeomEntityColors.c3Others)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(PartManager_GeomEntity.nId)
|
||||
If PartManager_GeomEntity.sName <> PartManager_GeomEntity.nId.ToString() Then
|
||||
EgtSetInfo(PartManager_GeomEntity.nId, ENTITY_NAME, PartManager_GeomEntity.sName)
|
||||
End If
|
||||
@@ -464,11 +470,11 @@ Public Class ManagePartPanelVM
|
||||
' elimino vecchio pezzo d'importazione
|
||||
EgtErase(m_nImportedPartId)
|
||||
|
||||
EgtDraw()
|
||||
|
||||
Case ManagePartType.MODIFY
|
||||
' nulla da fare
|
||||
End Select
|
||||
EgtDeselectAll()
|
||||
EgtDraw()
|
||||
' ripristino modalita' standard
|
||||
Map.refTopPanelVM.SelPage = Pages.MODIFY
|
||||
End Sub
|
||||
@@ -489,6 +495,7 @@ Public Class ManagePartPanelVM
|
||||
Public Sub Cancel()
|
||||
' elimino pezzo importato
|
||||
EgtErase(m_nImportedPartId)
|
||||
EgtDeselectAll()
|
||||
EgtDraw()
|
||||
' se ci sono pezzi
|
||||
If Map.refTopPanelVM.PartList.Count > 0 Then
|
||||
|
||||
@@ -394,6 +394,11 @@ Public Class ManagePart_Layer
|
||||
End Property
|
||||
|
||||
Private m_nLayerId As Integer
|
||||
Friend ReadOnly Property nLayerId As Integer
|
||||
Get
|
||||
Return m_nLayerId
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bIsSelected As Boolean
|
||||
Public Property bIsSelected As Boolean
|
||||
@@ -426,6 +431,16 @@ Public Class ManagePart_Layer
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_MenuList As New List(Of ManagerLayer_MenuItem)
|
||||
Public Property MenuList As List(Of ManagerLayer_MenuItem)
|
||||
Get
|
||||
Return m_MenuList
|
||||
End Get
|
||||
Set(value As List(Of ManagerLayer_MenuItem))
|
||||
m_MenuList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_EntityList As New ObservableCollection(Of PartManager_GeomEntity)
|
||||
Public Property EntityList As ObservableCollection(Of PartManager_GeomEntity)
|
||||
Get
|
||||
@@ -440,6 +455,10 @@ Public Class ManagePart_Layer
|
||||
m_OrigPart = OrigPart
|
||||
m_Type = Type
|
||||
m_sName = sName
|
||||
If Map.refManagePartPanelVM.Type = ManagePartPanelVM.ManagePartType.MODIFY Then
|
||||
' creo context menu per importazione solido da stampare
|
||||
m_MenuList.Add(New ManagerLayer_MenuItem(Me, ManagerLayer_MenuItem.LayerMenuCmd.IMPORTPRINT))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub New(OrigPart As ManagePart_Part, Type As LayerType, sName As String, PrintPart As Print3dPartVM)
|
||||
@@ -453,6 +472,11 @@ Public Class ManagePart_Layer
|
||||
If nEntityId <> GDB_ID.NULL Then
|
||||
m_EntityList.Add(New PartManager_GeomEntity(Me, nEntityId))
|
||||
End If
|
||||
' se sono in modifica
|
||||
If Map.refManagePartPanelVM.Type = ManagePartPanelVM.ManagePartType.MODIFY Then
|
||||
' creo context menu per importazione solido da stampare
|
||||
m_MenuList.Add(New ManagerLayer_MenuItem(Me, ManagerLayer_MenuItem.LayerMenuCmd.IMPORTPRINT))
|
||||
End If
|
||||
Case LayerType.MACH_START
|
||||
m_nLayerId = PrintPart.nMachStartLayerId
|
||||
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
|
||||
@@ -613,7 +637,14 @@ Public Class GeomEntity_MenuItem
|
||||
' altrimenti lo elimino dalla lista entita' importate
|
||||
Map.refManagePartPanelVM.ImportedEntityList.Remove(m_OrigEntity)
|
||||
End If
|
||||
' se e' presente elimino flag di spostamento a 45 gradi
|
||||
Dim nPartId As Integer = EgtGetParent(EgtGetParent(m_OrigEntity.nId))
|
||||
EgtRemoveInfo(nPartId, "MovedPart")
|
||||
EgtDraw()
|
||||
' aggiorno riferimenti nel context menu item
|
||||
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
End If
|
||||
Return
|
||||
ElseIf m_Type = ManagePart_Layer.LayerType.NEWPART Then
|
||||
@@ -621,8 +652,14 @@ Public Class GeomEntity_MenuItem
|
||||
Case ManagePartPanelVM.ManagePartType.IMPORT
|
||||
Dim NewPart As ManagePart_Part = New ManagePart_Part(Nothing)
|
||||
Map.refManagePartPanelVM.ManagerPartList.Add(NewPart)
|
||||
' elimino entity dalla lista entita' importate
|
||||
Map.refManagePartPanelVM.ImportedEntityList.Remove(m_OrigEntity)
|
||||
' se l'entita' e' gia' in lista pezzi
|
||||
If Not IsNothing(m_OrigEntity.OrigLayer) Then
|
||||
' elimino dalla lista pezzi
|
||||
m_OrigEntity.OrigLayer.EntityList.Remove(m_OrigEntity)
|
||||
Else
|
||||
' altrimenti lo elimino dalla lista entita' importate
|
||||
Map.refManagePartPanelVM.ImportedEntityList.Remove(m_OrigEntity)
|
||||
End If
|
||||
If Not IsNothing(NewPart) Then
|
||||
Dim NewLayer As ManagePart_Layer = NewPart.LayerList.FirstOrDefault(Function(x) x.Type = ManagePart_Layer.LayerType.PRINT_SOLID)
|
||||
If Not IsNothing(NewLayer) Then
|
||||
@@ -696,19 +733,17 @@ Public Class GeomEntity_MenuItem
|
||||
Dim ManagePart_Part As ManagePart_Part = New ManagePart_Part(NewPart)
|
||||
' elimino da posizione originale
|
||||
m_OrigEntity.OrigLayer.EntityList.Remove(m_OrigEntity)
|
||||
'Dim bUpdateAllContextMenu As Boolean = False
|
||||
'Dim NewLayer As ManagePart_Layer = ManagePart_Part.LayerList.FirstOrDefault(Function(x) x.Type = ManagePart_Layer.LayerType.PRINT_SOLID)
|
||||
'If Not IsNothing(NewLayer) Then
|
||||
' NewLayer.EntityList.Add(m_OrigEntity)
|
||||
' ' aggiorno riferimenti nell'entita'
|
||||
' m_OrigEntity.UpdateOrigLayer(NewLayer)
|
||||
'End If
|
||||
EgtSetInfo(nPartId, PART_NAME, ManagePart_Part.sName)
|
||||
' lo aggiungo a lista
|
||||
Map.refManagePartPanelVM.ManagerPartList.Add(ManagePart_Part)
|
||||
' aggiorno riferimenti nel context menu item
|
||||
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
End Select
|
||||
'' aggiorno visibilita' da check di categoria
|
||||
'Dim PrintLayer As ViewLayer = Map.refViewLayerManagerVM.LayerList.FirstOrDefault(Function(x) x.Type = ViewLayer.ViewLayerType.PRINT_SOLID)
|
||||
'EgtSetStatus(m_OrigEntity.nId, If(IsNothing(PrintLayer.bIsVisible) OrElse PrintLayer.bIsVisible, GDB_ST.ON_, GDB_ST.OFF))
|
||||
Return
|
||||
End If
|
||||
Select Case Map.refManagePartPanelVM.Type
|
||||
@@ -755,6 +790,14 @@ Public Class GeomEntity_MenuItem
|
||||
Select Case m_OrigEntity.OrigLayer.Type
|
||||
Case ManagePart_Layer.LayerType.PRINT_SOLID
|
||||
EgtResetMark(m_OrigEntity.nId)
|
||||
' se e' presente flag di spostamento a 45 gradi
|
||||
Dim nPartId As Integer = EgtGetParent(EgtGetParent(m_OrigEntity.nId))
|
||||
Dim vtMoved As Vector3d
|
||||
If EgtGetInfo(nPartId, "MovedPart", vtMoved) Then
|
||||
' lo sposto e rimuovo info
|
||||
EgtMove(m_OrigEntity.nId, -vtMoved, GDB_RT.GLOB)
|
||||
EgtRemoveInfo(nPartId, "MovedPart")
|
||||
End If
|
||||
Case ManagePart_Layer.LayerType.MACH_START
|
||||
Case ManagePart_Layer.LayerType.RIBS
|
||||
EgtRemoveInfo(m_OrigEntity.nId, KEY_RIB_TYPE)
|
||||
@@ -782,6 +825,8 @@ Public Class GeomEntity_MenuItem
|
||||
Case ManagePart_Layer.LayerType.PRINT_SOLID
|
||||
EgtSetName(m_OrigEntity.nId, PRINT_SOLID)
|
||||
EgtSetColor(m_OrigEntity.nId, c3Print)
|
||||
' rimuovo eventuale nota spostamento per 45 gradi
|
||||
EgtRemoveInfo(m_OrigEntity.OrigLayer.OrigPart.nId, "MovedPart")
|
||||
Case ManagePart_Layer.LayerType.MACH_START
|
||||
EgtSetName(m_OrigEntity.nId, LAY_MACH_START)
|
||||
EgtSetColor(m_OrigEntity.nId, c3MachStart)
|
||||
@@ -809,6 +854,8 @@ Public Class GeomEntity_MenuItem
|
||||
m_OrigEntity.UpdateContextMenu()
|
||||
End If
|
||||
End If
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
@@ -856,7 +903,7 @@ Public Class ManagerPart_MenuItem
|
||||
m_Type = Type
|
||||
End Sub
|
||||
|
||||
#Region "Cancel"
|
||||
#Region "Command"
|
||||
|
||||
Public ReadOnly Property MenuItem_Command As ICommand
|
||||
Get
|
||||
@@ -899,9 +946,84 @@ Public Class ManagerPart_MenuItem
|
||||
End Select
|
||||
' aggiorno riferimenti nel context menu item
|
||||
Map.refManagePartPanelVM.UpdateAllEntityContextMenu()
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
#End Region ' Cancel
|
||||
#End Region ' Command
|
||||
|
||||
End Class
|
||||
|
||||
Public Class ManagerLayer_MenuItem
|
||||
Inherits VMBase
|
||||
|
||||
Public Enum LayerMenuCmd
|
||||
IMPORTPRINT = 1
|
||||
End Enum
|
||||
|
||||
Private m_OrigLayer As ManagePart_Layer
|
||||
Friend ReadOnly Property OrigLayer As ManagePart_Layer
|
||||
Get
|
||||
Return m_OrigLayer
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' tipo del comando
|
||||
Private m_Type As LayerMenuCmd
|
||||
Public Property Type As LayerMenuCmd
|
||||
Get
|
||||
Return m_Type
|
||||
End Get
|
||||
Set(value As LayerMenuCmd)
|
||||
m_Type = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sMsg As String
|
||||
Get
|
||||
Select Case m_Type
|
||||
Case Else ' PartMenuCmd.IMPORTPRINT
|
||||
Return "Import Print"
|
||||
End Select
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Definizione comando
|
||||
Private m_cmdCommand As ICommand
|
||||
|
||||
Sub New(OrigLayer As ManagePart_Layer, Type As LayerMenuCmd)
|
||||
m_OrigLayer = OrigLayer
|
||||
m_Type = Type
|
||||
End Sub
|
||||
|
||||
#Region "Command"
|
||||
|
||||
Public ReadOnly Property MenuItem_Command As ICommand
|
||||
Get
|
||||
If m_cmdCommand Is Nothing Then
|
||||
m_cmdCommand = New Command(AddressOf Command)
|
||||
End If
|
||||
Return m_cmdCommand
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Command()
|
||||
If Map.refSceneHostVM.MainController.GetStep <> 0 Then Return
|
||||
Select Case m_Type
|
||||
Case Else ' PartMenuCmd.IMPORTPRINT
|
||||
Dim bDeleteOldPrint As Boolean = False
|
||||
If m_OrigLayer.EntityList.Count > 0 Then
|
||||
If MessageBox.Show("Importing a new print solid the current one will be deleted. Are you sure you want to proced?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning) <> MessageBoxResult.Yes Then
|
||||
Return
|
||||
Else
|
||||
bDeleteOldPrint = True
|
||||
End If
|
||||
End If
|
||||
Map.refSceneHostVM.InsertPrint(Me)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
#End Region ' Command
|
||||
|
||||
End Class
|
||||
@@ -56,97 +56,6 @@ Public Class Material
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dK As Double
|
||||
Public ReadOnly Property dK As Double
|
||||
Get
|
||||
Return m_dK
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dC1 As Double
|
||||
Public ReadOnly Property dC1 As Double
|
||||
Get
|
||||
Return m_dC1
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dC2 As Double
|
||||
Public ReadOnly Property dC2 As Double
|
||||
Get
|
||||
Return m_dC2
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dDensity As Double
|
||||
Public ReadOnly Property dDensity As Double
|
||||
Get
|
||||
Return m_dDensity
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dAMax As Double
|
||||
Public ReadOnly Property dAMax As Double
|
||||
Get
|
||||
Return m_dAMax
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dATrg As Double
|
||||
Public ReadOnly Property dATrg As Double
|
||||
Get
|
||||
Return m_dATrg
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dAMin As Double
|
||||
Public ReadOnly Property dAMin As Double
|
||||
Get
|
||||
Return m_dAMin
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dBMax As Double
|
||||
Public ReadOnly Property dBMax As Double
|
||||
Get
|
||||
Return m_dBMax
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dBTrg As Double
|
||||
Public ReadOnly Property dBTrg As Double
|
||||
Get
|
||||
Return m_dBTrg
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dBMin As Double
|
||||
Public ReadOnly Property dBMin As Double
|
||||
Get
|
||||
Return m_dBMin
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dKW As Double
|
||||
Friend ReadOnly Property dKW As Double
|
||||
Get
|
||||
Return m_dKW
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dKZ As Double
|
||||
Friend ReadOnly Property dKZ As Double
|
||||
Get
|
||||
Return m_dKZ
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_dKN As Double
|
||||
Friend ReadOnly Property dKN As Double
|
||||
Get
|
||||
Return m_dKN
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' per lettura da file
|
||||
Sub New(nIndex As Integer)
|
||||
m_nIndex = nIndex
|
||||
@@ -184,25 +93,6 @@ Public Class Material
|
||||
m_bIsModified = True
|
||||
End Sub
|
||||
|
||||
Sub New(nIndex As Integer, sGUID As String, sName As String)
|
||||
m_nIndex = nIndex
|
||||
m_sName = sName
|
||||
m_sGUID = sGUID
|
||||
m_dK = ReadMaterialParamDouble(m_nIndex, MAT_K, 0)
|
||||
m_dC1 = ReadMaterialParamDouble(m_nIndex, MAT_C1, 0)
|
||||
m_dC2 = ReadMaterialParamDouble(m_nIndex, MAT_C2, 0)
|
||||
m_dDensity = ReadMaterialParamDouble(m_nIndex, MAT_DENSITY, 0)
|
||||
m_dAMax = ReadMaterialParamDouble(m_nIndex, MAT_AMAX, 0)
|
||||
m_dATrg = ReadMaterialParamDouble(m_nIndex, MAT_ATRG, 0)
|
||||
m_dAMin = ReadMaterialParamDouble(m_nIndex, MAT_AMIN, 0)
|
||||
m_dBMax = ReadMaterialParamDouble(m_nIndex, MAT_BMAX, 0)
|
||||
m_dBTrg = ReadMaterialParamDouble(m_nIndex, MAT_BTRG, 0)
|
||||
m_dBMin = ReadMaterialParamDouble(m_nIndex, MAT_BMIN, 0)
|
||||
m_dKW = ReadMaterialParamDouble(m_nIndex, MAT_KW, 0)
|
||||
m_dKZ = ReadMaterialParamDouble(m_nIndex, MAT_KZ, 0)
|
||||
m_dKN = ReadMaterialParamDouble(m_nIndex, MAT_KN, 0)
|
||||
End Sub
|
||||
|
||||
Private Sub ReadAllParams()
|
||||
'm_nSlicingType = ReadMaterialParamDouble(m_nIndex, MAC_SLICINGTYPE, 0, CurrentMachine.sMachiningFilePath)
|
||||
'm_dStrandH = ReadMaterialParamDouble(m_nIndex, MAC_STRANDH, 0, CurrentMachine.sMachiningFilePath)
|
||||
@@ -323,6 +213,51 @@ Public Class MaterialIndex
|
||||
m_sName = sName
|
||||
End Sub
|
||||
|
||||
Friend Function GetSelMaterialData(Param As MaterialParam.Params) As Double
|
||||
Dim sParamKey As String = ""
|
||||
Select Case Param
|
||||
Case MaterialParam.Params.T1
|
||||
sParamKey = MAT_T1
|
||||
Case MaterialParam.Params.T2
|
||||
sParamKey = MAT_T2
|
||||
Case MaterialParam.Params.T3
|
||||
sParamKey = MAT_T3
|
||||
Case MaterialParam.Params.T4
|
||||
sParamKey = MAT_T4
|
||||
Case MaterialParam.Params.T5
|
||||
sParamKey = MAT_T5
|
||||
Case MaterialParam.Params.K_EXTRUSION
|
||||
sParamKey = MAT_KEXTRUSION
|
||||
Case MaterialParam.Params.K_LAY_TIME
|
||||
sParamKey = MAT_KLAYERTIME
|
||||
Case MaterialParam.Params.C1
|
||||
sParamKey = MAT_C1
|
||||
Case MaterialParam.Params.C2
|
||||
sParamKey = MAT_C2
|
||||
Case MaterialParam.Params.DENSITY
|
||||
sParamKey = MAT_DENSITY
|
||||
Case MaterialParam.Params.AMAX
|
||||
sParamKey = MAT_AMAX
|
||||
Case MaterialParam.Params.ATRG
|
||||
sParamKey = MAT_ATRG
|
||||
Case MaterialParam.Params.AMIN
|
||||
sParamKey = MAT_AMIN
|
||||
Case MaterialParam.Params.BMAX
|
||||
sParamKey = MAT_BMAX
|
||||
Case MaterialParam.Params.BTRG
|
||||
sParamKey = MAT_BTRG
|
||||
Case MaterialParam.Params.BMIN
|
||||
sParamKey = MAT_BMIN
|
||||
Case MaterialParam.Params.KW
|
||||
sParamKey = MAT_KW
|
||||
Case MaterialParam.Params.KZ
|
||||
sParamKey = MAT_KZ
|
||||
Case MaterialParam.Params.KN
|
||||
sParamKey = MAT_KN
|
||||
End Select
|
||||
Return ReadMaterialParamDouble(m_nIndex, sParamKey, 0)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
Public Class MaterialCathegory
|
||||
@@ -377,7 +312,8 @@ Public Class MaterialCathegory
|
||||
Select Case m_Type
|
||||
Case Cathegories.GENERAL
|
||||
m_sName = "General"
|
||||
m_MaterialParamList = New List(Of MaterialParam)({New NumericMaterialParam(MaterialParam.Params.K, nIndex),
|
||||
m_MaterialParamList = New List(Of MaterialParam)({New NumericMaterialParam(MaterialParam.Params.K_EXTRUSION, nIndex),
|
||||
New NumericMaterialParam(MaterialParam.Params.K_LAY_TIME, nIndex),
|
||||
New NumericMaterialParam(MaterialParam.Params.DENSITY, nIndex),
|
||||
New StringMaterialParam(MaterialParam.Params.ORIG, nIndex)})
|
||||
m_Cathegory_Visibility = Visibility.Visible
|
||||
@@ -437,20 +373,21 @@ Public MustInherit Class MaterialParam
|
||||
T3 = 5
|
||||
T4 = 6
|
||||
T5 = 7
|
||||
K = 8
|
||||
C1 = 9
|
||||
C2 = 10
|
||||
DENSITY = 11
|
||||
AMAX = 12
|
||||
ATRG = 13
|
||||
AMIN = 14
|
||||
BMAX = 15
|
||||
BTRG = 16
|
||||
BMIN = 17
|
||||
KW = 18
|
||||
KZ = 19
|
||||
KN = 20
|
||||
ORIG = 21
|
||||
K_EXTRUSION = 8
|
||||
K_LAY_TIME = 9
|
||||
C1 = 10
|
||||
C2 = 11
|
||||
DENSITY = 12
|
||||
AMAX = 13
|
||||
ATRG = 14
|
||||
AMIN = 15
|
||||
BMAX = 16
|
||||
BTRG = 17
|
||||
BMIN = 18
|
||||
KW = 19
|
||||
KZ = 20
|
||||
KN = 21
|
||||
ORIG = 22
|
||||
End Enum
|
||||
|
||||
Private m_Type As Params
|
||||
@@ -482,8 +419,10 @@ Public MustInherit Class MaterialParam
|
||||
m_sName = "Temperature 4"
|
||||
Case Params.T5
|
||||
m_sName = "Temperature 5"
|
||||
Case Params.K
|
||||
m_sName = "Constant"
|
||||
Case Params.K_EXTRUSION
|
||||
m_sName = "Flow Multiplier [%]"
|
||||
Case Params.K_LAY_TIME
|
||||
m_sName = "Layer Time Multiplier [%]"
|
||||
Case Params.C1
|
||||
m_sName = "C1"
|
||||
Case Params.C2
|
||||
@@ -571,8 +510,11 @@ Public Class NumericMaterialParam
|
||||
Case Params.T5
|
||||
m_dValue = ReadMaterialParamDouble(nIndex, MAT_T5, 0)
|
||||
m_bIsLen = False
|
||||
Case Params.K
|
||||
m_dValue = ReadMaterialParamDouble(nIndex, MAT_K, 0)
|
||||
Case Params.K_EXTRUSION
|
||||
m_dValue = ReadMaterialParamDouble(nIndex, MAT_KEXTRUSION, 100)
|
||||
m_bIsLen = False
|
||||
Case Params.K_LAY_TIME
|
||||
m_dValue = ReadMaterialParamDouble(nIndex, MAT_KLAYERTIME, 100)
|
||||
m_bIsLen = False
|
||||
Case Params.C1
|
||||
m_dValue = ReadMaterialParamDouble(nIndex, MAT_C1, 0)
|
||||
@@ -632,8 +574,10 @@ Public Class NumericMaterialParam
|
||||
WriteMaterialParam(nIndex, MAT_T4, sWriteValue)
|
||||
Case Params.T5
|
||||
WriteMaterialParam(nIndex, MAT_T5, sWriteValue)
|
||||
Case Params.K
|
||||
WriteMaterialParam(nIndex, MAT_K, sWriteValue)
|
||||
Case Params.K_EXTRUSION
|
||||
WriteMaterialParam(nIndex, MAT_KEXTRUSION, sWriteValue)
|
||||
Case Params.K_LAY_TIME
|
||||
WriteMaterialParam(nIndex, MAT_KLAYERTIME, sWriteValue)
|
||||
Case Params.C1
|
||||
WriteMaterialParam(nIndex, MAT_C1, sWriteValue)
|
||||
Case Params.C2
|
||||
@@ -674,6 +618,8 @@ End Class
|
||||
Public Class StringMaterialParam
|
||||
Inherits MaterialParam
|
||||
|
||||
Public Const DEFAULT_MATERIAL As String = "***"
|
||||
|
||||
Private m_sGUID As String
|
||||
Public Property sGUID As String
|
||||
Get
|
||||
@@ -715,10 +661,10 @@ Public Class StringMaterialParam
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bIsReadOnly As Boolean = True
|
||||
Public ReadOnly Property bIsReadOnly As Boolean
|
||||
Private m_OrigButton_Visibility As Visibility = Visibility.Collapsed
|
||||
Public ReadOnly Property OrigButton_Visibility As Visibility
|
||||
Get
|
||||
Return m_bIsReadOnly
|
||||
Return m_OrigButton_Visibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -729,15 +675,18 @@ Public Class StringMaterialParam
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdOriginal As ICommand
|
||||
|
||||
Sub New(Type As Params, nIndex As Integer)
|
||||
MyBase.New(Type)
|
||||
Select Case Type
|
||||
Case Params.ORIG
|
||||
Dim sOrigGUID As String = ""
|
||||
ReadMaterialParamString(nIndex, MAT_ORIG, "", sOrigGUID)
|
||||
If sOrigGUID = "***" Then
|
||||
m_sGUID = sOrigGUID
|
||||
m_sValue = sOrigGUID
|
||||
If sOrigGUID = DEFAULT_MATERIAL Then
|
||||
m_sGUID = DEFAULT_MATERIAL
|
||||
m_sValue = DEFAULT_MATERIAL
|
||||
' se livello alto, lo visualizzo comunque
|
||||
If Map.refMainWindowVM.MainWindowM.nUserLevel >= 5 Then
|
||||
m_String_Visibility = Visibility.Visible
|
||||
@@ -757,7 +706,7 @@ Public Class StringMaterialParam
|
||||
End Select
|
||||
' verifico chiave per assegnare readonly
|
||||
If Map.refMainWindowVM.MainWindowM.nUserLevel >= 5 Then
|
||||
m_bIsReadOnly = False
|
||||
m_OrigButton_Visibility = Visibility.Visible
|
||||
End If
|
||||
m_sOrigValue = m_sValue
|
||||
End Sub
|
||||
@@ -777,6 +726,31 @@ Public Class StringMaterialParam
|
||||
m_sValue = m_sOrigValue
|
||||
End Sub
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "Original"
|
||||
|
||||
Public ReadOnly Property Original_Command As ICommand
|
||||
Get
|
||||
If m_cmdOriginal Is Nothing Then
|
||||
m_cmdOriginal = New Command(AddressOf Original)
|
||||
End If
|
||||
Return m_cmdOriginal
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Original()
|
||||
If MessageBox.Show("Are you sure you want to set this material as original?", "Original material confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
||||
m_sGUID = DEFAULT_MATERIAL
|
||||
m_sValue = DEFAULT_MATERIAL
|
||||
NotifyPropertyChanged(NameOf(sValue))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' Original
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
End Class
|
||||
|
||||
Public Class ComboMaterialParam
|
||||
|
||||
@@ -101,16 +101,15 @@
|
||||
<TextBlock Text="{Binding sName}"/>
|
||||
<TextBox Grid.Column="1"
|
||||
Text="{Binding sValue}"
|
||||
IsReadOnly="{Binding bIsReadOnly}"/>
|
||||
<!--<Button Grid.Column="2"
|
||||
Content="R"
|
||||
Command="{Binding ResetParam_Command}"
|
||||
CommandParameter="dCurrStrandH"
|
||||
IsEnabled="{Binding bCurrStrandH_IsModified}"
|
||||
IsReadOnly="True"/>
|
||||
<Button Grid.Column="2"
|
||||
Content="O"
|
||||
Command="{Binding Original_Command}"
|
||||
VerticalContentAlignment="Center"
|
||||
HorizontalContentAlignment="Center"
|
||||
Margin="5,0,0,0"
|
||||
Style="{StaticResource ToolBar_SmallButton}"/>-->
|
||||
Visibility="{Binding OrigButton_Visibility}"
|
||||
Style="{StaticResource ToolBar_SmallButton}"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="{x:Type PrintApp:ComboMaterialParam}">
|
||||
|
||||
@@ -48,6 +48,9 @@ Public Class MaterialDbVM
|
||||
m_SelMaterial.CathegoryList(Index).Cathegory_IsExpanded = IsExpandedList(Index)
|
||||
Next
|
||||
End If
|
||||
' verifico abilitazione delete
|
||||
SetDeleteIsEnabled(Not SelMaterialIsOriginal())
|
||||
NotifyPropertyChanged(NameOf(Delete_IsEnabled))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -73,6 +76,21 @@ Public Class MaterialDbVM
|
||||
m_bIsModified = value
|
||||
End Sub
|
||||
|
||||
Private m_Delete_IsEnabled As Boolean = True
|
||||
Public ReadOnly Property Delete_IsEnabled As Boolean
|
||||
Get
|
||||
Return m_Delete_IsEnabled
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetDeleteIsEnabled(value As Boolean)
|
||||
If Map.refMainWindowVM.MainWindowM.nUserLevel >= 5 Then
|
||||
m_Delete_IsEnabled = True
|
||||
Else
|
||||
m_Delete_IsEnabled = value
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(Delete_IsEnabled))
|
||||
End Sub
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdOk As ICommand
|
||||
Private m_cmdCopy As ICommand
|
||||
@@ -104,9 +122,32 @@ Public Class MaterialDbVM
|
||||
Dim sCurrMaterial As String = ""
|
||||
GetMainPrivateProfileString(S_PRINTING3D, K_CURRMATERIAL, "", sCurrMaterial)
|
||||
m_SelMaterial = MaterialList.FirstOrDefault(Function(x) x.sGUID = sCurrMaterial)
|
||||
If IsNothing(m_SelMaterial) AndAlso m_MaterialList.Count > 0 Then
|
||||
m_SelMaterial = m_MaterialList(0)
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(SelMaterial))
|
||||
' verifico abilitazione delete
|
||||
If Not IsNothing(m_SelMaterial) Then
|
||||
SetDeleteIsEnabled(Not SelMaterialIsOriginal())
|
||||
NotifyPropertyChanged(NameOf(Delete_IsEnabled))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function SelMaterialIsOriginal() As Boolean
|
||||
If IsNothing(m_SelMaterial) Then Return False
|
||||
' verifico abilitazione delete
|
||||
Dim General As MaterialCathegory = m_SelMaterial.CathegoryList.FirstOrDefault(Function(x) x.Type = MaterialCathegory.Cathegories.GENERAL)
|
||||
If Not IsNothing(General) Then
|
||||
Dim Original As MaterialParam = General.MaterialParamList.FirstOrDefault(Function(x) x.Type = MaterialParam.Params.ORIG)
|
||||
If Not IsNothing(Original) Then
|
||||
If DirectCast(Original, StringMaterialParam).sValue = StringMaterialParam.DEFAULT_MATERIAL Then
|
||||
Return True
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Return False
|
||||
End Function
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
#Region "COMMANDS"
|
||||
@@ -181,6 +222,8 @@ Public Class MaterialDbVM
|
||||
Map.refTopPanelVM.SelMaterial = Nothing
|
||||
Map.refTopPanelVM.NotifyPropertyChanged(NameOf(Map.refTopPanelVM.SelMaterial))
|
||||
End If
|
||||
' ricarico lavorazioni per aggiorno liste materiali all'interno
|
||||
Map.refMachiningDbVM.Init()
|
||||
End If
|
||||
' ripristino modalita' standard
|
||||
Map.refTopPanelVM.SelPage = Pages.MODIFY
|
||||
@@ -248,8 +291,10 @@ Public Class MaterialDbVM
|
||||
End Property
|
||||
|
||||
Public Sub Delete()
|
||||
' se materiale originale, esco
|
||||
If SelMaterialIsOriginal() Then Return
|
||||
' chiedo conferma
|
||||
Select Case MessageBox.Show("Sei sicuro di voler cancellare la lavorazione selezionata?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning)
|
||||
Select Case MessageBox.Show("Are you sure you want to delete selected material?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning)
|
||||
Case MessageBoxResult.Yes
|
||||
m_MaterialList.Remove(m_SelMaterial)
|
||||
' segno Db come modificato
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
<UserControl x:Class="ModifyPartPanelV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:Icarus"
|
||||
Width="150"
|
||||
Margin="5,0,0,0">
|
||||
<Grid DockPanel.Dock="Left">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Style="{StaticResource LeftPanelTitle_Border}">
|
||||
<TextBlock Text="Part entity list"
|
||||
FontWeight="DemiBold"
|
||||
FontSize="14"/>
|
||||
</Border>
|
||||
<!--<DockPanel Grid.Row="1">
|
||||
<Button DockPanel.Dock="Left"
|
||||
Content="+"
|
||||
FontSize="20"
|
||||
Command="{Binding AddPart_Command}"
|
||||
Style="{StaticResource LeftPanel_Button}"/>
|
||||
<Button DockPanel.Dock="Left"
|
||||
Content="-"
|
||||
FontSize="20"
|
||||
Command="{Binding RemovePart_Command}"
|
||||
Style="{StaticResource LeftPanel_Button}"/>
|
||||
<Button Content="Reference"
|
||||
Command="{Binding SetReference_Command}"
|
||||
Style="{StaticResource LeftPanel_TextButton}"/>
|
||||
</DockPanel>-->
|
||||
<TreeView Grid.Row="2"
|
||||
ItemsSource="{Binding ModifyPartList}"
|
||||
MinHeight="300">
|
||||
<TreeView.Resources>
|
||||
<HierarchicalDataTemplate DataType="{x:Type local:ModifyPart}"
|
||||
ItemsSource="{Binding LayerList}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Image Source="/Resources/TreeView/Folder.png"
|
||||
Height="15"/>
|
||||
<TextBlock Text="{Binding ghName}" />
|
||||
</StackPanel>
|
||||
</HierarchicalDataTemplate>
|
||||
<HierarchicalDataTemplate DataType="{x:Type local:ModifyLayer}"
|
||||
ItemsSource="{Binding EntityList, UpdateSourceTrigger=PropertyChanged}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Image Source="/Resources/TreeView/Folder.png"
|
||||
Height="15"/>
|
||||
<TextBlock Text="{Binding sName}" />
|
||||
</StackPanel>
|
||||
</HierarchicalDataTemplate>
|
||||
<HierarchicalDataTemplate DataType="{x:Type local:ModifyEntity}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<!--<Image Source="/WpfTutorialSamples;component/Images/user.png" Margin="0,0,5,0" />-->
|
||||
<TextBlock Text="{Binding ghName}" />
|
||||
<TextBlock Text="{Binding ghReference, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</StackPanel>
|
||||
</HierarchicalDataTemplate>
|
||||
<!-- Menu' tasto destro -->
|
||||
<ContextMenu x:Key="RowMenu" ItemsSource="{Binding MenuList}" >
|
||||
<ContextMenu.ItemContainerStyle>
|
||||
<Style TargetType="MenuItem">
|
||||
<Setter Property="Command" Value="{Binding MenuItem_Command}"/>
|
||||
<Setter Property="CommandParameter" Value="{Binding MenuItem_Command}"/>
|
||||
<Setter Property="Header" Value="{Binding sMsg}"/>
|
||||
</Style>
|
||||
</ContextMenu.ItemContainerStyle>
|
||||
</ContextMenu>
|
||||
</TreeView.Resources>
|
||||
<TreeView.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type TreeViewItem}">
|
||||
<Setter Property="IsSelected" Value="{Binding bIsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Setter Property="IsExpanded" Value="True" />
|
||||
<Setter Property="ContextMenu" Value="{StaticResource RowMenu}" />
|
||||
</Style>
|
||||
</TreeView.ItemContainerStyle>
|
||||
</TreeView>
|
||||
<!--<Border Grid.Row="3"
|
||||
Style="{StaticResource LeftPanelTitle_Border}">
|
||||
<TextBlock Text="Lista entità importate"
|
||||
FontWeight="DemiBold"
|
||||
FontSize="14"/>
|
||||
</Border>
|
||||
<ListBox Grid.Row="4"
|
||||
ItemsSource="{Binding ImportedEntityList, UpdateSourceTrigger=PropertyChanged}"
|
||||
SelectedItem="{Binding SelImportedEntity}"
|
||||
MinHeight="200">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid HorizontalAlignment="Stretch">
|
||||
<Grid.InputBindings>
|
||||
<MouseBinding Gesture="LeftDoubleClick"
|
||||
Command="{Binding ImportedEntity_DoubleClick}"/>
|
||||
</Grid.InputBindings>
|
||||
<TextBlock Text="{Binding ghName}">
|
||||
</TextBlock>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>-->
|
||||
<UniformGrid Grid.Row="5"
|
||||
Rows="1">
|
||||
<Button Content="Ok"
|
||||
Command="{Binding Ok_Command}"
|
||||
Style="{StaticResource LeftPanel_TextButton}"/>
|
||||
<!--<Button Content="Cancel"
|
||||
Command="{Binding Cancel_Command}"
|
||||
Style="{StaticResource LeftPanel_TextButton}"/>-->
|
||||
</UniformGrid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -1,3 +0,0 @@
|
||||
Public Class ModifyPartPanelV
|
||||
|
||||
End Class
|
||||
@@ -1,407 +0,0 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class ModifyPartPanelVM
|
||||
Inherits VMBase
|
||||
|
||||
'Private m_nImportedPartId As Integer = GDB_ID.NULL
|
||||
'Friend ReadOnly Property nImportedPartId As Integer
|
||||
' Get
|
||||
' Return m_nImportedPartId
|
||||
' End Get
|
||||
'End Property
|
||||
|
||||
'Private m_ImportedEntityList As New ObservableCollection(Of GeomEntity)
|
||||
'Public Property ImportedEntityList As ObservableCollection(Of GeomEntity)
|
||||
' Get
|
||||
' Return m_ImportedEntityList
|
||||
' End Get
|
||||
' Set(value As ObservableCollection(Of GeomEntity))
|
||||
' m_ImportedEntityList = value
|
||||
' End Set
|
||||
'End Property
|
||||
|
||||
'Private m_SelImportedEntity As GeomEntity
|
||||
'Public Property SelImportedEntity As GeomEntity
|
||||
' Get
|
||||
' Return m_SelImportedEntity
|
||||
' End Get
|
||||
' Set(value As GeomEntity)
|
||||
' m_SelImportedEntity = value
|
||||
' EgtDeselectAll()
|
||||
' If Not IsNothing(m_SelImportedEntity) Then
|
||||
' EgtSelectObj(m_SelImportedEntity.nId)
|
||||
' End If
|
||||
' EgtDraw()
|
||||
' End Set
|
||||
'End Property
|
||||
'Friend Sub SetSelImportedEntity(nId As Integer)
|
||||
' m_SelImportedEntity = Map.refImportPanelVM.ImportedEntityList.FirstOrDefault(Function(x) x.nId = nId)
|
||||
' EgtDeselectAll()
|
||||
' If Not IsNothing(m_SelImportedEntity) Then
|
||||
' EgtSelectObj(m_SelImportedEntity.nId)
|
||||
' End If
|
||||
' EgtDraw()
|
||||
' NotifyPropertyChanged(NameOf(SelImportedEntity))
|
||||
'End Sub
|
||||
|
||||
Private m_ModifyPartList As New ObservableCollection(Of ModifyPart)
|
||||
Public ReadOnly Property ModifyPartList As ObservableCollection(Of ModifyPart)
|
||||
Get
|
||||
Return m_ModifyPartList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelModifyPart As ModifyPart
|
||||
Friend Sub SetSelModifyPart(SelModifyPart As ModifyPart)
|
||||
m_SelModifyPart = SelModifyPart
|
||||
m_SelModifyLayer = Nothing
|
||||
End Sub
|
||||
Public ReadOnly Property SelModifyPart As ModifyPart
|
||||
Get
|
||||
Return m_SelModifyPart
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_SelModifyLayer As ModifyLayer
|
||||
Public ReadOnly Property SelModifyLayer As ModifyLayer
|
||||
Get
|
||||
Return m_SelModifyLayer
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetSelModifyLayer(SelModifyLayer As ModifyLayer)
|
||||
m_SelModifyPart = m_ModifyPartList.FirstOrDefault(Function(x) x.LayerList.Contains(SelModifyLayer))
|
||||
m_SelModifyLayer = SelModifyLayer
|
||||
End Sub
|
||||
|
||||
Private m_SelModifyEntity As ModifyEntity
|
||||
Public ReadOnly Property SelModifyEntity As ModifyEntity
|
||||
Get
|
||||
Return m_SelModifyEntity
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetSelModifyEntity(SelModifyEntity As ModifyEntity)
|
||||
For Each CurrPart In m_ModifyPartList
|
||||
Dim CurrLayer As ModifyLayer = CurrPart.LayerList.FirstOrDefault(Function(x) x.EntityList.Contains(SelModifyEntity))
|
||||
If Not IsNothing(CurrLayer) Then
|
||||
m_SelModifyPart = CurrPart
|
||||
m_SelModifyLayer = CurrLayer
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
m_SelModifyEntity = SelModifyEntity
|
||||
End Sub
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdOk As ICommand
|
||||
Private m_cmdCancel As ICommand
|
||||
|
||||
Sub New()
|
||||
' Creo riferimento a questa classe in EgtCAM5Map
|
||||
Map.SetRefModifyPartPanelVM(Me)
|
||||
End Sub
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Friend Sub Init()
|
||||
m_ModifyPartList.Clear()
|
||||
' carico pezzi in lista
|
||||
For Each PrintPart In Map.refTopPanelVM.PartList
|
||||
m_ModifyPartList.Add(New ModifyPart(PrintPart))
|
||||
Next
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
'#Region "SetReference"
|
||||
|
||||
' Public ReadOnly Property SetReference_Command As ICommand
|
||||
' Get
|
||||
' If m_cmdSetReference Is Nothing Then
|
||||
' m_cmdSetReference = New Command(AddressOf SetReference)
|
||||
' End If
|
||||
' Return m_cmdSetReference
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' Public Sub SetReference()
|
||||
' If Not IsNothing(SelGeomEntity) Then
|
||||
' Dim ChooseReferenceWndVM As New ChooseReferenceWndVM
|
||||
' Dim ChooseReferenceWndV As New ChooseReferenceWndV(Application.Current.MainWindow, ChooseReferenceWndVM)
|
||||
' If Not ChooseReferenceWndV.ShowDialog() Then Return
|
||||
' SelGeomEntity.Reference = ChooseReferenceWndVM.SelReference
|
||||
' End If
|
||||
' End Sub
|
||||
|
||||
'#End Region ' SetReference
|
||||
|
||||
'#Region "AddPart"
|
||||
|
||||
' Public ReadOnly Property AddPart_Command As ICommand
|
||||
' Get
|
||||
' If m_cmdAddPart Is Nothing Then
|
||||
' m_cmdAddPart = New Command(AddressOf AddPart)
|
||||
' End If
|
||||
' Return m_cmdAddPart
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' Public Sub AddPart()
|
||||
' m_ImportPartList.Add(New ImportPart)
|
||||
' End Sub
|
||||
|
||||
'#End Region ' AddPart
|
||||
|
||||
'#Region "RemovePart"
|
||||
|
||||
' Public ReadOnly Property RemovePart_Command As ICommand
|
||||
' Get
|
||||
' If m_cmdRemovePart Is Nothing Then
|
||||
' m_cmdRemovePart = New Command(AddressOf RemovePart)
|
||||
' End If
|
||||
' Return m_cmdRemovePart
|
||||
' End Get
|
||||
' End Property
|
||||
|
||||
' Public Sub RemovePart()
|
||||
' If IsNothing(SelImportLayer) Then
|
||||
' ' rimuovo pezzo
|
||||
' m_ImportPartList.Remove(SelImportPart)
|
||||
' Else
|
||||
' ' rimuovo geometria
|
||||
' Dim CurrEntity As GeomEntity = m_SelGeomEntity
|
||||
' SelImportLayer.EntityList.Remove(m_SelGeomEntity)
|
||||
' ' la rimetto in lista importati
|
||||
' ImportedEntityList.Add(CurrEntity)
|
||||
' End If
|
||||
' End Sub
|
||||
|
||||
'#End Region ' RemovePart
|
||||
|
||||
#Region "Ok"
|
||||
|
||||
Public ReadOnly Property Ok_Command As ICommand
|
||||
Get
|
||||
If m_cmdOk Is Nothing Then
|
||||
m_cmdOk = New Command(AddressOf Ok)
|
||||
End If
|
||||
Return m_cmdOk
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Ok()
|
||||
'Dim sErr As New List(Of String)
|
||||
'' verifico che tutti i pezzi abbiano una superficie da stampare nel layer apposito
|
||||
'For Each CurrPart In m_ImportPartList
|
||||
' For Each CurrLayer In CurrPart.LayerList
|
||||
' Select Case CurrLayer.Type
|
||||
' Case ImportLayer.LayerType.PRINT_SOLID
|
||||
' If CurrLayer.EntityList.Count = 0 Then
|
||||
' If sErr.Count > 0 Then sErr(sErr.Count - 1) &= Environment.NewLine
|
||||
' sErr.Add(CurrPart.ghName & " - No print surface defined!")
|
||||
' End If
|
||||
' End Select
|
||||
' Next
|
||||
'Next
|
||||
'If sErr.Count > 0 Then
|
||||
' MessageBox.Show(String.Concat(sErr), "Error")
|
||||
' Return
|
||||
'Else
|
||||
' ' Creo pezzi e layer necessari
|
||||
' For Each ImportPart In m_ImportPartList
|
||||
' Dim frImportedPart As New Frame3d
|
||||
' EgtGetGroupGlobFrame(m_nImportedPartId, frImportedPart)
|
||||
' Dim nPartId As Integer = EgtCreateGroup(GDB_ID.ROOT, frImportedPart)
|
||||
' EgtSetName(nPartId, PART)
|
||||
' Dim nFrameId As Integer = GDB_ID.NULL
|
||||
' Dim b3PrintSolid As New BBox3d
|
||||
' Dim nPrintPartLayerId As Integer = GDB_ID.NULL
|
||||
' Dim PrintSolidEntity As GeomEntity = Nothing
|
||||
' Dim nOriginalPartLayerId As Integer = GDB_ID.NULL
|
||||
' Dim nRibsLayerId As Integer = GDB_ID.NULL
|
||||
' Dim nShellNumberLayerId As Integer = GDB_ID.NULL
|
||||
' Dim nAuxSolidsLayerId As Integer = GDB_ID.NULL
|
||||
' Dim nMachStartLayerId As Integer = GDB_ID.NULL
|
||||
' Dim nOthersLayerId As Integer = GDB_ID.NULL
|
||||
' For Each ImportLayer In ImportPart.LayerList
|
||||
' Select Case ImportLayer.Type
|
||||
' Case ImportLayer.LayerType.PRINT_SOLID
|
||||
' nPrintPartLayerId = EgtCreateGroup(nPartId)
|
||||
' EgtSetName(nPrintPartLayerId, PRINT_SOLID)
|
||||
' If ImportLayer.EntityList.Count > 0 Then
|
||||
' PrintSolidEntity = ImportLayer.EntityList(0)
|
||||
' EgtRelocateGlob(PrintSolidEntity.nId, nPrintPartLayerId, GDB_POS.LAST_SON)
|
||||
' ' calcolo box superficie per creazione riferimento
|
||||
' EgtGetBBoxGlob(PrintSolidEntity.nId, GDB_BB.STANDARD, b3PrintSolid)
|
||||
' End If
|
||||
' 'Case ImportLayer.LayerType.ORIGINAL_SOLID
|
||||
' ' nOriginalPartLayerId = EgtCreateGroup(nPartId)
|
||||
' ' EgtSetName(nOriginalPartLayerId, ORIGINAL_SOLID)
|
||||
' ' For Each GeomEntity In ImportLayer.EntityList
|
||||
' ' EgtRelocateGlob(GeomEntity.nId, nOriginalPartLayerId, GDB_POS.LAST_SON)
|
||||
' ' Next
|
||||
' Case ImportLayer.LayerType.MACH_START
|
||||
' nMachStartLayerId = EgtCreateGroup(nPartId)
|
||||
' EgtSetName(nMachStartLayerId, LAY_MACH_START)
|
||||
' Dim nMachStartId As Integer = GDB_ID.NULL
|
||||
' If ImportLayer.EntityList.Count > 0 Then
|
||||
' For Each GeomEntity In ImportLayer.EntityList
|
||||
' ' se punto o curva compo
|
||||
' Dim EntityType As GDB_TY = EgtGetType(GeomEntity.nId)
|
||||
' Select Case EntityType
|
||||
' Case GDB_TY.GEO_POINT, GDB_TY.CRV_COMPO
|
||||
' ' gli cambio layer
|
||||
' EgtRelocateGlob(GeomEntity.nId, nMachStartLayerId, GDB_POS.LAST_SON)
|
||||
' nMachStartId = GeomEntity.nId
|
||||
' Case GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_LINE
|
||||
' ' altrimenti la trasformo in curva compo
|
||||
' nMachStartId = EgtCreateCurveCompo(nMachStartLayerId, GeomEntity.nId, True)
|
||||
' End Select
|
||||
' EgtSetName(nMachStartId, START_GEOM)
|
||||
' ' coloro l'entita' di rosso
|
||||
' Dim c3Red As Color3d
|
||||
' c3Red.FromColor(System.Drawing.Color.Red)
|
||||
' EgtSetColor(nMachStartId, c3Red)
|
||||
' Next
|
||||
' Else
|
||||
' ' creo punto di partenza
|
||||
' Dim ptStart As Point3d = b3PrintSolid.Center() - 0.6 * b3PrintSolid.DimY() * Vector3d.Y_AX() - 0.5 * b3PrintSolid.DimZ() * Vector3d.Z_AX()
|
||||
' nMachStartId = EgtCreateGeoPoint(nMachStartLayerId, ptStart, GDB_RT.GLOB)
|
||||
' EgtSetName(nMachStartId, START_GEOM)
|
||||
' ' coloro l'entita' di rosso
|
||||
' Dim c3Red As Color3d
|
||||
' c3Red.FromColor(System.Drawing.Color.Red)
|
||||
' EgtSetColor(nMachStartId, c3Red)
|
||||
' End If
|
||||
' Case ImportLayer.LayerType.RIBS
|
||||
' nRibsLayerId = EgtCreateGroup(nPartId)
|
||||
' EgtSetName(nRibsLayerId, LAY_RIBS)
|
||||
' For Each GeomEntity In ImportLayer.EntityList
|
||||
' EgtSetInfo(GeomEntity.nId, KEY_RIB_TYPE, RibEntity.RibTypes.FROMIMPORT)
|
||||
' EgtRelocateGlob(GeomEntity.nId, nRibsLayerId, GDB_POS.LAST_SON)
|
||||
' ' coloro l'entita' di viola
|
||||
' Dim c3LightBlue As Color3d
|
||||
' c3LightBlue.FromColor(System.Drawing.Color.MediumOrchid)
|
||||
' EgtSetColor(GeomEntity.nId, c3LightBlue)
|
||||
' Next
|
||||
' Case ImportLayer.LayerType.SHELL_NUMBER
|
||||
' nShellNumberLayerId = EgtCreateGroup(nPartId)
|
||||
' EgtSetName(nShellNumberLayerId, LAY_SHELL_NBR)
|
||||
' For Each GeomEntity In ImportLayer.EntityList
|
||||
' EgtSetInfo(GeomEntity.nId, KEY_SHELLNBR_TYPE, ShellNumberEntity.ShellNumberTypes.FROMIMPORT)
|
||||
' EgtRelocateGlob(GeomEntity.nId, nShellNumberLayerId, GDB_POS.LAST_SON)
|
||||
' ' coloro l'entita' di verde
|
||||
' Dim c3LightBlue As Color3d
|
||||
' c3LightBlue.FromColor(System.Drawing.Color.Lime)
|
||||
' EgtSetColor(GeomEntity.nId, c3LightBlue)
|
||||
' Next
|
||||
' Case ImportLayer.LayerType.AUX_SOLIDS
|
||||
' nAuxSolidsLayerId = EgtCreateGroup(nPartId)
|
||||
' EgtSetName(nAuxSolidsLayerId, LAY_AUX_SOLIDS)
|
||||
' For Each GeomEntity In ImportLayer.EntityList
|
||||
' EgtSetInfo(GeomEntity.nId, KEY_AUXSOLID_TYPE, RibEntity.RibTypes.FROMIMPORT)
|
||||
' EgtRelocateGlob(GeomEntity.nId, nAuxSolidsLayerId, GDB_POS.LAST_SON)
|
||||
' ' coloro l'entita' di oro
|
||||
' Dim c3LightBlue As Color3d
|
||||
' c3LightBlue.FromColor(System.Drawing.Color.DarkGoldenrod)
|
||||
' EgtSetColor(GeomEntity.nId, c3LightBlue)
|
||||
' Next
|
||||
' Case ImportLayer.LayerType.OTHERS
|
||||
' nOthersLayerId = EgtCreateGroup(nPartId)
|
||||
' EgtSetName(nOthersLayerId, LAY_OTHERS)
|
||||
' For Each GeomEntity In ImportLayer.EntityList
|
||||
' EgtRelocateGlob(GeomEntity.nId, nOthersLayerId, GDB_POS.LAST_SON)
|
||||
' Next
|
||||
' End Select
|
||||
' Next
|
||||
' ' aggiungo riferimento
|
||||
' Dim nReferenceLayerId As Integer = EgtCreateGroup(nPartId)
|
||||
' EgtSetName(nReferenceLayerId, LAY_REFERENCE)
|
||||
' ' Creo riferimento
|
||||
' Dim ptOrig As New Point3d(b3PrintSolid.Min())
|
||||
' Select Case PrintSolidEntity.Reference
|
||||
' Case ChooseReferenceWndVM.References.TL
|
||||
' ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX
|
||||
' Case ChooseReferenceWndVM.References.TR
|
||||
' ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX + b3PrintSolid.DimX() * Vector3d.X_AX
|
||||
' Case ChooseReferenceWndVM.References.BL
|
||||
' Case ChooseReferenceWndVM.References.BR
|
||||
' ptOrig += b3PrintSolid.DimX() * Vector3d.X_AX
|
||||
' Case ChooseReferenceWndVM.References.TC
|
||||
' ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
|
||||
' Case ChooseReferenceWndVM.References.ML
|
||||
' ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX
|
||||
' Case ChooseReferenceWndVM.References.MR
|
||||
' ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() * Vector3d.X_AX
|
||||
' Case ChooseReferenceWndVM.References.TC
|
||||
' ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
|
||||
' Case ChooseReferenceWndVM.References.MR
|
||||
' ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() * Vector3d.X_AX
|
||||
' Case ChooseReferenceWndVM.References.BC
|
||||
' ptOrig += b3PrintSolid.DimX() / 2 * Vector3d.X_AX
|
||||
' Case ChooseReferenceWndVM.References.MC
|
||||
' ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
|
||||
' End Select
|
||||
' Dim frPrintSolid As New Frame3d(ptOrig)
|
||||
' nFrameId = EgtCreateGeoFrame(nReferenceLayerId, frPrintSolid, GDB_RT.GLOB)
|
||||
' If nFrameId Then
|
||||
' EgtSetName(nFrameId, FRAME_PART)
|
||||
' EgtSetMode(nFrameId, GDB_MD.LOCKED)
|
||||
' End If
|
||||
' EgtSetInfo(nReferenceLayerId, KEY_REFERENCE, PrintSolidEntity.Reference)
|
||||
' ' appoggio il pezzo sulla tavola
|
||||
' EgtMove( nPartId, New Vector3d(0, 0, -b3PrintSolid.Min.z))
|
||||
' ' lo aggiungo a lista pezzi
|
||||
' Dim sFilePath As String = ""
|
||||
' EgtGetInfo(m_nImportedPartId, FILE_PATH, sFilePath)
|
||||
' EgtSetInfo(nPartId, FILE_PATH, sFilePath)
|
||||
' EgtSetInfo(nPartId, "PartOnTable", 1)
|
||||
' Dim NewPart As New Print3dPartVM(nPartId, nPrintPartLayerId, PrintSolidEntity.nId, nOriginalPartLayerId, nReferenceLayerId, nFrameId, nMachStartLayerId, nRibsLayerId, nShellNumberLayerId, nAuxSolidsLayerId, nOthersLayerId, sFilePath)
|
||||
' Map.refTopPanelVM.PartList.Add(NewPart)
|
||||
' Next
|
||||
'End If
|
||||
''EgtAddMachGroup("3dPrint")
|
||||
''EgtSetTable("Tab")
|
||||
|
||||
''Dim nRawId As Integer = EgtAddRawPart(b3PrintSolid.Min, b3PrintSolid.DimX, b3PrintSolid.DimY, b3PrintSolid.DimZ, New Color3d(128, 128, 128, 30))
|
||||
''EgtAddPartToRawPart(nPartId, b3PrintSolid.Min, nRawId)
|
||||
''EgtMoveToCornerRawPart(nRawId, New Point3d(dPosX, dPosY, 0), MCH_CR.BL)
|
||||
|
||||
''EgtResetCurrMachGroup()
|
||||
|
||||
'' seleziono ultimo pezzo aggiunto
|
||||
'Map.refTopPanelVM.SelLastPart()
|
||||
'' elimino vecchio pezzo d'importazione
|
||||
'EgtErase(m_nImportedPartId)
|
||||
|
||||
'EgtDraw()
|
||||
' ripristino modalita' standard
|
||||
Map.refTopPanelVM.SelPage = Pages.MODIFY
|
||||
End Sub
|
||||
|
||||
#End Region ' Ok
|
||||
|
||||
#Region "Cancel"
|
||||
|
||||
Public ReadOnly Property Cancel_Command As ICommand
|
||||
Get
|
||||
If m_cmdCancel Is Nothing Then
|
||||
m_cmdCancel = New Command(AddressOf Cancel)
|
||||
End If
|
||||
Return m_cmdCancel
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Cancel()
|
||||
' ripristino modalita' standard
|
||||
Map.refTopPanelVM.SelPage = Pages.MODIFY
|
||||
End Sub
|
||||
|
||||
#End Region ' Cancel
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
End Class
|
||||
@@ -1,435 +0,0 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class ModifyEntity
|
||||
Inherits VMBase
|
||||
|
||||
' layer sotto cui e' questa entita'
|
||||
Private m_OrigLayer As ModifyLayer
|
||||
Friend ReadOnly Property OrigLayer As ModifyLayer
|
||||
Get
|
||||
Return m_OrigLayer
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bIsSelected As Boolean
|
||||
Public Property bIsSelected As Boolean
|
||||
Get
|
||||
Return m_bIsSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bIsSelected = value
|
||||
' seleziono in scena
|
||||
EgtDeselectAll()
|
||||
If Not IsNothing(value) Then
|
||||
EgtSelectObj(m_nId)
|
||||
End If
|
||||
EgtDraw()
|
||||
' segno come elemento selezionato in treeview
|
||||
Map.refModifyPartPanelVM.SetSelModifyEntity(Me)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_nId As Integer = GDB_ID.NULL
|
||||
Public ReadOnly Property nId As Integer
|
||||
Get
|
||||
Return m_nId
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sName As String
|
||||
Public ReadOnly Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ghName As String
|
||||
Get
|
||||
Return m_nId
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_MenuList As New List(Of MenuItemVm)
|
||||
Public Property MenuList As List(Of MenuItemVm)
|
||||
Get
|
||||
Return m_MenuList
|
||||
End Get
|
||||
Set(value As List(Of MenuItemVm))
|
||||
m_MenuList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(nId As Integer, sName As String, OrigLayer As ModifyLayer)
|
||||
m_nId = nId
|
||||
m_sName = sName
|
||||
m_OrigLayer = OrigLayer
|
||||
' aggiungo voci layer a contextmenu
|
||||
CreateContextMenu(OrigLayer)
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateContextMenu(OrigLayer As ModifyLayer)
|
||||
m_MenuList.Clear()
|
||||
' aggiungo voci layer a contextmenu
|
||||
CreateContextMenu(OrigLayer)
|
||||
End Sub
|
||||
|
||||
Friend Sub CreateContextMenu(OrigLayer As ModifyLayer)
|
||||
For Each ProjectPart In Map.refTopPanelVM.PartList
|
||||
' verifico in quali layer puo' andare questo elemento
|
||||
Dim EntityType As GDB_TY = EgtGetType(nId)
|
||||
Select Case EntityType
|
||||
Case GDB_TY.GEO_POINT, GDB_TY.CRV_COMPO, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_LINE
|
||||
' recupero i layer
|
||||
If OrigLayer.Type <> ModifyLayer.LayerType.MACH_START Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ModifyLayer.LayerType.MACH_START, ProjectPart))
|
||||
If OrigLayer.Type <> ModifyLayer.LayerType.OTHERS Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ModifyLayer.LayerType.OTHERS, ProjectPart))
|
||||
Case GDB_TY.SRF_MESH
|
||||
' verifico se volume chiuso
|
||||
If OrigLayer.Type <> ModifyLayer.LayerType.PRINT_SOLID Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ModifyLayer.LayerType.PRINT_SOLID, ProjectPart))
|
||||
If OrigLayer.Type <> ModifyLayer.LayerType.SHELL_NUMBER Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ModifyLayer.LayerType.SHELL_NUMBER, ProjectPart))
|
||||
If OrigLayer.Type <> ModifyLayer.LayerType.AUX_SOLIDS Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ModifyLayer.LayerType.AUX_SOLIDS, ProjectPart))
|
||||
If OrigLayer.Type <> ModifyLayer.LayerType.RIBS Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ModifyLayer.LayerType.RIBS, ProjectPart))
|
||||
If OrigLayer.Type <> ModifyLayer.LayerType.OTHERS Then m_MenuList.Add(New MenuItemVm(Me, OrigLayer, ModifyLayer.LayerType.OTHERS, ProjectPart))
|
||||
End Select
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateOrigLayer(NewLayer As ModifyLayer)
|
||||
m_OrigLayer = NewLayer
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class ModifyPart
|
||||
Inherits VMBase
|
||||
|
||||
Private m_bIsSelected As Boolean
|
||||
Public Property bIsSelected As Boolean
|
||||
Get
|
||||
Return m_bIsSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bIsSelected = value
|
||||
Map.refModifyPartPanelVM.SetSelModifyPart(Me)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_PrintPart As Print3dPartVM
|
||||
Public ReadOnly Property PrintPart As Print3dPartVM
|
||||
Get
|
||||
Return m_PrintPart
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sName As String
|
||||
Public Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ghName As String
|
||||
Get
|
||||
Return m_PrintPart.sImportedFileName
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_LayerList As New ObservableCollection(Of ModifyLayer)
|
||||
Public ReadOnly Property LayerList As ObservableCollection(Of ModifyLayer)
|
||||
Get
|
||||
Return m_LayerList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Sub New(PrintPart As Print3dPartVM)
|
||||
m_PrintPart = PrintPart
|
||||
m_LayerList.Add(New ModifyLayer(ModifyLayer.LayerType.PRINT_SOLID, "Print", PrintPart))
|
||||
m_LayerList.Add(New ModifyLayer(ModifyLayer.LayerType.MACH_START, "Layer Start", PrintPart))
|
||||
m_LayerList.Add(New ModifyLayer(ModifyLayer.LayerType.RIBS, "Ribs", PrintPart))
|
||||
m_LayerList.Add(New ModifyLayer(ModifyLayer.LayerType.SHELL_NUMBER, "Reduce Shell Number", PrintPart))
|
||||
m_LayerList.Add(New ModifyLayer(ModifyLayer.LayerType.AUX_SOLIDS, "Filled Solids", PrintPart))
|
||||
m_LayerList.Add(New ModifyLayer(ModifyLayer.LayerType.OTHERS, "Others", PrintPart))
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class ModifyLayer
|
||||
Inherits VMBase
|
||||
|
||||
Public Enum LayerType As Integer
|
||||
PRINT_SOLID = 1
|
||||
MACH_START = 2
|
||||
RIBS = 3
|
||||
SHELL_NUMBER = 4
|
||||
AUX_SOLIDS = 5
|
||||
OTHERS = 6
|
||||
End Enum
|
||||
|
||||
Private m_nLayerId As Integer
|
||||
|
||||
Private m_bIsSelected As Boolean
|
||||
Public Property bIsSelected As Boolean
|
||||
Get
|
||||
Return m_bIsSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_bIsSelected = value
|
||||
Map.refModifyPartPanelVM.SetSelModifyLayer(Me)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_Type As LayerType
|
||||
Public Property Type As LayerType
|
||||
Get
|
||||
Return m_Type
|
||||
End Get
|
||||
Set(value As LayerType)
|
||||
m_Type = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_sName As String
|
||||
Public Property sName As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_EntityList As New ObservableCollection(Of ModifyEntity)
|
||||
Public Property EntityList As ObservableCollection(Of ModifyEntity)
|
||||
Get
|
||||
Return m_EntityList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of ModifyEntity))
|
||||
m_EntityList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(Type As LayerType, sName As String)
|
||||
m_Type = Type
|
||||
m_sName = sName
|
||||
End Sub
|
||||
|
||||
Sub New(Type As LayerType, sName As String, PrintPart As Print3dPartVM)
|
||||
m_Type = Type
|
||||
m_sName = sName
|
||||
Select Case Type
|
||||
Case LayerType.PRINT_SOLID
|
||||
m_nLayerId = PrintPart.nPrintSolidLayerId
|
||||
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
|
||||
Dim sEntitytName As String = ""
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName, Me))
|
||||
Case LayerType.MACH_START
|
||||
m_nLayerId = PrintPart.nMachStartLayerId
|
||||
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
|
||||
Dim sEntitytName As String = ""
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
While nEntityId <> GDB_ID.NULL
|
||||
m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName, Me))
|
||||
nEntityId = EgtGetNext(nEntityId)
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
End While
|
||||
Case LayerType.RIBS
|
||||
m_nLayerId = PrintPart.nRibsLayerId
|
||||
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
|
||||
Dim sEntitytName As String = ""
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
While nEntityId <> GDB_ID.NULL
|
||||
Dim RibType As Integer = RibEntity.RibTypes.FROMDRAW
|
||||
EgtGetInfo(nEntityId, KEY_RIB_TYPE, RibType)
|
||||
If RibType = RibEntity.RibTypes.FROMIMPORT Then
|
||||
m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName, Me))
|
||||
End If
|
||||
nEntityId = EgtGetNext(nEntityId)
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
End While
|
||||
Case LayerType.SHELL_NUMBER
|
||||
m_nLayerId = PrintPart.nShellNumberLayerId
|
||||
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
|
||||
Dim sEntitytName As String = ""
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
While nEntityId <> GDB_ID.NULL
|
||||
Dim ShellType As Integer = ShellNumberEntity.ShellNumberTypes.FROMDRAW
|
||||
EgtGetInfo(nEntityId, KEY_SHELLNBR_TYPE, ShellType)
|
||||
If ShellType = ShellNumberEntity.ShellNumberTypes.FROMIMPORT Then
|
||||
m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName, Me))
|
||||
End If
|
||||
nEntityId = EgtGetNext(nEntityId)
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
End While
|
||||
Case LayerType.AUX_SOLIDS
|
||||
m_nLayerId = PrintPart.nAuxSolidsLayerId
|
||||
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
|
||||
Dim sEntitytName As String = ""
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
While nEntityId <> GDB_ID.NULL
|
||||
'Dim ShellType As Integer = ShellNumberEntity.ShellNumberTypes.FROMDRAW
|
||||
'EgtGetInfo(nEntityId, KEY_SHELLNBR_TYPE, ShellType)
|
||||
'If ShellType = ShellNumberEntity.ShellNumberTypes.FROMIMPORT Then
|
||||
m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName, Me))
|
||||
'End If
|
||||
nEntityId = EgtGetNext(nEntityId)
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
End While
|
||||
Case LayerType.OTHERS
|
||||
m_nLayerId = PrintPart.nOthersLayerId
|
||||
Dim nEntityId As Integer = EgtGetFirstInGroup(m_nLayerId)
|
||||
Dim sEntitytName As String = ""
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
While nEntityId <> GDB_ID.NULL
|
||||
m_EntityList.Add(New ModifyEntity(nEntityId, sEntitytName, Me))
|
||||
nEntityId = EgtGetNext(nEntityId)
|
||||
EgtGetName(nEntityId, sEntitytName)
|
||||
End While
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class MenuItemVm
|
||||
Inherits VMBase
|
||||
|
||||
' enita' di origine
|
||||
Private m_OrigEntity As ModifyEntity
|
||||
Private m_OrigLayer As ModifyLayer
|
||||
|
||||
' pezzo in cui spostare
|
||||
Private m_Part As Print3dPartVM
|
||||
|
||||
' tipo del layer indicato
|
||||
Private m_Type As ModifyLayer.LayerType
|
||||
Public Property Type As ModifyLayer.LayerType
|
||||
Get
|
||||
Return m_Type
|
||||
End Get
|
||||
Set(value As ModifyLayer.LayerType)
|
||||
m_Type = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sMsg As String
|
||||
Get
|
||||
Dim sType As String = ""
|
||||
Select Case m_Type
|
||||
Case ModifyLayer.LayerType.PRINT_SOLID
|
||||
sType = "Print"
|
||||
Case ModifyLayer.LayerType.MACH_START
|
||||
sType = "Layer Start"
|
||||
Case ModifyLayer.LayerType.RIBS
|
||||
sType = "Ribs"
|
||||
Case ModifyLayer.LayerType.SHELL_NUMBER
|
||||
sType = "Reduce shell number"
|
||||
Case ModifyLayer.LayerType.AUX_SOLIDS
|
||||
sType = "Filled Solids"
|
||||
Case ModifyLayer.LayerType.OTHERS
|
||||
sType = "Others"
|
||||
End Select
|
||||
Return "Move to " & sType
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Definizione comando
|
||||
Private m_cmdCommand As ICommand
|
||||
|
||||
Sub New(OrigEntity As ModifyEntity, OrigLayer As ModifyLayer, Type As ModifyLayer.LayerType, Part As Print3dPartVM)
|
||||
m_OrigEntity = OrigEntity
|
||||
m_OrigLayer = OrigLayer
|
||||
m_Type = Type
|
||||
m_Part = Part
|
||||
End Sub
|
||||
|
||||
#Region "Cancel"
|
||||
|
||||
Public ReadOnly Property MenuItem_Command As ICommand
|
||||
Get
|
||||
If m_cmdCommand Is Nothing Then
|
||||
m_cmdCommand = New Command(AddressOf Command)
|
||||
End If
|
||||
Return m_cmdCommand
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Command()
|
||||
' recupero layer da pezzo
|
||||
Dim nLayerId As Integer = GDB_ID.NULL
|
||||
Select Case m_Type
|
||||
Case ModifyLayer.LayerType.PRINT_SOLID
|
||||
nLayerId = m_Part.nPrintSolidLayerId
|
||||
Case ModifyLayer.LayerType.MACH_START
|
||||
nLayerId = m_Part.nMachStartLayerId
|
||||
Case ModifyLayer.LayerType.RIBS
|
||||
nLayerId = m_Part.nRibsLayerId
|
||||
Case ModifyLayer.LayerType.SHELL_NUMBER
|
||||
nLayerId = m_Part.nShellNumberLayerId
|
||||
Case ModifyLayer.LayerType.AUX_SOLIDS
|
||||
nLayerId = m_Part.nAuxSolidsLayerId
|
||||
Case ModifyLayer.LayerType.OTHERS
|
||||
nLayerId = m_Part.nOthersLayerId
|
||||
End Select
|
||||
' sposto entita'
|
||||
If EgtRelocateGlob(m_OrigEntity.nId, nLayerId) Then
|
||||
' elimino info vecchio layer
|
||||
Select Case m_OrigLayer.Type
|
||||
Case ModifyLayer.LayerType.PRINT_SOLID
|
||||
EgtResetMark(m_OrigEntity.nId)
|
||||
Case ModifyLayer.LayerType.MACH_START
|
||||
Case ModifyLayer.LayerType.RIBS
|
||||
EgtRemoveInfo(m_OrigEntity.nId, KEY_RIB_TYPE)
|
||||
Case ModifyLayer.LayerType.SHELL_NUMBER
|
||||
EgtRemoveInfo(m_OrigEntity.nId, KEY_SHELLNBR_TYPE)
|
||||
Case ModifyLayer.LayerType.AUX_SOLIDS
|
||||
EgtRemoveInfo(m_OrigEntity.nId, KEY_AUXSOLID_TYPE)
|
||||
Case ModifyLayer.LayerType.OTHERS
|
||||
End Select
|
||||
' sposto in lista
|
||||
m_OrigLayer.EntityList.Remove(m_OrigEntity)
|
||||
Dim NewPart As ModifyPart = Map.refModifyPartPanelVM.ModifyPartList.FirstOrDefault(Function(x) x.PrintPart.nPartId = m_Part.nPartId)
|
||||
If Not IsNothing(NewPart) Then
|
||||
Dim NewLayer As ModifyLayer = NewPart.LayerList.FirstOrDefault(Function(x) x.Type = m_Type)
|
||||
If Not IsNothing(NewLayer) Then
|
||||
NewLayer.EntityList.Add(m_OrigEntity)
|
||||
' aggiorno riferimenti nell'entita'
|
||||
m_OrigEntity.UpdateOrigLayer(NewLayer)
|
||||
End If
|
||||
End If
|
||||
' aggiungo info nuovo layer
|
||||
Select Case m_Type
|
||||
Case ModifyLayer.LayerType.PRINT_SOLID
|
||||
EgtSetName(m_OrigEntity.nId, PRINT_SOLID)
|
||||
EgtSetColor(m_OrigEntity.nId, c3Print)
|
||||
Case ModifyLayer.LayerType.MACH_START
|
||||
EgtSetName(m_OrigEntity.nId, LAY_MACH_START)
|
||||
EgtSetColor(m_OrigEntity.nId, c3MachStart)
|
||||
Case ModifyLayer.LayerType.RIBS
|
||||
EgtSetName(m_OrigEntity.nId, LAY_RIBS)
|
||||
EgtSetInfo(m_OrigEntity.nId, KEY_RIB_TYPE, RibEntity.RibTypes.FROMIMPORT)
|
||||
EgtSetColor(m_OrigEntity.nId, c3Rib)
|
||||
Case ModifyLayer.LayerType.SHELL_NUMBER
|
||||
EgtSetName(m_OrigEntity.nId, LAY_SHELL_NBR)
|
||||
EgtSetInfo(m_OrigEntity.nId, KEY_SHELLNBR_TYPE, ShellNumberEntity.ShellNumberTypes.FROMIMPORT)
|
||||
EgtSetColor(m_OrigEntity.nId, c3ShellNumber)
|
||||
Case ModifyLayer.LayerType.AUX_SOLIDS
|
||||
EgtSetName(m_OrigEntity.nId, LAY_AUX_SOLIDS)
|
||||
EgtSetInfo(m_OrigEntity.nId, KEY_AUXSOLID_TYPE, RibEntity.RibTypes.FROMIMPORT)
|
||||
EgtSetColor(m_OrigEntity.nId, c3AuxSolids)
|
||||
Case ModifyLayer.LayerType.OTHERS
|
||||
EgtSetName(m_OrigEntity.nId, LAY_OTHERS)
|
||||
EgtSetColor(m_OrigEntity.nId, c3Others)
|
||||
End Select
|
||||
EgtDraw()
|
||||
' aggiorno riferimenti nel context menu item
|
||||
m_OrigEntity.UpdateContextMenu(m_OrigEntity.OrigLayer)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' Cancel
|
||||
|
||||
End Class
|
||||
@@ -11,6 +11,7 @@ Imports System.Windows
|
||||
|
||||
' Review the values of the assembly attributes
|
||||
|
||||
#If PLATFORM = "x64" Then
|
||||
#If DEBUG Then
|
||||
<Assembly: AssemblyTitle("IcarusD64.exe")>
|
||||
<Assembly: AssemblyDescription("Icarus Debug 64 bit")>
|
||||
@@ -18,9 +19,18 @@ Imports System.Windows
|
||||
<Assembly: AssemblyTitle("IcarusR64.exe")>
|
||||
<Assembly: AssemblyDescription("Icarus 64 bit")>
|
||||
#End If
|
||||
#Else
|
||||
#If DEBUG Then
|
||||
<Assembly: AssemblyTitle("IcarusD32.exe")>
|
||||
<Assembly: AssemblyDescription("Icarus Debug 32 bit")>
|
||||
#Else
|
||||
<Assembly: AssemblyTitle("IcarusR32.exe")>
|
||||
<Assembly: AssemblyDescription("Icarus 32 bit")>
|
||||
#End If
|
||||
#End If
|
||||
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
||||
<Assembly: AssemblyProduct("Icarus")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2022 by Egalware s.r.l.")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2022-2023 by Egalware s.r.l.")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
<Assembly: ComVisible(false)>
|
||||
|
||||
@@ -60,5 +70,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.11.1")>
|
||||
<Assembly: AssemblyFileVersion("2.4.11.1")>
|
||||
<Assembly: AssemblyVersion("2.5.1.1")>
|
||||
<Assembly: AssemblyFileVersion("2.5.1.1")>
|
||||
|
||||
@@ -80,13 +80,6 @@
|
||||
</TabItem>
|
||||
<TabItem Header="{Binding CADMsg}">
|
||||
<StackPanel Margin="5,5,5,0">
|
||||
<!--<UniformGrid Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding DefMaterialColorMsg}" VerticalAlignment="Center"/>
|
||||
<Button Background="{Binding DefMaterialColor}"
|
||||
Command="{Binding DefMaterialColor_Command}"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
</UniformGrid>-->
|
||||
<UniformGrid Grid.ColumnSpan="2" Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding GeometryToleranceMsg}" VerticalAlignment="Center"/>
|
||||
@@ -94,6 +87,38 @@
|
||||
VerticalContentAlignment="Center"
|
||||
Margin="10,0,0,0"/>
|
||||
</UniformGrid>
|
||||
<ItemsControl ItemsSource="{Binding LayerColorList}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<UniformGrid Columns="2"
|
||||
Margin="0,0,0,5">
|
||||
<TextBlock Text="{Binding Color_Msg}" VerticalAlignment="Center"/>
|
||||
<Grid Margin="10,0,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="35"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Background="{Binding Background}"
|
||||
Command="{Binding Color_Command}"
|
||||
Margin="0,0,5,0"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Slider Grid.Column="1"
|
||||
Value="{Binding dAlpha}"
|
||||
Minimum="10"
|
||||
Maximum="100"
|
||||
TickPlacement="BottomRight"
|
||||
TickFrequency="10"
|
||||
IsSnapToTickEnabled="True"
|
||||
Margin="0,0,5,0"/>
|
||||
<TextBlock Grid.Column="2"
|
||||
Text="{Binding sAlpha}"
|
||||
TextAlignment="Right"/>
|
||||
</Grid>
|
||||
</UniformGrid>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
<!--<GroupBox Grid.Column="1" Grid.RowSpan="2"
|
||||
Header="{Binding DimensionMsg}"
|
||||
Margin="0,0,0,5">
|
||||
|
||||
@@ -179,12 +179,16 @@ Public Class OptionWindowVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property DefMaterialColor As Brush
|
||||
' lista oggetti che gestiscono colori e trasparenze delle catogorie
|
||||
Private m_LayerColorList As New ObservableCollection(Of LayerColor)({New LayerColor(LayerColor.LayerType.PRINTPART),
|
||||
New LayerColor(LayerColor.LayerType.RIBS),
|
||||
New LayerColor(LayerColor.LayerType.SHELLNUMBERS),
|
||||
New LayerColor(LayerColor.LayerType.AUXSOLIDS),
|
||||
New LayerColor(LayerColor.LayerType.MACHSTART),
|
||||
New LayerColor(LayerColor.LayerType.OTHERS)})
|
||||
Public ReadOnly Property LayerColorList As ObservableCollection(Of LayerColor)
|
||||
Get
|
||||
Return New SolidColorBrush(Color.FromArgb(CByte(255),
|
||||
CByte(OptionModule.m_DefMaterialColor.R),
|
||||
CByte(OptionModule.m_DefMaterialColor.G),
|
||||
CByte(OptionModule.m_DefMaterialColor.B)))
|
||||
Return m_LayerColorList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -195,7 +199,7 @@ Public Class OptionWindowVM
|
||||
Set(value As Boolean)
|
||||
OptionModule.m_bThickLine = value
|
||||
WriteMainPrivateProfileString(S_SCENE, K_LINEWIDTH, If(value, "2", "1"))
|
||||
EgtSetLineAttribs( If( value, 2, 1))
|
||||
EgtSetLineAttribs(If(value, 2, 1))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -510,11 +514,11 @@ Public Class OptionWindowVM
|
||||
'End Property
|
||||
|
||||
' Definizione comandi
|
||||
|
||||
Private m_cmdTopSceneBackground As ICommand
|
||||
Private m_cmdBotSceneBackground As ICommand
|
||||
Private m_cmdGridColor As ICommand
|
||||
Private m_cmdUpdateLicenceCmd As ICommand
|
||||
Private m_cmdDefMaterialColor As ICommand
|
||||
Private m_cmdAddMachineCmd As ICommand
|
||||
Private m_cmdExportMachineCmd As ICommand
|
||||
|
||||
@@ -583,11 +587,6 @@ Public Class OptionWindowVM
|
||||
Return EgtMsg(6513)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property DefMaterialColorMsg As String
|
||||
Get
|
||||
Return EgtMsg(6512)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ImportMsg As String
|
||||
Get
|
||||
@@ -747,9 +746,35 @@ Public Class OptionWindowVM
|
||||
|
||||
#End Region
|
||||
|
||||
Public Function WritePrivateProfileColor(IpAppName As String, IpKeyName As String, ByRef Color As Color3d) As Boolean
|
||||
Dim sColor As String = Color.R & "," & Color.G & "," & Color.B
|
||||
Return EgtUILib.WritePrivateProfileString(IpAppName, IpKeyName, sColor, m_sIniFile)
|
||||
Private Function SelectColor(Col As Color3d, ByRef NewCol As Color3d) As Boolean
|
||||
' Recupero colori custom
|
||||
Dim sCustomColors As String = ""
|
||||
GetMainPrivateProfileString(S_COLORS, K_CUSTOMCOLORS, "", sCustomColors)
|
||||
Dim CustomColors() As String = sCustomColors.Split(","c)
|
||||
Dim nCustomColors As New List(Of Integer)
|
||||
For Each Color In CustomColors
|
||||
Dim nColor As Integer
|
||||
If Integer.TryParse(Color, nColor) Then
|
||||
nCustomColors.Add(nColor)
|
||||
End If
|
||||
Next
|
||||
' Creo dialogo colori
|
||||
Dim ColorDlg As New System.Windows.Forms.ColorDialog
|
||||
ColorDlg.FullOpen = True
|
||||
ColorDlg.CustomColors = nCustomColors.ToArray()
|
||||
ColorDlg.Color = Col.ToColor()
|
||||
' Visualizzo dialogo
|
||||
If ColorDlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return False
|
||||
' Recupero colore scelto
|
||||
NewCol.FromColor(ColorDlg.Color)
|
||||
' Salvo eventuali modifiche ai colori custom
|
||||
sCustomColors = ""
|
||||
For Each Color In ColorDlg.CustomColors
|
||||
sCustomColors &= Color.ToString() & ","
|
||||
Next
|
||||
sCustomColors = sCustomColors.Trim({" "c, ","c})
|
||||
WriteMainPrivateProfileString(S_COLORS, K_CUSTOMCOLORS, sCustomColors)
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#Region "COMMANDS"
|
||||
@@ -854,41 +879,6 @@ Public Class OptionWindowVM
|
||||
|
||||
#End Region ' GridColor
|
||||
|
||||
#Region "DefMaterialColor"
|
||||
|
||||
'''' <summary>
|
||||
'''' Returns a command that remove the current selected machining.
|
||||
'''' </summary>
|
||||
'Public ReadOnly Property DefMaterialColor_Command() As ICommand
|
||||
' Get
|
||||
' If m_cmdDefMaterialColor Is Nothing Then
|
||||
' m_cmdDefMaterialColor = New Command(AddressOf DefMaterialColorCmd)
|
||||
' End If
|
||||
' Return m_cmdDefMaterialColor
|
||||
' End Get
|
||||
'End Property
|
||||
|
||||
'''' <summary>
|
||||
'''' Manage the MachiningDb closing. This method is invoked by the CloseMachiningDbCommand.
|
||||
'''' </summary>
|
||||
'Public Sub DefMaterialColorCmd()
|
||||
' ' Recupero colore da Ini
|
||||
' Dim DefColor As New Color3d(192, 192, 192)
|
||||
' GetMainPrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, DefColor)
|
||||
' ' Eseguo modifica con dialogo
|
||||
' If SelectColor(DefColor, DefColor) Then
|
||||
' OptionModule.m_DefMaterialColor = DefColor
|
||||
' Map.refSceneHostVM.MainScene.SetDefaultMaterial(OptionModule.m_DefMaterialColor)
|
||||
' WritePrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, OptionModule.m_DefMaterialColor)
|
||||
' EgtDraw()
|
||||
' Map.refManageLayerExpanderVM.UpdateHeaderColor(OptionModule.m_DefMaterialColor)
|
||||
' Map.refManageLayerExpanderVM.LoadObjTree()
|
||||
' NotifyPropertyChanged("DefMaterialColor")
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
#End Region ' DefMaterialColor
|
||||
|
||||
#Region "UpdateLicence"
|
||||
|
||||
''' <summary>
|
||||
@@ -1165,10 +1155,96 @@ Public Class OptionWindowVM
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
End Class
|
||||
|
||||
Public Class LayerColor
|
||||
Inherits VMBase
|
||||
|
||||
Public Enum LayerType As Integer
|
||||
PRINTPART = 1
|
||||
RIBS = 2
|
||||
SHELLNUMBERS = 3
|
||||
AUXSOLIDS = 4
|
||||
MACHSTART = 5
|
||||
OTHERS = 6
|
||||
End Enum
|
||||
|
||||
Private m_Type As LayerType
|
||||
Public ReadOnly Property c3Color As Color3d
|
||||
Get
|
||||
Select Case m_Type
|
||||
Case LayerType.PRINTPART
|
||||
Return GeomEntityColors.c3Print
|
||||
Case LayerType.RIBS
|
||||
Return GeomEntityColors.c3Rib
|
||||
Case LayerType.SHELLNUMBERS
|
||||
Return GeomEntityColors.c3ShellNumber
|
||||
Case LayerType.AUXSOLIDS
|
||||
Return GeomEntityColors.c3AuxSolids
|
||||
Case LayerType.MACHSTART
|
||||
Return GeomEntityColors.c3MachStart
|
||||
Case LayerType.OTHERS
|
||||
Return GeomEntityColors.c3Others
|
||||
End Select
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Background As Brush
|
||||
Get
|
||||
Return New SolidColorBrush(Color.FromArgb(CByte(255),
|
||||
CByte(c3Color.R),
|
||||
CByte(c3Color.G),
|
||||
CByte(c3Color.B)))
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Property dAlpha As Double
|
||||
Get
|
||||
Return c3Color.A
|
||||
End Get
|
||||
Set(value As Double)
|
||||
GeomEntityColors.SetAlpha(m_Type, value)
|
||||
NotifyPropertyChanged(NameOf(sAlpha))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sAlpha As String
|
||||
Get
|
||||
Return c3Color.A & "%"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Color_Msg As String
|
||||
Get
|
||||
Select Case m_Type
|
||||
Case LayerType.PRINTPART
|
||||
Return "Print"
|
||||
Case LayerType.RIBS
|
||||
Return "Ribs"
|
||||
Case LayerType.SHELLNUMBERS
|
||||
Return "Reduce Shell Number"
|
||||
Case LayerType.AUXSOLIDS
|
||||
Return "Filled Solids"
|
||||
Case LayerType.MACHSTART
|
||||
Return "Layer Start"
|
||||
Case LayerType.OTHERS
|
||||
Return "Others"
|
||||
Case Else
|
||||
Return ""
|
||||
End Select
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_cmdColor As ICommand
|
||||
|
||||
Sub New(Type As LayerType)
|
||||
m_Type = Type
|
||||
End Sub
|
||||
|
||||
Private Function SelectColor(Col As Color3d, ByRef NewCol As Color3d) As Boolean
|
||||
' Recupero colori custom
|
||||
Dim sCustomColors As String = ""
|
||||
GetMainPrivateProfileString(S_SCENE, K_CUSTOMCOLORS, "", sCustomColors)
|
||||
GetMainPrivateProfileString(S_COLORS, K_CUSTOMCOLORS, "", sCustomColors)
|
||||
Dim CustomColors() As String = sCustomColors.Split(","c)
|
||||
Dim nCustomColors As New List(Of Integer)
|
||||
For Each Color In CustomColors
|
||||
@@ -1192,10 +1268,39 @@ Public Class OptionWindowVM
|
||||
sCustomColors &= Color.ToString() & ","
|
||||
Next
|
||||
sCustomColors = sCustomColors.Trim({" "c, ","c})
|
||||
WriteMainPrivateProfileString(S_SCENE, K_CUSTOMCOLORS, sCustomColors)
|
||||
WriteMainPrivateProfileString(S_COLORS, K_CUSTOMCOLORS, sCustomColors)
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#Region "Color"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that remove the current selected machining.
|
||||
''' </summary>
|
||||
Public ReadOnly Property Color_Command() As ICommand
|
||||
Get
|
||||
If m_cmdColor Is Nothing Then
|
||||
m_cmdColor = New Command(AddressOf ColorCmd)
|
||||
End If
|
||||
Return m_cmdColor
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Manage the MachiningDb closing. This method is invoked by the CloseMachiningDbCommand.
|
||||
''' </summary>
|
||||
Public Sub ColorCmd()
|
||||
' Recupero colore da Ini
|
||||
Dim c3Print As Color3d = c3Color
|
||||
' Eseguo modifica con dialogo
|
||||
If SelectColor(c3Color, c3Print) Then
|
||||
GeomEntityColors.SetColor(m_Type, c3Print)
|
||||
NotifyPropertyChanged(NameOf(Background))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' PrintPartColor
|
||||
|
||||
End Class
|
||||
|
||||
'Public Class GeomTypeConverter
|
||||
|
||||
@@ -49,6 +49,12 @@
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Import.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding ExportCommand}"
|
||||
ToolTip="{Binding ExportToolTip}"
|
||||
IsEnabled="{Binding ProjCmd_IsEnabled}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Export.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<!--<Button Command="{Binding ExportCommand}" ToolTip="{Binding ExportToolTip}"
|
||||
IsEnabled="{Binding DrawIsChecked}">
|
||||
<Image Source="/Resources/ProjectManager/Export.png" Stretch="Uniform"/>
|
||||
|
||||
@@ -60,6 +60,7 @@ Public Class ProjManagerVM
|
||||
Private m_cmdSave As ICommand
|
||||
Private m_cmdSaveAs As ICommand
|
||||
Private m_cmdImport As ICommand
|
||||
Private m_cmdExport As ICommand
|
||||
Private m_cmdOptions As ICommand
|
||||
Private m_cmdSendFeedback As ICommand
|
||||
|
||||
@@ -319,6 +320,29 @@ Public Class ProjManagerVM
|
||||
|
||||
#End Region ' Import
|
||||
|
||||
#Region "ExportCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Export.
|
||||
''' </summary>
|
||||
Public ReadOnly Property ExportCommand As ICommand
|
||||
Get
|
||||
If m_cmdExport Is Nothing Then
|
||||
m_cmdExport = New Command(AddressOf Export)
|
||||
End If
|
||||
Return m_cmdExport
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the Export. This method is invoked by the ExportCommand.
|
||||
''' </summary>
|
||||
Public Sub Export(ByVal param As Object)
|
||||
Map.refSceneHostVM.ExportProject()
|
||||
End Sub
|
||||
|
||||
#End Region ' ExportCommand
|
||||
|
||||
#Region "Options"
|
||||
|
||||
''' <summary>
|
||||
|
||||
@@ -67,17 +67,18 @@ Public Class ReferencePanelVM
|
||||
NotifyPropertyChanged(NameOf(ghSelReference))
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateFramePosition()
|
||||
Friend Sub UpdateFramePosition(Optional SelPart As Print3dPartVM = Nothing)
|
||||
If IsNothing(SelPart) Then SelPart = Map.refTopPanelVM.SelPart
|
||||
' elimino precedente
|
||||
EgtEmptyGroup(Map.refTopPanelVM.SelPart.nReferenceLayerId)
|
||||
EgtEmptyGroup(SelPart.nReferenceLayerId)
|
||||
' Creo riferimento
|
||||
Dim frPrintSolid As New Frame3d()
|
||||
If m_SelReference = ReferenceBtn.References.FROM_IMPORT Then
|
||||
EgtGetGlobFrame(Map.refTopPanelVM.SelPart.nPrintSolidId, frPrintSolid)
|
||||
EgtGetGlobFrame(SelPart.nPrintSolidId, frPrintSolid)
|
||||
frPrintSolid.Setup(New Point3d(frPrintSolid.Orig.x, frPrintSolid.Orig.y, 0))
|
||||
Else
|
||||
Dim b3PrintSolid As New BBox3d
|
||||
EgtGetBBoxGlob(Map.refTopPanelVM.SelPart.nPrintSolidId, GDB_BB.STANDARD, b3PrintSolid)
|
||||
EgtGetBBoxGlob(SelPart.nPrintSolidId, GDB_BB.STANDARD, b3PrintSolid)
|
||||
' Creo riferimento
|
||||
Dim ptOrig As New Point3d(b3PrintSolid.Min())
|
||||
Select Case m_SelReference
|
||||
@@ -103,15 +104,18 @@ Public Class ReferencePanelVM
|
||||
Case ReferenceBtn.References.MC
|
||||
ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
|
||||
End Select
|
||||
Dim vtMovedPart As Vector3d
|
||||
EgtGetInfo(SelPart.nPartId, "MovedPart", vtMovedPart)
|
||||
ptOrig = ptOrig - vtMovedPart
|
||||
frPrintSolid = New Frame3d(ptOrig)
|
||||
End If
|
||||
Dim nFrameId As Integer = EgtCreateGeoFrame(Map.refTopPanelVM.SelPart.nReferenceLayerId, frPrintSolid, GDB_RT.GLOB)
|
||||
Dim nFrameId As Integer = EgtCreateGeoFrame(SelPart.nReferenceLayerId, frPrintSolid, GDB_RT.GLOB)
|
||||
If nFrameId Then
|
||||
EgtSetName(nFrameId, FRAME_PART)
|
||||
EgtSetMode(nFrameId, GDB_MD.LOCKED)
|
||||
Map.refTopPanelVM.SelPart.UpdateReferenceId(nFrameId)
|
||||
SelPart.UpdateReferenceId(nFrameId)
|
||||
End If
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nReferenceLayerId, KEY_REFERENCE, m_SelReference)
|
||||
EgtSetInfo(SelPart.nReferenceLayerId, KEY_REFERENCE, m_SelReference)
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 947 B |
|
Before Width: | Height: | Size: 477 B |
|
Before Width: | Height: | Size: 691 B |
|
Before Width: | Height: | Size: 812 B |
|
Before Width: | Height: | Size: 757 B |
|
Before Width: | Height: | Size: 792 B |
|
Before Width: | Height: | Size: 434 B |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 468 B |
|
Before Width: | Height: | Size: 525 B |
|
Before Width: | Height: | Size: 315 B |
|
Before Width: | Height: | Size: 434 B |
|
Before Width: | Height: | Size: 474 B |
|
Before Width: | Height: | Size: 290 B |
|
Before Width: | Height: | Size: 397 B |
|
Before Width: | Height: | Size: 478 B |
|
Before Width: | Height: | Size: 503 B |
|
After Width: | Height: | Size: 603 B |
|
After Width: | Height: | Size: 671 B |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 449 B |
|
Before Width: | Height: | Size: 427 B |
|
Before Width: | Height: | Size: 681 B |
|
Before Width: | Height: | Size: 599 B |
|
Before Width: | Height: | Size: 561 B |
|
Before Width: | Height: | Size: 286 B |
|
Before Width: | Height: | Size: 449 B |
|
Before Width: | Height: | Size: 472 B |
|
Before Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 299 B |
|
Before Width: | Height: | Size: 427 B |
|
Before Width: | Height: | Size: 479 B |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 318 B |
|
After Width: | Height: | Size: 603 B |
|
Before Width: | Height: | Size: 604 B |
|
Before Width: | Height: | Size: 785 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 312 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 367 B |
|
Before Width: | Height: | Size: 541 B |
@@ -206,6 +206,7 @@
|
||||
Grid.Row="6"
|
||||
Content="Grid"
|
||||
IsChecked="{Binding bGrid_IsChecked}"
|
||||
IsEnabled="{Binding bGrid_IsEnabled}"
|
||||
Style="{StaticResource ToolBar_TextToggleButton}"/>
|
||||
<Border Grid.Column="1"
|
||||
Grid.Row="5"
|
||||
@@ -515,15 +516,15 @@
|
||||
<UniformGrid Columns="3">
|
||||
<RadioButton Content="X"
|
||||
GroupName="Axes"
|
||||
IsChecked="{Binding RotAxes[0]}"
|
||||
IsChecked="{Binding RotX}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"/>
|
||||
<RadioButton Content="Y"
|
||||
GroupName="Axes"
|
||||
IsChecked="{Binding RotAxes[1]}"
|
||||
IsChecked="{Binding RotY}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"/>
|
||||
<RadioButton Content="Z"
|
||||
GroupName="Axes"
|
||||
IsChecked="{Binding RotAxes[2]}"
|
||||
IsChecked="{Binding RotZ}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:EgtTextBox Grid.Row="1"
|
||||
|
||||
@@ -41,7 +41,7 @@ Public Class RibPanelVM
|
||||
End Get
|
||||
Set(value As RibEntity)
|
||||
m_SelRib = value
|
||||
EgtDeselectLayerObjs(m_nRibLayerId)
|
||||
EgtDeselectAll()
|
||||
If Not IsNothing(value) Then
|
||||
EgtSelectObj(value.nCurveId)
|
||||
EgtSelectObj(value.nExtrusionId)
|
||||
@@ -74,8 +74,8 @@ Public Class RibPanelVM
|
||||
Dim dNewXPos As Double = b3Reference.Min.x
|
||||
StringToLen(value, dNewXPos)
|
||||
If dNewXPos >= 0 AndAlso dNewXPos <= CurrentMachine.b3Tab.DimX Then
|
||||
EgtMove(m_SelRib.nCurveId, New Point3d(dNewXPos, b3Reference.Min.y, b3Reference.Min.z) - b3Reference.Min)
|
||||
EgtMove(m_SelRib.nExtrusionId, New Point3d(dNewXPos, b3Reference.Min.y, b3Reference.Min.z) - b3Reference.Min)
|
||||
EgtMove(m_SelRib.nCurveId, New Point3d(dNewXPos, b3Reference.Min.y, b3Reference.Min.z) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtMove(m_SelRib.nExtrusionId, New Point3d(dNewXPos, b3Reference.Min.y, b3Reference.Min.z) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sXPos))
|
||||
@@ -103,8 +103,8 @@ Public Class RibPanelVM
|
||||
Dim dNewYPos As Double = b3Reference.Min.y
|
||||
StringToLen(value, dNewYPos)
|
||||
If dNewYPos >= 0 AndAlso dNewYPos <= CurrentMachine.b3Tab.DimY Then
|
||||
EgtMove(m_SelRib.nCurveId, New Point3d(b3Reference.Min.x, dNewYPos, b3Reference.Min.z) - b3Reference.Min)
|
||||
EgtMove(m_SelRib.nExtrusionId, New Point3d(b3Reference.Min.x, dNewYPos, b3Reference.Min.z) - b3Reference.Min)
|
||||
EgtMove(m_SelRib.nCurveId, New Point3d(b3Reference.Min.x, dNewYPos, b3Reference.Min.z) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtMove(m_SelRib.nExtrusionId, New Point3d(b3Reference.Min.x, dNewYPos, b3Reference.Min.z) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sYPos))
|
||||
@@ -132,8 +132,8 @@ Public Class RibPanelVM
|
||||
Dim dNewZPos As Double = b3Reference.Min.y
|
||||
StringToLen(value, dNewZPos)
|
||||
If dNewZPos >= 0 Then
|
||||
EgtMove(m_SelRib.nCurveId, New Point3d(b3Reference.Min.x, b3Reference.Min.y, dNewZPos) - b3Reference.Min)
|
||||
EgtMove(m_SelRib.nExtrusionId, New Point3d(b3Reference.Min.x, b3Reference.Min.y, dNewZPos) - b3Reference.Min)
|
||||
EgtMove(m_SelRib.nCurveId, New Point3d(b3Reference.Min.x, b3Reference.Min.y, dNewZPos) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtMove(m_SelRib.nExtrusionId, New Point3d(b3Reference.Min.x, b3Reference.Min.y, dNewZPos) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sZPos))
|
||||
@@ -144,12 +144,28 @@ Public Class RibPanelVM
|
||||
End Property
|
||||
|
||||
Private m_RotAxes() As Boolean = {False, False, True}
|
||||
Public Property RotAxes As Boolean()
|
||||
Public Property RotX As Boolean
|
||||
Get
|
||||
Return m_RotAxes
|
||||
Return m_RotAxes(0)
|
||||
End Get
|
||||
Set(value As Boolean())
|
||||
m_RotAxes = value
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(0) = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property RotY As Boolean
|
||||
Get
|
||||
Return m_RotAxes(1)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(1) = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property RotZ As Boolean
|
||||
Get
|
||||
Return m_RotAxes(2)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(2) = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -159,7 +175,7 @@ Public Class RibPanelVM
|
||||
Return Vector3d.X_AX
|
||||
ElseIf m_RotAxes(1) Then
|
||||
Return Vector3d.Y_AX
|
||||
ElseIf m_RotAxes(2) Then
|
||||
Else
|
||||
Return Vector3d.Z_AX
|
||||
End If
|
||||
End Get
|
||||
@@ -179,20 +195,20 @@ Public Class RibPanelVM
|
||||
End If
|
||||
Dim nId As Integer = If(m_SelRib.Type = RibEntity.RibTypes.FROMDRAW, m_SelRib.nCurveId, m_SelRib.nExtrusionId)
|
||||
Dim b3Rib As New BBox3d
|
||||
EgtGetBBox(nId, GDB_BB.STANDARD, b3Rib)
|
||||
EgtGetBBoxGlob(nId, GDB_BB.STANDARD, b3Rib)
|
||||
Dim bOk As Boolean = False
|
||||
bOk = EgtRotate(nId, b3Rib.Center(), vtSelRotAxes, dNewAngle)
|
||||
If bOk AndAlso m_SelRib.Type = RibEntity.RibTypes.FROMDRAW Then EgtRotate(m_SelRib.nExtrusionId, b3Rib.Center, vtSelRotAxes, dNewAngle)
|
||||
bOk = EgtRotate(nId, b3Rib.Center(), vtSelRotAxes, dNewAngle, GDB_RT.GLOB)
|
||||
If bOk AndAlso m_SelRib.Type = RibEntity.RibTypes.FROMDRAW Then EgtRotate(m_SelRib.nExtrusionId, b3Rib.Center, vtSelRotAxes, dNewAngle, GDB_RT.GLOB)
|
||||
If bOk Then
|
||||
EgtDraw()
|
||||
RefreshPos()
|
||||
m_sRotAngle = 0
|
||||
NotifyPropertyChanged(NameOf(sRotAngle))
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
Else
|
||||
m_sRotAngle = value
|
||||
End If
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -264,6 +280,12 @@ Public Class RibPanelVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property bGrid_IsEnabled As Boolean
|
||||
Get
|
||||
Return Map.refMyStatusBarVM.bGridVisibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bMove_IsChecked As Boolean
|
||||
Public Property bMove_IsChecked As Boolean
|
||||
Get
|
||||
@@ -411,6 +433,9 @@ Public Class RibPanelVM
|
||||
#Region "METHODS"
|
||||
|
||||
Friend Sub Init()
|
||||
' asse rotazione di default
|
||||
RotZ = True
|
||||
NotifyPropertyChanged(NameOf(RotZ))
|
||||
' azzero indice
|
||||
StartEntity.ResetSharedIndex()
|
||||
' fisso frame originale
|
||||
@@ -418,6 +443,10 @@ Public Class RibPanelVM
|
||||
' recupero dati pezzo selezionato layer ed entita'
|
||||
m_nPartId = Map.refTopPanelVM.SelPart.nPartId
|
||||
m_nRibLayerId = Map.refTopPanelVM.SelPart.nRibsLayerId
|
||||
If m_nRibLayerId = GDB_ID.NULL Then
|
||||
m_nRibLayerId = EgtCreateGroup(m_nPartId)
|
||||
EgtSetName(m_nRibLayerId, LAY_RIBS)
|
||||
End If
|
||||
'recupero tutte le entita' rib
|
||||
m_RibList.Clear()
|
||||
Dim nRibId As Integer = EgtGetFirstInGroup(m_nRibLayerId)
|
||||
@@ -455,6 +484,7 @@ Public Class RibPanelVM
|
||||
Map.refRightPanelVM.SetSelPanel(RightPanelVM.Panels.NULL)
|
||||
Map.refRibPanelVM.ResetMachParamIsChecked()
|
||||
End If
|
||||
EgtDeselectAll()
|
||||
EgtDraw()
|
||||
Map.refSceneHostVM.MainScene.SetStatusNull()
|
||||
End Sub
|
||||
@@ -525,7 +555,8 @@ Public Class RibPanelVM
|
||||
EgtDraw()
|
||||
' rimetto la selezione scena a null
|
||||
Map.refSceneHostVM.MainScene.SetStatusNull()
|
||||
Case Controller.CMD.GRID_ELEVATION, Controller.CMD.GRID_3P, Controller.CMD.GRID_ORIGIN, Controller.CMD.GRID_PERPCURVE, Controller.CMD.GRID_ROTATE, Controller.CMD.GRID_ROTATE3D
|
||||
Case Controller.CMD.GRID_ELEVATION, Controller.CMD.GRID_3P, Controller.CMD.GRID_ORIGIN, Controller.CMD.GRID_PERPCURVE,
|
||||
Controller.CMD.GRID_ROTATE, Controller.CMD.GRID_ROTATE3D, Controller.CMD.GRID_OBJ
|
||||
' rimetto la selezione scena a null
|
||||
Map.refSceneHostVM.MainScene.SetStatusNull()
|
||||
End Select
|
||||
@@ -1162,6 +1193,7 @@ Public Class RibPanelVM
|
||||
Public Sub CPlaneObj(ByVal param As Object)
|
||||
If Map.refSceneHostVM.MainController.GetStep <> 0 Then Return
|
||||
' salvo selezione precedente e deseleziono altri oggetti
|
||||
m_PrevSelObjs.Clear()
|
||||
Dim nSelObjId As Integer = EgtGetFirstSelectedObj()
|
||||
While nSelObjId <> GDB_ID.NULL
|
||||
m_PrevSelObjs.Add(nSelObjId)
|
||||
|
||||
@@ -44,6 +44,7 @@ Public Class RibParamPanelVM
|
||||
m_MachiningParamList = New List(Of MachiningParam)({New RibComboMachiningParam(MachiningParam.Params.RIBSTYPE, nRibId, nPartId),
|
||||
New RibNumericMachiningParam(MachiningParam.Params.RIBSOVERLAP, nRibId, nPartId),
|
||||
New RibNumericMachiningParam(MachiningParam.Params.RIBSSTRANDCOUNT, nRibId, nPartId),
|
||||
New RibCheckMachiningParam(MachiningParam.Params.RIBSLINK, nRibId, nPartId),
|
||||
New RibCheckMachiningParam(MachiningParam.Params.RIBSINVERTDIRECTION, nRibId, nPartId),
|
||||
New RibCheckMachiningParam(MachiningParam.Params.RIBSLEADININVERT, nRibId, nPartId),
|
||||
New RibNumericMachiningParam(MachiningParam.Params.RIBSLEADINLEN, nRibId, nPartId),
|
||||
@@ -377,7 +378,8 @@ Public Class RibComboMachiningParam
|
||||
Case Params.RIBSTYPE
|
||||
m_ValueList = New List(Of IdNameStruct)({New IdNameStruct(Machining.MPAR_RIBSTYPE.INTERNAL, "Internal"),
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.EXTERNAL, "External"),
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.UNBOUNDED, "Unbounded")})
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.UNBOUNDED, "Unbounded"),
|
||||
New IdNameStruct(Machining.MPAR_RIBSTYPE.SUPPORT, "Support")})
|
||||
Dim nSelValue As Integer = 1
|
||||
bReadFromRib = EgtGetInfo(nRibId, MAC_RIBSTYPE, nSelValue)
|
||||
If bReadFromRib Then
|
||||
@@ -477,9 +479,9 @@ Public Class RibCheckMachiningParam
|
||||
MyBase.New(Type)
|
||||
Dim bReadFromPart As Boolean = False
|
||||
Select Case Type
|
||||
'Case Params.RIBSLINK
|
||||
' bReadFromPart = EgtGetInfo(nRibId, MAC_RIBSLINK, m_bValue)
|
||||
' EgtGetInfo(nPartId, MAC_RIBSOVERLAP, m_bPartValue)
|
||||
Case Params.RIBSLINK
|
||||
bReadFromPart = EgtGetInfo(nRibId, MAC_RIBSLINK, m_bValue)
|
||||
EgtGetInfo(nPartId, MAC_RIBSLINK, m_bPartValue)
|
||||
Case Params.RIBSINVERTDIRECTION
|
||||
bReadFromPart = EgtGetInfo(nRibId, MAC_RIBSINVERTDIRECTION, m_bValue)
|
||||
EgtGetInfo(nPartId, MAC_RIBSINVERTDIRECTION, m_bPartValue)
|
||||
@@ -499,12 +501,12 @@ Public Class RibCheckMachiningParam
|
||||
|
||||
Friend Sub WriteParamInRib(nRibId As Integer)
|
||||
Select Case Type
|
||||
'Case Params.RIBSLINK
|
||||
' If bIsModifiedFromPart Then
|
||||
' EgtSetInfo(nRibId, MAC_RIBSLINK, If(m_bValue, 1, 0))
|
||||
' Else
|
||||
' EgtRemoveInfo(nRibId, MAC_RIBSLINK)
|
||||
' End If
|
||||
Case Params.RIBSLINK
|
||||
If bIsModifiedFromPart Then
|
||||
EgtSetInfo(nRibId, MAC_RIBSLINK, If(m_bValue, 1, 0))
|
||||
Else
|
||||
EgtRemoveInfo(nRibId, MAC_RIBSLINK)
|
||||
End If
|
||||
Case Params.RIBSINVERTDIRECTION
|
||||
If bIsModifiedFromPart Then
|
||||
EgtSetInfo(nRibId, MAC_RIBSINVERTDIRECTION, If(m_bValue, 1, 0))
|
||||
|
||||
@@ -11,6 +11,8 @@ Public Class MySceneHostVM
|
||||
m_bIsFocused = bValue
|
||||
End Sub
|
||||
|
||||
' Flag per distinguere tra Save a SaveAs
|
||||
Private m_bIsSaveAs As Boolean = False
|
||||
' Identificativi per pezzo da selezionare/deselezionare
|
||||
Private m_nIdToSel As Integer = GDB_ID.NULL
|
||||
Private m_nIdToDesel As Integer = GDB_ID.NULL
|
||||
@@ -67,7 +69,7 @@ Public Class MySceneHostVM
|
||||
' Inizializzazione Scena
|
||||
PreInitializeScene()
|
||||
' Se tutto bene
|
||||
If MainScene.Init() And Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT._3DPRINT) Then
|
||||
If MainScene.Init() And Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.BASE) Then
|
||||
PostInitializeScene()
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
@@ -293,7 +295,9 @@ Public Class MySceneHostVM
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub SaveAsProject()
|
||||
m_bIsSaveAs = True
|
||||
MyBase.SaveAsProject()
|
||||
m_bIsSaveAs = False
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
@@ -380,10 +384,8 @@ Public Class MySceneHostVM
|
||||
nNewRib = EgtCopy(nNewEntityId, Map.refRibPanelVM.nRibLayerId, GDB_POS.LAST_SON)
|
||||
End If
|
||||
EgtSetName(nNewRib, RIB_CURVE)
|
||||
' coloro l'entita' di blu
|
||||
Dim c3LightBlue As Color3d
|
||||
c3LightBlue.FromColor(System.Drawing.Color.MediumOrchid)
|
||||
EgtSetColor(nNewRib, c3LightBlue)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(nNewEntityId)
|
||||
' lo aggiungo alla lista
|
||||
Dim NewEntity As RibEntity = New RibEntity(RibEntity.RibTypes.FROMIMPORT, nNewRib)
|
||||
Map.refRibPanelVM.RibList.Add(NewEntity)
|
||||
@@ -392,10 +394,8 @@ Public Class MySceneHostVM
|
||||
' lo copio nel layer dei rib
|
||||
nNewRib = EgtCopy(nNewEntityId, Map.refRibPanelVM.nRibLayerId, GDB_POS.LAST_SON)
|
||||
EgtSetName(nNewRib, RIB_EXTRUSION)
|
||||
' coloro l'entita' di blu
|
||||
Dim c3LightBlue As Color3d
|
||||
c3LightBlue.FromColor(System.Drawing.Color.MediumOrchid)
|
||||
EgtSetColor(nNewRib, c3LightBlue)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(nNewEntityId)
|
||||
' lo aggiungo alla lista
|
||||
Dim NewEntity As RibEntity = New RibEntity(RibEntity.RibTypes.FROMIMPORT, nNewRib)
|
||||
Map.refRibPanelVM.RibList.Add(NewEntity)
|
||||
@@ -411,6 +411,60 @@ Public Class MySceneHostVM
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub InsertPrint(MenuItem As ManagerLayer_MenuItem)
|
||||
' Recupero cartella dell'ultimo progetto aperto
|
||||
Dim sDir As String = MainController.GetCurrFile()
|
||||
If String.IsNullOrWhiteSpace(sDir) Then
|
||||
GetMainPrivateProfileString(S_MRUIMPORTFILES, K_FILE & 1, "", sDir)
|
||||
End If
|
||||
If Not String.IsNullOrWhiteSpace(sDir) Then
|
||||
sDir = Path.GetDirectoryName(sDir)
|
||||
End If
|
||||
If Not Directory.Exists(sDir) Then sDir = ""
|
||||
Dim OpenFileDialog As New OpenFileDialog With {.Title = "Insert",
|
||||
.Filter = "Stereolithography (*.stl)|*.stl" &
|
||||
"|Iges files (*.igs;*.iges)|*.igs;*.iges" &
|
||||
"|Step files (*.stp;*.step)|*.stp;*.step" &
|
||||
"|3D Manufacturing format (*.3mf)|*.3mf" &
|
||||
"|New geometry EgalTech(*.nge)|*.nge" &
|
||||
"|All Files (*.*)|*.*",
|
||||
.FilterIndex = 1,
|
||||
.InitialDirectory = sDir}
|
||||
If Not OpenFileDialog.ShowDialog Then
|
||||
Return
|
||||
End If
|
||||
Dim sFile As String = String.Empty
|
||||
sFile = OpenFileDialog.FileName
|
||||
' importo la nuova geometria
|
||||
If MainController.InsertProject(sFile, False) Then
|
||||
' sposto le nuove geometrie nel layer rib del pezzo
|
||||
Dim nNewPartId As Integer = EgtGetLastPart()
|
||||
Dim nNewLayerId As Integer = EgtGetFirstGroupInGroup(nNewPartId)
|
||||
' verifico che ci sia una sola entita'
|
||||
If EgtGetGroupObjs(nNewLayerId) <> 1 Then
|
||||
MessageBox.Show("Impossible importing file that contains more than one entity.", "Error", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
Else
|
||||
' elimino eventuale entita' vecchia
|
||||
If MenuItem.OrigLayer.EntityList.Count > 0 AndAlso MenuItem.OrigLayer.EntityList(0).nId <> GDB_ID.NULL Then EgtErase(MenuItem.OrigLayer.EntityList(0).nId)
|
||||
Dim nNewEntityId As Integer = EgtGetFirstInGroup(nNewLayerId)
|
||||
EgtRelocate(nNewEntityId, MenuItem.OrigLayer.nLayerId, GDB_POS.LAST_SON)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(nNewEntityId)
|
||||
' aggiorno riferimento pezzo
|
||||
Map.refReferencePanelVM.UpdateFramePosition(MenuItem.OrigLayer.OrigPart.PrintPart)
|
||||
' elimino eventuale flag di spostamento a 45 gradi
|
||||
EgtRemoveInfo(MenuItem.OrigLayer.OrigPart.PrintPart.nPartId, "MovedPart")
|
||||
' elimino vecchio elemento ed aggiungo nuovo
|
||||
MenuItem.OrigLayer.EntityList.Clear()
|
||||
MenuItem.OrigLayer.EntityList.Add(New PartManager_GeomEntity(MenuItem.OrigLayer, nNewEntityId))
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
End If
|
||||
EgtErase(nNewPartId)
|
||||
EgtDraw()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub InsertShellNumber()
|
||||
' Recupero cartella dell'ultimo progetto aperto
|
||||
Dim sDir As String = MainController.GetCurrFile()
|
||||
@@ -453,10 +507,8 @@ Public Class MySceneHostVM
|
||||
nNewShellNumberId = EgtCopy(nNewEntityId, Map.refShellNumberPanelVM.nShellNumberLayerId, GDB_POS.LAST_SON)
|
||||
End If
|
||||
EgtSetName(nNewShellNumberId, RIB_CURVE)
|
||||
' coloro l'entita' di verde
|
||||
Dim c3LightBlue As Color3d
|
||||
c3LightBlue.FromColor(System.Drawing.Color.Lime)
|
||||
EgtSetColor(nNewShellNumberId, c3LightBlue)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(nNewEntityId)
|
||||
' lo aggiungo alla lista
|
||||
Dim NewEntity As ShellNumberEntity = New ShellNumberEntity(ShellNumberEntity.ShellNumberTypes.FROMIMPORT, nNewShellNumberId)
|
||||
Map.refShellNumberPanelVM.ShellNumberList.Add(NewEntity)
|
||||
@@ -465,10 +517,8 @@ Public Class MySceneHostVM
|
||||
' lo copio nel layer dei rib
|
||||
nNewShellNumberId = EgtCopy(nNewEntityId, Map.refShellNumberPanelVM.nShellNumberLayerId, GDB_POS.LAST_SON)
|
||||
EgtSetName(nNewShellNumberId, RIB_EXTRUSION)
|
||||
' coloro l'entita' di verde
|
||||
Dim c3LightBlue As Color3d
|
||||
c3LightBlue.FromColor(System.Drawing.Color.Lime)
|
||||
EgtSetColor(nNewShellNumberId, c3LightBlue)
|
||||
' elimino colore entita'
|
||||
EgtResetColor(nNewEntityId)
|
||||
' lo aggiungo alla lista
|
||||
Dim NewEntity As ShellNumberEntity = New ShellNumberEntity(ShellNumberEntity.ShellNumberTypes.FROMIMPORT, nNewShellNumberId)
|
||||
Map.refShellNumberPanelVM.ShellNumberList.Add(NewEntity)
|
||||
@@ -496,6 +546,23 @@ Public Class MySceneHostVM
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub ExportProject()
|
||||
' Reset controller e scena
|
||||
MainController.ResetStatus()
|
||||
'Assegnazione nome file con dialogo
|
||||
Dim SaveFileDialog As New SaveFileDialog With {
|
||||
.Title = "Export",
|
||||
.Filter = "Stereolithography (*.stl)|*.stl" &
|
||||
"|3D Manufacturing format (*.3mf)|*.3mf",
|
||||
.FilterIndex = 0,
|
||||
.FileName = Path.ChangeExtension(MainController.GetCurrFile(), "stl")
|
||||
}
|
||||
Dim DialogResult As Boolean? = SaveFileDialog.ShowDialog
|
||||
If IsNothing(DialogResult) OrElse Not DialogResult Then Return
|
||||
MainController.SetDefaultFilterForExport(EEX_FLT.DEFAULT + EEX_FLT.LEV_TEMP)
|
||||
MainController.ExportProject(SaveFileDialog.FileName, False)
|
||||
End Sub
|
||||
|
||||
Friend Shadows Sub ExecScript(sFilePath As String)
|
||||
If String.IsNullOrEmpty(sFilePath) Then
|
||||
Dim sDir As String = String.Empty
|
||||
@@ -877,7 +944,7 @@ Public Class MySceneHostVM
|
||||
Dim nTabPartId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, TABLE)
|
||||
If nTabPartId <> GDB_ID.NULL Then
|
||||
Dim sMachineName As String = ""
|
||||
if Not EgtGetInfo(nTabPartId, KEY_MACHINE_NAME, sMachineName) Then sMachineName = "Cms-Kreator"
|
||||
If Not EgtGetInfo(nTabPartId, KEY_MACHINE_NAME, sMachineName) Then sMachineName = "Cms-Kreator"
|
||||
Dim ProjectMachine As Machine = Map.refMachinePanelVM.MachineList.FirstOrDefault(Function(x) x.Name = sMachineName)
|
||||
If Not IsNothing(ProjectMachine) Then
|
||||
' imposto la macchina
|
||||
@@ -896,12 +963,18 @@ Public Class MySceneHostVM
|
||||
ProjectMaterial = Map.refTopPanelVM.MaterialList.FirstOrDefault(Function(x) x.sGUID = sMaterialGuid)
|
||||
End If
|
||||
If IsNothing(ProjectMaterial) Then
|
||||
Dim sMaterialName As String = EgtSetInfo(nTabPartId, KEY_MATERIAL_GUID, Map.refTopPanelVM.SelMaterial.sName)
|
||||
Dim sMaterialName As String = ""
|
||||
EgtGetInfo(nTabPartId, KEY_MATERIAL_NAME, sMaterialName)
|
||||
ProjectMaterial = Map.refTopPanelVM.MaterialList.FirstOrDefault(Function(x) x.sName = sMaterialName)
|
||||
End If
|
||||
If Not IsNothing(ProjectMaterial) Then
|
||||
Map.refTopPanelVM.SetSelMaterial(ProjectMaterial, True)
|
||||
Map.refTopPanelVM.NotifyPropertyChanged(NameOf(Map.refTopPanelVM.SelMaterial))
|
||||
Else
|
||||
Dim sMaterialName As String = ""
|
||||
EgtGetInfo(nTabPartId, KEY_MATERIAL_NAME, sMaterialName)
|
||||
MessageBox.Show("Project material (Guid:" & sMaterialGuid & " Name:""" & sMaterialName & """) not found!" & Environment.NewLine &
|
||||
"Please select another material!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning)
|
||||
End If
|
||||
End If
|
||||
' leggo pezzi
|
||||
@@ -935,10 +1008,12 @@ Public Class MySceneHostVM
|
||||
' setto i solidi non calcolati
|
||||
EgtSetInfo(nPartId, KEY_CALC_SOLIDS, 0)
|
||||
EgtSetInfo(nPartId, KEY_HAS_SOLIDS, 0)
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
' Ripristino stato segnalazione modifica
|
||||
DisableMgr.ReEnable()
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
End While
|
||||
' aggiorno colori entita'
|
||||
GeomEntityColors.UpdateColors(LayerType.ALL)
|
||||
|
||||
' se non e' da ricalcolare, recupero tempo e massa
|
||||
If Not bProjectToRecalc Then
|
||||
@@ -962,6 +1037,13 @@ Public Class MySceneHostVM
|
||||
End Sub
|
||||
|
||||
Private Sub OnSavingProject(ByVal sender As Object, sFile As String)
|
||||
' Se in SaveAs, aggiorno nome CN da generare
|
||||
If m_bIsSaveAs Then
|
||||
Dim nTabPartId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, TABLE)
|
||||
If nTabPartId <> GDB_ID.NULL Then
|
||||
EgtRemoveInfo(nTabPartId, KEY_ISOFILE_PATH)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub OnSavedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean)
|
||||
@@ -1190,20 +1272,6 @@ Public Class MySceneHostVM
|
||||
End While
|
||||
' Memorizzo Id da selezionare
|
||||
m_nIdToSel = nCurrIdToSel
|
||||
'While nId <> GDB_ID.NULL
|
||||
' ' Recupero l'identificativo del pezzo cui appartiene
|
||||
' Dim nPartId As Integer = EgtGetParent(EgtGetParent(nId))
|
||||
' Dim bFound As Boolean = False
|
||||
' If nPartId = Map.refImportPanelVM.nImportedPartId Then bFound = True
|
||||
' If Not bFound Then
|
||||
' nId = EgtGetNextObjInSelWin()
|
||||
' Continue While
|
||||
' End If
|
||||
' ' Memorizzo Id da selezionare
|
||||
' m_nIdToSel = nId
|
||||
' Exit While
|
||||
' nId = EgtGetNextObjInSelWin()
|
||||
'End While
|
||||
' Dati per drag
|
||||
m_bDragToStart = True
|
||||
End Sub
|
||||
@@ -1247,23 +1315,21 @@ Public Class MySceneHostVM
|
||||
While nId <> GDB_ID.NULL
|
||||
' Se per Griglia da faccia di oggetto
|
||||
If Map.refStartMachPanelVM.bCPlaneObj_IsActive Then
|
||||
If EgtGetType( nId) = GDB_TY.SRF_MESH Then
|
||||
If EgtGetType(nId) = GDB_TY.SRF_MESH Then
|
||||
m_nIdToSel = nId
|
||||
Exit While
|
||||
End If
|
||||
Else
|
||||
' Recupero l'identificativo del pezzo cui appartiene
|
||||
Dim nPartId As Integer = EgtGetParent(nId)
|
||||
Dim bFound As Boolean = False
|
||||
If nPartId = Map.refStartMachPanelVM.nStartMachLayerId Then bFound = True
|
||||
If bFound Then
|
||||
Dim nStartMachLayerId As Integer = EgtGetParent(nId)
|
||||
If nStartMachLayerId = Map.refStartMachPanelVM.nStartMachLayerId Then
|
||||
m_nIdToSel = nId
|
||||
Exit While
|
||||
End If
|
||||
End If
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
If m_nIdToSel <> GDB_ID.NULL Then
|
||||
If Map.refStartMachPanelVM.bCPlaneObj_IsActive And m_nIdToSel <> GDB_ID.NULL Then
|
||||
' recupero dati punto di selezione
|
||||
Dim PtTemp As Point3d
|
||||
Dim nAux As Integer
|
||||
@@ -1295,7 +1361,7 @@ Public Class MySceneHostVM
|
||||
' Se eseguito drag
|
||||
If Not m_bDragToStart Then
|
||||
|
||||
' Se selezione da eseguire
|
||||
' Se selezione da eseguire
|
||||
ElseIf m_nIdToSel <> GDB_ID.NULL Then
|
||||
If Map.refStartMachPanelVM.bCPlaneObj_IsActive Then
|
||||
' eseguo comando
|
||||
@@ -1331,23 +1397,20 @@ Public Class MySceneHostVM
|
||||
While nId <> GDB_ID.NULL
|
||||
' Se per Griglia da faccia di oggetto
|
||||
If Map.refRibPanelVM.bCPlaneObj_IsActive Then
|
||||
If EgtGetType( nId) = GDB_TY.SRF_MESH Then
|
||||
If EgtGetType(nId) = GDB_TY.SRF_MESH Then
|
||||
m_nIdToSel = nId
|
||||
Exit While
|
||||
End If
|
||||
Else
|
||||
' Recupero l'identificativo del pezzo cui appartiene
|
||||
Dim nPartId As Integer = EgtGetParent(nId)
|
||||
Dim bFound As Boolean = False
|
||||
If nPartId = Map.refRibPanelVM.nRibLayerId Then bFound = True
|
||||
If bFound Then
|
||||
Dim nRibLayerId As Integer = EgtGetParent(nId)
|
||||
If nRibLayerId = Map.refRibPanelVM.nRibLayerId Then
|
||||
m_nIdToSel = nId
|
||||
Exit While
|
||||
End If
|
||||
End If
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
If m_nIdToSel <> GDB_ID.NULL Then
|
||||
If Map.refRibPanelVM.bCPlaneObj_IsActive And m_nIdToSel <> GDB_ID.NULL Then
|
||||
' recupero dati punto di selezione
|
||||
Dim PtTemp As Point3d
|
||||
Dim nAux As Integer
|
||||
@@ -1379,7 +1442,7 @@ Public Class MySceneHostVM
|
||||
' Se eseguito drag
|
||||
If Not m_bDragToStart Then
|
||||
|
||||
' Se selezione da eseguire
|
||||
' Se selezione da eseguire
|
||||
ElseIf m_nIdToSel <> GDB_ID.NULL Then
|
||||
If Map.refRibPanelVM.bCPlaneObj_IsActive Then
|
||||
' eseguo comando
|
||||
@@ -1414,17 +1477,22 @@ Public Class MySceneHostVM
|
||||
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
|
||||
Dim nId As Integer = EgtGetFirstObjInSelWin()
|
||||
While nId <> GDB_ID.NULL
|
||||
' Recupero l'identificativo del pezzo cui appartiene
|
||||
Dim nPartId As Integer = EgtGetParent(nId)
|
||||
Dim bFound As Boolean = False
|
||||
If nPartId = Map.refShellNumberPanelVM.nShellNumberLayerId Then bFound = True
|
||||
If bFound Then
|
||||
m_nIdToSel = nId
|
||||
Exit While
|
||||
' Se per Griglia da faccia di oggetto
|
||||
If Map.refShellNumberPanelVM.bCPlaneObj_IsActive Then
|
||||
If EgtGetType(nId) = GDB_TY.SRF_MESH Then
|
||||
m_nIdToSel = nId
|
||||
Exit While
|
||||
End If
|
||||
Else
|
||||
Dim nShellNumberLayerId As Integer = EgtGetParent(nId)
|
||||
If nShellNumberLayerId = Map.refShellNumberPanelVM.nShellNumberLayerId Then
|
||||
m_nIdToSel = nId
|
||||
Exit While
|
||||
End If
|
||||
End If
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
If m_nIdToSel <> GDB_ID.NULL Then
|
||||
If Map.refShellNumberPanelVM.bCPlaneObj_IsActive And m_nIdToSel <> GDB_ID.NULL Then
|
||||
' recupero dati punto di selezione
|
||||
Dim PtTemp As Point3d
|
||||
Dim nAux As Integer
|
||||
@@ -1456,7 +1524,7 @@ Public Class MySceneHostVM
|
||||
' Se eseguito drag
|
||||
If Not m_bDragToStart Then
|
||||
|
||||
' Se selezione da eseguire
|
||||
' Se selezione da eseguire
|
||||
ElseIf m_nIdToSel <> GDB_ID.NULL Then
|
||||
If Map.refShellNumberPanelVM.bCPlaneObj_IsActive Then
|
||||
' eseguo comando
|
||||
@@ -1479,7 +1547,7 @@ Public Class MySceneHostVM
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
#End Region ' Rib
|
||||
#End Region ' ShellNumber
|
||||
|
||||
#End Region ' VIEW EVENTS
|
||||
|
||||
|
||||
@@ -206,6 +206,7 @@
|
||||
Grid.Row="6"
|
||||
Content="Grid"
|
||||
IsChecked="{Binding bGrid_IsChecked}"
|
||||
IsEnabled="{Binding bGrid_IsEnabled}"
|
||||
Style="{StaticResource ToolBar_TextToggleButton}"/>
|
||||
<Border Grid.Column="1"
|
||||
Grid.Row="5"
|
||||
@@ -515,15 +516,15 @@
|
||||
<UniformGrid Columns="3">
|
||||
<RadioButton Content="X"
|
||||
GroupName="Axes"
|
||||
IsChecked="{Binding RotAxes[0]}"
|
||||
IsChecked="{Binding RotX}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"/>
|
||||
<RadioButton Content="Y"
|
||||
GroupName="Axes"
|
||||
IsChecked="{Binding RotAxes[1]}"
|
||||
IsChecked="{Binding RotY}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"/>
|
||||
<RadioButton Content="Z"
|
||||
GroupName="Axes"
|
||||
IsChecked="{Binding RotAxes[2]}"
|
||||
IsChecked="{Binding RotZ}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:EgtTextBox Grid.Row="1"
|
||||
|
||||
@@ -41,7 +41,7 @@ Public Class ShellNumberPanelVM
|
||||
End Get
|
||||
Set(value As ShellNumberEntity)
|
||||
m_SelShellNumber = value
|
||||
EgtDeselectLayerObjs(m_nShellNumberLayerId)
|
||||
EgtDeselectAll()
|
||||
If Not IsNothing(value) Then
|
||||
EgtSelectObj(value.nCurveId)
|
||||
EgtSelectObj(value.nExtrusionId)
|
||||
@@ -74,8 +74,8 @@ Public Class ShellNumberPanelVM
|
||||
Dim dNewXPos As Double = b3Reference.Min.x
|
||||
StringToLen(value, dNewXPos)
|
||||
If dNewXPos >= 0 AndAlso dNewXPos <= CurrentMachine.b3Tab.DimX Then
|
||||
EgtMove(m_SelShellNumber.nCurveId, New Point3d(dNewXPos, b3Reference.Min.y, b3Reference.Min.z) - b3Reference.Min)
|
||||
EgtMove(m_SelShellNumber.nExtrusionId, New Point3d(dNewXPos, b3Reference.Min.y, b3Reference.Min.z) - b3Reference.Min)
|
||||
EgtMove(m_SelShellNumber.nCurveId, New Point3d(dNewXPos, b3Reference.Min.y, b3Reference.Min.z) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtMove(m_SelShellNumber.nExtrusionId, New Point3d(dNewXPos, b3Reference.Min.y, b3Reference.Min.z) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sXPos))
|
||||
@@ -103,8 +103,8 @@ Public Class ShellNumberPanelVM
|
||||
Dim dNewYPos As Double = b3Reference.Min.y
|
||||
StringToLen(value, dNewYPos)
|
||||
If dNewYPos >= 0 AndAlso dNewYPos <= CurrentMachine.b3Tab.DimY Then
|
||||
EgtMove(m_SelShellNumber.nCurveId, New Point3d(b3Reference.Min.x, dNewYPos, b3Reference.Min.z) - b3Reference.Min)
|
||||
EgtMove(m_SelShellNumber.nExtrusionId, New Point3d(b3Reference.Min.x, dNewYPos, b3Reference.Min.z) - b3Reference.Min)
|
||||
EgtMove(m_SelShellNumber.nCurveId, New Point3d(b3Reference.Min.x, dNewYPos, b3Reference.Min.z) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtMove(m_SelShellNumber.nExtrusionId, New Point3d(b3Reference.Min.x, dNewYPos, b3Reference.Min.z) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sYPos))
|
||||
@@ -132,8 +132,8 @@ Public Class ShellNumberPanelVM
|
||||
Dim dNewZPos As Double = b3Reference.Min.y
|
||||
StringToLen(value, dNewZPos)
|
||||
If dNewZPos >= 0 Then
|
||||
EgtMove(m_SelShellNumber.nCurveId, New Point3d(b3Reference.Min.x, b3Reference.Min.y, dNewZPos) - b3Reference.Min)
|
||||
EgtMove(m_SelShellNumber.nExtrusionId, New Point3d(b3Reference.Min.x, b3Reference.Min.y, dNewZPos) - b3Reference.Min)
|
||||
EgtMove(m_SelShellNumber.nCurveId, New Point3d(b3Reference.Min.x, b3Reference.Min.y, dNewZPos) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtMove(m_SelShellNumber.nExtrusionId, New Point3d(b3Reference.Min.x, b3Reference.Min.y, dNewZPos) - b3Reference.Min, GDB_RT.GLOB)
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sZPos))
|
||||
@@ -144,12 +144,28 @@ Public Class ShellNumberPanelVM
|
||||
End Property
|
||||
|
||||
Private m_RotAxes() As Boolean = {False, False, True}
|
||||
Public Property RotAxes As Boolean()
|
||||
Public Property RotX As Boolean
|
||||
Get
|
||||
Return m_RotAxes
|
||||
Return m_RotAxes(0)
|
||||
End Get
|
||||
Set(value As Boolean())
|
||||
m_RotAxes = value
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(0) = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property RotY As Boolean
|
||||
Get
|
||||
Return m_RotAxes(1)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(1) = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property RotZ As Boolean
|
||||
Get
|
||||
Return m_RotAxes(2)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(2) = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -159,7 +175,7 @@ Public Class ShellNumberPanelVM
|
||||
Return Vector3d.X_AX
|
||||
ElseIf m_RotAxes(1) Then
|
||||
Return Vector3d.Y_AX
|
||||
ElseIf m_RotAxes(2) Then
|
||||
Else
|
||||
Return Vector3d.Z_AX
|
||||
End If
|
||||
End Get
|
||||
@@ -179,20 +195,20 @@ Public Class ShellNumberPanelVM
|
||||
End If
|
||||
Dim nId As Integer = If(m_SelShellNumber.Type = ShellNumberEntity.ShellNumberTypes.FROMDRAW, m_SelShellNumber.nCurveId, m_SelShellNumber.nExtrusionId)
|
||||
Dim b3Rib As New BBox3d
|
||||
EgtGetBBox(nId, GDB_BB.STANDARD, b3Rib)
|
||||
EgtGetBBoxGlob(nId, GDB_BB.STANDARD, b3Rib)
|
||||
Dim bOk As Boolean = False
|
||||
bOk = EgtRotate(nId, b3Rib.Center(), vtSelRotAxes, dNewAngle)
|
||||
If bOk AndAlso m_SelShellNumber.Type = ShellNumberEntity.ShellNumberTypes.FROMDRAW Then EgtRotate(m_SelShellNumber.nExtrusionId, b3Rib.Center, vtSelRotAxes, dNewAngle)
|
||||
bOk = EgtRotate(nId, b3Rib.Center(), vtSelRotAxes, dNewAngle, GDB_RT.GLOB)
|
||||
If bOk AndAlso m_SelShellNumber.Type = ShellNumberEntity.ShellNumberTypes.FROMDRAW Then EgtRotate(m_SelShellNumber.nExtrusionId, b3Rib.Center, vtSelRotAxes, dNewAngle, GDB_RT.GLOB)
|
||||
If bOk Then
|
||||
EgtDraw()
|
||||
RefreshPos()
|
||||
m_sRotAngle = 0
|
||||
NotifyPropertyChanged(NameOf(sRotAngle))
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
Else
|
||||
m_sRotAngle = value
|
||||
End If
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -264,6 +280,12 @@ Public Class ShellNumberPanelVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property bGrid_IsEnabled As Boolean
|
||||
Get
|
||||
Return Map.refMyStatusBarVM.bGridVisibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bMove_IsChecked As Boolean
|
||||
Public Property bMove_IsChecked As Boolean
|
||||
Get
|
||||
@@ -411,6 +433,9 @@ Public Class ShellNumberPanelVM
|
||||
#Region "METHODS"
|
||||
|
||||
Friend Sub Init()
|
||||
' asse rotazione di default
|
||||
RotZ = True
|
||||
NotifyPropertyChanged(NameOf(RotZ))
|
||||
' azzero indice
|
||||
StartEntity.ResetSharedIndex()
|
||||
' fisso frame originale
|
||||
@@ -418,7 +443,11 @@ Public Class ShellNumberPanelVM
|
||||
' recupero dati pezzo selezionato layer ed entita'
|
||||
m_nPartId = Map.refTopPanelVM.SelPart.nPartId
|
||||
m_nShellNumberLayerId = Map.refTopPanelVM.SelPart.nShellNumberLayerId
|
||||
'recupero tutte le entita' rib
|
||||
If m_nShellNumberLayerId = GDB_ID.NULL Then
|
||||
m_nShellNumberLayerId = EgtCreateGroup(m_nPartId)
|
||||
EgtSetName(m_nShellNumberLayerId, LAY_SHELL_NBR)
|
||||
End If
|
||||
'recupero tutte le entita' shell number
|
||||
m_ShellNumberList.Clear()
|
||||
Dim nShellNumberId As Integer = EgtGetFirstInGroup(m_nShellNumberLayerId)
|
||||
While nShellNumberId <> GDB_ID.NULL
|
||||
@@ -455,6 +484,7 @@ Public Class ShellNumberPanelVM
|
||||
Map.refRightPanelVM.SetSelPanel(RightPanelVM.Panels.NULL)
|
||||
Map.refShellNumberPanelVM.ResetMachParamIsChecked()
|
||||
End If
|
||||
EgtDeselectAll()
|
||||
EgtDraw()
|
||||
Map.refSceneHostVM.MainScene.SetStatusNull()
|
||||
End Sub
|
||||
@@ -525,7 +555,8 @@ Public Class ShellNumberPanelVM
|
||||
EgtDraw()
|
||||
' rimetto la selezione scena a null
|
||||
Map.refSceneHostVM.MainScene.SetStatusNull()
|
||||
Case Controller.CMD.GRID_ELEVATION, Controller.CMD.GRID_3P, Controller.CMD.GRID_ORIGIN, Controller.CMD.GRID_PERPCURVE, Controller.CMD.GRID_ROTATE, Controller.CMD.GRID_ROTATE3D, Controller.CMD.GRID_OBJ
|
||||
Case Controller.CMD.GRID_ELEVATION, Controller.CMD.GRID_3P, Controller.CMD.GRID_ORIGIN, Controller.CMD.GRID_PERPCURVE,
|
||||
Controller.CMD.GRID_ROTATE, Controller.CMD.GRID_ROTATE3D, Controller.CMD.GRID_OBJ
|
||||
' rimetto la selezione scena a null
|
||||
Map.refSceneHostVM.MainScene.SetStatusNull()
|
||||
End Select
|
||||
@@ -1166,6 +1197,7 @@ Public Class ShellNumberPanelVM
|
||||
Public Sub CPlaneObj(ByVal param As Object)
|
||||
If Map.refSceneHostVM.MainController.GetStep <> 0 Then Return
|
||||
' salvo selezione precedente e deseleziono altri oggetti
|
||||
m_PrevSelObjs.Clear()
|
||||
Dim nSelObjId As Integer = EgtGetFirstSelectedObj()
|
||||
While nSelObjId <> GDB_ID.NULL
|
||||
m_PrevSelObjs.Add(nSelObjId)
|
||||
@@ -1308,7 +1340,7 @@ Public Class ShellNumberEntity
|
||||
Sub New(Type As ShellNumberTypes, nId As Integer)
|
||||
m_nIndex = nSharedIndex
|
||||
m_Type = Type
|
||||
EgtSetInfo(nId, KEY_RIB_TYPE, Type)
|
||||
EgtSetInfo(nId, KEY_SHELLNBR_TYPE, Type)
|
||||
Select Case Type
|
||||
Case ShellNumberTypes.FROMDRAW
|
||||
m_nCurveId = nId
|
||||
|
||||
@@ -154,6 +154,14 @@ Public Class SimulationPanelVM
|
||||
Map.refViewLayerManagerVM.SetViewLayerManagerVisibility(False)
|
||||
' disattivo comandi progetto
|
||||
Map.refProjManagerVM.SetProjCmdIsEnabled(False)
|
||||
' disabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
|
||||
Map.refProjManagerVM.SetProjCmdIsEnabled(False)
|
||||
Map.refTopPanelVM.SetTopPanelIsEnabled(False)
|
||||
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(False)
|
||||
Map.refSliceManagerVM.SetButtonsIsEnabled(False)
|
||||
Map.refSliderManagerVM.SetLayerIndexIsEnabled(False)
|
||||
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(False)
|
||||
Map.refInstrumentPanelVM.SetEdgeAnalysisIsEnabled(False)
|
||||
End Sub
|
||||
|
||||
Private Function LoadCurrTools() As Boolean
|
||||
@@ -198,8 +206,14 @@ Public Class SimulationPanelVM
|
||||
Map.refViewLayerManagerVM.SetViewLayerManagerVisibility(True)
|
||||
' disattivo comandi progetto
|
||||
Map.refProjManagerVM.SetProjCmdIsEnabled(True)
|
||||
'' Riabilito Machine Panel (utensili, lavoraz...)
|
||||
'OmagOFFICEMap.refMachinePanelVM.MachPanel_IsEnabled = True
|
||||
' riabilito ProjManager, TopPanel, TFS, Slider, bottoni e uscita dal programma
|
||||
Map.refProjManagerVM.SetProjCmdIsEnabled(True)
|
||||
Map.refTopPanelVM.SetTopPanelIsEnabled(True)
|
||||
Map.refViewLayerManagerVM.SetViewLayerManagerIsEnabled(True)
|
||||
Map.refSliceManagerVM.SetButtonsIsEnabled(True)
|
||||
Map.refSliderManagerVM.SetLayerIndexIsEnabled(True)
|
||||
Map.refSliderManagerVM.SetLayerAdvancementIsEnabled(True)
|
||||
Map.refInstrumentPanelVM.SetEdgeAnalysisIsEnabled(True)
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
@@ -506,6 +506,11 @@ Public Class SliceManagerVM
|
||||
m_bCalculating = False
|
||||
Return
|
||||
End If
|
||||
If IsNothing(Map.refTopPanelVM.SelMaterial) Then
|
||||
MessageBox.Show("No print material set!", "Error", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
m_bCalculating = False
|
||||
Return
|
||||
End If
|
||||
If IsNothing(Map.refTopPanelVM.SelMachining) OrElse IsNothing(Map.refTopPanelVM.CurrMachining) OrElse Map.refTopPanelVM.CurrMachining.dCurrStrandH <= 0 Then
|
||||
MessageBox.Show("No print parameters set!", "Error", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
m_bCalculating = False
|
||||
@@ -582,7 +587,7 @@ Public Class SliceManagerVM
|
||||
If String.IsNullOrWhiteSpace(sExtension) Then
|
||||
sExtension = ".cnc"
|
||||
End If
|
||||
If bShiftPressed Then
|
||||
If bCtrlPressed Then
|
||||
Dim sCurrFilePath As String = ""
|
||||
Dim sInitialDirectory As String = ""
|
||||
EgtGetCurrFilePath(sCurrFilePath)
|
||||
@@ -611,15 +616,16 @@ Public Class SliceManagerVM
|
||||
Dim nTabPartId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, TABLE)
|
||||
If nTabPartId <> GDB_ID.NULL Then
|
||||
EgtGetInfo(nTabPartId, KEY_ISOFILE_PATH, sIsoFilePath)
|
||||
If String.IsNullOrWhiteSpace(sIsoFilePath) Then
|
||||
If String.IsNullOrWhiteSpace(sIsoFilePath) OrElse Not Directory.Exists(Path.GetDirectoryName(sIsoFilePath)) Then
|
||||
EgtGetCurrFilePath(sIsoFilePath)
|
||||
sIsoFilePath = System.IO.Path.ChangeExtension(sIsoFilePath, sExtension)
|
||||
EgtSetInfo(nTabPartId, KEY_ISOFILE_PATH, sIsoFilePath)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
' eseguo calcoli
|
||||
CalcSlice(True, True)
|
||||
If bCtrlPressed Then
|
||||
If bShiftPressed Then
|
||||
' Se esiste ne lancio l'editing
|
||||
If File.Exists(sIsoFilePath) Then
|
||||
Process.Start("Notepad.exe", sIsoFilePath)
|
||||
|
||||
@@ -73,7 +73,7 @@ Public Class SliderManagerVM
|
||||
Case ViewSliderType.ONLY_SELECTED
|
||||
If Not IsNothing(Map.refTopPanelVM.SelPart) Then
|
||||
' riporto vecchio strato a visualizzazione di tutti i solidi
|
||||
If m_nLayerIndex > 0 Then dLayerAdvancement = 100
|
||||
If m_nLayerIndex > 0 AndAlso m_nLayerIndex < Map.refTopPanelVM.SelPart.LayerList.Count Then dLayerAdvancement = 100
|
||||
For nLayerInd = 0 To Map.refTopPanelVM.SelPart.LayerList.Count - 1
|
||||
If nLayerInd = value - 1 Then
|
||||
EgtSetStatus(Map.refTopPanelVM.SelPart.LayerList(nLayerInd).nLayerId, GDB_ST.ON_)
|
||||
@@ -88,7 +88,7 @@ Public Class SliderManagerVM
|
||||
Case ViewSliderType.UNTIL_SELECTED
|
||||
If Not IsNothing(Map.refTopPanelVM.SelPart) Then
|
||||
' riporto vecchio strato a visualizzazione di tutti i solidi
|
||||
If m_nLayerIndex > 0 Then dLayerAdvancement = 100
|
||||
If m_nLayerIndex > 0 AndAlso m_nLayerIndex < Map.refTopPanelVM.SelPart.LayerList.Count Then dLayerAdvancement = 100
|
||||
For nLayerInd = 0 To Map.refTopPanelVM.SelPart.LayerList.Count - 1
|
||||
If nLayerInd <= value - 1 Then
|
||||
EgtSetStatus(Map.refTopPanelVM.SelPart.LayerList(nLayerInd).nLayerId, GDB_ST.ON_)
|
||||
@@ -103,7 +103,7 @@ Public Class SliderManagerVM
|
||||
Case ViewSliderType.FROM_SELECTED
|
||||
If Not IsNothing(Map.refTopPanelVM.SelPart) Then
|
||||
' riporto vecchio strato a visualizzazione di tutti i solidi
|
||||
If m_nLayerIndex > 0 Then dLayerAdvancement = 100
|
||||
If m_nLayerIndex > 0 AndAlso m_nLayerIndex < Map.refTopPanelVM.SelPart.LayerList.Count Then dLayerAdvancement = 100
|
||||
For nLayerInd = 0 To Map.refTopPanelVM.SelPart.LayerList.Count - 1
|
||||
If nLayerInd >= value - 1 Then
|
||||
EgtSetStatus(Map.refTopPanelVM.SelPart.LayerList(nLayerInd).nLayerId, GDB_ST.ON_)
|
||||
@@ -353,7 +353,7 @@ Public Class SliderManagerVM
|
||||
NotifyPropertyChanged(NameOf(nLayerIndex_Minimum))
|
||||
NotifyPropertyChanged(NameOf(nLayerIndex_Maximum))
|
||||
NotifyPropertyChanged(NameOf(ghShowMaximum))
|
||||
SetLayerIndex(m_nLayerIndex)
|
||||
SetLayerIndex(If(m_nLayerIndex < nMax, m_nLayerIndex, nMax))
|
||||
End Sub
|
||||
|
||||
Friend Sub SetLayerIndexToMax()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
Height="180"
|
||||
Width="92"
|
||||
Stretch="UniformToFill"/>
|
||||
<TextBlock Text="2022"
|
||||
<TextBlock Text="2022-2023"
|
||||
FontSize="12"
|
||||
FontFamily="/Resources/Fonts/#Roboto"
|
||||
HorizontalAlignment="Center"
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
Grid.Row="6"
|
||||
Content="Grid"
|
||||
IsChecked="{Binding bGrid_IsChecked}"
|
||||
IsEnabled="{Binding bGrid_IsEnabled}"
|
||||
Style="{StaticResource ToolBar_TextToggleButton}"/>
|
||||
<Border Grid.Column="1"
|
||||
Grid.Row="5"
|
||||
|
||||
@@ -36,7 +36,7 @@ Public Class StartMachPanelVM
|
||||
End Get
|
||||
Set(value As StartEntity)
|
||||
m_SelStart = value
|
||||
EgtDeselectLayerObjs(m_nStartMachLayerId)
|
||||
EgtDeselectAll()
|
||||
If Not IsNothing(value) Then
|
||||
EgtSelectObj(value.nId)
|
||||
' aggiorno visibilita' bottoni edit
|
||||
@@ -66,7 +66,7 @@ Public Class StartMachPanelVM
|
||||
Dim dNewXPos As Double = ptReference.x
|
||||
StringToLen(value, dNewXPos)
|
||||
If dNewXPos >= 0 AndAlso dNewXPos <= CurrentMachine.b3Tab.DimX Then
|
||||
EgtMove(m_SelStart.nId, New Point3d(dNewXPos, ptReference.y, ptReference.z) - ptReference)
|
||||
EgtMove(m_SelStart.nId, New Point3d(dNewXPos, ptReference.y, ptReference.z) - ptReference, GDB_RT.GLOB)
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sXPos))
|
||||
@@ -92,7 +92,7 @@ Public Class StartMachPanelVM
|
||||
Dim dNewYPos As Double = ptReference.y
|
||||
StringToLen(value, dNewYPos)
|
||||
If dNewYPos >= 0 AndAlso dNewYPos <= CurrentMachine.b3Tab.DimY Then
|
||||
EgtMove(m_SelStart.nId, New Point3d(ptReference.x, dNewYPos, ptReference.z) - ptReference)
|
||||
EgtMove(m_SelStart.nId, New Point3d(ptReference.x, dNewYPos, ptReference.z) - ptReference, GDB_RT.GLOB)
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sYPos))
|
||||
@@ -118,7 +118,7 @@ Public Class StartMachPanelVM
|
||||
Dim dNewZPos As Double = ptReference.z
|
||||
StringToLen(value, dNewZPos)
|
||||
If dNewZPos >= 0 Then
|
||||
EgtMove(m_SelStart.nId, New Point3d(ptReference.x, ptReference.y, dNewZPos) - ptReference)
|
||||
EgtMove(m_SelStart.nId, New Point3d(ptReference.x, ptReference.y, dNewZPos) - ptReference, GDB_RT.GLOB)
|
||||
EgtDraw()
|
||||
Else
|
||||
NotifyPropertyChanged(NameOf(sZPos))
|
||||
@@ -129,12 +129,28 @@ Public Class StartMachPanelVM
|
||||
End Property
|
||||
|
||||
Private m_RotAxes() As Boolean = {False, False, True}
|
||||
Public Property RotAxes As Boolean()
|
||||
Public Property RotX As Boolean
|
||||
Get
|
||||
Return m_RotAxes
|
||||
Return m_RotAxes(0)
|
||||
End Get
|
||||
Set(value As Boolean())
|
||||
m_RotAxes = value
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(0) = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property RotY As Boolean
|
||||
Get
|
||||
Return m_RotAxes(1)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(1) = value
|
||||
End Set
|
||||
End Property
|
||||
Public Property RotZ As Boolean
|
||||
Get
|
||||
Return m_RotAxes(2)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_RotAxes(2) = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -144,7 +160,7 @@ Public Class StartMachPanelVM
|
||||
Return Vector3d.X_AX
|
||||
ElseIf m_RotAxes(1) Then
|
||||
Return Vector3d.Y_AX
|
||||
ElseIf m_RotAxes(2) Then
|
||||
Else
|
||||
Return Vector3d.Z_AX
|
||||
End If
|
||||
End Get
|
||||
@@ -164,16 +180,16 @@ Public Class StartMachPanelVM
|
||||
End If
|
||||
Dim b3PrintSolid As New BBox3d
|
||||
EgtGetBBoxGlob(Map.refTopPanelVM.SelPart.nPartId, GDB_BB.STANDARD, b3PrintSolid)
|
||||
If EgtRotate(Map.refTopPanelVM.SelPart.nPartId, b3PrintSolid.Center, vtSelRotAxes, dNewAngle) Then
|
||||
If EgtRotate(Map.refTopPanelVM.SelPart.nPartId, b3PrintSolid.Center, vtSelRotAxes, dNewAngle, GDB_RT.GLOB) Then
|
||||
EgtDraw()
|
||||
RefreshPos()
|
||||
m_sRotAngle = 0
|
||||
NotifyPropertyChanged(NameOf(sRotAngle))
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
Else
|
||||
m_sRotAngle = value
|
||||
End If
|
||||
' Imposto flag di ricalcolo slice
|
||||
EgtSetInfo(Map.refTopPanelVM.SelPart.nPartId, MAC_TORECALC_SLICE, True)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -243,6 +259,12 @@ Public Class StartMachPanelVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property bGrid_IsEnabled As Boolean
|
||||
Get
|
||||
Return Map.refMyStatusBarVM.bGridVisibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bMove_IsChecked As Boolean
|
||||
Public Property bMove_IsChecked As Boolean
|
||||
Get
|
||||
@@ -348,6 +370,7 @@ Public Class StartMachPanelVM
|
||||
Friend Sub Dispose()
|
||||
' ripristino frame originale
|
||||
EgtSetGridFrame(m_OriginalGridFrame)
|
||||
EgtDeselectAll()
|
||||
EgtDraw()
|
||||
Map.refSceneHostVM.MainScene.SetStatusNull()
|
||||
End Sub
|
||||
@@ -836,6 +859,7 @@ Public Class StartMachPanelVM
|
||||
Public Sub CPlaneObj(ByVal param As Object)
|
||||
If Map.refSceneHostVM.MainController.GetStep <> 0 Then Return
|
||||
' salvo selezione precedente e deseleziono altri oggetti
|
||||
m_PrevSelObjs.Clear()
|
||||
Dim nSelObjId As Integer = EgtGetFirstSelectedObj()
|
||||
While nSelObjId <> GDB_ID.NULL
|
||||
m_PrevSelObjs.Add(nSelObjId)
|
||||
|
||||
@@ -23,9 +23,13 @@ Public Class MyStatusBarVM
|
||||
Return m_bGridVisibility
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If Map.refRibPanelVM.bGrid_IsChecked Or Map.refStartMachPanelVM.bGrid_IsChecked Or Map.refShellNumberPanelVM.bGrid_IsChecked Then Return
|
||||
m_bGridVisibility = value
|
||||
EgtSetGridShow(value, value)
|
||||
EgtDraw()
|
||||
Map.refRibPanelVM.NotifyPropertyChanged(NameOf(Map.refRibPanelVM.bGrid_IsEnabled))
|
||||
Map.refStartMachPanelVM.NotifyPropertyChanged(NameOf(Map.refStartMachPanelVM.bGrid_IsEnabled))
|
||||
Map.refShellNumberPanelVM.NotifyPropertyChanged(NameOf(Map.refShellNumberPanelVM.bGrid_IsEnabled))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||