Compare commits

..

18 Commits

Author SHA1 Message Date
Nicola Pievani f388dc0c50 Merge commit '6613b3d551b2f06a1940fcd7b1c2dd9ca6743bd5' 2024-12-23 13:28:25 +01:00
Nicola Pievani 6613b3d551 Nuovi messaggi per assistenza 2024-12-23 12:33:19 +01:00
Nicola Pievani 615d6d2652 Nuova gestione tagli parziali Saw&Waterjet 2024-12-23 11:23:53 +01:00
Nicola Pievani 3ea8335357 Gestione parcheggio per scatto foto 2024-12-16 15:40:03 +01:00
Nicola Pievani bbdac91894 Migliorata gestione tempi comunicazione NUM_old 2024-12-13 17:04:55 +01:00
Nicola Pievani 10c4c7ecc1 Reimpostato logo OmagCut 2024-11-11 11:51:07 +01:00
Nicola Pievani 03def4b530 Merge commit '4ab7811b50e72cb716abfca74c60e4f3c586d6f5' into develop 2024-11-11 11:45:00 +01:00
Nicola Pievani a3b56444f6 Correzione altezza posizionamento per Test taglio 2024-11-11 11:40:05 +01:00
Nicola Pievani 837380226a Merge commit 'f15935ecbc2c3b1994f8684ea5511d32382fefde' into develop 2024-11-04 15:12:09 +01:00
Dario Sassi f15935ecbc OmagCUT 2.6k1 :
- piccola modifica di testa per tagli di separazione lastra prolungabili da un solo lato.
2024-11-04 08:38:45 +01:00
Nicola Pievani 00360013e3 Merge commit '9c267aacf77c6517f98ba584c5d945bae21bc656' into develop 2024-10-30 11:25:34 +01:00
Demetrio Cassarino 9c267aacf7 -modifica grafica treeview cvs 2024-10-29 11:57:05 +01:00
Nicola Pievani 4c34b62e65 Inserito comando Righello nella pagina VeinMatch 2024-10-29 09:54:01 +01:00
Nicola Pievani 87037b6c6a Migliorata gestione selezione OnOff da lista lavorazioni 2024-10-28 12:09:15 +01:00
Nicola Pievani 74c479d17d Gestione attivazione comando modifica 2024-10-28 11:23:53 +01:00
Nicola Pievani ee6c0ad146 Merge branch 'develop' 2024-10-09 16:34:24 +02:00
Nicola Pievani ead6bcec6d Gestione deselezione tagli in pagina split 2024-10-09 16:33:45 +02:00
Nicola Pievani a1ad658f27 Correzione DoubleClick OnOff scena 2024-10-09 15:54:47 +02:00
17 changed files with 276 additions and 63 deletions
+25 -2
View File
@@ -47,6 +47,26 @@ Friend Module CamAuto
Return bOk
End Function
' versione CamAuto 2.6l1: gestione tagli con ridotto affondamento
Friend Function AddWaterJetMachining(LocaList As List(Of Integer), ByRef nWarn As Integer) As Boolean
EgtLuaCreateGlobTable("CAM")
SetLuaStandardCamParams()
For i As Integer = 0 To LocaList.Count - 1
EgtLuaSetGlobIntVar("CAM.TAB_OPERID." & (i + 1).ToString, LocaList(i))
Next
Dim nErr As Integer = 999
Dim bOk As Boolean = EgtLuaExecFile(m_MainWindow.GetCamAutoDir() & "\CamAuto.lua")
bOk = bOk AndAlso EgtLuaGetGlobIntVar("CAM.ERR", nErr) AndAlso nErr = 0
bOk = bOk AndAlso EgtLuaCallFunction("CAM.AddWaterJets")
EgtLuaGetGlobIntVar("CAM.ERR", nErr)
EgtLuaResetGlobVar("CAM")
If nErr <> 0 Then
bOk = False
EgtOutLog("Error in CamAuto : " & nErr.ToString())
End If
Return bOk
End Function
Friend Function EraseMachinings(nPartId As Integer) As Boolean
EgtLuaCreateGlobTable("CAM")
EgtLuaSetGlobIntVar("CAM.PARTID", nPartId)
@@ -543,6 +563,7 @@ Friend Module CamAuto
Dim dReducedDepth As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_REDUCEDDEPTH, 1, m_MainWindow.GetMachIniFile())
' Ciclo sulle lavorazioni
Dim nOperId As Integer = EgtGetFirstOperation()
Dim LocalListOperId As New List(Of Integer)
While nOperId <> GDB_ID.NULL
' verifico sia una lavorazione valida di taglio con lama
If IsValidMachining( nOperId) And EgtGetOperationType( nOperId) = MCH_OY.SAWING Then
@@ -557,12 +578,14 @@ Friend Module CamAuto
' se abilitato e attivo waterjet, lo aggiungo per completare il taglio
If m_MainWindow.m_CurrentMachine.WaterJettingActive Then
Dim nWarn As Integer = 0
AddWaterJetMachining(nOperId, nWarn)
LocalListOperId.Add(nOperId)
'AddWaterJetMachining(nOperId, nWarn)
End If
End If
End If
End If
nOperId = EgtGetNextOperation(nOperId)
End While
If LocalListOperId.Count > 0 Then AddWaterJetMachining(LocalListOperId, 0)
Return bModified
End Function
+18 -8
View File
@@ -27,7 +27,7 @@
</Grid.ColumnDefinitions>
<!--Griglia per oscurare i bottoni della pagina sottostante-->
<Grid Background="{DynamicResource OmagCut_Gray}">
<Grid Background="{DynamicResource OmagCut_Gray}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
@@ -49,7 +49,7 @@
<Label Name="CsvPathTxBl" Grid.Row="1" Background="White" FontSize="16" VerticalAlignment="Center" Padding="2,5,0,5"/>
<TreeView Name="PartsTreeView" Grid.Row="2" Background="{DynamicResource OmagCut_TreeViewBackGroundColor}">
<TreeView Name="PartsTreeView" Grid.Row="2" Background="{StaticResource OmagCut_TreeViewGradientGray}">
<TreeView.Resources>
<!--Modifico HierarchicalDataTemplate del CathegoryItem per poter inserire immagine e testo e per -->
<!--renderlo apribile con un solo click -->
@@ -62,7 +62,7 @@
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{Binding PictureString}" Height="32" Width="32" Margin="0,8,6,4" />
<TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="15" Margin="10" />
<TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="15" Margin="10" Foreground="Black" />
</Grid>
@@ -123,7 +123,10 @@
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding bIsActive}" Value="False">
<Setter Property="Foreground" Value="{StaticResource OmagCut_LightGray}"/>
<Setter Property="Foreground" Value="{StaticResource OmagCut_White}"/>
</DataTrigger>
<DataTrigger Binding="{Binding bIsActive}" Value="True">
<Setter Property="Foreground" Value="Black"/>
</DataTrigger>
</Style.Triggers>
</Style>
@@ -131,18 +134,25 @@
</HierarchicalDataTemplate>
<!--Modifico DataTemplate del ToolItem per poter inserire immagine e testo-->
<DataTemplate DataType="{x:Type self:PartCustomItem}">
<Grid Width="246" Margin="0,5,0,5" HorizontalAlignment="Right">
<Grid Width="234.8" Margin="0,5,0,5" HorizontalAlignment="Right">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Name}" Height="18" FontSize="14" HorizontalAlignment="Right"/>
<TextBlock Grid.Column="1" Text="{Binding sText1}" Height="18" FontSize="14" HorizontalAlignment="Center"/>
<TextBlock Grid.Column="2" Text="{Binding sText2}" Height="18" FontSize="14" HorizontalAlignment="Left"/>
<TextBlock x:Name="TbName" Grid.Column="0" Text="{Binding Name}" Height="18" FontSize="14" HorizontalAlignment="Right"/>
<TextBlock x:Name="TbText1" Grid.Column="1" Text="{Binding sText1}" Height="18" FontSize="14" HorizontalAlignment="Center"/>
<TextBlock x:Name="TbText2" Grid.Column="2" Text="{Binding sText2}" Height="18" FontSize="14" HorizontalAlignment="Left"/>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding bIsActive}" Value="False">
<Setter TargetName="TbName" Property="TextDecorations" Value="Strikethrough" />
<Setter TargetName="TbText1" Property="TextDecorations" Value="Strikethrough" />
<Setter TargetName="TbText2" Property="TextDecorations" Value="Strikethrough" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</TreeView.Resources>
+1
View File
@@ -2,6 +2,7 @@
Imports EgtWPFLib
Imports System.Reflection
Imports System.Globalization
Imports EgtWPFLib5
Public Class CadCutPageUC
+1 -1
View File
@@ -117,7 +117,7 @@ Public Module SplitAuto
End If
' verifico se trasformabile in un taglio di separazione (almeno da un lato)
If (dStartAddLen > -EPS_SMALL Or dEndAddLen > -EPS_SMALL Or Mach.m_bMngLeadInOnIntCorner) And
Mach.m_sLay = NAME_OUTLOOP And Mach.m_nInterf = FMI_TYPE.NONE Then
Mach.m_sLay = NAME_OUTLOOP And ( Mach.m_nInterf And FMI_TYPE.RM) = 0 Then
Dim nRes As Integer = EgtVerifyCutAsSplitting(nOperId)
Dim bIn As Boolean = False
Dim bOut As Boolean = False
+19 -7
View File
@@ -571,6 +571,11 @@ Public Class SplitPageUC
m_nDragInd = -1
m_nDragType = 0
m_nSelected = GDB_ID.NULL
If Not IsNothing(MachiningLsBx.SelectedItem) Then
MarkMachining(MachiningLsBx.SelectedItem.Ind, False)
EgtDraw()
End If
MachiningLsBx.SelectedIndex = -1
End If
End Sub
@@ -700,6 +705,11 @@ Public Class SplitPageUC
End Sub
Private Sub MachiningLsBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MachiningLsBx.SelectionChanged
' se non attiva la modifica allora esco
If m_bShow Then
MachiningLsBx.SelectedIndex = -1
Return
End If
If MachiningLsBx.SelectedItems.Count = 0 Then Return
If MachiningLsBx.SelectedItems.Count = 1 Then m_bAreHomogeneous = True
' creo lista ordinata dei selezionati
@@ -741,6 +751,8 @@ Public Class SplitPageUC
End Sub
Private Sub MachiningLsBx_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles MachiningLsBx.MouseDoubleClick
' se disabilitata la modifica allora esco
If m_bShow Then Return
If m_IsCtrlKeyDown Or m_IsShiftKeyDown Then Return
OnOffCut()
End Sub
@@ -1946,22 +1958,22 @@ Public Class SplitPageUC
NumberDirectionMachining(nI)
Next
' -------------------- Recupero le lavorazioni indicate come attive --------------------
' -------------------- Recupero le lavorazioni indicate come attive -- INIZIO --------------------
Dim ActiveMachLst As New List(Of Integer)
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
ActiveMachLst.Add(ItemSplitMach.Ind)
If ItemSplitMach.bIsActive Then ActiveMachLst.Add(ItemSplitMach.Ind)
Next
' -------------------- Recupero le lavorazioni indicate come attive --------------------
' -------------------- Recupero le lavorazioni indicate come attive -- FINE --------------------
' Preparo la lista degli Item
ShowMachiningList()
' -------------------- Riattivo le lavorazioni precedenti --------------------
' -------------------- Riattivo le lavorazioni precedenti -- INIZIO --------------------
For Each Item As SplitMach In m_MachiningList
' spengo tutte le lavorazioni disponibili
EgtSetInfo(Item.m_nId, INFO_MCH_USER_OFF, True)
Next
' riattivo solo quelle indicate come attive
For nIndex As Integer = 0 To ActiveMachLst.Count - 1
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
If ItemSplitMach.Ind = ActiveMachLst(nIndex) Then
@@ -1974,7 +1986,7 @@ Public Class SplitPageUC
End If
Next
Next
' -------------------- Riattivo le lavorazioni precedenti --------------------
' -------------------- Riattivo le lavorazioni precedenti -- FINE --------------------
' Aggiorno visualizzazione
EgtDraw()
+3
View File
@@ -182,6 +182,9 @@
Public Const K_PHOTO_TAB2_OFFSETY As String = "Tab2OffsetY"
Public Const K_PHOTO_HQ_OFFSETX As String = "HQOffsetX"
Public Const K_PHOTO_HQ_OFFSETY As String = "HQOffsetY"
Public Const K_CAMERA_DIRECT_CMD As String = "CameraDirectCmd"
Public Const K_CAMERA_STATE_VAR As String = "CameraStateVar"
Public Const K_ENABELE_GOHOME_FOR_PHOTO As String = "EnableGoHomeForPhoto"
Public Const S_TOOLS As String = "Tools"
Public Const K_DRILLBIT As String = "Drillbit"
+2 -2
View File
@@ -532,8 +532,8 @@ Public Class SawTestUC
vtPerp.Rotate(Vector3d.Z_AX, +90)
Else
m_CurrProjPage.ClearMessage()
' 91144 = Set machining side: right or left.
m_CurrProjPage.SetInfoMessage(EgtMsg(91144))
' 91143 = Set machining side: right or left.
m_CurrProjPage.SetInfoMessage(EgtMsg(91143))
End If
Dim ptEnd As Point3d = ptStart + vtDir * m_dLen + vtPerp * dThick
Dim dLen2 As Double = m_dLen / 2
+4 -4
View File
@@ -3,15 +3,15 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
FontFamily="{DynamicResource OmagCut_Font}"
Title="OpenFile" Height="500.6" Width="426.6" WindowStyle="None"
Title="OpenFile" Height="587.4" Width="500.6" WindowStyle="None"
ResizeMode="NoResize" ShowInTaskbar="False" AllowsTransparency="True"
Background="Transparent">
<Border Style="{DynamicResource OmagCut_Border}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="0.2*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="0.2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
@@ -36,7 +36,7 @@
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal"
HorizontalAlignment="Center">
<ScrollViewer Name="MyScrollViewer" VerticalScrollBarVisibility="Auto">
<TextBlock Name="LicenseMsgTxBl" MaxWidth="340"
<TextBlock Name="LicenseMsgTxBl" MaxWidth="425"
HorizontalAlignment="Center"
Foreground="{DynamicResource Omag_White}" FontSize="20" VerticalAlignment="Center"
TextWrapping="Wrap"/>
+1 -1
View File
@@ -17,7 +17,7 @@
Public Sub Init() Handles Me.Initialized
IconTxBl.Text = "⚠️"
LicenseTxBl.Text = "Warning" & vbCrLf & m_sTitle
LicenseTxBl.Text = m_sTitle
m_sMessage = m_sMessage.Replace("/n", "£")
Dim sItems As String() = m_sMessage.Split("£")
For Index As Integer = 0 To sItems.Count - 1
+1 -1
View File
@@ -27,7 +27,7 @@
</Grid.ColumnDefinitions>
<Border Name="LogoBrd" Background="Transparent">
<Image Source="../Resources/NewIcons/Logo-Egalware (2).png" Stretch="Uniform" Margin="1"/>
<Image Source="../Resources/NewIcons/logo-OmCut.png" Stretch="Uniform" Margin="1"/>
</Border>
<!-- ** Definizione della Grid delle tab ** -->
+20 -11
View File
@@ -343,8 +343,8 @@ Class MainWindow
' Verifico abilitazione nesting automatico
m_bAutoNest = Not String.IsNullOrWhiteSpace(sNestKey)
' Recupero opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2610, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2610, 1, m_nKeyOptions)
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2612, 1, m_nKeyLevel) And
EgtGetKeyOptions(9423, 2612, 1, m_nKeyOptions)
' Verifico abilitazione prodotto
Dim bProd As Boolean = GetKeyOption(KEY_OPT.CUT_BASE)
' Impostazione per programma OnlyFrame: solo se CUT_BASE non attivo
@@ -656,26 +656,35 @@ Class MainWindow
Dim sAssStatus As String = " discontinued"
Dim nAssLeftDays As Integer
' MESSAGGIO...
If EgtGetKeyAssLeftDays(nAssLeftDays) And nAssLeftDays >= 0 Then
If nAssLeftDays > 30 Then
If nAssLeftDays > 0 Then
sAssStatus = "expires within " & nAssLeftDays.ToString() & " days"
ElseIf nAssLeftDays > 0 Then
sAssStatus = "to be renewed within " & nAssLeftDays.ToString() & " days"
'sAssStatus = "to be renewed within " & nAssLeftDays.ToString() & " days"
Else
sAssStatus = "to be renewed by today"
sAssStatus = "Expired"
End If
End If
' Or nAssLeftDays = 358
If (nAssLeftDays <= 7 And nAssLeftDays >= 0) Or nAssLeftDays = 14 Or nAssLeftDays = 21 Or nAssLeftDays = 28 Then
Dim sMsg As String = EgtMsg(91141) ' Assistenza in scadenza /nContattare assistenza:/n
If (nAssLeftDays <= 7 And nAssLeftDays >= 0) Or nAssLeftDays = 14 Or nAssLeftDays = 21 Or nAssLeftDays = 28 Or nAssLeftDays = 39 Then
' 91145=Avviso importante
Dim sMsg_Title As String = EgtMsg(91145)
' 91146=Il contratto di aggiornamento della licenza in uso scadrà tra {0} giorni./n
Dim sMsg_AssStatus As String = String.Format(EgtMsg(91146), nAssLeftDays.ToString())
' 91147=Se desiderate rimanere aggiornati e continuare ad usufruire dei benefici del servizio, vi invitiamo a contattare la nostra assistenza al seguente indirizzo:/n
Dim sMsg_RefAssistance As String = EgtMsg(91147)
Dim sAssistance As String = String.Empty
GetPrivateProfileString(S_GENERAL, "Assistances", "", sAssistance, GetIniFile)
Dim sItems As String() = sAssistance.Split(","c)
For Each Item As String In sItems
sMsg &= "" & Item.Trim & " /n"
sMsg_RefAssistance &= "" & Item.Trim & " /n"
Next
Dim MyLicWn As New LicenseWindow(Me, sMsg, "Assistance " & sAssStatus)
' 91148=Grazie per la vostra collaborazione.
Dim sMsg_ThankYou As String = EgtMsg(91148)
Dim MyLicWn As New LicenseWindow(Me, sMsg_AssStatus & sMsg_RefAssistance & sMsg_ThankYou, sMsg_Title)
MyLicWn.WindowStartupLocation = WindowStartupLocation.CenterOwner
MyLicWn.Show()
End If
@@ -1327,7 +1336,7 @@ Class MainWindow
If m_OnlyFrame Then
If nPrjType = CurrentProjectPageUC.PRJ_TYPE.FLATS And
m_ActivePage <> Pages.RawPart And m_ActivePage <> Pages.DirectCut And m_ActivePage <> Pages.Simulation Then
Dim FrameWnd As New EgtMsgBox(Me, EgtMsg(91142), EgtMsg(91143), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL)
Dim FrameWnd As New EgtMsgBox(Me, EgtMsg(91141), EgtMsg(91142), EgtMsgBox.Buttons.OK, EgtMsgBox.Icons.NULL)
'' Gestione stato FastGrid
'm_CadCutPageUC.m_FastGridSlabManager.OnPreNewProject()
' Cancello progetto salvato con nome da file ini
+2 -2
View File
@@ -62,5 +62,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.6.10.1")>
<Assembly: AssemblyFileVersion("2.6.10.1")>
<Assembly: AssemblyVersion("2.6.12.1")>
<Assembly: AssemblyFileVersion("2.6.12.1")>
+2 -2
View File
@@ -1297,14 +1297,14 @@ Namespace Num
End Function
Function VerifyBusy() As eStateType
For I As Integer = 0 To 50
For I As Integer = 0 To 150
If global_state <> eStateType.READY Then
System.Threading.Thread.Sleep(SLEEP_TIME)
Else
Exit For
End If
Next
EgtOutLog("eStateType: " & global_state.ToString & " -- if eStateType=0 it means READY")
Return global_state
End Function
+1 -1
View File
@@ -375,7 +375,7 @@ Public Class ProjectMgrUC
If Not EgtGetTableRef(1, m_ptTabOri) Then Return
' recupero il punto medio della curva
EgtMidPoint(nIdSelected, GDB_ID.ROOT, ptMid)
ptMid.z = m_ptTabOri.z + CamAuto.GetRawHeight() + dHeight
ptMid.z = m_ptTabOri.z + CamAuto.GetRawHeight() + dHeight + m_MainWindow.m_CurrentMachine.dAdditionalTable
' Offset dovuto allo spessore Utensile
ptMid -= vtOffset * dThick
+65
View File
@@ -347,6 +347,13 @@ Public Class Camera
' ------------------------------------ accensione riflettori ------------------------------------
' ------------------------------------ mando la testa in home ------------------------------------
If Not GoHomeForPhoto() Then
EgtOutLog("Error in positioning")
End If
' ------------------------------------ mando la testa in home ------------------------------------
' Scatto una foto con eventuale riconoscimento del contorno (il programma deve essere già attivo)
Dim bOk As Boolean = False
Dim sArgs As String = "2 0"
@@ -364,6 +371,64 @@ Public Class Camera
Return bOk
End Function
Private Function GoHomeForPhoto() As Boolean
Dim bGoHome As Boolean = GetPrivateProfileInt(S_PHOTO, K_ENABELE_GOHOME_FOR_PHOTO, 0, m_MainWindow.GetMachIniFile()) <> 0
' Se non configurato esco senza generare errore
If Not bGoHome Then Return True
' Costruisco il bottone per potere eseguire il comando MDI
Dim GoHome As MachineButton = Nothing
Dim sDirectCmdFile As String = String.Empty
GetPrivateProfileString(S_PHOTO, K_CAMERA_DIRECT_CMD, "", sDirectCmdFile, m_MainWindow.GetMachIniFile())
If String.IsNullOrEmpty(sDirectCmdFile) Then
Return False
Else
EgtOutLog("Direct command for positionig head: " & sDirectCmdFile)
End If
GoHome = New TwoStateButton("", sDirectCmdFile, "", "", "")
' eseguo lo script lua associato
GoHome.ExecuteMDICommand(GoHome.TLuaScriptName)
' Leggo nome variabile posizione home raggiunta
Dim CameraStateNameVar As String = String.Empty
GetPrivateProfileString(S_PHOTO, K_CAMERA_STATE_VAR, "", CameraStateNameVar, m_MainWindow.GetMachIniFile())
If String.IsNullOrEmpty(CameraStateNameVar) Then
'Return False
Else
EgtOutLog("Variable for read status of positioning head: " & CameraStateNameVar)
End If
' 91144=Going home
m_MainWindow.m_CurrentProjectPageUC.SetInfoMessage(EgtMsg(91144))
UpdateUI()
' Eseguo reset variabile posizione home raggiunta
m_MainWindow.m_CNCommunication.m_CN.DVariables_WriteVariables2(CameraStateNameVar, "0")
System.Threading.Thread.Sleep(300)
' Definisco flag posizionamento completato
Dim bPositionOk As Boolean = False
For I As Integer = 0 To 40
' Devo rileggere la variabile ad ogni ciclo
m_MainWindow.m_CNCommunication.m_CN.ReadEls_Add_Parameter(CameraStateNameVar, 3)
System.Threading.Thread.Sleep(100)
If m_MainWindow.m_CNCommunication.m_CN.n_DReadELS_handle = 3 Then
Dim CameraStateVal As Integer = CInt(m_MainWindow.m_CNCommunication.m_CN.d_DReadELS_value)
Select Case CameraStateVal
Case 0
' Non faccio alcunchè perchè si sta posizionando
Case 1
' Posizionamento completato
bPositionOk = True
Exit For
Case 2
' Errore
bPositionOk = False
Exit For
End Select
End If
System.Threading.Thread.Sleep(900)
Next
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
UpdateUI()
Return bPositionOk
End Function
Private Function WaitPhoto(nInd As Integer) As Boolean
' Ciclo di ricerca foto scattata
Dim nMaxThick = 10 * m_nTimeout
+71 -21
View File
@@ -4,27 +4,77 @@
TextBlock.FontFamily="{DynamicResource OmagCut_Font}"
Height="500" Width="500" ShowInTaskbar="False" Initialized="Window_Initialized" MinWidth="300" MinHeight="300">
<Grid Name="VeinMatchingGrid" Background="{DynamicResource OmagCut_Gray}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="91"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical">
<Button Name="NewBtn" Height="64"
Style="{DynamicResource OmagCut_YellowTextButton}"
Content="New"/>
<Button Name="ExportBtn" Height="64"
Style="{DynamicResource OmagCut_YellowTextButton}"
Content="Export"/>
<Button Name="AssemblyBtn" Height="64"
Style="{DynamicResource OmagCut_YellowTextButton}"
Content="3D"/>
<Button Name="ImportCurrProjBtn" Height="64"
Style="{DynamicResource OmagCut_YellowTextButton}"
Content="Import"/>
</StackPanel>
<Grid Name="VeinMatchingGrid" Background="{DynamicResource OmagCut_Gray}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="91"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<DockPanel>
<StackPanel Orientation="Vertical" VerticalAlignment="Top" DockPanel.Dock="Top">
<Button Name="NewBtn" Height="64"
Style="{DynamicResource OmagCut_YellowTextButton}"
Content="New"/>
<Button Name="ExportBtn" Height="64"
Style="{DynamicResource OmagCut_YellowTextButton}"
Content="Export"/>
<Button Name="AssemblyBtn" Height="64"
Style="{DynamicResource OmagCut_YellowTextButton}"
Content="3D"/>
<Button Name="ImportCurrProjBtn" Height="64"
Style="{DynamicResource OmagCut_YellowTextButton}"
Content="Import"/>
<ToggleButton Name="MeasureBtn" Grid.Column="0" Style="{DynamicResource OmagCut_RightGrayYellowIconToggleButton}">
<Image Source="{DynamicResource MeasureImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
</ToggleButton>
</StackPanel>
<StackPanel Name="DistanceStkPnl" Orientation="Vertical" VerticalAlignment="Bottom" DockPanel.Dock="Bottom" Margin="10,0,0,0">
<!--Distanza-->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="MeasureLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
Text="Dist=" HorizontalAlignment="Right" />
<TextBlock Name="MeasureValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
HorizontalAlignment="Left"/>
</Grid>
<!--Proiezione in X-->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="dXLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
Text="dX=" HorizontalAlignment="Right"/>
<TextBlock Name="dXValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
HorizontalAlignment="Left"/>
</Grid>
<!--Proiezione in Y -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="dYLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
Text="dY=" HorizontalAlignment="Right"/>
<TextBlock Name="dYValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
HorizontalAlignment="Left"/>
</Grid>
<!--Proiezione in Z -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="dZLabTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="0" Foreground="{StaticResource Omag_LightGray}"
Text="dZ=" HorizontalAlignment="Right"/>
<TextBlock Name="dZValTxBl" Height="20" DockPanel.Dock="Bottom" Grid.Column="1" Foreground="{StaticResource Omag_LightGray}"
HorizontalAlignment="Left"/>
</Grid>
</StackPanel>
</DockPanel>
</Grid>
</Window>
+40
View File
@@ -82,6 +82,8 @@ Public Class VeinMatchingWindow
Dim nTxrMaxLinPix As Integer = GetPrivateProfileInt(S_SCENE, K_TEXMAXLINPIX, 4096, m_MainWindow.GetIniFile())
EgtSetTextureMaxLinPixels(nTxrMaxLinPix)
m_bFirst = False
' nascondo la visulizzazione dei campi
DistanceStkPnl.Visibility = Visibility.Hidden
End If
' inibisco selezione diretta da Scene
VeinMatchingScene.SetStatusNull()
@@ -194,6 +196,25 @@ Public Class VeinMatchingWindow
EgtDraw()
End Sub
Private Sub OnShowDistanceVector(sender As Object, vtDist As Vector3d) Handles VeinMatchingScene.OnShowDistanceVector
Dim sMsg As String = DistToString(vtDist)
Dim sItemsMsg As String() = sMsg.Split(vbCrLf)
If sItemsMsg.Count > 1 Then
' stampo solo il valore di lunghezza
MeasureValTxBl.Text = sItemsMsg(0).Split("="c)(1)
sItemsMsg(1) = sItemsMsg(1).Trim
Dim sSubItemMsg As String() = sItemsMsg(1).Split(" "c)
If sSubItemMsg.Count > 1 Then
dXValTxBl.Text = sSubItemMsg(0).Split("="c)(1)
dYValTxBl.Text = sSubItemMsg(1).Split("="c)(1)
dZValTxBl.Text = sSubItemMsg(2).Split("="c)(1)
End If
Else
MeasureValTxBl.Text = sMsg
End If
DistanceStkPnl.Visibility = Visibility.Visible
End Sub
Private Sub NewBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewBtn.Click
VeinMatching.Clear()
End Sub
@@ -211,6 +232,25 @@ Public Class VeinMatchingWindow
VeinMatching.LoadCurrPartFromProj()
End Sub
Private Sub MeasureBtn_Checked(sender As Object, e As RoutedEventArgs) Handles MeasureBtn.Checked
VeinMatchingScene.SetStatusGetDistance()
Dim ptRef1 As Point3d
If EgtGetTableRef(1, ptRef1) Then
EgtSetGridFrame(New Frame3d(ptRef1))
VeinMatchingScene.SetGridCursorPos(True)
End If
End Sub
Private Sub MeasureBtn_Unchecked(sender As Object, e As RoutedEventArgs) Handles MeasureBtn.Unchecked
VeinMatchingScene.ResetStatusGetDistance()
VeinMatchingScene.SetStatusNull()
MeasureValTxBl.Text = ""
dXValTxBl.Text = ""
dYValTxBl.Text = ""
dZValTxBl.Text = ""
DistanceStkPnl.Visibility = Visibility.Hidden
End Sub
End Class
Friend Module VeinMatching