Compare commits

...

10 Commits

Author SHA1 Message Date
Nicola Pievani 9d6236b767 Gestione Assi lineare in pollici e migliorata SawTilted 2025-08-25 09:44:02 +02:00
Nicola Pievani d946c39a9d Cambio versione 2.8h1 2025-08-07 15:08:06 +02:00
Nicola Pievani 55bd41ca4c Modifica messaggio per connessione a camera 2025-08-07 13:00:35 +02:00
Nicola Pievani 5e6208a9c4 Merge branch 'Features/Manage_Process_Camera' into develop 2025-08-07 12:18:57 +02:00
Nicola Pievani 29ecd7c780 Merge branch 'Features/New_Disp_Allarms_Pages' into develop 2025-08-07 12:18:39 +02:00
Nicola Pievani 6ca56d3a12 FIXED gestione movimento ventose con asse W 2025-07-28 17:22:45 +02:00
Demetrio Cassarino b4ef388603 -nuova grafica per la gestione delle pagine allarms 2025-07-15 16:53:59 +02:00
Nicola Pievani aebfb05b94 Merge commit '04a7c05e99315e8fc0fa6187eec91ba68cf7ab20' into develop 2025-07-15 11:03:25 +02:00
Nicola Pievani 04a7c05e99 Nuove immagini per pagine Allarm 2025-07-15 09:08:30 +02:00
Nicola Pievani 8cc0d88600 Merge branch 'develop' 2025-07-14 15:42:35 +02:00
23 changed files with 1731 additions and 1650 deletions
+12
View File
@@ -154,6 +154,7 @@ Friend Module CamAuto
Return ResetAllMachinings(nWarn)
End Function
' Ricalcola tutte le lavorazioni
Friend Function ResetAllMachinings(ByRef nWarn As Integer) As Boolean
' Cancello tutte le lavorazioni
EraseMachinings(GDB_ID.NULL)
@@ -170,6 +171,7 @@ Friend Module CamAuto
Return True
End Function
' Elimina da ogni entità il nome della lavorazione asseganta
Friend Function RestoreDef_Machinig(Optional bOnlySideAng As Boolean = True)
Dim sSawingTilted As String = m_MainWindow.m_CurrentMachine.sCurrSawingTilted
Dim bApplySawingTilted As Boolean = m_MainWindow.m_CurrentMachine.bApplySawingTilted
@@ -180,6 +182,11 @@ Friend Module CamAuto
Dim nIdLayerOutLoop As Integer = EgtGetFirstNameInGroup(nIdPart, NAME_OUTLOOP)
Dim nEntId As Integer = EgtGetFirstInGroup(nIdLayerOutLoop)
SetResetDef_Machining(nEntId, sSawingTilted, bApplySawingTilted, bOnlySideAng)
'nIdLayerOutLoop = EgtGetFirstNameInGroup(nIdPart, NAME_OUTLOOP & ".orig")
'If nIdLayerOutLoop <> GDB_ID.NULL Then
' nEntId = EgtGetFirstInGroup(nIdLayerOutLoop)
' SetResetDef_Machining(nEntId, sSawingTilted, bApplySawingTilted, bOnlySideAng)
'End If
nIdPart = EgtGetNextPart(nIdPart)
End While
Dim nRawId As Integer = CamAuto.GetCurrentRaw()
@@ -189,6 +196,11 @@ Friend Module CamAuto
Dim nIdLayerOutLoop As Integer = EgtGetFirstNameInGroup(nIdPart, NAME_OUTLOOP)
Dim nEntId As Integer = EgtGetFirstInGroup(nIdLayerOutLoop)
SetResetDef_Machining(nEntId, sSawingTilted, bApplySawingTilted, bOnlySideAng)
nIdLayerOutLoop = EgtGetFirstNameInGroup(nIdPart, NAME_OUTLOOP & ".orig")
If nIdLayerOutLoop <> GDB_ID.NULL Then
nEntId = EgtGetFirstInGroup(nIdLayerOutLoop)
SetResetDef_Machining(nEntId, sSawingTilted, bApplySawingTilted, bOnlySideAng)
End If
nIdPart = EgtGetNextPartInRawPart(nIdPart)
End While
Return bOk
+10
View File
@@ -12,24 +12,34 @@
Public Const K_SIMULATIONAXESNUM As String = "SimulationAxesNum"
Public Const K_L1NAME As String = "L1Name"
Public Const K_L1ID As String = "L1Id"
Public Const K_L1TYPE As String = "L1Type"
Public Const K_L2NAME As String = "L2Name"
Public Const K_L2ID As String = "L2Id"
Public Const K_L2TYPE As String = "L2Type"
Public Const K_L3NAME As String = "L3Name"
Public Const K_L3ID As String = "L3Id"
Public Const K_L3TYPE As String = "L3Type"
Public Const K_R1NAME As String = "R1Name"
Public Const K_R1ID As String = "R1Id"
Public Const K_R1TYPE As String = "R1Type"
Public Const K_R2NAME As String = "R2Name"
Public Const K_R2ID As String = "R2Id"
Public Const K_R2TYPE As String = "R2Type"
Public Const K_A6NAME As String = "A6Name"
Public Const K_A6ID As String = "A6Id"
Public Const K_A6TYPE As String = "A6Type"
Public Const K_A7NAME As String = "A7Name"
Public Const K_A7ID As String = "A7Id"
Public Const K_A7TYPE As String = "A7Type"
Public Const K_A8NAME As String = "A8Name"
Public Const K_A8ID As String = "A8Id"
Public Const K_A8TYPE As String = "A8Type"
Public Const K_A9NAME As String = "A9Name"
Public Const K_A9ID As String = "A9Id"
Public Const K_A9TYPE As String = "A9Type"
Public Const K_A10NAME As String = "A10Name"
Public Const K_A10ID As String = "A10Id"
Public Const K_A10TYPE As String = "A10Type"
Public Const K_DELTA_C As String = "DeltaC"
Public Const K_ININCHES As String = "InInches"
Public Const K_CPOS As String = "CPos"
+1 -1
View File
@@ -57,7 +57,7 @@
</Grid.RowDefinitions>
<TextBlock Name="FilePathTxBl" Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
<ListBox Name="FileListBox" Grid.Row="1" Grid.RowSpan="2"
<ListBox Name="FileListBox" Grid.Row="1" Grid.RowSpan="2"
ItemTemplate="{DynamicResource DataTemplateItem}"
ItemsSource="{Binding ItemList}"/>
+1 -1
View File
@@ -1465,7 +1465,7 @@ Public Class SideAngleUC
EgtSetInfo(CurrEntity.nGeomId, INFO_SIDE_ANGLE, dSideAngle)
EgtSetInfo(CurrEntity.nGeomId, INFO_ORIG_SIDE_ANGLE, dSideAngle)
Dim sSawingTilted As String = m_MainWindow.m_CurrentMachine.sCurrSawingTilted
If Not String.IsNullOrEmpty(sSawingTilted) Then
If Not String.IsNullOrEmpty(sSawingTilted) And m_MainWindow.m_CurrentMachine.bApplySawingTilted Then
EgtSetInfo(CurrEntity.nGeomId, DEF_MACHINING_TILTED, sSawingTilted)
End If
' Cancello inclinazione nell'apposito campo info
+171 -10
View File
@@ -16,7 +16,7 @@
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1.5*"/>
<RowDefinition Height="0.5*"/>
@@ -27,7 +27,9 @@
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<GroupBox Name="FinalSawCutGpBx" Style="{DynamicResource OmagCut_GroupBox}">
<!--Parametri Taglio Lama: 5 Parametri-->
<GroupBox Name="SawGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.RowSpan="4" Margin="5,0,5,0">
<!--definizione della grigli ainterna-->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
@@ -36,23 +38,182 @@
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="EnableFinalSawCutTxBl" Grid.Column="0" Grid.Row="0"
<TextBlock Name="CutExtraLenTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<CheckBox Name="EnableFinalSawCutChBx" Grid.Column="1" Grid.Row="0" Margin="10,0,10,0"
Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right"/>
<TextBlock Name="FinalDepthTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="FinalDepthTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0"
<EgtWPFLib:EgtTextBox Name="CutExtraLenTxBx" Grid.Column="1" Grid.Row="0" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="AngleCutExtraLenTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="AngleCutExtraLenTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="ExtArcMinRadTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ExtArcMinRadTxBx" Grid.Column="1" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="IntArcMaxSideAngTxBl" Grid.Column="0" Grid.Row="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="IntArcMaxSideAngTxBx" Grid.Column="1" Grid.Row="3" Margin="10,0,10,0" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="PreCutExitTxBl" Grid.Column="0" Grid.Row="4"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<CheckBox Name="PreCutExitChBx" Grid.Column="1" Grid.Row="4" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right"/>
</Grid>
</GroupBox>
<!--Parametri fori: 4 Parametri-->
<GroupBox Name="HolesGpBx" Grid.Column="1" Grid.RowSpan="3" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="145*"/>
<ColumnDefinition Width="23*"/>
<ColumnDefinition Width="169*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="HolesOffsetTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="HolesOffsetTxBx" Grid.Column="2" Grid.Row="0" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="HolesOverlapTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="HolesOverlapTxBx" Grid.Column="2" Grid.Row="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="HolesToleranceTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="HolesToleranceTxBx" Grid.Column="2" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="OneHoleInCornerTxBl" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="10,0,10,0" />
<CheckBox Name="OneHoleInCornerChBx" Grid.Column="2" Grid.Row="3"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="10,0,10,0"/>
</Grid>
</GroupBox>
<!--Parametri rettifica tagli sottosquadra: 1 Parametro -->
<GroupBox Name="RectificationWJParamGpBx" Grid.Column="1" Grid.Row="4" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}" >
<Grid Grid.Column="3" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Name="EnableRectificationTxBl" Grid.Row="0" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="EnableRectificationChBx" Grid.Row="0" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid>
</GroupBox>
<!--Parametri WaterJet: 5 Parametro (se questo GroupBox attivo allora nascondo Fori/Fresatura)-->
<GroupBox Name="WjsParamGpBx" Grid.Column="1" Grid.RowSpan="4" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="145*"/>
<ColumnDefinition Width="23*"/>
<ColumnDefinition Width="169*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="WjIntCutsTxBl" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="10,0,10,0" />
<CheckBox Name="WjIntCutsChBx" Grid.Column="2" Grid.Row="0"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="10,0,10,0"/>
<TextBlock Name="HolesDiameterWJTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="HolesDiameterWJTxBx" Grid.Column="2" Grid.Row="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="HolesOffsetWJTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="HolesOffsetWJTxBx" Grid.Column="2" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="MinRadiusWJTxBl" Grid.Column="0" Grid.Row="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="MinRadiusWJTxBx" Grid.Column="2" Grid.Row="3" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="OneHoleInCornerWJTxBl" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="10,0,10,0" />
<CheckBox Name="OneHoleInCornerWJChBx" Grid.Column="2" Grid.Row="4"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="10,0,10,0"/>
</Grid>
</GroupBox>
<!--Parametri Fresatura: 3 Parametri-->
<GroupBox Name="MillingsParamGpBx" Grid.Column="2" Grid.RowSpan="3" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Name="CornerCutsTxBl" Grid.Row="0" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="CornerCutsChBx" Grid.Row="0" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
<TextBlock Name="InternalCutsTxBl" Grid.Row="1" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="10,0,0,10" VerticalAlignment="Bottom" />
<CheckBox Name="InternalCutsChBx" Grid.Row="1" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
<TextBlock Name="ShortTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ShortTxBx" Grid.Column="1" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</Grid>
</GroupBox>
</Grid>
</Border>
</UserControl>
+262 -14
View File
@@ -1,30 +1,278 @@
Imports EgtUILib
Imports EgtWPFLib5
Public Class Alarms2PageUC
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private m_CurrentMachine As CurrentMachine
' Properties
Private m_bFirst As Boolean = True
Private Sub Alarms2Page_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
FinalSawCutGpBx.Header = EgtMsg(91254) ' Taglio Finale
EnableFinalSawCutTxBl.Text = EgtMsg(91255) ' Abilita
FinalDepthTxBl.Text = EgtMsg(91256) ' Ultimo Spessore
' Variabile che accorcia il riferimento alla macchina corrente
m_CurrentMachine = m_MainWindow.m_CurrentMachine
SawGpBx.Header = EgtMsg(90925) ' Parametri lama
HolesGpBx.Header = EgtMsg(90917) ' Parametri fori
MillingsParamGpBx.Header = EgtMsg(90929) ' Parametri fresature
WjsParamGpBx.Header = EgtMsg(91058) ' Parametri waterjet
WjsParamGpBx.Header = EgtMsg(91058) ' Parametri waterjet
RectificationWJParamGpBx.Header = EgtMsg(91047) ' Rettifica
HolesOffsetTxBl.Text = EgtMsg(90909) ' Offset fori
HolesOverlapTxBl.Text = EgtMsg(90910) ' Sovrapp. fori
HolesToleranceTxBl.Text = EgtMsg(90911) ' Tolleranza fori
OneHoleInCornerTxBl.Text = EgtMsg(90926) ' Un solo foro in angolo
CutExtraLenTxBl.Text = EgtMsg(90906) ' Sicurezza tagli
AngleCutExtraLenTxBl.Text = EgtMsg(90907) ' Sicur. angoli
ExtArcMinRadTxBl.Text = EgtMsg(90918) ' Rmin archi est.
IntArcMaxSideAngTxBl.Text = EgtMsg(90924) ' Amax archi int.
PreCutExitTxBl.Text = EgtMsg(91065) ' PreTaglio uscite
CornerCutsTxBl.Text = EgtMsg(90944) ' Sempre sugli angoli
InternalCutsTxBl.Text = EgtMsg(90930) ' Sempre sugli interni
ShortTxBl.Text = EgtMsg(90949) ' Accorciamento
'-- INIZIO -- nuovi parametro Rettifica tagli sottosquadra WJ
EnableRectificationTxBl.Text = EgtMsg(91048) ' Abilita (sottosquadra)
'-- INIZIO -- nuovi parametri per preforo lavello
WjIntCutsTxBl.Text = EgtMsg(90930) ' Sempre sugli interni
HolesDiameterWJTxBl.Text = EgtMsg(91044) ' Diametro
HolesOffsetWJTxBl.Text = EgtMsg(91045) ' Offset
MinRadiusWJTxBl.Text = EgtMsg(91046) ' Raggio Minimo
OneHoleInCornerWJTxBl.Text = EgtMsg(90926) ' Un solo foro in angolo
End Sub
Private Sub Allarm2Page_Loaded() Handles Me.Loaded
EnableFinalSawCutChBx.IsChecked = m_MainWindow.m_CurrentMachine.bEnableFinalSawCut
FinalDepthTxBx.Text = m_MainWindow.m_CurrentMachine.dFinalDepth
If m_bFirst Then
' in assenza dell'uscita H1 nascondo i parametri lama
If EgtGetHeadId("H1") = GDB_ID.NULL Then
SawGpBx.Visibility = Visibility.Hidden
End If
' Verifico la configurazione della macchina per creare i combobox
Select Case m_CurrentMachine.MountedToolConfig
Case CurrentMachine.MountedToolConfigs.SAW
' Disattivo il gruppo dei parametri fori
HolesGpBx.Visibility = Windows.Visibility.Hidden
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
'Non faccio alcunchè
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW
'Da implementare
End Select
' Se non previste forature, disabilito relativo box
If Not m_CurrentMachine.bDrilling Then
HolesGpBx.Visibility = Visibility.Hidden
End If
' Se non previste fresature, disabilito relativo box e uso fresa con incisione
If Not m_CurrentMachine.bMilling Then
MillingsParamGpBx.Visibility = Visibility.Hidden
End If
' Se non previsti tagli waterjet, disabilito relativo box
If Not m_CurrentMachine.bWaterJetting Then
WjsParamGpBx.Visibility = Visibility.Hidden
RectificationWJParamGpBx.Visibility = Visibility.Hidden
End If
m_bFirst = False
End If
Dim dVal As Double
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_OFFSET, 0, m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTRARONDRIREG, dVal)
HolesOffsetTxBx.Text = LenToString(dVal, 2)
' Leggo sovrapposizione fori
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_OVERLAP, 0, m_MainWindow.GetMachIniFile())
HolesOverlapTxBx.Text = LenToString(dVal, 2)
' Leggo tolleranza diametro fori
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_DIAMTOLER, 0, m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.HOLEDIAMTOLER, dVal)
HolesToleranceTxBx.Text = LenToString(dVal, 2)
' Leggo un solo foro in corner
OneHoleInCornerChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ONEHOLE_INTCORNER, 0, m_MainWindow.GetMachIniFile()) <> 0)
' Leggo sicurezza su tagli
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_CUT, 0, m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTRALONCUTREG, dVal)
CutExtraLenTxBx.Text = LenToString(dVal, 2)
' Leggo sicurezza su tagli in angoli interni
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 0, m_MainWindow.GetMachIniFile())
AngleCutExtraLenTxBx.Text = LenToString(dVal, 2)
' Leggo raggio minimo arco esterno
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_EXTARCMINRAD, 200, m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTSAWARCMINRAD, dVal)
ExtArcMinRadTxBx.Text = LenToString(dVal, 2)
' Leggo angolo di fianco massimo arco interno
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_INTARCMAXSIDEANG, 45, m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.INTSAWARCMAXSIDEANG, dVal)
IntArcMaxSideAngTxBx.Text = DoubleToString(dVal, 2)
' Leggo se PreCutExit attivo (per taglio ceramico)
Dim nPreCutExit As Integer = GetPrivateProfileInt(S_MACH_NEST, K_MACH_PRECUTEXIT, -1, m_MainWindow.GetMachIniFile())
If nPreCutExit = -1 Then
PreCutExitTxBl.Visibility = Visibility.Hidden
PreCutExitChBx.Visibility = Visibility.Hidden
Else
PreCutExitChBx.IsChecked = (nPreCutExit <> 0)
End If
' Salvo DB lavorazioni con aggiornamenti parametri generali
EgtMdbSave()
' Leggo lavorazione angoli con fresa
CornerCutsChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, 1, m_MainWindow.GetMachIniFile()) <> 0)
' Leggo lavorazione interni con fresa
InternalCutsChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, 0, m_MainWindow.GetMachIniFile()) <> 0)
' Leggo accorciamento angoli con fresa
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_MILLING_SHORTENING, 0, m_MainWindow.GetMachIniFile())
ShortTxBx.Text = LenToString(dVal, 2)
' leggo se attiva la rettifica degli angoli per WaterJet
EnableRectificationChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_RECTIFICATION_ON_SUBSQUARE, 0, m_MainWindow.GetMachIniFile()) <> 0)
WjIntCutsChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, 0, m_MainWindow.GetMachIniFile()) <> 0)
' Lavorazione preforo lavello con WaterJet
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_HOLES_DIAMITERWJ, 0, m_MainWindow.GetMachIniFile())
HolesDiameterWJTxBx.Text = LenToString(dVal, 2)
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_HOLES_OFFSETWJ, 0, m_MainWindow.GetMachIniFile())
HolesOffsetWJTxBx.Text = LenToString(dVal, 2)
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MIN_RADIUSWJ, 0, m_MainWindow.GetMachIniFile())
MinRadiusWJTxBx.Text = LenToString(dVal, 2)
OneHoleInCornerWJChBx.IsChecked = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_DRILLINGWJ_ON_CORNERS, 1, m_MainWindow.GetMachIniFile()) <> 0)
End Sub
Private Sub EnableFinalSawCutChBx_IsChecked() Handles EnableFinalSawCutChBx.Click
m_MainWindow.m_CurrentMachine.bEnableFinalSawCut = EnableFinalSawCutChBx.IsChecked
WritePrivateProfileString(S_MACH, K_ENABLEFINALSAWCUT, If(m_MainWindow.m_CurrentMachine.bEnableFinalSawCut, "1", "0"), m_MainWindow.GetMachIniFile())
End Sub
Private Sub FinalDepthTxBx_EgtClosed() Handles FinalDepthTxBx.EgtClosed
Private Sub CutExtraLenTxBx_EgtClosed(sender As Object, e As EventArgs) Handles CutExtraLenTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(FinalDepthTxBx.Text, dVal)
m_MainWindow.m_CurrentMachine.dFinalDepth = dVal
WritePrivateProfileString(S_MACH, K_FINALDEPTH, DoubleToString(m_MainWindow.m_CurrentMachine.dFinalDepth, 3), m_MainWindow.GetMachIniFile())
StringToLen(CutExtraLenTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_SAFE_LEN_CUT, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTRALONCUTREG, dVal)
EgtMdbSave()
End Sub
Private Sub AngleCutExtraLenTxBx_EgtClosed(sender As Object, e As EventArgs) Handles AngleCutExtraLenTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(AngleCutExtraLenTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub ExtArcMinRadTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ExtArcMinRadTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(ExtArcMinRadTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_EXTARCMINRAD, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTSAWARCMINRAD, dVal)
EgtMdbSave()
End Sub
Private Sub IntArcMaxSideAngTxBx_EgtClosed(sender As Object, e As EventArgs) Handles IntArcMaxSideAngTxBx.EgtClosed
Dim dVal As Double = 0
StringToDouble(IntArcMaxSideAngTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_INTARCMAXSIDEANG, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.INTSAWARCMAXSIDEANG, dVal)
EgtMdbSave()
End Sub
Private Sub PreCutExitChBx_Click(sender As Object, e As RoutedEventArgs) Handles PreCutExitChBx.Click
If PreCutExitChBx.IsChecked Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_PRECUTEXIT, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_PRECUTEXIT, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
Private Sub HolesOffsetTxBx_EgtClosed(sender As Object, e As EventArgs) Handles HolesOffsetTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(HolesOffsetTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_HOLES_OFFSET, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTRARONDRIREG, dVal)
EgtMdbSave()
End Sub
Private Sub HolesOverlapTxBx_EgtClosed(sender As Object, e As EventArgs) Handles HolesOverlapTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(HolesOverlapTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_HOLES_OVERLAP, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub HolesToleranceTxBx_EgtClosed(sender As Object, e As EventArgs) Handles HolesToleranceTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(HolesToleranceTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_HOLES_DIAMTOLER, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.HOLEDIAMTOLER, dVal)
EgtMdbSave()
End Sub
Private Sub OneHoleInCornerChBx_Click(sender As Object, e As RoutedEventArgs) Handles OneHoleInCornerChBx.Click
If OneHoleInCornerChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_ONEHOLE_INTCORNER, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_ONEHOLE_INTCORNER, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
Private Sub CornerCutsChBx_Click(sender As Object, e As RoutedEventArgs) Handles CornerCutsChBx.Click
If CornerCutsChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
Private Sub ShortTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ShortTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(ShortTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_SHORTENING, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub InternalCutsChBx_Click(sender As Object, e As RoutedEventArgs) Handles InternalCutsChBx.Click
If InternalCutsChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
' -- INIZIO -- nuovi parametri per Rettifica angoli in sottosquadra WaterJet
Private Sub EnableRectificationChBx_Click(sender As Object, e As EventArgs) Handles EnableRectificationChBx.Click
If EnableRectificationChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_RECTIFICATION_ON_SUBSQUARE, "1", m_MainWindow.GetMachIniFile)
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_RECTIFICATION_ON_SUBSQUARE, "0", m_MainWindow.GetMachIniFile)
End If
End Sub
' -- FINE -- nuovi parametri per Rettifica angoli in sottosquadra WaterJet
Private Sub WjIntCutsChBx_Click(sender As Object, e As RoutedEventArgs) Handles WjIntCutsChBx.Click
If WjIntCutsChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
' -- INIZIO -- nuovi parametri per prefori WaterJet
Private Sub HolesDiameterWJTxBx_Click(sender As Object, e As EventArgs) Handles HolesDiameterWJTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(HolesDiameterWJTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_HOLES_DIAMITERWJ, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub HolesOffsetWJTxBx_Click(sender As Object, e As EventArgs) Handles HolesOffsetWJTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(HolesOffsetWJTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_HOLES_OFFSETWJ, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub MinRadiusWJTxBx_Click(sender As Object, e As EventArgs) Handles MinRadiusWJTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(MinRadiusWJTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MIN_RADIUSWJ, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub OneHoleInCornerWJChBx_Click(sender As Object, e As EventArgs) Handles OneHoleInCornerWJChBx.Click
If OneHoleInCornerWJChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_DRILLINGWJ_ON_CORNERS, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_DRILLINGWJ_ON_CORNERS, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
' -- FINE -- nuovi parametri per prefori WaterJet
End Class
+72 -280
View File
@@ -20,7 +20,6 @@
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
@@ -30,254 +29,7 @@
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<!--Costruisco le riche per la colonna 3-->
<Grid Grid.Column="2" Grid.RowSpan="9">
<Grid.RowDefinitions>
<!--GruopBox: taglio lama-->
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<!--GruopBoxs: Fresatura/>Foratura/WaterJet-->
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
<!--GroupBox: vai ad Home-->
<RowDefinition Height="1*"/>
<RowDefinition Height="0.375*"/>
</Grid.RowDefinitions>
<!--Parametri Taglio Lama: 5 Parametri-->
<GroupBox Name="SawGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.RowSpan="4">
<!--definizione della grigli ainterna-->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="CutExtraLenTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="CutExtraLenTxBx" Grid.Column="1" Grid.Row="0" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="AngleCutExtraLenTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="AngleCutExtraLenTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="ExtArcMinRadTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ExtArcMinRadTxBx" Grid.Column="1" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="IntArcMaxSideAngTxBl" Grid.Column="0" Grid.Row="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="IntArcMaxSideAngTxBx" Grid.Column="1" Grid.Row="3" Margin="10,0,10,0" IsLength="False"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="PreCutExitTxBl" Grid.Column="0" Grid.Row="4"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<CheckBox Name="PreCutExitChBx" Grid.Column="1" Grid.Row="4" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right"/>
</Grid>
</GroupBox>
<Grid Grid.Column="2" Grid.Row="4" Grid.RowSpan="8">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--Parametri fori: 4 Parametri-->
<GroupBox Name="HolesGpBx" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="3"
Style="{DynamicResource OmagCut_GroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="145*"/>
<ColumnDefinition Width="23*"/>
<ColumnDefinition Width="169*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="HolesOffsetTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="HolesOffsetTxBx" Grid.Column="2" Grid.Row="0" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="HolesOverlapTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="HolesOverlapTxBx" Grid.Column="2" Grid.Row="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="HolesToleranceTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="HolesToleranceTxBx" Grid.Column="2" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="OneHoleInCornerTxBl" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="10,0,10,0" />
<CheckBox Name="OneHoleInCornerChBx" Grid.Column="2" Grid.Row="3"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="10,0,10,0"/>
</Grid>
</GroupBox>
<!--Parametri Fresatura: 3 Parametri-->
<GroupBox Name="MillingsParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" Grid.RowSpan="2">
<Grid Grid.Column="3" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Name="CornerCutsTxBl" Grid.Row="0" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="CornerCutsChBx" Grid.Row="0" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
<TextBlock Name="InternalCutsTxBl" Grid.Row="1" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="10,0,0,10" VerticalAlignment="Bottom" />
<CheckBox Name="InternalCutsChBx" Grid.Row="1" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
<TextBlock Name="ShortTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ShortTxBx" Grid.Column="1" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</Grid>
</GroupBox>
<!--Parametri rettifica tagli sottosquadra: 1 Parametro -->
<GroupBox Name="RectificationWJParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2" >
<Grid Grid.Column="3" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Name="EnableRectificationTxBl" Grid.Row="0" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="EnableRectificationChBx" Grid.Row="0" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
<!--<TextBlock Name="OffsetRectificationTxBl" Grid.Row="1" Grid.Column="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="OffsetRectificationTxBx" Grid.Row="1" Grid.Column="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>-->
</Grid>
</GroupBox>
<!--Parametri WaterJet: 5 Parametro (se questo GroupBox attivo allora nascondo Fori/Fresatura)-->
<GroupBox Name="WjsParamGpBx" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="4"
Style="{DynamicResource OmagCut_GroupBox}">
<Grid Grid.Column="3" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="145*"/>
<ColumnDefinition Width="23*"/>
<ColumnDefinition Width="169*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<TextBlock Name="WjIntCutsTxBl" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="10,0,10,0" />
<CheckBox Name="WjIntCutsChBx" Grid.Column="2" Grid.Row="0"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="10,0,10,0"/>
<TextBlock Name="HolesDiameterWJTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="HolesDiameterWJTxBx" Grid.Column="2" Grid.Row="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="HolesOffsetWJTxBl" Grid.Column="0" Grid.Row="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="HolesOffsetWJTxBx" Grid.Column="2" Grid.Row="2" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="MinRadiusWJTxBl" Grid.Column="0" Grid.Row="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Grid.ColumnSpan="2" Margin="10,0,10,0"/>
<EgtWPFLib:EgtTextBox Name="MinRadiusWJTxBx" Grid.Column="2" Grid.Row="3" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
<TextBlock Name="OneHoleInCornerWJTxBl" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="3"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" Margin="10,0,10,0" />
<CheckBox Name="OneHoleInCornerWJChBx" Grid.Column="2" Grid.Row="4"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="10,0,10,0"/>
</Grid>
</GroupBox>
</Grid>
<!--Parametri Taglio diretto: 1 Parametro-->
<GroupBox Name="DirectCutsParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.Row="12" Grid.RowSpan="2">
<Grid>
<TextBlock Name="FinalHomeTxBl"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="FinalHomeChBx"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid>
</GroupBox>
</Grid>
<Grid Grid.RowSpan="3">
<Grid Grid.RowSpan="3" Margin="6,0,6,0">
<Grid.RowDefinitions>
<RowDefinition Height="1.75*"/>
<RowDefinition Height="0.5*"/>
@@ -492,7 +244,7 @@
</Grid>-->
<GroupBox Name="MaterialsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0"
<GroupBox Name="MaterialsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0" Margin="5,0,5,0"
Grid.Row="3" Grid.ColumnSpan="1" Grid.RowSpan="5">
<Grid>
@@ -524,7 +276,7 @@
</GroupBox>
<GroupBox Name="MachiningsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="1"
<GroupBox Name="MachiningsGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="1" Margin="0,0,5,0"
Grid.Row="0" Grid.ColumnSpan="1" Grid.RowSpan="3">
<ScrollViewer VerticalScrollBarVisibility="Visible" Visibility="Visible"
@@ -639,7 +391,7 @@
</GroupBox>-->
<Grid Grid.Column="1" Grid.Row="3" Grid.RowSpan="3">
<Grid Grid.Column="1" Grid.Row="3" Grid.RowSpan="3" Margin="0,0,5,0" >
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
@@ -651,36 +403,29 @@
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GroupBox Name="MachineParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="2">
<Grid Grid.Column="2" Grid.Row="1">
<GroupBox Name="MachineParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<TextBlock Name="SafeZTxBl" Grid.Column="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="SafeZTxBx" Grid.Column="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</Grid>
</GroupBox>
<Border Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="2">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="AdditionalTableTxBl" Grid.Column="0"
<TextBlock Name="AdditionalTableTxBl" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<EgtWPFLib:EgtTextBox Name="AdditionalTableTxBx" Grid.Column="1" Margin="10,0,10,0"
<EgtWPFLib:EgtTextBox Name="AdditionalTableTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</Grid>
</Border>
</GroupBox>
</Grid>
<!--<GroupBox Name="DirectCutsParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Grid.Row="8">
@@ -693,7 +438,8 @@
</GroupBox>-->
<GroupBox Name="NestingParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="1" Grid.Row="6" Grid.RowSpan="3">
<GroupBox Name="NestingParamGpBx" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="1" Grid.Row="6" Grid.RowSpan="3">
<Grid Name="NestingGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
@@ -736,7 +482,8 @@
</GroupBox>
<GroupBox Name="AutoRawImageParamGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2">
<GroupBox Name="AutoRawImageParamGpBx" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
@@ -773,8 +520,9 @@
</GroupBox>
<GroupBox Name="CutFredGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3"
Grid.Row="2" Grid.RowSpan="1">
<GroupBox Name="CutFredGpBx" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2"
Grid.Row="0" Grid.RowSpan="1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
@@ -798,8 +546,8 @@
</GroupBox>
<!--Incisioni-->
<GroupBox Name="TopMillGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3"
Grid.Row="3" Grid.RowSpan="3">
<GroupBox Name="TopMillGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="2" Margin="0,0,5,0"
Grid.Row="1" Grid.RowSpan="3">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
@@ -831,8 +579,36 @@
</GroupBox>
<GroupBox Name="FinalSawCutGpBx" Grid.Column="2" Grid.Row="4" Grid.RowSpan="2" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Border Name="SideAngCutProbeGpBx" Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="3" Grid.Row="6">
<TextBlock Name="EnableFinalSawCutTxBl" Grid.Column="0" Grid.Row="0"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<CheckBox Name="EnableFinalSawCutChBx" Grid.Column="1" Grid.Row="0" Margin="10,0,10,0"
Style="{StaticResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right"/>
<TextBlock Name="FinalDepthTxBl" Grid.Column="0" Grid.Row="1"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="FinalDepthTxBx" Grid.Column="1" Grid.Row="1" Margin="10,0,10,0"
Style="{DynamicResource OmagCut_CalculatorTextBox}" />
</Grid>
</GroupBox>
<GroupBox Name="SideAngCutProbeGpBx" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="2">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
@@ -846,9 +622,11 @@
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid>
</Border>
</GroupBox>
<Border Name="WashingGpBx" Style="{DynamicResource OmagCut_NoNameGroupBorder}" Grid.Column="3" Grid.Row="7">
<GroupBox Name="WashingGpBx" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}"
Grid.Column="3" Grid.Row="3" Grid.RowSpan="2">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
@@ -862,10 +640,11 @@
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid>
</Border>
</GroupBox>
<!--Cornici-->
<GroupBox Name="FrameGpBx" Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="8">
<GroupBox Name="FrameGpBx" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="5" Grid.RowSpan="2">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
@@ -881,7 +660,20 @@
</GroupBox>
<Grid Grid.Column="0" Grid.Row="8">
<!--Parametri Taglio diretto: 1 Parametro-->
<GroupBox Name="DirectCutsParamGpBx" Margin="0,0,5,0"
Style="{DynamicResource OmagCut_GroupBox}" Grid.Column="3" Grid.Row="7">
<Grid>
<TextBlock Name="FinalHomeTxBl"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}" />
<CheckBox Name="FinalHomeChBx"
Style="{DynamicResource OmagCut_CheckBox_Single}"
HorizontalAlignment="Right" Margin="0,0,10,0"/>
</Grid>
</GroupBox>
<Grid Grid.Column="0" Grid.Row="8" Margin="0,0,5,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"/>
<ColumnDefinition Width="2.5*"/>
+22 -240
View File
@@ -62,45 +62,19 @@ Public Class AlarmsPageUC
CurrCupWheelTxBl.Text = EgtMsg(91070) ' Scasso corrente
CurrMillTxBl.Text = EgtMsg(90904) ' Fresa corrente
CurrWJetTxBl.Text = EgtMsg(90900) ' Waterjet corrente
HolesOffsetTxBl.Text = EgtMsg(90909) ' Offset fori
HolesOverlapTxBl.Text = EgtMsg(90910) ' Sovrapp. fori
HolesToleranceTxBl.Text = EgtMsg(90911) ' Tolleranza fori
OneHoleInCornerTxBl.Text = EgtMsg(90926) ' Un solo foro in angolo
CutExtraLenTxBl.Text = EgtMsg(90906) ' Sicurezza tagli
AngleCutExtraLenTxBl.Text = EgtMsg(90907) ' Sicur. angoli
CompleteCutsTxBl.Text = EgtMsg(90908) ' Rispetta i tagli completi
SafeZTxBl.Text = EgtMsg(90905) ' Z Sicura
MaterialsGpBx.Header = EgtMsg(90913) ' Materiali
NewMatBtn.Content = EgtMsg(90914) ' Aggiungi
RemoveMatBtn.Content = EgtMsg(90915) ' Rimuovi
SetUpGpBx.Header = EgtMsg(90916) ' Utensili correnti
HolesGpBx.Header = EgtMsg(90917) ' Parametri fori
ExtArcMinRadTxBl.Text = EgtMsg(90918) ' Rmin archi est.
IntArcMaxSideAngTxBl.Text = EgtMsg(90924) ' Amax archi int.
PreCutExitTxBl.Text = EgtMsg(91065) ' PreTaglio uscite
MachineParamGpBx.Header = EgtMsg(90919) ' Parametri macchina
SawGpBx.Header = EgtMsg(90925) ' Parametri lama
DirectCutsParamGpBx.Header = EgtMsg(90927) ' Tagli diretti
FinalHomeTxBl.Text = EgtMsg(90928) ' Home finale
MillingsParamGpBx.Header = EgtMsg(90929) ' Parametri fresature
CornerCutsTxBl.Text = EgtMsg(90944) ' Sempre sugli angoli
InternalCutsTxBl.Text = EgtMsg(90930) ' Sempre sugli interni
ShortTxBl.Text = EgtMsg(90949) ' Accorciamento
TopMillGpBx.Header = EgtMsg( 91061) ' Parametri incisioni
TopMillGpBx.Header = EgtMsg(91061) ' Parametri incisioni
TmEnableTxBl.Text = EgtMsg( 91062) ' Con fresa
TmDepthTxBl.Text = EgtMsg( 91063) ' Profondità
TmWidthTxBl.Text = EgtMsg( 91064) ' Larghezza
WJsParamGpBx.Header = EgtMsg( 91058) ' Parametri waterjet
WjIntCutsTxBl.Text = EgtMsg(90930) ' Sempre sugli interni
'-- INIZIO -- nuovi parametri per preforo lavello
HolesDiameterWJTxBl.Text = EgtMsg(91044) ' Diametro
HolesOffsetWJTxBl.Text = EgtMsg(91045) ' Offset
MinRadiusWJTxBl.Text = EgtMsg(91046) ' Raggio Minimo
OneHoleInCornerWJTxBl.Text = EgtMsg(90926) ' Un solo foro in angolo
'-- INIZIO -- nuovi parametro Rettifica tagli sottosquadra WJ
RectificationWJParamGpBx.Header = EgtMsg(91047) ' Rettifica
EnableRectificationTxBl.Text = EgtMsg(91048) ' Abilita (sottosquadra)
'-- FINE -- nuovi parametro Rettifica tagli sottosquadra WJ
NestingParamGpBx.Header = EgtMsg(90931) ' Nesting
AlignTxBl.Text = EgtMsg(90932) ' Allineato
GhigliottinaTxBl.Text = EgtMsg(91066) ' Ghigliottina
@@ -113,8 +87,6 @@ Public Class AlarmsPageUC
BackImageBtn.Content = EgtMsg(90938) ' Sfondo
ThresholdTxBl.Text = EgtMsg(90939) ' Soglia
ToleranceTxBl.Text = EgtMsg(90940) ' Tolleranza
WashingTxBl.Text = EgtMsg(90941) ' Lavaggio
SideAngCutProbeTxBl.Text = EgtMsg(90950) ' Tastatura tagli inclinati
CutFredGpBx.Header = EgtMsg(90946) ' Tagli Feed inizio/fine
CfrLenTxBl.Text = EgtMsg(90947) ' Lunghezza
CfrPercTxBl.Text = EgtMsg(90948) ' Riduzione %
@@ -130,16 +102,20 @@ Public Class AlarmsPageUC
FrameGpBx.Header = EgtMsg(91068) ' Cornici
FramePauseTxBl.Text = EgtMsg(91067) ' Inserisci pausa
UseLaserOriginTxBl.Text = EgtMsg(91129) ' Usa laser per origine
SideAngCutProbeGpBx.Header = EgtMsg(90950) ' Tastatura
SideAngCutProbeTxBl.Text = EgtMsg(90950) ' Tastatura tagli inclinati
WashingGpBx.Header = EgtMsg(90941) ' Lavaggio
WashingTxBl.Text = EgtMsg(90941) ' Lavaggio
FinalSawCutGpBx.Header = EgtMsg(91254) ' Taglio Finale
EnableFinalSawCutTxBl.Text = EgtMsg(91255) ' Abilita
FinalDepthTxBl.Text = EgtMsg(91256) ' Ultimo Spessore
AutoRawImageParamGpBx.Visibility = Windows.Visibility.Hidden
End Sub
Private Sub AlarmsPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
If m_bFirst Then
' in assenza dell'uscita H1 nascondo i parametri lama
If EgtGetHeadId("H1") = GDB_ID.NULL Then
SawGpBx.Visibility = Visibility.Hidden
TopMillGpBx.Visibility = Visibility.Hidden
CurrSawTxBl.Visibility = Visibility.Hidden
CurrSawCmBx.Visibility = Visibility.Hidden
@@ -157,31 +133,18 @@ Public Class AlarmsPageUC
CurrToolsGrid.RowDefinitions.Add(EndRow)
SetUpGpBx.SetValue(Grid.RowSpanProperty, 1)
' Disattivo il gruppo dei parametri fori
HolesGpBx.Visibility = Windows.Visibility.Hidden
Case CurrentMachine.MountedToolConfigs.SAWANDAUXTOOL
'Non faccio alcunchè
Case CurrentMachine.MountedToolConfigs.MANUALTOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGER, CurrentMachine.MountedToolConfigs.TOOLCHANGERWITHSAW
'Da implementare
End Select
' Se non previste forature, disabilito relativo box
If Not m_CurrentMachine.bDrilling Then
HolesGpBx.Visibility = Visibility.Hidden
End If
' Se non previste fresature, disabilito relativo box e uso fresa con incisione
If Not m_CurrentMachine.bMilling Then
MillingsParamGpBx.Visibility = Visibility.Hidden
TmEnableChBx.IsEnabled = False
TmEnableChBx.IsChecked = False
End If
' Se non previsti tagli waterjet, disabilito relativo box
If Not m_CurrentMachine.bWaterJetting Then
WjsParamGpBx.Visibility = Visibility.Hidden
RectificationWJParamGpBx.Visibility = Visibility.Hidden
End If
' Abilitazione box per contorni grezzo da foto
If m_MainWindow.m_Camera.GetCalcContour() Then
AutoRawImageParamGpBx.Visibility = Windows.Visibility.Visible
@@ -353,71 +316,12 @@ Public Class AlarmsPageUC
' Leggo offset fori
Dim dVal As Double
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_OFFSET, 0, m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTRARONDRIREG, dVal)
HolesOffsetTxBx.Text = LenToString(dVal, 2)
' Leggo sovrapposizione fori
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_OVERLAP, 0, m_MainWindow.GetMachIniFile())
HolesOverlapTxBx.Text = LenToString(dVal, 2)
' Leggo tolleranza diametro fori
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_DIAMTOLER, 0, m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.HOLEDIAMTOLER, dVal)
HolesToleranceTxBx.Text = LenToString(dVal, 2)
' Leggo un solo foro in corner
OneHoleInCornerChBx.IsChecked =
(GetPrivateProfileInt(S_MACH_NEST, K_MACH_ONEHOLE_INTCORNER, 0, m_MainWindow.GetMachIniFile()) <> 0)
' Leggo sicurezza su tagli
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_CUT, 0, m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTRALONCUTREG, dVal)
CutExtraLenTxBx.Text = LenToString(dVal, 2)
' Leggo sicurezza su tagli in angoli interni
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 0, m_MainWindow.GetMachIniFile())
AngleCutExtraLenTxBx.Text = LenToString(dVal, 2)
' Leggo distanza di sicurezza
dVal = 0
EgtMdbGetGeneralParam(MCH_GP.SAFEZ, dVal)
SafeZTxBx.Text = LenToString(dVal, 2)
' Leggo raggio minimo arco esterno
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_EXTARCMINRAD, 200, m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTSAWARCMINRAD, dVal)
ExtArcMinRadTxBx.Text = LenToString(dVal, 2)
' Leggo se PreCutExit attivo (per taglio ceramico)
Dim nPreCutExit As Integer = GetPrivateProfileInt(S_MACH_NEST, K_MACH_PRECUTEXIT, -1, m_MainWindow.GetMachIniFile())
If nPreCutExit = -1 Then
PreCutExitTxBl.Visibility = Visibility.Hidden
PreCutExitChBx.Visibility = Visibility.Hidden
Else
PreCutExitChBx.IsChecked = ( nPreCutExit <> 0)
End If
' Leggo angolo di fianco massimo arco interno
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_INTARCMAXSIDEANG, 45, m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.INTSAWARCMAXSIDEANG, dVal)
IntArcMaxSideAngTxBx.Text = DoubleToString(dVal, 2)
' Salvo DB lavorazioni con aggiornamenti parametri generali
EgtMdbSave()
' Leggo lavorazione angoli con fresa
CornerCutsChBx.IsChecked =
(GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, 1, m_MainWindow.GetMachIniFile()) <> 0)
' Leggo lavorazione interni con fresa
InternalCutsChBx.IsChecked =
(GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, 0, m_MainWindow.GetMachIniFile()) <> 0)
WjIntCutsChBx.IsChecked =
(GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, 0, m_MainWindow.GetMachIniFile()) <> 0)
' Lavorazione preforo lavello con WaterJet
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_HOLES_DIAMITERWJ, 0, m_MainWindow.GetMachIniFile())
HolesDiameterWJTxBx.Text = LenToString(dVal, 2)
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_HOLES_OFFSETWJ, 0, m_MainWindow.GetMachIniFile())
HolesOffsetWJTxBx.Text = LenToString(dVal, 2)
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MIN_RADIUSWJ, 0, m_MainWindow.GetMachIniFile())
MinRadiusWJTxBx.Text = LenToString(dVal, 2)
OneHoleInCornerWJChBx.IsChecked =
(GetPrivateProfileInt(S_MACH_NEST, K_MACH_DRILLINGWJ_ON_CORNERS, 1, m_MainWindow.GetMachIniFile()) <> 0)
' leggo se attiva la rettifica degli angoli per WaterJet
EnableRectificationChBx.IsChecked =
(GetPrivateProfileInt(S_MACH_NEST, K_MACH_RECTIFICATION_ON_SUBSQUARE, 0, m_MainWindow.GetMachIniFile()) <> 0)
' Leggo accorciamento angoli con fresa
dVal = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_MILLING_SHORTENING, 0, m_MainWindow.GetMachIniFile())
ShortTxBx.Text = LenToString(dVal, 2)
' Leggo flag abilitazione incisioni con fresa
TmEnableChBx.IsChecked =
(GetPrivateProfileInt(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, 1, m_MainWindow.GetMachIniFile()) <> 0)
@@ -483,6 +387,8 @@ Public Class AlarmsPageUC
UseLaserOriginChBx.IsChecked = (nUseLaserOrigin <> 0)
End If
EnableFinalSawCutChBx.IsChecked = m_MainWindow.m_CurrentMachine.bEnableFinalSawCut
FinalDepthTxBx.Text = m_MainWindow.m_CurrentMachine.dFinalDepth
End Sub
' aggiorna le text delle lavorazioni (la selezione avviene nella pagina del grezzo o dalla pagina del progetto corrente)
@@ -925,50 +831,6 @@ Public Class AlarmsPageUC
m_MainWindow.m_MachinePageUC.MachinePageGrid.Children.Add(m_SetUpPage)
End Sub
Private Sub HolesOffsetTxBx_EgtClosed(sender As Object, e As EventArgs) Handles HolesOffsetTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(HolesOffsetTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_HOLES_OFFSET, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTRARONDRIREG, dVal)
EgtMdbSave()
End Sub
Private Sub HolesOverlapTxBx_EgtClosed(sender As Object, e As EventArgs) Handles HolesOverlapTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(HolesOverlapTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_HOLES_OVERLAP, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub HolesToleranceTxBx_EgtClosed(sender As Object, e As EventArgs) Handles HolesToleranceTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(HolesToleranceTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_HOLES_DIAMTOLER, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.HOLEDIAMTOLER, dVal)
EgtMdbSave()
End Sub
Private Sub OneHoleInCornerChBx_Click(sender As Object, e As RoutedEventArgs) Handles OneHoleInCornerChBx.Click
If OneHoleInCornerChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_ONEHOLE_INTCORNER, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_ONEHOLE_INTCORNER, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
Private Sub CutExtraLenTxBx_EgtClosed(sender As Object, e As EventArgs) Handles CutExtraLenTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(CutExtraLenTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_SAFE_LEN_CUT, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTRALONCUTREG, dVal)
EgtMdbSave()
End Sub
Private Sub AngleCutExtraLenTxBx_EgtClosed(sender As Object, e As EventArgs) Handles AngleCutExtraLenTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(AngleCutExtraLenTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub SafeZTxBx_EgtClosed(sender As Object, e As EventArgs) Handles SafeZTxBx.EgtClosed
Dim dSafeZ As Double = 0
StringToLen(SafeZTxBx.Text, dSafeZ)
@@ -976,30 +838,6 @@ Public Class AlarmsPageUC
EgtMdbSave()
End Sub
Private Sub ExtArcMinRadTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ExtArcMinRadTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(ExtArcMinRadTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_EXTARCMINRAD, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.EXTSAWARCMINRAD, dVal)
EgtMdbSave()
End Sub
Private Sub IntArcMaxSideAngTxBx_EgtClosed(sender As Object, e As EventArgs) Handles IntArcMaxSideAngTxBx.EgtClosed
Dim dVal As Double = 0
StringToDouble(IntArcMaxSideAngTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_INTARCMAXSIDEANG, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
EgtMdbSetGeneralParam(MCH_GP.INTSAWARCMAXSIDEANG, dVal)
EgtMdbSave()
End Sub
Private Sub PreCutExitChBx_Click(sender As Object, e As RoutedEventArgs) Handles PreCutExitChBx.Click
If PreCutExitChBx.IsChecked Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_PRECUTEXIT, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_PRECUTEXIT, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
Private Sub CompleteCutsChBx_Click(sender As Object, e As RoutedEventArgs) Handles CompleteCutsChBx.Click
Dim NestPage As NestPageUC = m_MainWindow.m_CadCutPageUC.m_NestPage
If CompleteCutsChBx.IsChecked() Then
@@ -1025,74 +863,6 @@ Public Class AlarmsPageUC
AdjustGhigliottinaTextOnAutomaticOrCompleteCuts()
End Sub
Private Sub CornerCutsChBx_Click(sender As Object, e As RoutedEventArgs) Handles CornerCutsChBx.Click
If CornerCutsChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
Private Sub ShortTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ShortTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(ShortTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_SHORTENING, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub InternalCutsChBx_Click(sender As Object, e As RoutedEventArgs) Handles InternalCutsChBx.Click
If InternalCutsChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
Private Sub WjIntCutsChBx_Click(sender As Object, e As RoutedEventArgs) Handles WjIntCutsChBx.Click
If WjIntCutsChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_MILLING_ON_SINKS, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
' -- INIZIO -- nuovi parametri per prefori WaterJet
Private Sub HolesDiameterWJTxBx_Click(sender As Object, e As EventArgs) Handles HolesDiameterWJTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(HolesDiameterWJTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_HOLES_DIAMITERWJ, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub HolesOffsetWJTxBx_Click(sender As Object, e As EventArgs) Handles HolesOffsetWJTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(HolesOffsetWJTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_HOLES_OFFSETWJ, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub MinRadiusWJTxBx_Click(sender As Object, e As EventArgs) Handles MinRadiusWJTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(MinRadiusWJTxBx.Text, dVal)
WritePrivateProfileString(S_MACH_NEST, K_MIN_RADIUSWJ, DoubleToString(dVal, 2), m_MainWindow.GetMachIniFile())
End Sub
Private Sub OneHoleInCornerWJChBx_Click(sender As Object, e As EventArgs) Handles OneHoleInCornerWJChBx.Click
If OneHoleInCornerWJChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_DRILLINGWJ_ON_CORNERS, "1", m_MainWindow.GetMachIniFile())
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_DRILLINGWJ_ON_CORNERS, "0", m_MainWindow.GetMachIniFile())
End If
End Sub
' -- FINE -- nuovi parametri per prefori WaterJet
' -- INIZIO -- nuovi parametri per Rettifica angoli in sottosquadra WaterJet
Private Sub EnableRectificationChBx_Click(sender As Object, e As EventArgs) Handles EnableRectificationChBx.Click
If EnableRectificationChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_RECTIFICATION_ON_SUBSQUARE, "1", m_MainWindow.GetMachIniFile)
Else
WritePrivateProfileString(S_MACH_NEST, K_MACH_RECTIFICATION_ON_SUBSQUARE, "0", m_MainWindow.GetMachIniFile)
End If
End Sub
' -- FINE -- nuovi parametri per Rettifica angoli in sottosquadra WaterJet
Private Sub TmEnableChBx_Click(sender As Object, e As RoutedEventArgs) Handles TmEnableChBx.Click
If TmEnableChBx.IsChecked() Then
WritePrivateProfileString(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, "1", m_MainWindow.GetMachIniFile())
@@ -1557,4 +1327,16 @@ Public Class AlarmsPageUC
Return String.Empty
End Function
Private Sub EnableFinalSawCutChBx_IsChecked() Handles EnableFinalSawCutChBx.Click
m_MainWindow.m_CurrentMachine.bEnableFinalSawCut = EnableFinalSawCutChBx.IsChecked
WritePrivateProfileString(S_MACH, K_ENABLEFINALSAWCUT, If(m_MainWindow.m_CurrentMachine.bEnableFinalSawCut, "1", "0"), m_MainWindow.GetMachIniFile())
End Sub
Private Sub FinalDepthTxBx_EgtClosed() Handles FinalDepthTxBx.EgtClosed
Dim dVal As Double = 0
StringToLen(FinalDepthTxBx.Text, dVal)
m_MainWindow.m_CurrentMachine.dFinalDepth = dVal
WritePrivateProfileString(S_MACH, K_FINALDEPTH, DoubleToString(m_MainWindow.m_CurrentMachine.dFinalDepth, 3), m_MainWindow.GetMachIniFile())
End Sub
End Class
+2 -2
View File
@@ -30,10 +30,10 @@
</Grid.ColumnDefinitions>
<ToggleButton Name="AlarmsBtn" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource DatiMacchinaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
<Image Source="{DynamicResource DatiMacchinaImg1}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</ToggleButton>
<ToggleButton Name="Alarms2Btn" Grid.Column="1" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource DatiMacchinaImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
<Image Source="{DynamicResource DatiMacchinaImg2}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</ToggleButton>
<ToggleButton Name="ToolsDBBtn" Grid.Column="2" Style="{DynamicResource OmagCut_YellowIconToggleButton}">
<Image Source="{DynamicResource DB-lavorazioniImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
+32 -24
View File
@@ -236,6 +236,10 @@ Public Class MachineStatusUC
End Sub
Sub DisplayPosition()
Dim nNumDec As Integer = -3
If m_MainWindow.m_CNCommunication.GetMachineInInches() Then
nNumDec = -4
End If
' Recupero le posizioni macchina
Dim dL1, dL2, dL3, dR1, dR2, dA6, dA7, dA8, dA9, dA10 As Double
m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2, dA6, dA7, dA8, dA9, dA10)
@@ -247,33 +251,37 @@ Public Class MachineStatusUC
dL3 = ptTip.z
End If
' Visualizzazione
Axis1TxBx.Text = LenToString(dL1, -3, True)
Axis2TxBx.Text = LenToString(dL2, -3, True)
Axis3TxBx.Text = LenToString(dL3, -3, True)
Axis1TxBx.Text = LenToString(dL1, nNumDec, True)
Axis2TxBx.Text = LenToString(dL2, nNumDec, True)
Axis3TxBx.Text = LenToString(dL3, nNumDec, True)
Axis4TxBx.Text = DoubleToString(dR1, -3)
Axis5TxBx.Text = DoubleToString(dR2, -3)
If m_AxesNumber >= 6 Then Axis6TxBx.Text = DoubleToString(dA6, -3)
If m_AxesNumber >= 7 Then Axis7TxBx.Text = LenToString(dA7, -3, True)
If m_AxesNumber >= 8 Then Axis8TxBx.Text = LenToString(dA8, -3, True)
If m_AxesNumber >= 9 Then Axis9TxBx.Text = LenToString(dA9, -3, True)
If m_AxesNumber >= 10 Then Axis10TxBx.Text = LenToString(dA10, -3, True)
If m_AxesNumber >= 7 Then Axis7TxBx.Text = LenToString(dA7, nNumDec, True)
If m_AxesNumber >= 8 Then Axis8TxBx.Text = LenToString(dA8, nNumDec, True)
If m_AxesNumber >= 9 Then Axis9TxBx.Text = LenToString(dA9, nNumDec, True)
If m_AxesNumber >= 10 Then Axis10TxBx.Text = LenToString(dA10, nNumDec, True)
End Sub
Sub DisplayPositionDelta()
Dim nNumDec As Integer = -3
If m_MainWindow.m_CNCommunication.GetMachineInInches() Then
nNumDec = -4
End If
' Recupero le posizioni macchina
Dim dL1, dL2, dL3, dR1, dR2, dA6, dA7, dA8, dA9, dA10 As Double
m_MainWindow.m_CNCommunication.GetAxesDeltas(dL1, dL2, dL3, dR1, dR2, dA6, dA7, dA8, dA9, dA10)
' Visualizzazione
DeltaAxis1TxBx.Text = LenToString(dL1, -3, True)
DeltaAxis2TxBx.Text = LenToString(dL2, -3, True)
DeltaAxis3TxBx.Text = LenToString(dL3, -3, True)
DeltaAxis1TxBx.Text = LenToString(dL1, nNumDec, True)
DeltaAxis2TxBx.Text = LenToString(dL2, nNumDec, True)
DeltaAxis3TxBx.Text = LenToString(dL3, nNumDec, True)
DeltaAxis4TxBx.Text = DoubleToString(dR1, -3)
DeltaAxis5TxBx.Text = DoubleToString(dR2, -3)
If m_AxesNumber >= 6 Then DeltaAxis6TxBx.Text = DoubleToString(dA6, -3)
If m_AxesNumber >= 7 Then DeltaAxis7TxBx.Text = LenToString(dA7, -3, True)
If m_AxesNumber >= 8 Then DeltaAxis8TxBx.Text = LenToString(dA8, -3, True)
If m_AxesNumber >= 9 Then DeltaAxis9TxBx.Text = LenToString(dA9, -3, True)
If m_AxesNumber >= 10 Then DeltaAxis10TxBx.Text = LenToString(dA10, -3, True)
If m_AxesNumber >= 7 Then DeltaAxis7TxBx.Text = LenToString(dA7, nNumDec, True)
If m_AxesNumber >= 8 Then DeltaAxis8TxBx.Text = LenToString(dA8, nNumDec, True)
If m_AxesNumber >= 9 Then DeltaAxis9TxBx.Text = LenToString(dA9, nNumDec, True)
If m_AxesNumber >= 10 Then DeltaAxis10TxBx.Text = LenToString(dA10, nNumDec, True)
End Sub
Sub DisplayFeed()
@@ -335,16 +343,16 @@ Public Class MachineStatusUC
Sub DisplayActiveMode(Mode As Integer)
Select Case Mode
Case 0
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Auto.png", UriKind.Relative))
Case 1
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Single.png", UriKind.Relative))
Case 2
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Mdi.png", UriKind.Relative))
Case 7
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Manual.png", UriKind.Relative))
Case 8
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Home.png", UriKind.Relative))
Case 0
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Auto.png", UriKind.Relative))
Case 1
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Single.png", UriKind.Relative))
Case 2
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Mdi.png", UriKind.Relative))
Case 7
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Manual.png", UriKind.Relative))
Case 8
MachineStatusImage.Source = New System.Windows.Media.Imaging.BitmapImage(New Uri("\Resources\MachineStatusImage\Home.png", UriKind.Relative))
End Select
End Sub
+2 -2
View File
@@ -62,5 +62,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.7.7.2")>
<Assembly: AssemblyFileVersion("2.7.7.2")>
<Assembly: AssemblyVersion("2.7.8.2")>
<Assembly: AssemblyFileVersion("2.7.8.2")>
+143 -60
View File
@@ -73,6 +73,11 @@ Public Class CNCommunication
Private m_nA10 As Integer = 9
Private m_bInInches As Boolean = False ' Solo per comandi diretti (assi sempre in mm)
' NUVO! ver. 2.7h2: m_sA1=nome (in grafica), tipo (Linear/Rotary), m_nA1=indice (nel vettore CN)
Private m_ListAxesData As New List(Of AxisData)
Public Function GetListAxesData() As List(Of AxisData)
Return m_ListAxesData
End Function
Friend Sub CNCommunication_Initialization()
@@ -164,83 +169,149 @@ Public Class CNCommunication
End If
End Sub
#Region "ver 2.7h2 NUOVA LETTURA ASSI"
' Dal nome della chiave cerca di estrarre la definizione del tipo di asse
Private Sub GetDefaultTypeAxis(sKeyAxis As String, ByRef bIsLinear As Boolean)
' non è stato definito il tipo asse: cerco di assegnarlo di default
Dim sMsg As String = String.Empty
If sKeyAxis.StartsWith("L") Then
sMsg = "Linear"
bIsLinear = True
ElseIf sKeyAxis.StartsWith("R") Then
sMsg = "Rotary"
bIsLinear = False
Else
sMsg = "Linear"
bIsLinear = True
End If
EgtOutLog("In file *.ini machine in section '[Axes]' axis type '" & sKeyAxis & "' has been defined by default as " & sMsg)
End Sub
' Legge da file *.ini macchina la definizione del tipo di asse
Private Function GetTypeAxis(sKeyAxis As String)
Dim bIsLinear As Boolean = True
Dim sValue As String = String.Empty
GetPrivateProfileString(S_AXES, sKeyAxis, "", sValue, m_MainWindow.GetMachIniFile())
If Not String.IsNullOrEmpty(sValue) Then
If sValue.ToLower = "linear" Then
bIsLinear = True
ElseIf sValue.ToLower = "rotary" Then
bIsLinear = False
Else
GetDefaultTypeAxis(sKeyAxis, bIsLinear)
End If
Else
GetDefaultTypeAxis(sKeyAxis, bIsLinear)
End If
' Ritorno il booleano che definisce il tipo di asse che è stato letto
Return bIsLinear
End Function
' Imposto il vettore dei tipi asse macchina
Private Sub SetArrayAxisIsLinear()
For Each Item As AxisData In m_ListAxesData
m_CN.b_axis_is_linear(Item.nIndex) = Item.bIsLinear
Next
End Sub
' Legge da file *.ini macchina il nome dell'asse, se non esiste impone il valore di default e restituisce FALSE
Private Function SetNameAxis(sKeyAxis As String, sAxisDefaultName As String, ByRef sAxisName As String) As Boolean
Dim bAxisExist As Boolean = False
Dim sValue As String = String.Empty
bAxisExist = (GetPrivateProfileString(S_AXES, sKeyAxis, "", sValue, m_MainWindow.GetMachIniFile()) > 0)
If String.IsNullOrEmpty(sValue) Then
sAxisName = sAxisDefaultName
Else
sAxisName = sValue
End If
Return bAxisExist
End Function
Private Function SetIndexAxis(sKeyAxis As String, nAxisDefaultIndex As Integer, ByRef nAxisIndex As String) As Boolean
Dim bAxisExist As Boolean = True
nAxisIndex = GetPrivateProfileInt(S_AXES, sKeyAxis, nAxisDefaultIndex, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(nAxisIndex) Then
nAxisIndex = -1
m_bAxesOk = False
EgtOutLog("Error on " & sKeyAxis)
bAxisExist = False
End If
Return bAxisExist
End Function
Private Sub ReadAxesData()
' Nomi e indici degli assi macchina: definisco il nome degli assi da satampare nella pagina MachineStatusUC
m_bAxesOk = True
GetPrivateProfileString(S_AXES, K_L1NAME, "X", m_sA1, m_MainWindow.GetMachIniFile())
m_nA1 = GetPrivateProfileInt(S_AXES, K_L1ID, 0, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(m_nA1) Then
m_nA1 = -1
m_bAxesOk = False
EgtOutLog("Error on L1ID")
Dim bAxisExist As Boolean = False
bAxisExist = SetNameAxis(K_L1NAME, "X", m_sA1)
If SetIndexAxis(K_L1ID, 0, m_nA1) Then
' aggiungo l'asse alla lista degli assi
If bAxisExist Then m_ListAxesData.Add(New AxisData(GetTypeAxis(K_L1TYPE), m_sA1, m_nA1))
End If
GetPrivateProfileString(S_AXES, K_L2NAME, "Y", m_sA2, m_MainWindow.GetMachIniFile())
m_nA2 = GetPrivateProfileInt(S_AXES, K_L2ID, 1, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(m_nA2) Then
m_nA2 = -1
m_bAxesOk = False
EgtOutLog("Error on L2ID")
bAxisExist = SetNameAxis(K_L2NAME, "Y", m_sA2)
If SetIndexAxis(K_L2ID, 1, m_nA2) Then
' aggiungo l'asse alla lista degli assi
If bAxisExist Then m_ListAxesData.Add(New AxisData(GetTypeAxis(K_L2TYPE), m_sA2, m_nA2))
End If
GetPrivateProfileString(S_AXES, K_L3NAME, "Z", m_sA3, m_MainWindow.GetMachIniFile())
m_nA3 = GetPrivateProfileInt(S_AXES, K_L3ID, 2, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(m_nA3) Then
m_nA3 = -1
m_bAxesOk = False
EgtOutLog("Error on L3ID")
bAxisExist = SetNameAxis(K_L3NAME, "Z", m_sA3)
If SetIndexAxis(K_L3ID, 2, m_nA3) Then
' aggiungo l'asse alla lista degli assi
If bAxisExist Then m_ListAxesData.Add(New AxisData(GetTypeAxis(K_L3TYPE), m_sA3, m_nA3))
End If
GetPrivateProfileString(S_AXES, K_R1NAME, "C", m_sA4, m_MainWindow.GetMachIniFile())
m_nA4 = GetPrivateProfileInt(S_AXES, K_R1ID, 8, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(m_nA4) Then
m_nA4 = -1
m_bAxesOk = False
EgtOutLog("Error on R1ID")
bAxisExist = SetNameAxis(K_R1NAME, "C", m_sA4)
If SetIndexAxis(K_R1ID, 8, m_nA4) Then
' aggiungo l'asse alla lista degli assi
If bAxisExist Then m_ListAxesData.Add(New AxisData(GetTypeAxis(K_R1TYPE), m_sA4, m_nA4))
End If
GetPrivateProfileString(S_AXES, K_R2NAME, "B", m_sA5, m_MainWindow.GetMachIniFile())
m_nA5 = GetPrivateProfileInt(S_AXES, K_R2ID, 7, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(m_nA5) Then
m_nA5 = -1
m_bAxesOk = False
EgtOutLog("Error on R2ID")
bAxisExist = SetNameAxis(K_R2NAME, "B", m_sA5)
If SetIndexAxis(K_R2ID, 7, m_nA5) Then
' aggiungo l'asse alla lista degli assi
If bAxisExist Then m_ListAxesData.Add(New AxisData(GetTypeAxis(K_R2TYPE), m_sA5, m_nA5))
End If
GetPrivateProfileString(S_AXES, K_A6NAME, "A", m_sA6, m_MainWindow.GetMachIniFile())
m_nA6 = GetPrivateProfileInt(S_AXES, K_A6ID, 6, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(m_nA6) Then
m_nA6 = -1
m_bAxesOk = False
EgtOutLog("Error on A6ID")
bAxisExist = SetNameAxis(K_A6NAME, "A", m_sA6)
If SetIndexAxis(K_A6ID, 6, m_nA6) Then
' aggiungo l'asse alla lista degli assi
If bAxisExist Then m_ListAxesData.Add(New AxisData(GetTypeAxis(K_A6TYPE), m_sA6, m_nA6))
End If
GetPrivateProfileString(S_AXES, K_A7NAME, "U", m_sA7, m_MainWindow.GetMachIniFile())
m_nA7 = GetPrivateProfileInt(S_AXES, K_A7ID, 3, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(m_nA7) Then
m_nA7 = -1
m_bAxesOk = False
EgtOutLog("Error on A7ID")
bAxisExist = SetNameAxis(K_A7NAME, "U", m_sA7)
If SetIndexAxis(K_A7ID, 3, m_nA7) Then
' aggiungo l'asse alla lista degli assi
If bAxisExist Then m_ListAxesData.Add(New AxisData(GetTypeAxis(K_A7TYPE), m_sA7, m_nA7))
End If
GetPrivateProfileString(S_AXES, K_A8NAME, "V", m_sA8, m_MainWindow.GetMachIniFile())
m_nA8 = GetPrivateProfileInt(S_AXES, K_A8ID, 4, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(m_nA8) Then
m_nA8 = -1
m_bAxesOk = False
EgtOutLog("Error on A8ID")
bAxisExist = SetNameAxis(K_A8NAME, "V", m_sA8)
If SetIndexAxis(K_A8ID, 4, m_nA8) Then
' aggiungo l'asse alla lista degli assi
If bAxisExist Then m_ListAxesData.Add(New AxisData(GetTypeAxis(K_A8TYPE), m_sA8, m_nA8))
End If
GetPrivateProfileString(S_AXES, K_A9NAME, "W", m_sA9, m_MainWindow.GetMachIniFile())
m_nA9 = GetPrivateProfileInt(S_AXES, K_A9ID, 5, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(m_nA9) Then
m_nA9 = -1
m_bAxesOk = False
EgtOutLog("Error on A9ID")
bAxisExist = SetNameAxis(K_A9NAME, "W", m_sA9)
If SetIndexAxis(K_A9ID, 5, m_nA9) Then
' aggiungo l'asse alla lista degli assi
If bAxisExist Then m_ListAxesData.Add(New AxisData(GetTypeAxis(K_A9TYPE), m_sA9, m_nA9))
End If
GetPrivateProfileString(S_AXES, K_A10NAME, "P", m_sA10, m_MainWindow.GetMachIniFile())
m_nA10 = GetPrivateProfileInt(S_AXES, K_A10ID, 5, m_MainWindow.GetMachIniFile())
If Not m_CN.VerifyAxis(m_nA10) Then
m_nA10 = -1
m_bAxesOk = False
EgtOutLog("Error on A10ID")
bAxisExist = SetNameAxis(K_A10NAME, "P", m_sA10)
If SetIndexAxis(K_A10ID, 5, m_nA10) Then
' aggiungo l'asse alla lista degli assi
If bAxisExist Then m_ListAxesData.Add(New AxisData(GetTypeAxis(K_A10TYPE), m_sA10, m_nA10))
End If
' Unità di misura
m_bInInches = (GetPrivateProfileInt(S_AXES, K_ININCHES, 0, m_MainWindow.GetMachIniFile()) <> 0)
' Crea il vettore che ad ogni posizione definisce il tipo di asse assegnato
SetArrayAxisIsLinear()
End Sub
#End Region ' ver 2.7h2 nuova gestione
Private Sub KillSimensCom(sProcessName As String)
Dim sAppName As String = Path.GetFileNameWithoutExtension(sProcessName)
Dim pList() As System.Diagnostics.Process = System.Diagnostics.Process.GetProcesses
@@ -1808,4 +1879,16 @@ Public Class IndexArrayToBit
m_sNameVar = NameVar
End Sub
End Class
' Utlizzata per definire la lista degli assi impostati in macchina
Public Class AxisData
Public bIsLinear As Boolean
Public sName As String
Public nIndex As Integer
Sub New(_bIsLinear As Boolean, _sName As String, _nINdex As Integer)
bIsLinear = _bIsLinear
sName = _sName
nIndex = _nINdex
End Sub
End Class
+2
View File
@@ -131,6 +131,8 @@ Public MustInherit Class CN_generico
Public d_axis_position(MAX_AXES) As Double
Public d_axis_delta(MAX_AXES) As Double
Public b_axis_valid(MAX_AXES) As Boolean
' ver. 2.7h2: gestione del tipo di asse per eseguire una corretta conversione dei dati inch/mm
Public b_axis_is_linear(MAX_AXES) As Boolean
Public d_DReadELS_value As Double
Public n_DReadELS_handle As Short
+884 -866
View File
File diff suppressed because it is too large Load Diff
+19 -8
View File
@@ -734,15 +734,26 @@ Module M_MMFiles
' Copia delle quote degli assi
For nI As Integer = 0 To (m_Axes_Id.Count() - 1)
Dim nId As Short = m_Axes_Id(nI)
' agli assi lineari devo applicare il coefficiente
If (nId Mod 10) < 3 Then
CurrCN.d_axis_position(nI) = SiemensRet.d_interf_axis_position(nId) * LinCoeff
CurrCN.d_axis_delta(nI) = SiemensRet.d_interf_axis_delta(nId) * LinCoeff
' gli assi rotanti sono sempre in gradi
Else
CurrCN.d_axis_position(nI) = SiemensRet.d_interf_axis_position(nId)
CurrCN.d_axis_delta(nI) = SiemensRet.d_interf_axis_delta(nId)
'' agli assi lineari devo applicare il coefficiente
'If (nId Mod 10) < 3 Then
' CurrCN.d_axis_position(nI) = SiemensRet.d_interf_axis_position(nId) * LinCoeff
' CurrCN.d_axis_delta(nI) = SiemensRet.d_interf_axis_delta(nId) * LinCoeff
' ' gli assi rotanti sono sempre in gradi
'Else
' CurrCN.d_axis_position(nI) = SiemensRet.d_interf_axis_position(nId)
' CurrCN.d_axis_delta(nI) = SiemensRet.d_interf_axis_delta(nId)
'End If
' ver 2.7h2
CurrCN.d_axis_position(nI) = SiemensRet.d_interf_axis_position(nId)
CurrCN.d_axis_delta(nI) = SiemensRet.d_interf_axis_delta(nId)
' verifico se l'indice 'i' è associato ad un asse rotativo oppure lineare
If CurrCN.b_axis_is_linear(nI) Then
CurrCN.d_axis_position(nI) *= LinCoeff
CurrCN.d_axis_delta(nI) *= LinCoeff
End If
Next
' Copia variabili R
+6
View File
@@ -1447,6 +1447,12 @@
<ItemGroup>
<Resource Include="Resources\NewIcons\icoBottom-3D.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\DatiMacchina1.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\NewIcons\DatiMacchina2.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
+76 -4
View File
@@ -484,7 +484,7 @@
</Style>
<Style x:Key="OmagCut_CurrProjSummeryTextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource OmagCut_LowerCaseCharacterTextBlock}">
<Setter Property="Foreground" Value="White"/>
<Setter Property="Foreground" Value="{StaticResource Omag_White}"/>
<Setter Property="TextWrapping" Value="NoWrap"/>
<Setter Property="Margin" Value="6,0,0,0"/>
</Style>
@@ -639,10 +639,10 @@
</Style>
<Style x:Key="OmagCut_LowerCaseCharacterTextBlock" TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="{StaticResource Omag_White}"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="FontSize" Value="{DynamicResource FontSize_LowerCaseCharacter}"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Foreground" Value="{StaticResource Omag_White}"/>
</Style>
<DataTemplate x:Key="GroupBoxHeaderTemplate">
@@ -748,8 +748,80 @@
<!--TextBlock per elementi delle ListBox-->
<Style x:Key="OmagCut_ListBoxTextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource OmagCut_LowerCaseCharacterTextBlock}">
<Setter Property="TextWrapping" Value="NoWrap"/>
<Style x:Key="OmagCut_ListBoxTextBlock" TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="FontSize" Value="{DynamicResource FontSize_LowerCaseCharacter}"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<!--DataTemplate testo ed immagine-->
<DataTemplate x:Key="DataTemplateItem">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<!--<Image Grid.Column="0" Source="{Binding PictureString}" Height="32" Width="32" Margin="0,8,6,4" />-->
<Image Grid.Column="0" Source="{Binding PictureString}" Style="{DynamicResource OmagCut_ListBoxIcon}" />
<!--<TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="15" VerticalAlignment="Center" />-->
<TextBlock Grid.Column="1" Text="{Binding Name}" Style="{DynamicResource OmagCut_ListBoxTextBlock}" />
</Grid>
</DataTemplate>
<!-- ListBoxItem -->
<Style x:Key="ItemList" TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="Margin" Value="1,0,1,0"/>
<Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
<Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
<Setter Property="Padding" Value="2"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="Bd"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}"
Margin="{TemplateBinding Margin}"
SnapsToDevicePixels="true">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Background" TargetName="Bd" Value="LightGray"/>
<Setter Property="BorderBrush" TargetName="Bd" Value="White"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="false"/>
<Condition Property="IsMouseOver" Value="true"/>
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Background" TargetName="Bd" Value="LightGray"/>
<Setter Property="BorderBrush" TargetName="Bd" Value="LightGray"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="Selector.IsSelectionActive" Value="false"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="Bd" Value="LightGray"/>
<Setter Property="BorderBrush" TargetName="Bd" Value="White"/>
</MultiTrigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
+7 -2
View File
@@ -194,7 +194,8 @@
<BitmapImage x:Key="SplitWJImg" UriSource="Resources/NewIcons/SPLIT-WJ.png"></BitmapImage>
<!--Machine-->
<BitmapImage x:Key="DatiMacchinaImg" UriSource="Resources/NewIcons/DatiMacchina.png"></BitmapImage>
<BitmapImage x:Key="DatiMacchinaImg1" UriSource="Resources/NewIcons/DatiMacchina1.png"></BitmapImage>
<BitmapImage x:Key="DatiMacchinaImg2" UriSource="Resources/NewIcons/DatiMacchina2.png"></BitmapImage>
<BitmapImage x:Key="DB-lavorazioniImg" UriSource="Resources/NewIcons/DB-lavorazioni.png"></BitmapImage>
<BitmapImage x:Key="DB-utensiliImg" UriSource="Resources/NewIcons/DB-utensili.png"></BitmapImage>
<BitmapImage x:Key="MacchinaImg" UriSource="Resources/NewIcons/Macchina.png"></BitmapImage>
@@ -1039,6 +1040,7 @@
<!--TextBlock per elementi delle ListBox-->
<Style x:Key="OmagCut_LowerCaseCharacterTextBlock" TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="{StaticResource Omag_Black}"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="FontSize" Value="{DynamicResource FontSize_LowerCaseCharacter}"/>
<Setter Property="VerticalAlignment" Value="Center"/>
@@ -1046,6 +1048,8 @@
<Style x:Key="OmagCut_ListBoxTextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource OmagCut_LowerCaseCharacterTextBlock}">
<Setter Property="TextWrapping" Value="NoWrap"/>
<Setter Property="FontSize" Value="{DynamicResource FontSize_LowerCaseCharacter}"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style x:Key="OmagCut_CurrProjSummeryTextBlock" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource OmagCut_LowerCaseCharacterTextBlock}">
@@ -1115,9 +1119,10 @@
<!-- ListBoxItem -->
<Style TargetType="{x:Type ListBoxItem}">
<Style x:Key="ItemList" TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="Margin" Value="1,0,1,0"/>
<Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
+3 -2
View File
@@ -36,7 +36,7 @@
</Grid.ColumnDefinitions>
</Grid>
<TextBlock Name="FilePathTxBl" Grid.Row="0" Foreground="White"
<TextBlock Name="FilePathTxBl" Grid.Row="0"
Style="{DynamicResource OmagCut_LowerCaseCharacterTextBlock}"/>
<Grid Grid.Row="1" Grid.RowSpan="2">
@@ -46,7 +46,8 @@
</Grid.RowDefinitions>
<ListBox Name="FileListBox"
ItemTemplate="{DynamicResource DataTemplateItem}"
ItemsSource="{Binding ItemList}"/>
ItemsSource="{Binding ItemList}"
ItemContainerStyle="{DynamicResource ItemList}"/>
<Grid Grid.Row="1" Margin="0,0,8,0">
<Grid.ColumnDefinitions>
+3 -2
View File
@@ -215,12 +215,13 @@ Public Class Camera
' Gestisco correttamente solo il caso: 2 tavole e 1 camera
m_nCameraCount = m_nCameraCount - 1
Case Else
EgtOutLog(" 🚨 CAUTION : Differenza tra numero di camere e numero di tavole: " & DeltaCameraTab.ToString &
EgtOutLog(" --> CAUTION : Differenza tra numero di camere e numero di tavole: " & DeltaCameraTab.ToString &
", sarà attivata solo la prima camera.")
DeltaCameraTab = 0
End Select
Else
EgtOutLog(" 🚨 CAUTION : In file *.ini machine '[Photo]' there is not param 'CameraCounter'.")
' 🚨 CAUTION:
EgtOutLog(" --> CAUTION : In file *.ini machine '[Photo]' there is not param 'CameraCounter'.")
' Aggiungo un altro processo se camera Hq abilitata (non esite una vera tavola associata)
If GetPrivateProfileInt(S_CAMERAHQ, K_CAMERAHQ_ENABLE, 0, m_MainWindow.GetMachIniFile()) = 1 Then
m_nCameraCount = m_nCameraCount + 1
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

+1 -132
View File
@@ -45,140 +45,9 @@ Module Utility
'--------------------------------------------------------------------------------------------------
#Region "INCHES FRACTIONS"
'Enum FractionPattern
' None
' Feet_Inches
' Inches
'End Enum
'' seleziona il tipo di Pattern con cui stamoare i dati
' seleziona il tipo di Pattern di stampa dei dati
Friend nCurrFractionPattern As FractionStringConverter.FractionPattern = FractionPattern.Feet_Inches
Friend dPrecision As Double = 64
'Friend Function StringFractionToStringDecimal(dVal As Double, dBase As Double) As String
' Dim sSign As String = String.Empty
' If dVal < 0 Then
' sSign = "-"
' dVal = Math.Abs(dVal)
' End If
' Dim sFraction As String = String.Empty
' ' integer and decima part of the value
' Dim dInteger As Double = Math.Floor(dVal)
' Dim dFraction As Double = dVal - dInteger
' ' the nearest decimal numerator
' Dim dNumeretor As Double = dFraction * dBase
' Dim dRound As Double = Math.Round(dNumeretor)
' ' estimates the irreducible fraction
' If dRound = 0 Then
' ' no decimal part
' ElseIf dRound = dBase Then
' ' no decimal part
' dInteger = dInteger + 1
' Else
' ' simplify fraction
' While dRound Mod 2 = 0
' dRound = dRound / 2
' dBase = dBase / 2
' End While
' sFraction = DoubleToString(dRound, 0) & "/" & DoubleToString(dBase, 0)
' End If
' ' sVal: dFeet'dInteger"sFraction --- dInteger sFraction
' Return WriteFraction(dInteger, sFraction)
'End Function
'' trasforma il valore da pollici a piedi
'Private Sub ConvertInchesToFeet(ByRef dFeet As Double, ByRef dInches As Double)
' If dInches = 0 Then Return
' While dInches - 12 >= 0
' dFeet = dFeet + 1
' dInches = dInches - 12
' End While
'End Sub
'' stampa dati in funzione del pattern dichiarato
'Private Function WriteFraction(ByVal dInches As Double, sFraction As String) As String
' Dim sVal As String = String.Empty
' Select Case nCurrFractionPattern
' Case FractionPattern.Feet_Inches
' Dim dFeet As Double = 0
' ConvertInchesToFeet(dFeet, dInches)
' If dFeet > 0 Then
' sVal = String.Format("{0}'{1}""{2}", DoubleToString(dFeet, 0), DoubleToString(dInches, 0), sFraction).Trim
' Else
' sVal = String.Format("{0}""{1}", DoubleToString(dInches, 0), sFraction).Trim
' End If
' Case FractionPattern.Inches
' sVal = DoubleToString(dInches, 0) & " " & sFraction
' sVal = String.Format("{0}""{1}", DoubleToString(dInches, 0), sFraction).Trim
' End Select
' Return sVal
'End Function
'' riceve la stringa sorgente e restituisce la nuova strunga in formato decimale (senza eseguire conversioni di unità)
'Friend Function StringFractionToDouble(sVal As String, ByRef sValConverted As String) As Boolean
' Dim dVal As Double = 0
' ' dato in ingresso: sVal = 2'3"23/32
' Dim sFeet As String = String.Empty
' Dim sFeetPattern As String = "^.*?(?=')"
' Dim dFeet As Double = 0
' Dim bOkFeet As Boolean = True
' Dim bFeetExists As Boolean = False
' Dim sInch As String = String.Empty
' Dim sInchPattern As String = "(?<=')(.*?)(?="")" ' se la stringa contiene l'apice singolo
' Dim sInchPattern1 As String = "(.*?)(?="")" ' se la stringa NON contiene l'apice singolo
' Dim dInch As Double = 0
' Dim bOkInch As Boolean = True
' Dim bInchExists As Boolean = False
' Dim sFraction As String = String.Empty
' Dim sFractionPattern As String = "(?<="")(.*)" ' se la stringa contiene l'apice doppio
' Dim sFractionPattern1 As String = "(?<=')(.*)" ' se la stringa NON contiene l'apice doppio ma solo quello singolo
' Dim dFraction As Double = 0
' Dim bOkFraction As Boolean = True
' Dim bFractionExists As Boolean = False
' ' recupero il valore di Feet (2')
' Dim sMyMatch As String = Regex.Match(sVal, sFeetPattern).Groups(1).Value
' If Not String.IsNullOrEmpty(sMyMatch) Or Not String.IsNullOrWhiteSpace(sMyMatch) Then
' sFeet = sMyMatch.Trim
' bOkFeet = StringToDouble(sFeet, dFeet)
' bFeetExists = True
' End If
' ' recupero il valore di Inch (3") dopo i Feet - oppure direttamente i pollici
' If bFeetExists Then
' sMyMatch = Regex.Match(sVal, sInchPattern).Groups(1).Value
' Else
' sMyMatch = Regex.Match(sVal, sInchPattern1).Groups(1).Value
' End If
' If Not String.IsNullOrEmpty(sMyMatch) Or Not String.IsNullOrWhiteSpace(sMyMatch) Then
' sInch = sMyMatch.Trim
' bOkInch = StringToDouble(sInch, dInch)
' bInchExists = True
' End If
' ' recupero il valore frazionario (23/32) dopo i pollici - oppure dopo i feet - oppure direttamente i valore inteso come pollici
' If bInchExists Then
' sMyMatch = Regex.Match(sVal, sFractionPattern).Groups(1).Value
' ElseIf bFeetExists And Not bInchExists Then
' sMyMatch = Regex.Match(sVal, sFractionPattern1).Groups(1).Value
' ElseIf Not bFeetExists And Not bInchExists Then
' sMyMatch = sVal
' End If
' If Not String.IsNullOrEmpty(sMyMatch) Or Not String.IsNullOrWhiteSpace(sMyMatch) Then
' sFraction = sMyMatch
' bOkFraction = StringToDouble(sFraction, dFraction)
' End If
' ' calcolo il valore decimale dell'espressione
' If bOkFeet And bOkInch And bOkFraction Then
' dVal = dFeet / 12 + dInch + dFraction
' sValConverted = DoubleToString(dVal, 4)
' Return True
' Else
' Return False
' End If
'End Function
#End Region ' Inches Fraction
'--------------------------------------------------------------------------------------------------