Compare commits

..

17 Commits

Author SHA1 Message Date
Nicola Pievani 9e07561399 Gestione scrittura nome configurazione nel fil DDF 2025-04-07 11:34:10 +02:00
Nicola Pievani 42ba2f7015 Correzione salvataggio info Order 2025-03-24 10:16:04 +01:00
Nicola Pievani 2ed0c9e337 Aggiunto SpecialPanel per eseguire script lua 2025-03-12 11:48:57 +01:00
Dario Sassi 382719af6b EgtDOORCreator :
- migliorata gestione Debug
- corretta gestione UserLevel
- ora possibilità di Configurazione interattiva dipende da UserLevel > 4
- sistemato script ChangeConfig.lua
- riabilitato lancio CAM5 con generazione lavorazioni (basta premere Shift).
2025-03-09 23:19:47 +01:00
Dario Sassi 25b205f21d EgtDOORCreator 2.7c2 :
- sistemazioni ad AboutBox
- correzioni lettura Mtables
- sistemazione grafica Launcher.
2025-03-09 11:52:01 +01:00
Nicola Pievani 47487bfe2f Correzione gestione scena con misura attiva 2025-03-03 20:34:59 +01:00
Nicola Pievani 1a6a4ff228 Aggiornamento versione 2.7c1 2025-03-03 12:51:16 +01:00
Demetrio Cassarino aeba705637 -cambiato colore su toggle 2025-03-03 12:39:45 +01:00
Nicola Pievani 70737f3ad1 Aggiornamento versione 2025-02-06 09:20:42 +01:00
Nicola Pievani 28ac231cba Correzione caricamento istanze classi all'avvio 2025-01-30 12:04:23 +01:00
Nicola Pievani 201792b9cc Migliorata gestione avvio programma in cieco 2025-01-27 12:02:39 +01:00
Nicola Pievani f7ccde68f4 Correzione salvataggio Porta singola 2024-12-20 17:12:58 +01:00
Nicola Pievani d9f56bccf3 Lettura modalità di salvataggio da INI 2024-12-18 16:17:50 +01:00
Nicola Pievani 328d333e16 Migliorata gestione Assemblato e porta singola 2024-12-18 15:15:32 +01:00
Nicola Pievani 306798a7d5 Merge commit '52461712a85184583d4fdaa5caf68a73d2fd5664' 2024-12-09 15:32:49 +01:00
Nicola Pievani d4d4e3a9d7 Merge branch 'master' of https://gitlab.steamware.net/egaltech/EgtDOORCreator 2024-12-09 15:30:38 +01:00
Nicola Pievani 4525c6d780 Selezione anta in HardwareManager 2024-12-09 15:30:30 +01:00
33 changed files with 599 additions and 287 deletions
+7 -10
View File
@@ -1,7 +1,7 @@
<Window x:Class="AboutBoxV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="AboutBox" Height="320" Width="300" WindowStyle="None" ResizeMode="NoResize"
Title="AboutBox" Height="400" Width="360" WindowStyle="None" ResizeMode="NoResize"
ShowInTaskbar="False" WindowStartupLocation="CenterOwner">
<Border BorderThickness="2" BorderBrush="LightBlue">
@@ -18,11 +18,10 @@
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="2.5*"/>
<RowDefinition Height="0.35*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.35*"/>
</Grid.RowDefinitions>
<Grid Grid.Column="1" Grid.Row="1">
@@ -39,13 +38,11 @@
VerticalAlignment="Center" FontSize="18" />
<TextBlock Name="VersionLbl" Grid.Column="1" Grid.Row="4" HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="18"/>
<TextBlock Name="KeyLbl" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="18"/>
<TextBlock Name="CopyrightLbl" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Center"
<TextBlock Name="CopyrightLbl" Grid.Column="1" Grid.Row="5" HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="12" />
<TextBox Name="InfoLbl" Grid.Column="1" Grid.Row="7" HorizontalAlignment="Stretch"
<TextBox Name="InfoLbl" Grid.Column="1" Grid.Row="6" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" FontSize="12" IsReadOnly="true" TextWrapping="Wrap"/>
<Button Name="ExitBtn" Grid.Column="1" Grid.Row="9" IsCancel="True"
<Button Name="ExitBtn" Grid.Column="1" Grid.Row="8" IsCancel="True"
Margin="1,0"/>
</Grid>
+23 -4
View File
@@ -9,17 +9,36 @@ Public Class AboutBoxV
"." & My.Application.Info.Version.Minor.ToString() &
(ChrW(97 - 1 + My.Application.Info.Version.Build)).ToString() &
My.Application.Info.Version.Revision.ToString()
CopyrightLbl.Text = My.Application.Info.Copyright.ToString()
Dim sInfo As String = String.Empty
Dim sKey As String = String.Empty
EgtGetKeyInfo(sKey)
Dim sKlev As String = IniFile.m_nKeyLevel.ToString()
Dim sOpts As String = IniFile.m_nKeyOptions.ToString()
KeyLbl.Text = sKey & " - " & sKlev & " - " & sOpts
CopyrightLbl.Text = My.Application.Info.Copyright.ToString()
Dim sInfo As String = If( EgtIsDebug(), "*** Debug Libraries ***" & vbCrLf, "")
Dim sLeftDays As String = ""
Dim nLeftDays As Integer
if EgtGetKeyLeftDays( nLeftDays) AndAlso nLeftDays < 500 Then sLeftDays= " (" & nLeftDays.ToString() & ")"
Dim sAssStatus As String = " discontinued"
Dim nAssLeftDays As Integer
If EgtGetKeyAssLeftDays( nAssLeftDays) And nAssLeftDays >= 0 Then
If nAssLeftDays > 30 then
sAssStatus = "expires within " & nAssLeftDays.ToString() & " days"
Else If nAssLeftDays > 0 then
sAssStatus = "to be renewed within " & nAssLeftDays.ToString() & " days"
Else
sAssStatus = "to be renewed by today"
End If
End If
sInfo = If( EgtIsDebug(), "*** Debug Libraries ***" & vbCrLf, "")
sInfo &= "User " & Environment.MachineName & "\" & Environment.UserName &
" Inst" & Map.refMainWindowVM.Instance().ToString() &
" Ulv" & IniFile.m_nUserLevel.ToString() & " Dbg" & IniFile.m_nDebug.ToString() & vbCrLf
sInfo &= sKey & " - " & sKlev & " - " & sOpts & vbCrLf
sInfo &= "SupportPlane " & sAssStatus & vbCrLf
sInfo &= "DataRoot " & IniFile.m_sDataRoot & vbCrLf
sInfo &= "Doors " & IniFile.m_sDoorsDirPath & vbCrLf
If OptionModule.m_MaterialList.Count = 1 Then
sInfo &= "Material " & OptionModule.m_MaterialList(0).Name
sInfo &= "Material " & OptionModule.m_MaterialList(0).Name & vbCrLf
End If
Dim sOpSys As String = String.Empty
EgtGetOsInfo( sOpSys)
+24 -5
View File
@@ -1045,7 +1045,15 @@ Public Class Assembly
End Enum
' carico il valore finale restituito dalla lettura dell'assembalto (di default errore)
Public bOk As ResultReadingAssembInfo = ResultReadingAssembInfo.ErrorInAssembInfo
Private m_bOk As ResultReadingAssembInfo = ResultReadingAssembInfo.ErrorInAssembInfo
Public Property bOk As ResultReadingAssembInfo
Get
Return m_bOk
End Get
Set(value As ResultReadingAssembInfo)
m_bOk = value
End Set
End Property
' vettore di righe del file ddf in lettura
Private FileContent() As String
@@ -1497,7 +1505,13 @@ Public Class Assembly
sDoorPiece = sDoorPiece.Remove(sDoorPiece.LastIndexOf("_"c) + 1)
End If
Map.refCompoPanelVM.GoBackVisibility = Visibility.Visible
Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nAssemblyPage
' verifico che la lettura dell'assemblato sia andato a buon fine
If Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.SelAssembly.bOk = Assembly.ResultReadingAssembInfo.MissingAssembInfo Then
' forzo l'apertura della pagina DOOR
Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nDDFPage
Else
Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nAssemblyPage
End If
Else
' significa che stiamo per leggere una porta singola, cerco una porta
If Not Local_Door.TypePart.Contains("DO_") Then
@@ -1726,7 +1740,7 @@ Public Class Assembly
' controllo degli oggetti caricati nell'assemblato
Private Function ControlAssemblyInformation() As Boolean
Dim ErrorMessages As String = String.Empty
Select Case bOk
Select Case m_bOk
Case ResultReadingAssembInfo.CorrectAssembInfo
If OptionModule.m_ConfigurationSoftware = ConfigType.Door Then
' 50520=The current ddf is an assembly
@@ -1780,9 +1794,9 @@ Public Class Assembly
Public Function ControlAssembly(Optional ByVal bSaving As Boolean = False) As String
' se è una porta singola oppure le info generali non sono state caricate correttamente non controllo l'assemblato
If bSaving Then
If bOk <> ResultReadingAssembInfo.MissingAssembInfo Then Return String.Empty
If m_bOk <> ResultReadingAssembInfo.MissingAssembInfo Then Return String.Empty
Else
If bOk = ResultReadingAssembInfo.ErrorInAssembInfo OrElse bOk = ResultReadingAssembInfo.MissingAssembInfo Then Return String.Empty
If m_bOk = ResultReadingAssembInfo.ErrorInAssembInfo OrElse m_bOk = ResultReadingAssembInfo.MissingAssembInfo Then Return String.Empty
End If
Dim WritingError As String = String.Empty
Dim DoorTypeList As String = String.Empty
@@ -2498,6 +2512,7 @@ Public Class Assembly
Map.refSceneManagerVM.RefreshBtn()
Case "Height"
If m_bOk <> ResultReadingAssembInfo.CorrectAssembInfo Then Return
HeightJamb()
HeightDoor()
TopRabbetJamb()
@@ -2507,6 +2522,7 @@ Public Class Assembly
UpDateAllCompo()
Case "Width"
If m_bOk <> ResultReadingAssembInfo.CorrectAssembInfo Then Return
TopBottomWidth()
TopRabbetJamb()
BottomRabbetJamb()
@@ -2515,10 +2531,12 @@ Public Class Assembly
UpDateAllCompo()
Case "Thickness"
If m_bOk <> ResultReadingAssembInfo.CorrectAssembInfo Then Return
TopRabbetJamb()
UpDateAllCompo()
Case "Swing"
If m_bOk <> ResultReadingAssembInfo.CorrectAssembInfo Then Return
UpDateCompolistOnJamb()
SwingJamb()
SetPartDoorCurrAssembly()
@@ -2526,6 +2544,7 @@ Public Class Assembly
'UpDateAllCompo()
Case "DoorNumber"
If m_bOk <> ResultReadingAssembInfo.CorrectAssembInfo Then Return
ClearRefOnAssembly()
SetPartDoorCurrAssembly()
ReverseDoor()
+56 -12
View File
@@ -131,32 +131,65 @@ Public Class AssemblyManagerVM
' 50540 = The current ddf is a part of a frame, do you want to save?
If MessageBox.Show(EgtMsg(50540), EgtMsg(50144), MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No) = MessageBoxResult.Yes Then
DdfFile.SaveErrorCompo = True
DdfFile.WriteDDFPart(SavedAssName.SelAssembly.ListPartDoor(0).Door, SavedAssName.Name, True, False)
Dim _IsDDF As Boolean = IsCurrentFileDDF(SavedAssName.Name)
DdfFile.WriteDDFPart(SavedAssName.SelAssembly.ListPartDoor(0).Door, SavedAssName.Name, _IsDDF, False)
DdfFile.SaveErrorCompo = False
Else
Return False
End If
Else
DdfFile.SaveErrorCompo = True
DdfFile.WriteDDFPart(SavedAssName.SelAssembly.ListPartDoor(0).Door, SavedAssName.Name, True, False)
Dim _IsDDF As Boolean = IsCurrentFileDDF(SavedAssName.Name)
DdfFile.WriteDDFPart(SavedAssName.SelAssembly.ListPartDoor(0).Door, SavedAssName.Name, _IsDDF, False)
DdfFile.SaveErrorCompo = False
End If
Else
' se il ddf che sto leggendo è composto dal al massimo due parti significa che c'è un errore
' Se il ddf che sto leggendo è composto dal al massimo due parti significa che c'è un errore
If SavedAssName.SelAssembly.bOk = Assembly.ResultReadingAssembInfo.CorrectAssembInfo AndAlso
SavedAssName.SelAssembly.ListPartDoor.Count < 3 Then
' se sto salvando meno di tre componenti significa che mancano qualche pezzo per essere un assemblato
' Se sto salvando meno di tre componenti significa che mancano qualche pezzo per essere un assemblato
SavedAssName.SelAssembly.bOk = Assembly.ResultReadingAssembInfo.MissingAssembInfo
End If
Dim ErrorMessage As String = SavedAssName.SelAssembly.ControlAssembly(True)
Dim m_MessageBoxResult As MessageBoxResult = MessageBoxResult.Cancel
If Not String.IsNullOrEmpty(ErrorMessage) Then
If Not MessageBox.Show(ErrorMessage, EgtMsg(50144), MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No) = MessageBoxResult.Yes Then
Return False
' Richiedo di scegliere se salvare come porta singola oppure come assemblato (altrimenti annullo il salvataggio)
If GetMainPrivateProfileInt(S_GENERAL, K_SAVEASSINGLEDOOR, 0) <> 0 Then
' 50732=Save as Assembly (YES), Single door (NO).
m_MessageBoxResult = MessageBox.Show(EgtMsg(50732), EgtMsg(50144), MessageBoxButton.YesNoCancel, MessageBoxImage.Warning, MessageBoxResult.No)
If m_MessageBoxResult = MessageBoxResult.Cancel Then
' interrompo il salvataggio
Return False
End If
If m_MessageBoxResult = MessageBoxResult.Yes Then
' Procedo a sovrascrivere il file come ASSEMBALTO
DdfFile.SaveErrorCompo = True
DdfFile.WriteDDFAssembly(SavedAssName.SelAssembly, SavedAssName.Name, True)
DdfFile.SaveErrorCompo = False
ElseIf m_MessageBoxResult = MessageBoxResult.No Then
' Procedo a sovrascrivere il file come SINGLE DOOR
DdfFile.SaveErrorCompo = True
Dim _IsDDF As Boolean = IsCurrentFileDDF(SavedAssName.Name)
DdfFile.WriteDDFPart(SavedAssName.SelAssembly.ListPartDoor(0).Door, SavedAssName.Name, _IsDDF, False)
DdfFile.SaveErrorCompo = False
End If
Else
' Avviso che sto per salvare una porta singola come assemblato (altrimenti annullo il salvataggio)
If Not MessageBox.Show(ErrorMessage, EgtMsg(50144), MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No) = MessageBoxResult.Yes Then
Return False
End If
' Procedo a sovrascrivere il file
DdfFile.SaveErrorCompo = True
DdfFile.WriteDDFAssembly(SavedAssName.SelAssembly, SavedAssName.Name, True)
DdfFile.SaveErrorCompo = False
End If
Else
' Non ci sono errori: procedo a sovrascrivere il file
DdfFile.SaveErrorCompo = True
DdfFile.WriteDDFAssembly(SavedAssName.SelAssembly, SavedAssName.Name, True)
DdfFile.SaveErrorCompo = False
End If
DdfFile.SaveErrorCompo = True
DdfFile.WriteDDFAssembly(SavedAssName.SelAssembly, SavedAssName.Name, True)
DdfFile.SaveErrorCompo = False
End If
' controllo che il salvataggio sia andato a buon fine
@@ -984,8 +1017,10 @@ Public Class AssemblyManagerVM
If OptionModule.AdjustDDT Then
DdfFile.WriteDDFPart(OpenedAssName.SelAssembly.ListPartDoor(0).Door, OptionModule.SaveFileNameFromArgs, True, False)
' TERMINO TUTTO SUBITO
BlindProgLog("Scrittura file '.ddf' terminata")
End
EgtOutLog("Scrittura file '.ddf' terminata")
EgtExit()
Application.Current.Shutdown(0)
Return True
End If
' aggiorno elenco quotature
Map.refDimensioningPanelVM.LoadHardwareDimList()
@@ -1012,7 +1047,16 @@ Public Class AssemblyManagerVM
If Assembly.Refreshing Then EgtZoom(ZM.ALL)
m_CurrProject.SelAssemblyName.SelAssembly.MatchCompo()
m_CurrProject.SelAssemblyName.SelAssembly.UpDateAllOrigValue()
Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nAssemblyPage
' Se mancano le info per generare l'assemblato accedo direttamente alla prima porta
If m_CurrProject.SelAssemblyName.SelAssembly.bOk = Assembly.ResultReadingAssembInfo.MissingAssembInfo Then
If m_CurrProject.SelAssemblyName.SelAssembly.ListPartDoorOfDoor.Count > 0 Then
Map.refAssemblyPageVM.JambBtn(m_CurrProject.SelAssemblyName.SelAssembly.ListPartDoorOfDoor(0).Type)
Else
Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nAssemblyPage
End If
Else
Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nAssemblyPage
End If
End If
' ogni progetto salvato è l'ultimo da aprire, anche se il programma è chiuso dall'HardwareManager
' controllo che esiste almeno un file aperto
+2
View File
@@ -225,6 +225,8 @@ Public Class CompoPanelVM
Map.refAssemblyPageVM.CurrAssembly.CreateCompoOnJamb(NewCompo, "")
End If
Map.refSceneManagerVM.RefreshBtn()
' evidenzio componente
Map.refPartPageVM.CurrPart.MarkCompoInScena()
Else
MessageBox.Show(EgtMsg(50108), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Exclamation)
End If
+3 -1
View File
@@ -36,7 +36,9 @@ Module ConstGen
Public Const CONF_DIR As String = "Config"
' Sottodirettorio delle risorse
Public Const RES_DIR As String = "Resources"
' Sottodirettorio temporaneo
' Sottodirettorio degli scripts lua
Public Const SCRIPT_DIR As String = "Scripts"
' Sottodirettorio temporaneo
Public Const TEMP_DIR As String = "Temp"
' Sottodirettorio di default per il salvataggio con nome
Public Const SAVE_DFL_NAMEDIR As String = "MyProjects"
+4
View File
@@ -42,6 +42,7 @@ Module ConstIni
Public Const K_EGTCAMEXE As String = "EgtCam5Exe"
Public Const K_REFRESHTIME As String = "RefreshTime"
Public Const K_DDFVERSION As String = "DDFVersion"
Public Const K_SAVEASSINGLEDOOR As String = "SaveAsSingleDoor"
Public Const S_LANGUAGES As String = "Languages"
Public Const K_LANGUAGE As String = "Language"
@@ -104,6 +105,9 @@ Module ConstIni
Public Const K_LAUNCHER As String = "Launcher"
Public Const K_LASTPROJECT As String = "LastProject"
Public Const S_SPECIAL As String = "Special"
Public Const K_SPECIALENABLE As String = "SpecialEnable"
'-------------------------------------------------------------------------
Public Const DEFAULT_INI_FILE_NAME As String = "Default.ini"
+2 -1
View File
@@ -63,7 +63,8 @@ Friend Module DdfFile
DdfFileContent.Add("#EGTDOORCREATOR")
Dim Config As String = IniFile.m_sDoorsDirPath
Config = Path.GetFileName(Config)
DdfFileContent.Add("#Config: " & Config)
' versione 2.7d1: non esiste un sottodirettorio di Doors allora non stampo il nome della configurazione
If Config <> "Doors" Then DdfFileContent.Add("#Config: " & Config)
' versione 2.6g1: salvo il nome del template da cui è genetato il file corrente
If Not String.IsNullOrEmpty(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.OrigTemplate) Then
DdfFileContent.Add("#OrigTemplate: " & Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.OrigTemplate)
+3 -3
View File
@@ -121,9 +121,9 @@ Public Class Compo
End Sub
Public Sub SetMark()
m_BorderColor = Brushes.DeepPink
m_BackGroundColor = Brushes.White
m_Foreground = Brushes.Gold
m_BorderColor = DirectCast(New BrushConverter().ConvertFrom("#FF4D84C4"), SolidColorBrush)
m_BackGroundColor = DirectCast(New BrushConverter().ConvertFrom("#FFFFFFFF"), SolidColorBrush)
m_Foreground = DirectCast(New BrushConverter().ConvertFrom("#FF4D84C4"), SolidColorBrush)
m_BorderThickness = 2
m_FontBold = FontWeights.Bold
NotifyPropertyChanged("BorderColor")
+5 -4
View File
@@ -1516,13 +1516,12 @@ Public Class Part
EgtResetMark(nIdLay)
nIdLay = EgtGetNextLayer(nIdLay)
End While
EgtDraw()
For Each ItemCompo As Compo In CompoList
ItemCompo.ResetMark()
Next
End Sub
Private Sub MarkCompoInScena()
Public Sub MarkCompoInScena()
If IsNothing(m_SelCompo) Then Return
If GetMainPrivateProfileInt(S_GENERAL, "MarkCompo", 0) = 0 Then Return
ResetAllMark()
@@ -1873,6 +1872,7 @@ Public Class Part
' Messaggi di errore generici, se la stringa dei messaggi contiene delle informazioni allora visualizzo
If Not String.IsNullOrWhiteSpace(sErrorInfo) Then
Dim sTitle As String = EgtMsg(50101)
If Not IsNothing(ReadDoor) AndAlso Not IsNothing(ReadDoor.TypePart) Then sTitle &= ReadDoor.TypePart.ToString
' 50541 = {0} in reading {1}.
If Not IsNothing(ReadDoor) Then String.Format(EgtMsg(50541), sTitle, ReadDoor.TypePart)
MessageBox.Show(sErrorInfo, sTitle, MessageBoxButton.OK, MessageBoxImage.Error)
@@ -3497,10 +3497,11 @@ Public Class Part
ElseIf nPartDoor > 1 Then
' Assemblati
Dim WdSelPartV As New SelectPartV()
Dim WdSelPartVM As New SelectPartVM("Selezione della porta", "Selezione anta", nPartDoor, 1)
' 50233=Selezione della porta, 50234=Selezione anta
Dim WdSelPartVM As New SelectPartVM(EgtMsg(50233), EgtMsg(50234), nPartDoor, 1)
WdSelPartV.DataContext = WdSelPartVM
WdSelPartV.ShowDialog()
Dim nSelection As Integer = CInt(WdSelPartVM.Selection.Split(" "c)(1)) - 1
Dim nSelection As Integer = WdSelPartVM.nSelectedIndex
' Apro una finestra per chiedere quale anta usare come riferimento
Dim LocalPartDoor As PartDoor = Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.SelAssembly.ListPartDoor(nSelection)
Me.m_Width = LocalPartDoor.Door.m_Width
+8
View File
@@ -227,6 +227,10 @@
<DependentUpon>SelectPartV.xaml</DependentUpon>
</Compile>
<Compile Include="ProjectManager\SelectPartVM.vb" />
<Compile Include="ProjectManager\SpecialPanelV.xaml.vb">
<DependentUpon>SpecialPanelV.xaml</DependentUpon>
</Compile>
<Compile Include="ProjectManager\SpecialPanelVM.vb" />
<Compile Include="RegexFunction.vb" />
<Compile Include="ReportInfo\ReportCompo.vb" />
<Compile Include="SceneManager\DimensioningPanel\DimensioningPanelV.xaml.vb">
@@ -371,6 +375,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProjectManager\SpecialPanelV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="SceneManager\DimensioningPanel\DimensioningPanelV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
+2 -1
View File
@@ -16,6 +16,7 @@
<EgtDOORCreator:AssemblyPageVM x:Key="AssemblyPageVM"/>
<EgtDOORCreator:HardwarePageVM x:Key="HardwarePageVM"/>
<EgtDOORCreator:DimensioningPanelVM x:Key="DimensioningPanelVM"/>
<EgtDOORCreator:SpecialPanelVM x:Key="SpecialPanelVM"/>
<!--Colori predefiniti-->
<SolidColorBrush x:Key="EgaltechBlue1" Color="#FF4D84C4" />
@@ -162,7 +163,7 @@
<SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
<SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>
<SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>
<SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/>
<SolidColorBrush x:Key="Button.Pressed.Background" Color="#FF90CFEE"/>
<SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/>
<SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/>
<SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/>
+23 -1
View File
@@ -13,6 +13,8 @@ Friend Module IniFile
' Livello dell'utilizzatore
Friend m_nUserLevel As Integer = 1
' Livello di debug
Friend m_nDebug As Integer = 0
' Livello della chiave inserita nel PC
Friend m_nKeyLevel As Integer = 0
' Opzioni attive sulla chiave
@@ -58,9 +60,13 @@ Friend Module IniFile
' Path del modello ListLabel
Friend m_sListLabelCurrent As String = String.Empty
' Path dell'eseguibile Cam5
Friend m_sEgtCameEXEPath As String = String.Empty
Friend m_sEgtCam5EXEPath As String = String.Empty
' Path LuaLibs Dir
Friend m_sLuaLibsDir As String = String.Empty
' Path ResourcesRoot
Friend m_sResourcesRoot As String = String.Empty
' Path ScriptsRoot
Friend m_sScriptsRoot As String = String.Empty
' EgtDoorCreator.ini
Public Function GetPrivateProfileLanguage(ByVal lpAppName As String, ByVal lpKeyName As String) As Language
@@ -485,4 +491,20 @@ Friend Module IniFile
Return EgtUILib.WritePrivateProfileString(IpAppName, IpKeyName, IpString, m_sDoorsDirPath & "\MTables\GeometryNameList.ini")
End Function
Public Function GetPrivateProfileButton(sSection As String, sKey As String, sBaseDir As String, ByRef ReadButtonItem As ButtonItem) As Boolean
ReadButtonItem = Nothing
Dim sVal As String = String.Empty
GetMainPrivateProfileString(sSection, sKey, "", sVal)
If String.IsNullOrWhiteSpace(sVal) Then Return False
Dim sItems() As String = sVal.Split(","c)
If sItems.Count() >= 1 Then
Dim sLuaPath As String = sItems(0)
Dim sImagePath As String = If(sItems.Count() >= 2, sItems(1), "")
Dim sToolTip As String = If(sItems.Count() >= 3, sItems(2), "")
ReadButtonItem = New ButtonItem(sLuaPath, sImagePath, sToolTip)
Return True
End If
Return False
End Function
End Module
+3 -3
View File
@@ -18,7 +18,7 @@
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="/Resources/TopCommandBar/Import.png" Stretch="Uniform"
/>
@@ -31,7 +31,7 @@
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="/Resources/TopCommandBar/New.png" Stretch="Uniform"
HorizontalAlignment="Left"/>
@@ -44,7 +44,7 @@
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="/Resources/TopCommandBar/Open.png" Stretch="Uniform"
HorizontalAlignment="Left"/>
+11 -14
View File
@@ -12,12 +12,9 @@ Friend Class MainWindowModel
Private m_objMutex As New Mutex
' Variabile che indica il numero di istanze aperte del programma
Friend m_nInstance As Integer = 0
' Path cartella Data
Friend m_sDataRoot As String = String.Empty
Private m_nDebug As Integer = 0
#End Region
#Region "CONSTRUCTOR"
@@ -33,10 +30,14 @@ Friend Class MainWindowModel
IniFile.m_sConfigDir = m_sDataRoot & "\" & CONF_DIR
' Impostazione direttorio per file temporanei
IniFile.m_sTempDir = m_sDataRoot & "\" & TEMP_DIR
' Impostazione direttorio per risorse programma
IniFile.m_sResourcesRoot = m_sDataRoot & "\" & RES_DIR
' Impostazione direttorio scripts lua
IniFile.m_sScriptsRoot = m_sDataRoot & "\" & SCRIPT_DIR
' Impostazione direttorio Ini file
IniFile.m_sIniFile = IniFile.m_sConfigDir & "\" & INI_FILE_NAME
' Impostazione path Ini file
EgtWPFLib5.IniFile.m_sIniFile = m_sConfigDir & "\" & INI_FILE_NAME
EgtWPFLib5.IniFile.m_sIniFile = IniFile.m_sIniFile
' Impostazione direttorio della cartella Help
IniFile.m_sHelpDir = m_sDataRoot & "\" & HELP_DIR
' Impostazione direttorio della cartella Template
@@ -56,13 +57,11 @@ Friend Class MainWindowModel
Dim sKey As String = String.Empty
EgtUILib.GetPrivateProfileString(S_LICENCE, K_KEY, "", sKey, sLicFile)
EgtSetKey(sKey)
Dim sNestKey As String = ""
EgtUILib.GetPrivateProfileString(S_LICENCE, K_NESTKEY, "", sNestKey, sLicFile)
EgtSetNestKey(sNestKey)
Dim bNetHwKey As Boolean = (GetPrivateProfileInt(S_GENERAL, K_NETKEY, 0, m_sIniFile) = 1)
EgtSetNetHwKey(bNetHwKey)
' Impostazioni per chiave di rete
Dim bNetKey As Boolean = (GetPrivateProfileInt(S_GENERAL, K_NETKEY, 0, m_sIniFile) = 1)
EgtSetNetHwKey(bNetKey)
@@ -71,15 +70,13 @@ Friend Class MainWindowModel
If Not String.IsNullOrEmpty(sLockId) Then
EgtSetLockId(sLockId)
End If
' Verifico abilitazione nesting automatico
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
' Recupero livello e opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(3279, 2612, 1, IniFile.m_nKeyLevel) And
EgtGetKeyOptions(3279, 2612, 1, IniFile.m_nKeyOptions)
Dim bKey As Boolean = EgtGetKeyLevel(3279, 2704, 1, IniFile.m_nKeyLevel) And
EgtGetKeyOptions(3279, 2704, 1, IniFile.m_nKeyOptions)
' Leggo e imposto livello utilizzatore
IniFile.m_nUserLevel = Math.Min(IniFile.m_nKeyLevel, GetMainPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1))
'Inizializzazione generale di EgtInterface
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
IniFile.m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
Dim sLogFile As String = IniFile.m_sTempDir & "\" & GENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
Dim sLogMsg As String = "User " & Environment.UserName & "\" & Environment.MachineName & " (" & m_nInstance.ToString() & ")" & vbLf &
My.Application.Info.Description.ToString() & " ver. " &
@@ -87,7 +84,7 @@ Friend Class MainWindowModel
"." & My.Application.Info.Version.Minor.ToString() &
(ChrW(97 - 1 + My.Application.Info.Version.Build)).ToString() &
My.Application.Info.Version.Revision.ToString()
EgtInit(m_nDebug, sLogFile, sLogMsg)
EgtInit(IniFile.m_nDebug, sLogFile, sLogMsg)
' Carico i messaggi
OptionModule.ReadMessages()
' Carico direttorio doors
+11 -8
View File
@@ -1,4 +1,5 @@
Imports EgtWPFLib5
Imports EgtUILib
Class MainWindowV
@@ -12,6 +13,7 @@ Class MainWindowV
InitializeComponent()
' Per leggere più argomenti devono essere scritti ognuno tra doppi apici e separati da spazio
' Esempio:"Argomento 1 di prova" "Argomento 2 di prova"
EgtOutLog(" 1 Numero argomenti: " & args.Length.ToString)
If args.Length > 0 Then
m_args = args
RunBlindCode()
@@ -32,7 +34,7 @@ Class MainWindowV
Private Sub MainWindowV_Unloaded(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles Me.Closing
' Salvo posizione finestra (se non minimizzata)
If WindowState <> WindowState.Minimized Then
If WindowState <> WindowState.Minimized And Not OptionModule.AdjustDDT Then
WinPosFromWindowToIni(Me, S_GENERAL, K_WINPLACE)
End If
End Sub
@@ -50,33 +52,34 @@ Class MainWindowV
' Lettura degli argomenti e scrittura di un file di Log con i parametri caricati
Private Sub ReadArgs()
If Not IsNothing(m_args) Then
StartBlinProgdLog(IniFile.m_sTempDir & "\BlindProgLog.txt")
' leggo gli argomenti: Il programma si chiude appena termina la scrittura del file DDF
Dim Items() As String = m_args(0).Split(";"c)
EgtOutLog(" Argomenti: " & m_args.ToString)
If Items.Length >= 5 Then
' Avvio progetto - LauncherOpt.Open_last_project (1)
OptionModule.m_bLauncherOpenOnce = True
' Indico il percorso del file
OptionModule.FileNameFromArgs = Items(0)
BlindProgLog(" File '.ddt' input : " & OptionModule.FileNameFromArgs)
EgtOutLog(" File '.ddt' input : " & OptionModule.FileNameFromArgs)
' Assegno i valore Width, Height, Thickness
OptionModule.m_Width = Items(1)
BlindProgLog(" width : " & OptionModule.m_Width)
EgtOutLog(" width : " & OptionModule.m_Width)
OptionModule.m_Height = Items(2)
BlindProgLog(" height : " & OptionModule.m_Height)
EgtOutLog(" height : " & OptionModule.m_Height)
OptionModule.m_Thickness = Items(3)
BlindProgLog(" thickness : " & OptionModule.m_Thickness)
EgtOutLog(" thickness : " & OptionModule.m_Thickness)
' Indico il percoso di salvataggio file DDF
OptionModule.SaveFileNameFromArgs = Items(4)
BlindProgLog(" File '.ddf' output : " & OptionModule.SaveFileNameFromArgs)
EgtOutLog(" File '.ddf' output : " & OptionModule.SaveFileNameFromArgs)
' Nuovo parametro da laggere per gestione Swing
If Items.Length = 6 Then
OptionModule.ForcesSideSwing = Items(5)
BlindProgLog(" swing : " & OptionModule.ForcesSideSwing)
EgtOutLog(" swing : " & OptionModule.ForcesSideSwing)
End If
' abilito lettura dati
OptionModule.AdjustDDT = True
Else
EgtOutLog(" Argomenti non conformi")
' blocco lettura dati
OptionModule.AdjustDDT = False
' TERMINO TUTTO SUBITO!
+24 -15
View File
@@ -9,6 +9,12 @@ Public Class MainWindowVM
' Modello del MainWindow (classe vera e propria)
Private m_MainWindowModel As New MainWindowModel
Public ReadOnly Property Instance As Integer
Get
Return m_MainWindowModel.m_nInstance
End Get
End Property
Private m_VisibilityAssemblyManager As Visibility = Visibility.Visible
Public Property VisibilityAssemblyManager As Visibility
Get
@@ -65,10 +71,13 @@ Public Class MainWindowVM
Return m_SelectedPage
End Get
Set(value As ListPageEnum)
m_SelectedPage = value
NotifyPropertyChanged("PageControl")
If Not IsNothing(Map.refInstrumentPanelVM) Then
Map.refInstrumentPanelVM.NotifyPropertyChanged("DimensionVisibility")
' Verifico che sia una vera modifica
If m_SelectedPage <> value Then
m_SelectedPage = value
NotifyPropertyChanged("PageControl")
If Not IsNothing(Map.refInstrumentPanelVM) Then
Map.refInstrumentPanelVM.NotifyPropertyChanged("DimensionVisibility")
End If
End If
End Set
End Property
@@ -86,20 +95,20 @@ Public Class MainWindowVM
Public ReadOnly Property PageControl As ContentControl
Get
If m_SelectedPage = ListPageEnum.nDDFPage Then
If OptionModule.m_SingleDoor then
If OptionModule.m_SingleDoor Then
VisibilityAssemblyManager = Visibility.Hidden
Else
VisibilityAssemblyManager = Visibility.Visible
End If
End If
NotifyPropertyChanged("AssemblyManagerControl")
NotifyPropertyChanged("ProjectManagerControl")
Return m_PartPage
ElseIf m_SelectedPage = ListPageEnum.nAssemblyPage Then
If OptionModule.m_SingleDoor then
If OptionModule.m_SingleDoor Then
VisibilityAssemblyManager = Visibility.Hidden
Else
VisibilityAssemblyManager = Visibility.Visible
End If
End If
NotifyPropertyChanged("AssemblyManagerControl")
NotifyPropertyChanged("ProjectManagerControl")
Return m_AssemblyPage
@@ -109,11 +118,11 @@ Public Class MainWindowVM
NotifyPropertyChanged("ProjectManagerControl")
Return m_HardwarePage
Else
If OptionModule.m_SingleDoor then
If OptionModule.m_SingleDoor Then
VisibilityAssemblyManager = Visibility.Hidden
Else
VisibilityAssemblyManager = Visibility.Visible
End If
End If
NotifyPropertyChanged("AssemblyManagerControl")
NotifyPropertyChanged("ProjectManagerControl")
Return Nothing
@@ -139,7 +148,7 @@ Public Class MainWindowVM
Public ReadOnly Property ProjectManagerControl As ContentControl
Get
If m_SelectedPage <> ListPageEnum.nHardwarePage then
If m_SelectedPage <> ListPageEnum.nHardwarePage Then
Return m_ProjectManager
Else
ProjectNameMsg = "HardwareManager"
@@ -155,6 +164,7 @@ Public Class MainWindowVM
End Property
Sub New()
EgtOutLog(" Creazione e inizializzazone MainWondowVM ")
Map.SetRefMainWindowVM(Me)
m_AssemblyPage = New AssemblyPageV
m_AssemblyPage.DataContext = New AssemblyPageVM
@@ -168,7 +178,6 @@ Public Class MainWindowVM
m_HardwarePage.DataContext = New HardwarePageVM
m_AssemblyManager = New AssemblyManagerV
m_AssemblyManager.DataContext = New AssemblyManagerVM
' inserisco la scena
m_SceneManager = New SceneManagerV
m_SceneManager.DataContext = New SceneManagerVM
Dim OptionsPage As OptionsVM = OptionPage
@@ -313,7 +322,7 @@ Public Class MainWindowVM
If m_SelectedPage = ListPageEnum.nHardwarePage Then Return
If StartReload Then Return
' 50545 = It has been deleted file: {0}, {1}.
Dim Message As String = String.Format(EgtMsg(50545), e.FullPath, e.ChangeType)
Dim Message As String = String.Format(EgtMsg(50545), e.FullPath, e.ChangeType)
selectedWatcher = WatcherCalling.OnDeleted
Application.Current.Dispatcher.BeginInvoke(New Action(Sub()
RaiseEvent Er(Message, e.FullPath)
@@ -326,7 +335,7 @@ Public Class MainWindowVM
If m_SelectedPage = ListPageEnum.nHardwarePage Then Return
If StartReload Then Return
' 50543 = It has been renamed file: {0}, {1}.
Dim Message As String = String.Format(EgtMsg(50543), e.FullPath, e.ChangeType)
Dim Message As String = String.Format(EgtMsg(50543), e.FullPath, e.ChangeType)
selectedWatcher = WatcherCalling.OnRenamed
Application.Current.Dispatcher.BeginInvoke(New Action(Sub()
RaiseEvent Er(Message, e.FullPath)
@@ -339,7 +348,7 @@ Public Class MainWindowVM
If m_SelectedPage = ListPageEnum.nHardwarePage Then Return
If StartReload Then Return
' 50544 = It has been created new file: {0}, {1}.
Dim Message As String =String.Format(EgtMsg(50544), e.FullPath, e.ChangeType)
Dim Message As String = String.Format(EgtMsg(50544), e.FullPath, e.ChangeType)
selectedWatcher = WatcherCalling.OnCreated
Application.Current.Dispatcher.BeginInvoke(New Action(Sub()
RaiseEvent Er(Message, e.FullPath)
+13
View File
@@ -26,6 +26,8 @@
Private m_refOptionsVM As OptionsVM
Private m_refSpecialPanelVM As SpecialPanelVM
#Region "Get"
Public ReadOnly Property refMainWindowVM As MainWindowVM
@@ -148,6 +150,12 @@
End Get
End Property
Public ReadOnly Property refSpecialPanelVM As SpecialPanelVM
Get
Return m_refSpecialPanelVM
End Get
End Property
#End Region ' Get
#Region "Set"
@@ -252,6 +260,11 @@
Return Not IsNothing(m_refHardwareHelpSceneHostV)
End Function
Friend Function SetRefSpecialPanelVM(SpecialPanelVM As SpecialPanelVM) As Boolean
m_refSpecialPanelVM = SpecialPanelVM
Return Not IsNothing(m_refSpecialPanelVM)
End Function
#End Region ' Set
#Region "Init"
+7 -7
View File
@@ -22,17 +22,17 @@ Imports System.Windows
#End if
#Else
#If DEBUG Then
<Assembly: AssemblyTitle("EgtDOORCreator Debug 32 bit")>
<Assembly: AssemblyDescription("EgtDOORCreatorD32.exe")>
<Assembly: AssemblyTitle("EgtDOORCreatorD32.exe")>
<Assembly: AssemblyDescription("EgtDOORCreator Debug 32 bit")>
#Else
<Assembly: AssemblyTitle("EgtDOORCreator Release 32 bit")>
<Assembly: AssemblyDescription("EgtDOORCreatorR32.exe")>
<Assembly: AssemblyTitle("EgtDOORCreatorR32.exe")>
<Assembly: AssemblyDescription("EgtDOORCreator 32 bit")>
#End If
#End If
<Assembly: AssemblyCompany("Egalware s.r.l.")>
<Assembly: AssemblyProduct("EgtDOORCreator")>
<Assembly: AssemblyCopyright("Copyright © 2016-2024 by Egalware s.r.l.")>
<Assembly: AssemblyCopyright("Copyright © 2016-2025 by Egalware s.r.l.")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(false)>
@@ -72,5 +72,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.6.12.1")>
<Assembly: AssemblyFileVersion("2.6.12.1")>
<Assembly: AssemblyVersion("2.7.4.1")>
<Assembly: AssemblyFileVersion("2.7.4.1")>
+18 -10
View File
@@ -7,6 +7,9 @@ Friend Module OptionModule
' flag per modalità di visualizzazione file (solo lettura)
Friend ReadOnlyDDF As Boolean = False
' gestione bottoni nella barra SpecialPanel
Friend IsActiveSpecialPanel As Boolean = False
' flag per forzare l'aggiornamento delle dimensioni anta dei file DDT
Friend AdjustDDT As Boolean = False
Friend FileNameFromArgs As String = String.Empty
@@ -333,7 +336,7 @@ Friend Module OptionModule
Dim sEgtCam5EXE As String = String.Empty
' AndAlso File.Exists(sListLabelFile)
If GetMainPrivateProfileString(S_GENERAL, K_EGTCAMEXE, "", sEgtCam5EXE) > 0 Then
IniFile.m_sEgtCameEXEPath = sEgtCam5EXE
IniFile.m_sEgtCam5EXEPath = sEgtCam5EXE
End If
Dim nHelpSelct As Integer = 0
@@ -777,6 +780,9 @@ Friend Module OptionModule
DefaultGetPrivateProfileString(S_OVERMATERIALASSEMBLY, K_BOTTOMOVERMATERIAL_INI, "0", BottomOverMaterialAss)
Utility.ConvertCompoConfig(BottomOverMaterialAss, 100)
m_BottomOverMaterialAssembly = BottomOverMaterialAss
' Visualizzazione SpecialPanel
Dim btDummy As ButtonItem = Nothing
IsActiveSpecialPanel = GetMainPrivateProfileInt(S_SPECIAL, K_SPECIALENABLE, 0) <> 0 AndAlso GetPrivateProfileButton(S_SPECIAL, K_BUTTON & "1", "", btDummy)
' Lista messaggi per launcher
m_OptionLauncherList.Add(EgtMsg(50206)) 'Open Window
@@ -1057,13 +1063,13 @@ Friend Module OptionModule
Return False
End If
Dim Items As String() = Directory.GetFiles(sMTableDir)
' recupero i file che hanno estemsione *.mtl
' recupero i file che hanno estemsione *.mtl e non sono esclusi
Dim ExcludeList As List(Of String) = GetExludeList()
For Each MTableFile As String In Items
If MTableFile.EndsWith(".mtl") Then
Dim sName As String = Path.GetFileNameWithoutExtension(MTableFile).ToLower
Dim sPath As String = MTableFile
Dim bIsValid As Boolean = True
Dim ExcludeList As List(Of String) = GetExludeList()
For Each ExcludedItem As String In ExcludeList
If sName.ToLower.Contains(ExcludedItem) Then
bIsValid = False
@@ -1083,17 +1089,17 @@ Friend Module OptionModule
End If
' leggo il nome della MTable attiva
Dim sSelectedMTable As String = String.Empty
Dim nbSelected As Boolean = False
Dim bSelected As Boolean = False
If GetMainPrivateProfileString(S_DOORS, K_MTABLE, "", sSelectedMTable) <> 0 Then
For Each ItemFile As MTable In m_MTableList
If ItemFile.FilePath.ToLower = sSelectedMTable.Trim.ToLower Then
m_SelectedMTable = ItemFile
nbSelected = True
bSelected = True
Exit For
End If
Next
End If
If Not nbSelected Then m_SelectedMTable = m_MTableList(0)
If Not bSelected Then m_SelectedMTable = m_MTableList(0)
Return True
End Function
@@ -1101,10 +1107,12 @@ Friend Module OptionModule
Dim LocalList As New List(Of String)
Dim sVal As String = String.Empty
GetMainPrivateProfileString(S_DOORS, "Exclude", "", sVal)
Dim sItems As String() = sVal.Split(","c)
For Each Item As String In sItems
LocalList.Add(Item.Trim)
Next
If Not String.IsNullOrWhiteSpace( sVal) Then
Dim sItems As String() = sVal.Split(","c)
For Each Item As String In sItems
LocalList.Add(Item.Trim)
Next
End If
Return LocalList
End Function
+33 -30
View File
@@ -122,7 +122,7 @@ Public Class OptionsVM
Public ReadOnly Property EnableConfig As Boolean
Get
If GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0) > 4 And File.Exists(IniFile.m_sConfigDir & "\ChangeConfig.lua") Then
If IniFile.m_nUserLevel > 4 AndAlso File.Exists(IniFile.m_sConfigDir & "\ChangeConfig.lua") Then
Return True
Else
Return False
@@ -2065,35 +2065,38 @@ Public Class OptionsVM
OptionsWindow.Close()
End If
Next
If EnableConfig AndAlso m_IsChangedConfig Then
' Se modifico il direttorio Compo: aggiorno il file Config.ini dell'EgtCAM5
EgtLuaExecFile(IniFile.m_sConfigDir & "\ChangeConfig.lua")
' assegno variabili
EgtLuaSetGlobStringVar("CCD.NewBaseDir", IniFile.m_sDoorsDirPath)
EgtLuaSetGlobStringVar("CCD.NewMTable", OptionModule.m_SelectedMTable.Name)
' eseguo la funzione che esegue la scrittura delle variabili
EgtLuaCallFunction("CCD.ChangeConfigDirectory")
Dim sVal As String = ""
EgtLuaGetGlobStringVar("CCD.NewMachineName", sVal)
OptionModule.m_CurrentMachine = sVal
EgtLuaResetGlobVar("CCD")
' chiudo il programma e lo riavvio
Map.refMainWindowVM.CloseApplication()
Process.Start(Application.ResourceAssembly.Location)
'End If
ElseIf EnableConfig AndAlso m_OrigMTable <> OptionModule.m_SelectedMTable.Name Then
' aggiorno il file Config.ini dell'EgtCAM5
EgtLuaExecFile(IniFile.m_sConfigDir & "\ChangeConfig.lua")
' assegno variabili
EgtLuaSetGlobStringVar("CCD.NewBaseDir", IniFile.m_sDoorsDirPath)
EgtLuaSetGlobStringVar("CCD.NewMTable", OptionModule.m_SelectedMTable.Name)
' eseguo la funzione che esegue la scrittura delle variabili
EgtLuaCallFunction("CCD.ChangeConfigDirectory")
Dim sVal As String = ""
EgtLuaGetGlobStringVar("CCD.NewMachineName", sVal)
OptionModule.m_CurrentMachine = sVal
EgtLuaResetGlobVar("CCD")
' Se abilitata modifica configurazione
If EnableConfig Then
' Se cambiato direttorio Doors
If m_IsChangedConfig Then
' Se modifico il direttorio Compo: aggiorno il file Config.ini dell'EgtCAM5
EgtLuaExecFile(IniFile.m_sConfigDir & "\ChangeConfig.lua")
' assegno variabili
EgtLuaSetGlobStringVar("CCD.NewBaseDir", IniFile.m_sDoorsDirPath)
EgtLuaSetGlobStringVar("CCD.NewMTable", OptionModule.m_SelectedMTable.Name)
' eseguo la funzione che esegue la scrittura delle variabili
EgtLuaCallFunction("CCD.ChangeConfigDirectory")
Dim sVal As String = ""
EgtLuaGetGlobStringVar("CCD.NewMachineName", sVal)
OptionModule.m_CurrentMachine = sVal
EgtLuaResetGlobVar("CCD")
' chiudo il programma e lo riavvio
Map.refMainWindowVM.CloseApplication()
Process.Start(Application.ResourceAssembly.Location)
' se altrimenti cambiata MTable
ElseIf m_OrigMTable <> OptionModule.m_SelectedMTable.Name Then
' aggiorno il file Config.ini dell'EgtCAM5
EgtLuaExecFile(IniFile.m_sConfigDir & "\ChangeConfig.lua")
' assegno variabili
EgtLuaSetGlobStringVar("CCD.NewBaseDir", IniFile.m_sDoorsDirPath)
EgtLuaSetGlobStringVar("CCD.NewMTable", OptionModule.m_SelectedMTable.Name)
' eseguo la funzione che esegue la scrittura delle variabili
EgtLuaCallFunction("CCD.ChangeConfigDirectory")
Dim sVal As String = ""
EgtLuaGetGlobStringVar("CCD.NewMachineName", sVal)
OptionModule.m_CurrentMachine = sVal
EgtLuaResetGlobVar("CCD")
End If
End If
End Sub
+1 -1
View File
@@ -69,7 +69,7 @@ Public Class OrderVM
Private Function VerifyNotIsNothing() As Boolean
If IsNothing(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName) OrElse
IsNothing(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.SelAssembly) OrElse
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.SelAssembly.ListPartDoor.Count > 0 Then
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.SelAssembly.ListPartDoor.Count < 1 Then
Return False
End If
Return True
+74 -70
View File
@@ -1,42 +1,43 @@
<UserControl x:Class="ProjectManagerV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:DOORCreator="clr-namespace:EgtDOORCreator" >
<StackPanel Orientation="Horizontal" IsEnabled="{Binding EnableProjectManager}" Height="32">
<!--Barra superiore dei comandi-->
<Button Command="{Binding NewCommand}" ToolTip="{Binding NewToolTip}" Focusable="False"
<!--Barra superiore dei comandi-->
<Button Command="{Binding NewCommand}" ToolTip="{Binding NewToolTip}" Focusable="False"
IsEnabled="{Binding EnableModifyDDF}">
<Image Source="{Binding NewProjectImg}" Stretch="Uniform"/>
</Button>
<!--Visibility="{Binding VisibilityDeleteDDF}"-->
</Button>
<!--Visibility="{Binding VisibilityDeleteDDF}"-->
<Button Command="{Binding DeleteCommand}" ToolTip="{Binding DeleteToolTip}" Focusable="False"
IsEnabled="{Binding EnableModifyDDF}">
<Image Source="{Binding DeleteProjectImg}" Stretch="Uniform"/>
</Button>
<Button Command="{Binding OpenCommand}" ToolTip="{Binding OpenToolTip}"
</Button>
<Button Command="{Binding OpenCommand}" ToolTip="{Binding OpenToolTip}"
Focusable="False"
ContextMenuService.Placement="Bottom"
Tag="{Binding}">
<Button.ContextMenu>
<ContextMenu ItemsSource="{Binding MruFileNames}">
<ContextMenu.Resources>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Command"
<Button.ContextMenu>
<ContextMenu ItemsSource="{Binding MruFileNames}">
<ContextMenu.Resources>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Command"
Value="{Binding PlacementTarget.Tag.OpenMruFileCommand,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType=ContextMenu}}"/>
<Setter Property="CommandParameter" Value="{Binding}" />
</Style>
</ContextMenu.Resources>
</ContextMenu>
</Button.ContextMenu>
<Image Source="/Resources/TopCommandBar/Open.png" Stretch="Uniform"/>
</Button>
<Button Command="{Binding ReloadCommand}" ToolTip="{Binding ReloadToolTip}" Focusable="False"
<Setter Property="CommandParameter" Value="{Binding}" />
</Style>
</ContextMenu.Resources>
</ContextMenu>
</Button.ContextMenu>
<Image Source="/Resources/TopCommandBar/Open.png" Stretch="Uniform"/>
</Button>
<Button Command="{Binding ReloadCommand}" ToolTip="{Binding ReloadToolTip}" Focusable="False"
IsEnabled="{Binding EnableModifyDDF}">
<Image Source="/Resources/Refresh/RefreshDir.png" Stretch="Uniform"/>
</Button>
<Image Source="/Resources/Refresh/RefreshDir.png" Stretch="Uniform"/>
</Button>
<Button Command="{Binding SaveCommand}" ToolTip="{Binding SaveToolTip}" Focusable="False"
IsEnabled="{Binding EnableModifyDDF}">
<Image Source="/Resources/TopCommandBar/Save.png" Stretch="Uniform"/>
@@ -44,74 +45,77 @@
</Button>
<Button Command="{Binding DuplicaCommand}" ToolTip="{Binding DuplicaToolTip}" Focusable="False"
IsEnabled="{Binding EnableModifyDDF}">
<ContentControl>
<Image Source="/Resources/TopCommandBar/SaveAs.png" Stretch="Uniform" />
</ContentControl>
</Button>
<Button Command="{Binding CreateTemplateCommand}" ToolTip="{Binding TemplateDoorToolTip}" Focusable="False"
<ContentControl>
<Image Source="/Resources/TopCommandBar/SaveAs.png" Stretch="Uniform" />
</ContentControl>
</Button>
<Button Command="{Binding CreateTemplateCommand}" ToolTip="{Binding TemplateDoorToolTip}" Focusable="False"
Visibility="{Binding VisibilityTemplate}" IsEnabled="{Binding EnableModifyDDF}">
<ContentControl>
<Image Source="/Resources/TopCommandBar/SaveAsTemplate.png" Stretch="Uniform" />
</ContentControl>
</Button>
<Button Command="{Binding CopyCommand}" ToolTip="{Binding CopyToolTip}" Focusable="False"
<ContentControl>
<Image Source="/Resources/TopCommandBar/SaveAsTemplate.png" Stretch="Uniform" />
</ContentControl>
</Button>
<Button Command="{Binding CopyCommand}" ToolTip="{Binding CopyToolTip}" Focusable="False"
IsEnabled="{Binding EnableModifyDDF}">
<ContentControl>
<Image Source="/Resources/TopCommandBar/Export.png" Stretch="Uniform" />
</ContentControl>
</Button>
<Button Command="{Binding OpenCamCommand}" ToolTip="{Binding OpenCamToolTip}" Focusable="False"
<ContentControl>
<Image Source="/Resources/TopCommandBar/Export.png" Stretch="Uniform" />
</ContentControl>
</Button>
<Button Command="{Binding OpenCamCommand}" ToolTip="{Binding OpenCamToolTip}" Focusable="False"
Visibility="{Binding VisibilityEgtCAM}" IsEnabled="{Binding EnableModifyDDF}">
<ContentControl>
<ContentControl>
<Image Source="/Resources/EgtCAM5.png" Stretch="Uniform" />
</ContentControl>
</Button>
</ContentControl>
</Button>
<Button Command="{Binding PrintCommand}" ToolTip="{Binding PrintToolTip}" Focusable="False">
<ContentControl>
<Image Source="/Resources/InstrumentPanel/Print.png" Stretch="Uniform" />
</ContentControl>
</Button>
<!--<Button Command="{Binding RefreshDirCommand}" ToolTip="{Binding RefreshDirToolTip}" Focusable="False">
<ContentControl>
<Image Source="/Resources/InstrumentPanel/Print.png" Stretch="Uniform" />
</ContentControl>
</Button>
<!--<Button Command="{Binding RefreshDirCommand}" ToolTip="{Binding RefreshDirToolTip}" Focusable="False">
<Image Source="/Resources/Refresh/RefreshDir.png" Stretch="Uniform"/>
</Button>-->
<!--Hardware-->
<!--<Button Command="{Binding HardwareCommand}" ToolTip="{Binding HardwareToolTip}" Focusable="False"
<!--Hardware-->
<!--<Button Command="{Binding HardwareCommand}" ToolTip="{Binding HardwareToolTip}" Focusable="False"
Visibility="{Binding DisableHM}">
<ContentControl>
<Image Source="/Resources/InstrumentPanel/Hardware.png" Stretch="Uniform" />
</ContentControl>
</Button>-->
<Button Command="{Binding CreateAssemblyCommand}" ToolTip="{Binding CreateAssemblyToolTip}" Focusable="False"
<Button Command="{Binding CreateAssemblyCommand}" ToolTip="{Binding CreateAssemblyToolTip}" Focusable="False"
Visibility="{Binding VisibilityCreateAssembly}" IsEnabled="{Binding EnableModifyDDF}">
<ContentControl>
<Image Source="/Resources/TopCommandBar/Create Assembly.png" Stretch="Uniform" />
</ContentControl>
</Button>
<Button Command="{Binding OptionsCommand}" ToolTip="{Binding OptionsToolTip}" Focusable="False"
<ContentControl>
<Image Source="/Resources/TopCommandBar/Create Assembly.png" Stretch="Uniform" />
</ContentControl>
</Button>
<Button Command="{Binding OptionsCommand}" ToolTip="{Binding OptionsToolTip}" Focusable="False"
Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}" IsEnabled="{Binding EnableModifyDDF}">
<Image Source="/Resources/TopCommandBar/Options.png" Height="22" />
</Button>
<Button Command="{Binding SendFeedbackCommand}" ToolTip="{Binding SendFeedbackToolTip}" Focusable="False"
<Image Source="/Resources/TopCommandBar/Options.png" Height="22" />
</Button>
<DOORCreator:SpecialPanelV DataContext="{StaticResource SpecialPanelVM}"/>
<Button Command="{Binding SendFeedbackCommand}" ToolTip="{Binding SendFeedbackToolTip}" Focusable="False"
IsEnabled="{Binding EnableModifyDDF}">
<Image Source="/Resources/TopCommandBar/Send.png" Height="22" Margin="3,0,3,0" />
</Button>
<Button Command="{Binding GuideCommand}" ToolTip="{Binding GuideToolTip}" Focusable="False">
<ContentControl>
<Image Source="/Resources/TopCommandBar/Help.png" Stretch="Uniform" />
</ContentControl>
</Button>
<!--Door-->
<RadioButton Style="{StaticResource ModeButton}" Visibility="{Binding DisableHM}"
<Image Source="/Resources/TopCommandBar/Send.png" Height="22" Margin="3,0,3,0" />
</Button>
<Button Command="{Binding GuideCommand}" ToolTip="{Binding GuideToolTip}" Focusable="False">
<ContentControl>
<Image Source="/Resources/TopCommandBar/Help.png" Stretch="Uniform" />
</ContentControl>
</Button>
<!--Door-->
<RadioButton Style="{StaticResource ModeButton}" Visibility="{Binding DisableHM}"
ToolTip="{Binding DoorToolTip}"
IsChecked="{Binding DoorIsChecked}"
Content="{Binding DoorToolTip}"
IsEnabled="{Binding EnableModifyDDF}">
</RadioButton>
<!--Hardware-->
<RadioButton Style="{StaticResource ModeButton}" Visibility="{Binding DisableHM}"
</RadioButton>
<!--Hardware-->
<RadioButton Style="{StaticResource ModeButton}" Visibility="{Binding DisableHM}"
Command="{Binding HardwareCommand}" ToolTip="{Binding HardwareToolTip}"
Content="{Binding HardwareToolTip}"
IsEnabled="{Binding EnableModifyDDF}">
</RadioButton>
</StackPanel>
</RadioButton>
</StackPanel>
</UserControl>
+14 -36
View File
@@ -67,11 +67,11 @@ Public Class ProjectManagerVM
Public ReadOnly Property VisibilityEgtCAM As Visibility
Get
If String.IsNullOrEmpty(IniFile.m_sEgtCameEXEPath) Then
If String.IsNullOrEmpty(IniFile.m_sEgtCam5EXEPath) Then
Return Visibility.Collapsed
ElseIf Not File.Exists(IniFile.m_sEgtCameEXEPath) Then
ElseIf Not File.Exists(IniFile.m_sEgtCam5EXEPath) Then
Return Visibility.Collapsed
ElseIf File.Exists(IniFile.m_sEgtCameEXEPath) Then
ElseIf File.Exists(IniFile.m_sEgtCam5EXEPath) Then
Return Visibility.Visible
Else
Return Visibility.Collapsed
@@ -1006,6 +1006,10 @@ Public Class ProjectManagerVM
Else
EgtOutLog("LastProject '" & OptionModule.m_sLastProject & "' is not a file or does not exist!")
Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nNothingSelected
If OptionModule.AdjustDDT Then
EgtExit()
Application.Current.Shutdown(3)
End If
Return
End If
Else
@@ -1370,15 +1374,13 @@ Public Class ProjectManagerVM
Public Sub OpenCam()
If IsNothing(Map.refAssemblyManagerVM.CurrProject) OrElse
IsNothing(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName) Then
IsNothing(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName) Then
' 50192 = Impossible to export to machine a door if there is not a door!
MessageBox.Show(EgtMsg(50192), EgtMsg(50144), MessageBoxButton.OK, MessageBoxImage.Warning)
Return
End If
'Verifico che tutto sia salvato, altrimenti esco con messaggio
If Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified Then
'' Project must be saved before copying
'MessageBox.Show(EgtMsg(50186), EgtMsg(50144), MessageBoxButton.OK, MessageBoxImage.Warning)
' 50177=Do you want to save the current changes?
Dim ResultMsg As MessageBoxResult = MessageBox.Show(EgtMsg(50177), EgtMsg(50144), MessageBoxButton.OKCancel, MessageBoxImage.Warning)
If ResultMsg = MessageBoxResult.OK Then
@@ -1389,22 +1391,14 @@ Public Class ProjectManagerVM
Return
End If
End If
'' elimino eventuali file .txt associati a ddf corrente (per lettura dei messaggi di errore stampati nel dal log del CAM5)
'Dim FileLog As String = Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.Name
'FileLog = FileLog.Replace(DDF_EXTENSION, ".txt")
'Try
' File.Delete(FileLog)
'Catch
'End Try
' Lancio esecuzione CAM5
Dim Proc As New Process
' Dim CurrFile As String = IniFile.m_sTempDir & "\CurrPart" & DDF_EXTENSION
Dim CurrFile As String = Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.Name
Dim sCurrFile As String = Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.Name
' Flag : 0 = solo disegno, 1 = anche calcolo lavorazioni
Dim nFlag As Integer = If((Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift, 1, 0)
Try
Proc.StartInfo.FileName = IniFile.m_sEgtCameEXEPath
' 0: creata una porta come descritta nel file riferito
' 1 viene creata la porta e il suo programma di lavorazione sul centro di lavoro preconfigurato
' Proc.StartInfo.Arguments = """" & CurrFile & """ " & If((Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift, """1""", """0""")
Proc.StartInfo.Arguments = """" & CurrFile & """ " & """0"""
Proc.StartInfo.FileName = IniFile.m_sEgtCam5EXEPath
Proc.StartInfo.Arguments = """" & sCurrFile & """ """ & nFlag & """"
If Not Proc.Start() Then
' Error in starting EgtCam5.exe
MessageBox.Show(EgtMsg(50567), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
@@ -1413,22 +1407,6 @@ Public Class ProjectManagerVM
' Error in starting EgtCam5.exe
MessageBox.Show(EgtMsg(50567), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
End Try
'Dim sError As String = String.Empty
'Dim nType As Integer = 0
'Dim nCountCycle As Integer = 0
'' al massimo attendo 5 secondi
'While Not (Proc.HasExited Or File.Exists(FileLog)) And nCountCycle < 50
' Threading.Thread.Sleep(100)
' nCountCycle += 1
'End While
'ShowGraphicError(sError, nType)
'If Not String.IsNullOrEmpty(sError) And nType > 0 Then
' 'Proc.Kill()
' MessageBox.Show(sError, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
'ElseIf Not String.IsNullOrEmpty(sError) And nType < 0 Then
' 'Proc.Kill()
' MessageBox.Show(sError, EgtMsg(50144), MessageBoxButton.OK, MessageBoxImage.Warning)
'End If
End Sub
#End Region ' Copy
+3 -2
View File
@@ -6,7 +6,7 @@
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
WindowStyle="None" ResizeMode="NoResize" TitleBarHeight="30" IsResizable="False"
IsMinimizable="False" WindowStartupLocation="CenterScreen" ShowInTaskbar="False"
Height="100" Width="300" Topmost="True"
Height="110" Width="300" Topmost="True"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<!--<EgtWPFLib5:EgtCustomWindow.Resources>
@@ -30,7 +30,8 @@
</UniformGrid>
<Button IsDefault="True" Name="OkBtn" Grid.Row="2" Grid.ColumnSpan="2"
<Button IsDefault="True" Name="OkBtn" Grid.Row="2" Grid.ColumnSpan="2" HorizontalAlignment="Right"
Margin="0,0,5,0"
Content="{Binding SaveMsg}" Style="{DynamicResource EgtWPFLib5_InputButton}"/>
</Grid>
+25 -3
View File
@@ -7,6 +7,13 @@
End Get
End Property
Private m_SaveMsg As String = "Ok"
Public ReadOnly Property SaveMsg As String
Get
Return m_SaveMsg
End Get
End Property
Private m_PartDoorMsg As String = "Select part"
Public ReadOnly Property PartDoorMsg As String
Get
@@ -31,16 +38,31 @@
End Get
Set(value As String)
m_Selection = value
m_nSelectedIndex = m_PartDoorList.IndexOf(m_Selection)
End Set
End Property
Private m_nSelectedIndex As Integer = 0
Public ReadOnly Property nSelectedIndex As Integer
Get
Return m_nSelectedIndex
End Get
End Property
Sub New(TitleWd As String, MsgWd As String, nParts As Integer, nIndex As Integer)
m_Title = TitleWd
m_PartDoorMsg = MsgWd
For Index As Integer = 0 To nParts - 1
m_PartDoorList.Add("Door " & nParts.ToString)
For Each ItemDoor As PartDoor In Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.SelAssembly.ListPartDoor
m_PartDoorList.Add(ItemDoor.Type)
Next
m_Selection = "Door " & nIndex.ToString
If Not IsNothing(Map.refPartPageVM) AndAlso Not IsNothing(Map.refPartPageVM.CurrPart) AndAlso
Not IsNothing(Map.refPartPageVM.CurrPart.TypePart) Then
m_nSelectedIndex = m_PartDoorList.IndexOf(Map.refPartPageVM.CurrPart.TypePart)
Else
m_nSelectedIndex = 0
End If
m_Selection = m_PartDoorList(m_nSelectedIndex)
End Sub
End Class
+26
View File
@@ -0,0 +1,26 @@
<UserControl x:Class="SpecialPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:EgtDOORCreator"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"
Visibility="{Binding SpecialPanelVisibility}">
<StackPanel Orientation="Horizontal" Height="32">
<ItemsControl ItemsSource="{Binding ButtonList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button ToolTip="{Binding ToolTip}" Command="{Binding LuaExecCommand}">
<Image Source="{Binding ImagePath}"/>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</UserControl>
+3
View File
@@ -0,0 +1,3 @@
Public Class SpecialPanelV
End Class
+121
View File
@@ -0,0 +1,121 @@
Imports System.IO
Imports EgtUILib
Imports EgtWPFLib5
Public Class SpecialPanelVM
Inherits VMBase
Private m_ButtonList As New List(Of ButtonItem)
Public ReadOnly Property ButtonList As List(Of ButtonItem)
Get
Return m_ButtonList
End Get
End Property
Private m_SpecialPanelVisibility As Visibility
Public ReadOnly Property SpecialPanelVisibility As Visibility
Get
Return m_SpecialPanelVisibility
End Get
End Property
Friend Sub SetSpecialPanelVisibility(bValue As Boolean)
m_SpecialPanelVisibility = If(bValue, Visibility.Visible, Visibility.Collapsed)
NotifyPropertyChanged(NameOf(SpecialPanelVisibility))
End Sub
Sub New()
' Creo riferimento a questa classe in Map
Map.SetRefSpecialPanelVM(Me)
' se attivo, inizializzo i bottoni leggendoli da file ini
If OptionModule.IsActiveSpecialPanel Then
Dim BtnIndex As Integer = 1
Dim CurrBtn As ButtonItem = Nothing
While GetPrivateProfileButton(S_SPECIAL, K_BUTTON & BtnIndex, "", CurrBtn)
m_ButtonList.Add(CurrBtn)
BtnIndex += 1
End While
End If
End Sub
End Class
Public Class ButtonItem
Inherits VMBase
Private m_sImagePath As String
Public ReadOnly Property ImagePath As String
Get
Return m_sImagePath
End Get
End Property
Private m_sLuaCmdPath As String
Private m_sToolTip As String
Public ReadOnly Property ToolTip As String
Get
Return m_sToolTip
End Get
End Property
Friend m_Btn_Visibility As Visibility
Public ReadOnly Property Btn_Visibility As Visibility
Get
Return m_Btn_Visibility
End Get
End Property
Friend m_Btn_IsEnabled As Boolean = True
Public ReadOnly Property Btn_IsEnabled As Boolean
Get
Return m_Btn_IsEnabled
End Get
End Property
' Definizione comandi
Private m_cmdLuaExec As ICommand
Sub New(sLuaCmdPath As String, sImagePath As String, sToolTip As String)
' creo il percorso del file
m_sImagePath = IniFile.m_sResourcesRoot & "\" & sImagePath
If Not File.Exists(m_sImagePath) Then
EgtOutLog("File '" & m_sImagePath & "' does not exist.")
End If
m_sLuaCmdPath = IniFile.m_sScriptsRoot & "\" & sLuaCmdPath
m_sToolTip = sToolTip
End Sub
#Region "COMMANDS"
#Region "LuaExecCommand"
Public ReadOnly Property LuaExecCommand As ICommand
Get
If m_cmdLuaExec Is Nothing Then
m_cmdLuaExec = New Command(AddressOf LuaExec)
End If
Return m_cmdLuaExec
End Get
End Property
Public Sub LuaExec(ByVal param As Object)
If Not File.Exists(m_sLuaCmdPath) Then
EgtOutLog("File '" & m_sLuaCmdPath & "' does not exists.")
Return
End If
If Not Path.GetExtension(m_sLuaCmdPath).ToLower = ".lua" Then
EgtOutLog("File '" & m_sLuaCmdPath & "' has not '.lua' extension.")
Return
End If
Dim bOk As Boolean = EgtLuaExecFile(m_sLuaCmdPath)
If Not bOk Then
EgtOutLog("File '" & m_sLuaCmdPath & "' has not been excute.")
End If
End Sub
#End Region ' LuaExecCommand
#End Region ' Commands
End Class
@@ -1,35 +1,35 @@
<UserControl x:Class="InstrumentPanelV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtDOORCreator="clr-namespace:EgtDOORCreator">
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtDOORCreator="clr-namespace:EgtDOORCreator">
<StackPanel Background="Transparent" Orientation="Horizontal" >
<ToggleButton ToolTip="{Binding GetDistToolTip}" IsEnabled ="{Binding EnableCmdDist}"
<StackPanel Background="Transparent" Orientation="Horizontal" >
<ToggleButton ToolTip="{Binding GetDistToolTip}" IsEnabled ="{Binding EnableCmdDist}"
Style="{StaticResource GridViewPanelToggleButton}" IsChecked="{Binding GetDistIsChecked}">
<Image Source="/Resources/InstrumentPanel/GetDist.png" Stretch="Uniform" Width="25" />
</ToggleButton>
<Button ToolTip="{Binding LinearDimensionToolTip}"
ToolTipService.ShowOnDisabled="True"
Command="{Binding LinearDimensionCommand}" IsEnabled="{Binding EnableCmdDimension}"
Visibility="{Binding DimensionVisibility}">
<Image Source="/Resources/InstrumentPanel/LinearDimension.png" Stretch="Uniform" Width="25"/>
ToolTipService.ShowOnDisabled="True"
Command="{Binding LinearDimensionCommand}" IsEnabled="{Binding EnableCmdDimension}"
Visibility="{Binding DimensionVisibility}">
<Image Source="/Resources/InstrumentPanel/LinearDimension.png" Stretch="Uniform" Width="25"/>
</Button>
<TextBox Style="{StaticResource DimensioParameter}"
Name ="TextBox1"
Visibility="{Binding TextDimensionVisibility}" Margin="5"
Width="100" Height="25"
Text="{Binding TextDimension, UpdateSourceTrigger=PropertyChanged}">
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding OkTextDimension}"/>
</TextBox.InputBindings>
</TextBox>
<TextBox Style="{StaticResource DimensioParameter}"
Name ="TextBox1"
Visibility="{Binding TextDimensionVisibility}" Margin="5"
Width="100" Height="25"
Text="{Binding TextDimension, UpdateSourceTrigger=PropertyChanged}">
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding OkTextDimension}"/>
</TextBox.InputBindings>
</TextBox>
<Button Command="{Binding PrintHardwareCommand}" ToolTip="{Binding PrintHardwareToolTip}" Focusable="False"
<Button Command="{Binding PrintHardwareCommand}" ToolTip="{Binding PrintHardwareToolTip}" Focusable="False"
IsEnabled ="{Binding EnableCmdSaveImg}" Visibility="{Binding SaveImgHardware}">
<ContentControl>
<Image Source="/Resources/TopCommandBar/SaveAs.png" Stretch="Uniform" Width="25"/>
<Image Source="/Resources/TopCommandBar/SaveAs.png" Stretch="Uniform" Width="25"/>
</ContentControl>
</Button>
</StackPanel>
</StackPanel>
</UserControl>
@@ -29,7 +29,7 @@ Public Class InstrumentPanelVM
#Region "FIELDS & PROPERTIES"
Private m_GetDistIsChecked As Boolean = True
Private m_GetDistIsChecked As Boolean = False
Public Property GetDistIsChecked As Boolean
Get
GetDistance(m_GetDistIsChecked)
@@ -44,6 +44,13 @@ Public Class InstrumentPanelVM
End Set
End Property
' Restituisce l'ultimo stato del comando
Public ReadOnly Property ActualDistanceState As Boolean
Get
Return m_GetDistIsChecked
End Get
End Property
' se il bottone è selezionato (true) allora misura, altrimenti no (false)
Public Sub GetDistance(bGetDistanceIsChecked As Boolean)
If bGetDistanceIsChecked Then
+9 -2
View File
@@ -440,6 +440,8 @@ Public Class SceneManagerVM
Private Sub MouseMoveOverScene(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles m_ProjectScene.OnMouseMoveScene
' Se non abilitata l'evidenziazione dei compo allora esco
If GetMainPrivateProfileInt(S_GENERAL, "MarkCompo", 0) = 0 Then Return
' Se misurazione attiva
If Map.refInstrumentPanelVM.ActualDistanceState Then Return
' se non esiste una porta corrente allora esco
If IsNothing(Map.refPartPageVM) OrElse IsNothing(Map.refPartPageVM.CurrPart) Then
Return
@@ -448,10 +450,14 @@ Public Class SceneManagerVM
' Ripulisco la scena da i Mark
Map.refPartPageVM.CurrPart.ResetAllMark()
' Se la lista dei componenti è vuota allora esco
If Map.refPartPageVM.CurrPart.CompoList.Count < 1 Then Return
If Map.refPartPageVM.CurrPart.CompoList.Count < 1 Then
EgtDraw()
Return
End If
' Ricavo il punto corrente in coordinate mondo
Dim ptCurr As Point3d
EgtUnProjectPoint(e.Location, ptCurr)
'If Not Map.refInstrumentPanelVM.ActualDistanceState Then
' Verifico se selezionato curva
EgtSetObjFilterForSelWin(False, True, False, False, False)
Dim nSel As Integer
@@ -472,6 +478,8 @@ Public Class SceneManagerVM
' Passo al successivo
nId = EgtGetNextObjInSelWin()
End While
'End If
EgtDraw()
End Sub
Private Function MatchCompoFromScena(nIdLay As Integer, CurrCompo As Compo, CompoList As ObservableCollection(Of Compo)) As Boolean
@@ -517,7 +525,6 @@ Public Class SceneManagerVM
EgtSetMark(nIdLay)
' evidenzio la compo corrente
TempList(IndexInList).SetMark()
EgtDraw()
' ricerca terminata correttamente
Return True
Exit While
+12 -22
View File
@@ -270,6 +270,18 @@ Public Module Utility
Return Index
End Function
' Verifica se il file/path indicato è ddf (true)
Friend Function IsCurrentFileDDF(sFileName As String) As Boolean
Dim IsDDF As Boolean = True
If Not String.IsNullOrEmpty(sFileName) AndAlso Path.HasExtension(sFileName) Then
Dim sExtension As String = Path.GetExtension(sFileName)
If sExtension.ToLower = DDT_EXTENSION Then
IsDDF = False
End If
End If
Return IsDDF
End Function
#Region "PARAM LUA"
' elimina i commenti nel file lua
@@ -707,28 +719,6 @@ Public Module Utility
Next
End Sub
#Region "Create Log"
Private sFileBlindProgLog As System.IO.StreamWriter
Private sFilePath As String = String.Empty
Public Sub StartBlinProgdLog(sPath As String)
sFilePath = sPath
sFileBlindProgLog = New System.IO.StreamWriter(sPath, True)
Dim sInfoStart As String = Date.Now.ToString & " Avvio programma in cieco"
sInfoStart &= vbCrLf & My.Application.Info.Version.Major.ToString() & "." & My.Application.Info.Version.Minor.ToString() &
(ChrW(97 - 1 + My.Application.Info.Version.Build)).ToString() & My.Application.Info.Version.Revision.ToString()
sFileBlindProgLog.WriteLine(sInfoStart)
sFileBlindProgLog.Close()
End Sub
Public Sub BlindProgLog(sMsg As String)
sFileBlindProgLog = File.AppendText(sFilePath)
sFileBlindProgLog.WriteLine(sMsg)
sFileBlindProgLog.Close()
End Sub
#End Region
End Module
Public Class CompoBrandDir