Compare commits

..

18 Commits

Author SHA1 Message Date
Dario Sassi 21ff4be8ec Icarus :
- aggiunta impostazione tolleranza di importazione da INI ( [Import] AdvToler=XXX) con default 0.1.
2026-05-12 10:18:39 +02:00
Dario Sassi 228a751335 Icarus 3.1e1 :
- aggiunto parametro di lavorazione SingleLeadIn (default false).
2026-05-06 12:16:01 +02:00
Dario Sassi d5188fcd96 Icarus :
- aggiornata simulazione come EgtCAM5.
2026-04-28 19:26:55 +02:00
Dario Sassi 1b131fd781 Icarus 3.1d2 :
- aggiunta gestione tipo di estrusione da NewSlicingType di Ini macchina.
2026-04-28 11:39:10 +02:00
Dario Sassi 6f1ea25aaa Icarus 3.1d1 :
- aggiunta gestione modo Multiplanar_45deg.
2026-04-14 19:47:07 +02:00
Dario Sassi 6d18e9eba5 Icarus :
- correzione per conversioni di stringhe in double e viceversa.
2026-03-18 18:16:47 +01:00
Dario Sassi bd43571e10 Icarus :
- permessa l'esecuzione di un massimo di quattro istanze (prima una sola).
2026-03-12 17:34:37 +01:00
Dario Sassi 757c4d7b6f Icarus 3.1c2 :
- correzione per crash dopo conferma edit materiali senza materiale corrente in top bar (progetto nuovo).
2026-03-10 16:16:21 +01:00
Dario Sassi 251ae061f1 Icarus 3.1c1 :
- ricompilazione con cambio versione.
2026-03-03 16:36:51 +01:00
Dario Sassi f0eec3b4da Icarus :
- corretta lettura da ini e applicazione del formato di salvataggio.
2026-02-22 16:30:37 +01:00
Emmanuele Sassi b529aa7e99 - gestito click su TextBox di cambio nome pezzi ed entita' per evitare che chiudesse anche il pannello ManagePartPanel 2026-02-18 13:28:00 +01:00
Dario Sassi dd31c112a6 Icarus 3.1b2 :
- aggiunto parametro SpiralVaseLen (abilitato solo se SpiralVase lo è).
2026-02-16 11:33:16 +01:00
Dario Sassi 738945927b Icarus 3.1b1 :
- prime modifiche per aggiungere tipo di slicing MultiPlanar.
2026-02-11 20:04:01 +01:00
Dario Sassi 6827c7f971 Icarus 3.1a1 :
- ricompilazione con cambio major version
- piccola correzione in messaggio di AboutBox.
2026-01-02 19:22:51 +01:00
Dario Sassi 7abeca0815 Icarus :
- aggiunta gestione direzione di vista standard da ini macchina ([General] StandardView=SE (ammessi SW, SE, NE, NW con SW default).
2025-11-28 12:28:19 +01:00
Dario Sassi c758f5474e Icarus 2.7k1 :
- piccola modifica per indicare il numero di chiave nel messaggio emesso quando manca la licenza.
2025-11-12 15:36:23 +01:00
Dario Sassi 99750342ad Icarus 2.7j1 :
- ricompilazione con cambio versione.
2025-10-30 16:37:58 +01:00
Dario Sassi dfb555c7ea Icarus 2.7i2 :
- ricompilazione con cambio versione.
2025-09-30 19:34:11 +02:00
31 changed files with 403 additions and 347 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ Public Class AboutBoxV
" Ulv" & Map.refMainWindowVM.MainWindowM.nUserLevel.ToString() &
" Dbg" & Map.refMainWindowVM.MainWindowM.DebugLevel().ToString() & Environment.NewLine
sInfo &= sKey & " - " & sKlev & " - " & sOpts & sLeftDays & Environment.NewLine
sInfo &= "Maintenance plane " & sAssStatus & Environment.NewLine
sInfo &= "Maintenance plan " & sAssStatus & Environment.NewLine
sInfo &= "DataRoot " & Map.refMainWindowVM.MainWindowM.sDataRoot & Environment.NewLine
sInfo &= "MachinesRoot " & Map.refMainWindowVM.MainWindowM.sMachinesRoot & Environment.NewLine
Dim sOpSys As String = String.Empty
+2
View File
@@ -94,6 +94,7 @@
Public Const MAC_INNERSHELLWIDTH = "InnerStrandW"
Public Const MAC_OFFSETLEADPOINT = "OffsetLeadPoint"
Public Const MAC_LEADIN = "LeadIn"
Public Const MAC_SINGLELEADIN = "SingleLeadIn"
Public Const MAC_LEADINTANGDIST = "LeadInTangDist"
Public Const MAC_LEADINORTHODIST = "LeadInOrthoDist"
Public Const MAC_LEADOUT = "LeadOut"
@@ -103,6 +104,7 @@
Public Const MAC_COASTINGFEEDPU = "CoastingFeedPu"
Public Const MAC_WIPELEN = "WipeLen"
Public Const MAC_WIPEFEEDPU = "WipeFeedPu"
Public Const MAC_SPIRALVASELEN = "SpiralVaseLen"
Public Const MAC_WIPEDIR = "WipeDir"
Public Const MAC_FLOORCOUNT = "FloorCount"
Public Const MAC_G0FEED = "G0Feed"
+1
View File
@@ -104,6 +104,7 @@ Public Module ConstIni
Public Const K_STLSCALE As String = "StlScale"
Public Const K_CNCFLAG As String = "CncFlag"
Public Const K_ADVFLAG As String = "AdvFlag"
Public Const K_ADVTOLER As String = "AdvToler"
'Public Const S_SIMUL As String = "Simul"
'Public Const K_SLIDERX As String = "SliderX"
+1
View File
@@ -26,6 +26,7 @@ Public Module ConstMachDataIni
Public Const S_45DEGX As String = "45DegX"
Public Const S_45DEGY As String = "45DegY"
Public Const S_HORIZONTAL As String = "Horizontal"
Public Const S_MULTIPLANAR As String = "MultiPlanar"
Public Const K_MINX As String = "MinX"
Public Const K_MAXX As String = "MaxX"
Public Const K_MINY As String = "MinY"
+3 -1
View File
@@ -1,6 +1,7 @@
Public Module ConstMachIni
Public Const MACH_INI_FILE_NAME As String = "MachData.ini"
Public Const S_GENERAL As String = "General"
Public Const K_GEN_STD_VIEW As String = "StandardView"
Public Const S_MACHINING As String = "Machining"
Public Const K_MACH_INITSCRIPT As String = "InitScript"
@@ -8,6 +9,7 @@
Public Const S_MACH_PRINTING3D As String = "3dPrinting"
Public Const K_SLICINGTYPE As String = "SlicingType"
Public Const K_NEWSLICINGTYPE As String = "NewSlicingType"
Public Const K_SPEED_MIN As String = "SpeedMin"
Public Const K_SPEED_MAX As String = "SpeedMax"
Public Const K_MAX_HEIGHT As String = "HMax"
+45 -27
View File
@@ -106,12 +106,12 @@ Public Class CurrMachining
Else
m_nIndex = 0
End If
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nPartId, m_nIndex, False))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.LINK, nPartId, m_nIndex, False))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.RIBS, nPartId, m_nIndex, False))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nPartId, m_nIndex, False))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nPartId, m_nIndex, False))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.INFILL, nPartId, m_nIndex, False))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nPartId, m_nIndex, False, Me))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.LINK, nPartId, m_nIndex, False, Me))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.RIBS, nPartId, m_nIndex, False, Me))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nPartId, m_nIndex, False, Me))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nPartId, m_nIndex, False, Me))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.INFILL, nPartId, m_nIndex, False, Me))
For Each Cathegory In m_CathegoryList
For Each MachiningParam In Cathegory.MachiningParamList
AddHandler MachiningParam.PropertyChanged, AddressOf OnMachiningParamPropertyChanged
@@ -124,12 +124,12 @@ Public Class CurrMachining
' ricavo lavorazione da lista
Dim CurrMachiningInDb As MachiningIndex = Map.refTopPanelVM.MachiningList.FirstOrDefault(Function(x) x.nIndex = nIndex)
m_sCurrGUID = CurrMachiningInDb.sGUID
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nPartId, m_nIndex, True))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.LINK, nPartId, m_nIndex, True))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.RIBS, nPartId, m_nIndex, True))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nPartId, m_nIndex, True))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nPartId, m_nIndex, True))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.INFILL, nPartId, m_nIndex, True))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nPartId, m_nIndex, True, Me))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.LINK, nPartId, m_nIndex, True, Me))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.RIBS, nPartId, m_nIndex, True, Me))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nPartId, m_nIndex, True, Me))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nPartId, m_nIndex, True, Me))
m_CathegoryList.Add(New CurrMachiningCathegory(MachiningCathegory.Cathegories.INFILL, nPartId, m_nIndex, True, Me))
For Each Cathegory In m_CathegoryList
For Each MachiningParam In Cathegory.MachiningParamList
AddHandler MachiningParam.PropertyChanged, AddressOf OnMachiningParamPropertyChanged
@@ -196,8 +196,9 @@ End Class
Public Class CurrMachiningCathegory
Inherits MachiningCathegory
Sub New(Type As Cathegories, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean)
Sub New(Type As Cathegories, nPartId As Integer, nIndex As Integer, bForceFromDb As Boolean, Machining As Machining)
m_Type = Type
m_Machining = Machining
Select Case m_Type
Case Cathegories.GENERAL
m_sName = "General"
@@ -230,6 +231,7 @@ Public Class CurrMachiningCathegory
New CurrComboMachiningParam(MachiningParam.Params.LINKTYPE, nPartId, nIndex, bForceFromDb, Me),
New CurrNumericMachiningParam(MachiningParam.Params.LINKPARAM, nPartId, nIndex, bForceFromDb, Me),
New CurrComboMachiningParam(MachiningParam.Params.LEADIN, nPartId, nIndex, bForceFromDb, Me),
New CurrCheckMachiningParam(MachiningParam.Params.SINGLELEADIN, nPartId, nIndex, bForceFromDb, Me),
New CurrNumericMachiningParam(MachiningParam.Params.LEADINTANGDIST, nPartId, nIndex, bForceFromDb, Me),
New CurrNumericMachiningParam(MachiningParam.Params.LEADINORTHODIST, nPartId, nIndex, bForceFromDb, Me),
New CurrComboMachiningParam(MachiningParam.Params.LEADOUT, nPartId, nIndex, bForceFromDb, Me),
@@ -238,7 +240,8 @@ Public Class CurrMachiningCathegory
New CurrNumericMachiningParam(MachiningParam.Params.COASTINGLEN, nPartId, nIndex, bForceFromDb, Me),
New CurrNumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nPartId, nIndex, bForceFromDb, Me),
New CurrNumericMachiningParam(MachiningParam.Params.WIPELEN, nPartId, nIndex, bForceFromDb, Me),
New CurrNumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nPartId, nIndex, bForceFromDb, Me)})
New CurrNumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nPartId, nIndex, bForceFromDb, Me),
New CurrNumericMachiningParam(MachiningParam.Params.SPIRALVASELEN, nPartId, nIndex, bForceFromDb, Me)})
'New CurrNumericMachiningParam(MachiningParam.Params.WIPEDIR, nPartId, nIndex, bForceFromDb, Me)})
Case Cathegories.RIBS
m_sName = "Ribs"
@@ -315,6 +318,11 @@ Public Class CurrMachiningCathegory
Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
MachiningParam.ManageDependencyParam()
Next
For Each Param In {MachiningParam.Params.SPIRALVASE}
Dim GeneralCathegory As MachiningCathegory = Machining.CathegoryList.FirstOrDefault(Function(z) z.Type = Cathegories.GENERAL)
Dim MachiningParam As CheckMachiningParam = GeneralCathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
MachiningParam.ManageDependencyParam(Me)
Next
Case Cathegories.RIBS
For Each Param In {MachiningParam.Params.RIBSTYPE}
Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
@@ -360,7 +368,7 @@ 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, 2), DoubleToString(m_dValue, 2))
End Get
Set(value As String)
Dim dTempValue As Double = 0
@@ -473,6 +481,9 @@ Public Class CurrNumericMachiningParam
Case Params.WIPEFEED_PC
bReadFromPart = EgtGetInfo(nPartId, MAC_WIPEFEEDPU, m_dValue)
m_bIsLen = False
Case Params.SPIRALVASELEN
bReadFromPart = EgtGetInfo(nPartId, MAC_SPIRALVASELEN, m_dValue)
m_bIsLen = True
'Case Params.WIPEDIR
' bReadFromPart = EgtGetInfo(nPartId, MAC_WIPEDIR, m_dValue)
' m_bIsLen = True
@@ -636,7 +647,7 @@ Public Class CurrNumericMachiningParam
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
Case Params.LINKPARAM, Params.INNERSHELLWIDTH, 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.SPIRALVASELEN, Params.SINGLELEADIN ' Params.WIPEDIR
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.LINK).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
Case Params.RIBSSTRANDWIDTH, Params.RIBSOVERLAP, Params.RIBSSTRANDOVERLAP, Params.RIBSSTRANDCOUNT, Params.RIBSLINK, Params.RIBSLINKFILLET, Params.RIBSMERGEWITHSHELL, Params.RIBSINVERTMERGEDSHELLMAINLINK, Params.RIBSINVERTORDER, Params.RIBSINVERTDIRECTION,
Params.RIBSLEADININVERT, Params.RIBSLEADINLEN, Params.RIBSLEADOUTINVERT, Params.RIBSLEADOUTLEN, Params.RIBSLEADOUTCOASTING,
@@ -711,6 +722,8 @@ Public Class CurrNumericMachiningParam
EgtSetInfo(nPartId, MAC_WIPELEN, sWriteValue)
Case Params.WIPEFEED_PC
EgtSetInfo(nPartId, MAC_WIPEFEEDPU, sWriteValue)
Case Params.SPIRALVASELEN
EgtSetInfo(nPartId, MAC_SPIRALVASELEN, sWriteValue)
'Case Params.WIPEDIR
' EgtSetInfo(nPartId, MAC_WIPEDIR, sWriteValue)
Case Params.FLOORCOUNT
@@ -954,17 +967,15 @@ Public Class CurrComboMachiningParam
Dim bReadFromPart As Boolean = False
Select Case Type
Case Params.SLICINGTYPE
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 nNewSlicingType As Integer = CurrentMachine.GetSlicingType()
m_ValueList = New List(Of IdNameStruct)
If (nNewSlicingType And 1) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical"))
If (nNewSlicingType And 2) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45deg X"))
If (nNewSlicingType And 4) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45_Y, "45deg Y"))
If (nNewSlicingType And 8) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal"))
If (nNewSlicingType And 16) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR, "MultiPlanar"))
If (nNewSlicingType And 32) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR_DEG45, "MultiPlanar 45deg"))
If (nNewSlicingType And 64) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR_HORIZ, "MultiPlanar Horiz"))
Dim nSelValue As Integer = 0
bReadFromPart = EgtGetInfo(nPartId, MAC_SLICINGTYPE, nSelValue)
If Not bReadFromPart Then
@@ -1176,6 +1187,7 @@ Public Class CurrCheckMachiningParam
m_bValue = value
NotifyPropertyChanged(NameOf(bValue))
NotifyPropertyChanged(NameOf(bIsModifiedFromDb))
ManageDependencyParam()
End Set
End Property
@@ -1201,6 +1213,8 @@ Public Class CurrCheckMachiningParam
Select Case Type
Case Params.SPIRALVASE
bReadFromPart = EgtGetInfo(nPartId, MAC_SPIRALVASE, m_bValue)
Case Params.SINGLELEADIN
bReadFromPart = EgtGetInfo(nPartId, MAC_SINGLELEADIN, m_bValue)
Case Params.RIBSLINK
bReadFromPart = EgtGetInfo(nPartId, MAC_RIBSLINK, m_bValue)
Case Params.RIBSMERGEWITHSHELL
@@ -1230,6 +1244,8 @@ Public Class CurrCheckMachiningParam
Select Case Type
Case Params.SPIRALVASE
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
Case Params.SINGLELEADIN
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.LINK).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
Case Params.RIBSLINK, Params.RIBSMERGEWITHSHELL, Params.RIBSINVERTMERGEDSHELLMAINLINK, Params.RIBSINVERTORDER, Params.RIBSINVERTDIRECTION, Params.RIBSINVERTSTRANDORDER, Params.RIBSLEADININVERT, Params.RIBSLEADOUTINVERT, Params.RIBSLIMITUNBOUNDEDWITHSOLID
m_DbParam = DbMachining.CathegoryList.FirstOrDefault(Function(y) y.Type = MachiningCathegory.Cathegories.RIBS).MachiningParamList.FirstOrDefault(Function(z) z.Type = m_Type)
Case Params.AUXSOLIDSINFILLLINK
@@ -1248,6 +1264,8 @@ Public Class CurrCheckMachiningParam
Select Case Type
Case Params.SPIRALVASE
EgtSetInfo(nPartId, MAC_SPIRALVASE, If(m_bValue, 1, 0))
Case Params.SINGLELEADIN
EgtSetInfo(nPartId, MAC_SINGLELEADIN, If(m_bValue, 1, 0))
Case Params.RIBSLINK
EgtSetInfo(nPartId, MAC_RIBSLINK, If(m_bValue, 1, 0))
Case Params.RIBSMERGEWITHSHELL
@@ -140,7 +140,7 @@ Public Class CurrMachiningPanelVM
WriteMachiningParam(nIndex, MAC_GUID, sNewMachGUID.ToString())
WriteMachiningParam(nIndex, MAC_NAME, SaveInDbWndVM.sName)
' creo categoria materiali con attivo materiale corrente
Dim MaterialCathegory As New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, 0)
Dim MaterialCathegory As New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, 0, m_CurrMachining)
Dim SelMaterialParam As MaterialMachiningParam = MaterialCathegory.MachiningParamList.FirstOrDefault(Function(x As MaterialMachiningParam) x.sGUID = Map.refTopPanelVM.SelMaterial.sGUID)
If Not IsNothing(SelMaterialParam) Then
SelMaterialParam.bValue = True
@@ -166,13 +166,13 @@ Public Class FilledSolidNumericMachiningParam
Public Overrides Property sValue As String
Get
Return If(m_bIsLen, LenToString(m_dValue, 1), m_dValue)
Return If(m_bIsLen, LenToString(m_dValue, 2), DoubleToString(m_dValue, 2))
End Get
Set(value As String)
If m_bIsLen Then
StringToLen(value, m_dValue)
Else
m_dValue = value
StringToDouble(value, m_dValue)
End If
NotifyPropertyChanged(NameOf(sValue))
NotifyPropertyChanged(NameOf(bIsModifiedFromPart))
+35 -28
View File
@@ -1,30 +1,37 @@
<StackPanel x:Class="InstrumentPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:Icarus"
IsEnabled="{Binding InstrumentPanel_IsEnabled}"
Orientation="Horizontal">
<Border x:Class="InstrumentPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:Icarus"
IsEnabled="{Binding InstrumentPanel_IsEnabled}"
Background="{DynamicResource EgaltechWhite}"
CornerRadius="0,4,0,0"
Padding="0,0,8,0">
<StackPanel Orientation="Horizontal">
<local:CheckedImageToggleButton ToolTip="{Binding GetDist_ToolTip}"
IsChecked="{Binding GetDistIsChecked}"
ImageSource="/Resources/InstrumentPanel/GetDist.png"
CheckedImageSource="/Resources/InstrumentPanel/GetDist_White.png"
Width="15"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}">
<local:CheckedImageToggleButton.Resources>
<sys:Double x:Key="ToggleButton.Image.Height">25</sys:Double>
<sys:Double x:Key="ToggleButton.Image.Width">25</sys:Double>
</local:CheckedImageToggleButton.Resources>
</local:CheckedImageToggleButton>
<local:CheckedImageToggleButton ToolTip="{Binding EdgeAnalysis_ToolTip}"
IsChecked="{Binding bEdgeAnalysis_IsChecked}"
IsEnabled="{Binding bEdgeAnalysis_IsEnabled}"
ImageSource="/Resources/InstrumentPanel/EdgeAnalysis.png"
CheckedImageSource="/Resources/InstrumentPanel/EdgeAnalysis_White.png"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}">
</local:CheckedImageToggleButton>
</StackPanel>
<local:CheckedImageToggleButton ToolTip="{Binding GetDist_ToolTip}"
IsChecked="{Binding GetDistIsChecked}"
ImageSource="/Resources/InstrumentPanel/GetDist.png"
CheckedImageSource="/Resources/InstrumentPanel/GetDist_White.png"
Width="15"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}">
<local:CheckedImageToggleButton.Resources>
<sys:Double x:Key="ToggleButton.Image.Height">25</sys:Double>
<sys:Double x:Key="ToggleButton.Image.Width">25</sys:Double>
</local:CheckedImageToggleButton.Resources>
</local:CheckedImageToggleButton>
<local:CheckedImageToggleButton ToolTip="{Binding EdgeAnalysis_ToolTip}"
IsChecked="{Binding bEdgeAnalysis_IsChecked}"
IsEnabled="{Binding bEdgeAnalysis_IsEnabled}"
ImageSource="/Resources/InstrumentPanel/EdgeAnalysis.png"
CheckedImageSource="/Resources/InstrumentPanel/EdgeAnalysis_White.png"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}">
</local:CheckedImageToggleButton>
</StackPanel>
</Border>
+65 -23
View File
@@ -14,6 +14,9 @@ Public Class Machining
DEG45 = 2
DEG45_Y = 3
HORIZONTAL = 4
MULTIPLANAR = 5
MULTIPLANAR_DEG45 = 6
MULTIPLANAR_HORIZ = 7
End Enum
Public Enum MPAR_STRANDORDERS As Integer
@@ -147,13 +150,13 @@ Public Class Machining
m_sName = "New Machining"
End If
m_sOrigName = m_sName
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.LINK, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.RIBS, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.INFILL, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, nIndex))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.GENERAL, nIndex, Me))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.LINK, nIndex, Me))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.RIBS, nIndex, Me))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.SHELL_NUMBER, nIndex, Me))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.AUX_SOLID, nIndex, Me))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.INFILL, nIndex, Me))
m_CathegoryList.Add(New MachiningCathegory(MachiningCathegory.Cathegories.MATERIALS, nIndex, Me))
For Each Cathegory In m_CathegoryList
For Each MachiningParam In Cathegory.MachiningParamList
AddHandler MachiningParam.PropertyChanged, AddressOf OnMachiningParamPropertyChanged
@@ -314,11 +317,19 @@ Public Class MachiningCathegory
End Set
End Property
Protected m_Machining As Machining
Friend ReadOnly Property Machining As Machining
Get
Return m_Machining
End Get
End Property
Sub New()
End Sub
Sub New(Type As Cathegories, nIndex As Integer)
Sub New(Type As Cathegories, nIndex As Integer, Machining As Machining)
m_Machining = Machining
m_Type = Type
Select Case m_Type
Case Cathegories.GENERAL
@@ -352,6 +363,7 @@ Public Class MachiningCathegory
New ComboMachiningParam(MachiningParam.Params.LINKTYPE, nIndex, Me),
New NumericMachiningParam(MachiningParam.Params.LINKPARAM, nIndex, Me),
New ComboMachiningParam(MachiningParam.Params.LEADIN, nIndex, Me),
New CheckMachiningParam(MachiningParam.Params.SINGLELEADIN, nIndex, Me),
New NumericMachiningParam(MachiningParam.Params.LEADINTANGDIST, nIndex, Me),
New NumericMachiningParam(MachiningParam.Params.LEADINORTHODIST, nIndex, Me),
New ComboMachiningParam(MachiningParam.Params.LEADOUT, nIndex, Me),
@@ -360,7 +372,8 @@ Public Class MachiningCathegory
New NumericMachiningParam(MachiningParam.Params.COASTINGLEN, nIndex, Me),
New NumericMachiningParam(MachiningParam.Params.COASTINGFEED_PC, nIndex, Me),
New NumericMachiningParam(MachiningParam.Params.WIPELEN, nIndex, Me),
New NumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nIndex, Me)})
New NumericMachiningParam(MachiningParam.Params.WIPEFEED_PC, nIndex, Me),
New NumericMachiningParam(MachiningParam.Params.SPIRALVASELEN, nIndex, Me)})
'New NumericMachiningParam(MachiningParam.Params.WIPEDIR, nIndex, Me)})
Case Cathegories.RIBS
m_sName = "Ribs"
@@ -446,7 +459,12 @@ Public Class MachiningCathegory
Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
MachiningParam.ManageDependencyParam()
Next
Case Cathegories.RIBS
For Each Param In {MachiningParam.Params.SPIRALVASE}
Dim GeneralCathegory As MachiningCathegory = Machining.CathegoryList.FirstOrDefault(Function(z) z.Type = Cathegories.GENERAL)
Dim MachiningParam As CheckMachiningParam = GeneralCathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
MachiningParam.ManageDependencyParam(Me)
Next
Case Cathegories.RIBS
For Each Param In {MachiningParam.Params.RIBSTYPE}
Dim MachiningParam As ComboMachiningParam = MachiningParamList.FirstOrDefault(Function(z) z.Type = Param)
MachiningParam.ManageDependencyParam()
@@ -540,6 +558,8 @@ Public MustInherit Class MachiningParam
WIPELEN = 62
WIPEFEED_PC = 63
INNERSHELLWIDTH = 64
SPIRALVASELEN = 65
SINGLELEADIN = 66
'WIPEDIR = 64
RIBSTYPE = 101
RIBSOVERLAP = 102
@@ -648,7 +668,7 @@ Public MustInherit Class MachiningParam
m_Cathegory = Cathegory
Select Case m_Type
Case Params.SLICINGTYPE
m_sName = "Slicing Direction"
m_sName = "Slicing Type"
Case Params.STRANDH
m_sName = "Strand Height"
Case Params.STRANDW
@@ -675,6 +695,8 @@ Public MustInherit Class MachiningParam
m_sName = "Offset Lead Point"
Case Params.LEADIN
m_sName = "Lead In"
Case Params.SINGLELEADIN
m_sName = "Single Lead In"
Case Params.LEADINTANGDIST
m_sName = "Lead In Tang Dist"
Case Params.LEADINORTHODIST
@@ -693,6 +715,8 @@ Public MustInherit Class MachiningParam
m_sName = "Wipe Len"
Case Params.WIPEFEED_PC
m_sName = "Wipe Feed [%]"
Case Params.SPIRALVASELEN
m_sName = "Spiral Trans Len"
Case Params.FLOORCOUNT
m_sName = "Floor Count"
Case Params.G0FEED
@@ -875,7 +899,7 @@ 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, 2), DoubleToString(m_dValue, 2))
End Get
Set(value As String)
Dim dTempValue As Double = 0
@@ -1043,6 +1067,9 @@ Public Class NumericMachiningParam
Case Params.WIPEFEED_PC
m_dValue = ReadMachiningParamDouble(nIndex, MAC_WIPEFEEDPU, 0)
m_bIsLen = False
Case Params.SPIRALVASELEN
m_dValue = ReadMachiningParamDouble(nIndex, MAC_SPIRALVASELEN, 0)
m_bIsLen = True
'Case Params.WIPEDIR
' m_dValue = ReadMachiningParamDouble(nIndex, MAC_WIPEDIR, 0)
' m_bIsLen = True
@@ -1269,6 +1296,8 @@ Public Class NumericMachiningParam
WriteMachiningParam(nIndex, MAC_WIPELEN, sWriteValue, sFilePath)
Case Params.WIPEFEED_PC
WriteMachiningParam(nIndex, MAC_WIPEFEEDPU, sWriteValue, sFilePath)
Case Params.SPIRALVASELEN
WriteMachiningParam(nIndex, MAC_SPIRALVASELEN, sWriteValue, sFilePath)
'Case Params.WIPEDIR
' WriteMachiningParam(nIndex, MAC_WIPEDIR, sWriteValue, sFilePath)
Case Params.FLOORCOUNT
@@ -1494,17 +1523,15 @@ Public Class ComboMachiningParam
Else
Select Case Type
Case Params.SLICINGTYPE
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 nNewSlicingType As Integer = CurrentMachine.GetSlicingType()
m_ValueList = New List(Of IdNameStruct)
If (nNewSlicingType And 1) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.VERTICAL, "Vertical"))
If (nNewSlicingType And 2) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45, "45deg X"))
If (nNewSlicingType And 4) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.DEG45_Y, "45deg Y"))
If (nNewSlicingType And 8) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.HORIZONTAL, "Horizontal"))
If (nNewSlicingType And 16) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR, "MultiPlanar"))
If (nNewSlicingType And 32) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR_DEG45, "MultiPlanar 45deg"))
If (nNewSlicingType And 64) <> 0 Then m_ValueList.Add(New IdNameStruct(Machining.MPAR_SLICINGTYPE.MULTIPLANAR_HORIZ, "MultiPlanar Horiz"))
Dim nSelValue As Double = ReadMachiningParamDouble(nIndex, MAC_SLICINGTYPE, -1)
If nSelValue = -1 Then
Dim dSlicing45 As Double = 0
@@ -1700,6 +1727,7 @@ Public Class CheckMachiningParam
Set(value As Boolean)
m_bValue = value
NotifyPropertyChanged(NameOf(bValue))
ManageDependencyParam()
End Set
End Property
@@ -1739,6 +1767,8 @@ Public Class CheckMachiningParam
Select Case Type
Case Params.SPIRALVASE
m_bValue = ReadMachiningParamDouble(nIndex, MAC_SPIRALVASE, 0)
Case Params.SINGLELEADIN
m_bValue = ReadMachiningParamDouble(nIndex, MAC_SINGLELEADIN, 0)
Case Params.RIBSLINK
m_bValue = ReadMachiningParamDouble(nIndex, MAC_RIBSLINK, 0)
Case Params.RIBSMERGEWITHSHELL
@@ -1766,10 +1796,22 @@ Public Class CheckMachiningParam
m_bOrigValue = m_bValue
End Sub
Friend Sub ManageDependencyParam(Optional Cathegory As MachiningCathegory = Nothing)
' gestisco dis/attivazione parametri dipendenti
Select Case m_Type
Case Params.SPIRALVASE
Dim ShellCathegory As MachiningCathegory = If(Not IsNothing(Cathegory), Cathegory, m_Cathegory.Machining.CathegoryList.FirstOrDefault(Function(z) z.Type= MachiningCathegory.Cathegories.LINK))
Dim NumMachiningParam As NumericMachiningParam = ShellCathegory.MachiningParamList.FirstOrDefault(Function(z) z.Type = Params.SPIRALVASELEN)
NumMachiningParam.SetIsActive(m_bValue)
End Select
End Sub
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), sFilePath)
Case Params.SINGLELEADIN
WriteMachiningParam(nIndex, MAC_SINGLELEADIN, If(m_bValue, 1, 0), sFilePath)
Case Params.RIBSLINK
WriteMachiningParam(nIndex, MAC_RIBSLINK, If(m_bValue, 1, 0), sFilePath)
Case Params.RIBSMERGEWITHSHELL
+4 -4
View File
@@ -8,7 +8,7 @@ Public Class MainWindowM
#Region "FIELDS"
' massimo numero di istanze del programma ammesse
Const MAX_INST As Integer = 32
Const MAX_INST As Integer = 4
Private m_objMutex As Mutex
@@ -191,8 +191,8 @@ Public Class MainWindowM
EgtSetLockId( sLockId)
End If
' Recupero livello e opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(5583, 2709, 1, m_nKeyLevel) And
EgtGetKeyOptions(5583, 2709, 1, m_nKeyOptions)
Dim bKey As Boolean = EgtGetKeyLevel(5583, 3105, 1, m_nKeyLevel) And
EgtGetKeyOptions(5583, 3105, 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())
@@ -317,7 +317,7 @@ Public Class MainWindowM
Friend Function GetMaxInstances() As Integer
' Leggo il massimo numero di istanze ammesse
Dim nMaxInst As Integer = GetMainPrivateProfileInt(S_GENERAL, K_MAXINST, 1)
Return 1 ' Max(1, Min(nMaxInst, MAX_INST))
Return Max(1, Min(nMaxInst, MAX_INST))
End Function
Friend Sub Close()
+1 -1
View File
@@ -40,7 +40,7 @@ Class MainWindowV
End Sub
Private Sub MainWindowV_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs)
If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then
If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt AndAlso Keyboard.IsKeyDown(Key.F4) Then
e.Cancel = True
Return
End If
+6 -8
View File
@@ -159,21 +159,19 @@ Public Class MainWindowVM
End Function
Friend Sub CloseApplication()
If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then
' Se simulazione in corso
If Not IsNothing( Map.refSimulationPanelVM) AndAlso Map.refSimulationPanelVM.MySimul.bSimExecuting Then
' Avvio l'arresto della simulazione
Map.refSimulationPanelVM.MySimul.SetSimulationStatus(MCH_SIM_ST.UI_STOP)
Map.refSimulationPanelVM.MySimul.m_bSimulEndExitApp = True
Return
End If
' gestisco la chiusura della simulazione
' Chiusura della simulazione
If Map.refRightPanelVM.SelPanel = RightPanelVM.Panels.SIMULATION AndAlso Not IsNothing(Map.refSimulationPanelVM) Then
Map.refSimulationPanelVM.MySimul.ResetSimulation()
End If
' Gestisco eventuale file corrente modificato
Dim bOk As Boolean = True
'bOk = ProjFileVM.VerifyProjectModification(Map.refProjManagerVM.CurrProj, ProjectType.PROJ)
' se salvataggio annullato, rimango
If Not bOk Then Return
Dim bAllowClose As Boolean = Map.refSceneHostVM.MainController.ManageModified()
' Salvo impostazione macchina corrente
'Map.refMachinePanelVM.SaveCurrentMachine()
' Se non confermata chiusura, esco
If Not bAllowClose Then Return
' salvo modo di visualizzazione
+14 -4
View File
@@ -49,8 +49,13 @@
Style="{StaticResource BaseTextBlock}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding sName, UpdateSourceTrigger=Explicit}"
IsExplicitFocused="{Binding UserShouldEditValueNow}"
Visibility="{Binding TextBox_Visibility}"
Style="{StaticResource OptionTextBox}"/>
Visibility="{Binding TextBox_Visibility}">
<EgtWPFLib5:EgtTextBox.Style>
<Style TargetType="{x:Type EgtWPFLib5:EgtTextBox}" BasedOn="{StaticResource OptionTextBox}">
<EventSetter Event="PreviewKeyDown" Handler="TextBox_PreviewKeyDown"/>
</Style>
</EgtWPFLib5:EgtTextBox.Style>
</EgtWPFLib5:EgtTextBox>
</Grid>
</StackPanel>
</HierarchicalDataTemplate>
@@ -69,8 +74,13 @@
Style="{StaticResource BaseTextBlock}"/>
<EgtWPFLib5:EgtTextBox Text="{Binding sName, UpdateSourceTrigger=Explicit}"
IsExplicitFocused="{Binding UserShouldEditValueNow}"
Visibility="{Binding TextBox_Visibility}"
Style="{StaticResource OptionTextBox}"/>
Visibility="{Binding TextBox_Visibility}">
<EgtWPFLib5:EgtTextBox.Style>
<Style TargetType="{x:Type EgtWPFLib5:EgtTextBox}" BasedOn="{StaticResource OptionTextBox}">
<EventSetter Event="PreviewKeyDown" Handler="TextBox_PreviewKeyDown"/>
</Style>
</EgtWPFLib5:EgtTextBox.Style>
</EgtWPFLib5:EgtTextBox>
</Grid>
</HierarchicalDataTemplate>
<!-- Menu' tasto destro -->
@@ -23,4 +23,12 @@
End Select
End Sub
Private Sub TextBox_PreviewKeyDown(sender As Object, e As KeyEventArgs)
' per evitare che il click del tasto Enter a fine edit faccia scattare anche la chiusura
' di tutto il pannello a causa del IsDefault sul tasto di chiusura, termino la gestione del click
If e.Key = Key.Enter Then
e.Handled = True
End If
End Sub
End Class
+2 -2
View File
@@ -504,13 +504,13 @@ Public Class NumericMaterialParam
Private m_dValue As Double
Public Property dValue As String
Get
Return If(m_bIsLen, LenToString(m_dValue, 1), m_dValue)
Return If(m_bIsLen, LenToString(m_dValue, 5), DoubleToString(m_dValue, 5))
End Get
Set(value As String)
If m_bIsLen Then
StringToLen(value, m_dValue)
Else
m_dValue = value
StringToDouble(value, m_dValue)
End If
NotifyPropertyChanged(NameOf(dValue))
End Set
+11 -9
View File
@@ -283,17 +283,19 @@ Public Class MaterialDbVM
' aggiorno lista materiali Db
Init()
' aggiorno lista materiali TopBar
Dim PrevMaterialGuid As String = Map.refTopPanelVM.SelMaterial.sGUID
Map.refTopPanelVM.InitMaterialList()
Dim PrevMaterial As MaterialIndex = Map.refTopPanelVM.MaterialList.FirstOrDefault(Function(x) x.sGUID = PrevMaterialGuid)
If Not IsNothing(PrevMaterial) Then
Map.refTopPanelVM.SetSelMaterial(PrevMaterial)
Else
Map.refTopPanelVM.SelMaterial = Nothing
Map.refTopPanelVM.NotifyPropertyChanged(NameOf(Map.refTopPanelVM.SelMaterial))
If Not IsNothing(Map.refTopPanelVM.SelMaterial) Then
Dim PrevMaterialGuid As String = Map.refTopPanelVM.SelMaterial.sGUID
Dim PrevMaterial As MaterialIndex = Map.refTopPanelVM.MaterialList.FirstOrDefault(Function(x) x.sGUID = PrevMaterialGuid)
If Not IsNothing(PrevMaterial) Then
Map.refTopPanelVM.SetSelMaterial(PrevMaterial)
Else
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
' ricarico lavorazioni per aggiorno liste materiali all'interno
Map.refMachiningDbVM.Init()
End If
' ripristino modalita' standard
Map.refTopPanelVM.SelPage = Pages.MODIFY
+3 -3
View File
@@ -30,7 +30,7 @@ Imports System.Windows
#End If
<Assembly: AssemblyCompany("Egalware s.r.l.")>
<Assembly: AssemblyProduct("Icarus")>
<Assembly: AssemblyCopyright("Copyright © 2022-2025 by Egalware s.r.l.")>
<Assembly: AssemblyCopyright("Copyright © 2022-2026 by Egalware s.r.l.")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(false)>
@@ -70,5 +70,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.7.9.1")>
<Assembly: AssemblyFileVersion("2.7.9.1")>
<Assembly: AssemblyVersion("3.1.5.1")>
<Assembly: AssemblyFileVersion("3.1.5.1")>
-172
View File
@@ -268,152 +268,6 @@ Public Class OptionWindowVM
End Set
End Property
'Public Property ImageScaleFactor As String
' Get
' Return LenToString(OptionModule.m_dImgScaleFactor, 5)
' End Get
' Set(value As String)
' Dim dVal As Double = 0
' If StringToLen(value, dVal) AndAlso dVal > 0 Then
' OptionModule.m_dImgScaleFactor = dVal
' WritePrivateProfileString(S_IMPORT, K_IMGSCALE, DoubleToString(OptionModule.m_dImgScaleFactor, 5))
' Map.refProjectVM.GetController().SetScaleForImageImport(OptionModule.m_dImgScaleFactor)
' NotifyPropertyChanged("ImageScaleFactor")
' End If
' End Set
'End Property
'Public Property ImageWidth As String
' Get
' Return OptionModule.m_nImgWidth.ToString()
' End Get
' Set(value As String)
' Dim nVal As Integer = 0
' If Integer.TryParse(value, nVal) AndAlso nVal > 0 Then
' OptionModule.m_nImgWidth = nVal
' WritePrivateProfileString(S_EXPORT, K_IMGWIDTH, OptionModule.m_nImgWidth.ToString())
' Map.refProjectVM.GetController().SetDefaultForImageExport(OptionModule.m_nImgWidth, OptionModule.m_nImgHeight)
' End If
' End Set
'End Property
'Public Property ImageHeight As String
' Get
' Return OptionModule.m_nImgHeight.ToString()
' End Get
' Set(value As String)
' Dim nVal As Integer = 0
' If Integer.TryParse(value, nVal) AndAlso nVal > 0 Then
' OptionModule.m_nImgHeight = nVal
' WritePrivateProfileString(S_EXPORT, K_IMGHEIGHT, OptionModule.m_nImgHeight.ToString())
' Map.refProjectVM.GetController().SetDefaultForImageExport(OptionModule.m_nImgWidth, OptionModule.m_nImgHeight)
' End If
' End Set
'End Property
'Public Property ExtLineLen As String
' Get
' Return LenToString(OptionModule.m_dExtLineLen, 5)
' End Get
' Set(value As String)
' Dim dVal As Double = 0
' If StringToLen(value, dVal) AndAlso dVal > 0 Then
' OptionModule.m_dExtLineLen = dVal
' EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight)
' WritePrivateProfileString(S_DIMENSIONSTYLE, K_EXTLINELEN, DoubleToString(OptionModule.m_dExtLineLen, 5))
' End If
' End Set
'End Property
'Public Property ArrowLen As String
' Get
' Return LenToString(OptionModule.m_dArrowLen, 5)
' End Get
' Set(value As String)
' Dim dVal As Double = 0
' If StringToLen(value, dVal) AndAlso dVal > 0 Then
' OptionModule.m_dArrowLen = dVal
' EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight)
' WritePrivateProfileString(S_DIMENSIONSTYLE, K_ARROWLEN, DoubleToString(OptionModule.m_dArrowLen, 5))
' End If
' End Set
'End Property
'Public Property TextDist As String
' Get
' Return LenToString(OptionModule.m_dTextDist, 5)
' End Get
' Set(value As String)
' Dim dVal As Double = 0
' If StringToLen(value, dVal) AndAlso dVal > 0 Then
' OptionModule.m_dTextDist = dVal
' EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight)
' WritePrivateProfileString(S_DIMENSIONSTYLE, K_TEXTDIST, DoubleToString(OptionModule.m_dTextDist, 5))
' End If
' End Set
'End Property
'Public Property SelectedUnitMeasure As String
' Get
' If OptionModule.m_nLenIsMM = 0 Then
' Return "inch"
' ElseIf OptionModule.m_nLenIsMM = 1 Then
' Return "mm"
' Else
' Return EgtMsg(MSG_OPTIONPAGE + 45)
' End If
' End Get
' Set(value As String)
' Dim nVal As Integer = 2
' If value = "inch" Then
' nVal = 0
' ElseIf value = "mm" Then
' nVal = 1
' End If
' OptionModule.m_nLenIsMM = nVal
' EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight)
' WritePrivateProfileString(S_DIMENSIONSTYLE, K_LENISMM, OptionModule.m_nLenIsMM.ToString())
' End Set
'End Property
'Public Property DecDigit As String
' Get
' Return OptionModule.m_nDecDigit.ToString()
' End Get
' Set(value As String)
' Dim nVal As Integer = 0
' If Integer.TryParse(value, nVal) AndAlso nVal > 0 Then
' OptionModule.m_nDecDigit = nVal
' EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight)
' WritePrivateProfileString(S_DIMENSIONSTYLE, K_DECDIGIT, OptionModule.m_nDecDigit.ToString())
' End If
' End Set
'End Property
'Public Property SelectedFont As String
' Get
' Return m_FontList(m_FontList.IndexOf(OptionModule.m_sFont))
' End Get
' Set(value As String)
' OptionModule.m_sFont = value
' EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight)
' WritePrivateProfileString(S_DIMENSIONSTYLE, K_DIMFONT, OptionModule.m_sFont)
' End Set
'End Property
'Public Property TextHeight As String
' Get
' Return LenToString(OptionModule.m_dTextHeight, 5)
' End Get
' Set(value As String)
' Dim dVal As Double = 0
' If StringToLen(value, dVal) AndAlso dVal > 0 Then
' OptionModule.m_dTextHeight = dVal
' EgtSetCurrDimensionStyle(m_dExtLineLen, m_dArrowLen, m_dTextDist, m_nLenIsMM, m_nDecDigit, m_sFont, m_dTextHeight)
' WritePrivateProfileString(S_DIMENSIONSTYLE, K_TEXTHEIGHT, DoubleToString(OptionModule.m_dTextHeight, 5))
' End If
' End Set
'End Property
Private m_DXFScaleEnable As Boolean = False
Public Property DXFScaleEnable As Boolean
@@ -498,32 +352,6 @@ Public Class OptionWindowVM
End Set
End Property
'Public Property SelectedImageScale As String
' Get
' If Math.Abs(OptionModule.m_dImgScaleFactor - ONEMM) < EPS_SMALL * 10 Then
' Return ScaleImageList(ScaleImageList.IndexOf("mm"))
' ElseIf Math.Abs(OptionModule.m_dImgScaleFactor - ONEINCH) < EPS_SMALL * 10 Then
' Return ScaleImageList(ScaleImageList.IndexOf("inch"))
' Else
' ImageScaleEnable = True
' Return ScaleImageList(ScaleImageList.IndexOf(EgtMsg(6546)))
' ImageScaleEnable = True
' End If
' End Get
' Set(value As String)
' If value = "mm" Then
' ImageScaleFactor = LenToString(ONEMM, 3)
' ImageScaleEnable = False
' ElseIf value = "inch" Then
' ImageScaleFactor = LenToString(ONEINCH, 4)
' ImageScaleEnable = False
' Else
' ImageScaleFactor = LenToString(OptionModule.m_dImgScaleFactor, 4)
' ImageScaleEnable = True
' End If
' End Set
'End Property
' Definizione comandi
Private m_cmdTopSceneBackground As ICommand
+2 -2
View File
@@ -197,13 +197,13 @@ Public Class RibNumericMachiningParam
Public Overrides Property sValue As String
Get
Return If(m_bIsLen, LenToString(m_dValue, 1), m_dValue)
Return If(m_bIsLen, LenToString(m_dValue, 2), DoubleToString(m_dValue, 2))
End Get
Set(value As String)
If m_bIsLen Then
StringToLen(value, m_dValue)
Else
m_dValue = value
StringToDouble(value, m_dValue)
End If
NotifyPropertyChanged(NameOf(sValue))
NotifyPropertyChanged(NameOf(bIsModifiedFromPart))
+27 -10
View File
@@ -1,4 +1,5 @@
Imports System.IO
Imports System.Windows.Forms.VisualStyles.VisualStyleElement
Imports EgtUILib
Imports EgtWPFLib5
Imports Microsoft.Win32
@@ -105,8 +106,9 @@ Public Class MySceneHostVM
' 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(10105) & vbCrLf & EgtMsg(10106)
' Box di avviso licenza con problemi : sKeyInfo \n "Programma senza licenza. \n Caricala e riavvia il programma." "Errore"
Dim sKeyInfo As String = "" : EgtGetKeyInfo(sKeyInfo)
Dim sText As String = sKeyInfo & vbCrLf & EgtMsg(10105) & vbCrLf & EgtMsg(10106)
Dim sTitle As String = EgtMsg(10101)
If MessageBox.Show(sText, sTitle, MessageBoxButton.OKCancel, MessageBoxImage.Error) = MessageBoxResult.OK Then
' Apro dialogo per richiesta file licenza
@@ -292,10 +294,12 @@ Public Class MySceneHostVM
If String.IsNullOrWhiteSpace(sCurrFile) Or EgtGetFileType(sCurrFile) <> FT.NGE Then
bOk = SaveAsProject()
Else
Dim bDeleteNgeFile As Boolean = Path.GetExtension(sCurrFile) = ".nge"
Dim bDeleteNgeFile As Boolean = ( Path.GetExtension(sCurrFile) = ".nge")
EgtSetCurrFilePath(Path.ChangeExtension(sCurrFile, "icrs"))
' Formato di salvataggio
Dim nSaveType As NGE = DirectCast( GetMainPrivateProfileInt(S_GEOMDB, K_SAVETYPE, NGE.CMPTEXT), NGE)
' Salvataggio standard
bOk = MainController.SaveProject()
bOk = MainController.SaveProject(nSaveType)
If bOk AndAlso bDeleteNgeFile AndAlso File.Exists(sCurrFile) Then
Try
File.Delete(sCurrFile)
@@ -328,8 +332,10 @@ Public Class MySceneHostVM
If SaveFileDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim sFileName As String = SaveFileDialog.FileName
EgtSetCurrFilePath(sFileName)
' Formato di salvataggio
Dim nSaveType As NGE = DirectCast( GetMainPrivateProfileInt(S_GEOMDB, K_SAVETYPE, NGE.CMPTEXT), NGE)
' Salvataggio standard
bOk = MainController.SaveProject()
bOk = MainController.SaveProject(nSaveType)
End If
m_bIsSaveAs = False
' Imposto stato gestione mouse diretto della scena a nessuno
@@ -353,6 +359,7 @@ Public Class MySceneHostVM
"|Iges files (*.igs;*.iges)|*.igs;*.iges" &
"|Step files (*.stp;*.step)|*.stp;*.step" &
"|3D Manufacturing format (*.3mf)|*.3mf" &
"|Rhino format (*.3dm)|*.3dm" &
"|New geometry EgalTech(*.nge)|*.nge" &
"|Imported Files (*.*)|*.stl;*.igs;*.iges;*.stp;*.step;*.3mf;*.nge" &
"|All Files (*.*)|*.*",
@@ -416,10 +423,11 @@ Public Class MySceneHostVM
"|Iges files (*.igs;*.iges)|*.igs;*.iges" &
"|Step files (*.stp;*.step)|*.stp;*.step" &
"|3D Manufacturing format (*.3mf)|*.3mf" &
"|Rhino format (*.3dm)|*.3dm" &
"|New geometry EgalTech(*.nge)|*.nge" &
"|Imported Files (*.*)|*.stl;*.igs;*.iges;*.stp;*.step;*.3mf;*.nge" &
"|All Files (*.*)|*.*",
.FilterIndex = 6,
.FilterIndex = 7,
.InitialDirectory = sDir}
If Not OpenFileDialog.ShowDialog Then
Return False
@@ -494,10 +502,11 @@ Public Class MySceneHostVM
"|Iges files (*.igs;*.iges)|*.igs;*.iges" &
"|Step files (*.stp;*.step)|*.stp;*.step" &
"|3D Manufacturing format (*.3mf)|*.3mf" &
"|Rhino format (*.3dm)|*.3dm" &
"|New geometry EgalTech(*.nge)|*.nge" &
"|Imported Files (*.*)|*.stl;*.igs;*.iges;*.stp;*.step;*.3mf;*.nge" &
"|All Files (*.*)|*.*",
.FilterIndex = 6,
.FilterIndex = 7,
.InitialDirectory = sDir}
If Not OpenFileDialog.ShowDialog Then
Return False
@@ -556,10 +565,11 @@ Public Class MySceneHostVM
"|Iges files (*.igs;*.iges)|*.igs;*.iges" &
"|Step files (*.stp;*.step)|*.stp;*.step" &
"|3D Manufacturing format (*.3mf)|*.3mf" &
"|Rhino format (*.3dm)|*.3dm" &
"|New geometry EgalTech(*.nge)|*.nge" &
"|Imported Files (*.*)|*.stl;*.igs;*.iges;*.stp;*.step;*.3mf;*.nge" &
"|All Files (*.*)|*.*",
.FilterIndex = 6,
.FilterIndex = 7,
.InitialDirectory = sDir}
If Not OpenFileDialog.ShowDialog Then
Return False
@@ -634,10 +644,11 @@ Public Class MySceneHostVM
"|Iges files (*.igs;*.iges)|*.igs;*.iges" &
"|Step files (*.stp;*.step)|*.stp;*.step" &
"|3D Manufacturing format (*.3mf)|*.3mf" &
"|Rhino format (*.3dm)|*.3dm" &
"|New geometry EgalTech(*.nge)|*.nge" &
"|Imported Files (*.*)|*.stl;*.igs;*.iges;*.stp;*.step;*.3mf;*.nge" &
"|All Files (*.*)|*.*",
.FilterIndex = 6,
.FilterIndex = 7,
.InitialDirectory = sDir}
If Not OpenFileDialog.ShowDialog Then
Return False
@@ -1141,6 +1152,10 @@ Public Class MySceneHostVM
"Please select another material!", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning)
End If
End If
' aggiorno punto di vista e griglia
EgtSetView( CurrentMachine.nStandardView, False)
EgtSetGridGeoAdv( -1, -1, -1, 0, CurrentMachine.b3Tab.DimX(), 0, CurrentMachine.b3Tab.DimY())
EgtZoom(ZM.ALL, False)
' leggo pezzi
Map.refTopPanelVM.PartList.Clear()
Dim bProjectToRecalc As Boolean = False
@@ -1199,7 +1214,7 @@ Public Class MySceneHostVM
' imposto modalita' modifica
Map.refTopPanelVM.SelPage = Pages.MODIFY
EgtZoom(ZM.ALL)
EgtDraw()
MainScene.SetStatusNull()
End Sub
@@ -1229,6 +1244,8 @@ Public Class MySceneHostVM
If nType = FT.OBJ Or nType = FT.IGES Or nType = FT.STEP_ Or nType = FT.ACIS Or
nType = FT.PARASOLID Or nType = FT.JT Or nType = FT.VRML Or nType = FT.C3D Then
nFlag = GetMainPrivateProfileInt(S_IMPORT, K_ADVFLAG, 0)
Dim dToler As Double = GetMainPrivateProfileDouble(S_IMPORT, K_ADVTOLER, 0.1)
MainController.SetAdvImpTolerance( dToler)
Else
nFlag = 0
End If
@@ -37,7 +37,7 @@ Public Class SecondaryWindowV
End Sub
Private Sub SecondaryWindowV_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs)
If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt OrElse Keyboard.IsKeyDown(Key.F4) Then
If (Keyboard.Modifiers And ModifierKeys.Alt) = ModifierKeys.Alt AndAlso Keyboard.IsKeyDown(Key.F4) Then
e.Cancel = True
Return
End If
+1 -1
View File
@@ -97,7 +97,7 @@ Public Class SecondaryWindowVM
' imposto SnapPoint
Map.refMyStatusBarVM.SetSnapPointType(Map.refSceneHostVM.SnapType)
Map.refMyStatusBarVM.SetMeasureUnit(EgtUiUnitsAreMM)
EgtSetView(VT.ISO_SW, False)
EgtSetView(CurrentMachine.nStandardView, False)
' provo a caricare progetto da linea di comando
If Not ProcessCommandLine() Then
' altrimenti creo nuovo progetto di partenza
@@ -135,13 +135,13 @@ Public Class ShellNumberNumericMachiningParam
Public Overrides Property sValue As String
Get
Return If(m_bIsLen, LenToString(m_dValue, 1), m_dValue)
Return If(m_bIsLen, LenToString(m_dValue, 2), DoubleToString(m_dValue, 2))
End Get
Set(value As String)
If m_bIsLen Then
StringToLen(value, m_dValue)
Else
m_dValue = value
StringToDouble(value, m_dValue)
End If
NotifyPropertyChanged(NameOf(sValue))
NotifyPropertyChanged(NameOf(bIsModifiedFromPart))
+38 -31
View File
@@ -1,33 +1,40 @@
<UniformGrid x:Class="ShowPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Icarus"
Rows="1">
<local:CheckedImageRadioButton ToolTip="{Binding RenderingWFToolTip}"
IsChecked="{Binding WireframeIsChecked}"
ImageSource="/Resources/ShowPanel/RenderingWF.png"
CheckedImageSource="/Resources/ShowPanel/RenderingWF_White.png"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}"/>
<local:CheckedImageRadioButton ToolTip="{Binding RenderingHLToolTip}"
IsChecked="{Binding HiddenLineIsChecked}"
ImageSource="/Resources/ShowPanel/RenderingHL.png"
CheckedImageSource="/Resources/ShowPanel/RenderingHL_White.png"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}"/>
<local:CheckedImageRadioButton ToolTip="{Binding RenderingSHToolTip}"
IsChecked="{Binding ShadingIsChecked}"
ImageSource="/Resources/ShowPanel/RenderingSH.png"
CheckedImageSource="/Resources/ShowPanel/RenderingSH_White.png"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}"/>
<local:CheckedImageToggleButton ToolTip="{Binding CurveDirToolTip}"
IsChecked="{Binding CurveDirIsChecked}"
ImageSource="/Resources/ShowPanel/CurveDir.png"
CheckedImageSource="/Resources/ShowPanel/CurveDir_White.png"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}"/>
<Border x:Class="ShowPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Icarus"
Background="{DynamicResource EgaltechWhite}"
CornerRadius="4,0,0,0"
Padding="10,0,0,0">
<UniformGrid Rows="1">
<local:CheckedImageRadioButton ToolTip="{Binding RenderingWFToolTip}"
IsChecked="{Binding WireframeIsChecked}"
ImageSource="/Resources/ShowPanel/RenderingWF.png"
CheckedImageSource="/Resources/ShowPanel/RenderingWF_White.png"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}"/>
<local:CheckedImageRadioButton ToolTip="{Binding RenderingHLToolTip}"
IsChecked="{Binding HiddenLineIsChecked}"
ImageSource="/Resources/ShowPanel/RenderingHL.png"
CheckedImageSource="/Resources/ShowPanel/RenderingHL_White.png"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}"/>
<local:CheckedImageRadioButton ToolTip="{Binding RenderingSHToolTip}"
IsChecked="{Binding ShadingIsChecked}"
ImageSource="/Resources/ShowPanel/RenderingSH.png"
CheckedImageSource="/Resources/ShowPanel/RenderingSH_White.png"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}"/>
<local:CheckedImageToggleButton ToolTip="{Binding CurveDirToolTip}"
IsChecked="{Binding CurveDirIsChecked}"
ImageSource="/Resources/ShowPanel/CurveDir.png"
CheckedImageSource="/Resources/ShowPanel/CurveDir_White.png"
Margin="2.5,0,2.5,0"
Style="{StaticResource BottomPanel_ToggleButton}"/>
</UniformGrid>
</UniformGrid>
</Border>
+65 -10
View File
@@ -21,6 +21,10 @@ Public Class MySimulation
End Set
End Property
Private m_bStopOnNextCollision As Boolean = True
Friend m_bSimulEndExitApp As Boolean = False
#End Region ' FIELDS & PROPERTIES
#Region "Messages"
@@ -38,9 +42,9 @@ Public Class MySimulation
Sub New()
SetPlayImagePath("/Resources/SimulationPanel/Play.png")
SetPauseImagePath("/Resources/SimulationPanel/Pause.png")
SetPauseMsg(EgtMsg(90561)) ' Pausa
SetStopMsg(EgtMsg(90562)) ' Simulazione interrotta
SetHomeMsg(EgtMsg(90564)) ' Home
SetPauseMsg(EgtMsg(5311)) ' Pausa
SetStopMsg(EgtMsg(5312)) ' Stop
SetHomeMsg(EgtMsg(5314)) ' Home
End Sub
#End Region ' CONSTRUCTOR
@@ -48,8 +52,10 @@ Public Class MySimulation
#Region "METHODS"
Public Overrides Sub ExecSim()
SetSimExecuting(True)
EgtSimStart(False)
EgtSimSetStep(SliderValue * GetSliderX())
m_bStopOnNextCollision = True
Dim nShowDataCounter As Integer = 0
While GetStatus() <> MCH_SIM_ST.UI_STOP
' Se simulazione in svolgimento
@@ -62,11 +68,25 @@ Public Class MySimulation
If GetStatus() = MCH_SIM_ST.UI_STEP And nMove = MCH_SIM.END_STEP Then
' Imposto stato Pausa
SetSimulationStatus(MCH_SIM_ST.UI_PAUSE)
StatusMsg = EgtMsg(MSG_SIMULATIONPAGEUC + 11) ' Pausa
StatusMsg = EgtMsg(5311) ' Pausa
' Aggiornamenti per bottone Play/Pause
SetShowPlay(True)
NotifyPropertyChanged("PlayPauseImage")
End If
' Se movimento con collisione
ElseIf nMove = MCH_SIM.COLLISION Then
If m_bStopOnNextCollision Then
' Imposto stato Pausa
SetSimulationStatus(MCH_SIM_ST.UI_PAUSE)
StatusMsg = EgtMsg(5311) ' PAUSA
' Aggiornamenti per bottone Play/Pause
SetShowPlay(True)
NotifyPropertyChanged("PlayPauseImage")
' Messaggio
MessageBox.Show(EgtMsg(5319), EgtMsg(5315), MessageBoxButton.OK, MessageBoxImage.Warning)
Else
m_bStopOnNextCollision = True
End If
' Se movimento non riuscito
Else
SetSimulationStatus(MCH_SIM_ST.UI_STOP)
@@ -76,17 +96,26 @@ Public Class MySimulation
' Eventuale messaggio
Select Case nMove
Case MCH_SIM.END_
StatusMsg = EgtMsg(MSG_SIMULATIONPAGEUC + 1) 'Simulazione completata
StatusMsg = EgtMsg(5301) 'Simulazione completata
Case MCH_SIM.STOP_
' Simulazione fermata dall'utente (non necessita messaggio)
Case MCH_SIM.OUTSTROKE
Dim sInfo As String = String.Empty
EgtGetOutstrokeInfo(sInfo)
MessageBox.Show(EgtMsg(MSG_SIMULATIONPAGEUC + 2) & " " & sInfo, EgtMsg(MSG_SIMULATIONPAGEUC + 5), MessageBoxButton.OK, MessageBoxImage.Stop) 'Extracorsa ...
'Extracorsa ...
MessageBox.Show(EgtMsg(5302) & " " & sInfo, EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Stop)
Case MCH_SIM.DIR_ERR
MessageBox.Show(EgtMsg(MSG_SIMULATIONPAGEUC + 3), EgtMsg(MSG_SIMULATIONPAGEUC + 5), MessageBoxButton.OK, MessageBoxImage.Stop) 'Direzione utensile irraggiungibile
'Direzione utensile irraggiungibile
MessageBox.Show(EgtMsg(5303), EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Stop)
Case Else
MessageBox.Show(EgtMsg(MSG_SIMULATIONPAGEUC + 4), EgtMsg(MSG_SIMULATIONPAGEUC + 5), MessageBoxButton.OK, MessageBoxImage.Stop) 'Errore
If EgtGetLastMachMgrErrorId() <> 0 Then
Dim sErr As String = EgtGetLastMachMgrErrorString()
'..... - Errore
MessageBox.Show(sErr, EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Exclamation)
Else
'Errore - Errore
MessageBox.Show(EgtMsg(5304), EgtMsg(5305), MessageBoxButton.OK, MessageBoxImage.Stop)
End If
End Select
End If
' Aggiorno stato visualizzazione macchina (dipende anche da utensile)
@@ -94,14 +123,25 @@ Public Class MySimulation
' Aggiorno visualizzazione
EgtDraw()
' Aggiorno dati CNC
ShowCncData()
If nShowDataCounter = 5 Or GetSimulationStatus() = MCH_SIM_ST.UI_PAUSE Or GetSimulationStatus() = MCH_SIM_ST.UI_STOP Then
ShowCncData()
nShowDataCounter = 0
ElseIf nShowDataCounter > 5 Then
nShowDataCounter = 0
Else
nShowDataCounter += 1
End If
Else
' Per evitare di ciclare rapidissimamente e consumare inutilmente CPU
System.Threading.Thread.Sleep(1)
System.Threading.Thread.Sleep(5)
End If
' Costringo ad aggiornare UI
UpdateUI()
End While
SetSimExecuting(False)
If m_bSimulEndExitApp Then
refMainWindowVM.CloseApplication( Nothing)
End If
End Sub
Public Overrides Sub OnPostSetSimulationStatus(value As MCH_SIM_ST)
@@ -126,6 +166,21 @@ Public Class MySimulation
End If
End Sub
Public Sub Update_CncData( nFlag As Integer)
ShowCncData()
' Se fermo per Collisione rilevata da script Lua o per altra richiesta
If nFlag = 11 Or nFlag = 12 Then
' Imposto stato Pausa
SetSimulationStatus(MCH_SIM_ST.UI_PAUSE)
StatusMsg = EgtMsg(5311) ' PAUSA
' Aggiornamenti per bottone Play/Pause
SetShowPlay(True)
NotifyPropertyChanged("PlayPauseImage")
' Se fermo per Collisione, dichiaro di non arrestarsi alla successiva notifica di collisione
If nFlag = 11 Then m_bStopOnNextCollision = False
End If
End Sub
#End Region ' METHODS
End Class
+5 -1
View File
@@ -88,7 +88,7 @@ Public Class SimulationPanelVM
UpdateUI()
'Cambio la vista della scena
EgtGetGenericView(m_dPrevAngVertDegView, m_dPrevAngHorizDegView)
EgtSetView(VT.ISO_SW, False)
EgtSetView(CurrentMachine.nStandardView, False)
EgtSetMachineLook(MySimul.GetMachLook())
' Nascondo griglia
EgtSetGridShow(False, False)
@@ -201,6 +201,10 @@ Public Class SimulationPanelVM
Map.refInstrumentPanelVM.SetEdgeAnalysisIsEnabled(True)
End Sub
Friend Sub SimulationExpander_Update_CncData( nFlag As Integer)
MySimul.Update_CncData(nFlag)
End Sub
#End Region ' METHODS
#Region "COMMANDS"
+1 -1
View File
@@ -870,7 +870,7 @@ Public Class SliceManagerVM
Dim nCurrAngVertDeg As Integer = 0
Dim nCurrAngHorizDeg As Integer = 0
EgtGetGenericView(nCurrAngVertDeg, nCurrAngHorizDeg)
EgtSetView(VT.ISO_SW, False)
EgtSetView(CurrentMachine.nStandardView, False)
SetTableVisibility(False)
EgtZoom(ZM.ALL, False)
'EgtExportSvg(GDB_ID.ROOT, sPreviewImagePath)
+12 -1
View File
@@ -165,10 +165,21 @@ Public Class MyStatusBarVM
Friend Function ProcessEvents(ByVal nProg As Integer, ByVal nPause As Integer) As Integer
' Se previsto, imposto progress
If nProg > 0 Then SetLoadingProgress(Math.Min(nProg, 100))
' Se simulazione attiva, notifico aggiornamento dati
If Not IsNothing( Map.refSimulationPanelVM) Then
' Uso i valori negativi del primo parametro come flag per la Simulazione
Dim nFlag As Integer = If( nProg < 0, -nProg, 0)
Map.refSimulationPanelVM.SimulationExpander_Update_CncData( nFlag)
End If
' Costringo ad aggiornare
UpdateUI()
' Eventuale attesa
Thread.Sleep(nPause)
If nPause >= 0 Then
Thread.Sleep(nPause)
' se altrimenti richiesto aggiornamento visualizzazione
ElseIf nPause = -1
EgtDraw()
End If
' Ritorno eventuale stop
If m_bStopProgress Then
m_bStopProgress = False
+43
View File
@@ -87,6 +87,14 @@ Public Module CurrentMachine
End Get
End Property
' direzione di vista standard
Private m_nStandardView As VT = VT.ISO_SW
Public ReadOnly Property nStandardView As VT
Get
Return m_nStandardView
End Get
End Property
#Region "Init"
Sub InitCurrentMachine(sMachinesRootDir As String, sMachineName As String)
@@ -107,6 +115,21 @@ Public Module CurrentMachine
m_sMaterialFilePath = sMachinesRootDir & "\" & sMachineName & "\Materials\Materials.ini"
' leggo altezza massima estrusione impostata su macchina
m_dSlicingMaxHeight = GetPrivateProfileDouble(S_MACH_PRINTING3D, K_MAX_HEIGHT, 900, m_sMachIniFile)
' leggo direzione di vista standard
Dim sView As String = ""
GetPrivateProfileString( S_GENERAL, K_GEN_STD_VIEW, "", sView, m_sMachIniFile)
Select sView
Case "SW"
m_nStandardView = VT.ISO_SW
Case "SE"
m_nStandardView = VT.ISO_SE
Case "NE"
m_nStandardView = VT.ISO_NE
Case "NW"
m_nStandardView = VT.ISO_NW
Case Else
m_nStandardView = VT.ISO_SW
End Select
' Disabilito segnalazione modificato
Dim DisableMgr As New DisableModifiedMgr
' recupero box macchina
@@ -196,6 +219,8 @@ Public Module CurrentMachine
sExtrusionType = S_45DEGY
Case Machining.MPAR_SLICINGTYPE.HORIZONTAL
sExtrusionType = S_HORIZONTAL
Case Machining.MPAR_SLICINGTYPE.MULTIPLANAR, Machining.MPAR_SLICINGTYPE.MULTIPLANAR_DEG45, Machining.MPAR_SLICINGTYPE.MULTIPLANAR_HORIZ
sExtrusionType = S_MULTIPLANAR
End Select
Dim dExtrXMax = GetPrivateProfileDouble(sExtrusionType, K_MAXX, 0, m_sMachDataIniFile)
Dim dExtrXMin = GetPrivateProfileDouble(sExtrusionType, K_MINX, 0, m_sMachDataIniFile)
@@ -289,6 +314,24 @@ Public Module CurrentMachine
Return WritePrivateProfileString(lpAppName, lpKeyName, EgwCrypto.PowerEncryptString(lpString, m_Salt), If(Not String.IsNullOrWhiteSpace(sFilePath), sFilePath, m_sMaterialFilePath))
End Function
Friend Function GetSlicingType() As Integer
Dim nNewSlicingType As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_NEWSLICINGTYPE, 0, sMachIniFile)
If nNewSlicingType = 0 Then
Dim nSlicingType As Integer = GetPrivateProfileInt(S_MACH_PRINTING3D, K_SLICINGTYPE, 0, sMachIniFile)
nNewSlicingType = 1
If nSlicingType = 1 Then
nNewSlicingType = 3
ElseIf nSlicingType = 2 Then
nNewSlicingType = 7
ElseIf nSlicingType = 3 Then
nNewSlicingType = 15
ElseIf nSlicingType = 4 Then
nNewSlicingType = 21
End If
End If
Return nNewSlicingType
End Function
#End Region 'Methods
End Module
+1 -1
View File
@@ -1,7 +1,7 @@
<UniformGrid x:Class="ViewPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Rows="1">
Rows="1" Background="{DynamicResource EgaltechWhite}">
<Button ToolTip="{Binding ZoomAllToolTip}"
Command="{Binding ZoomAllCommand}"