Compare commits
46 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 17229ab9bc | |||
| 2e0f2eab1b | |||
| 58c62ebd5c | |||
| f9fd0f0168 | |||
| ca0210cf09 | |||
| 622912dec3 | |||
| 5ff39c9d1c | |||
| 60a666c1c1 | |||
| 5b3e73290c | |||
| 854519b706 | |||
| d8179b47ee | |||
| f68e141449 | |||
| 011c94cc6b | |||
| 64da46c0a4 | |||
| aab81c6af7 | |||
| 46be644285 | |||
| 5fe75b78e5 | |||
| eafe6184eb | |||
| 0e35e41c4a | |||
| 64e3fd83de | |||
| e5e74a6afd | |||
| 28deac8501 | |||
| 367a8c9fc3 | |||
| 0717546ad0 | |||
| 3bf1a87688 | |||
| 6d82b6efee | |||
| 94102172dd | |||
| 82426db72a | |||
| 20fd722dee | |||
| c83b3e6bea | |||
| a45613ff39 | |||
| 84690ddf32 | |||
| 844cb3cfe6 | |||
| ee84a57194 | |||
| e26d68b0f3 | |||
| 2e9071569a | |||
| 5f03a36df2 | |||
| ac9c347bc0 | |||
| 9784c75766 | |||
| 8af69e553d | |||
| 3128f89f63 | |||
| 56884c34f2 | |||
| 332b17e55e | |||
| 4aaf1d084e | |||
| 4bcbe8d290 | |||
| 0107fc022b |
@@ -133,10 +133,14 @@
|
||||
</Button>
|
||||
|
||||
|
||||
<Button Name="RemovePartBtn" Grid.ColumnSpan="3" Grid.Row="6"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
<Button Name="RemovePartBtn" Grid.ColumnSpan="2" Grid.Row="6"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
|
||||
<Grid Grid.Row="7" Grid.ColumnSpan="3">
|
||||
<Button Name="ScrapsBtn" Grid.Column="3" Grid.Row="6"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
|
||||
|
||||
<Grid Grid.Row="7" Grid.ColumnSpan="3">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
|
||||
@@ -35,6 +35,7 @@ Public Class MoveRawPartPage
|
||||
RemovePartBtn.Content = EgtMsg(MSG_MOVERAWPAGEUC + 1) 'Rimuovi
|
||||
ModifyBtn.Content = EgtMsg(MSG_SPLITPAGEUC + 17) 'Modifica
|
||||
ResetBtn.Content = EgtMsg(MSG_NESTPAGEUC + 6) 'Reset
|
||||
ScrapsBtn.Content = "Add Scraps"
|
||||
End Sub
|
||||
|
||||
Private Sub MoveRawPartPage_Loaded(sender As Object, e As EventArgs) Handles Me.Loaded
|
||||
@@ -57,15 +58,37 @@ Public Class MoveRawPartPage
|
||||
m_SplitPage.GetEnabledCuts(Cuts)
|
||||
' Fase precedente
|
||||
Dim nPrevPhase As Integer = EgtGetCurrPhase()
|
||||
' Creo nuova fase, eseguo spezzatura grezzi e vi sposto le lavorazioni
|
||||
Dim vNewRaws As New List(Of Integer)
|
||||
If Not m_SplitPage.m_bShow Then
|
||||
' Creo nuova fase, eseguo spezzatura grezzi e vi sposto le lavorazioni
|
||||
Dim vNewRaws As New List(Of Integer)
|
||||
SplitRawParts(nPrevPhase, Cuts, vNewRaws)
|
||||
Else
|
||||
EgtSetCurrPhase(nPrevPhase + 1)
|
||||
HideAllMachinings()
|
||||
End If
|
||||
m_nCurrPhase = EgtGetCurrPhase()
|
||||
|
||||
'---------------------------- SCRAPS ----------------------------
|
||||
' gestione visualizzazione del comando "Scraps"
|
||||
Dim ScrapsVisibility As Visibility = Visibility.Collapsed
|
||||
' verifico se licenza abilitat: m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.SCRAPS)
|
||||
If GetPrivateProfileInt(S_SCRAPS, K_ENABLESCRAPS, 0, m_MainWindow.GetIniFile()) <> 0 Then
|
||||
' leggo il direttorio in cui cercare il database delle lastre
|
||||
Dim PhotDir As String = String.Empty
|
||||
GetPrivateProfileString(S_SCRAPS, K_PHOTODIR, "", PhotDir, m_MainWindow.GetIniFile())
|
||||
' verifico che esista il file "OmagPHOTOVb.sqlite" nel direttorio inidicato
|
||||
If System.IO.File.Exists(PhotDir.Trim & "\OmagPHOTODb.sqlite") Then
|
||||
ScrapsVisibility = Visibility.Visible
|
||||
End If
|
||||
End If
|
||||
' verifico che siano stati generati dei nuovi grezzi
|
||||
If vNewRaws.Count = 0 Then
|
||||
ScrapsVisibility = Visibility.Collapsed
|
||||
End If
|
||||
' aggiorno la grafica
|
||||
ScrapsBtn.Visibility = ScrapsVisibility
|
||||
'---------------------------- SCRAPS ----------------------------
|
||||
|
||||
' Se movimento pezzi finale, sistemazioni per tavolo ausiliario
|
||||
If m_SplitPage.m_bOnAuxTab Then
|
||||
m_nAuxTabId = EgtGetTableId(AUX_TAB)
|
||||
@@ -128,14 +151,14 @@ Public Class MoveRawPartPage
|
||||
' Distanza iniziale
|
||||
m_dCurrDist = 0
|
||||
End If
|
||||
' Non dovrebbe mai accadere, ma inizializzo con default
|
||||
' Non dovrebbe mai accadere, ma inizializzo con default
|
||||
Else
|
||||
m_vtDir = Vector3d.Y_AX()
|
||||
m_ptMid = Point3d.ORIG()
|
||||
m_dOrigDist = 0
|
||||
m_dCurrDist = 0
|
||||
End If
|
||||
' Altrimenti movimento con ventose
|
||||
' Altrimenti movimento con ventose
|
||||
Else
|
||||
m_bRemovedRaw = False
|
||||
m_bRawWithCups = False
|
||||
@@ -149,6 +172,9 @@ Public Class MoveRawPartPage
|
||||
GetMoveInfoInDisposition(nDispId, m_RawMoveDataList)
|
||||
End If
|
||||
End If
|
||||
|
||||
' aggiorno il messaggio del comando per gestire gli sfridi
|
||||
VerifyIsNewScrap(m_CurrRawOnVacuum)
|
||||
' Aggiorno interfaccia per taglio perpendicolare
|
||||
If m_bByHand Then
|
||||
UpBtn.Visibility = Windows.Visibility.Visible
|
||||
@@ -165,7 +191,8 @@ Public Class MoveRawPartPage
|
||||
BottomLBtn.Visibility = Windows.Visibility.Hidden
|
||||
BottomRBtn.Visibility = Windows.Visibility.Hidden
|
||||
ResetBtn.Visibility = Windows.Visibility.Hidden
|
||||
' altrimenti per movimento con ventose
|
||||
ScrapsBtn.Visibility = Windows.Visibility.Visible
|
||||
' altrimenti per movimento con ventose
|
||||
ElseIf Not m_SplitPage.m_bOnAuxTab Then
|
||||
UpBtn.Visibility = Windows.Visibility.Visible
|
||||
LeftBtn.Visibility = Windows.Visibility.Visible
|
||||
@@ -181,7 +208,8 @@ Public Class MoveRawPartPage
|
||||
BottomLBtn.Visibility = Windows.Visibility.Hidden
|
||||
BottomRBtn.Visibility = Windows.Visibility.Hidden
|
||||
ResetBtn.Visibility = Windows.Visibility.Hidden
|
||||
' altrimenti per movimento finale dei pezzi
|
||||
ScrapsBtn.Visibility = Windows.Visibility.Visible
|
||||
' altrimenti per movimento finale dei pezzi
|
||||
Else
|
||||
UpBtn.Visibility = Windows.Visibility.Hidden
|
||||
LeftBtn.Visibility = Windows.Visibility.Hidden
|
||||
@@ -197,6 +225,7 @@ Public Class MoveRawPartPage
|
||||
BottomLBtn.Visibility = Windows.Visibility.Visible
|
||||
BottomRBtn.Visibility = Windows.Visibility.Visible
|
||||
ResetBtn.Visibility = Windows.Visibility.Visible
|
||||
ScrapsBtn.Visibility = Windows.Visibility.Hidden
|
||||
End If
|
||||
' Abilitazione bottone modifica
|
||||
ModifyBtn.IsEnabled = m_SplitPage.m_bShow
|
||||
@@ -232,6 +261,8 @@ Public Class MoveRawPartPage
|
||||
If nParentId = nRawGroupId Then
|
||||
Dim nStat As Integer = GDB_ST.ON_
|
||||
EgtGetStatus(nId, nStat)
|
||||
' aggiorno il messaggio del bottone "Scrap" a seconda che il grezzo sia già uno scrap
|
||||
VerifyIsNewScrap(nId)
|
||||
' Se il pezzo corrente è selezionato allora lo disattivo -> deposito del pezzo
|
||||
If nStat = GDB_ST.SEL Then
|
||||
EgtSetStatus(nId, GDB_ST.ON_)
|
||||
@@ -347,6 +378,27 @@ Public Class MoveRawPartPage
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Private Function VerifyIsNewScrap(nMyId As Integer) As Boolean
|
||||
Dim nVal As Integer = 0
|
||||
If EgtGetInfo(nMyId, K_ISNEWSCRAPS, nVal) Then
|
||||
If nVal = 1 Or nVal = 2 Then
|
||||
' 1 → è stato definito come nuovo grezzo oppure, 2 → è stato definito come nuovo grezzo ed è stato inserito nel DB delle lastre
|
||||
ScrapsBtn.Content = "Remove Scrap"
|
||||
ScrapsBtn.IsEnabled = True And Not m_SplitPage.m_bShow
|
||||
Return True
|
||||
ElseIf nVal = 3 Then
|
||||
' non è possibile rimuovere il grezzo in questa fase
|
||||
ScrapsBtn.Content = "Defined as Scrap"
|
||||
ScrapsBtn.IsEnabled = False
|
||||
Return True
|
||||
End If
|
||||
End If
|
||||
' non è un nuovo grezzo
|
||||
ScrapsBtn.Content = "Add Scrap"
|
||||
ScrapsBtn.IsEnabled = True And Not m_SplitPage.m_bShow
|
||||
Return False
|
||||
End Function
|
||||
|
||||
#Region "Move Up/Down/Left/Right"
|
||||
|
||||
Private Sub UpBtn_Click(sender As Object, e As RoutedEventArgs) Handles UpBtn.Click
|
||||
@@ -679,6 +731,29 @@ Public Class MoveRawPartPage
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
Private Sub ScrapsBtn_Click(Sender As Object, e As RoutedEventArgs) Handles ScrapsBtn.Click
|
||||
Dim nRawId As Integer = EgtGetFirstSelectedObj()
|
||||
While nRawId <> GDB_ID.NULL
|
||||
' verifico che il grezzo non contenga dei pezzi (altrimenti non risulta selezionabile)
|
||||
Dim nPartInRaw As Integer = EgtGetFirstPartInRawPart(nRawId)
|
||||
If nPartInRaw = GDB_ID.NULL Then
|
||||
If Not VerifyIsNewScrap(nRawId) Then
|
||||
EgtSetInfo(nRawId, K_ISNEWSCRAPS, "1")
|
||||
Else
|
||||
EgtRemoveInfo(nRawId, K_ISNEWSCRAPS)
|
||||
End If
|
||||
' aggiorno il contenuto del bottone
|
||||
VerifyIsNewScrap(nRawId)
|
||||
Else
|
||||
' coumico che il grezzo contiene un pezzo e quindi non può essere definito come grezzo
|
||||
m_CurrProjPage.ClearMessage()
|
||||
m_CurrProjPage.SetErrorMessage("Part inside raw!")
|
||||
End If
|
||||
' passo al grezzo succesivo (NON dovrebbero esserci altri grezzi selezionabili contemporaneamente!)
|
||||
nRawId = EgtGetNextSelectedObj()
|
||||
End While
|
||||
End Sub
|
||||
|
||||
Private Sub StepMoveTxBx_EgtClosed(sender As Object, e As EventArgs) Handles StepMoveTxBx.EgtClosed
|
||||
Dim dStep As Double
|
||||
If StringToLen(StepMoveTxBx.Text, dStep) Then
|
||||
@@ -989,6 +1064,7 @@ Public Class MoveRawPartPage
|
||||
BottomRBtn.IsEnabled = Not m_SplitPage.m_bShow
|
||||
ResetBtn.IsEnabled = Not m_SplitPage.m_bShow
|
||||
NextBtn.IsEnabled = Not m_SplitPage.m_bOnAuxTab
|
||||
ScrapsBtn.IsEnabled = Not m_SplitPage.m_bShow
|
||||
End Sub
|
||||
|
||||
Private Sub MoveRawPartPage_Unloaded(sender As Object, e As EventArgs) Handles Me.Unloaded
|
||||
|
||||
@@ -363,6 +363,13 @@ Public Module SplitAuto
|
||||
vNewRaws.Add(nNewRawId)
|
||||
nNewRawId = EgtGetNextRawPart(nNewRawId)
|
||||
End While
|
||||
Else
|
||||
' verifico che nella fase precedente è stato definito come sfrido, allora lo riassegno
|
||||
Dim nVal As Integer = 0
|
||||
EgtGetInfo(nRawId, K_ISNEWSCRAPS, nVal)
|
||||
If nVal = 1 Or nVal = 2 Or nVal = 3 Then
|
||||
EgtSetInfo(nRaw1Id, K_ISNEWSCRAPS, "3")
|
||||
End If
|
||||
End If
|
||||
' Assegno ai nuovi grezzi eventuale texture del grezzo originale
|
||||
Dim nSolidId = EgtGetFirstNameInGroup(nRawId, NAME_RAW_SOLID)
|
||||
|
||||
@@ -1467,8 +1467,37 @@ Public Class SplitPageUC
|
||||
' assegno numerazione
|
||||
NumberDirectionMachining(nI)
|
||||
Next
|
||||
|
||||
' -------------------- Recupero le lavorazioni indicate come attive --------------------
|
||||
Dim ActiveMachLst As New List(Of Integer)
|
||||
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
|
||||
ActiveMachLst.Add(ItemSplitMach.Ind)
|
||||
Next
|
||||
' -------------------- Recupero le lavorazioni indicate come attive --------------------
|
||||
|
||||
' Preparo la lista degli Item
|
||||
ShowMachiningList()
|
||||
|
||||
' -------------------- Riattivo le lavorazioni precedenti --------------------
|
||||
|
||||
For Each Item As SplitMach In m_MachiningList
|
||||
EgtSetInfo(Item.m_nId, INFO_MCH_USER_OFF, True)
|
||||
Next
|
||||
|
||||
For nIndex As Integer = 0 To ActiveMachLst.Count - 1
|
||||
For Each ItemSplitMach As NameIdLsBxItem In m_ItemList
|
||||
If ItemSplitMach.Ind = ActiveMachLst(nIndex) Then
|
||||
EgtRemoveInfo(m_MachiningList(ItemSplitMach.Ind).m_nId, INFO_MCH_USER_OFF)
|
||||
m_MachiningList(ItemSplitMach.Ind).m_bEnabled = True
|
||||
ItemSplitMach.bIsActive = True
|
||||
' sistemo colore
|
||||
ColorMachining(m_MachiningList(ItemSplitMach.Ind))
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
' -------------------- Riattivo le lavorazioni precedenti --------------------
|
||||
|
||||
' Aggiorno visualizzazione
|
||||
EgtDraw()
|
||||
' Aggiono abilitazione bottoni
|
||||
|
||||
@@ -214,7 +214,8 @@ Module ConstGen
|
||||
Public Const INFO_DEPTH As String = "Depth"
|
||||
Public Const INFO_WIDTH As String = "Width"
|
||||
Public Const INFO_DEPTH2 As String = "Depth2"
|
||||
Public CONST INFO_AGG2 As String = "Agg2"
|
||||
Public Const INFO_AGG2 As String = "Agg2"
|
||||
Public Const INFO_ROUNDOFF As String = "RoundOff"
|
||||
' Info in entità da tagliare per taglio ristretto
|
||||
Public Const INFO_STRICT As String = "Strict"
|
||||
' Info in entità da tagliare per angolo di lato e tallone
|
||||
|
||||
@@ -133,6 +133,7 @@ Module ConstIni
|
||||
Public Const K_ENGRAVENUMBER2 As String = "EngraveNumber2"
|
||||
Public Const K_ENGRAVEOFFSET2 As String = "EngraveOffset2"
|
||||
Public Const K_ENGRAVEDEPTH As String = "EngraveDepth"
|
||||
Public Const K_ENGRAVEDEPTH2 As String = "EngraveDepth2"
|
||||
Public Const K_ENGRAVESHORT As String = "EngraveShort"
|
||||
Public Const K_DRIPOFFSET As String = "DripOffset"
|
||||
Public Const K_DRIPOFFSET2 As String = "DripOffset2"
|
||||
@@ -141,6 +142,7 @@ Module ConstIni
|
||||
Public Const K_UNDERDRILLDEPTH As String = "UnderDrillDepth"
|
||||
Public Const K_FILOTOPOFFSET As String = "FiloTopOffset"
|
||||
Public Const K_FILOTOPDEPTH As String = "FiloTopDepth"
|
||||
Public Const K_ROUNDOFF As String = "RoundOff"
|
||||
|
||||
Public Const S_NEST As String = "Nest"
|
||||
Public Const K_DIRECT As String = "Direct"
|
||||
@@ -214,6 +216,15 @@ Module ConstIni
|
||||
Public Const K_RAWROTATION As String = "Rotation"
|
||||
Public Const K_PERPENDICULAR As String = "Perpendicular"
|
||||
|
||||
Public Const S_SCRAPS As String = "Scraps"
|
||||
Public Const K_ENABLESCRAPS As String = "EnableScraps"
|
||||
Public Const K_PHOTODIR As String = "PhotoDir"
|
||||
Public Const K_LASTBLOCK As String = "LastBlock"
|
||||
Public Const K_TEMPLATE As String = "Template"
|
||||
Public Const K_DAT As String = "Dat"
|
||||
Public Const K_ZEBRAUTILITIES As String = "ZebraUtilities"
|
||||
Public Const K_ENABLE_PRINTER As String = "EnablePrinter"
|
||||
|
||||
Public Const S_REG As String = "Reg"
|
||||
Public Const K_REGSTEP As String = "Step"
|
||||
Public Const K_REGANGSTEP As String = "AngStep"
|
||||
|
||||
@@ -233,6 +233,9 @@
|
||||
Public Const K_MACH_ROTATEVACUUMFOREXTRASTROKEY As String = "RotateVacuumForExtraStrokeY"
|
||||
Public Const K_MACH_ROTATEVACUUMFOREXTRASTROKEX As String = "RotateVacuumForExtraStrokeX"
|
||||
|
||||
Public Const K_ISNEWSCRAPS As String = "IsNewScraps"
|
||||
Public Const K_DATABASEID As String = "DatabaseID"
|
||||
|
||||
Public Const S_MACH_REG As String = "Reg"
|
||||
Public Const K_MACH_MAX_ROT_ANG As String = "MaxRotAng"
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@ Public Class FlatteningCut
|
||||
Right
|
||||
End Enum
|
||||
|
||||
' Per abilitare la spianatura con la FRESA deve essere imposatato a TRUE il flag "Usa Fresa" nella pagina MACCHINA (campo INCISIONI)
|
||||
Private Sub FlatteningCut_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
||||
' Creo lista modalità di acquisizione punto
|
||||
m_PointsModeArray(PT_MODE.SAW) = EgtMsg(MSG_DIRECTCUTPAGEUC + 24)
|
||||
@@ -614,9 +615,11 @@ Public Class FlatteningCut
|
||||
|
||||
' ricavo l'ingombro di lavorazione in funzione dell'utensile selezionato
|
||||
Private Function GetFootPrintTool() As Double
|
||||
' vedere nella pagina Allarm il capito "Incisioni"
|
||||
Dim bForceUseMill As Boolean = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, 1, m_MainWindow.GetMachIniFile()) <> 0)
|
||||
Dim dFootPrint As Double = 0
|
||||
' verifico quale lavorazione è attiva
|
||||
If Not String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sCurrSawing) Then
|
||||
If Not String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sCurrSawing) AndAlso Not bForceUseMill Then
|
||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dFootPrint)
|
||||
ElseIf Not String.IsNullOrEmpty(m_MainWindow.m_CurrentMachine.sCurrMilling) Then
|
||||
Dim sCurrMill = m_MainWindow.m_CurrentMachine.sCurrMill
|
||||
@@ -652,6 +655,9 @@ Public Class FlatteningCut
|
||||
Dim nCutId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, m_dLen)
|
||||
' Imposto affondamento e angolo di fianco sul taglio
|
||||
EgtSetInfo(nCutId, INFO_DEPTH, m_dDepth)
|
||||
If (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ENGRAVING_WITHMILL, 1, m_MainWindow.GetMachIniFile()) <> 0) Then
|
||||
EgtSetInfo(nCutId, INFO_WIDTH, GetFootPrintTool)
|
||||
End If
|
||||
EgtSetInfo(nCutId, INFO_SIDE_ANGLE, 0)
|
||||
' Imposto prima direzione
|
||||
EgtSetInfo(nCutId, INFO_DIR, 1)
|
||||
|
||||
@@ -336,6 +336,7 @@ Public Class CompoDimensionUC
|
||||
Dim nCmpInfo As Integer = 0
|
||||
If EgtGetInfo(nId, "ID", nCmpInfo) AndAlso nCmp = nCmpInfo Then
|
||||
EgtSetStatus(nId, GDB_ST.OFF)
|
||||
UpdateInLoopReference(nCmp)
|
||||
Exit While
|
||||
End If
|
||||
nId = EgtGetNextName(nId, "HoleLabels")
|
||||
@@ -379,5 +380,42 @@ Public Class CompoDimensionUC
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateInLoopReference(nCmp As Integer)
|
||||
' aggiorno il layer "FiloTop"
|
||||
Dim nIdInLoop As Integer = EgtGetFirstNameInGroup(EgtGetFirstGroupInGroup(GDB_ID.ROOT), "InLoop")
|
||||
While nIdInLoop <> GDB_ID.NULL
|
||||
Dim nCmpInfoIL As Integer = 0
|
||||
If EgtGetInfo(nIdInLoop, "ID", nCmpInfoIL) AndAlso nCmp = nCmpInfoIL Then
|
||||
Dim nLayFiloTop As Integer = GDB_ID.NULL
|
||||
EgtGetInfo(nIdInLoop, "FiloTopRef", nLayFiloTop)
|
||||
If nLayFiloTop <> GDB_ID.NULL Then
|
||||
Dim LocalList As New List(Of Integer) From {nIdInLoop}
|
||||
m_DrawPage.m_FiloTopUC.CreateFiloTopPreView(LocalList)
|
||||
EgtSetStatus(nLayFiloTop, GDB_ST.ON_)
|
||||
Exit While
|
||||
End If
|
||||
End If
|
||||
nIdInLoop = EgtGetNextName(nIdInLoop, "InLoop")
|
||||
End While
|
||||
End Sub
|
||||
|
||||
' riceve la info "ID" della componente
|
||||
Public Sub SetStatusVisibilityInLoopReference(nCmp As Integer, Status As GDB_ST)
|
||||
' aggiorno il layer "FiloTop"
|
||||
Dim nIdInLoop As Integer = EgtGetFirstNameInGroup(EgtGetFirstGroupInGroup(GDB_ID.ROOT), "InLoop")
|
||||
While nIdInLoop <> GDB_ID.NULL
|
||||
Dim nCmpInfoIL As Integer = 0
|
||||
If EgtGetInfo(nIdInLoop, "ID", nCmpInfoIL) AndAlso nCmp = nCmpInfoIL Then
|
||||
Dim nLayFiloTop As Integer = GDB_ID.NULL
|
||||
EgtGetInfo(nIdInLoop, "FiloTopRef", nLayFiloTop)
|
||||
If nLayFiloTop <> GDB_ID.NULL Then
|
||||
EgtSetStatus(nLayFiloTop, Status)
|
||||
Exit While
|
||||
End If
|
||||
End If
|
||||
nIdInLoop = EgtGetNextName(nIdInLoop, "InLoop")
|
||||
End While
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS for InternalCompo
|
||||
End Class
|
||||
|
||||
@@ -41,6 +41,9 @@ Public Class DrawPageUC
|
||||
Friend m_bDrawOk As Boolean = False
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private m_SelListHole As New List(Of Integer)
|
||||
Private m_DeselectListHole As New List(Of Integer)
|
||||
|
||||
' questa variabile serve per risalire al nome della componente che ospita i componenti interni att
|
||||
Friend m_sMainCompo As String = String.Empty
|
||||
|
||||
@@ -360,6 +363,8 @@ Public Class DrawPageUC
|
||||
Dim nCmpInfo As Integer = 0
|
||||
If EgtGetInfo(nHLId, "ID", nCmpInfo) AndAlso nCmp = nCmpInfo Then
|
||||
EgtSetStatus(nHLId, GDB_ST.ON_)
|
||||
' nascondo eventuali FiloTop
|
||||
m_CompoDimension.SetStatusVisibilityInLoopReference(nCmp, GDB_ST.OFF)
|
||||
Exit While
|
||||
End If
|
||||
nHLId = EgtGetNextName(nHLId, "HoleLabels")
|
||||
@@ -462,21 +467,25 @@ Public Class DrawPageUC
|
||||
EgtDeselectObj(nId)
|
||||
EgtDeselectObj(nLayId)
|
||||
Dim sLayName As String = ""
|
||||
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP AndAlso EgtExistsInfo( nLayId, INFO_FILOTOP) Then
|
||||
EgtRemoveInfo( nLayId, INFO_FILOTOP)
|
||||
EgtRemoveInfo( nLayId, INFO_OFFSET)
|
||||
EgtRemoveInfo( nLayId, INFO_DEPTH)
|
||||
EgtResetColor( nLayId)
|
||||
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP AndAlso EgtExistsInfo(nLayId, INFO_FILOTOP) Then
|
||||
EgtRemoveInfo(nLayId, INFO_FILOTOP)
|
||||
EgtRemoveInfo(nLayId, INFO_OFFSET)
|
||||
EgtRemoveInfo(nLayId, INFO_DEPTH)
|
||||
EgtResetColor(nLayId)
|
||||
End If
|
||||
m_DeselectListHole.Add(nLayId)
|
||||
m_SelListHole.Remove(nLayId)
|
||||
Else
|
||||
Dim sLayName As String = ""
|
||||
If EgtGetName( nLayId, sLayName) AndAlso sLayName = NAME_INLOOP Then
|
||||
EgtSelectObj( nId)
|
||||
EgtSelectObj( nLayId)
|
||||
EgtSetInfo( nLayId, INFO_FILOTOP, 1)
|
||||
EgtSetInfo( nLayId, INFO_OFFSET, m_FiloTopUC.FiloTopOffset)
|
||||
EgtSetInfo( nLayId, INFO_DEPTH, m_FiloTopUC.FiloTopDepth)
|
||||
EgtSetColor( nLayId, New Color3d(255, 255, 255))
|
||||
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP Then
|
||||
EgtSelectObj(nId)
|
||||
EgtSelectObj(nLayId)
|
||||
EgtSetInfo(nLayId, INFO_FILOTOP, 1)
|
||||
EgtSetInfo(nLayId, INFO_OFFSET, m_FiloTopUC.FiloTopOffset)
|
||||
EgtSetInfo(nLayId, INFO_DEPTH, m_FiloTopUC.FiloTopDepth)
|
||||
EgtSetColor(nLayId, New Color3d(255, 255, 255))
|
||||
m_SelListHole.Add(nLayId)
|
||||
m_DeselectListHole.Remove(nLayId)
|
||||
End If
|
||||
End If
|
||||
EgtDraw()
|
||||
@@ -484,6 +493,8 @@ Public Class DrawPageUC
|
||||
End If
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
m_FiloTopUC.CreateFiloTopPreView(m_SelListHole)
|
||||
m_FiloTopUC.EraseFiloTopPreview(m_DeselectListHole)
|
||||
End Sub
|
||||
|
||||
Private Sub OnShowDistanceVector(sender As Object, vtDist As Vector3d) Handles DrawScene.OnShowDistanceVector
|
||||
@@ -1362,6 +1373,8 @@ Public Class DrawPageUC
|
||||
End Sub
|
||||
|
||||
Private Sub FiloTopBtn_Click(sender As Object, e As RoutedEventArgs) Handles FiloTopBtn.Click
|
||||
m_SelListHole.Clear()
|
||||
m_DeselectListHole.Clear()
|
||||
m_SceneButtons.MeasureBtn.IsChecked = False
|
||||
If FiloTopBtn.IsChecked Then
|
||||
' Imposto modalità
|
||||
@@ -1375,25 +1388,25 @@ Public Class DrawPageUC
|
||||
m_PrevSideAnglePage = Pages.AlzFront
|
||||
LeftButtonGrd.Children.Remove(m_CompoDimension.m_AlzFrontPage)
|
||||
End If
|
||||
VariablesGrd.Children.Add( m_FiloTopUC)
|
||||
VariablesGrd.Children.Add(m_FiloTopUC)
|
||||
SideAngleBtn.IsEnabled = False
|
||||
EngraveBtn.IsEnabled = False
|
||||
DripCutBtn.IsEnabled = False
|
||||
MessageGrid.Visibility = Windows.Visibility.Hidden
|
||||
BackBtn.Visibility = Windows.Visibility.Hidden
|
||||
MessageTxBx.Text = EgtMsg( MSG_DRAWPAGEUC + 6) ' Selezionare un contorno
|
||||
MessageTxBx.Text = EgtMsg(MSG_DRAWPAGEUC + 6) ' Selezionare un contorno
|
||||
MessageBrd.Background = Application.Current.FindResource("OmagCut_Green")
|
||||
' In ogni caso, nascondo layer delle misure
|
||||
Dim PartId As Integer = EgtGetFirstInGroup( GDB_ID.ROOT)
|
||||
EgtSetStatus(EgtGetFirstNameInGroup( PartId, COMPO_LAYER_AUX), GDB_ST.OFF)
|
||||
EgtSetStatus(EgtGetFirstNameInGroup( PartId, COMPO_LAYER_QUOTATURE), GDB_ST.OFF)
|
||||
EgtSetStatus(EgtGetFirstNameInGroup( PartId, COMPO_LAYER_ETICHETTE), GDB_ST.OFF)
|
||||
Dim PartId As Integer = EgtGetFirstInGroup(GDB_ID.ROOT)
|
||||
EgtSetStatus(EgtGetFirstNameInGroup(PartId, COMPO_LAYER_AUX), GDB_ST.OFF)
|
||||
EgtSetStatus(EgtGetFirstNameInGroup(PartId, COMPO_LAYER_QUOTATURE), GDB_ST.OFF)
|
||||
EgtSetStatus(EgtGetFirstNameInGroup(PartId, COMPO_LAYER_ETICHETTE), GDB_ST.OFF)
|
||||
Else
|
||||
VariablesGrd.Children.Remove( m_FiloTopUC)
|
||||
VariablesGrd.Children.Remove(m_FiloTopUC)
|
||||
If m_PrevSideAnglePage = Pages.CompoDimension Then
|
||||
VariablesGrd.Children.Add( m_CompoDimension)
|
||||
VariablesGrd.Children.Add(m_CompoDimension)
|
||||
ElseIf m_PrevSideAnglePage = Pages.InternalComponent Then
|
||||
LeftButtonGrd.Children.Add( m_CompoDimension.m_InternalCompoPage)
|
||||
LeftButtonGrd.Children.Add(m_CompoDimension.m_InternalCompoPage)
|
||||
End If
|
||||
SideAngleBtn.IsEnabled = m_bEnableSideAngle
|
||||
EngraveBtn.IsEnabled = True
|
||||
|
||||
@@ -41,7 +41,11 @@
|
||||
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="Parameter2TxBx" Grid.Column="1" Grid.Row="11" Width="90"
|
||||
Style="{StaticResource OmagCut_CalculatorTextBox}"/>
|
||||
|
||||
</Grid>
|
||||
<TextBlock Name="Parameter3TxBl" Grid.Row="12" Text="Arrotonda"
|
||||
Style="{StaticResource OmagCut_CenteredLowerCaseCharacterTextBlock}"
|
||||
FontSize="{DynamicResource FontSize_LowerCaseCharacter}"/>
|
||||
<CheckBox Name="Parameter3ChBx" Grid.Row="12" Grid.Column="1" Style="{StaticResource OmagCut_CheckBox_Single}"
|
||||
HorizontalAlignment="Center" Margin="0,0,6,0"/>
|
||||
</Grid>
|
||||
|
||||
</UserControl>
|
||||
|
||||
@@ -7,6 +7,8 @@ Public Class FiloTopUC
|
||||
' Riferimento alla pagina che ha aperto SideAngleUC
|
||||
Private m_CallingPage As MainWindow.Pages
|
||||
|
||||
Private m_SelList As New List(Of Integer)
|
||||
|
||||
' Offset della sfilettatura
|
||||
Private m_dFiloTopOffset As Double = 0
|
||||
Friend ReadOnly Property FiloTopOffset As Double
|
||||
@@ -23,6 +25,13 @@ Public Class FiloTopUC
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' esegue l'arrotindamento sugli angoli del percorso utensile
|
||||
Private m_bCornerradius As Boolean = False
|
||||
Friend ReadOnly Property bCornerRadius As Boolean
|
||||
Get
|
||||
Return m_bCornerradius
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private Sub FiloTopUC_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
' Imposto riferimenti ad altre pagine
|
||||
@@ -43,14 +52,18 @@ Public Class FiloTopUC
|
||||
End If
|
||||
|
||||
' Gestisco visualizzazione dei parametri
|
||||
Parameter2TxBl.Visibility = Windows.Visibility.Visible
|
||||
ParameterTxBl.Visibility = Windows.Visibility.Visible
|
||||
Parameter2TxBx.Visibility = Windows.Visibility.Visible
|
||||
Parameter3TxBl.Visibility = Windows.Visibility.Visible
|
||||
|
||||
' Aggiorno valori
|
||||
m_dFiloTopOffset = GetPrivateProfileDouble( S_SIDES, K_FILOTOPOFFSET, 5, m_MainWindow.GetIniFile())
|
||||
ParameterTxBx.Text = LenToString( m_dFiloTopOffset, 3)
|
||||
m_dFiloTopDepth = GetPrivateProfileDouble( S_SIDES, K_FILOTOPDEPTH, 5, m_MainWindow.GetIniFile())
|
||||
Parameter2TxBx.Text = LenToString( m_dFiloTopDepth, 3)
|
||||
Parameter2TxBx.Text = LenToString(m_dFiloTopDepth, 3)
|
||||
m_bCornerradius = GetPrivateProfileInt(S_SIDES, K_ROUNDOFF, 0, m_MainWindow.GetIniFile()) <> 0
|
||||
Parameter3ChBx.IsChecked = m_bCornerradius
|
||||
m_SelList.Clear()
|
||||
End Sub
|
||||
|
||||
Private Sub FiloTopUC_Unloaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
|
||||
@@ -74,6 +87,8 @@ Public Class FiloTopUC
|
||||
End While
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
End While
|
||||
' aggiorno la preview
|
||||
CreateFiloTopPreView(m_SelList, False)
|
||||
End Sub
|
||||
|
||||
Private Sub Parameter2TxBx_EgtClosed(sender As Object, e As EventArgs) Handles Parameter2TxBx.EgtClosed
|
||||
@@ -95,4 +110,161 @@ Public Class FiloTopUC
|
||||
End While
|
||||
End Sub
|
||||
|
||||
Private Sub Parameter3ChBx_Checked() Handles Parameter3ChBx.Click
|
||||
' Assegno il valore
|
||||
m_bCornerradius = Parameter3ChBx.IsChecked
|
||||
WritePrivateProfileString(S_SIDES, K_ROUNDOFF, If(m_bCornerradius, "1", "0"), m_MainWindow.GetIniFile())
|
||||
' Aggiorno le info del profilo
|
||||
Dim nPartId As Integer = EgtGetFirstPart()
|
||||
While nPartId <> GDB_ID.NULL
|
||||
Dim nLayId As Integer = EgtGetFirstLayer(nPartId)
|
||||
While nLayId <> GDB_ID.NULL
|
||||
Dim sLayName As String = ""
|
||||
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP AndAlso EgtExistsInfo(nLayId, INFO_FILOTOP) Then
|
||||
EgtSetInfo(nLayId, INFO_ROUNDOFF, If(m_bCornerradius, 1, 0))
|
||||
End If
|
||||
nLayId = EgtGetNextLayer(nLayId)
|
||||
End While
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
End While
|
||||
' aggiorno la preview (False = blocco la lettura dei dati della componente)
|
||||
CreateFiloTopPreView(m_SelList, False)
|
||||
End Sub
|
||||
|
||||
Public Sub CreateFiloTopPreView(SelList As List(Of Integer), Optional bReadInfo As Boolean = True)
|
||||
m_SelList = SelList
|
||||
If m_SelList.Count < 1 Then Return
|
||||
Dim nPartId As Integer = EgtGetFirstPart()
|
||||
While nPartId <> GDB_ID.NULL
|
||||
Dim nLayId As Integer = EgtGetFirstLayer(nPartId)
|
||||
While nLayId <> GDB_ID.NULL
|
||||
Dim sLayName As String = ""
|
||||
' verifico che lemento corrente appartenga all'elenco degli elementi selezionati
|
||||
Dim bIsSelected As Boolean = m_SelList.Find(Function(value As Integer)
|
||||
Return value = nLayId
|
||||
End Function) <> 0
|
||||
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP AndAlso EgtExistsInfo(nLayId, INFO_FILOTOP) AndAlso bIsSelected Then
|
||||
' ---------------------- Inizio GESTIONE PREVIEW percorso -------------------------------
|
||||
Dim nLayFiloTop As Integer = GDB_ID.NULL
|
||||
Dim nInLoopRef As Integer = GDB_ID.NULL
|
||||
nLayFiloTop = EgtGetFirstNameInGroup(nPartId, "FiloTop")
|
||||
EgtGetInfo(nLayFiloTop, "InLoopRef", nInLoopRef)
|
||||
' verifico il Layer "FiloTop" sia associato all'InLoop corrente
|
||||
While (nLayFiloTop <> GDB_ID.NULL AndAlso nInLoopRef <> nLayId)
|
||||
nLayFiloTop = EgtGetNextName(nLayFiloTop, "FiloTop")
|
||||
EgtGetInfo(nLayFiloTop, "InLoopRef", nInLoopRef)
|
||||
End While
|
||||
|
||||
' se non esiste il Layer "FiloTop"
|
||||
If nLayFiloTop = GDB_ID.NULL Then
|
||||
' lo creo
|
||||
nLayFiloTop = EgtCreateGroup(nPartId)
|
||||
EgtSetName(nLayFiloTop, "FiloTop")
|
||||
EgtSetInfo(nLayFiloTop, "InLoopRef", nLayId)
|
||||
EgtSetInfo(nLayId, "FiloTopRef", nLayFiloTop)
|
||||
End If
|
||||
|
||||
' carico i dati del filo top selezionato
|
||||
If bReadInfo Then
|
||||
EgtGetInfo(nLayFiloTop, INFO_OFFSET, m_dFiloTopOffset)
|
||||
ParameterTxBx.Text = LenToString(m_dFiloTopOffset, 3)
|
||||
EgtGetInfo(nLayFiloTop, INFO_DEPTH, m_dFiloTopDepth)
|
||||
Parameter2TxBx.Text = LenToString(m_dFiloTopDepth, 3)
|
||||
Dim nVal As Integer = If(m_bCornerradius, 1, 0)
|
||||
EgtGetInfo(nLayFiloTop, INFO_ROUNDOFF, nVal)
|
||||
Parameter3ChBx.IsChecked = If(nVal = 1, True, False)
|
||||
m_bCornerradius = Parameter3ChBx.IsChecked
|
||||
End If
|
||||
|
||||
' procedo alla creazione della curva
|
||||
Dim nIdCompoCurve As Integer = GDB_ID.NULL
|
||||
' cancello un eventuale curva composita creata in precedenza
|
||||
nIdCompoCurve = EgtGetFirstNameInGroup(nLayFiloTop, "OffsetPreView")
|
||||
If nIdCompoCurve <> GDB_ID.NULL Then
|
||||
EgtErase(nIdCompoCurve)
|
||||
End If
|
||||
Dim nCompoCurve As New List(Of Integer)
|
||||
' costruisco il percorso chiuso dati i lati di contorno
|
||||
Dim nLine As Integer = EgtGetFirstInGroup(nLayId)
|
||||
While nLine <> GDB_ID.NULL
|
||||
nCompoCurve.Add(nLine)
|
||||
nLine = EgtGetNext(nLine)
|
||||
End While
|
||||
Dim PtNearStart As Point3d
|
||||
Dim nInfoRoundOff As Integer = If(m_bCornerradius, 1, 0)
|
||||
|
||||
nIdCompoCurve = EgtCreateCurveCompoByChain(nLayFiloTop, nCompoCurve.ToArray, PtNearStart, False)
|
||||
EgtSetName(nIdCompoCurve, "OffsetPreView")
|
||||
|
||||
' salvo i dati nel layer FiloTop
|
||||
EgtSetInfo(nLayFiloTop, INFO_OFFSET, m_dFiloTopOffset)
|
||||
EgtSetInfo(nLayFiloTop, INFO_DEPTH, m_dFiloTopDepth)
|
||||
EgtSetInfo(nLayFiloTop, INFO_ROUNDOFF, nInfoRoundOff)
|
||||
|
||||
Dim bOk As Boolean = False
|
||||
' leggo che tipo di offset applicare (Round, Extend)
|
||||
If nInfoRoundOff <> 1 Then
|
||||
bOk = EgtOffsetCurve(nIdCompoCurve, -m_dFiloTopOffset, OFF_TYPE.EXTEND)
|
||||
Else
|
||||
bOk = EgtOffsetCurve(nIdCompoCurve, -m_dFiloTopOffset, OFF_TYPE.FILLET)
|
||||
End If
|
||||
|
||||
' se la generazione della curva non va a buon fine
|
||||
If Not bOk Then
|
||||
EgtErase(nLayFiloTop)
|
||||
EgtRemoveInfo(nLayId, "FiloTopRef")
|
||||
EgtOutLog("Error in generation OffsetPreView in TopEgde ")
|
||||
End If
|
||||
' ---------------------- Fine GESTIONE PREVIEW percorso -------------------------------
|
||||
End If
|
||||
nLayId = EgtGetNextLayer(nLayId)
|
||||
End While
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
End While
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
' riceve la lista dei LayerFiloTop che devono essere eliminati
|
||||
Public Sub EraseFiloTopPreview(EraseList As List(Of Integer))
|
||||
Dim m_EraseList As List(Of Integer) = EraseList
|
||||
If m_EraseList.Count < 1 Then Return
|
||||
Dim nPartId As Integer = EgtGetFirstPart()
|
||||
While nPartId <> GDB_ID.NULL
|
||||
Dim nLayId As Integer = EgtGetFirstLayer(nPartId)
|
||||
While nLayId <> GDB_ID.NULL
|
||||
Dim sLayName As String = ""
|
||||
Dim bIsSelected As Boolean = m_EraseList.Find(Function(value As Integer)
|
||||
Return value = nLayId
|
||||
End Function) <> 0
|
||||
If EgtGetName(nLayId, sLayName) AndAlso sLayName = NAME_INLOOP AndAlso bIsSelected Then
|
||||
' ---------------------- Inizio GESTIONE PREVIEW percorso -------------------------------
|
||||
Dim nLayFiloTop As Integer = GDB_ID.NULL
|
||||
Dim nInLoopRef As Integer = GDB_ID.NULL
|
||||
nLayFiloTop = EgtGetFirstNameInGroup(nPartId, "FiloTop")
|
||||
EgtGetInfo(nLayFiloTop, "InLoopRef", nInLoopRef)
|
||||
' cerco il Layer associato all'InLoop corrente
|
||||
While (nLayFiloTop <> GDB_ID.NULL AndAlso nInLoopRef <> nLayId)
|
||||
nLayFiloTop = EgtGetNextName(nLayFiloTop, "FiloTop")
|
||||
EgtGetInfo(nLayFiloTop, "InLoopRef", nInLoopRef)
|
||||
End While
|
||||
|
||||
' se non esiste il Layer
|
||||
If nLayFiloTop = GDB_ID.NULL Then
|
||||
' esco
|
||||
Return
|
||||
Else
|
||||
' lo elimino
|
||||
EgtErase(nLayFiloTop)
|
||||
EraseList.Remove(nLayId)
|
||||
End If
|
||||
' ---------------------- Fine GESTIONE PREVIEW percorso -------------------------------
|
||||
End If
|
||||
nLayId = EgtGetNextLayer(nLayId)
|
||||
End While
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
End While
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
@@ -34,6 +34,7 @@ Public Class SideAngleUC
|
||||
Friend m_dDripOffset2 As Double = 0
|
||||
Friend m_nEngrNbr2 As Integer = 1
|
||||
Friend m_dDripDepth As Double = 10
|
||||
Friend m_dEngraveDepth2 As Double = 15
|
||||
Friend m_dDripShort As Double = 0
|
||||
|
||||
Private CurrEntityDrip As DripEntity
|
||||
@@ -133,9 +134,18 @@ Public Class SideAngleUC
|
||||
' Affondamento
|
||||
Parameter3TxBl.Visibility = Windows.Visibility.Visible
|
||||
Parameter3TxBx.Visibility = Windows.Visibility.Visible
|
||||
|
||||
' Accorciamento
|
||||
Parameter4TxBl.Visibility = Windows.Visibility.Hidden
|
||||
Parameter4TxBx.Visibility = Windows.Visibility.Hidden
|
||||
If m_Mode = ModeOpt.ENGRAVE Then
|
||||
' modifico il nome del messaggio
|
||||
Parameter4TxBl.Text = EgtMsg(MSG_IMPORTPAGEUC + 11) & "2" ' Affondamento2
|
||||
Parameter4TxBl.Visibility = Windows.Visibility.Visible
|
||||
Parameter4TxBx.Visibility = Windows.Visibility.Visible
|
||||
Else
|
||||
Parameter4TxBl.Visibility = Windows.Visibility.Hidden
|
||||
Parameter4TxBx.Visibility = Windows.Visibility.Hidden
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
' Gestisco Checkbox e nomi in base al numero di lati inclinabili
|
||||
@@ -156,12 +166,12 @@ Public Class SideAngleUC
|
||||
m_nEngrNbr2 = GetPrivateProfileInt( S_SIDES, K_ENGRAVENUMBER2, 1, m_MainWindow.GetIniFile())
|
||||
m_dDripOffset2 = GetPrivateProfileDouble( S_SIDES, K_ENGRAVEOFFSET2, 0, m_MainWindow.GetIniFile())
|
||||
m_dDripDepth = GetPrivateProfileDouble( S_SIDES, K_ENGRAVEDEPTH, 10, m_MainWindow.GetIniFile())
|
||||
m_dDripShort = GetPrivateProfileDouble( S_SIDES, K_ENGRAVESHORT, 0, m_MainWindow.GetIniFile())
|
||||
m_dEngraveDepth2 = GetPrivateProfileDouble(S_SIDES, K_ENGRAVEDEPTH2, 0, m_MainWindow.GetIniFile())
|
||||
Parameter1TxBx.Text = LenToString( m_dDripOffset, 3)
|
||||
Parameter2aTxBx.Text = m_nEngrNbr2.ToString()
|
||||
Parameter2bTxBx.Text = LenToString( m_dDripOffset2, 3)
|
||||
Parameter3TxBx.Text = LenToString( m_dDripDepth, 3)
|
||||
Parameter4TxBx.Text = LenToString( m_dDripShort, 3)
|
||||
Parameter4TxBx.Text = LenToString(m_dEngraveDepth2, 3)
|
||||
End If
|
||||
|
||||
' Aggiorno visualizzazione
|
||||
@@ -489,6 +499,7 @@ Public Class SideAngleUC
|
||||
WritePrivateProfileString( S_SIDES, K_ENGRAVENUMBER2, m_nEngrNbr2.ToString(), m_MainWindow.GetIniFile())
|
||||
WritePrivateProfileString(S_SIDES, K_ENGRAVEOFFSET2, LenToString(m_dDripOffset2, 3), m_MainWindow.GetIniFile())
|
||||
WritePrivateProfileString(S_SIDES, K_ENGRAVEDEPTH, LenToString(m_dDripDepth, 3), m_MainWindow.GetIniFile())
|
||||
WritePrivateProfileString(S_SIDES, K_ENGRAVEDEPTH2, LenToString(m_dEngraveDepth2, 3), m_MainWindow.GetIniFile())
|
||||
'WritePrivateProfileString( S_SIDES, K_ENGRAVESHORT, DoubleToString( m_dDripShort, 3), m_MainWindow.GetIniFile())
|
||||
End If
|
||||
|
||||
@@ -635,7 +646,7 @@ Public Class SideAngleUC
|
||||
SideAngle.AddTextToLine(sEntityName, TextLayer, CurrLine, 20, dBBoxRad, True)
|
||||
End Sub
|
||||
|
||||
' Funzione che crea le geometrie dei gocciolatoi
|
||||
' Funzione che crea le geometrie dei gocciolatoi (NON UTILIZZATA)
|
||||
Friend Sub CreateDripGeomOLD(nPartId As Integer)
|
||||
' Recupero Id layer di contorno esterno
|
||||
Dim nOutLoopId = EgtGetFirstNameInGroup(nPartId, NAME_OUTLOOP)
|
||||
@@ -830,6 +841,9 @@ Public Class SideAngleUC
|
||||
Dim nCrvId = EgtGetFirstInGroup(DripLayer)
|
||||
While nCrvId <> GDB_ID.NULL
|
||||
EgtOffsetCurve(nCrvId, -m_dDripOffset, OFF_TYPE.EXTEND)
|
||||
If m_Mode = ModeOpt.ENGRAVE Then
|
||||
EgtSetInfo(nCrvId, INFO_DEPTH, m_dDripDepth)
|
||||
End If
|
||||
nCrvId = EgtGetNext(nCrvId)
|
||||
End While
|
||||
' Eventuali curve aggiuntive con offset2
|
||||
@@ -840,10 +854,14 @@ Public Class SideAngleUC
|
||||
For i As Integer = 1 To m_nEngrNbr2
|
||||
Dim nNewId As Integer = EgtCopy(nCrvId, nCrvId, GDB_POS.AFTER)
|
||||
EgtOffsetCurve(nNewId, -i * m_dDripOffset2, OFF_TYPE.EXTEND)
|
||||
If m_Mode = ModeOpt.ENGRAVE Then
|
||||
EgtSetInfo(nNewId, INFO_DEPTH, m_dEngraveDepth2)
|
||||
End If
|
||||
Next
|
||||
nCrvId = nNextCrvId
|
||||
End While
|
||||
End If
|
||||
|
||||
If m_Mode = ModeOpt.DRIP Then
|
||||
' Esplodo nelle curve componenti
|
||||
nCrvId = EgtGetFirstInGroup(DripLayer)
|
||||
@@ -866,11 +884,12 @@ Public Class SideAngleUC
|
||||
nCrvId = EgtGetFirstInGroup(DripLayer)
|
||||
While nCrvId <> GDB_ID.NULL
|
||||
EgtSetColor(nCrvId, COL_MCH_DRIPCUT())
|
||||
EgtSetInfo(nCrvId, INFO_DEPTH, m_dDripDepth)
|
||||
'EgtSetInfo(nCrvId, INFO_DEPTH, m_dDripDepth)
|
||||
EgtSetInfo(nCrvId, INFO_STRICT, If(m_dDripShort > EPS_SMALL, "3", "0"))
|
||||
nCrvId = EgtGetNext(nCrvId)
|
||||
End While
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub PrevBtn_Click(sender As Object, e As RoutedEventArgs) Handles PrevBtn.Click
|
||||
@@ -1304,11 +1323,16 @@ Public Class SideAngleUC
|
||||
End Sub
|
||||
|
||||
Private Sub Parameter4TxBx_EgtClosed(sender As Object, e As EventArgs) Handles Parameter4TxBx.EgtClosed
|
||||
If m_Mode = ModeOpt.DRIP Or m_Mode = ModeOpt.ENGRAVE Then
|
||||
If m_Mode = ModeOpt.DRIP Then
|
||||
' Recupero il valore
|
||||
StringToLen(Parameter4TxBx.Text, m_dDripShort)
|
||||
' Creo le geometrie dei gocciolatoi
|
||||
RefreshSideAngleText()
|
||||
ElseIf m_Mode = ModeOpt.ENGRAVE Then
|
||||
' Recupero il valore
|
||||
StringToLen(Parameter4TxBx.Text, m_dEngraveDepth2)
|
||||
' Creo le geometrie dei gocciolatoi
|
||||
RefreshSideAngleText()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
+158
-11
@@ -1,16 +1,48 @@
|
||||
<ResourceDictionary
|
||||
x:Class="EgtDictionary"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:Project="clr-namespace:OmagCUT"
|
||||
xmlns:ControlExtensions="clr-namespace:OmagCUT.ControlExtensions">
|
||||
<ResourceDictionary x:Class="EgtDictionary"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:Project="clr-namespace:OmagCUT"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtPHOTOLib="clr-namespace:EgtPHOTOLib;assembly=EgtPHOTOLib"
|
||||
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5"
|
||||
xmlns:ControlExtensions="clr-namespace:OmagCUT.ControlExtensions">
|
||||
|
||||
<!--Template che permette di andare a capo-->
|
||||
<EgtWPFLib5:StatusBarVM x:Key="StatusBarVM"/>
|
||||
<EgtWPFLib5:ShowPanelVM x:Key="ShowPanelVM"/>
|
||||
<EgtWPFLib5:ViewPanelVM x:Key="ViewPanelVM"/>
|
||||
<EgtWPFLib5:InstrumentPanelVM x:Key="InstrumentPanelVM"/>
|
||||
|
||||
<EgtPHOTOLib:ProjectSlabVM x:Key="ProjectSlabVM"/>
|
||||
<EgtPHOTOLib:OptionPanelSlabVM x:Key="OptionPanelSlabVM"/>
|
||||
<EgtPHOTOLib:ListPageSlabVM x:Key="ListPageSlabVM"/>
|
||||
<EgtPHOTOLib:DetailPageSlabVM x:Key="DetailPageSlabVM"/>
|
||||
<EgtPHOTOLib:SearchPanelSlabVM x:Key="SearchPanelSlabVM"/>
|
||||
<EgtPHOTOLib:MyInstrumentPanelSlabVM x:Key="MyInstrumentPanelSlabVM"/>
|
||||
|
||||
<!--Colori predefiniti-->
|
||||
<SolidColorBrush x:Key="Omag_Blue" Color="#FF095CA8" />
|
||||
<SolidColorBrush x:Key="Omag_Yellow" Color="#FFFFCE5B" />
|
||||
<SolidColorBrush x:Key="Omag_Red" Color="Red" />
|
||||
<SolidColorBrush x:Key="Omag_Green" Color="LawnGreen" />
|
||||
<SolidColorBrush x:Key="Omag_VeryLightGray" Color="#FFF2F2F2" />
|
||||
<SolidColorBrush x:Key="Omag_LightGray" Color="LightGray" />
|
||||
<SolidColorBrush x:Key="Omag_Gray" Color="#FF9E9E9E" />
|
||||
<SolidColorBrush x:Key="Omag_DarkGray" Color="#FF444444" />
|
||||
<SolidColorBrush x:Key="Omag_White" Color="#FFFFFFFF" />
|
||||
<SolidColorBrush x:Key="Omag_Black" Color="#FF000000" />
|
||||
|
||||
<SolidColorBrush x:Key="EgaltechBlue1" Color="#FF095CA8" />
|
||||
<SolidColorBrush x:Key="EgaltechWhite" Color="#FFFFFFFF" />
|
||||
|
||||
<!--Template che permette di andare a capo-->
|
||||
<DataTemplate x:Key="Button_DataTemplate_Wrap">
|
||||
<TextBlock TextWrapping="Wrap" Text="{Binding}"/>
|
||||
</DataTemplate>
|
||||
|
||||
<!--ButtonBase-->
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- Button Style -->
|
||||
|
||||
<Style TargetType="{x:Type Button}">
|
||||
<Setter Property="FocusVisualStyle">
|
||||
<Setter.Value>
|
||||
@@ -71,7 +103,44 @@
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________ -->
|
||||
<!--Template che permette di andare a capo-->
|
||||
<DataTemplate x:Key="WrapButton_DataTemplate">
|
||||
<TextBlock TextWrapping="WrapWithOverflow" Text="{Binding}"/>
|
||||
</DataTemplate>
|
||||
|
||||
<Style x:Key="ToolBar_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Height" Value="30"/>
|
||||
<Setter Property="Width" Value="30"/>
|
||||
</Style>
|
||||
<Style x:Key="ToolBar_TextButton" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Height" Value="30"/>
|
||||
<Setter Property="Width" Value="80"/>
|
||||
</Style>
|
||||
<Style x:Key="OptionPanel_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Height" Value="60"/>
|
||||
<Setter Property="Width" Value="60"/>
|
||||
</Style>
|
||||
<Style x:Key="OptionPanel_TextButton" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Height" Value="30"/>
|
||||
</Style>
|
||||
<Style x:Key="OptionPanel_TextWrapButton" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="ContentTemplate" Value="{StaticResource WrapButton_DataTemplate}" />
|
||||
<Setter Property="TextBlock.TextAlignment" Value="Center"/>
|
||||
<Setter Property="Height" Value="45"/>
|
||||
</Style>
|
||||
<Style x:Key="OptionPanel_NestingButton" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Height" Value="60"/>
|
||||
<Setter Property="Width" Value="60"/>
|
||||
</Style>
|
||||
<Style x:Key="CompoWindow_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Height" Value="40"/>
|
||||
</Style>
|
||||
<Style x:Key="EgtWPFLib5_InputButton" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Height" Value="30"/>
|
||||
<Setter Property="Width" Value="60"/>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!--Template che permette di andare a capo-->
|
||||
<DataTemplate x:Key="CheckBox_DataTemplate_Wrap">
|
||||
@@ -375,7 +444,59 @@
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________ -->
|
||||
<Style x:Key="ToolBar_ToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
|
||||
<Setter Property="Height" Value="30"/>
|
||||
<Setter Property="Width" Value="30"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ToolBar_TextToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
|
||||
<Setter Property="Height" Value="30"/>
|
||||
<Setter Property="Width" Value="70"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="OptionPanel_ToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
|
||||
<Setter Property="Height" Value="30"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="OptionPanel_NestingToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
|
||||
<Setter Property="Height" Value="60"/>
|
||||
<Setter Property="Width" Value="60"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CompoWindow_ToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
|
||||
<Setter Property="Height" Value="40"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CompoWindow_WrapToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
|
||||
<Setter Property="ContentTemplate" Value="{StaticResource WrapButton_DataTemplate}" />
|
||||
<Setter Property="TextBlock.TextAlignment" Value="Center" />
|
||||
<Setter Property="Height" Value="40"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="Option_ColorButton" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||
<Setter Property="Padding" Value="5"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||
<Setter Property="TextBlock.TextAlignment" Value="Center"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter Property="Background" Value="#FFB8C3CD"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="OpacityMask" Value="#33FF0000"/>
|
||||
</Trigger>
|
||||
<Trigger Property="ToggleButton.IsChecked" Value="True">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Background" Value="#FFF4F4F4"/>
|
||||
<Setter Property="BorderBrush" Value="#FFADB2B5"/>
|
||||
<Setter Property="TextElement.Foreground" Value="#FF838383"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!--TreeViewBase-->
|
||||
<!--Style e colori della freccia di espansione, necessari per modificare il ContainerItemStyle perchè contiene riferimenti ad essi-->
|
||||
@@ -431,6 +552,32 @@
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________ -->
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- EgtCustomWindow -->
|
||||
|
||||
<Style TargetType="{x:Type EgtWPFLib5:EgtCustomWindow}" BasedOn="{StaticResource {x:Type EgtWPFLib5:EgtCustomWindow}}">
|
||||
<Setter Property="TitleBarHeight" Value="32"/>
|
||||
<Setter Property="TitleBarBrush" Value="{StaticResource Omag_LightGray}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource Omag_Gray}"/>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- EgtFloatingPanel -->
|
||||
|
||||
<Style x:Key="ToolBar_EgtFloatingPanel" TargetType="{x:Type EgtFloating:EgtFloatingPanel}" BasedOn="{StaticResource {x:Type EgtFloating:EgtFloatingPanel}}">
|
||||
<Setter Property="Background" Value="{StaticResource Omag_Gray}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource Omag_Gray}"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="Option_EgtFloatingPanel" TargetType="{x:Type EgtFloating:EgtFloatingPanel}" BasedOn="{StaticResource {x:Type EgtFloating:EgtFloatingPanel}}">
|
||||
<Setter Property="IsToolBar" Value="False"/>
|
||||
<Setter Property="TitleBarOrientation" Value="Vertical"/>
|
||||
<Setter Property="Background" Value="{StaticResource Omag_Gray}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource Omag_Gray}"/>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________ -->
|
||||
|
||||
</ResourceDictionary>
|
||||
|
||||
@@ -752,6 +752,7 @@ Public Class CurrentMachine
|
||||
End Select
|
||||
End Get
|
||||
Set(value As Double)
|
||||
Dim dValue As Double = 0
|
||||
Select Case GetCurrentTable()
|
||||
Case 3
|
||||
If Math.Abs(value - m_dTab3AdditionalTable) > EPS_SMALL And
|
||||
@@ -760,14 +761,24 @@ Public Class CurrentMachine
|
||||
m_dTab3AdditionalTable = value
|
||||
' Aggiorno il progetto corrente
|
||||
m_MainWindow.m_CurrentProjectPageUC.AdjustAdditionalTable()
|
||||
' salvo il valore della sovratavola nel progetto
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_TAB3_ADDITIONALTABLE, dValue)
|
||||
If Math.Abs(dValue - value) > EPS_SMALL Then
|
||||
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_TAB3_ADDITIONALTABLE, value)
|
||||
End If
|
||||
End If
|
||||
Case 2
|
||||
Case 2
|
||||
If Math.Abs(value - m_dTab2AdditionalTable) > EPS_SMALL And
|
||||
WritePrivateProfileString(S_TABLE, K_TAB2_ADDITIONALTABLE, DoubleToString(value, 3), sMachIniFile) Then
|
||||
' Aggiorno il valore corrente
|
||||
m_dTab2AdditionalTable = value
|
||||
' Aggiorno il progetto corrente
|
||||
m_MainWindow.m_CurrentProjectPageUC.AdjustAdditionalTable()
|
||||
' salvo il valore della sovratavola nel progetto
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_TAB2_ADDITIONALTABLE, dValue)
|
||||
If Math.Abs(dValue - value) > EPS_SMALL Then
|
||||
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_TAB2_ADDITIONALTABLE, value)
|
||||
End If
|
||||
End If
|
||||
Case Else
|
||||
If Math.Abs(value - m_dAdditionalTable) > EPS_SMALL And
|
||||
@@ -776,6 +787,11 @@ Public Class CurrentMachine
|
||||
m_dAdditionalTable = value
|
||||
' Aggiorno il progetto corrente
|
||||
m_MainWindow.m_CurrentProjectPageUC.AdjustAdditionalTable()
|
||||
' salvo il valore della sovratavola nel progetto
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_ADDITIONALTABLE, dValue)
|
||||
If Math.Abs(dValue - value) > EPS_SMALL Then
|
||||
EgtSetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_ADDITIONALTABLE, value)
|
||||
End If
|
||||
End If
|
||||
End Select
|
||||
End Set
|
||||
@@ -1311,7 +1327,7 @@ Public Class CurrentMachine
|
||||
' Leggo valori da file Data e li carico nelle proprietà
|
||||
Dim sFilePath As String = sMachDir & "\" & MACHININGS_DIR & "\" & WATERJETDB_FILE
|
||||
Dim Local_MaterialList = New ObservableCollection(Of EgtWPFLib5.WjMaterial)
|
||||
Local_MaterialList = EgtWPFLib5.WaterjetDbWindowVM.LoadWjMaterials(sFilePath)
|
||||
Local_MaterialList = WaterjetDbWindowVM_OmagCUT.LoadWjMaterials(sFilePath)
|
||||
' definisco la lista delle qualità (solo se è vuota)
|
||||
If m_Qualities.Count < 1 Then
|
||||
m_Qualities.Add("Q1")
|
||||
@@ -1342,7 +1358,7 @@ Public Class CurrentMachine
|
||||
' Leggo valori da file Data e li carico nelle proprietà
|
||||
Dim sFilePath As String = sMachDir & "\" & MACHININGS_DIR & "\" & WATERJETDB_FILE
|
||||
Dim Local_MaterialList = New ObservableCollection(Of EgtWPFLib5.WjMaterial)
|
||||
Local_MaterialList = EgtWPFLib5.WaterjetDbWindowVM.LoadWjMaterials(sFilePath)
|
||||
Local_MaterialList = WaterjetDbWindowVM_OmagCUT.LoadWjMaterials(sFilePath)
|
||||
Dim sItems() As String = sCurMat.Split("."c)
|
||||
If sItems.Count > 1 Then
|
||||
Dim sMat As String = sItems(0)
|
||||
|
||||
@@ -145,12 +145,12 @@ Public Class MachinePageUC
|
||||
m_ActiveMachinePage = MachinePages.Alarms
|
||||
Case MachinePages.WaterJet
|
||||
' Verifica ed eventuale salvataggio Db Waterjet
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, WaterjetDbWindowVM_OmagCUT).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.CANCEL Then
|
||||
AlarmsBtn.IsChecked = False
|
||||
WaterJetBtn.IsChecked = True
|
||||
Return
|
||||
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
|
||||
ElseIf nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.NO Then
|
||||
m_WaterJetPageUC.WaterJetPage_Reinitialize()
|
||||
End If
|
||||
' passo alla pagina Dati Macchina
|
||||
@@ -215,12 +215,12 @@ Public Class MachinePageUC
|
||||
m_ActiveMachinePage = MachinePages.ToolsDb
|
||||
Case MachinePages.WaterJet
|
||||
'Verifica ed eventuale salvataggio Db Waterjet
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, WaterjetDbWindowVM_OmagCUT).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.CANCEL Then
|
||||
ToolsDBBtn.IsChecked = False
|
||||
WaterJetBtn.IsChecked = True
|
||||
Return
|
||||
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
|
||||
ElseIf nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.NO Then
|
||||
m_WaterJetPageUC.WaterJetPage_Reinitialize()
|
||||
End If
|
||||
' passo alla pagina Dati Macchina
|
||||
@@ -285,12 +285,12 @@ Public Class MachinePageUC
|
||||
m_ActiveMachinePage = MachinePages.MachiningDb
|
||||
Case MachinePages.WaterJet
|
||||
' Verifica ed eventuale salvataggio Db Waterjet
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, WaterjetDbWindowVM_OmagCUT).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.CANCEL Then
|
||||
MachiningDBBtn.IsChecked = False
|
||||
WaterJetBtn.IsChecked = True
|
||||
Return
|
||||
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
|
||||
ElseIf nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.NO Then
|
||||
m_WaterJetPageUC.WaterJetPage_Reinitialize()
|
||||
End If
|
||||
' passo alla pagina Dati Macchina
|
||||
@@ -358,12 +358,12 @@ Public Class MachinePageUC
|
||||
PolishingsBtn.IsChecked = True
|
||||
Case MachinePages.WaterJet
|
||||
' Verifica ed eventuale salvataggio Db Waterjet
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, WaterjetDbWindowVM_OmagCUT).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.CANCEL Then
|
||||
PolishingsBtn.IsChecked = False
|
||||
WaterJetBtn.IsChecked = True
|
||||
Return
|
||||
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
|
||||
ElseIf nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.NO Then
|
||||
m_WaterJetPageUC.WaterJetPage_Reinitialize()
|
||||
End If
|
||||
' passo alla pagina Dati Macchina
|
||||
@@ -513,12 +513,12 @@ Public Class MachinePageUC
|
||||
m_ActiveMachinePage = MachinePages.MachineCN
|
||||
Case MachinePages.WaterJet
|
||||
' Verifica ed eventuale salvataggio Db Waterjet
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, WaterjetDbWindowVM_OmagCUT).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.CANCEL Then
|
||||
TestingPageBtn.IsChecked = False
|
||||
WaterJetBtn.IsChecked = True
|
||||
Return
|
||||
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
|
||||
ElseIf nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.NO Then
|
||||
m_WaterJetPageUC.WaterJetPage_Reinitialize()
|
||||
End If
|
||||
' passo alla pagina Dati Macchina
|
||||
@@ -593,12 +593,12 @@ Public Class MachinePageUC
|
||||
m_ActiveMachinePage = MachinePages.Statistics
|
||||
Case MachinePages.WaterJet
|
||||
' Verifica ed eventuale salvataggio Db Waterjet
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
|
||||
Dim nPressedBtn As Integer = DirectCast(m_WaterJetPageUC.DataContext, WaterjetDbWindowVM_OmagCUT).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.CANCEL Then
|
||||
StatisticsBtn.IsChecked = False
|
||||
WaterJetBtn.IsChecked = True
|
||||
Return
|
||||
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
|
||||
ElseIf nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.NO Then
|
||||
m_WaterJetPageUC.WaterJetPage_Reinitialize()
|
||||
End If
|
||||
' passo alla pagina Dati Macchina
|
||||
|
||||
@@ -8,18 +8,18 @@ Public Class WaterJetPageUC
|
||||
|
||||
' Riferimento alla MainWindow
|
||||
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||
Private m_refWaterjetDbWindowVM As EgtWPFLib5.WaterjetDbWindowVM
|
||||
Private m_refWaterjetDbWindowVM As WaterjetDbWindowVM_OmagCUT
|
||||
Private m_sOrigNewMaterial As String = String.Empty
|
||||
Private m_sOrigNewSubMaterial As String = String.Empty
|
||||
|
||||
Private Sub WaterJetPage_Initialized(sender As Object, e As EventArgs)
|
||||
m_refWaterjetDbWindowVM = New EgtWPFLib5.WaterjetDbWindowVM(m_MainWindow.m_CurrentMachine.sMachDir)
|
||||
m_refWaterjetDbWindowVM = New WaterjetDbWindowVM_OmagCUT(m_MainWindow.m_CurrentMachine.sMachDir)
|
||||
Me.DataContext = m_refWaterjetDbWindowVM
|
||||
EgtWPFLib.Utility.MainWindow = m_MainWindow
|
||||
End Sub
|
||||
|
||||
Public Sub WaterJetPage_Reinitialize()
|
||||
m_refWaterjetDbWindowVM = New EgtWPFLib5.WaterjetDbWindowVM(m_MainWindow.m_CurrentMachine.sMachDir)
|
||||
m_refWaterjetDbWindowVM = New WaterjetDbWindowVM_OmagCUT(m_MainWindow.m_CurrentMachine.sMachDir)
|
||||
Me.DataContext = m_refWaterjetDbWindowVM
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.IO
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib
|
||||
|
||||
' nuova libreria EgtWPFLib5 ver 2.4g1
|
||||
Public Class WaterjetDbWindowVM_OmagCUT
|
||||
Inherits EgtWPFLib5.WaterjetDbWindowVM
|
||||
|
||||
Public Function CloseWaterjetDb_OmagCut(MainWindow As Window) As SaveWndBtnEnum
|
||||
If bIsModified Then
|
||||
Dim SaveWjDbWnd As New EgtMsgBox(MainWindow, "", EgtMsg(31759), EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL)
|
||||
Select Case SaveWjDbWnd.m_nPressedBtn
|
||||
Case 1 ' Yes
|
||||
WriteWaterjetDb()
|
||||
bIsModified = False
|
||||
Return SaveWndBtnEnum.YES
|
||||
Case 2 ' No
|
||||
Return SaveWndBtnEnum.NO
|
||||
Case Else ' Cancel
|
||||
Return SaveWndBtnEnum.CANCEL
|
||||
End Select
|
||||
Else
|
||||
Dim bExitFor As Boolean = False
|
||||
For Each Material As EgtWPFLib5.WjMaterial In MaterialList
|
||||
If Not IsNothing(Material.SubMaterialList) Then
|
||||
For Each SubMaterial As EgtWPFLib5.WjSubMaterial In Material.SubMaterialList
|
||||
If Not IsNothing(SubMaterial.ParamList) Then
|
||||
For Each QParam As EgtWPFLib5.WjParam In SubMaterial.ParamList
|
||||
bExitFor = QParam.IsModified()
|
||||
If bExitFor Then Exit For
|
||||
Next
|
||||
End If
|
||||
If bExitFor Then Exit For
|
||||
Next
|
||||
End If
|
||||
If bExitFor Then Exit For
|
||||
Next
|
||||
If bExitFor Then
|
||||
Dim SaveWjDbWnd As New EgtMsgBox(MainWindow, "", EgtMsg(31759), EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL)
|
||||
Select Case SaveWjDbWnd.m_nPressedBtn
|
||||
Case 1 ' Yes
|
||||
WriteWaterjetDb()
|
||||
bIsModified = False
|
||||
Return SaveWndBtnEnum.YES
|
||||
Case 2 ' No
|
||||
Return SaveWndBtnEnum.NO
|
||||
Case Else ' Cancel
|
||||
Return SaveWndBtnEnum.CANCEL
|
||||
End Select
|
||||
End If
|
||||
End If
|
||||
Return SaveWndBtnEnum.YES
|
||||
End Function
|
||||
|
||||
Sub New(sMachDir As String)
|
||||
MyBase.New(sMachDir)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
+62
-3
@@ -2,6 +2,7 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib
|
||||
Imports EgtPHOTOLib
|
||||
Imports System.ComponentModel
|
||||
Imports System.Threading
|
||||
Imports System.Windows.Threading
|
||||
@@ -498,6 +499,64 @@ Class MainWindow
|
||||
AddHandler m_ProdLineTimer.Tick, AddressOf OnProdLine
|
||||
' Imposto riferimento a funzione delle textbox che disattiva scene in libreria
|
||||
EgtWPFLib.EgtTextBox.m_refScenesIsEnabled = AddressOf IsEnabledScenes
|
||||
|
||||
' --------------------------------- SLAB DB -------------------------------------------------------
|
||||
If GetPrivateProfileInt(S_SCRAPS, K_ENABLESCRAPS, 0, GetIniFile()) <> 0 Then
|
||||
' leggo il direttorio in cui cercare il database delle lastre
|
||||
Dim PhotDir As String = String.Empty
|
||||
GetPrivateProfileString(S_SCRAPS, K_PHOTODIR, "", PhotDir, GetIniFile())
|
||||
' verifico che esista il file "OmagPHOTOVb.sqlite" nel direttorio inidicato
|
||||
If System.IO.File.Exists(PhotDir.Trim & "\" & DB_FILENAME) Then
|
||||
|
||||
If Not ManageDb.ConnectToDb(PhotDir.Trim & "\" & DB_FILENAME) Then
|
||||
EgtOutLog("Error connecting to DB: " & PhotDir.Trim & "\" & DB_FILENAME)
|
||||
' coumico che il grezzo contiene un pezzo e quindi non può essere definito come grezzo
|
||||
m_CurrentProjectPageUC.ClearMessage()
|
||||
m_CurrentProjectPageUC.SetErrorMessage("Denied connection SlabDB")
|
||||
Else
|
||||
' Impostazione direttorio per backup
|
||||
Dim BackUpDir As String = m_sDataRoot & "\BackUp"
|
||||
Directory.CreateDirectory(BackUpDir)
|
||||
EgtPHOTOLib.MainData.SetConfigDir(m_sConfigDir)
|
||||
EgtPHOTOLib.MainData.SetKeyLevel(m_nKeyLevel)
|
||||
EgtPHOTOLib.MainData.SetKeyOptions(CInt(m_nKeyOptions))
|
||||
EgtPHOTOLib.MainData.SetPhotoDir(PhotDir)
|
||||
EgtPHOTOLib.MainData.SetBackUpDir(BackUpDir)
|
||||
EgtPHOTOLib.MainData.SetIsOMagCUT(True)
|
||||
Dim sLastBlock As String = String.Empty
|
||||
GetPrivateProfileString(S_SCRAPS, K_LASTBLOCK, "", sLastBlock, GetIniFile())
|
||||
If Not String.IsNullOrEmpty(sLastBlock) Then
|
||||
EgtPHOTOLib.MainData.SetLastBlock(sLastBlock)
|
||||
End If
|
||||
|
||||
If GetPrivateProfileInt(S_SCRAPS, K_ENABLE_PRINTER, 0, GetIniFile()) = 1 Then
|
||||
' leggo nome file prn (per stampante zebra)
|
||||
Dim m_TemplateFilePrinter As String = String.Empty
|
||||
GetPrivateProfileString(S_SCRAPS, K_TEMPLATE, m_sDataRoot & "\Label\Default.prn", m_TemplateFilePrinter, GetIniFile())
|
||||
' leggo nome del direttorio in cui scrivere il file ini (per stampante zebra) -- solo se si desidera scrivere il file in un direttorio diverso
|
||||
Dim m_DatFilePrinter As String = String.Empty
|
||||
GetPrivateProfileString(S_SCRAPS, K_DAT, m_sDataRoot & "\Temp", m_DatFilePrinter, GetIniFile())
|
||||
' leggo nome file exe (per stampante zebra)
|
||||
Dim m_ZebraUtilitiesExe As String = String.Empty
|
||||
GetPrivateProfileString(S_SCRAPS, K_ZEBRAUTILITIES, System.AppDomain.CurrentDomain.BaseDirectory & "ZebraPrinterUtilitiesR32.exe", m_ZebraUtilitiesExe, GetIniFile())
|
||||
EgtPHOTOLib.MainData.SetTemplateFilePrinter(m_TemplateFilePrinter)
|
||||
EgtPHOTOLib.MainData.SetDataFilePrinter(m_DatFilePrinter)
|
||||
EgtPHOTOLib.MainData.SetZebraPrinterExe(m_ZebraUtilitiesExe)
|
||||
EgtPHOTOLib.MainData.SetPrinterVisibility(True)
|
||||
Else
|
||||
EgtPHOTOLib.MainData.SetPrinterVisibility(False)
|
||||
End If
|
||||
|
||||
' è permessa una sola istanza alla volta del programma OmagCUT -> "(1)" : "(" & nIstance.ToString & ")"
|
||||
EgtPHOTOLib.MainData.SetUser(Environment.MachineName & "\" & Environment.UserName & " (1)")
|
||||
Dim sIdKey As String = String.Empty
|
||||
EgtGetKeyInfo(sIdKey)
|
||||
EgtPHOTOLib.MainData.SetKey(sIdKey)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
' --------------------------------- SLAB DB -------------------------------------------------------
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub ManageSingleIstance()
|
||||
@@ -1092,10 +1151,10 @@ Class MainWindow
|
||||
Case MachinePageUC.MachinePages.WaterJet
|
||||
' Verifica ed eventuale salvataggio Db Waterjet
|
||||
Dim m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||
Dim nPressedBtn As Integer = DirectCast(m_MachinePageUC.m_WaterJetPageUC.DataContext, EgtWPFLib5.WaterjetDbWindowVM).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.CANCEL Then
|
||||
Dim nPressedBtn As Integer = DirectCast(m_MachinePageUC.m_WaterJetPageUC.DataContext, WaterjetDbWindowVM_OmagCUT).CloseWaterjetDb_OmagCut(m_MainWindow)
|
||||
If nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.CANCEL Then
|
||||
Return False
|
||||
ElseIf nPressedBtn = EgtWPFLib5.WaterjetDbWindowVM.SaveWndBtnEnum.NO Then
|
||||
ElseIf nPressedBtn = WaterjetDbWindowVM_OmagCUT.SaveWndBtnEnum.NO Then
|
||||
m_MachinePageUC.m_WaterJetPageUC.WaterJetPage_Reinitialize()
|
||||
End If
|
||||
End Select
|
||||
|
||||
@@ -62,5 +62,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.6.2")>
|
||||
<Assembly: AssemblyFileVersion("2.4.6.2")>
|
||||
<Assembly: AssemblyVersion("2.4.7.1")>
|
||||
<Assembly: AssemblyFileVersion("2.4.7.1")>
|
||||
|
||||
@@ -115,6 +115,9 @@
|
||||
<Reference Include="AxInterop.FXLib">
|
||||
<HintPath>..\..\EgtProg\OmagCUT\AxInterop.FXLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EgtPHOTOLib">
|
||||
<HintPath>..\..\EgtProg\Dll32\EgtPHOTOLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EgtUILib, Version=2.3.4.5, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\EgtProg\DllD32\EgtUILib.dll</HintPath>
|
||||
@@ -143,6 +146,10 @@
|
||||
</Reference>
|
||||
<Reference Include="PresentationFramework.Aero" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\EgtProg\Dll32\System.Data.SQLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
@@ -205,10 +212,20 @@
|
||||
<Compile Include="Machine\ImportExportToolWD.xaml.vb">
|
||||
<DependentUpon>ImportExportToolWD.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Machine\WaterjetDbWindowVM.vb" />
|
||||
<Compile Include="Machine\WaterJetPageVM.vb" />
|
||||
<Compile Include="Machine\WaterJetPageUC.xaml.vb">
|
||||
<DependentUpon>WaterJetPageUC.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Project\AddToDataBaseUC.xaml.vb">
|
||||
<DependentUpon>AddToDataBaseUC.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Project\OmagPhotoWD.xaml.vb">
|
||||
<DependentUpon>OmagPhotoWD.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Project\ScrapsWD.xaml.vb">
|
||||
<DependentUpon>ScrapsWD.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Project\StartLauncheWD.xaml.vb">
|
||||
<DependentUpon>StartLauncheWD.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -459,6 +476,18 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Project\AddToDataBaseUC.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Project\OmagPhotoWD.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Project\ScrapsWD.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Project\StartLauncheWD.xaml">
|
||||
</Page>
|
||||
<Page Include="Project\CicloStartWD.xaml">
|
||||
@@ -1261,6 +1290,12 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\START-WJ.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\ImportPageListBoxImages\4.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\ImportPageListBoxImages\5.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagCUT\OmagCUTR32.exe
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
<UserControl x:Class="AddToDataBaseUC"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="853.3" d:DesignWidth="1280">
|
||||
|
||||
<Border Style="{DynamicResource OmagCut_Border}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
<ColumnDefinition Width="2.5*"/>
|
||||
<ColumnDefinition Width="0.25*"/>
|
||||
<ColumnDefinition Width="4*"/>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<!--Nome BLOCCO-->
|
||||
<TextBlock Name="BlockTxBl" Grid.Column="1" Grid.Row="1" Text="Name block"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="BlockTxBx" Grid.Column="3" Grid.Row="1"
|
||||
Style="{DynamicResource OmagCut_KeyboardTextBox}"/>
|
||||
<!--Numero ID-->
|
||||
<TextBlock Name="NbrIdTxBl" Grid.Column="1" Grid.Row="3" Text="ID"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="NbrIdTxBx" Grid.Column="3" Grid.Row="3"
|
||||
Style="{DynamicResource OmagCut_KeyboardTextBox}"/>
|
||||
<!--STATE-->
|
||||
<TextBlock Name="StateTxBl" Grid.Column="1" Grid.Row="5" Text="State"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<ComboBox Name="StateCmBx" Grid.Column="3" Grid.Row="5" Style="{StaticResource OmagCut_LeftComboBoxInBorder}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding}" Style="{StaticResource OmagCut_LowerCaseCharacterTextBlock}"/>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
<!--PROJECT-->
|
||||
<TextBlock Name="ProjectNameTxBl" Grid.Column="1" Grid.Row="7" Text="Project"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="ProjectTxBx" Grid.Column="3" Grid.Row="7"
|
||||
Style="{DynamicResource OmagCut_KeyboardTextBox}"/>
|
||||
<!--MATERIAL-->
|
||||
<TextBlock Name="MatTxBl" Grid.Column="1" Grid.Row="9" Text="Mat"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="MatTxBx" Grid.Column="3" Grid.Row="9"
|
||||
Style="{DynamicResource OmagCut_KeyboardTextBox}" IsEnabled="False"/>
|
||||
<!--THICKNESS-->
|
||||
<TextBlock Name="ThicknessTxBl" Grid.Column="1" Grid.Row="11" Text="Thickness"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="ThicknessTxBx" Grid.Column="3" Grid.Row="11"
|
||||
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
|
||||
<!--WAREHOUSE-->
|
||||
<TextBlock Name="WarehouseTxBl" Grid.Column="1" Grid.Row="13" Text="Warehouse position"
|
||||
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
|
||||
<EgtWPFLib:EgtTextBox Name="WarehouseTxBx" Grid.Column="3" Grid.Row="13"
|
||||
Style="{DynamicResource OmagCut_KeyboardTextBox}"/>
|
||||
|
||||
<!--CANCEL-->
|
||||
<Button Name="CacelBtn" Grid.Column="1" Grid.Row="15" Content="Delete"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
<!--ADD-->
|
||||
<Button Name="AddBtn" Grid.Column="3" Grid.Row="15" Content="Add"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
<!--PRINT-->
|
||||
<Button Name="PrintBtn" Grid.Column="1" Grid.Row="17" Content="Print"
|
||||
Style="{DynamicResource OmagCut_YellowTextButton}"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Border>
|
||||
|
||||
</UserControl>
|
||||
@@ -0,0 +1,121 @@
|
||||
Imports EgtUILib
|
||||
Imports EgtPHOTOLib
|
||||
Imports System.IO
|
||||
|
||||
Public Class AddToDataBaseUC
|
||||
|
||||
Private m_OmagPhotoWD As OmagPhotoWD
|
||||
|
||||
#Region "PROPERTY"
|
||||
Private Sub BlockTxBx_EgtClosed(sender As Object, e As EventArgs) Handles BlockTxBx.EgtClosed
|
||||
' assegno il dato alla classe inizializzata nella libreria
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNameBlock = BlockTxBx.Text
|
||||
' devo riasseganre il valore dell'indice
|
||||
NbrIdTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNbrID
|
||||
EnableButtons()
|
||||
End Sub
|
||||
|
||||
Private Sub NbrIdTxBx_EgtClosed(sender As Object, e As EventArgs) Handles NbrIdTxBx.EgtClosed
|
||||
' assegno il dato alla classe inizializzata nella libreria
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNbrID = NbrIdTxBx.Text
|
||||
EnableButtons()
|
||||
End Sub
|
||||
|
||||
Private Sub StateCmBx_Changed() Handles StateCmBx.SelectionChanged
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.State = StateCmBx.SelectedIndex
|
||||
EnableButtons()
|
||||
End Sub
|
||||
|
||||
Private Sub ProjectTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ProjectTxBx.EgtClosed
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.ProjectAssignedTo = ProjectTxBx.Text
|
||||
EnableButtons()
|
||||
End Sub
|
||||
|
||||
Private Sub ThicknessTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ThicknessTxBx.EgtClosed
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Thickness = ThicknessTxBx.Text
|
||||
EnableButtons()
|
||||
End Sub
|
||||
|
||||
Private Sub WarehouseTxBx_EgtClosed(sender As Object, e As EventArgs) Handles WarehouseTxBx.EgtClosed
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.WarehousePosition = WarehouseTxBl.Text
|
||||
EnableButtons()
|
||||
End Sub
|
||||
#End Region ' Property
|
||||
|
||||
Sub New(LocalOmagPhotoWD As OmagPhotoWD)
|
||||
|
||||
' La chiamata è richiesta dalla finestra di progettazione.
|
||||
InitializeComponent()
|
||||
|
||||
' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
|
||||
m_OmagPhotoWD = LocalOmagPhotoWD
|
||||
End Sub
|
||||
|
||||
' dopo la crezione della pagina imposto lo stato dei pulsanti
|
||||
Private Sub PostLoaded() Handles Me.Loaded
|
||||
If EgtPHOTOLib.MainData.bEnableTextId Then
|
||||
BlockTxBx.Visibility = Visibility.Collapsed
|
||||
BlockTxBl.Visibility = Visibility.Collapsed
|
||||
Else
|
||||
NbrIdTxBx.IsEnabled = False
|
||||
End If
|
||||
PrintBtn.IsEnabled = EgtPHOTOLib.MainData.bEnablePrinter
|
||||
EnableButtons()
|
||||
End Sub
|
||||
|
||||
#Region "COMMAND"
|
||||
Private Sub CancelBtn_Click() Handles CacelBtn.Click
|
||||
' se è stata inserita nel DB allora devo rimuoverla ed esco dalla pagina
|
||||
EgtPHOTOLib.refOptionPanelVM.Delete()
|
||||
' notifico che il grezzo è stato rimosso
|
||||
OmagPhotoWD.m_IsDeleted = True
|
||||
' notifico che il grezzo non è stato aggiunto al DB delle lastre
|
||||
OmagPhotoWD.m_IsAdded = False
|
||||
' elimino l'identificativo usato nel database del grezzo appena inserito
|
||||
OmagPhotoWD.m_sDtBsId = ""
|
||||
' esco dalla pagina
|
||||
m_OmagPhotoWD.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub AddBtn_Click() Handles AddBtn.Click
|
||||
' se non sono validi i campi allora attendo
|
||||
If Not EgtPHOTOLib.PhotoMap.refOptionPanelVM.Ok_IsEnabled Then Return
|
||||
' modalità di funzionamento della libreria: ProjectSlabVM.ProjectModeOpt.NEWSLAB
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.Save()
|
||||
' notifico che il grezzo è stato aggiunto al DB delle lastre
|
||||
OmagPhotoWD.m_IsAdded = True
|
||||
' salvo l'identificativo usato nel database del grezzo appena inserito
|
||||
OmagPhotoWD.m_sDtBsId = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Id
|
||||
' salvo il nome del blocco che è stato utilizzato
|
||||
If Not EgtPHOTOLib.MainData.bEnableTextId Then
|
||||
WritePrivateProfileString(S_SCRAPS, K_LASTBLOCK, EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNameBlock, m_OmagPhotoWD.m_MainWindow.GetIniFile())
|
||||
End If
|
||||
' aggiorno il testo del messaggio "Add" → "Save"
|
||||
AddBtn.Content = "Save"
|
||||
|
||||
' notifico che da ora la lastra inserita è in modalità di modifica (non salvo la lastra come nuova, ma la sovrascrivo come in modifica)
|
||||
EgtPHOTOLib.PhotoMap.refProjectVM.SetSelProjectMode(ProjectSlabVM.ProjectModeOpt.DETAIL)
|
||||
EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab.SetOrigValues()
|
||||
|
||||
' notifico che la lastra è in modifica da questo programma
|
||||
EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab.IsSelected = EgtPHOTOLib.MainData.nKey
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.IsSelected()
|
||||
End Sub
|
||||
|
||||
Private Sub PrintBtn_Click() Handles PrintBtn.Click
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.PrintLabel()
|
||||
End Sub
|
||||
#End Region ' Command
|
||||
|
||||
#Region "METHODS"
|
||||
Private Sub EnableButtons()
|
||||
AddBtn.IsEnabled = EgtPHOTOLib.PhotoMap.refOptionPanelVM.Ok_IsEnabled
|
||||
' se la stampante non è abilitata allora non permetto assolutamente di abilitare il comando
|
||||
If EgtPHOTOLib.MainData.bEnablePrinter Then
|
||||
PrintBtn.IsEnabled = EgtPHOTOLib.PhotoMap.refOptionPanelVM.Ok_IsEnabled
|
||||
End If
|
||||
|
||||
End Sub
|
||||
#End Region ' Methods
|
||||
|
||||
End Class
|
||||
@@ -508,6 +508,20 @@ Public Class CurrentProjectPageUC
|
||||
UpdateHeightTxBx()
|
||||
' aggiorno materiale
|
||||
m_MainWindow.m_CurrentMachine.SetCurrMatByName(GetProjectMaterial())
|
||||
' aggiorno altezza sovaratavola
|
||||
If GetPrivateProfileInt(S_GENERAL, "AdditionalTableByProj", 0, m_sIniFile) = 1 Then
|
||||
' leggo il valore OrigiAdditionalTable
|
||||
Dim dValue As Double = m_MainWindow.m_CurrentMachine.dAdditionalTable
|
||||
Select Case GetCurrentTable()
|
||||
Case 3
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_TAB3_ADDITIONALTABLE, dValue)
|
||||
Case 2
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_TAB2_ADDITIONALTABLE, dValue)
|
||||
Case Else
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(GDB_ID.ROOT, NAME_PROJMARK), K_ADDITIONALTABLE, dValue)
|
||||
End Select
|
||||
m_MainWindow.m_CurrentMachine.dAdditionalTable = dValue
|
||||
End If
|
||||
' forzo visualizzazione eventuali dati su aree
|
||||
SetAreasStatus( True)
|
||||
' Dichiaro progetto non modificato
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
<Window x:Class="OmagPhotoWD"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:OmagCUT="clr-namespace:OmagCUT"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtPHOTOLib="clr-namespace:EgtPHOTOLib;assembly=EgtPHOTOLib"
|
||||
FontFamily="{DynamicResource OmagCut_Font}"
|
||||
Title="OmagPHOTO" Height="700" Width="1250" WindowStyle="None" ResizeMode="NoResize" ShowInTaskbar="False" >
|
||||
<Border Style="{DynamicResource OmagCut_Border}">
|
||||
<Grid Name="OptionSLabGrid">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="4*"/>
|
||||
<ColumnDefinition Width="10*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="0.25*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="0.25*"/>
|
||||
<RowDefinition Height="10*"/>
|
||||
<RowDefinition Height="0.25*"/>
|
||||
<RowDefinition Height="1.5*"/>
|
||||
<RowDefinition Height="0.25*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- nel codice mi occupo di riempire la griglia con gli UserControl -->
|
||||
|
||||
<Button Name="ExitBtn" Grid.Column="2" Grid.Row="3"
|
||||
Style="{DynamicResource OmagCut_GradientBlueIconButton}" IsCancel="True">
|
||||
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
|
||||
<DockPanel Grid.Column="1" Grid.Row="1" Visibility="Hidden">
|
||||
<!--StatusBar-->
|
||||
<EgtWPFLib5:StatusBarV DataContext="{StaticResource StatusBarVM}" DockPanel.Dock="Bottom"/>
|
||||
</DockPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Window>
|
||||
@@ -0,0 +1,171 @@
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtPHOTOLib
|
||||
Imports System.IO
|
||||
|
||||
Public Class OmagPhotoWD
|
||||
' Riferimento alla MainWindow
|
||||
Friend m_MainWindow As MainWindow
|
||||
|
||||
Private m_AddToDataBaseUC As AddToDataBaseUC
|
||||
Private m_StateList As New List(Of EgtWPFLib5.IdNameStruct)
|
||||
|
||||
' il contorno dell sfrido è definito a partire dai punti che rappresentano i vertici dello stesso
|
||||
Private m_ContornScrap As New List(Of Point3d)
|
||||
' se lo stato della lastra è "2" significa che è già stata inserita nel DB (non devo generare una nuova foto!)
|
||||
Private m_nState As Integer = 1
|
||||
' salvo il nome del file *.jpg
|
||||
Private m_sFileImage As String = String.Empty
|
||||
|
||||
' definsce se il slavataggio è andato a buon fine (questa variabile deve esistere anche dopo la chiusura della finestra!)
|
||||
Public Shared m_IsAdded As Boolean = False
|
||||
Public Shared m_sDtBsId As String = ""
|
||||
Public Shared m_bSlabIsSelected As Boolean = False
|
||||
|
||||
' definisce se il grezzo è stato eliminato dal DB
|
||||
Public Shared m_IsDeleted As Boolean = False
|
||||
|
||||
Public Sub New(sImage As String, ContornScrap As List(Of Point3d), MnWindow As MainWindow, nState As Integer, DatabaseID As String)
|
||||
|
||||
InitializeComponent()
|
||||
|
||||
' salvo il riferimento della finestra principale
|
||||
m_MainWindow = MnWindow
|
||||
' leggo lo stato dello sfrido per decidere quale modalità di apertuta usare
|
||||
m_nState = nState
|
||||
|
||||
'--------------- CARCICO lastra esistente ---------------
|
||||
If m_nState = 2 Then
|
||||
m_bSlabIsSelected = False
|
||||
' ricerco l'elemento già inserito nel DB
|
||||
For Each Item As Slab In EgtPHOTOLib.refProjectVM.SlabList
|
||||
Dim CurrId As String = Item.GetCurrentID.Trim
|
||||
If Item.GetCurrentID.Trim = DatabaseID.Trim Then
|
||||
EgtPHOTOLib.refProjectVM.SelSlab = Item
|
||||
m_bSlabIsSelected = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
' se non trovo nessun elemento nel db allora esco
|
||||
If IsNothing(EgtPHOTOLib.refProjectVM.SelSlab) Then
|
||||
EgtOutLog("ID is not found in database: " & DatabaseID)
|
||||
m_bSlabIsSelected = False
|
||||
Return
|
||||
End If
|
||||
' procedo alla visualizzazione della pagina
|
||||
EgtPHOTOLib.PhotoMap.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.DETAIL
|
||||
' carico la lista degli stati letta dalla libreria
|
||||
For Each Item As EgtWPFLib5.IdNameStruct In EgtPHOTOLib.PhotoMap.refOptionPanelVM.StateList
|
||||
m_StateList.Add(Item)
|
||||
Next
|
||||
|
||||
' notifico che la lastra è in modifica da questo programma
|
||||
EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab.IsSelected = EgtPHOTOLib.MainData.nKey
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.IsSelected()
|
||||
|
||||
' posiziono la finestra
|
||||
Me.Top = 15
|
||||
Me.Left = 15
|
||||
Return
|
||||
End If
|
||||
|
||||
'--------------- DEFINSCO nuova lastra esistente ---------------
|
||||
' imposto come prima pagina sempre la lista (per inizializzare gli elementi della libreria) → ACCELERARE il processo di creazione di questo oggetto!
|
||||
EgtPHOTOLib.PhotoMap.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.NEWSLAB
|
||||
' imposto il percoso della foto appena generato
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.ImagePath = sImage
|
||||
' carico la foto come texture
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.PostPhoto(sImage, "")
|
||||
' carico l'elenco dei materiali (non serve...)
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SetMaterialFromDB()
|
||||
' definisco la lista degli stati
|
||||
For Each Item As EgtWPFLib5.IdNameStruct In EgtPHOTOLib.PhotoMap.refOptionPanelVM.StateList
|
||||
m_StateList.Add(Item)
|
||||
Next
|
||||
|
||||
' imposto i dati lastra
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Thickness = m_MainWindow.m_CurrentProjectPageUC.m_dRawHeight
|
||||
' carico la lista degli stati letta dalla libreria
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelState = EgtPHOTOLib.PhotoMap.refOptionPanelVM.StateList(0)
|
||||
' ricorco il materiale corrente nell'elenco dei materiali presenti nel DB (se non presente nell'elenco?)
|
||||
For Each MaterialItem As String In EgtPHOTOLib.PhotoMap.refOptionPanelVM.MaterialList
|
||||
If MaterialItem.ToLower = m_MainWindow.m_CurrentMachine.CurrMat.sName.ToLower Then
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Material = MaterialItem
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
' salvo in locale i punti che arrivano dal progetto
|
||||
m_ContornScrap = ContornScrap
|
||||
' avvio la finestra di modifica
|
||||
Dim m_refImagePrevieV As New EgtPHOTOLib.ImagePreviewV()
|
||||
' modifico l'immagine e salvo
|
||||
m_refImagePrevieV.SetContourScraps(m_ContornScrap)
|
||||
m_refImagePrevieV.Show()
|
||||
m_refImagePrevieV.SaveImage()
|
||||
m_refImagePrevieV.Close()
|
||||
m_bSlabIsSelected = True
|
||||
|
||||
' posiziono la finestra
|
||||
Me.Top = 15
|
||||
Me.Left = 15
|
||||
End Sub
|
||||
|
||||
' posizionamento degli UserControl all'interno della griglia
|
||||
Private Sub OmagPhotoWD_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
||||
' definisco nella pagina la posizione dello UserControl e inizializzo le liste
|
||||
m_AddToDataBaseUC = New AddToDataBaseUC(Me)
|
||||
m_AddToDataBaseUC.SetValue(Grid.ColumnProperty, 0)
|
||||
m_AddToDataBaseUC.SetValue(Grid.RowProperty, 1)
|
||||
m_AddToDataBaseUC.SetValue(Grid.RowSpanProperty, 2)
|
||||
Me.OptionSLabGrid.Children.Add(m_AddToDataBaseUC)
|
||||
m_AddToDataBaseUC.StateCmBx.ItemsSource = m_StateList
|
||||
' recupero la scena dalla libreria e la carico nel finestra
|
||||
Dim MyScene As New EgtPHOTOLib.SceneHostSlabV(EgtPHOTOLib.PhotoMap.refSceneHostVM)
|
||||
MyScene.SetValue(Grid.ColumnProperty, 1)
|
||||
MyScene.SetValue(Grid.ColumnSpanProperty, 2)
|
||||
MyScene.SetValue(Grid.RowProperty, 1)
|
||||
Me.OptionSLabGrid.Children.Add(MyScene)
|
||||
End Sub
|
||||
|
||||
' carcio i dati della lastra
|
||||
Private Sub PostLoaded() Handles Me.Loaded
|
||||
If Not m_bSlabIsSelected Then
|
||||
Return
|
||||
End If
|
||||
' carico i campi con i dati letti da database
|
||||
If m_nState = 2 Then
|
||||
' provo ad eseguire la separazione dei campi
|
||||
m_sDtBsId = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Id
|
||||
m_AddToDataBaseUC.BlockTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNameBlock
|
||||
m_AddToDataBaseUC.NbrIdTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNbrID
|
||||
m_AddToDataBaseUC.StateCmBx.SelectedIndex = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.State
|
||||
m_AddToDataBaseUC.MatTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Material
|
||||
m_AddToDataBaseUC.ThicknessTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Thickness
|
||||
m_AddToDataBaseUC.ProjectTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.ProjectAssignedTo
|
||||
' aggiorno il testo del messaggio "Add" → "Save"
|
||||
m_AddToDataBaseUC.AddBtn.Content = "Save"
|
||||
Return
|
||||
End If
|
||||
' inizializzo i campi
|
||||
'm_AddToDataBaseUC.IdTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.Id
|
||||
m_AddToDataBaseUC.BlockTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNameBlock
|
||||
m_AddToDataBaseUC.NbrIdTxBx.Text = EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.sNbrID
|
||||
m_AddToDataBaseUC.StateCmBx.SelectedIndex = 0
|
||||
m_AddToDataBaseUC.MatTxBx.Text = m_MainWindow.m_CurrentMachine.CurrMat.sName
|
||||
m_AddToDataBaseUC.ThicknessTxBx.Text = LenToString(m_MainWindow.m_CurrentProjectPageUC.m_dRawHeight, 4)
|
||||
m_AddToDataBaseUC.ProjectTxBx.Text = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProjectName()
|
||||
' rendo in primo piano la finestra
|
||||
Me.Activate()
|
||||
End Sub
|
||||
|
||||
Private Sub ExitBtn_Click() Handles ExitBtn.Click
|
||||
' se esista una lastra corrente, notifico che deve essere deselezionata
|
||||
If Not IsNothing(EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab) Then
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.SelSlab.IsSelected = 0
|
||||
EgtPHOTOLib.PhotoMap.refOptionPanelVM.IsSelected()
|
||||
End If
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -492,6 +492,20 @@ Public Class ProjectMgrUC
|
||||
End If
|
||||
'------------------- FINE Avvio il Ciclo-Start-------------------------
|
||||
|
||||
' ------------------ INIZIO gestione SCRAPS ---------------------------
|
||||
Dim NewScrapsList As New List(Of Scrap)
|
||||
' procedo all'aggiornamento della lista degli sfridi
|
||||
UpDateScrapList(NewScrapsList)
|
||||
|
||||
' se esiste almeno uno sfrido da inserire come nuovo grezzo
|
||||
If NewScrapsList.Count > 0 Then
|
||||
' apro la finestra con l'elenco degli sfridi
|
||||
Dim MyScrapsWD As New ScrapsWD(m_MainWindow, Me, NewScrapsList)
|
||||
MyScrapsWD.ShowDialog()
|
||||
|
||||
End If
|
||||
' ------------------ FINE gestione SCRAPS -----------------------------
|
||||
|
||||
' Altrimenti linea di produzione
|
||||
Else
|
||||
' Verifico non sia già stato trasmesso
|
||||
@@ -663,6 +677,32 @@ Public Class ProjectMgrUC
|
||||
#End If
|
||||
End Sub
|
||||
|
||||
' aggiorno la lista dei grezzi/sfridi
|
||||
Public Sub UpDateScrapList(ByRef NewScrapsList As List(Of Scrap))
|
||||
If IsNothing(NewScrapsList) Then
|
||||
NewScrapsList = New List(Of Scrap)
|
||||
Else
|
||||
NewScrapsList.Clear()
|
||||
End If
|
||||
' procedo all'aggiornamento della lista degli sfridi
|
||||
Dim CurrRawId As Integer = EgtGetFirstRawPart()
|
||||
Dim IsNewScraps As Integer = 0
|
||||
Dim nCountScrap As Integer = 1
|
||||
While CurrRawId <> GDB_ID.NULL
|
||||
If EgtGetInfo(CurrRawId, K_ISNEWSCRAPS, IsNewScraps) Then
|
||||
If IsNewScraps = 1 Or IsNewScraps = 2 Then
|
||||
' deve essere aggiunto nel DB delle lastre come nuovo grezzo (l'indice è utilizzato per definire il nome della lastra)
|
||||
NewScrapsList.Add(New Scrap(CurrRawId, "Scrap_" & nCountScrap.ToString, IsNewScraps))
|
||||
nCountScrap += 1
|
||||
' è già stato aggiunto al DB delle lastre come nuovo grezzo
|
||||
Else
|
||||
' non è stato definito come nuovo grezzo
|
||||
End If
|
||||
End If
|
||||
CurrRawId = EgtGetNextRawPart(CurrRawId)
|
||||
End While
|
||||
End Sub
|
||||
|
||||
' ------------------------------------------------ GENERA COMANDI CNC MOVIMENTO ------------------------------------------------
|
||||
Private Sub ExecuteCommandCNC(ptMid As Point3d, dAngC As Double, dAngB As Double)
|
||||
|
||||
@@ -936,3 +976,60 @@ Public Class ProjectMgrUC
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class Scrap
|
||||
|
||||
Private m_iPictureID As Integer
|
||||
Private m_sName As String
|
||||
Private m_IdRaw As Integer
|
||||
Private m_nState As Integer
|
||||
|
||||
Public Property PictureID() As Integer
|
||||
Get
|
||||
Return m_iPictureID
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_iPictureID = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property Name() As String
|
||||
Get
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sName = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property IdRaw() As Integer
|
||||
Get
|
||||
Return m_IdRaw
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property nState As Integer
|
||||
Get
|
||||
Return m_nState
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property PictureString() As String
|
||||
Get
|
||||
Return "/Resources/ImportPageListBoxImages/" + PictureID.ToString() + ".png"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Sub New(IdScrap As Integer, NameScrap As String, State As Integer)
|
||||
m_IdRaw = IdScrap
|
||||
m_sName = NameScrap
|
||||
m_nState = State
|
||||
' immagine del grezzo
|
||||
If m_nState = 2 Then
|
||||
m_iPictureID = 5
|
||||
Else
|
||||
m_iPictureID = 4
|
||||
End If
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<Window x:Class="ScrapsWD"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib="clr-namespace:EgtWPFLib;assembly=EgtWPFLib"
|
||||
FontFamily="{DynamicResource OmagCut_Font}"
|
||||
Title="Scraps" Height="482.6" Width="226.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="4*"/>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="3*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label Name="TitleTxBl" Grid.Column="1" Grid.Row="1" Foreground="White" FontSize="20" VerticalAlignment="Center"/>
|
||||
<ListBox Name="ScrapsListBox" Grid.Column="1" Grid.Row="2" ItemTemplate="{DynamicResource DataTemplateItem}"
|
||||
ItemsSource="{Binding ItemList, NotifyOnSourceUpdated=True}"/>
|
||||
|
||||
<Grid Grid.Column="1" Grid.Row="4">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="0.1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="0.1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="0.1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Name="OkBtn" Grid.Column="1" Style="{DynamicResource OmagCut_GradientBlueIconButton}" >
|
||||
<Image Source="{DynamicResource VImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
<Button Name="ExitBtn" Grid.Column="3" Style="{DynamicResource OmagCut_GradientBlueIconButton}" IsCancel="True">
|
||||
<Image Source="{DynamicResource XImg}" Style="{StaticResource OmagCut_ButtonIcon}"/>
|
||||
</Button>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Border>
|
||||
|
||||
</Window>
|
||||
@@ -0,0 +1,186 @@
|
||||
Imports EgtUILib
|
||||
Imports EgtPHOTOLib
|
||||
Imports System.IO
|
||||
|
||||
Public Class ScrapsWD
|
||||
' Riferimento alla MainWindow
|
||||
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
||||
Private m_refProjectMgrUC As ProjectMgrUC
|
||||
|
||||
Private m_ScrapList As New List(Of Scrap)
|
||||
Private m_CurrScrapId As Integer = GDB_ID.NULL
|
||||
Private m_CurrScrapState As Integer = 2
|
||||
Private m_sDatabaseId As String = ""
|
||||
|
||||
Private Sub Initalized()
|
||||
' resetto eventuali errori mostrati nella pagina
|
||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||
|
||||
' inserisco il titolo della pagina aperta
|
||||
TitleTxBl.Content = "Scraps List"
|
||||
ScrapsListBox.ItemsSource = m_ScrapList
|
||||
' definzione posizione finetra
|
||||
Me.Left = 25
|
||||
Me.Top = 25
|
||||
End Sub
|
||||
|
||||
Public Sub New(Owner As Window, LocalProjectMgrUC As ProjectMgrUC, MyScrapList As List(Of Scrap))
|
||||
Me.Owner = Owner
|
||||
InitializeComponent()
|
||||
m_ScrapList = MyScrapList
|
||||
m_refProjectMgrUC = LocalProjectMgrUC
|
||||
Initalized()
|
||||
End Sub
|
||||
|
||||
|
||||
' visualizzo la fase del pezzo selezionato
|
||||
Private Sub ScrapListBox_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles ScrapsListBox.PreviewMouseUp
|
||||
Dim vItems As Scrap = ScrapsListBox.SelectedItems(0)
|
||||
' elimino l'utimo selzione
|
||||
EgtResetMark(m_CurrScrapId)
|
||||
EgtDeselectObj(m_CurrScrapId)
|
||||
' ricerco il grezzo associato a questo Id
|
||||
Dim nRawId As Integer = EgtGetFirstRawPart()
|
||||
While nRawId <> GDB_ID.NULL
|
||||
If nRawId = vItems.IdRaw Then
|
||||
m_CurrScrapId = nRawId
|
||||
m_CurrScrapState = vItems.nState
|
||||
If m_CurrScrapState = 2 Then
|
||||
EgtGetInfo(nRawId, K_DATABASEID, m_sDatabaseId)
|
||||
Else
|
||||
m_sDatabaseId = String.Empty
|
||||
End If
|
||||
Dim nCurrRawPhase As Integer = 0
|
||||
' recupero la fase del grezzo corrente
|
||||
EgtGetInfo(nRawId, "Ph", nCurrRawPhase)
|
||||
If nCurrRawPhase <> 0 Then
|
||||
' evidenzio lo sfrido selezionato all'interno della fase
|
||||
EgtSetCurrPhase(nCurrRawPhase)
|
||||
EgtSetMark(m_CurrScrapId)
|
||||
EgtSelectObj(m_CurrScrapId)
|
||||
EgtDraw()
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
nRawId = EgtGetNextRawPart(nRawId)
|
||||
End While
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub OkBtn_Click() Handles OkBtn.Click
|
||||
If m_CurrScrapId = GDB_ID.NULL Then Return
|
||||
' creo una copia dell'immagine attuale (fotocamera 1)
|
||||
Dim sImage As String = String.Empty
|
||||
Dim sInfo As String = String.Empty
|
||||
GetPrivateProfileString(S_CAMERA, K_CAM_IMAGE, "", sImage, m_MainWindow.GetIniFile())
|
||||
GetPrivateProfileString(S_CAMERA, K_CAM_INFO, "", sInfo, m_MainWindow.GetIniFile())
|
||||
' recupero dalla libreria il percoso del database
|
||||
Dim sPhotoDir As String = String.Empty
|
||||
EgtPHOTOLib.GetPhotoDir(sPhotoDir)
|
||||
' recupero l'ora corrente
|
||||
Dim sDate As String = Date.Now.ToString
|
||||
sDate = sDate.Replace("/", "_")
|
||||
sDate = sDate.Replace(" ", "_")
|
||||
sDate = sDate.Replace(":", "_")
|
||||
Dim sNewPath As String = sPhotoDir & "\Scrap_" & sDate
|
||||
Try
|
||||
File.Copy(sImage, sNewPath & ".jpg", False)
|
||||
File.Copy(sInfo, sNewPath & ".txt", False)
|
||||
Catch ex As Exception
|
||||
EgtOutLog(ex.Message.ToString)
|
||||
End Try
|
||||
|
||||
' se non esiste la classe StatusBar allora provo ad inizializzarla...
|
||||
If IsNothing(EgtWPFLib5.LibMap.refStatusBarVM) Then
|
||||
Dim objStatusBarVM As New EgtWPFLib5.StatusBarVM
|
||||
End If
|
||||
' salvo il contesto corrente del programma
|
||||
Dim nCurrentContetxt As Integer = EgtGetCurrentContext()
|
||||
' costruisco l'elenco ordinato dei punti che reppresentano il contorno del grezzo da salvare
|
||||
Dim ContornScrapList As New List(Of Point3d)
|
||||
|
||||
Dim RefId As New Frame3d
|
||||
Dim nRawSolidId As Integer = EgtGetFirstNameInGroup(m_CurrScrapId, "RawSolid")
|
||||
EgtGetTextureFrame(nRawSolidId, nRawSolidId, RefId)
|
||||
Dim nCurveCompoId As Integer = EgtGetFirstNameInGroup(m_CurrScrapId, "RawOutline")
|
||||
Dim dStart As Double = 0
|
||||
Dim dEnd As Double = 0
|
||||
EgtCurveDomain(nCurveCompoId, dStart, dEnd)
|
||||
Dim ptCurrPoint As Point3d
|
||||
For dU As Integer = dStart To dEnd - 1
|
||||
EgtAtParamPoint(nCurveCompoId, dU, m_CurrScrapId, ptCurrPoint)
|
||||
ptCurrPoint.z = 0
|
||||
ptCurrPoint.ToLoc(RefId)
|
||||
ContornScrapList.Add(ptCurrPoint)
|
||||
Next
|
||||
|
||||
MainData.SetPreviousContext(nCurrentContetxt)
|
||||
|
||||
'If Not IsNothing(MainData.ContextSTONELib) Or MainData.ContextSTONELib <> 0 Then
|
||||
'If MainData.ContextSTONELib <> 0 Then
|
||||
' EgtSetCurrentContext(MainData.ContextSTONELib)
|
||||
'End If
|
||||
|
||||
' inizializzo PojectSlabV pechè si occupa di inizializzare le pagine Detail e Option
|
||||
Dim MyProjectSlab As New EgtPHOTOLib.ProjectSlabV
|
||||
' ACCELERARE il processo di creazione di questo oggetto!
|
||||
MyProjectSlab.DataContext = New EgtPHOTOLib.ProjectSlabVM
|
||||
' per ogni creazione della nuova pagina viene creata una nuova scena, ma non viene eliminata
|
||||
Dim refProjectVMSceneContext As Integer = EgtGetCurrentContext()
|
||||
|
||||
' apro la finestra OmagPHOTO (passo il nome del file come copia dell'originale)
|
||||
If ContornScrapList.Count > 2 Then
|
||||
Dim MyOmagPhotoWD As New OmagPhotoWD(sNewPath & ".jpg", ContornScrapList, m_MainWindow, m_CurrScrapState, m_sDatabaseId)
|
||||
OmagPhotoWD.m_IsAdded = False
|
||||
OmagPhotoWD.m_sDtBsId = String.Empty
|
||||
OmagPhotoWD.m_IsDeleted = False
|
||||
MyOmagPhotoWD.ShowDialog()
|
||||
Else
|
||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||
m_MainWindow.m_CurrentProjectPageUC.SetErrorMessage("Error loading contour scrap")
|
||||
End If
|
||||
|
||||
' ripristino il contesto corrente dell'immagine
|
||||
EgtSetCurrentContext(EgtPHOTOLib.MainData.PreviousContext)
|
||||
' se l'inserimento è andatoa buon fine allora procedo a notificarlo
|
||||
If OmagPhotoWD.m_IsAdded AndAlso Not String.IsNullOrEmpty(OmagPhotoWD.m_sDtBsId) Then
|
||||
EgtSetInfo(m_CurrScrapId, K_ISNEWSCRAPS, 2)
|
||||
EgtSetInfo(m_CurrScrapId, K_DATABASEID, OmagPhotoWD.m_sDtBsId)
|
||||
Else
|
||||
' se è stato eliminato dal DB allora aggiorno la lista dei grezzi
|
||||
If OmagPhotoWD.m_IsDeleted Then
|
||||
EgtSetInfo(m_CurrScrapId, K_ISNEWSCRAPS, 1)
|
||||
EgtRemoveInfo(m_CurrScrapId, K_DATABASEID)
|
||||
End If
|
||||
Try
|
||||
File.Delete(sNewPath & ".jpg")
|
||||
File.Delete(sNewPath & ".txt")
|
||||
Catch ex As Exception
|
||||
EgtOutLog(ex.Message.ToString)
|
||||
End Try
|
||||
End If
|
||||
|
||||
'----------------INIZIO ELIMINAZIONE contesti generati da OmagPHOTOLib per la visualizzazione delle Texture
|
||||
EgtDeleteContext(EgtPHOTOLib.MainData.ContextSTONELib)
|
||||
EgtDeleteContext(refProjectVMSceneContext)
|
||||
'---------------- FINE ELIMINAZIONE contesti
|
||||
|
||||
' aggiorno la lista degli scrap
|
||||
m_refProjectMgrUC.UpDateScrapList(m_ScrapList)
|
||||
ScrapsListBox.ItemsSource = m_ScrapList
|
||||
ScrapsListBox.Items.Refresh()
|
||||
End Sub
|
||||
|
||||
Private Sub ExitBtn_Click() Handles ExitBtn.Click
|
||||
' resetto eventuali errori mostrati nella pagina
|
||||
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
||||
' deseleziono l'oggetto corrente
|
||||
EgtResetMark(m_CurrScrapId)
|
||||
EgtDeselectObj(m_CurrScrapId)
|
||||
' reimposto la fase iniziale
|
||||
EgtSetCurrPhase(1)
|
||||
EgtDraw()
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
+390
-12
@@ -45,9 +45,9 @@ Public Class RawPartPageUC
|
||||
' Layer per crocette temporanee
|
||||
Private m_nTempLay As Integer = GDB_ID.NULL
|
||||
' Definizione lista modalità di definizione grezzo per ComboBox
|
||||
Private m_RawModeList(2) As String
|
||||
Private m_RawModeDamagedList(1) As String
|
||||
Private m_RawModeListEx(3) As String
|
||||
Private m_RawModeList(3) As String
|
||||
Private m_RawModeDamagedList(2) As String
|
||||
Private m_RawModeListEx(4) As String
|
||||
' Variabile che indica la zona danneggiata selezionata
|
||||
Private m_nSelDmg As Integer
|
||||
' Array per modalità per punti
|
||||
@@ -63,6 +63,8 @@ Public Class RawPartPageUC
|
||||
Private m_CurveXDamagedAreaList As New List(Of Integer)
|
||||
' Flag che indica se è in corso la definizione tramite laser o se il grezzo è già chiuso
|
||||
Private m_bIsRawDefiningByLaser As Boolean = False
|
||||
' Flag che indica se è in corso la definizione tramite lama o se il grezzo è già chiuso
|
||||
Private m_bIsRawDefiningBySaw As Boolean = False
|
||||
' Flag di tastatura in corso
|
||||
Private m_bProbingOn As Boolean = False
|
||||
' Flag inserimento punti laser da disegno
|
||||
@@ -99,6 +101,8 @@ Public Class RawPartPageUC
|
||||
FROM_PHOTO = 3
|
||||
DAMAGED = 4
|
||||
DAMAGED_BY_LASER = 5
|
||||
DAMAGED_BY_SAW = 6
|
||||
FROM_SAW = 7
|
||||
End Enum
|
||||
|
||||
Private Sub RawPartPage_Initialized(sender As Object, e As EventArgs)
|
||||
@@ -123,14 +127,32 @@ Public Class RawPartPageUC
|
||||
m_RawModeList(0) = EgtMsg(MSG_RAWPARTPAGEUC + 1) 'Rettangolo
|
||||
m_RawModeList(1) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
|
||||
m_RawModeList(2) = EgtMsg(MSG_RAWPARTPAGEUC + 30) 'Da Laser
|
||||
If m_MainWindow.m_CurrentMachine.bSaw Then
|
||||
m_RawModeList(3) = EgtMsg(MSG_DIRECTCUTPAGEUC + 24) 'Da Lama
|
||||
Else
|
||||
' se non insrisco "Lama" allora ridimensiono il vettore
|
||||
ReDim Preserve m_RawModeList(2)
|
||||
End If
|
||||
m_RawModeListEx(0) = EgtMsg(MSG_RAWPARTPAGEUC + 1) 'Rettangolo
|
||||
m_RawModeListEx(1) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
|
||||
m_RawModeListEx(2) = EgtMsg(MSG_RAWPARTPAGEUC + 30) 'Da Laser
|
||||
m_RawModeListEx(3) = EgtMsg(MSG_RAWPARTPAGEUC + 35) 'Da Fotografia
|
||||
If m_MainWindow.m_CurrentMachine.bSaw Then
|
||||
m_RawModeListEx(3) = EgtMsg(MSG_DIRECTCUTPAGEUC + 24) 'Da Lama
|
||||
m_RawModeListEx(4) = EgtMsg(MSG_RAWPARTPAGEUC + 35) 'Da Fotografia
|
||||
Else
|
||||
' se non insrisco "Lama" allora ridimensiono il vettore
|
||||
m_RawModeListEx(3) = EgtMsg(MSG_RAWPARTPAGEUC + 35) 'Da Fotografia
|
||||
ReDim Preserve m_RawModeListEx(3)
|
||||
End If
|
||||
RawModeCmBx.ItemsSource = m_RawModeList
|
||||
' lista per selezione RawModeDamaged
|
||||
m_RawModeDamagedList(0) = EgtMsg(MSG_RAWPARTPAGEUC + 2) 'Per Punti
|
||||
m_RawModeDamagedList(1) = EgtMsg(MSG_RAWPARTPAGEUC + 30) 'Da Laser
|
||||
If m_MainWindow.m_CurrentMachine.bSaw Then
|
||||
m_RawModeDamagedList(2) = EgtMsg(MSG_DIRECTCUTPAGEUC + 24) 'Da Lama
|
||||
Else
|
||||
ReDim Preserve m_RawModeDamagedList(1)
|
||||
End If
|
||||
RawModeDamagedCmBx.ItemsSource = m_RawModeDamagedList
|
||||
|
||||
' Nascondo bottone tastatura lastra se disattivato da file .ini
|
||||
@@ -309,9 +331,10 @@ Public Class RawPartPageUC
|
||||
' Verifico cosa selezionato
|
||||
Dim nSolidId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID)
|
||||
Dim nKerfId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_KERF)
|
||||
|
||||
'----------------------------------------- INIZIO ------------------ se decido di inserire i punti laser manualmente --------------------------------------------------
|
||||
' se decido di inserire i punti laser manualmente
|
||||
If m_bFromDraw And m_ActiveRawMode = RAWMODE.FROM_LASER Or m_ActiveRawMode = RAWMODE.DAMAGED_BY_LASER Then
|
||||
' se decido di inserire i punti laser manualmente (in assenza di collegamento con CN)
|
||||
If m_bFromDraw AndAlso (m_ActiveRawMode = RAWMODE.FROM_LASER Or m_ActiveRawMode = RAWMODE.DAMAGED_BY_LASER Or m_ActiveRawMode = RAWMODE.FROM_SAW Or m_ActiveRawMode = RAWMODE.DAMAGED_BY_SAW) Then
|
||||
' Rimuovo eventuali crocette create acquisendo i punti nel disegno
|
||||
EgtEmptyGroup(m_nTempLay)
|
||||
' Acquisisco punto da disegno
|
||||
@@ -336,6 +359,7 @@ Public Class RawPartPageUC
|
||||
Return
|
||||
End If
|
||||
'----------------------------------------- FINE ------------------ se decido di inserire i punti laser manualmente --------------------------------------------------
|
||||
' recupero elemento selezionato nella scena
|
||||
EgtSetObjFilterForSelWin(True, True, True, True, True)
|
||||
Dim nSel As Integer
|
||||
EgtSelect(e.Location, 2 * Scene.DIM_SEL, 2 * Scene.DIM_SEL, nSel)
|
||||
@@ -349,8 +373,7 @@ Public Class RawPartPageUC
|
||||
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev)
|
||||
m_nDragEnt = -1
|
||||
m_dDragPar = -1
|
||||
ElseIf sName = NAME_KERF And
|
||||
(m_ActiveRawMode = RAWMODE.RECTANGLE Or m_ActiveRawMode = RAWMODE.BY_POINTS) Then
|
||||
ElseIf sName = NAME_KERF And (m_ActiveRawMode = RAWMODE.RECTANGLE Or m_ActiveRawMode = RAWMODE.BY_POINTS) Then
|
||||
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev)
|
||||
Dim dDist, dU As Double
|
||||
If Not EgtPointCurveDist(m_ptPrev.Loc(nKerfId), nKerfId, nKerfId, dDist, dU) Then
|
||||
@@ -360,7 +383,7 @@ Public Class RawPartPageUC
|
||||
m_dDragPar = dU
|
||||
' Privilegio il kerf, pertanto esco
|
||||
Exit While
|
||||
ElseIf sName = NAME_DAMAGED And (m_ActiveRawMode = RAWMODE.DAMAGED Or m_ActiveRawMode = RAWMODE.DAMAGED_BY_LASER) Then
|
||||
ElseIf sName = NAME_DAMAGED And (m_ActiveRawMode = RAWMODE.DAMAGED Or m_ActiveRawMode = RAWMODE.BY_POINTS) Then
|
||||
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev)
|
||||
Dim dDist, dU As Double
|
||||
If Not EgtPointCurveDist(m_ptPrev.Loc(nSelId), nSelId, nSelId, dDist, dU) Then
|
||||
@@ -377,6 +400,7 @@ Public Class RawPartPageUC
|
||||
End If
|
||||
nSelId = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
|
||||
' se drag e modalità punti
|
||||
If m_bDrag And m_ActiveRawMode = RAWMODE.BY_POINTS Then
|
||||
' se aggiungi punto
|
||||
@@ -413,7 +437,7 @@ Public Class RawPartPageUC
|
||||
End If
|
||||
End If
|
||||
' se drag e modalità zona danneggiata
|
||||
ElseIf m_bDrag And (m_ActiveRawMode = RAWMODE.DAMAGED Or m_ActiveRawMode = RAWMODE.DAMAGED_BY_LASER) Then
|
||||
ElseIf m_bDrag And (m_ActiveRawMode = RAWMODE.DAMAGED Or m_ActiveRawMode = RAWMODE.DAMAGED_BY_LASER Or m_ActiveRawMode = RAWMODE.DAMAGED_BY_SAW) Then
|
||||
' se aggiungi zona rovinata
|
||||
If m_nPtDmgMode = DMGMODE.ADD Then
|
||||
AddNewDamagedArea()
|
||||
@@ -665,6 +689,8 @@ Public Class RawPartPageUC
|
||||
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
||||
' Non è possibile uscire con tastatura in corso
|
||||
If m_bProbingOn Then Return
|
||||
' reimposto il comando OutLine
|
||||
OutlineBtn_Click(Nothing, Nothing)
|
||||
' Se confermata uscita
|
||||
If ExitRawPart(True) Then
|
||||
m_MainWindow.m_CurrentProjectPageUC.CurrentProjectPageGrid.Children.Remove(Me)
|
||||
@@ -696,6 +722,16 @@ Public Class RawPartPageUC
|
||||
CloseDamagedAreaByLaser()
|
||||
End If
|
||||
End If
|
||||
If m_ActiveRawMode = RAWMODE.FROM_SAW Then
|
||||
If m_bIsRawDefiningBySaw Then
|
||||
CloseRawBySaw()
|
||||
End If
|
||||
End If
|
||||
If m_ActiveRawMode = RAWMODE.DAMAGED_BY_SAW Then
|
||||
If m_bIsRawDefiningBySaw Then
|
||||
CloseDamagedAreaBySaw()
|
||||
End If
|
||||
End If
|
||||
' Apro pagina di selezione della lavorazione prima di chiudere il grezzo
|
||||
m_ChooseMachiningPage = New ChooseMachining(m_MainWindow)
|
||||
'--------------------------- SELEZIONE LAVORAZIONI ---------------------------------
|
||||
@@ -779,6 +815,8 @@ Public Class RawPartPageUC
|
||||
Case 0 ' Rettangolo
|
||||
' Se ero in modalità da laser
|
||||
VerifyLaserDefining()
|
||||
' Se ero in modalità da Lama
|
||||
VerifySawDefinig()
|
||||
' Verificos e sto realmente cambiando modalità
|
||||
Dim bChanging As Boolean = (m_ActiveRawMode <> RAWMODE.RECTANGLE)
|
||||
' Imposto nuova modalità
|
||||
@@ -790,6 +828,8 @@ Public Class RawPartPageUC
|
||||
Case 1 ' Punti
|
||||
' Se ero in modalità da laser
|
||||
VerifyLaserDefining()
|
||||
' Se ero in modalità da Lama
|
||||
VerifySawDefinig()
|
||||
' Imposto nuova modalità
|
||||
m_ActiveRawMode = RAWMODE.BY_POINTS
|
||||
' Riattivo i controlli in base a quale modalità di inserimento contorni è attiva
|
||||
@@ -797,6 +837,8 @@ Public Class RawPartPageUC
|
||||
UpdateCircles()
|
||||
EgtDraw()
|
||||
Case 2 ' Da laser
|
||||
' Se ero in modalità da Lama
|
||||
VerifySawDefinig()
|
||||
' Imposto nuova modalità
|
||||
m_ActiveRawMode = RAWMODE.FROM_LASER
|
||||
RemoveCircles()
|
||||
@@ -811,10 +853,44 @@ Public Class RawPartPageUC
|
||||
' Disattivo il bottone
|
||||
CloseBtn.IsEnabled = False
|
||||
OkBtn.IsEnabled = False
|
||||
Case 3 ' Da fotografia
|
||||
Case 3 ' Da Lama
|
||||
If Not m_MainWindow.m_CurrentMachine.bSaw Then ' Da fotografia
|
||||
' Se ero in modalità da laser
|
||||
VerifyLaserDefining()
|
||||
' Se ero in modalità da Lama
|
||||
VerifySawDefinig()
|
||||
' Imposto nuova modalità
|
||||
m_ActiveRawMode = RAWMODE.FROM_PHOTO
|
||||
' Riattivo i controlli in base a quale modalità di inserimento contorni è attiva
|
||||
RawModeView()
|
||||
RemoveCircles()
|
||||
' Creo il grezzo dal contorno riconosciuto nella fotografia
|
||||
CreateRawFromPhotoContour()
|
||||
EgtDraw()
|
||||
Exit Select
|
||||
End If
|
||||
' Se ero in modalità da laser
|
||||
VerifyLaserDefining()
|
||||
' Imposto nuova modalità
|
||||
m_ActiveRawMode = RAWMODE.FROM_SAW
|
||||
RemoveCircles()
|
||||
LoadFromMachine()
|
||||
' Azzero lista e punto di partenza
|
||||
m_CurveXKerfList.Clear()
|
||||
m_bptLast = False
|
||||
' Segno flag che indica definizione grezzo con laser in corso
|
||||
m_bIsRawDefiningBySaw = True
|
||||
' Riattivo i controlli in base a quale modalità di inserimento contorni è attiva
|
||||
RawModeView()
|
||||
' Disattivo il bottone
|
||||
CloseBtn.IsEnabled = False
|
||||
OkBtn.IsEnabled = False
|
||||
Case 4 ' Da fotografia
|
||||
' Se ero in modalità da laser
|
||||
VerifyLaserDefining()
|
||||
' Se ero in modalità da Lama
|
||||
VerifySawDefinig()
|
||||
' Imposto nuova modalità
|
||||
m_ActiveRawMode = RAWMODE.FROM_PHOTO
|
||||
' Riattivo i controlli in base a quale modalità di inserimento contorni è attiva
|
||||
RawModeView()
|
||||
@@ -822,6 +898,7 @@ Public Class RawPartPageUC
|
||||
' Creo il grezzo dal contorno riconosciuto nella fotografia
|
||||
CreateRawFromPhotoContour()
|
||||
EgtDraw()
|
||||
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
@@ -831,6 +908,8 @@ Public Class RawPartPageUC
|
||||
m_ActiveRawMode = RAWMODE.DAMAGED
|
||||
Case 1 ' Da laser
|
||||
m_ActiveRawMode = RAWMODE.DAMAGED_BY_LASER
|
||||
Case 2 ' Da Lama
|
||||
m_ActiveRawMode = RAWMODE.DAMAGED_BY_SAW
|
||||
End Select
|
||||
RawModeView()
|
||||
EgtDraw()
|
||||
@@ -927,11 +1006,43 @@ Public Class RawPartPageUC
|
||||
' Disattivo bottoni zone rovinate e foto
|
||||
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
||||
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
||||
Case RAWMODE.DAMAGED_BY_SAW
|
||||
RawModeCmBx.IsEnabled = True
|
||||
RawModeDamagedCmBx.Visibility = Visibility.Visible
|
||||
LengthTxBx.IsEnabled = False
|
||||
WidthTxBx.IsEnabled = False
|
||||
OffsetXTxBx.IsEnabled = False
|
||||
OffsetYTxBx.IsEnabled = False
|
||||
' Visualizzo bottoni per laser
|
||||
PointsGpBx.Visibility = Windows.Visibility.Visible
|
||||
PointsGpBx.SetValue(Grid.RowSpanProperty, 2)
|
||||
AddBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||
RemoveBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||
CloseBtn.Visibility = Windows.Visibility.Visible
|
||||
' Disattivo bottoni zone rovinate e foto
|
||||
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
||||
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
||||
Case RAWMODE.FROM_SAW
|
||||
RawModeCmBx.IsEnabled = True
|
||||
RawModeDamagedCmBx.Visibility = Visibility.Collapsed
|
||||
LengthTxBx.IsEnabled = False
|
||||
WidthTxBx.IsEnabled = False
|
||||
OffsetXTxBx.IsEnabled = False
|
||||
OffsetYTxBx.IsEnabled = False
|
||||
' Visualizzo bottoni per lama
|
||||
PointsGpBx.Visibility = Windows.Visibility.Visible
|
||||
PointsGpBx.SetValue(Grid.RowSpanProperty, 2)
|
||||
AddBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||
RemoveBtn.SetValue(Grid.RowSpanProperty, 1)
|
||||
CloseBtn.Visibility = Windows.Visibility.Visible
|
||||
' Disattivo bottoni zone rovinate e foto
|
||||
DamagedAreaGpBx.Visibility = Windows.Visibility.Hidden
|
||||
ConfirmPhotoBtn.Visibility = Windows.Visibility.Hidden
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub OutlineBtn_Click(sender As Object, e As RoutedEventArgs) Handles OutlineBtn.Click
|
||||
If m_ActiveRawMode = RAWMODE.DAMAGED Or m_ActiveRawMode = RAWMODE.DAMAGED_BY_LASER Then
|
||||
If m_ActiveRawMode = RAWMODE.DAMAGED Or m_ActiveRawMode = RAWMODE.DAMAGED_BY_LASER Or m_ActiveRawMode = RAWMODE.DAMAGED_BY_SAW Then
|
||||
' m_ActiveRawMode = RAWMODE.BY_POINTS
|
||||
m_ActiveRawMode = m_PrecActiveRawMode
|
||||
RawModeCmBx.SelectedIndex = m_ActiveRawMode
|
||||
@@ -946,6 +1057,9 @@ Public Class RawPartPageUC
|
||||
If m_PrecActiveRawMode = RAWMODE.FROM_LASER Then
|
||||
m_ActiveRawMode = RAWMODE.DAMAGED_BY_LASER
|
||||
RawModeDamagedCmBx.SelectedIndex = 1
|
||||
ElseIf m_PrecActiveRawMode = RAWMODE.FROM_SAW Then
|
||||
m_ActiveRawMode = RAWMODE.DAMAGED_BY_SAW
|
||||
RawModeDamagedCmBx.SelectedIndex = 2
|
||||
Else
|
||||
m_ActiveRawMode = RAWMODE.DAMAGED
|
||||
RawModeDamagedCmBx.SelectedIndex = 0
|
||||
@@ -1010,6 +1124,54 @@ Public Class RawPartPageUC
|
||||
End If
|
||||
AddBtn.IsChecked = False
|
||||
EgtDraw()
|
||||
Case RAWMODE.FROM_SAW
|
||||
Dim ptAcquired As Point3d
|
||||
' Se inserimento manuale dei punti laser
|
||||
If m_bFromDraw Then
|
||||
If Not IsNothing(m_ptPrev) Then
|
||||
ptAcquired = m_ptPrev
|
||||
ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
|
||||
Else
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
|
||||
Return
|
||||
End If
|
||||
' altrimenti da macchina
|
||||
Else
|
||||
If Not AcquireSawPoint(ptAcquired) Then
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
' Limito il punto a stare nella tavola con franco pari al kerf
|
||||
If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST
|
||||
If ptAcquired.y < m_RawKerf Then ptAcquired.y = m_RawKerf + SAFE_RAW_DIST
|
||||
If ptAcquired.x > m_dTableLength - m_RawKerf Then ptAcquired.x = m_dTableLength - m_RawKerf - SAFE_RAW_DIST
|
||||
If ptAcquired.y > m_dTableWidth - m_RawKerf Then ptAcquired.y = m_dTableWidth - m_RawKerf - SAFE_RAW_DIST
|
||||
' Aggiusto Z punto movimentato (è in locale al tavolo)
|
||||
ptAcquired.z = m_CurrentMachine.dAdditionalTable + m_RawHeight
|
||||
'Porto il punto nel riferimento del grezzo
|
||||
Dim frRaw As New Frame3d
|
||||
EgtGetGroupGlobFrame(m_CurrProjPage.m_nRawId, frRaw)
|
||||
ptAcquired.LocToLoc(New Frame3d(m_ptTableMin), frRaw)
|
||||
m_ptPrev.LocToLoc(New Frame3d(m_ptTableMin), frRaw)
|
||||
If m_bptLast Then
|
||||
If Point3d.SameApprox(ptAcquired, m_ptLast) Then
|
||||
AddBtn.IsChecked = False
|
||||
Exit Sub
|
||||
End If
|
||||
Dim NewLine As Integer = EgtCreateLine(m_CurrProjPage.m_nRawId, m_ptLast, ptAcquired)
|
||||
EgtSetColor(NewLine, m_KerfCol)
|
||||
m_CurveXKerfList.Add(NewLine)
|
||||
Else
|
||||
m_bptLast = True
|
||||
End If
|
||||
m_ptLast = ptAcquired
|
||||
If m_CurveXKerfList.Count > 1 Then
|
||||
OkBtn.IsEnabled = True
|
||||
CloseBtn.IsEnabled = True
|
||||
End If
|
||||
AddBtn.IsChecked = False
|
||||
EgtDraw()
|
||||
Case RAWMODE.DAMAGED
|
||||
' Verifico ci sia almeno una zona rovinata
|
||||
If EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_DAMAGED) = GDB_ID.NULL Then
|
||||
@@ -1068,6 +1230,54 @@ Public Class RawPartPageUC
|
||||
End If
|
||||
AddBtn.IsChecked = False
|
||||
EgtDraw()
|
||||
Case RAWMODE.DAMAGED_BY_SAW
|
||||
Dim ptAcquired As Point3d
|
||||
' Se inserimento manuale dei punti laser
|
||||
If m_bFromDraw Then
|
||||
If Not IsNothing(m_ptPrev) Then
|
||||
ptAcquired = m_ptPrev
|
||||
ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
|
||||
Else
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
|
||||
Return
|
||||
End If
|
||||
' altrimenti da macchina
|
||||
Else
|
||||
If Not AcquireSawPoint(ptAcquired) Then
|
||||
m_CurrProjPage.SetErrorMessage(EgtMsg(90532)) ' Errore nell'acquisizione del punto
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
' Limito il punto a stare nella tavola con franco pari al kerf
|
||||
If ptAcquired.x < m_RawKerf Then ptAcquired.x = m_RawKerf + SAFE_RAW_DIST
|
||||
If ptAcquired.y < m_RawKerf Then ptAcquired.y = m_RawKerf + SAFE_RAW_DIST
|
||||
If ptAcquired.x > m_dTableLength - m_RawKerf Then ptAcquired.x = m_dTableLength - m_RawKerf - SAFE_RAW_DIST
|
||||
If ptAcquired.y > m_dTableWidth - m_RawKerf Then ptAcquired.y = m_dTableWidth - m_RawKerf - SAFE_RAW_DIST
|
||||
' Aggiusto Z punto movimentato (è in locale al tavolo)
|
||||
ptAcquired.z = m_CurrentMachine.dAdditionalTable + m_RawHeight
|
||||
'Porto il punto nel riferimento del grezzo
|
||||
Dim frRaw As New Frame3d
|
||||
EgtGetGroupGlobFrame(m_CurrProjPage.m_nRawId, frRaw)
|
||||
ptAcquired.LocToLoc(New Frame3d(m_ptTableMin), frRaw)
|
||||
m_ptPrev.LocToLoc(New Frame3d(m_ptTableMin), frRaw)
|
||||
If m_bptLast Then
|
||||
If Point3d.SameApprox(ptAcquired, m_ptLast) Then
|
||||
AddBtn.IsChecked = False
|
||||
Exit Sub
|
||||
End If
|
||||
Dim NewLine As Integer = EgtCreateLine(m_CurrProjPage.m_nRawId, m_ptLast, ptAcquired)
|
||||
EgtSetColor(NewLine, m_KerfCol)
|
||||
m_CurveXDamagedAreaList.Add(NewLine)
|
||||
Else
|
||||
m_bptLast = True
|
||||
End If
|
||||
m_ptLast = ptAcquired
|
||||
If m_CurveXDamagedAreaList.Count > 1 Then
|
||||
OkBtn.IsEnabled = True
|
||||
CloseBtn.IsEnabled = True
|
||||
End If
|
||||
AddBtn.IsChecked = False
|
||||
EgtDraw()
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
@@ -1099,6 +1309,28 @@ Public Class RawPartPageUC
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function AcquireSawPoint(ByRef ptAcquired As Point3d) As Boolean
|
||||
Dim ptTipP1 As Point3d
|
||||
' Recupero la posizione macchina
|
||||
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
||||
If Not m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2) Then
|
||||
Return False
|
||||
End If
|
||||
' Recupero dati utensile e testa corrente
|
||||
Dim sTool As String = ""
|
||||
Dim sHead As String = ""
|
||||
Dim nExit As Integer = 0
|
||||
EgtGetCalcTool(sTool, sHead, nExit)
|
||||
' Trasformo in posizione punta utensile in basso
|
||||
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, dR1, dR2, True, ptTipP1) Then
|
||||
Return False
|
||||
End If
|
||||
' Porto il tip nell'origine tavola
|
||||
ptAcquired = ptTipP1
|
||||
ptAcquired.ToLoc(New Frame3d(m_ptTableMin))
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub RemoveBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemoveBtn.Click
|
||||
Select Case m_ActiveRawMode
|
||||
Case RAWMODE.RECTANGLE
|
||||
@@ -1126,6 +1358,26 @@ Public Class RawPartPageUC
|
||||
End If
|
||||
RemoveBtn.IsChecked = False
|
||||
EgtDraw()
|
||||
Case RAWMODE.FROM_SAW
|
||||
If m_CurveXKerfList.Count > 0 Then
|
||||
If m_CurveXKerfList.Count = 1 Then
|
||||
' Aggiorno ptLast con primo punto
|
||||
EgtStartPoint(m_CurveXKerfList(m_CurveXKerfList.Count - 1), m_ptLast)
|
||||
' Cancello ultima linea
|
||||
EgtErase(m_CurveXKerfList(m_CurveXKerfList.Count - 1))
|
||||
m_CurveXKerfList.RemoveAt(m_CurveXKerfList.Count - 1)
|
||||
Else
|
||||
' Cancello ultima linea
|
||||
EgtErase(m_CurveXKerfList(m_CurveXKerfList.Count - 1))
|
||||
m_CurveXKerfList.RemoveAt(m_CurveXKerfList.Count - 1)
|
||||
' Aggiorno ptLast
|
||||
EgtEndPoint(m_CurveXKerfList(m_CurveXKerfList.Count - 1), m_ptLast)
|
||||
End If
|
||||
Else
|
||||
m_bptLast = False
|
||||
End If
|
||||
RemoveBtn.IsChecked = False
|
||||
EgtDraw()
|
||||
Case RAWMODE.DAMAGED
|
||||
' Verifico ci sia almeno una zona rovinata
|
||||
If EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_DAMAGED) = GDB_ID.NULL Then
|
||||
@@ -1136,6 +1388,46 @@ Public Class RawPartPageUC
|
||||
DeleteBtn.IsChecked = False
|
||||
m_nPtMode = If(RemoveBtn.IsChecked(), PTMODE.REMOVE, PTMODE.MOVE)
|
||||
m_nPtDmgMode = DMGMODE.NONE
|
||||
Case RAWMODE.DAMAGED_BY_LASER
|
||||
If m_CurveXDamagedAreaList.Count > 0 Then
|
||||
If m_CurveXDamagedAreaList.Count = 1 Then
|
||||
' Aggiorno ptLast con primo punto
|
||||
EgtStartPoint(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1), m_ptLast)
|
||||
' Cancello ultima linea
|
||||
EgtErase(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1))
|
||||
m_CurveXDamagedAreaList.RemoveAt(m_CurveXDamagedAreaList.Count - 1)
|
||||
Else
|
||||
' Cancello ultima linea
|
||||
EgtErase(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1))
|
||||
m_CurveXDamagedAreaList.RemoveAt(m_CurveXDamagedAreaList.Count - 1)
|
||||
' Aggiorno ptLast
|
||||
EgtEndPoint(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1), m_ptLast)
|
||||
End If
|
||||
Else
|
||||
m_bptLast = False
|
||||
End If
|
||||
RemoveBtn.IsChecked = False
|
||||
EgtDraw()
|
||||
Case RAWMODE.DAMAGED_BY_SAW
|
||||
If m_CurveXDamagedAreaList.Count > 0 Then
|
||||
If m_CurveXDamagedAreaList.Count = 1 Then
|
||||
' Aggiorno ptLast con primo punto
|
||||
EgtStartPoint(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1), m_ptLast)
|
||||
' Cancello ultima linea
|
||||
EgtErase(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1))
|
||||
m_CurveXDamagedAreaList.RemoveAt(m_CurveXDamagedAreaList.Count - 1)
|
||||
Else
|
||||
' Cancello ultima linea
|
||||
EgtErase(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1))
|
||||
m_CurveXDamagedAreaList.RemoveAt(m_CurveXDamagedAreaList.Count - 1)
|
||||
' Aggiorno ptLast
|
||||
EgtEndPoint(m_CurveXDamagedAreaList(m_CurveXDamagedAreaList.Count - 1), m_ptLast)
|
||||
End If
|
||||
Else
|
||||
m_bptLast = False
|
||||
End If
|
||||
RemoveBtn.IsChecked = False
|
||||
EgtDraw()
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
@@ -1976,6 +2268,26 @@ Public Class RawPartPageUC
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub VerifySawDefinig()
|
||||
If m_bIsRawDefiningBySaw Then
|
||||
If m_CurveXKerfList.Count > 1 Then
|
||||
CloseRawBySaw()
|
||||
Else
|
||||
' Elimino tutti i segmenti disegnati
|
||||
For Each nEntityId As Integer In m_CurveXKerfList
|
||||
If EgtGetType(nEntityId) = GDB_TY.CRV_LINE Then
|
||||
EgtErase(nEntityId)
|
||||
End If
|
||||
Next
|
||||
' Azzero lista e punto di partenza
|
||||
m_CurveXKerfList.Clear()
|
||||
' Creo rettangolo
|
||||
UpdateRawPart()
|
||||
End If
|
||||
m_bIsRawDefiningBySaw = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub LoadFromMachine()
|
||||
' Elimino grezzo già presente
|
||||
EgtErase(EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID))
|
||||
@@ -1993,6 +2305,10 @@ Public Class RawPartPageUC
|
||||
Select Case m_ActiveRawMode
|
||||
Case RAWMODE.DAMAGED_BY_LASER
|
||||
CloseDamagedAreaByLaser()
|
||||
Case RAWMODE.DAMAGED_BY_SAW
|
||||
CloseDamagedAreaBySaw()
|
||||
Case RAWMODE.FROM_SAW
|
||||
CloseRawBySaw()
|
||||
Case Else
|
||||
CloseRawByLaser()
|
||||
End Select
|
||||
@@ -2036,6 +2352,42 @@ Public Class RawPartPageUC
|
||||
CloseBtn.IsEnabled = False
|
||||
End Sub
|
||||
|
||||
Private Sub CloseRawBySaw()
|
||||
' Verifico ci siano punti
|
||||
If m_CurveXKerfList.Count() = 0 Then Return
|
||||
' Recupero punto iniziale prima linea del grezzo
|
||||
Dim ptStart As Point3d
|
||||
EgtStartPoint(m_CurveXKerfList(0), ptStart)
|
||||
m_CurveXKerfList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, m_ptLast, ptStart))
|
||||
' Trasformo lista di curve in un array
|
||||
Dim CurveXKerfArray As Integer() = m_CurveXKerfList.ToArray
|
||||
' Creo contorno kerf
|
||||
Dim nKerfId As Integer = EgtCreateCurveCompoByChain(m_CurrProjPage.m_nRawId, m_CurveXKerfList.Count, CurveXKerfArray, ptStart, True)
|
||||
EgtSetName(nKerfId, NAME_KERF)
|
||||
EgtSetColor(nKerfId, m_KerfCol)
|
||||
' Pulisco lista entità del grezzo
|
||||
m_CurveXKerfList.Clear()
|
||||
' Aggiorno il grezzo comprese dimensioni e posizione
|
||||
UpdateRawPartKerf()
|
||||
' Salvo il valore del kerf (sempre in mm)
|
||||
Dim dKerf As Double = 0
|
||||
StringToLen(KerfTxBx.Text, dKerf)
|
||||
If dKerf < 0 Then
|
||||
EgtSetInfo(m_CurrProjPage.m_nRawId, KEY_INVERT_KERF, -1)
|
||||
Else
|
||||
EgtSetInfo(m_CurrProjPage.m_nRawId, KEY_INVERT_KERF, 1)
|
||||
End If
|
||||
EgtSetInfo(m_CurrProjPage.m_nRawId, KEY_KERF, m_RawKerf)
|
||||
' Segno flag che indica fine della definizione
|
||||
m_bIsRawDefiningBySaw = False
|
||||
' Elimino primo punto per prossimo grezzo
|
||||
m_bptLast = False
|
||||
' Aggiorno visualizzazione
|
||||
EgtDraw()
|
||||
' Disattivo il bottone chiudi grezzo
|
||||
CloseBtn.IsEnabled = False
|
||||
End Sub
|
||||
|
||||
#Region "Damaged Area"
|
||||
|
||||
Private Sub AddNewDamagedArea()
|
||||
@@ -2092,6 +2444,32 @@ Public Class RawPartPageUC
|
||||
CloseBtn.IsEnabled = False
|
||||
End Sub
|
||||
|
||||
Private Sub CloseDamagedAreaBySaw()
|
||||
' Verifico ci siano punti
|
||||
If m_CurveXDamagedAreaList.Count() = 0 Then Return
|
||||
' Recupero punto iniziale prima linea del grezzo
|
||||
Dim ptStart As Point3d
|
||||
EgtStartPoint(m_CurveXDamagedAreaList(0), ptStart)
|
||||
' creao la linea che va dal primo punto all'ultimo
|
||||
m_CurveXDamagedAreaList.Add(EgtCreateLine(m_CurrProjPage.m_nRawId, m_ptLast, ptStart))
|
||||
' Trasformo lista di curve in un array
|
||||
Dim CurveXDamagedAreaArray As Integer() = m_CurveXDamagedAreaList.ToArray
|
||||
' Creo contorno kerf
|
||||
Dim nDmgId As Integer = EgtCreateCurveCompoByChain(m_CurrProjPage.m_nRawId, m_CurveXDamagedAreaList.Count, CurveXDamagedAreaArray, ptStart, True)
|
||||
EgtSetName(nDmgId, NAME_DAMAGED)
|
||||
EgtSetColor(nDmgId, m_KerfCol)
|
||||
' Pulisco lista entità del grezzo
|
||||
m_CurveXDamagedAreaList.Clear()
|
||||
' Segno flag che indica fine della definizione
|
||||
m_bIsRawDefiningBySaw = False
|
||||
' Elimino primo punto per prossimo grezzo
|
||||
m_bptLast = False
|
||||
' Aggiorno visualizzazione
|
||||
EgtDraw()
|
||||
' Disattivo il bottone chiudi grezzo
|
||||
CloseBtn.IsEnabled = False
|
||||
End Sub
|
||||
|
||||
Private Sub RemoveDamagedArea()
|
||||
' Elimino area rovinata selezionata
|
||||
EgtErase(m_nSelDmg)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 534 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Reference in New Issue
Block a user