Compare commits

...

48 Commits

Author SHA1 Message Date
Emmanuele Sassi 9233d3f6f2 - apertura file pdf come risorsa di progetto 2023-02-17 13:05:24 +01:00
Emmanuele Sassi 58febf7d4b - primi test implementazione manuale come risorsa e apertura 2023-01-30 16:37:17 +01:00
Emmanuele Sassi 725cb6e3cc - Aperta finestra con webviewer da path completa 2023-01-27 18:18:37 +01:00
Emmanuele Sassi 629d16b4f1 - introdotto "copia da" su parametri ribs
- introdotto indice fisso ribs
- introdotto ordine di stampa dei layer (shell, rib, ecc...)
- corretta estensione in esportazione
2023-01-24 20:31:23 +01:00
Emmanuele Sassi ea551e25e5 - aggiunta gestione spostamenti limitati nella tavola o meno a seconda del tipo di entita' 2023-01-23 09:53:22 +01:00
Emmanuele Sassi ff180ec2a4 Merge branch 'MinorFix' into develop 2023-01-12 10:51:16 +01:00
Emmanuele Sassi 3b6accaa20 Merge remote-tracking branch 'ICARUS/main' into develop 2023-01-12 10:50:43 +01:00
Emmanuele Sassi a6756b6f77 - aggiunta deselezione elemento rib, shell o infill
- correzione dis/attivazione vista elementi quando si esce da rib, shell e infill
2023-01-12 10:49:51 +01:00
DarioS 80bcd2f225 Merge branch 'main' of https://gitlab.steamware.net/egalware/icarus 2023-01-12 09:38:58 +01:00
DarioS 40970b417a Icarus :
- assegnazione default nuovi  parametri di materiali
- sistemazione esportazione 3mf/stl
- assegnazione direttorio base dei file lua in esecuzione degli stessi.
2023-01-12 09:38:33 +01:00
Emmanuele Sassi 647e3fe318 Merge branch 'main' of https://gitlab.steamware.net/egalware/icarus 2023-01-12 09:21:21 +01:00
Emmanuele Sassi 6f2fcbaf3e - aggiunto nuovo tipo di rib
- aggiunta importazione da tasto destro su ManageModifyPart
2023-01-12 09:21:16 +01:00
DarioS 295f882d45 Icarus :
- impostazione dati filtro per esportazione.
2023-01-11 14:54:27 +01:00
Emmanuele Sassi 60ecebf9ff - export aggiornato con dialogo dedicato 2023-01-10 11:22:26 +01:00
Emmanuele Sassi 02ecb31ae7 - aggiunto export del progetto 2023-01-10 09:22:51 +01:00
Emmanuele Sassi 51c736f7f9 - miglioramenti a gestione materiali 2023-01-10 08:55:56 +01:00
Emmanuele Sassi 1b9f5457f2 Merge branch 'ManageMaterialNone' 2023-01-09 15:52:01 +01:00
DarioS cb2a22863c Icarus :
- aggiunto parametro Generale DynamicMode
- in Generazione scambiati Ctrl e Shift.
2023-01-03 15:21:10 +01:00
DarioS 82bc1f4ff2 Icarus 2.5a1 :
- ricompilazione con cambio versione.
2023-01-03 08:57:52 +01:00
Emmanuele Sassi b695326901 Merge branch 'develop' 2022-12-28 09:17:00 +01:00
Emmanuele Sassi 63092f1ed6 - aggiornamento con nuove costanti materiale
- eliminazione parametro wipe direction
2022-12-27 16:41:08 +01:00
Emmanuele Sassi 8d548dee9c - aggiunta EdgeAnalysis per la ricerca dei bordi aperti dei solidi
- bloccato altri comandi quando in simulazione
2022-12-27 13:38:40 +01:00
Emmanuele Sassi 60758454ed - aggiunto FeedIncrement
- migliorata gestione colore sfondo con wait
2022-12-27 13:37:21 +01:00
DarioS a328be0e1c Icarus :
- piccole migliorie per tipo parametri (lunghezze o altro) e defualt di G0FeedZ.
2022-12-14 19:05:38 +01:00
Emmanuele Sassi 05864bcac5 Merge branch 'ImportExportMachiningDb&Material' into develop 2022-12-14 15:17:11 +01:00
Emmanuele Sassi 238bdbb1ce - Correzione su import/export machining 2022-12-14 11:53:24 +01:00
Emmanuele Sassi 144b8dc66e - aggiunta gestione dis/attivazione wait
- aggiunta modifica con selezione dei tempi wait
2022-12-13 19:05:57 +01:00
Emmanuele Sassi 5f9a01ae2e - aggiunta del parametro G0FeedZ
- aggiunta gestione colori e trasparenze categorie
- corretta creazione nuovo pezzo da superficie in import
- Reintrodotta gestione parametro RibsLink su singole Ribs
2022-12-13 11:01:58 +01:00
Emmanuele Sassi a6386e64d9 Merge remote-tracking branch 'ICARUS/main' into ImportExportMachiningDb&Material 2022-12-09 17:16:55 +01:00
Emmanuele Sassi 551eec6496 - aggiunta gestione spostamento pezzo print quando aggiunto o rimosso e stampa a 45 gradi 2022-12-09 16:45:37 +01:00
Emmanuele Sassi a24c4ada62 - correzione indice di slice 2022-12-09 12:43:00 +01:00
DarioS 2a86d67ca9 Icarus 2.4l3 :
- riportate su StartMach e ShellNumber le modifiche di selezione fatte sui Ribs.
2022-12-07 17:37:36 +01:00
DarioS 5c4a8adf9b Icarus 2.4l2 :
- corretti movimenti e rotazioni di LayerStart, Ribs e Reduce
- bottone impostazioni Grid visibile solo se Grid abilitata
- migliorato controllo esistenza direttorio generazione CN.
2022-12-06 16:56:58 +01:00
DarioS 0cc2534628 Icarus :
- corretta gestione rotazione pezzo (ora default asse Z)
- quando si fa SaveAs si rimuove il nome del CN da generare (per forzare generazione con nuovo nome)
- ora gestita anche estrusione 45deg in Y e riordinate le parti relative compresa abilitazione da Ini macchina.
2022-12-05 11:45:05 +01:00
DarioS 2a861dca1b Icarus 2.4k6 :
- aggiunte versioni a 32bit solo per usi interni (test/debug).
2022-11-28 15:35:15 +01:00
Emmanuele Sassi 16715a8c08 Icarus 2.4k5 :
- cambio di versione
2022-11-23 11:09:03 +01:00
Emmanuele Sassi 4c5500c490 Merge branch 'main' of https://gitlab.steamware.net/egalware/icarus 2022-11-23 11:08:18 +01:00
Emmanuele Sassi 75b4b4e4d0 - correzione se lavorazione nulla 2022-11-23 11:08:15 +01:00
Emmanuele Sassi b643cb5030 - correzione 2022-11-23 10:56:15 +01:00
DarioS f710918411 Icarus :
- aggiunti controlli per evitare crash se progetto senza materiale.
2022-11-22 19:59:51 +01:00
DarioS 1585fc2659 Icarus :
- controllo esistenza direttorio in cui generare CN, altrimenti direttorio del progetto.
2022-11-22 19:25:39 +01:00
Emmanuele Sassi c06d75e292 Merge branch 'main' into ImportExportMachiningDb&Material 2022-11-22 16:11:50 +01:00
Emmanuele Sassi a6acc66099 - migliorato import export 2022-11-22 16:10:08 +01:00
Emmanuele Sassi 12de367ba1 - Importazione ed esportazione lavorazioni 2022-11-14 20:12:49 +01:00
Emmanuele Sassi a68dba11a2 Merge branch 'develop' into ImportExportMachiningDb&Material 2022-11-14 13:28:14 +01:00
Emmanuele Sassi 5d26914967 Merge branch 'develop' into ImportExportMachiningDb&Material 2022-11-14 09:35:34 +01:00
Emmanuele Sassi 98628b887e - Inizio implementazione finestra di import export 2022-10-28 08:33:03 +02:00
Emmanuele Sassi 5152600fd9 Merge remote-tracking branch 'ICARUS/main' into ImportExportMachiningDb&Material 2022-10-27 22:28:40 +02:00
1209 changed files with 115424 additions and 3629 deletions
+7 -1
View File
@@ -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
-275
View File
@@ -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
+8 -1
View File
@@ -14,11 +14,13 @@
Public Const START_GEOM = "Start"
Public Const RIB_EXTRUSION = "RibExtrusion"
Public Const RIB_CURVE = "RibCurve"
Public Const RIB_ID = "RibId"
Public Const VIEWPARAMS = "ViewParams"
Public Const IMPORTED_SOLID = "ImportedSolid"
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 +38,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 +49,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 +99,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 +127,8 @@
Public Const MAC_AUXSOLIDSCOASTINGLEN = "AuxSolidsCoastingLen"
Public Const MAC_AUXSOLIDSWIPELEN = "AuxSolidsWipeLen"
Public Const MAC_AUXSOLIDSWIPEDIR = "AuxSolidsWipeDir"
Public Const MAC_DYNAMICMODE = "DynamicMode"
Public Const MAC_PRINTORDER = "PrintOrder"
Public Const MAC_CONSTANT = "Constant"
Public Const MAC_MATERIALS = "Materials"
+1 -11
View File
@@ -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
+8
View File
@@ -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"
+1 -1
View File
@@ -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"
+150 -30
View File
@@ -1,4 +1,5 @@
Imports System.Collections.ObjectModel
Imports System.Collections.Specialized
Imports System.ComponentModel
Imports EgtUILib
Imports EgtWPFLib5
@@ -150,7 +151,7 @@ Public Class CurrMachining
Friend Overrides Sub OnMachiningParamPropertyChanged(sender As Object, e As PropertyChangedEventArgs)
Select Case e.PropertyName
Case NameOf(sender.dValue), NameOf(sender.sValue), NameOf(sender.bValue), NameOf(sender.SelValue)
Case NameOf(sender.dValue), NameOf(sender.sValue), NameOf(sender.bValue), NameOf(sender.SelValue), NameOf(sender.Value)
m_bIsModified = m_CathegoryList.Any(Function(x) x.MachiningParamList.Any(Function(y) y.bIsModified))
NotifyPropertyChanged(NameOf(ghName))
NotifyPropertyChanged(NameOf(sCurrSlicingType))
@@ -158,6 +159,7 @@ Public Class CurrMachining
NotifyPropertyChanged(NameOf(sCurrStrandW))
NotifyPropertyChanged(NameOf(sCurrStrandCount))
NotifyPropertyChanged(NameOf(sCurrOffset))
sender.NotifyPropertyChanged(NameOf(sender.bIsModifiedFromDb))
End Select
End Sub
@@ -194,8 +196,11 @@ 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),
New CurrOrderedMachiningParam(MachiningParam.Params.PRINT_ORDER, 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 +216,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 +278,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 +319,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 +362,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 +397,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 +409,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 +427,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 +437,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 +457,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 +508,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 +690,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 +745,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 +770,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 +797,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 +825,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
@@ -948,3 +978,93 @@ Public Class CurrCheckMachiningParam
End Class
Public Class CurrOrderedMachiningParam
Inherits OrderedMachiningParam
Private m_DbParam As OrderedMachiningParam
Public ReadOnly Property DbParam As OrderedMachiningParam
Get
Return m_DbParam
End Get
End Property
Public ReadOnly Property bIsModifiedFromDb As Boolean
Get
Return If(Map.refTopPanelVM.SelMachining.sGUID <> Guid.Empty, Value <> m_DbParam.Value, False)
End Get
End Property
' Definizione comandi
Private m_cmdResetParam As ICommand
Sub New(Type As Params, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean)
MyBase.New(Type, nIndex)
Dim bReadFromPart As Boolean = False
Select Case Type
Case Params.PRINT_ORDER
m_ValueList = New ObservableCollection(Of IdNameStruct)
Dim sValue As String = ""
bReadFromPart = EgtGetInfo(nPartId, MAC_PRINTORDER, sValue)
Value = sValue
End Select
m_OrigValue = Value
If nIndex > 0 Then
Dim DbMachining As Machining = Map.refMachiningDbVM.MachiningList.FirstOrDefault(Function(x) x.nIndex = nIndex)
Select Case Type
Case Params.PRINT_ORDER
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
End Select
If bForceFromDb OrElse Not bReadFromPart Then
Value = m_DbParam.OrigValue
m_OrigValue = m_DbParam.OrigValue
End If
ElseIf Type = Params.PRINT_ORDER AndAlso Not bReadFromPart Then
Value = ""
m_OrigValue = Value
End If
End Sub
Friend Overrides Sub WriteParamInPart(nPartId As Integer)
Select Case Type
Case Params.PRINT_ORDER
EgtSetInfo(nPartId, MAC_PRINTORDER, Value)
End Select
End Sub
Friend Overrides Sub SaveParam()
m_OrigValue = Value
End Sub
Friend Overrides Sub ResetParam()
Value = m_OrigValue
m_SelValue = Nothing
NotifyPropertyChanged(NameOf(ValueList))
NotifyPropertyChanged(NameOf(SelValue))
End Sub
#Region "COMMANDS"
#Region "ResetParam"
Public ReadOnly Property ResetParam_Command As ICommand
Get
If m_cmdResetParam Is Nothing Then
m_cmdResetParam = New Command(AddressOf ResetParamCmd)
End If
Return m_cmdResetParam
End Get
End Property
Public Sub ResetParamCmd()
m_SelValue = Nothing
Value = DbParam.OrigValue
NotifyPropertyChanged(NameOf(Value))
NotifyPropertyChanged(NameOf(SelValue))
NotifyPropertyChanged(NameOf(bIsModifiedFromDb))
End Sub
#End Region ' ResetParam
#End Region ' COMMANDS
End Class
@@ -27,8 +27,7 @@
<ItemsControl ItemsSource="{Binding MachiningParamList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="1"
HorizontalAlignment="Stretch"/>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Resources>
@@ -118,6 +117,44 @@
Style="{StaticResource ToolBar_SmallButton}"/>
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type PrintApp:OrderedMachiningParam}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding sName}"/>
<StackPanel Grid.Column="1"
Orientation="Horizontal"
HorizontalAlignment="Right">
<Button Content="&lt;>"
Command="{Binding ResetOrder_Command}"
Style="{StaticResource ToolBar_SmallButton}"/>
<Button Content="˄"
Command="{Binding MoveUpOrder_Command}"
Style="{StaticResource ToolBar_SmallButton}"/>
<Button Content="˅"
Command="{Binding MoveDownOrder_Command}"
Style="{StaticResource ToolBar_SmallButton}"/>
<Button Grid.Column="2"
Content="R"
Command="{Binding ResetParam_Command}"
IsEnabled="{Binding bIsModifiedFromDb}"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
Margin="5,0,0,0"
Style="{StaticResource ToolBar_SmallButton}"/>
</StackPanel>
<ListBox Grid.ColumnSpan="2"
Grid.Row="1"
ItemsSource="{Binding ValueList}"
SelectedItem="{Binding SelValue}"/>
</Grid>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
</Expander>
@@ -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"
+107 -22
View File
@@ -20,13 +20,40 @@ Public Class DispositionPanelVM
EgtStartPoint(Map.refTopPanelVM.SelPart.nReferenceId, GDB_ID.ROOT, ptReference)
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)
Dim b3Print As New BBox3d
EgtGetBBoxGlob(Map.refTopPanelVM.SelPart.nPrintSolidId, GDB_BB.EXACT, b3Print)
If EgtGetGroupObjs(Map.refTopPanelVM.SelPart.nRibsLayerId) > 0 Then
Dim b3Ribs As New BBox3d()
Dim nRibId As Integer = EgtGetFirstInGroup(Map.refTopPanelVM.SelPart.nRibsLayerId)
While nRibId <> GDB_ID.NULL
Dim nRibType As Integer = Machining.MPAR_RIBSTYPE.INTERNAL
EgtGetInfo(nRibId, MAC_RIBSTYPE, nRibType)
If nRibType = Machining.MPAR_RIBSTYPE.EXTERNAL OrElse nRibType = Machining.MPAR_RIBSTYPE.UNBOUNDED Then
Dim b3Rib As New BBox3d
EgtGetBBoxGlob(nRibId, GDB_BB.EXACT, b3Rib)
b3Ribs.Add(b3Rib)
End If
nRibId = EgtGetNext(nRibId)
End While
If b3Ribs.Min.x <> INFINITO Then
b3Print.Add(b3Ribs)
End If
End If
Dim dMin As Double = 0
Dim dMax As Double = CurrentMachine.b3Tab.DimX
If b3Print.Max.x > ptReference.x Then
dMax -= b3Print.Max.x - ptReference.x
End If
If b3Print.Min.x < ptReference.x Then
dMin += ptReference.x - b3Print.Min.x
End If
If dNewXPos >= dMin AndAlso dNewXPos <= dMax Then
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
@@ -45,13 +72,40 @@ Public Class DispositionPanelVM
EgtStartPoint(Map.refTopPanelVM.SelPart.nReferenceId, GDB_ID.ROOT, ptReference)
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)
Dim b3Print As New BBox3d
EgtGetBBoxGlob(Map.refTopPanelVM.SelPart.nPrintSolidId, GDB_BB.EXACT, b3Print)
If EgtGetGroupObjs(Map.refTopPanelVM.SelPart.nRibsLayerId) > 0 Then
Dim b3Ribs As New BBox3d()
Dim nRibId As Integer = EgtGetFirstInGroup(Map.refTopPanelVM.SelPart.nRibsLayerId)
While nRibId <> GDB_ID.NULL
Dim nRibType As Integer = Machining.MPAR_RIBSTYPE.INTERNAL
EgtGetInfo(nRibId, MAC_RIBSTYPE, nRibType)
If nRibType = Machining.MPAR_RIBSTYPE.EXTERNAL OrElse nRibType = Machining.MPAR_RIBSTYPE.UNBOUNDED Then
Dim b3Rib As New BBox3d
EgtGetBBoxGlob(nRibId, GDB_BB.EXACT, b3Rib)
b3Ribs.Add(b3Rib)
End If
nRibId = EgtGetNext(nRibId)
End While
If b3Ribs.Min.x <> INFINITO Then
b3Print.Add(b3Ribs)
End If
End If
Dim dMin As Double = 0
Dim dMax As Double = CurrentMachine.b3Tab.DimY
If b3Print.Max.y > ptReference.y Then
dMax -= b3Print.Max.y - ptReference.y
End If
If b3Print.Min.y < ptReference.y Then
dMin += ptReference.y - b3Print.Min.y
End If
If dNewYPos >= dMin AndAlso dNewYPos <= dMax Then
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 +125,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 +166,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 +179,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 +259,8 @@ Public Class DispositionPanelVM
End Sub
Friend Sub Init()
RotZ = True
NotifyPropertyChanged(NameOf(RotZ))
End Sub
Friend Sub RefreshPos()
@@ -193,6 +275,7 @@ Public Class DispositionPanelVM
' seleziono percorso corrente
EgtDeselectAll()
EgtSelectObj(Map.refTopPanelVM.SelPart.nPartId)
EgtDraw()
End Sub
Friend Sub UpdateUI()
@@ -201,8 +284,9 @@ Public Class DispositionPanelVM
m_bRotating = False
' ripristino griglia
EgtSetGridFrame(m_PrevGridOrigin)
EgtDraw()
End If
EgtDeselectAll()
EgtDraw()
End Sub
Friend Sub OnKeyDown(Key As Forms.Keys)
@@ -211,8 +295,9 @@ Public Class DispositionPanelVM
m_bRotating = False
' ripristino griglia
EgtSetGridFrame(m_PrevGridOrigin)
EgtDraw()
End If
EgtDeselectAll()
EgtDraw()
End If
End Sub
+19
View File
@@ -0,0 +1,19 @@
<EgtWPFLib5:EgtCustomWindow x:Class="HelpWndV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:CefSharpWpf="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
xmlns:local="clr-namespace:Icarus"
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
Title="{Binding sTitle}" Icon="/Resources/Icarus.ico"
MinHeight="600" MinWidth="800" WindowStyle="None" ResizeMode="NoResize">
<EgtWPFLib5:EgtCustomWindow.Resources>
<local:CustomMenuHandler x:Key="CustomMenuHandler"/>
</EgtWPFLib5:EgtCustomWindow.Resources>
<CefSharpWpf:ChromiumWebBrowser x:Name="Browser"
MenuHandler="{StaticResource CustomMenuHandler}"/>
<!--<CefSharpWpf:ChromiumWebBrowser x:Name="Browser"
Address="c:\EgtData\Icarus\Help\lm_1170\\index.html"
MenuHandler="{StaticResource CustomMenuHandler}"/>-->
</EgtWPFLib5:EgtCustomWindow>
+26
View File
@@ -0,0 +1,26 @@
Imports System.Diagnostics.Eventing
Imports System.IO
Imports System.Reflection
Public Class HelpWndV
Private WithEvents m_HelpWndVM As HelpWndVM
Sub New(Owner As Window, HelpWndVM As HelpWndVM)
MyBase.New(Owner)
' This call is required by the designer.
InitializeComponent()
Me.DataContext = HelpWndVM
' Assegno al riferimento locale al VM il VM preso dal DataContext
m_HelpWndVM = HelpWndVM
'm_HelpWndVM.SetWebBrowser(WebBrowser)
Browser.ResourceRequestHandlerFactory = New ResourceHandlerFactory
Browser.Address = "Icarus.pdf#toolbar=0"
End Sub
'Private Sub CloseWindow(bDialogResult As Boolean) Handles m_HelpWndVM.m_CloseWindow
' Me.DialogResult = bDialogResult
'End Sub
End Class
+20
View File
@@ -0,0 +1,20 @@
Public Class HelpWndVM
'Private m_WebBrowser As WebBrowser
'Public ReadOnly Property WebBrowser As WebBrowser
' Get
' Return m_WebBrowser
' End Get
'End Property
'Friend Sub SetWebBrowser(value As WebBrowser)
' m_WebBrowser = value
'End Sub
Sub New()
End Sub
Friend Sub LoadHtml()
'm_WebBrowser.Source = New Uri("c:\EgtData\Icarus\Help\lm_1170\index.html")
End Sub
End Class
+145
View File
@@ -0,0 +1,145 @@
Imports System.Collections.Specialized
Imports System.IO
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Imports CefSharp
Imports CefSharp.Callback
Public Class ResourceHandler
Implements IResourceHandler
Public Const DefaultMimeType As String = "text/html"
Private tempBuffer As Byte()
Public Property Charset As String
Public Property MimeType As String
Public Property Stream As Stream
Public Property StatusCode As Integer
Public Property StatusText As String
Public Property m_ResponseLength As Long?
Public Property Headers As NameValueCollection
Public Property AutoDisposeStream As Boolean
Public Property ErrorCode As CefErrorCode?
Private disposedValue As Boolean
Public Sub New(ByVal Optional mimeType As String = DefaultMimeType, ByVal Optional stream As Stream = Nothing, ByVal Optional autoDisposeStream As Boolean = False, ByVal Optional charset As String = Nothing)
If String.IsNullOrEmpty(mimeType) Then
Throw New ArgumentNullException("mimeType", "Please provide a valid mimeType")
End If
StatusCode = 200
StatusText = "OK"
mimeType = "application/pdf"
Headers = New NameValueCollection()
stream = stream
autoDisposeStream = autoDisposeStream
charset = charset
Headers.Add("Access-Control-Allow-Origin", "*")
End Sub
Public Sub GetResponseHeaders(response As IResponse, ByRef responseLength As Long, ByRef redirectUrl As String) Implements IResourceHandler.GetResponseHeaders
redirectUrl = Nothing
responseLength = -1
'response.MimeType = MimeType
response.MimeType = "application/pdf"
response.StatusCode = StatusCode
response.StatusText = StatusText
response.Headers = Headers
If Not String.IsNullOrEmpty(Charset) Then
response.Charset = Charset
End If
If Not IsNothing(m_ResponseLength) Then
responseLength = m_ResponseLength
End If
If Stream IsNot Nothing AndAlso Stream.CanSeek Then
If m_ResponseLength Is Nothing OrElse responseLength = 0 Then
responseLength = Stream.Length
End If
Stream.Position = 0
End If
End Sub
Public Sub Cancel() Implements IResourceHandler.Cancel
Return
End Sub
Public Function Open(request As IRequest, ByRef handleRequest As Boolean, callback As ICallback) As Boolean Implements IResourceHandler.Open
Dim assembly = Reflection.Assembly.GetExecutingAssembly()
Dim resourceName = "Icarus.Icarus.pdf"
Stream = assembly.GetManifestResourceStream(resourceName)
callback.Continue()
Return True
End Function
Public Function ProcessRequest(request As IRequest, callback As ICallback) As Boolean Implements IResourceHandler.ProcessRequest
Return True
End Function
Public Function Skip(bytesToSkip As Long, ByRef bytesSkipped As Long, callback As IResourceSkipCallback) As Boolean Implements IResourceHandler.Skip
callback.Dispose()
If Stream Is Nothing OrElse Not Stream.CanSeek Then
bytesSkipped = -2
Return False
End If
bytesSkipped = bytesToSkip
Stream.Seek(bytesToSkip, SeekOrigin.Current)
Return True
End Function
Public Function Read(dataOut As Stream, ByRef bytesRead As Integer, callback As IResourceReadCallback) As Boolean Implements IResourceHandler.Read
bytesRead = 0
callback.Dispose()
If Stream Is Nothing Then
Return False
End If
If tempBuffer Is Nothing OrElse tempBuffer.Length < dataOut.Length Then
tempBuffer = New Byte(dataOut.Length - 1) {}
End If
bytesRead = Stream.Read(tempBuffer, 0, CInt(dataOut.Length))
If bytesRead = 0 Then
Return False
End If
dataOut.Write(tempBuffer, 0, bytesRead)
Return bytesRead > 0
End Function
Public Function ReadResponse(dataOut As Stream, ByRef bytesRead As Integer, callback As ICallback) As Boolean Implements IResourceHandler.ReadResponse
Throw New NotImplementedException()
End Function
Protected Overridable Sub Dispose(disposing As Boolean)
If Not disposedValue Then
If disposing Then
' TODO: dispose managed state (managed objects)
End If
' TODO: free unmanaged resources (unmanaged objects) and override finalizer
' TODO: set large fields to null
disposedValue = True
End If
End Sub
' ' TODO: override finalizer only if 'Dispose(disposing As Boolean)' has code to free unmanaged resources
' Protected Overrides Sub Finalize()
' ' Do not change this code. Put cleanup code in 'Dispose(disposing As Boolean)' method
' Dispose(disposing:=False)
' MyBase.Finalize()
' End Sub
Public Sub Dispose() Implements IDisposable.Dispose
' Do not change this code. Put cleanup code in 'Dispose(disposing As Boolean)' method
Dispose(disposing:=True)
GC.SuppressFinalize(Me)
End Sub
End Class
+16
View File
@@ -0,0 +1,16 @@
Imports CefSharp
Public Class ResourceHandlerFactory
Implements IResourceRequestHandlerFactory
Public ReadOnly Property HasHandlers As Boolean Implements IResourceRequestHandlerFactory.HasHandlers
Get
Return True
End Get
End Property
Public Function GetResourceRequestHandler(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest, isNavigation As Boolean, isDownload As Boolean, requestInitiator As String, ByRef disableDefaultHandling As Boolean) As IResourceRequestHandler Implements IResourceRequestHandlerFactory.GetResourceRequestHandler
Return New ResourceRequestHandler
End Function
End Class
+67
View File
@@ -0,0 +1,67 @@
Imports System.IO
Imports CefSharp
Imports CefSharp.Callback
Public Class ResourceRequestHandler
Implements IResourceRequestHandler
Private disposedValue As Boolean
Public Sub OnResourceRedirect(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest, response As IResponse, ByRef newUrl As String) Implements IResourceRequestHandler.OnResourceRedirect
Throw New NotImplementedException()
End Sub
Public Sub OnResourceLoadComplete(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest, response As IResponse, status As UrlRequestStatus, receivedContentLength As Long) Implements IResourceRequestHandler.OnResourceLoadComplete
End Sub
Public Function GetCookieAccessFilter(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest) As ICookieAccessFilter Implements IResourceRequestHandler.GetCookieAccessFilter
Return Nothing
End Function
Public Function OnBeforeResourceLoad(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest, callback As IRequestCallback) As CefReturnValue Implements IResourceRequestHandler.OnBeforeResourceLoad
Return CefReturnValue.Continue
End Function
Public Function GetResourceHandler(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest) As IResourceHandler Implements IResourceRequestHandler.GetResourceHandler
Return New ResourceHandler
End Function
Public Function OnResourceResponse(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest, response As IResponse) As Boolean Implements IResourceRequestHandler.OnResourceResponse
Return True
End Function
Public Function GetResourceResponseFilter(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest, response As IResponse) As IResponseFilter Implements IResourceRequestHandler.GetResourceResponseFilter
Return Nothing
End Function
Public Function OnProtocolExecution(chromiumWebBrowser As IWebBrowser, browser As IBrowser, frame As IFrame, request As IRequest) As Boolean Implements IResourceRequestHandler.OnProtocolExecution
Throw New NotImplementedException()
End Function
Protected Overridable Sub Dispose(disposing As Boolean)
'If Not disposedValue Then
' If disposing Then
' ' TODO: dispose managed state (managed objects)
' End If
' ' TODO: free unmanaged resources (unmanaged objects) and override finalizer
' ' TODO: set large fields to null
' disposedValue = True
'End If
End Sub
' ' TODO: override finalizer only if 'Dispose(disposing As Boolean)' has code to free unmanaged resources
' Protected Overrides Sub Finalize()
' ' Do not change this code. Put cleanup code in 'Dispose(disposing As Boolean)' method
' Dispose(disposing:=False)
' MyBase.Finalize()
' End Sub
Public Sub Dispose() Implements IDisposable.Dispose
' Do not change this code. Put cleanup code in 'Dispose(disposing As Boolean)' method
Dispose(disposing:=True)
GC.SuppressFinalize(Me)
End Sub
End Class
BIN
View File
Binary file not shown.
+185 -1
View File
@@ -1,4 +1,7 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\CefSharp.Common.109.1.110\build\CefSharp.Common.props" Condition="Exists('..\packages\CefSharp.Common.109.1.110\build\CefSharp.Common.props')" />
<Import Project="..\packages\cef.redist.x86.109.1.11\build\cef.redist.x86.props" Condition="Exists('..\packages\cef.redist.x86.109.1.11\build\cef.redist.x86.props')" />
<Import Project="..\packages\cef.redist.x64.109.1.11\build\cef.redist.x64.props" Condition="Exists('..\packages\cef.redist.x64.109.1.11\build\cef.redist.x64.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -12,6 +15,8 @@
<MyType>Custom</MyType>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
@@ -53,7 +58,38 @@
<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="CefSharp, Version=109.1.110.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>..\packages\CefSharp.Common.109.1.110\lib\net452\CefSharp.dll</HintPath>
</Reference>
<Reference Include="CefSharp.Core, Version=109.1.110.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>..\packages\CefSharp.Common.109.1.110\lib\net452\CefSharp.Core.dll</HintPath>
</Reference>
<Reference Include="CefSharp.Wpf, Version=109.1.110.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>..\packages\CefSharp.Wpf.109.1.110\lib\net462\CefSharp.Wpf.dll</HintPath>
</Reference>
<Reference Include="EgtUILib, Version=2.4.7.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\EgtProg\DllD32\EgtUILib.dll</HintPath>
@@ -123,6 +159,17 @@
<DependentUpon>DispositionPanelV.xaml</DependentUpon>
</Compile>
<Compile Include="DispositionPanel\DispositionPanelVM.vb" />
<Compile Include="HelpWnd\HelpWndV.xaml.vb">
<DependentUpon>HelpWndV.xaml</DependentUpon>
</Compile>
<Compile Include="HelpWnd\HelpWndVM.vb" />
<Compile Include="HelpWnd\ResourceHandler.vb" />
<Compile Include="HelpWnd\ResourceRequestHandler.vb" />
<Compile Include="HelpWnd\ResourceHandlerFactory.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>
@@ -183,6 +230,10 @@
<DependentUpon>RibPanelV.xaml</DependentUpon>
</Compile>
<Compile Include="RibPanel\RibPanelVM.vb" />
<Compile Include="RibParamPanel\CopyFromWndV.xaml.vb">
<DependentUpon>CopyFromWndV.xaml</DependentUpon>
</Compile>
<Compile Include="RibParamPanel\CopyFromWndVM.vb" />
<Compile Include="RibParamPanel\RibParamPanelV.xaml.vb">
<DependentUpon>RibParamPanelV.xaml</DependentUpon>
</Compile>
@@ -255,6 +306,7 @@
<DependentUpon>TFSEditorV.xaml</DependentUpon>
</Compile>
<Compile Include="Utility\CurrentMachine.vb" />
<Compile Include="Utility\CustomMenuHandler.vb" />
<Compile Include="Utility\Dictionary.xaml.vb">
<DependentUpon>Dictionary.xaml</DependentUpon>
</Compile>
@@ -299,6 +351,14 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="HelpWnd\HelpWndV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</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>
@@ -371,6 +431,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="RibParamPanel\CopyFromWndV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="RibParamPanel\RibParamPanelV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -498,17 +562,98 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Icarus.pdf" />
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
</EmbeddedResource>
<Resource Include="Resources\Manual\Icarus.pdf" />
<None Include="app.manifest" />
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="packages.config" />
<None Include="Resources\Manual\Demo\templates\default\delos.css.map" />
<None Include="Resources\Manual\Demo\templates\default\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\bootstrap-variables.less" />
<None Include="Resources\Manual\Demo\templates\default\less\color.less" />
<None Include="Resources\Manual\Demo\templates\default\less\deprecated.less" />
<None Include="Resources\Manual\Demo\templates\default\less\focus-mixin.less" />
<None Include="Resources\Manual\Demo\templates\default\less\font.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Bibliographic\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Blog\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\BookingManager\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Chatroom\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Course\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\DataCollection\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Excercise\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Forum\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\LearningModule\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\LearningSequence\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\LTIConsumer\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\MediaPool\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Poll\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Portfolio\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\ScormAicc\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Survey\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Test\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\Wiki\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Modules\WorkspaceFolder\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\multi-line-cap.less" />
<None Include="Resources\Manual\Demo\templates\default\less\reset.less" />
<None Include="Resources\Manual\Demo\templates\default\less\screenreader-only-mixins.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Accordion\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Awareness\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Badge\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Block\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Bookmarks\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Calendar\bootstrap-datetimepicker.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Calendar\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Captcha\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Certificate\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Chart\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Container\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\COPage\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\FileUpload\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Form\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Help\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\InfoScreen\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Init\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\LearningHistory\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Like\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Mail\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\MainMenu\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\MediaObjects\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Membership\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Navigation\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\News\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Notes\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Object\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\OnScreenChat\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Preview\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Rating\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Search\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Skill\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Style\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Table\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\Tags\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\TermsOfService\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\AdvancedSelectionList\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\Button\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\Checklist\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\Explorer2\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\GroupedList\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\Lightbox\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\Modal\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\ProgressBar\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\Tabs\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\Toolbar\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\UIComponent\Tooltip\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\User\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\Services\WebDAV\delos.less" />
<None Include="Resources\Manual\Demo\templates\default\less\variables.less" />
<Resource Include="Resources\Fonts\Roboto-Regular.ttf" />
<Resource Include="Resources\Fonts\Roboto-Light.ttf" />
</ItemGroup>
@@ -631,15 +776,54 @@
<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>
<ItemGroup />
<ItemGroup>
<EmbeddedResource Include="Resources\Manual\Demo\index.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\buttons.js" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\default.css" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\delos.css" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\delos_cont.css" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\template.xml" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.adm_content.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.buttons.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.error.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.explorer.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.frameset.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.main.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.obj_tbl_rows.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.page_content.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.page_content_bak.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.statusline.html" />
<EmbeddedResource Include="Resources\Manual\Demo\templates\default\tpl.table.html" />
</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>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\cef.redist.x64.109.1.11\build\cef.redist.x64.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x64.109.1.11\build\cef.redist.x64.props'))" />
<Error Condition="!Exists('..\packages\cef.redist.x86.109.1.11\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x86.109.1.11\build\cef.redist.x86.props'))" />
<Error Condition="!Exists('..\packages\CefSharp.Common.109.1.110\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.109.1.110\build\CefSharp.Common.props'))" />
<Error Condition="!Exists('..\packages\CefSharp.Common.109.1.110\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.109.1.110\build\CefSharp.Common.targets'))" />
</Target>
<Import Project="..\packages\CefSharp.Common.109.1.110\build\CefSharp.Common.targets" Condition="Exists('..\packages\CefSharp.Common.109.1.110\build\CefSharp.Common.targets')" />
</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
-109
View File
@@ -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>
-3
View File
@@ -1,3 +0,0 @@
Public Class ImportPanelV
End Class
-443
View File
@@ -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
-231
View File
@@ -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
-10
View File
@@ -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>
-33
View File
@@ -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
-722
View File
@@ -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
-33
View File
@@ -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>
-18
View File
@@ -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
-106
View File
@@ -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"
+399 -145
View File
@@ -1,4 +1,5 @@
Imports System.Collections.ObjectModel
Imports System.Collections.Specialized
Imports System.ComponentModel
Imports EgtUILib
Imports EgtWPFLib5
@@ -9,7 +10,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 +40,7 @@ Public Class Machining
INTERNAL = 1
EXTERNAL = 2
UNBOUNDED = 3
SUPPORT = 4
End Enum
Public Enum MPAR_INFILL As Integer
@@ -46,6 +49,19 @@ Public Class Machining
ZIGZAG = 3
End Enum
Public Enum MPAR_DYNAMIC_MODE As Integer
STANDARD = 1
FAST = 2
End Enum
Public Enum MPAR_PRINT_ORDER As Integer
SHELL = 1
EXTRA_SHELL = 2
INFILL = 3
AUX_SOLID = 4
RIB = 5
End Enum
Protected m_CathegoryList As New ObservableCollection(Of MachiningCathegory)
Public ReadOnly Property CathegoryList As ObservableCollection(Of MachiningCathegory)
Get
@@ -70,6 +86,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,18 +203,19 @@ 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
Friend Overridable Sub OnMachiningParamPropertyChanged(sender As Object, e As PropertyChangedEventArgs)
Select Case e.PropertyName
Case NameOf(sender.dValue), NameOf(sender.sValue), NameOf(sender.bValue), NameOf(sender.SelValue)
Case NameOf(sender.dValue), NameOf(sender.sValue), NameOf(sender.bValue), NameOf(sender.SelValue), NameOf(sender.Value)
UpdateIsModified()
Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
End Select
End Sub
@@ -303,8 +323,11 @@ 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),
New OrderedMachiningParam(MachiningParam.Params.PRINT_ORDER, nIndex)})
Case Cathegories.LINK
m_sName = "Shell"
m_MachiningParamList = New List(Of MachiningParam)({New ComboMachiningParam(MachiningParam.Params.LINKTYPE, nIndex),
@@ -320,8 +343,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 +401,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 +441,40 @@ 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
PRINT_ORDER = 60
MATERIALS = 100
End Enum
@@ -519,6 +545,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 +603,16 @@ 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"
Case Params.PRINT_ORDER
m_sName = "Print Order"
End Select
End Sub
@@ -589,7 +621,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,13 +642,13 @@ 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))
End Set
@@ -654,13 +686,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 +729,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 +764,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 +776,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 +794,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 +803,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 +812,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
@@ -901,10 +938,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
@@ -965,11 +1002,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 +1022,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
@@ -1115,20 +1164,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
@@ -1187,9 +1236,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 +1252,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()
@@ -1217,3 +1266,208 @@ Public Class MaterialMachiningParam
End Class
Public Class OrderedMachiningParam
Inherits MachiningParam
Protected m_ValueList As ObservableCollection(Of IdNameStruct)
Public ReadOnly Property ValueList As ObservableCollection(Of IdNameStruct)
Get
Return m_ValueList
End Get
End Property
Protected m_SelValue As IdNameStruct
Public Overridable Property SelValue As IdNameStruct
Get
Return m_SelValue
End Get
Set(value As IdNameStruct)
m_SelValue = value
End Set
End Property
Protected m_OrigValue As String
Public ReadOnly Property OrigValue As String
Get
Return m_OrigValue
End Get
End Property
Public Property Value As String
Get
Dim Temp As String = ""
For Each Item In m_ValueList
Temp &= Item.Id & ","
Next
Return Temp.TrimEnd(","c)
End Get
Set(value As String)
Select Case Type
Case Params.PRINT_ORDER
Dim StandardValueList() As String = {Machining.MPAR_PRINT_ORDER.SHELL,
Machining.MPAR_PRINT_ORDER.EXTRA_SHELL,
Machining.MPAR_PRINT_ORDER.INFILL,
Machining.MPAR_PRINT_ORDER.AUX_SOLID,
Machining.MPAR_PRINT_ORDER.RIB}
Dim StringValueList() As String = StandardValueList
If value.Length = 9 Then
StringValueList = value.Split(","c)
End If
If StringValueList.Count <> 5 Then
StringValueList = StandardValueList
End If
If Not StringValueList.Contains(Machining.MPAR_PRINT_ORDER.SHELL) OrElse
Not StringValueList.Contains(Machining.MPAR_PRINT_ORDER.EXTRA_SHELL) OrElse
Not StringValueList.Contains(Machining.MPAR_PRINT_ORDER.INFILL) OrElse
Not StringValueList.Contains(Machining.MPAR_PRINT_ORDER.AUX_SOLID) OrElse
Not StringValueList.Contains(Machining.MPAR_PRINT_ORDER.RIB) Then
StringValueList = StandardValueList
End If
m_ValueList.Clear()
For Each StringValue In StringValueList
Dim nValue As Integer = -1
Integer.TryParse(StringValue, nValue)
Dim ItemList As IdNameStruct
Select Case nValue
Case Machining.MPAR_PRINT_ORDER.SHELL
ItemList = New IdNameStruct(Machining.MPAR_PRINT_ORDER.SHELL, "Shell")
Case Machining.MPAR_PRINT_ORDER.EXTRA_SHELL
ItemList = New IdNameStruct(Machining.MPAR_PRINT_ORDER.EXTRA_SHELL, "Extra Shell")
Case Machining.MPAR_PRINT_ORDER.INFILL
ItemList = New IdNameStruct(Machining.MPAR_PRINT_ORDER.INFILL, "Infill")
Case Machining.MPAR_PRINT_ORDER.AUX_SOLID
ItemList = New IdNameStruct(Machining.MPAR_PRINT_ORDER.AUX_SOLID, "Filled Solids")
Case Machining.MPAR_PRINT_ORDER.RIB
ItemList = New IdNameStruct(Machining.MPAR_PRINT_ORDER.RIB, "Ribs")
End Select
m_ValueList.Add(ItemList)
Next
End Select
End Set
End Property
Public Overrides ReadOnly Property bIsModified As Boolean
Get
Return Value <> m_OrigValue
End Get
End Property
' Definizione comandi
Private m_cmdMoveUpOrder As ICommand
Private m_cmdMoveDownOrder As ICommand
Private m_cmdResetOrder As ICommand
Sub New(Type As Params)
MyBase.New(Type)
End Sub
Sub New(Type As Params, nIndex As Integer)
MyBase.New(Type)
If nIndex = 0 Then
m_ValueList = New ObservableCollection(Of IdNameStruct)
m_SelValue = Nothing
Else
Select Case Type
Case Params.PRINT_ORDER
m_ValueList = New ObservableCollection(Of IdNameStruct)
ReadMachiningParamString(nIndex, MAC_PRINTORDER, "", Value)
End Select
End If
m_OrigValue = Value
m_SelValue = Nothing
NotifyPropertyChanged(NameOf(SelValue))
End Sub
Friend Overrides Sub WriteParamOnDb(nIndex As Integer, Optional sFilePath As String = "")
Select Case Type
Case Params.PRINT_ORDER
WriteMachiningParam(nIndex, MAC_PRINTORDER, Value, sFilePath)
End Select
End Sub
Friend Overrides Sub SaveParam()
m_OrigValue = Value
End Sub
Friend Overrides Sub ResetParam()
Value = m_OrigValue
m_SelValue = Nothing
NotifyPropertyChanged(NameOf(ValueList))
NotifyPropertyChanged(NameOf(SelValue))
End Sub
#Region "COMMANDS"
#Region "MoveUpOrder"
Public ReadOnly Property MoveUpOrder_Command As ICommand
Get
If m_cmdMoveUpOrder Is Nothing Then
m_cmdMoveUpOrder = New Command(AddressOf MoveUpOrder)
End If
Return m_cmdMoveUpOrder
End Get
End Property
Public Sub MoveUpOrder()
If IsNothing(m_SelValue) Then Return
Dim nIndex As Integer = m_ValueList.IndexOf(m_SelValue)
If nIndex < 0 Then Return
If nIndex > 0 Then
m_ValueList.Move(nIndex, nIndex - 1)
NotifyPropertyChanged(NameOf(Value))
End If
End Sub
#End Region ' MoveUpOrder
#Region "MoveDownOrder"
Public ReadOnly Property MoveDownOrder_Command As ICommand
Get
If m_cmdMoveDownOrder Is Nothing Then
m_cmdMoveDownOrder = New Command(AddressOf MoveDownOrder)
End If
Return m_cmdMoveDownOrder
End Get
End Property
Public Sub MoveDownOrder()
If IsNothing(m_SelValue) Then Return
Dim nIndex As Integer = m_ValueList.IndexOf(m_SelValue)
If nIndex < 0 Then Return
If nIndex < m_ValueList.Count - 1 Then
m_ValueList.Move(nIndex, nIndex + 1)
NotifyPropertyChanged(NameOf(Value))
End If
End Sub
#End Region ' MoveDownOrder
#Region "ResetOrder"
Public ReadOnly Property ResetOrder_Command As ICommand
Get
If m_cmdResetOrder Is Nothing Then
m_cmdResetOrder = New Command(AddressOf ResetOrder)
End If
Return m_cmdResetOrder
End Get
End Property
Public Sub ResetOrder()
Dim CurrValue As String = Value
m_ValueList = New ObservableCollection(Of IdNameStruct)(m_ValueList.OrderBy(Function(x) x.Id))
If Value <> CurrValue Then
SelValue = Nothing
NotifyPropertyChanged(NameOf(ValueList))
NotifyPropertyChanged(NameOf(Value))
NotifyPropertyChanged(NameOf(SelValue))
End If
End Sub
#End Region ' ResetOrder
#End Region ' COMMANDS
End Class
+56 -4
View File
@@ -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*"/>
@@ -68,8 +91,7 @@
<ItemsControl ItemsSource="{Binding MachiningParamList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="1"
HorizontalAlignment="Stretch"/>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Resources>
@@ -163,6 +185,36 @@
Style="{StaticResource ToolBar_SmallButton}"/>-->
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type PrintApp:OrderedMachiningParam}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding sName}"/>
<StackPanel Grid.Column="1"
Orientation="Horizontal"
HorizontalAlignment="Right">
<Button Content="&lt;>"
Command="{Binding ResetOrder_Command}"
Style="{StaticResource ToolBar_SmallButton}"/>
<Button Content="˄"
Command="{Binding MoveUpOrder_Command}"
Style="{StaticResource ToolBar_SmallButton}"/>
<Button Content="˅"
Command="{Binding MoveDownOrder_Command}"
Style="{StaticResource ToolBar_SmallButton}"/>
</StackPanel>
<ListBox Grid.ColumnSpan="2"
Grid.Row="1"
ItemsSource="{Binding ValueList}"
SelectedItem="{Binding SelValue}"/>
</Grid>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
</Expander>
+59 -4
View File
@@ -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
+2 -2
View File
@@ -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
+28 -20
View File
@@ -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,19 @@ 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)
EgtSetInfo(PartManager_GeomEntity.nId, RIB_ID, RibPanelVM.GetNextRibIndex())
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 +372,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 +385,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 +398,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 +415,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 +471,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 +496,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
+123 -9
View File
@@ -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,6 +637,9 @@ 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()
@@ -625,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
@@ -700,13 +733,6 @@ 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)
@@ -715,6 +741,9 @@ Public Class GeomEntity_MenuItem
' 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
@@ -761,9 +790,18 @@ 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)
EgtRemoveInfo(m_OrigEntity.nId, RIB_ID)
Case ManagePart_Layer.LayerType.SHELL_NUMBER
EgtRemoveInfo(m_OrigEntity.nId, KEY_SHELLNBR_TYPE)
Case ManagePart_Layer.LayerType.AUX_SOLIDS
@@ -788,12 +826,15 @@ 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)
Case ManagePart_Layer.LayerType.RIBS
EgtSetName(m_OrigEntity.nId, LAY_RIBS)
EgtSetInfo(m_OrigEntity.nId, KEY_RIB_TYPE, RibEntity.RibTypes.FROMIMPORT)
EgtSetInfo(m_OrigEntity.nId, RIB_ID, RibPanelVM.GetNextRibIndex())
EgtSetColor(m_OrigEntity.nId, c3Rib)
Case ManagePart_Layer.LayerType.SHELL_NUMBER
EgtSetName(m_OrigEntity.nId, LAY_SHELL_NBR)
@@ -914,4 +955,77 @@ Public Class ManagerPart_MenuItem
#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
+78 -131
View File
@@ -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,54 @@ Public Class MaterialIndex
m_sName = sName
End Sub
Friend Function GetSelMaterialData(Param As MaterialParam.Params) As Double
Dim sParamKey As String = ""
Dim dDefault As Double = 0
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
dDefault = 100
Case MaterialParam.Params.K_LAY_TIME
sParamKey = MAT_KLAYERTIME
dDefault = 100
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, dDefault)
End Function
End Class
Public Class MaterialCathegory
@@ -377,7 +315,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 +376,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 +422,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 +513,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 +577,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
+2
View File
@@ -222,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
@@ -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
-407
View File
@@ -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
-435
View File
@@ -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
+13 -3
View File
@@ -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.4")>
<Assembly: AssemblyFileVersion("2.4.11.4")>
<Assembly: AssemblyVersion("2.5.1.1")>
<Assembly: AssemblyFileVersion("2.5.1.1")>
+32 -7
View File
@@ -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">
+157 -52
View File
@@ -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
+12
View File
@@ -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"/>
@@ -59,6 +65,12 @@
Style="{StaticResource ToolBar_Button}">
<Image Source="/Resources/ProjectManager/Options.png" Height="22" />
</Button>
<Button Command="{Binding Help_Command}"
Width="30"
ToolTip="{Binding Help_ToolTip}"
Style="{StaticResource ToolBar_Button}">
<Image Source="/Resources/ProjectManager/Send.png" Height="22" />
</Button>
<Button Command="{Binding SendFeedbackCommand}"
Width="30"
ToolTip="{Binding SendFeedbackToolTip}"
+51
View File
@@ -60,7 +60,9 @@ 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_cmdHelp As ICommand
Private m_cmdSendFeedback As ICommand
@@ -319,6 +321,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>
@@ -345,6 +370,32 @@ Public Class ProjManagerVM
#End Region ' Options
#Region "Help"
''' <summary>
''' Returns a command that do Export.
''' </summary>
Public ReadOnly Property Help_Command As ICommand
Get
If m_cmdHelp Is Nothing Then
m_cmdHelp = New Command(AddressOf Help)
End If
Return m_cmdHelp
End Get
End Property
''' <summary>
''' Execute the Export. This method is invoked by the ExportCommand.
''' </summary>
Public Sub Help(ByVal param As Object)
Dim HelpWndVM As New HelpWndVM
Dim HelpWnd As New HelpWndV(Application.Current.MainWindow, HelpWndVM)
HelpWndVM.LoadHtml()
HelpWnd.Show()
End Sub
#End Region ' Options
#Region "SendFeedback"
''' <summary>
+10 -8
View File
@@ -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
@@ -104,17 +105,18 @@ Public Class ReferencePanelVM
ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
End Select
Dim vtMovedPart As Vector3d
EgtGetInfo(Map.refTopPanelVM.SelPart.nPrintSolidId, "MovedPart", vtMovedPart)
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)
Map.refDispositionPanelVM.RefreshPos()
EgtDraw()
End Sub
Binary file not shown.

Before

Width:  |  Height:  |  Size: 947 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

+756
View File
@@ -0,0 +1,756 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Egalware: Icarus Documentation</title>
<style>
</style>
<link rel="stylesheet" type="text/css" href="./templates/default/delos.css?vers=7-11-2022-06-29-$Id$&version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./Services/Accordion/css/accordion.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./Modules/Scorm2004/templates/default/question_handling.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./Modules/TestQuestionPool/templates/default/test_javascript.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./node_modules/jstree/dist/themes/default/style.min.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./Services/COPage/css/content.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./Services/COPage/css/syntaxhighlight.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./Services/COPage/css/placeholder.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./node_modules/mediaelement/build/mediaelementplayer.min.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./node_modules/owl.carousel/dist/assets/owl.carousel.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./libs/bower/bower_components/yui2/build/container/assets/skins/sam/container.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="Services/Notifications/templates/default/osd.css?version=7.11_2022-06-29" />
<link rel="stylesheet" type="text/css" href="./templates/default/delos_cont.css?vers=7-11-2022-06-29&version=7.11_2022-06-29" />
<script src="./node_modules/jquery/dist/jquery.js?version=7.11_2022-06-29"></script>
<script src="./node_modules/jquery-ui-dist/jquery-ui.js?version=7.11_2022-06-29"></script>
<script src="./node_modules/jquery-migrate/dist/jquery-migrate.min.js?version=7.11_2022-06-29"></script>
<script src="./node_modules/bootstrap/dist/js/bootstrap.min.js?version=7.11_2022-06-29"></script>
<script src="./node_modules/linkifyjs/dist/linkify-jquery.min.js?version=7.11_2022-06-29"></script>
<script src="./Services/JavaScript/js/Basic.js?version=7.11_2022-06-29"></script>
<script src="./node_modules/maphilight/jquery.maphilight.min.js?version=7.11_2022-06-29"></script>
<script src="./libs/bower/bower_components/yui2/build/yahoo/yahoo-min.js?version=7.11_2022-06-29"></script>
<script src="./libs/bower/bower_components/yui2/build/yahoo-dom-event/yahoo-dom-event.js?version=7.11_2022-06-29"></script>
<script src="./libs/bower/bower_components/yui2/build/animation/animation-min.js?version=7.11_2022-06-29"></script>
<script src="./Services/Accordion/js/accordion.js?version=7.11_2022-06-29"></script>
<script src="./Modules/Scorm2004/scripts/questions/pure.js?version=7.11_2022-06-29"></script>
<script src="./Modules/Scorm2004/scripts/questions/question_handling.js?version=7.11_2022-06-29"></script>
<script src="./Services/UIComponent/Explorer2/js/Explorer2.js?version=7.11_2022-06-29"></script>
<script src="./node_modules/jstree/dist/jstree.js?version=7.11_2022-06-29"></script>
<script src="./Modules/LearningModule/js/LearningModule.js?version=7.11_2022-06-29"></script>
<script src="./node_modules/linkifyjs/dist/linkify.min.js?version=7.11_2022-06-29"></script>
<script src="./Services/Link/js/ilExtLink.js?version=7.11_2022-06-29"></script>
<script src="src/UI/templates/js/MainControls/mainbar.js?version=7.11_2022-06-29"></script>
<script src="src/UI/templates/js/MainControls/metabar.js?version=7.11_2022-06-29"></script>
<script src="src/UI/templates/js/MainControls/slate.js?version=7.11_2022-06-29"></script>
<script src="src/UI/templates/js/Page/stdpage.js?version=7.11_2022-06-29"></script>
<script src="src/GlobalScreen/Client/dist/GS.js?version=7.11_2022-06-29"></script>
<script src="./Services/COPage/js/ilCOPagePres.js?version=7.11_2022-06-29"></script>
<script src="./node_modules/mediaelement/build/mediaelement-and-player.min.js?version=7.11_2022-06-29"></script>
<script src="./Services/MediaObjects/js/MediaElementHelper.js?version=7.11_2022-06-29"></script>
<script src="Modules/TestQuestionPool/js/ilAssMultipleChoice.js?version=7.11_2022-06-29"></script>
<script src="Modules/TestQuestionPool/js/ilMatchingQuestion.js?version=7.11_2022-06-29"></script>
<script src="./node_modules/owl.carousel/dist/owl.carousel.min.js?version=7.11_2022-06-29"></script>
<script src="./libs/bower/bower_components/yui2/build/container/container_core-min.js?version=7.11_2022-06-29"></script>
<script src="./Services/UIComponent/Overlay/js/ilOverlay.js?version=7.11_2022-06-29"></script>
<script src="./libs/bower/bower_components/yui2/build/connection/connection-min.js?version=7.11_2022-06-29"></script>
<script src="Services/Notifications/templates/default/notifications.js?version=7.11_2022-06-29"></script>
</head>
<body>
<div class="il-layout-page">
<header>
<div class="header-inner">
<div class="il-logo">
<span class="hidden-xs">
<a href="ilias.php?baseClass=ilDashboardGUI&cmd=jumpToSelectedItems">
<img src="./templates/default/images/HeaderIcon.svg" class="img-standard" alt="ILIAS" />
</a>
</span>
<span class="visible-xs">
<a href="ilias.php?baseClass=ilDashboardGUI&cmd=jumpToSelectedItems">
<img src="./templates/default/images/HeaderIconResponsive.svg" class="img-standard" alt="ILIAS" />
</a>
</span>
<div class="il-pagetitle">
Egalware eLearning
</div>
</div>
</div>
</header>
<div class="breadcrumbs">
</div>
<div class="il-system-infos">
</div>
<div class="nav il-maincontrols">
<div class="il-maincontrols-mainbar" id="il_ui_fw_63d0ff3ee8fc11_16169935">
<nav class="il-mainbar" aria-label="Mainbar">
<div class="il-mainbar-tools-button">
<button class="btn btn-bulky engaged" id="il_ui_fw_63d0ff3ee8eec1_02866511" aria-pressed="true" >
<img
class="icon custom small"
src="./templates/default/images/outlined/icon_tool.svg" alt="-more-"
/>
<span class="bulky-label">Tools</span></button>
</div>
<div class="il-mainbar-triggers">
<ul class="il-mainbar-entries" role="menubar" style="visibility: hidden"><!--if done via class/css-files, visibility is being applied too late -->
<li role="none"><button class="btn btn-bulky" id="il_ui_fw_63d0ff3ee8bde1_21601243" role="menuitem" ><span class="glyph" aria-label="Show More" role="img">
<span class="glyphicon
glyphicon-option-horizontal
" aria-hidden="true"></span>
</span>
<span class="bulky-label">More</span></button>
</li>
</ul>
</div>
</nav>
<div class="il-mainbar-slates">
<div class="il-mainbar-tools-entries">
<ul class="il-mainbar-tools-entries-bg" role="menubar">
<li class="il-mainbar-tool-trigger-item" role="none"><button class="btn btn-bulky" id="il_ui_fw_63d0ff3ee8d032_66480549" role="menuitem" >
<img
class="icon custom small"
src="./templates/default/images/outlined/icon_glo.svg" alt="Glossary"
/>
<span class="bulky-label">Glossary</span></button>
</li>
<li class="il-mainbar-tool-trigger-item" role="none"><button class="btn btn-bulky" id="il_ui_fw_63d0ff3ee8da99_86768276" role="menuitem" >
<img
class="icon custom small"
src="./templates/default/images/outlined/icon_mdia.svg" alt="Media"
/>
<span class="bulky-label">Media</span></button>
</li>
<li class="il-mainbar-tool-trigger-item" role="none"><button class="btn btn-bulky" id="il_ui_fw_63d0ff3ee8e338_93719743" role="menuitem" >
<img
class="icon custom small"
src="./templates/default/images/outlined/icon_faq.svg" alt="FAQ"
/>
<span class="bulky-label">FAQ</span></button>
</li>
</ul>
</div>
<div class="il-maincontrols-slate disengaged" id="il_ui_fw_63d0ff3ee8cc75_65077243" data-depth-level="1" role="menu">
<div class="il-maincontrols-slate-content" data-replace-marker="content">
</div>
</div>
<div class="il-maincontrols-slate disengaged" id="il_ui_fw_63d0ff3ee8d760_20444139" data-depth-level="1" role="menu">
<div class="il-maincontrols-slate-content" data-replace-marker="content">
<div style='height:100%; overflow:hidden;' id='glossary_area'><iframe style='border:0; padding:0; height:100%; width:100%'></iframe></div>
</div>
</div>
<div class="il-maincontrols-slate disengaged" id="il_ui_fw_63d0ff3ee8e042_86747960" data-depth-level="1" role="menu">
<div class="il-maincontrols-slate-content" data-replace-marker="content">
<div style='height:100%; overflow:hidden;' id='media_area'><iframe style='border:0; padding:0; height:100%; width:100%'></iframe></div>
</div>
</div>
<div class="il-maincontrols-slate disengaged" id="il_ui_fw_63d0ff3ee8e8c4_76302667" data-depth-level="1" role="menu">
<div class="il-maincontrols-slate-content" data-replace-marker="content">
<div style='height:100%; overflow:hidden;' id='faq_area'><iframe style='border:0; padding:0; height:100%; width:100%'></iframe></div>
</div>
</div>
<div class="il-mainbar-close-slates">
<button class="btn btn-bulky" id="il_ui_fw_63d0ff3ee8f502_37883999" ><span class="glyph" aria-label="Back" role="img">
<span class="glyphicon
glyphicon-chevron-left
" aria-hidden="true"></span>
</span>
<span class="bulky-label">close</span></button>
</div>
</div>
</div>
</div>
<!-- html5 main-tag is not supported in IE / div is needed -->
<main class="il-layout-page-content">
<div>
<div id="mainspacekeeper" class="container-fluid ">
<div class="row" style="position: relative;">
<div id="fixed_content" class=" ilContentFixed" >
<div id="mainscrolldiv" >
<div class="media il_HeaderInner">
<img id="headerimage" class="media-object" src="./templates/default/images/icon_lm.svg" alt="" title="" />
<h1 class="media-heading ilHeader "><a tabindex="0" class="ilAccAnchor" id="il_mhead_t_focus" name="il_mhead_t_focus" >Icarus Documentation</a></h1>
<div class="media-body">
</div>
</div>
<div class="ilClearFloat"></div>
<h2 class="ilAccHeadingHidden">Tabs</h2>
<ul id="ilTab" class="nav nav-tabs ilCollapsable hidden-print">
<li id="ilLastTab">
<a class="btn dropdown-toggle ilNoDisplay" data-toggle="dropdown" href="#">
... <span class="caret"></span>
</a>
<ul class="dropdown-menu" id="ilTabDropDown">
</ul>
</li>
</ul>
<span class="ilAccHidden"><a id="after_tabs"></a></span>
<div class="ilTabsContentOuter"><div class="clearfix"></div>
<h2 class="ilAccHeadingHidden"><a id="sub_tabs_after_tabs">SubTabs</a></h2>
<ul id="ilSubTab" class="ilSubTab nav nav-pills hidden-print">
</ul>
<span class="ilAccHidden"><a id="after_sub_tabs" name="after_sub_tabs"></a></span>
<div>
</div>
<div class="container-fluid" id="ilContentContainer">
<div class="row">
<div id="il_center_col" class="col-sm-12">
<div id="ilLMPageContent" class="ilc_page_frame_PageFrame">
<div class="ilc_page_tnav_TopNavigation">
<div class="ilc_page_rnav_RightNavigation">
<a class="ilc_page_rnavlink_RightNavigationLink" href="lm_pg_302.html" >&nbsp;
Import Part
<img class="ilc_page_rnavimage_RightNavigationImage" src="images/spacer.png" alt="Next" title="Next" /></a>
</div>
<div class="ilClearFloat"></div>
</div>
<div class="ilc_page_cont_PageContainer">
<span class="ilAccHidden">
<a name="il_lm_head" id="il_lm_head"></a></span>
<script>
<!--
focus();
//-->
</script>
<a class="small" id="ilPageShowAdvContent" style="display:none; text-align:right;" href="#"><span>Show Advanced Knowledge</span><span>Hide Advanced Knowledge</span></a><h1 class="ilc_page_title_PageTitle">Introduction</h1><!--COPage-PageTop--><div class="ilc_Paragraph ilc_text_block_Standard"><!--Break--></div><div class="ilc_Paragraph ilc_text_block_Standard"><span class="ilc_text_inline_Strong">Icarus is the Slicing & Printing software made by Egalware for the Large Additive Manufacturing.</span><br/><br/>In the picture below you can see the interface, which we will explain step by step in this documentation.<!--Break--></div><div style="clear:both;"><figure class="ilc_media_cont_MediaContainer" style="&#10;&#9;&#9;&#9;position: relative;&#10;&#9;&#9;&#9;display:table;margin-right:auto; margin-left:0; "><div class="ilc_Mob"><img border="0" style="width:100%" src="mobs/mm_1180/Intro_1_.png?il_wac_token=274e2a9da87133065f7799547e8e78ff143bf94d&il_wac_ttl=3&il_wac_ts=1674641214"/></div></figure></div><div style="clear:both;"><figure class="ilc_media_cont_MediaContainer" style="&#10;&#9;&#9;&#9;position: relative;&#10;&#9;&#9;&#9;display:table;margin-right:auto; margin-left:0; "><div class="ilc_Mob"><img border="0" style="width:100%" src="mobs/mm_1178/Intro_2_.png?il_wac_token=274e2a9da87133065f7799547e8e78ff143bf94d&il_wac_ttl=3&il_wac_ts=1674641214" alt=""/></div><figcaption style="&#10;&#9;&#9;&#9;&#9;&#9;display: table-caption; caption-side: bottom;&#10;&#9;&#9;&#9;&#9;"><div class="ilc_media_caption_MediaCaption"/></figcaption></figure></div><div class="ilc_Paragraph ilc_text_block_Standard">By clicking the upper left icon will appear a window containing all the software and system information. As showed in the below picture, It is used to check the installed version and the hardware build currently running the software.<!--Break--></div><div style="clear:both;"><figure class="ilc_media_cont_MediaContainer" style="&#10;&#9;&#9;&#9;position: relative;&#10;&#9;&#9;&#9;display:table;margin-right:auto; margin-left:0; "><div class="ilc_Mob"><img border="0" style="width:100%" src="mobs/mm_1179/Intro_3_.png?il_wac_token=274e2a9da87133065f7799547e8e78ff143bf94d&il_wac_ttl=3&il_wac_ts=1674641214"/></div></figure></div><div class="ilc_Paragraph ilc_text_block_Standard">If any support or assistance is needed, it is important to copy and transmit the information contained in the box so the technicians can have more information possible regarding the specific installation.<!--Break--></div><div style="clear:both;"><!--Break--></div><div class='il-copg-mob-fullscreen-modal'><div class="modal fade il-modal-roundtrip" tabindex="-1" role="dialog" id="il_ui_fw_63d0ff3ee6cf42_26035047">
<div class="modal-dialog" role="document" data-replace-marker="component">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<span class="modal-title">Full Screen</span>
</div>
<div class="modal-body">
<iframe class='il-copg-mob-fullscreen' id='il-copg-mob-fullscreen-lm-296'></iframe>
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal" aria-label="Close">Cancel</button>
</div>
</div>
</div>
</div></div><script>$(function () { il.COPagePres.setFullscreenModalShowSignal('il_signal_63d0ff3ee6c929_32677666', '-lm-296'); });</script>
</div>
<div class="ilc_page_bnav_BottomNavigation">
<div class="ilc_page_rnav_RightNavigation">
<a class="ilc_page_rnavlink_RightNavigationLink" href="lm_pg_302.html" >&nbsp;
Import Part
<img class="ilc_page_rnavimage_RightNavigationImage" src="images/spacer.png" alt="Next" title="Next" /></a>
</div>
<div class="ilClearFloat"></div>
</div>
<!--</div>-->
<br />
<br />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--<div id="minheight"></div>-->
<!--<footer id="ilFooter" class="ilFooter hidden-print"><div class="container-fluid ilContainerWidth">-->
<!--<div class="row"><div class="ilFooterContainer form-inline"> </div></div></div></footer>-->
</div>
<footer role="contentinfo">
<div class="il-maincontrols-footer">
<div class="il-footer-content">
<div class="il-footer-text">
powered by ILIAS (v7.11 2022-06-29)
</div>
<div class="il-footer-links">
<ul>
<li><a href="https://ilias.steamware.net/goto.php?target=impr_0&client_id=steamware" >Legal Notice</a></li>
<li><a href="ilias.php?cmdClass=ilaccessibilitycontrolconceptgui&cmdNode=t&baseClass=ilaccessibilitycontrolconceptgui" >Accessibility Control Concept</a></li>
</ul>
</div>
</div>
</div>
</footer>
</main>
</div>
<script>
il.Util.addOnLoad(function() {
try { il.ExtLink.autolink('.ilc_Paragraph, .ilc_page_fn_Footnote','ilc_link_ExtLink'); } catch (e) { console.log(e); }
try {
ilias.questions.txt.wrong_answers = "Incorrect Items";
ilias.questions.txt.wrong_answers_single = "Incorrect Choice.";
ilias.questions.txt.tries_remaining = "Tries Remaining";
ilias.questions.txt.please_try_again = "Please try again!";
ilias.questions.txt.all_answers_correct = "Correct!";
ilias.questions.txt.enough_answers_correct = "Correct, but not the best solution!";
ilias.questions.txt.nr_of_tries_exceeded = "Number of tries exceeded.";
ilias.questions.txt.correct_answers_shown = "Correct solution see above.";
ilias.questions.txt.correct_answers_also = "Also correct are:";
ilias.questions.txt.correct_answer_also = "Also correct is:";
ilias.questions.txt.ov_all_correct = "You have correctly answered all questions.";
ilias.questions.txt.ov_some_correct = "You have correctly answered [x] out of [y] questions.";
ilias.questions.txt.ov_wrong_answered = "The following questions were not answered or answered wrong";
ilias.questions.txt.please_select = "please select";
ilias.questions.txt.ov_preview = "The question overview does not work in the page editor context. Use the SCO or SCORM level preview instead.";
ilias.questions.txt.submit_answers = "Submit";
ilias.questions.refresh_lang();
il.COPagePres.updateQuestionOverviews(); } catch (e) { console.log(e); }
try { il.ExtLink.autolink('.ilc_Paragraph, .ilc_page_fn_Footnote','ilc_link_ExtLink'); } catch (e) { console.log(e); }
try { $(document).on('il_signal_63d0ff3ee6c929_32677666', function(event, signalData) { il.UI.modal.showModal('il_ui_fw_63d0ff3ee6cf42_26035047', {"ajaxRenderUrl":"","keyboard":true,"url":"#il_ui_fw_63d0ff3ee6cf42_26035047"}, signalData); return false; });$(document).on('il_signal_63d0ff3ee6c957_55686158', function() { il.UI.modal.closeModal('il_ui_fw_63d0ff3ee6cf42_26035047'); return false; });$(document).on('il_signal_63d0ff3ee6c961_85702413', function(event, signalData) { il.UI.modal.replaceFromSignal('il_ui_fw_63d0ff3ee6cf42_26035047', signalData);}); } catch (e) { console.log(e); }
try { } catch (e) { console.log(e); }
try { il.ExtLink.autolink('.ilc_Paragraph, .ilc_page_fn_Footnote','ilc_link_ExtLink'); } catch (e) { console.log(e); }
try {
ilias.questions.txt.wrong_answers = "Incorrect Items";
ilias.questions.txt.wrong_answers_single = "Incorrect Choice.";
ilias.questions.txt.tries_remaining = "Tries Remaining";
ilias.questions.txt.please_try_again = "Please try again!";
ilias.questions.txt.all_answers_correct = "Correct!";
ilias.questions.txt.enough_answers_correct = "Correct, but not the best solution!";
ilias.questions.txt.nr_of_tries_exceeded = "Number of tries exceeded.";
ilias.questions.txt.correct_answers_shown = "Correct solution see above.";
ilias.questions.txt.correct_answers_also = "Also correct are:";
ilias.questions.txt.correct_answer_also = "Also correct is:";
ilias.questions.txt.ov_all_correct = "You have correctly answered all questions.";
ilias.questions.txt.ov_some_correct = "You have correctly answered [x] out of [y] questions.";
ilias.questions.txt.ov_wrong_answered = "The following questions were not answered or answered wrong";
ilias.questions.txt.please_select = "please select";
ilias.questions.txt.ov_preview = "The question overview does not work in the page editor context. Use the SCO or SCORM level preview instead.";
ilias.questions.txt.submit_answers = "Submit";
ilias.questions.refresh_lang();
il.COPagePres.updateQuestionOverviews(); } catch (e) { console.log(e); }
try { il.ExtLink.autolink('.ilc_Paragraph, .ilc_page_fn_Footnote','ilc_link_ExtLink'); } catch (e) { console.log(e); }
try { OSDNotifier = OSDNotifications({
closeHtml: "<a class=\"glyph\" aria-label=\"Close\">\n<span class=\"glyphicon\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n glyphicon-remove\n\n\n\n\n\n\n\n\n\n\n\n\" aria-hidden=\"true\"><\/span>\n\n\n\n\n\n\n\n<\/a>\n",
initialNotifications: [],
pollingIntervall: 60,
playSound: false
}); } catch (e) { console.log(e); }
try { } catch (e) { console.log(e); }
try {
il.UI.maincontrols.mainbar.addPartIdAndEntry('0:0', 'triggerer', 'il_ui_fw_63d0ff3ee8bde1_21601243', false);
il.UI.maincontrols.mainbar.addMapping('_mb_more_entry','0:0');
$('#il_ui_fw_63d0ff3ee8bde1_21601243').on('click', function(event) {
$(this).trigger('il_signal_63d0ff3ee8b9e3_29047317',
{
'id' : 'il_signal_63d0ff3ee8b9e3_29047317', 'event' : 'click',
'triggerer' : $(this),
'options' : JSON.parse('{"entry_id":"0:0","action":"trigger"}')
}
);
return false;
}); } catch (e) { console.log(e); }
try { fn = il.UI.maincontrols.slate.onSignal;$(document).on('il_signal_63d0ff3ee8b8e4_93013623', function(event, signalData) { fn('toggle', event, signalData, 'il_ui_fw_63d0ff3ee8cc75_65077243'); return false;});$(document).on('il_signal_63d0ff3ee8b900_13774526', function(event, signalData) { fn('engage', event, signalData, 'il_ui_fw_63d0ff3ee8cc75_65077243'); return false;});$(document).on('il_signal_63d0ff3ee8b912_62996210', function(event, signalData) { fn('replace', event, signalData, 'il_ui_fw_63d0ff3ee8cc75_65077243'); return false;});il.UI.maincontrols.mainbar.addPartIdAndEntry('0:0', 'slate', 'il_ui_fw_63d0ff3ee8cc75_65077243'); } catch (e) { console.log(e); }
try { il.UI.maincontrols.mainbar.addToolEntry('T:0', false, false, '696c4c4d4753546f6f6c50726f76696465727c6c6d5f676c6f73736172795f313234');
il.UI.maincontrols.mainbar.addPartIdAndEntry('T:0', 'triggerer', 'il_ui_fw_63d0ff3ee8d032_66480549', true);
il.UI.maincontrols.mainbar.addMapping('696c4c4d4753546f6f6c50726f76696465727c6c6d5f676c6f73736172795f313234','T:0');
$('#il_ui_fw_63d0ff3ee8d032_66480549').on('click', function(event) {
$(this).trigger('il_signal_63d0ff3ee8cd81_34583329',
{
'id' : 'il_signal_63d0ff3ee8cd81_34583329', 'event' : 'click',
'triggerer' : $(this),
'options' : JSON.parse('{"entry_id":"T:0","action":"trigger"}')
}
);
return false;
}); } catch (e) { console.log(e); }
try { } catch (e) { console.log(e); }
try {
$('body').on('il-lm-show-glossary-slate', function(){
il.UI.maincontrols.mainbar.engageTool('696c4c4d4753546f6f6c50726f76696465727c6c6d5f676c6f73736172795f313234');
});
fn = il.UI.maincontrols.slate.onSignal;$(document).on('il_signal_63d0ff3ee88362_35062860', function(event, signalData) { fn('toggle', event, signalData, 'il_ui_fw_63d0ff3ee8d760_20444139'); return false;});$(document).on('il_signal_63d0ff3ee88379_77427782', function(event, signalData) { fn('engage', event, signalData, 'il_ui_fw_63d0ff3ee8d760_20444139'); return false;});$(document).on('il_signal_63d0ff3ee88385_05609071', function(event, signalData) { fn('replace', event, signalData, 'il_ui_fw_63d0ff3ee8d760_20444139'); return false;});il.UI.maincontrols.mainbar.addPartIdAndEntry('T:0', 'slate', 'il_ui_fw_63d0ff3ee8d760_20444139'); } catch (e) { console.log(e); }
try { il.UI.maincontrols.mainbar.addToolEntry('T:1', false, false, '696c4c4d4753546f6f6c50726f76696465727c6c6d5f6d656469615f313234');
il.UI.maincontrols.mainbar.addPartIdAndEntry('T:1', 'triggerer', 'il_ui_fw_63d0ff3ee8da99_86768276', true);
il.UI.maincontrols.mainbar.addMapping('696c4c4d4753546f6f6c50726f76696465727c6c6d5f6d656469615f313234','T:1');
$('#il_ui_fw_63d0ff3ee8da99_86768276').on('click', function(event) {
$(this).trigger('il_signal_63d0ff3ee8d839_23892402',
{
'id' : 'il_signal_63d0ff3ee8d839_23892402', 'event' : 'click',
'triggerer' : $(this),
'options' : JSON.parse('{"entry_id":"T:1","action":"trigger"}')
}
);
return false;
}); } catch (e) { console.log(e); }
try { } catch (e) { console.log(e); }
try {
$('body').on('il-lm-show-media-slate', function(){
il.UI.maincontrols.mainbar.engageTool('696c4c4d4753546f6f6c50726f76696465727c6c6d5f6d656469615f313234');
});
fn = il.UI.maincontrols.slate.onSignal;$(document).on('il_signal_63d0ff3ee88429_11615188', function(event, signalData) { fn('toggle', event, signalData, 'il_ui_fw_63d0ff3ee8e042_86747960'); return false;});$(document).on('il_signal_63d0ff3ee88437_65731093', function(event, signalData) { fn('engage', event, signalData, 'il_ui_fw_63d0ff3ee8e042_86747960'); return false;});$(document).on('il_signal_63d0ff3ee88445_18150113', function(event, signalData) { fn('replace', event, signalData, 'il_ui_fw_63d0ff3ee8e042_86747960'); return false;});il.UI.maincontrols.mainbar.addPartIdAndEntry('T:1', 'slate', 'il_ui_fw_63d0ff3ee8e042_86747960'); } catch (e) { console.log(e); }
try { il.UI.maincontrols.mainbar.addToolEntry('T:2', false, false, '696c4c4d4753546f6f6c50726f76696465727c6c6d5f6661715f313234');
il.UI.maincontrols.mainbar.addPartIdAndEntry('T:2', 'triggerer', 'il_ui_fw_63d0ff3ee8e338_93719743', true);
il.UI.maincontrols.mainbar.addMapping('696c4c4d4753546f6f6c50726f76696465727c6c6d5f6661715f313234','T:2');
$('#il_ui_fw_63d0ff3ee8e338_93719743').on('click', function(event) {
$(this).trigger('il_signal_63d0ff3ee8e104_43928242',
{
'id' : 'il_signal_63d0ff3ee8e104_43928242', 'event' : 'click',
'triggerer' : $(this),
'options' : JSON.parse('{"entry_id":"T:2","action":"trigger"}')
}
);
return false;
}); } catch (e) { console.log(e); }
try { } catch (e) { console.log(e); }
try {
$('body').on('il-lm-show-faq-slate', function(){
il.UI.maincontrols.mainbar.engageTool('696c4c4d4753546f6f6c50726f76696465727c6c6d5f6661715f313234');
});
fn = il.UI.maincontrols.slate.onSignal;$(document).on('il_signal_63d0ff3ee88495_44010459', function(event, signalData) { fn('toggle', event, signalData, 'il_ui_fw_63d0ff3ee8e8c4_76302667'); return false;});$(document).on('il_signal_63d0ff3ee884a9_43104840', function(event, signalData) { fn('engage', event, signalData, 'il_ui_fw_63d0ff3ee8e8c4_76302667'); return false;});$(document).on('il_signal_63d0ff3ee884b3_81778817', function(event, signalData) { fn('replace', event, signalData, 'il_ui_fw_63d0ff3ee8e8c4_76302667'); return false;});il.UI.maincontrols.mainbar.addPartIdAndEntry('T:2', 'slate', 'il_ui_fw_63d0ff3ee8e8c4_76302667'); } catch (e) { console.log(e); }
try { $('#il_ui_fw_63d0ff3ee8eec1_02866511').on('click', function(event) {
$(this).trigger('il_signal_63d0ff3ee88541_20400653',
{
'id' : 'il_signal_63d0ff3ee88541_20400653', 'event' : 'click',
'triggerer' : $(this),
'options' : JSON.parse('{"action":"toggle_tools"}')
}
);
return false;
}); } catch (e) { console.log(e); }
try { $('#il_ui_fw_63d0ff3ee8f502_37883999').on('click', function(event) {
$(this).trigger('il_signal_63d0ff3ee88532_08990916',
{
'id' : 'il_signal_63d0ff3ee88532_08990916', 'event' : 'click',
'triggerer' : $(this),
'options' : JSON.parse('{"action":"disengage_all"}')
}
);
return false;
}); } catch (e) { console.log(e); }
try { il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ee88532_08990916');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ee88541_20400653');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3eca1d48_11886331');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3eca46a6_28079720');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3eca57b5_07532776');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3eca6306_89668854');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ed343d6_78195239');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ed35383_29681362');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ed35d90_32886384');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ed368b4_59651188');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3edef906_97471724');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3edf08f4_31681211');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3edf12f2_78020438');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3edf1c05_48435519');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ee8b9e3_29047317');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ee8cd81_34583329');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ee8d839_23892402');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ee8e104_43928242');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ee886b3_57690902');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ee886d0_94616127');il.UI.maincontrols.mainbar.addTriggerSignal('il_signal_63d0ff3ee886e8_48363734');
window.addEventListener('resize', il.UI.maincontrols.mainbar.adjustToScreenSize);
il.UI.maincontrols.mainbar.init('');
} catch (e) { console.log(e); }
try { } catch (e) { console.log(e); }
});
</script>
</body>
</html>
@@ -0,0 +1,56 @@
if (document.images)
{
var path = "./templates/default/images/navbar/";
imag = new Array();
imag[0] = path + "desk.gif";
imag[1] = path + "course.gif";
imag[2] = path + "bookma.gif";
imag[3] = path + "search.gif";
imag[4] = path + "literat.gif";
imag[5] = path + "mail.gif";
imag[6] = path + "newsgr.gif";
imag[7] = path + "groups.gif";
imag[8] = path + "help.gif";
imag[9] = path + "feedb.gif";
imag[10] = path + "logout.gif";
imag[11] = path + "desk_o.gif";
imag[12] = path + "course_o.gif";
imag[13] = path + "bookma_o.gif";
imag[14] = path + "search_o.gif";
imag[15] = path + "literat_o.gif";
imag[16] = path + "mail_o.gif";
imag[17] = path + "newsgr_o.gif";
imag[18] = path + "groups_o.gif";
imag[19] = path + "help_o.gif";
imag[20] = path + "feedb_o.gif";
imag[21] = path + "logout_o.gif";
imag[22] = path + "login.gif";
imag[23] = path + "login_o.gif";
imag[24] = path + "editor.gif";
imag[25] = path + "editor_o.gif";
imag[26] = path + "admin.gif";
imag[27] = path + "admin_o.gif";
imag[28] = path + "termin.gif";
imag[29] = path + "termin_o.gif";
im = new Array();
for (var i = 0; i < imag.length; i++)
{
im[i] = new Image();
im[i].src = imag[i];
}
function swtch(num,imgname)
{
imgname.src = im[num].src;
window.status = '';
}
function swtchon(num,imgname,text)
{
imgname.src = im[num].src;
window.status = text;
}
}
@@ -0,0 +1,335 @@
body {
color: #222;
background-color: #ddd;
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 13px;
margin: 10px;
}
td {
font-size:13px;
}
.btnbar {
background-color: #069;
}
input, textarea {
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 13px;
}
a.menu:link, a.menu:visited {
color: #a0c0ff;
text-decoration: underline;
}
a.menu:hover {
color: #f90;
}
span.il_menu {
color: #f7f7f7;
}
/* ---------------- alternating tablerowcolors ----------------- */
.tblrow2 {
color: #222;
background-color: white;
font-size: 13px;
padding: 3px;
}
.tblrow1 {
color: #222;
background-color: white;
font-size: 13px;
padding: 3px;
}
/* -------------------- table formatting ------------------ */
table.std {
border-spacing: 0px;
}
table.fullwidth {
width: 100%;
border-spacing:1px;
}
table.fullwidth_invisible {
width: 100%;
border-spacing: 0;
}
td.std {
padding: 3px;
}
.tbltitle {
font-size: 16px;
font-weight: bold;
color: white;
background-color: #069;
}
.tblheader {
font-weight: bold;
color: white;
background-color: #667;
}
.tblfooter {
color: white;
background-color: #667;
}
td.option {
padding: 3px;
border-bottom: 1px solid black;
}
td.option_value {
padding: 3px;
border-bottom: 1px solid black;
}
td.submit {
background-color: #d0d0d0;
color: #222;
padding: 4px;
font-size: 13px;
vertical-align: top;
}
/* must reset all values of td style */
td.il_no_style {
font-size: normal;
font-weight: normal;
background-image: none;
background-color: white;
}
/* locator */
div.locator {
padding: 2px 5px;
font-size: 13px;
vertical-align: top;
text-align: left;
background-color: #ddd;
border: 2px solid #606060;
}
/* ---------------- headlines ------------------ */
h1 {
font-size: 16px;
color: #222;
white-space: nowrap;
}
h2 {
font-size: 16px;
color: #222;
}
/* ----------------- invisible border ------------- */
div.top_border {
margin: 0;
padding: 10px 15px 5px;
background-color: black;
}
div.invisible_border {
margin: 12px 15px;
}
div.il_Footer {
margin-top: 30px;
margin-bottom: 10px;
font-size: 10px;
text-align: center;
}
/* ----------------- alternative text styles ------------- */
.small {
text-decoration: none;
font-size: 11px;
}
.smallgreen {
text-decoration: none;
font-size: 11px;
color: green;
}
.smallred {
text-decoration: none;
font-size: 11px;
color: red;
}
.warning {
text-decoration: none;
font-weight: bold;
color: red;
}
.asterisk {
color: red;
font-size: 11px;
}
.default {
text-decoration: none;
font-weight: normal;
}
.quote {
font-style: italic;
font-weight: normal;
}
.subtitle {
font-style: italic;
font-weight: normal;
font-size: 11px;
}
.moderator_small {
text-decoration: none;
font-size: 11px;
color: red;
}
.moderator {
text-decoration: none;
font-size: 13px;
color: red;
}
.bold {
font-weight: bold;
}
/* ----------------- normal links ------------- */
a {
text-decoration: none;
color: #06f;
}
a:hover {
color: #06f;
}
a:visited {
color:#06f;
}
/* ------------------- mail links ----------- */
a.mailread
{
font-weight: normal;
color: blue;
}
a.mailunread
{
color: blue;
font-weight: bold;
}
/* ------------------ buttons -------------- */
.btn {
background-color: #069;
color: white;
}
a.btn {
color: white;
text-decoration: none;
font-size: 13px;
}
a.tblheader:visited, a.tblheader:hover {
color: white;
}
a.tblfooter:visited, a.tblfooter:hover {
color: white;
}
a.btn:visited {
color: white;
text-decoration: none;
font-size: 13px;
}
a.btn:hover {
color: #eef;
}
.message {
color: #d00;
line-height: 25px;
font-weight: bold;
text-align: center;
vertical-align: top;
}
/* ------------------ tabs -------------- */
.tab {
font-size: 11px;
color: black;
background-color: white;
}
.tabactive {
background-color: #f0f0f0;
}
.tabinactive {
background-color: #c5c5c5;
}
/* --- to prevent tab-images from spacing when using DOCTYPE xhtml --- */
img.imgtab {
display: block;
}
/* ------------------ content window body tag (not used yet) -------------- */
.content {
margin: 0;
}
/* --- Editor styles ---*/
div.il_editarea {
border-style: dotted;
border-width: 1px;
}
/* ------------------ blind image - spacer gif --------------
please use this style class always when using this blind image */
img.spacer {
display: block;
}
/* ------------------ visually distinguishable numeric input fields --------------
Styles related to https://mantis.ilias.de/view.php?id=26494
*/
.ilcqinput_NumericInput {
background: #E0FAFA;
}
.ilcqinput_NumericInput+span:after {
content: " (!) ";
color: green;
}
.ilcqinput_NumericInputInvalid {
background: red;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,76 @@
table {
font-size: 100%;
}
th {
text-align: left;
}
h1 {
margin-top: 12px;
margin-bottom: 8px;
font-size: 140%;
font-weight: normal;
}
h2 {
margin-top: 12px;
margin-bottom: 8px;
font-size: 130%;
font-weight: normal;
}
h3 {
margin-top: 12px;
margin-bottom: 8px;
font-size: 120%;
font-weight: normal;
}
h4 {
margin-top: 12px;
margin-bottom: 8px;
font-size: 115%;
font-weight: normal;
}
h5 {
margin-top: 12px;
margin-bottom: 8px;
font-size: 110%;
font-weight: normal;
}
h6 {
margin-top: 12px;
margin-bottom: 8px;
font-size: 105%;
font-weight: normal;
}
p {
margin-top: 8px;
margin-bottom: 8px;
}
pre {
font-size: 100%;
}
img {
vertical-align: middle;
border: 0 none;
}
span.latex {
color: green;
font-weight: bold;
}
div.framed {
border: 1px solid #9eadba;
padding: 0 10px;
background-color: white;
background-image: url(images/FramedBack.png);
background-repeat: repeat-x;
}
@@ -0,0 +1,5 @@
/* Modules/Bibliographic */
span.bibl_text_inline_Emph {
font-style: italic;
}
@@ -0,0 +1,112 @@
/* Modules/Blog */
div.ilBlogList {
padding: 10px;
margin-bottom: 20px;
background-color: @il-main-bg;
}
div.ilBlogListItem {
padding: 1px 1px 5px;
margin-bottom: 35px;
&.ilBlogListItemDraft {
padding: 8px;
}
}
div.ilBlogListItemTitle {
border-bottom: 1px solid @il-main-border-color;
}
div.ilBlogListItemTitle h3 {
margin-bottom: 5px;
}
div.ilBlogListItemSubTitle {
margin-top: 5px;
color: @il-text-light-color;
font-size: 80%;
text-align: right;
}
div.ilBlogListItemSnippet {
margin-top: 5px;
margin-bottom: 5px;
min-height: 10px;
}
img.ilBlogListItemSnippetPreviewImage {
margin-right: 10px;
margin-bottom: 5px;
}
div.ilBlogListItemMore {
float: left;
}
div.ilBlogListItemCommtensPerma {
text-align: right;
font-size: 90%;
margin-top: 15px;
min-height: 15px;
}
td.ilBlogSideBlockContent {
padding: 10px;
}
td.ilBlogSideBlockCommand {
font-size: 75%;
color: @il-text-light-color;
border-bottom: 1px solid @il-main-border-color;
padding: 1px 3px;
background-color: @il-main-dark-bg;
text-align: right;
}
div.ilBlogSideBlockAuthor {
margin-top: 3px;
}
ul.ilBlogSideBlockNavigation {
margin-top: 3px;
padding-left: 15px;
}
div.ilBlogSideBlockNavigationSelection {
margin-bottom: 5px;
}
.ilBlogListItemDraft {
border: 2px dotted @brand-warning;
}
.ilBlogDraftText {
color: @brand-warning;
position: absolute;
font-size: @font-size-small;
margin-top: -19px;
padding: 2px 5px;
background-color: @il-main-bg;
}
.ilBlogNavigationItemDraft {
margin-right: 50px;
}
.ilBlogListPermalink {
margin: 5px;
}
.ilBlogRating {
margin-bottom: 5px;
}
.ilTopGap {
margin-top: 15px;
}
.ilExportPage {
min-height: 468px;
padding-bottom: 20px;
}
@@ -0,0 +1,5 @@
/* Modules/BookingManager */
.ilTextinfo {
margin-bottom: 10px;
}
@@ -0,0 +1,133 @@
/* Modules/Chatroom */
.ilValignBottom {
vertical-align: bottom;
}
#chat_actions {
white-space: nowrap;
margin-left: 10px;
}
#chat_messages {
height: 300px;
padding: 2px;
overflow-y: scroll;
overflow-x: hidden;
overflow-wrap: break-word;
word-wrap: break-word;
-ms-word-break: break-all;
word-break: break-all;
word-break: break-word;
-ms-hyphens: auto;
-moz-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
width: 100%;
min-height: 200px;
background-color: @il-main-dark-bg;
}
#chat_users {
overflow: auto;
height: 100%;
min-height: 300px;
}
#private_rooms {
z-index: 200;
display: none;
}
td.chatroom {
width: 200px;
height: auto;
}
.ilChatroomUser {
border-bottom: 1px solid #e9e9e9;
.media-body {
white-space: nowrap;
}
.media-body {
padding-top: 8px;
}
.media-body h4, .media-body p {
color: #a0a0a0;
font-size: 12px;
padding: 5px 3px 0 3px;
line-height: 1em;
margin: 0;
}
.media-body h4 {
padding-top: 0;
color: #606060;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dropdown-menu {
background-color: #f0f0f0;
padding: 10px 0;
font-size: 12px;
}
.dropdown-menu a {
color: #606060;
}
.dropdown-menu a:hover {
color: #202020;
}
.arrow-down {
width: 0;
height: 0;
border-left: 11px solid transparent;
border-right: 11px solid transparent;
border-top: 11px solid white;
margin-top: -10px;
margin-left: 100px;
}
.media:hover {
background-color: #fea;
}
.dropdown-menu {
position: static;
float: none;
.box-shadow(none);
}
.dropdown-backdrop {
position: static;
}
.media {
padding: 0;
}
.media-left img {
width: 30px;
height: 30px;
}
.media-body, .media-left, .media-right {
display: table-cell;
vertical-align: top;
}
.media-left {
padding-right: 10px;
}
.media {
padding: 10px;
}
}
@@ -0,0 +1,107 @@
/* Modules/Course */
.ilValignTop {
vertical-align: top;
}
.halfWidth {
width: 50%;
}
.ilInheritBGColor {
background-color: inherit;
}
td.option_value_details {
background: none white;
color: @il-text-color;
padding: 3px;
vertical-align: top;
text-align: left;
}
td.option_value_center_details {
background: none #ffe4e4;
color: @il-text-color;
padding: 3px;
vertical-align: top;
text-align: center;
}
ul.noStyle {
list-style: none;
}
li.smallPad {
padding: 1px;
}
.listIndent {
padding: 0 0 20px;
}
.ilCrsObjAcc {
margin-bottom: 10px;
}
.ilCourseObjectiveAccResults {
padding-top: 10px;
}
.ilCourseObjectiveAccResult {
font-size: 80%;
}
.ilCourseObjectiveAccSummary {
font-size: 120%;
padding-top: 15px;
}
.ilCourseObjectiveProgressBarContainer .text-comparision {
display: none;
}
.ilCourseObjectiveProgressBarContainer {
float: right;
max-width: 200px;
padding: 20px;
}
/* LOK progress bars */
.ilCourseObjectiveProgressBar {
padding-right: 5px;
float: right;
}
.ilCourseObjectiveProgressBarContainer > .progress {
margin: 5px 0 0;
border: 1px solid #bbb;
background-color: white;
}
.ilCourseObjectiveProgressBarContainer > .progress > .progress-bar {
.box-shadow(none);
}
.ilCourseObjectiveProgressBarLimit {
float: right;
position: relative;
border-right: 2px dotted #888;
height: 20px;
margin-top: -17px;
}
.ilCourseObjectiveProgressBarNeutral {
background-color: #888;
}
.ilCourseObjectiveProgressBarCompleted {
background-color: #60b060;
}
.ilCourseObjectiveProgressBarFailed {
background-color: #b06060;
}
@@ -0,0 +1,52 @@
/* Modules/DataCollection */
td.dcl_actions {
text-align: right;
padding-right: 5px;
}
.dcl_record_list td, .dcl_field_list td {
padding: 10px 7px;
font-size: 90%;
}
.ilDclTableDescription {
padding: 15px 0;
font-size: 90%;
}
.ilDclRecordViewNavWrapper {
margin-bottom: 40px;
}
.ilDclRecordViewNav {
font-weight: normal;
padding: 3px;
font-size: 80%;
width: 80%;
float: left;
}
.ilDclEditRecordButtonWrapper {
float: right;
}
.ilDclRecordViewRecordOfTotal {
margin-right: 10px;
}
.ilDclSelectRecord {
margin-left: 10px;
}
.ilDclChangeRecord {
display: inline;
}
.ilDclPermanentLinkWrapper {
margin: 20px 0;
}
tr.dcl_comments_active > td {
background-color: #ffffd9;
}
@@ -0,0 +1,52 @@
/* Modules/Excercise */
.ilExcAssignmentBody {
padding: 20px;
background-color: @il-main-dark-bg;
}
.ilExcAssignmentHead img {
display: block;
float: left;
margin-top: 4px;
}
.ilExcAssignmentHead .ilAssignmentHeader {
padding: 0;
margin: 1px 0 0 25px;
font-size: floor(@font-size-base*1.2);
}
.ilExcAssignmentHead, .ilAssignmentHeader {
display: block;
}
.ilExAssignmentHeadProperty {
margin: 4px 0 0 25px;
font-size: floor(@font-size-base*0.9);
}
.ilExcOverview .ilExcAssImageContainer {
max-width: 300px;
display:inline-block;
cursor:pointer;
}
.ilExcReportFeedback{
background-color:@il-main-dark-bg;
padding:9px;
}
.ilExcAssignmentInfoTool {
padding: 10px;
h4 {
padding-left:0px;
padding-right:0px;
}
p {
padding: 0px;
}
ul {
padding-left: 30px;
margin: 0;
}
}
@@ -0,0 +1,189 @@
/* Modules/Forum */
a.postread, a.postread:visited {
font-weight: normal;
}
a.postunread, a.postunread:visited {
font-weight: bold;
}
a.postnew, a.postnew:visited {
font-style: italic;
font-weight: bold;
}
blockquote.ilForumQuote {
margin: 0 20px 10px;
padding: 5px;
border: 1px solid #b6b6b6;
font-size: 90%;
}
div.ilForumQuoteHead {
font-weight: bold;
font-size: 90%;
margin: 0 0 10px;
}
/* Modules/Forum */
#ilFrmPostList {
list-style: none;
margin: 0;
padding: 0;
background-color: @il-main-dark-bg;
}
.ilFrmPostImage {
float: left;
width: 100px;
overflow: hidden;
img {
vertical-align: top;
margin: 5px 20px 5px 5px;
border: none;
max-width: 100%;
@media only screen and (min-width: @grid-float-breakpoint) {
margin: 0 !important;
padding: 5px 8px 5px 5px;
}
}
}
.ilFrmPostClear {
clear: both;
width: 1px;
height: 1px;
line-height: 1px;
}
.ilFrmPostTitle {
margin-top: 15px;
font-size: 120%;
@media only screen and (max-width: @grid-float-breakpoint-max) {
margin-top: 5px;
font-size: 100%;
}
}
div.ilFrmPostHeader span.small {
color: @il-text-light-color;
}
.ilFrmPostContentContainer {
margin: 0 0 10px;
width: 80%;
float: left;
@media only screen and (max-width: @grid-float-breakpoint-max) {
width: 100%;
}
img {
@media only screen {
width: 100%;
height: auto !important;
}
}
}
.ilFrmPostContent {
margin-top: 20px;
}
.ilFrmPostRow {
padding: 3px;
border-top: 1px solid #f0f0f0;
div.ilForm {
width: 100%;
max-width: 1000px;
div.ilFormValue {
width: auto;
}
div.ilFormOption {
width: 150px;
}
&, input[type=text], textarea {
@media only screen and (max-width: @grid-float-breakpoint-max) {
width: 100%;
}
}
}
img.ilUserIcon {
@media only screen and (max-width: @grid-float-breakpoint-max) {
width: 50px;
height: 50px;
}
}
}
@media only screen and (min-width: @screen-lg-desktop) {
.sort_by_posts .ilFrmPostRow {
&.ilFrmPost-level-2 {
padding-left: 50px;
}
&.ilFrmPost-level-3 {
padding-left: 100px;
}
&.ilFrmPost-level-4 {
padding-left: 150px;
}
}
}
.ilFrmPostCensorshipAdvice {
margin: 0;
padding: 0;
font-weight: bold;
}
.ilFrmPostAttachmentsContainer {
margin: 20px 0 0;
font-weight: bold;
a {
font-weight: normal;
}
img {
vertical-align: middle;
}
}
.ilFrmPostCommands {
float: right;
margin: 0 0 3px;
}
.ilModeratorPosting {
background-color: @il-posting-by-moderator-bg;
padding: 0 5px;
}
.ilPostingNeedsActivation {
background-color: @il-posting-needs-moderation-bg;
padding: 0 5px;
}
.ilFrmBottomToolbar {
margin-top: 20px;
}
.ilForumTreeTitle {
display: inline-block;
}
.ilForumTreeTitleUnread {
font-weight: bold;
}
.ilForumTreeUnlinkedContent {
display: block;
line-height: 0.9em;
margin-bottom: 10px;
text-decoration: none;
cursor: text;
font-size: smaller;
color: @il-text-color;
padding-left: 23px;
}
.frm-thread-scrollable-print {
overflow: auto;
}
@@ -0,0 +1,21 @@
/* BEGIN LTIConsumer */
@lti-iframe-width: 100%;
@lti-iframe-height: 500px;
@lti-iframe-border-color: #7c7c7c;
@lti-iframe-border-width: 2px;
@lti-iframe-padding: 3px;
#ltiLoadingAnimation {
padding-top: 50px;
text-align: center;
}
#ltiIframe {
border: solid @lti-iframe-border-color @lti-iframe-border-width !important;
padding: @lti-iframe-padding;
width: @lti-iframe-width;
height: @lti-iframe-height;
}
/* END LTIConsumer */
@@ -0,0 +1,115 @@
/* Modules/LearningModule */
.ilLMMenu {
clear: both;
}
body.ilLMNoMenu .ilFixedTopSpacer {
padding-top: 0px;
}
body.ilLMNoMenu .ilLeftNav {
top: 0px;
}
button.ilAreaClose {
width: 20px;
height: 20px;
position: absolute;
top: 0;
cursor: pointer;
}
div.ilRightAreaSpace {
width: 50%;
}
/* right area (used in learning modules) */
div#right_area {
bottom: 0;
width: 50%;
right: 0px;
top: @il-header-height;
position: fixed;
/* padding: 5px; */
background-color: #f5f5f5;
border-left: 3px solid #e9e9e9;
/* box-shadow: inset 0px 2px 2px #d0d0d0; */
-webkit-overflow-scrolling: touch; /* Bug 11209 */
overflow: hidden; /* Bug 11209 */
}
div#right_area iframe {
-webkit-overflow-scrolling: touch; /* Bug 11209 */
overflow: auto; /* Bug 11209 */
border: none;
width: 100%;
height: 100%;
}
div#right_cont_area {
bottom: 0;
width: 50%;
right: 0px;
top: @il-header-height;
position: fixed;
background-color: transparent;
border-left: 3px solid @il-main-border-color;
-webkit-overflow-scrolling: touch; /* Bug 11209 */
overflow: hidden;
}
div#right_top_area {
top: 0;
width: 100%;
height: 100%;
position: absolute;
border-bottom: 3px solid #e9e9e9;
border-right: 3px solid #e9e9e9;
-webkit-overflow-scrolling: touch; /* Bug 11209 */
overflow: hidden;
display: none;
}
div.ilRightContAreaSplit div#right_top_area {
height: 50%;
}
div#right_top_area iframe {
-webkit-overflow-scrolling: touch; /* Bug 11209 */
overflow: auto; /* Bug 11209 */
border: none;
width: 100%;
height: 100%;
}
div#right_bottom_area {
top: 0px;
width: 100%;
height: 100%;
position: absolute;
-webkit-overflow-scrolling: touch; /* Bug 11209 */
overflow: hidden;
display: none;
border-right: 3px solid #e9e9e9;
}
div.ilRightContAreaSplit div#right_bottom_area {
top: 50%;
height: 50%;
}
div#right_bottom_area iframe {
-webkit-overflow-scrolling: touch; /* Bug 11209 */
overflow: auto; /* Bug 11209 */
border: none;
width: 100%;
height: 100%;
}
#il_expl2_jstree_cont_out_ilLMProgressTree img {
width: 18px;
height: 18px;
margin-top: -3px;
}
@@ -0,0 +1,32 @@
@lso-dark-bg: @il-main-dark-bg;
.ilLSOLearnerView { /*ILIAS-GUI, "startpage" of LSO*/
.il-workflow-step-label,
.il-workflow-step-label .btn {
color: @text-color !important;
cursor: default !important;
text-decoration: none !important;
}
}
.ilLSOKioskModeObjectHeader {
.il_HeaderInner{
padding-bottom: 5px;
}
}
.ilLSOKioskModeNavigation {
margin-bottom: 10px;
background-color: @lso-dark-bg;
.navbar-form {
line-height: 25px;
}
}
.ilLSOKioskModeContent {
.panel-primary {
.panel-heading {
display: none;
}
}
}
@@ -0,0 +1,13 @@
/* Modules/MediaPool */
#ilMepPreviewContent {
margin: 0;
width: 100%;
padding: 0;
border: 0;
}
.ilMediaPoolPagePreviewBody {
background-color: @il-main-dark-bg;
height: auto;
}
@@ -0,0 +1,65 @@
/* Modules/Poll */
.ilPollDescription {
margin: 5px;
font-size: 80%;
color: @il-text-light-color;
}
.ilPollQuestion {
display: inline-block;
width: 97%;
margin: 1.5%;
font-size: 90%;
font-style: italic;
}
img.ilPollQuestionImage {
margin: 1.5% 0%;
max-width: 100%;
}
.ilPollQuestionAnswers {
margin: 5px;
font-size: 80%;
}
.ilPollQuestionAnswer {
margin-bottom: 5px;
}
.ilPollQuestionResults {
margin: 10px;
font-size: 80%;
}
.ilPollQuestionResult {
margin-bottom: 5px;
}
.ilPollQuestionResultBar {
width: 100%;
border: 1px solid @il-main-border-dark-color;
float: left;
height: 18px;
}
.ilPollQuestionResultBarInner {
background-color: #c2e1ff;
height: 18px;
}
.ilPollQuestionResultPerc {
float: right;
position: relative;
margin-top: -17px;
margin-right: 3px;
}
.ilPollLegend {
margin-bottom: 5px;
}
.ilPollLegend td.legendLabel {
font-size: 120%;
}
@@ -0,0 +1,63 @@
/* Modules/Portfolio */
ul.ilPCMyCoursesCourseList > li {
margin-bottom: 10px;
.course-list-tree-icon {
width: 20px;
height: 20px;
}
}
ul.ilPCMyCoursesObjectiveList > li {
margin-top: 5px;
margin-left: 40px;
}
a.ilPCMyCoursesToggle {
outline: 0;
}
div.ilPCMyCoursesPath {
margin-bottom: 10px;
font-size: 90%;
/* font-style: italic; */
}
div.ilPrtfSignature
{
margin-top: 60px;
border-top: 1px solid black;
}
.ilPrtfMetaInfo {
margin-top: 20px;
}
.ilPrtfMetaInfo td {
padding-left: 20px;
}
.ilPrtfMetaInfo td, .ilPrtfMetaInfo th {
padding-top: 5px;
vertical-align: top;
}
div.ilPrtfToc {
margin-top: 40px;
}
body.ilPrtfPdfBody {
> div.ilInvisibleBorder {
padding: 0;
padding-left: 40px;
}
margin: 0;
}
body.ilPrtfPdfBody h1.ilc_PrintPageTitle {
border-bottom: 1px solid #000000;
}
body.ilPrtfPdfBody .ilPCMyCoursesToggle img {
visibility: hidden;
}
@@ -0,0 +1,24 @@
/* Modules/ScormAicc */
table.il_ScormTable {
color: @il-text-color;
background-color: @il-main-dark-bg;
border-spacing: 1px;
border: none;
}
td.il_ScormTableKey {
background-color: @il-main-dark-bg;
color: @il-text-color;
padding: 1px 3px;
vertical-align: top;
text-align: right;
}
td.il_ScormTableValue {
background: none @il-main-dark-bg;
color: @il-text-color;
padding: 1px 3px;
vertical-align: top;
text-align: left;
}
@@ -0,0 +1,44 @@
div.ilSurveyPageEditDropArea {
border-color: lighten(@il-secondary-color, 10%);
color: lighten(@il-secondary-color, 10%);
background-color: lighten(@il-secondary-color, 25%);
}
div.ilSurveyPageEditDropAreaSelected {
border-color: lighten(@il-secondary-color, 10%);
color: lighten(@il-secondary-color, 10%);
background-color: lighten(@il-secondary-color, 15%);
}
div.ilSurveyPageEditAreaDragging {
border: 2px dashed @il-neutral-color;
background-color: @il-main-dark-bg;
padding: 5px;
}
div.ilSurveyPageEditActionMenu {
float: right;
margin: 3px;
}
.il-svy-qst-compressed {
.questionTitle {
display: none;
}
tr:first-child td {
visibility: hidden;
height: 1px;
line-height: 1px;
padding-top: 0;
padding-bottom: 0;
}
}
#il-svy-output-form {
table {
td p {
hyphens: auto;
}
}
}
@@ -0,0 +1,673 @@
/* former ta.css */
.kiosk {
padding: 2em;
background-color: #fafafa;
}
.fullwidth_invisible {
background-color: transparent !important;
}
.feedback {
/* border: 1px solid gray;*/
padding: 4px;
display: block;
background: #EEEEEE;
}
.centermessage {
width: 25em;
margin-left: auto;
margin-right: auto;
font-weight: bold;
font-size: 150%;
}
.col2 {
width: 100%;
float: left;
}
.rcol {
width: 50%;
float: right;
}
.lcol {
width: 50%;
float: left;
}
.participant.solution {
padding: 5px;
width: 50%;
overflow-x: auto;
}
.lcol.participant
{
width: 49%;
overflow-x: auto;
}
.rcol.solution {
width: 49%;
overflow-x: auto;
padding: 5px;
background: #E2FFC7; /* Fallback IE 6-8 */
background: rgba(226, 255, 199, .4);
}
#kioskOptions {
clear: both;
overflow: hidden;
width: 100%;
border-top: 1px #aaa solid;
border-bottom: 1px #aaa solid;
margin-bottom: 1em;
padding: 1em 0;
}
#kioskTestTitle {
float: left;
width: 50%;
}
#kioskParticipant {
float: right;
text-align: right;
width: 50%;
}
.print {
visibility: hidden;
}
.ilTstWorkingFormBlock_WorkingTime {
text-align: center;
clear: both;
}
.ilTstWorkingFormInfo_UserWorkingTime {
visibility: hidden;
display: none;
}
.ilTstWorkingFormInfo_ProcessTimeLeft {
font-size: 200%;
font-weight: bold;
}
.ilTstQuestionSummaryBlock_WorkingTime {
clear: both;
}
div.ilc_Question {
padding-left: 20px;
margin-top: 10px;
margin-bottom: 10px;
}
.testSheet {
background: #EEEEEE;
border-spacing: 1px;
border: 1px outset #BBBBBB;
margin: 5px;
padding: 2em;
}
.questionTitle {
margin-top: 5px;
margin-bottom: 5px;
font-size: 140%;
padding-bottom: 3px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-color: #000000;
}
.ilTestQuestionRelatedObjectivesInfo
{
font-size: 0.7em;
font-style: italic;
margin: 5px 0;
}
.questionPrintview {
border: 1px solid #C0C0C0;
padding: 0.25em;
margin-top: 1em;
}
.solutionbox {
color: black;
background-color: white;
padding-left: 5px;
padding-right: 5px;
border-style: inset;
border-width: 1px;
}
td.middle {
color: #000000;
background-color: inherit;
border-spacing: 0px;
border: none;
padding: 3px;
vertical-align: middle;
}
td.top {
color: #000000;
background-color: inherit;
border-spacing: 0px;
border: none;
padding: 3px;
vertical-align: top;
}
/* --- Test tool javascript styles --- */
span.nowrap {
white-space: nowrap;
}
div.termtext {
width: 200px;
height: 100px;
border: 1px solid #000000;
background-color: #F1F1F1;
color: #222222;
padding: 10px;
vertical-align: middle;
border-style: outset;
text-align: center;
}
div.dropzone {
width: 220px;
height: 120px;
border: 1px solid #000000;
background-color: #FFE4E4;
color: #222222;
padding: 10px;
vertical-align: middle;
border-style: dotted;
text-align: center;
}
div.textboximage {
width: 200px;
height: 80px;
border: 1px solid #000000;
background: #DDDDDD;
padding: 10px;
vertical-align: middle;
border-style: outset;
text-align: center;
}
div.imagebox {
width: 200px;
height: 100px;
border: 1px solid #000000;
background-color: #F1F1F1;
color: #222222;
padding: 10px;
vertical-align: middle;
border-style: outset;
text-align: center;
z-index: 200;
}
div.textbox {
width: 200px;
height: 100px;
border: 1px solid #000000;
background-color: #F1F1F1;
color: #222222;
padding: 10px;
vertical-align: middle;
border-style: outset;
text-align: center;
z-index: 200;
}
#filterpanel {
text-align: right;
}
.filteractive {
background-color: #f7face;
border: 1px #d48110 solid;
}
.filterinactive {
background-color: #fff;
}
.manfeedback .toggle-button
{
padding-left:20px;
background:transparent url(images/del_sprite_arrows.gif) 3px -318px no-repeat;
cursor:pointer;
}
.manfeedback .yes
{
padding-left:20px;
background:transparent url(images/del_sprite_arrows.gif) 3px -359px no-repeat;
cursor:pointer;
}
.manfeedback .off
{
padding-left:20px;
background:none;
cursor:default;
}
div.odd {
padding: 0.5em 0;
}
div.even {
padding: 0.5em 0;
}
div.last {
border-bottom: none;
}
table.imagemapareas tr,
table.kvpwizard tr,
table.matchingwizard tr,
table.matchingpairwizard tr,
table.errortextwizard tr,
table.singlechoicewizard tr,
table.multiplechoicewizard tr {
vertical-align: top;
}
table.imagemapareas th,
table.kvpwizard th,
table.matchingwizard th,
table.matchingpairwizard th,
table.errortextwizard th,
table.singlechoicewizard th,
table.multiplechoicewizard th,
table.kprimchoicewizard th
{
vertical-align: top;
}
table.kprimchoicewizard th.true,
table.kprimchoicewizard th.false
{
padding: 5px 5px;
}
table.kprimchoicewizard td.correctness
{
vertical-align: top;
text-align: center;
}
table.kprimchoicewizard th
{
font-size: 90%;
font-weight: bold;
text-align: center;
}
table.kprimchoicewizard
{
}
table.kprimchoicewizard
{
margin-bottom: 15px;
}
table.kprimchoicewizard td
{
padding-top: 15px;
}
div.ilAssKprimChoiceTable div.optionLabel,
table.kprimchoicewizard th.optionLabel
{
background-color: lightgrey;
}
table.ilAssKprimChoiceTable tr.aggregaterow td
{
border-bottom: solid lightgrey 1px;
}
table.ilAssKprimChoiceTable tr.aggregaterow td.answer_frequency
{
text-align: right;
}
table.il_tst_answer_aggregation
{
border-collapse: collapse;
}
table.il_tst_answer_aggregation td,
table.il_tst_answer_aggregation th
{
padding: 5px 15px;
}
table.il_tst_answer_aggregation th
{
background-color: lightgrey;
}
table.il_tst_answer_aggregation td
{
border-bottom: solid lightgrey 1px;
}
table.il_tst_answer_aggregation td.answer_option
{
font-style: italic;
}
table.il_tst_answer_aggregation td.answer_frequency
{
text-align: right;
}
#tst_output {
clear: both;
overflow: hidden;
width: 100%;
float: left;
}
#tst_left {
float: left;
width: 0%;
}
#tst_left h1 {
font-size: 110%;
font-weight: bold;
}
#tst_right {
float: right;
width: 100%;
}
.question_description {
font-style: italic;
font-size: 90%;
}
ul.shortlist {
list-style-type: none;
padding: 0;
}
/* fau: testNav - icon for answered/unanswered questions in shortlist */
ul.shortlist li {
padding: 0 0 6px 15px;
background-repeat: no-repeat;
background-size: 10px;
background-position: 0px 5px;
}
ul.shortlist li.answered {
background-image: url('../../../../templates/default/images/answered.svg');
}
ul.shortlist li.unanswered {
background-image: url('../../../../templates/default/images/answered_not.svg');
}
/* fau. */
ul.shortlist li.active {
font-weight: bold;
}
ul.shortlist li.listEntry a
{
text-decoration:none;
color:#0033AA;
}
ul.shortlist li.listEntry a:hover
{
text-decoration: underline;
}
.number {
text-align: right;
}
.errortext a:link,
.errortext a:visited {
text-decoration: none;
color: #000;
padding: 0 2px;
line-height: 1.5em;
}
.errortext a:hover {
background-color: #ddd;
}
.ilc_qetitem_ErrorTextSelected {
background-color: #9bd9fe;
border: 1px #666 solid;
}
.selGroup {
border: 2px #9bd9fe solid;
padding: 3px 2px;
margin-right: 2px;
}
.imageselection {
}
.questionpool_info {
padding: 0.4em;
margin-top: 0.4em;
}
.questionpool_title {
font-weight: bold;
}
td.matching {
vertical-align: middle;
}
div.term {
display: inline;
padding: 0.5em 1em;
float: left;
}
.solutiontable td {
padding: 0 1em;
}
span.result {
font-style: italic;
}
div.ilc_Page.readonly div.ilc_question_Standard
{
background-color: #f3f3f3;
background-image: url(../../../../templates/default/images/qmark-ro.svg);
}
ul.ilAssQuestionRelatedNavigationContainer,
div.ilAssQuestionRelatedNavigationContainer
{
margin: 15px 0;
float: none;
}
ul.ilAssQuestionRelatedNavigationContainer div.navbar
{
padding-right: 12px;
min-height: unset;
margin-bottom: 10px;
}
div.tstModalConfirmationText
{
margin-bottom: 20px;
}
div.tstModalConfirmationButtons a,
div.tstModalConfirmationButtons input
{
margin-right: 20px;
}
div.ilTestOutputBlock_DynTestFinished
{
background-color: #FAFAFA;
padding: 100px;
}
a.il_question_answer_list_back_anchor
{
float:right;
font-size:0.7em;
margin-right:3px;
}
.ilCenterForced {
text-align: center !important;
}
tr.ilBorderlessRow
{
margin-right: 20px;
}
td.ilAssQuestSkillAssignQuestTitle div
{
margin-right: 20px;
}
.ilAssQuestionLacExprWizard td,
.ilAssQuestionLacExprWizard th
{
padding-right: 10px;
}
a.il_participant_block_back_anchor,
a.il_question_answer_list_back_anchor
{
float:right;
margin-right:3px;
}
a.il_question_answer_list_back_anchor
{
font-size:0.7em;
}
.test_specific_feedback td:first-child{
padding-right: 1em;
font-style: italic;
font-weight: bold;
}
.test_specific_feedback td:last-child p:first-child{
margin-top: 0;
}
p.ilAssKprimInstruction,
p.ilAdditionalAssQuestionInstruction
{
font-style: italic;
font-size: 0.9em;
margin:5px 0 15px 0 !important;
}
table.kprimchoicewizard th.optionLabel
{
font-size: 1.1em;
}
table.imagemapareas tr.active-area, table.imagemapareas tr.active-area td {
background-color: #fdfabb !important;
}
/* fau: testNav - added and changed styles */
td.ilc_Page {
padding: 15px;
}
.ilTestQuestionSubtitleBlocks
{
margin-top: -12px;
}
.ilTestMarkQuestionIcon {
width: 12px;
height: 12px;
}
.ilTestAnswerStatusIcon {
display: inline-block;
width: 12px;
height: 12px;
margin-top: -3px;
}
.ilTestQuestionAction.disabled a {
color: #b0b0b0!important;
}
/* fau. */
div.ilAssClozeTest
{
line-height: 2.5em;
}
div.ilAssClozeTest input
{
line-height: 1.25em;
}
div.ilc_Page.readonly img.imagemap,
div.ilc_Page.readonly div.filesContainer,
div.ilc_Page.readonly div.filesContainer a,
div.ilc_Page.readonly div.uploadContainer input,
div.ilc_Page.readonly div.ilAssErrorText span,
div.ilc_Page.readonly input[disabled],
div.ilc_Page.readonly select[disabled],
div.ilc_Page.readonly textarea[disabled]
{
pointer-events: all !important;
cursor: not-allowed !important;
}
.tstAutosaveMsg
{
font-style: italic;
border: 1px #666 solid;
background-color: #ffffe0;
position:fixed;
z-index:99999999999;
top:0;
left:0;
}
.textarea {
cursor: not-allowed !important;
border: 1px solid rgb(169, 169, 169);
padding: 2px;
background-color: rgb(235, 235, 228);
min-height: 200px;
}
.ilSpecificAnswerFeedback td:first-child {
padding-right: 30px;
}
.ilc_question_MultipleChoice .ilc_qanswer_Answer > div {
vertical-align: top;
}
.ilc_question_SingleChoice .ilc_qanswer_Answer > div {
vertical-align: top;
}
@@ -0,0 +1,33 @@
/* Modules/Wiki */
a.ilWikiPageMissing:link, a.ilWikiPageMissing:visited {
color: @il-danger-color;
}
a.ilWikiPageMissing:hover {
color: @il-text-hover-color;
}
ul.ilWikiBlockList {
margin: 0 0 0 20px;
padding: 0;
list-style: disc outside;
}
ul.ilWikiBlockListNoIndent {
margin: 0;
padding: 0;
list-style: none;
}
li.ilWikiBlockItem {
margin: 0;
padding: 0;
}
/* see mantis #0027530 */
#block_wikiside_0 {
.panel-body {
overflow: visible;
}
}
@@ -0,0 +1,11 @@
/* Modules/WorkspaceFolder */
#tbl_wfld.table-striped > tbody > tr > td {
background-color: transparent;
}
.ilWspContainerListFooter {
background-color: @il-main-dark-bg;
margin: 0px -15px -15px -15px;
padding: 5px 25px;
}
@@ -0,0 +1,54 @@
/* Services/Accordion */
.il_VAccordionHead, .il_HAccordionHead {
padding: @padding-base-horizontal @padding-base-horizontal @padding-base-horizontal (@padding-base-horizontal+30px);
text-align: left;
cursor: pointer;
color: @link-color;
font-size: 110%;
background-image: url("@{il-background-images-path}tree_col.svg");
background-repeat: no-repeat;
background-color: @il-main-dark-bg;
background-position: 15px 8px;
background-size: 20px 20px;
border: 0;
}
.il_VAccordionHead {
display: block;
width: 100%;
}
.il_VAccordionInnerContainer {
margin-bottom: 10px;
}
.il_VAccordionContent, .il_HAccordionContent {
}
.il_HAccordionHead:hover, .il_VAccordionHead:hover {
background-color: @il-highlight-bg;
}
.il_HAccordionHeadActive, .il_VAccordionHeadActive {
background-image: url("@{il-background-images-path}tree_exp.svg");
background-color: @il-highlight-bg;
}
.ilAccHideContent {
width: 0px;
height: 0px;
display: none;
}
.il_VAccordionContentDef, .il_HAccordionContentDef {
> div {
//overflow: auto;
//was added for #17978, yet removed for #20719
//seems yet useless
}
}
div.ilc_va_icont_VAccordICont {
overflow: visible !important;
}
@@ -0,0 +1,207 @@
/* Services/Awareness */
.ilAwarenessDropDown .popover {
max-width: 300px;
color: @il-text-color;
min-width: 250px;
}
#awareness-list {
overflow: auto;
.dropdown-header {
background-color: @il-main-dark-bg;
margin-bottom: 0px;
}
}
.ilAwarenessDropDown .popover-content {
padding: 0;
}
.ilAwarenessDropDown .media-body, .ilAwarenessDropDown .media-left, .ilAwarenessDropDown .media-right {
display: table-cell;
vertical-align: top;
}
.ilAwarenessDropDown .media-left {
padding-right: 10px;
}
.ilAwarenessDropDown .media {
padding: 10px;
}
#awareness-content {
.input-group {
display: table;
}
.media:hover {
background-color: @il-highlight-bg;
}
.glyphicon {
font-size: inherit;
}
}
#awareness-content .dropdown-menu {
position: static;
float: none;
.box-shadow(none);
}
#awareness-content .media {
padding: 0;
}
#awareness-content .media-left img {
width: 45px;
height: 45px;
}
.ilAwarenessItem {
border-bottom: 1px solid @il-main-border-color;
background-color: @il-main-bg;
> div[role='button']:focus-visible {
.il-focus();
}
ul {
margin: 0;
padding: 0;
li {
margin: 0;
padding: 0;
}
}
}
#awareness-content .media-body {
white-space: nowrap;
width: auto;
}
#awareness-content .media-body {
padding-top: 8px;
}
#awareness-content .media-body h4, #awareness-content .media-body p {
color: @il-text-color;
font-size: 12px;
padding: 5px 3px 0 3px;
line-height: 1em;
margin: 0;
}
#awareness-content .media-body h4 {
padding-top: 0px;
font-size: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
#awareness-content .dropdown-menu {
background-color: @il-main-dark-bg;
padding: 10px 0;
font-size: 12px;
}
#awareness-content .dropdown-menu a {
color: @il-text-color;
}
#awareness-content .dropdown-menu a:hover {
color: @il-text-hover-color;
}
#awareness-content .arrow-down {
width: 0;
height: 0;
border-left: 11px solid transparent;
border-right: 11px solid transparent;
border-top: 11px solid white;
margin-top: -10px;
margin-left: 100px;
}
#awareness_trigger {
display: block;
}
#awareness_trigger > span {
display: table-cell;
}
.ilAwarenessItem h3.popover-title {
display: none;
}
.ilAwarenessItem .media {
display: table;
width: 100%;
}
.ilAwarenessItemRow {
display: table-row;
width: 100%;
}
.ilAwarenessItem .media-left {
width: 55px;
}
.ilAwarenessItemRow .media-body {
/* background-image: url('./templates/default/images/scorm/not_attempted.svg'); */
background-repeat: no-repeat;
background-size: 12px 12px;
background-position: right 10px top 50%;
/* see http://stackoverflow.com/questions/9789723/css-text-overflow-in-a-table-cell */
/* and bug #18937 */
/* max-width: 0; */
width: 100%;
}
.ilAwarenessItemRow .media-body.ilAwarenessOnline {
background-image: url('@{il-background-images-path}scorm/completed.svg');
}
.ilAwarenessLoader {
display: block;
margin: 15px auto;
width: 30px;
height: 30px;
}
#il_awrn_filer_btn {
.glyphicon{
filter: invert(0);
margin-right: 0;
font-family: 'Glyphicons Halflings';
}
}
#il_awrn_filer_btn img {
width: 10px;
height: 10px;
}
#awareness-content .ilHighlighted {
background-color: @il-highlight-bg;
color: @il-text-light-color;
}
.ilAwrnBadgeHidden {
visibility: hidden;
}
/* due to bug #17839 */
#awareness-content .dropdown-backdrop {
display:none;
right: auto;
width: 0px;
}
.ilAwarenessItem > div {
cursor: pointer;
}
@@ -0,0 +1,57 @@
/* Services/Badge */
img.ilBadgeImage {
max-width: 150px;
max-height: 150px;
}
.ilBadgeImageThumbnail a .img-responsive {
max-width: 50px;
max-height: 50px;
display: inline-block;
}
.ilBadgeImageThumbnail .modal .img-responsive {
margin: auto;
width: 50%;
height: auto;
}
div.ilBadgeBackpackPanelContent {
min-height: 200px;
}
div.ilBadgeBackpackPanelContent img {
margin: auto;
}
span.ilProfileBadge {
display: inline-block;
padding: 5px;
> a {
width: 50px;
height: 50px;
display: inline-block;
img {
margin: auto;
max-width: 50px;
max-height: 50px;
}
}
.modal .img-responsive {
margin: auto;
width: 50%;
height: auto;
}
}
.ilBadgeDeck {
.modal .img-responsive {
margin: auto;
width: 50%;
height: auto;
}
}

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