Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1ea76d1caa | |||
| 83b1b5b531 | |||
| 98dcbc65e7 | |||
| a88c804370 | |||
| 7c21db7055 | |||
| 4c142df7ef | |||
| 72f41bacab | |||
| 5fe6b03a89 | |||
| be30ebadbf | |||
| e67cf50f50 | |||
| f82a6495bd | |||
| 9168da183e | |||
| c6262613c8 | |||
| 31edd150bd | |||
| 9fdd7b4b77 | |||
| 0ed3efed11 | |||
| b0bae3af98 | |||
| 235ec10a2d | |||
| 66061ad262 | |||
| 3e99eb1a8f |
@@ -29,9 +29,17 @@ Public Class CurrMachWindowVM
|
||||
m_SelCurrSawing = value
|
||||
End If
|
||||
CurrentMachine.sCurrSawing = m_SelCurrSawing
|
||||
' salvo la lvorazione corrente
|
||||
WritePrivateProfileString(S_MACH_MACH, K_CURRSAWING_OFFICE, m_SelCurrSawing, sMachIniFile)
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub SetCurrSawing(sCurrOfficeSawing As String)
|
||||
m_SelCurrSawing = sCurrOfficeSawing
|
||||
CurrentMachine.sCurrSawing = m_SelCurrSawing
|
||||
NotifyPropertyChanged("SelCurrSawing")
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property CurrSawing_Visibility As Visibility
|
||||
Get
|
||||
If EgtGetHeadId("H1") = GDB_ID.NULL Then
|
||||
@@ -149,10 +157,18 @@ Public Class CurrMachWindowVM
|
||||
If value <> m_SelCurrDrilling Then
|
||||
m_SelCurrDrilling = value
|
||||
CurrentMachine.sCurrDrilling = m_SelCurrDrilling
|
||||
' salvo la lvorazione corrente
|
||||
WritePrivateProfileString(S_MACH_MACH, K_CURRDRILLING_OFFICE, m_SelCurrDrilling, sMachIniFile)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub SetCurrDrilling(sCurrOfficeDrilling As String)
|
||||
m_SelCurrDrilling = sCurrOfficeDrilling
|
||||
CurrentMachine.sCurrDrilling = m_SelCurrDrilling
|
||||
NotifyPropertyChanged("SelCurrDrilling")
|
||||
End Sub
|
||||
|
||||
Private m_CurrDrilling_Visibility As Visibility
|
||||
Public Property CurrDrilling_Visibility As Visibility
|
||||
Get
|
||||
@@ -187,10 +203,18 @@ Public Class CurrMachWindowVM
|
||||
If value <> m_SelCurrMilling Then
|
||||
m_SelCurrMilling = value
|
||||
CurrentMachine.sCurrMilling = m_SelCurrMilling
|
||||
' salvo la lvorazione corrente
|
||||
WritePrivateProfileString(S_MACH_MACH, K_CURRMILLING_OFFICE, m_SelCurrMilling, sMachIniFile)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub SetCurrMilling(sCurrOfficeMilling As String)
|
||||
m_SelCurrMilling = sCurrOfficeMilling
|
||||
CurrentMachine.sCurrMilling = m_SelCurrMilling
|
||||
NotifyPropertyChanged("SelCurrMilling")
|
||||
End Sub
|
||||
|
||||
Private m_CurrMilling_Visibility As Visibility
|
||||
Public Property CurrMilling_Visibility As Visibility
|
||||
Get
|
||||
@@ -225,10 +249,18 @@ Public Class CurrMachWindowVM
|
||||
If value <> m_SelCurrPocketing Then
|
||||
m_SelCurrPocketing = value
|
||||
CurrentMachine.sCurrPocketing = m_SelCurrPocketing
|
||||
' salvo la lvorazione corrente
|
||||
WritePrivateProfileString(S_MACH_MACH, K_CURRPOCKETING_OFFICE, m_SelCurrPocketing, sMachIniFile)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub SetCurrPocketing(sCurrOfficePocketing As String)
|
||||
m_SelCurrPocketing = sCurrOfficePocketing
|
||||
CurrentMachine.sCurrPocketing = m_SelCurrPocketing
|
||||
NotifyPropertyChanged("SelCurrPocketing")
|
||||
End Sub
|
||||
|
||||
Private m_CurrPocketing_Visibility As Visibility
|
||||
Public Property CurrPocketing_Visibility As Visibility
|
||||
Get
|
||||
@@ -263,10 +295,18 @@ Public Class CurrMachWindowVM
|
||||
If value <> m_SelCurrWaterjetting Then
|
||||
m_SelCurrWaterjetting = value
|
||||
CurrentMachine.sCurrWaterJetting = m_SelCurrWaterjetting
|
||||
' salvo la lvorazione corrente
|
||||
WritePrivateProfileString(S_MACH_MACH, K_CURRWATERJETTING_OFFICE, m_SelCurrWaterjetting, sMachIniFile)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub SetCurrWaterjetting(sCurrOfficeWaterjetting As String)
|
||||
m_SelCurrWaterjetting = sCurrOfficeWaterjetting
|
||||
CurrentMachine.sCurrWaterJetting = m_SelCurrWaterjetting
|
||||
NotifyPropertyChanged("SelCurrWaterjetting")
|
||||
End Sub
|
||||
|
||||
Private m_CurrWaterjettingQualityList As New List(Of String)
|
||||
Public Property CurrWaterjettingQualityList As List(Of String)
|
||||
Get
|
||||
@@ -286,10 +326,18 @@ Public Class CurrMachWindowVM
|
||||
If value <> m_SelCurrWaterjettingQuality Then
|
||||
m_SelCurrWaterjettingQuality = value
|
||||
CurrentMachine.sCurrWaterJettingQuality = m_SelCurrWaterjettingQuality
|
||||
' salvo la lvorazione corrente
|
||||
WritePrivateProfileString(S_MACH_MACH, K_CURRWATERJETTINGQUALITY_OFFICE, m_SelCurrWaterjettingQuality, sMachIniFile)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub SetCurrWaterjettingQuality(sCurrOfficeWaterjettingQuality As String)
|
||||
m_SelCurrWaterjettingQuality = sCurrOfficeWaterjettingQuality
|
||||
CurrentMachine.sCurrWaterJettingQuality = m_SelCurrWaterjettingQuality
|
||||
NotifyPropertyChanged("SelCurrWaterjetting")
|
||||
End Sub
|
||||
|
||||
Private m_CurrWaterjetting_Visibility As Visibility = Visibility.Collapsed
|
||||
Public Property CurrWaterjetting_Visibility As Visibility
|
||||
Get
|
||||
@@ -472,11 +520,13 @@ Public Class CurrMachWindowVM
|
||||
|
||||
If m_CurrSawingList.Count > 0 Then
|
||||
If CurrentMachine.sCurrSawing <> String.Empty Then
|
||||
SelCurrSawing = CurrentMachine.sCurrSawing
|
||||
SetCurrSawing(CurrentMachine.sCurrSawing)
|
||||
Else
|
||||
Dim sCurrSawing As String = ""
|
||||
GetPrivateProfileString(S_MACH_MACH, K_CURRSAWING, Nothing, sCurrSawing, sMachIniFile)
|
||||
SelCurrSawing = sCurrSawing
|
||||
' GetPrivateProfileString(S_MACH_MACH, K_CURRSAWING, Nothing, sCurrSawing, sMachIniFile)
|
||||
GetPrivateProfileString(S_MACH_MACH, K_CURRSAWING_OFFICE, Nothing, sCurrSawing, sMachIniFile)
|
||||
'SelCurrSawing = sCurrSawing
|
||||
SetCurrSawing(sCurrSawing)
|
||||
End If
|
||||
Else
|
||||
CurrentMachine.sCurrSawing = String.Empty
|
||||
@@ -486,7 +536,11 @@ Public Class CurrMachWindowVM
|
||||
If CurrentMachine.bDrilling And m_CurrDrillingList.Count > 1 Then
|
||||
CurrDrilling_Visibility = Visibility.Visible
|
||||
If CurrentMachine.sCurrDrilling <> String.Empty Then
|
||||
SelCurrDrilling = CurrentMachine.sCurrDrilling
|
||||
SetCurrDrilling(CurrentMachine.sCurrDrilling)
|
||||
Else
|
||||
Dim sCurrMachining As String = ""
|
||||
GetPrivateProfileString(S_MACH_MACH, K_CURRDRILLING_OFFICE, Nothing, sCurrMachining, sMachIniFile)
|
||||
SetCurrDrilling(sCurrMachining)
|
||||
End If
|
||||
Else
|
||||
CurrDrilling_Visibility = Visibility.Collapsed
|
||||
@@ -495,7 +549,11 @@ Public Class CurrMachWindowVM
|
||||
If CurrentMachine.bMilling And m_CurrMillingList.Count > 1 Then
|
||||
CurrMilling_Visibility = Visibility.Visible
|
||||
If CurrentMachine.sCurrMilling <> String.Empty Then
|
||||
SelCurrMilling = CurrentMachine.sCurrMilling
|
||||
SetCurrMilling(CurrentMachine.sCurrMilling)
|
||||
Else
|
||||
Dim sCurrMachining As String = ""
|
||||
GetPrivateProfileString(S_MACH_MACH, K_CURRMILLING_OFFICE, Nothing, sCurrMachining, sMachIniFile)
|
||||
SetCurrMilling(sCurrMachining)
|
||||
End If
|
||||
Else
|
||||
CurrMilling_Visibility = Visibility.Collapsed
|
||||
@@ -504,7 +562,11 @@ Public Class CurrMachWindowVM
|
||||
If CurrentMachine.bPocketing And CurrPocketingList.Count > 1 Then
|
||||
CurrPocketing_Visibility = Visibility.Visible
|
||||
If CurrentMachine.sCurrPocketing <> String.Empty Then
|
||||
SelCurrPocketing = CurrentMachine.sCurrPocketing
|
||||
SetCurrPocketing(CurrentMachine.sCurrPocketing)
|
||||
Else
|
||||
Dim sCurrMachining As String = ""
|
||||
GetPrivateProfileString(S_MACH_MACH, K_CURRPOCKETING_OFFICE, Nothing, sCurrMachining, sMachIniFile)
|
||||
SetCurrPocketing(sCurrMachining)
|
||||
End If
|
||||
Else
|
||||
CurrPocketing_Visibility = Visibility.Collapsed
|
||||
@@ -515,10 +577,18 @@ Public Class CurrMachWindowVM
|
||||
' se DB WaterJet abilitato avrò anche la CmBx della Quality solo la CmBx del Waterjetting corrente
|
||||
If CurrentMachine.bFromDBWaterJet Then
|
||||
If CurrentMachine.sCurrWaterJetting <> String.Empty Then
|
||||
SelCurrWaterjetting = CurrentMachine.sCurrWaterJetting
|
||||
SetCurrWaterjetting(CurrentMachine.sCurrWaterJetting)
|
||||
Else
|
||||
Dim sCurrMachining As String = ""
|
||||
GetPrivateProfileString(S_MACH_MACH, K_CURRWATERJETTING_OFFICE, Nothing, sCurrMachining, sMachIniFile)
|
||||
SetCurrWaterjetting(sCurrMachining)
|
||||
End If
|
||||
If CurrentMachine.sCurrWaterJettingQuality <> String.Empty Then
|
||||
SelCurrWaterjettingQuality = CurrentMachine.sCurrWaterJettingQuality
|
||||
SetCurrWaterjettingQuality(CurrentMachine.sCurrWaterJettingQuality)
|
||||
Else
|
||||
Dim sCurrMachining As String = ""
|
||||
GetPrivateProfileString(S_MACH_MACH, K_CURRWATERJETTINGQUALITY_OFFICE, Nothing, sCurrMachining, sMachIniFile)
|
||||
SetCurrWaterjettingQuality(sCurrMachining)
|
||||
End If
|
||||
CurrWaterjettingQuality_Visibility = Visibility.Visible
|
||||
Else
|
||||
|
||||
@@ -247,9 +247,13 @@
|
||||
Public Const K_CURRDRIPDRILL As String = "CurrDripDrill"
|
||||
Public Const K_CURRWATERJET As String = "CurrWaterJet"
|
||||
Public Const K_CURRSAWING As String = "CurrSawing"
|
||||
Public Const K_CURRSAWING_OFFICE As String = "CurrOfficeSawing"
|
||||
Public Const K_CURRDRILLING As String = "CurrDrilling"
|
||||
Public Const K_CURRDRILLING_OFFICE As String = "CurrOfficeDrilling"
|
||||
Public Const K_CURRMILLING As String = "CurrMilling"
|
||||
Public Const K_CURRMILLING_OFFICE As String = "CurrOfficeMilling"
|
||||
Public Const K_CURRPOCKETING As String = "CurrPocketing"
|
||||
Public Const K_CURRPOCKETING_OFFICE As String = "CurrOfficePocketing"
|
||||
Public Const K_CURRSAWROUGHING As String = "CurrSawRoughing"
|
||||
Public Const K_CURRSAWFINISHING As String = "CurrSawFinishing"
|
||||
Public Const K_CURRSAWSIDEFINISHING As String = "CurrSawSideFinishing"
|
||||
@@ -257,7 +261,9 @@
|
||||
Public Const K_CURRDRIPSAWING As String = "CurrDripSawing"
|
||||
Public Const K_CURRDRIPDRILLING As String = "CurrDripDrilling"
|
||||
Public Const K_CURRWATERJETTING As String = "CurrWaterJetting"
|
||||
Public Const K_CURRWATERJETTING_OFFICE As String = "CurrOfficeWaterJetting"
|
||||
Public Const K_CURRWATERJETTINGQUALITY As String = "CurrWaterJettingQuality"
|
||||
Public Const K_CURRWATERJETTINGQUALITY_OFFICE As String = "CurrWaterJettingQuality"
|
||||
|
||||
Public Const S_MATERIALS As String = "Materials"
|
||||
Public Const K_CURRMATERIAL As String = "CurrMaterial"
|
||||
|
||||
@@ -247,7 +247,7 @@ Module EstCalc
|
||||
Friend Function SetCurrSawing(sCurrSawing As String) As Boolean
|
||||
Dim nOperId As Integer = EgtGetFirstNameInGroup(EgtGetCurrMachGroup(), "Opers")
|
||||
If nOperId = GDB_ID.NULL Then Return False
|
||||
Return EgtSetInfo(nOperId, INFO_CURRSAWING, sCurrSawing)
|
||||
Return EgtSetInfo(nOperId, INFO_CURRSAWING, sCurrSawing, True)
|
||||
End Function
|
||||
|
||||
Friend Function GetCurrSawing() As String
|
||||
@@ -261,7 +261,7 @@ Module EstCalc
|
||||
Friend Function SetCurrMilling(sCurrMilling As String) As Boolean
|
||||
Dim nOperId As Integer = EgtGetFirstNameInGroup(EgtGetCurrMachGroup(), "Opers")
|
||||
If nOperId = GDB_ID.NULL Then Return False
|
||||
Return EgtSetInfo(nOperId, INFO_CURRMILLING, sCurrMilling)
|
||||
Return EgtSetInfo(nOperId, INFO_CURRMILLING, sCurrMilling, True)
|
||||
End Function
|
||||
|
||||
Friend Function GetCurrMilling() As String
|
||||
@@ -275,7 +275,7 @@ Module EstCalc
|
||||
Friend Function SetCurrDrilling(sCurrDrilling As String) As Boolean
|
||||
Dim nOperId As Integer = EgtGetFirstNameInGroup(EgtGetCurrMachGroup(), "Opers")
|
||||
If nOperId = GDB_ID.NULL Then Return False
|
||||
Return EgtSetInfo(nOperId, INFO_CURRDRILLING, sCurrDrilling)
|
||||
Return EgtSetInfo(nOperId, INFO_CURRDRILLING, sCurrDrilling, True)
|
||||
End Function
|
||||
|
||||
Friend Function GetCurrDrilling() As String
|
||||
@@ -289,7 +289,7 @@ Module EstCalc
|
||||
Friend Function SetCurrPocketing(sCurrMilling As String) As Boolean
|
||||
Dim nOperId As Integer = EgtGetFirstNameInGroup(EgtGetCurrMachGroup(), "Opers")
|
||||
If nOperId = GDB_ID.NULL Then Return False
|
||||
Return EgtSetInfo(nOperId, INFO_CURRPOCKETING, sCurrMilling)
|
||||
Return EgtSetInfo(nOperId, INFO_CURRPOCKETING, sCurrMilling, True)
|
||||
End Function
|
||||
|
||||
Friend Function GetCurrPocketing() As String
|
||||
@@ -303,7 +303,7 @@ Module EstCalc
|
||||
Friend Function SetCurrWaterjetting(sCurrMilling As String) As Boolean
|
||||
Dim nOperId As Integer = EgtGetFirstNameInGroup(EgtGetCurrMachGroup(), "Opers")
|
||||
If nOperId = GDB_ID.NULL Then Return False
|
||||
Return EgtSetInfo(nOperId, INFO_CURRWATERJETTING, sCurrMilling)
|
||||
Return EgtSetInfo(nOperId, INFO_CURRWATERJETTING, sCurrMilling, True)
|
||||
End Function
|
||||
|
||||
Friend Function GetCurrWaterjetting() As String
|
||||
|
||||
@@ -384,28 +384,53 @@ Public Module SplitAuto
|
||||
For Each nCut As Integer In vCuts
|
||||
RemoveMachiningPreview(nCut)
|
||||
Next
|
||||
' Sposto tutte le lavorazioni disabilitate e le eventuali inglobate nella nuova fase
|
||||
' ---------------------------------- LAVORAZIONI ----------------------------------
|
||||
ChangeOperationPhase(nNewPhase)
|
||||
' ---------------------------------- LAVORAZIONI ----------------------------------
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Friend Sub ChangeOperationPhase(nNewPhase As Integer)
|
||||
' creo l'elenco delle lavorazioni che devono essere sposate
|
||||
Dim MchList As New List(Of Integer)
|
||||
' Recupero le lavorazioni disabilitate e le eventuali inglobate nella nuova fase
|
||||
Dim nId = EgtGetFirstOperation()
|
||||
While nId <> GDB_ID.NULL
|
||||
Dim nNextId = EgtGetNextOperation(nId)
|
||||
If IsValidMachining(nId) And EgtGetOperationPhase(nId) = nNewPhase - 1 And EgtExistsInfo(nId, INFO_MCH_USER_OFF) Then
|
||||
' sposto la lavorazione
|
||||
EgtChangeOperationPhase(nId, nNewPhase)
|
||||
' Provo ad inserire la lavorazione nell'elenco
|
||||
AddMach(MchList, nId)
|
||||
' sposto le inglobate
|
||||
Dim sInfo As String = String.Empty
|
||||
If EgtGetInfo(nId, INFO_MCH_OTHMID, sInfo) Then
|
||||
Dim sItems() As String = sInfo.Split(",".ToCharArray)
|
||||
For Each sId2 In sItems
|
||||
For Each sId2 As String In sItems
|
||||
Dim nId2 As Integer = 0
|
||||
StringToInt(sId2, nId2)
|
||||
If nId2 > 0 Then EgtChangeOperationPhase(nId2, nNewPhase)
|
||||
If nId2 > 0 Then
|
||||
' Provo ad inserire la lavorazione nell'elenco
|
||||
AddMach(MchList, nId2)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
nId = nNextId
|
||||
End While
|
||||
Return True
|
||||
End Function
|
||||
' Procedo ora a spostare le lavorazioni nella nuova disposizione
|
||||
For Each ItemMchId As Integer In MchList
|
||||
EgtChangeOperationPhase(ItemMchId, nNewPhase)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Inserisce gli inidici delle lavorazioni evitando di inserire dei doppioni
|
||||
Private Sub AddMach(MchList As List(Of Integer), IdMch As Integer)
|
||||
For Each Item As Integer In MchList
|
||||
If IdMch = Item Then
|
||||
Return
|
||||
End If
|
||||
Next
|
||||
MchList.Add(IdMch)
|
||||
End Sub
|
||||
|
||||
'-----------------------------------------------------------------------------------------------
|
||||
Friend Function CalculateSplitAuto() As Boolean
|
||||
|
||||
@@ -539,14 +539,25 @@ Module VacuumCups
|
||||
|
||||
' assegante le posizioni del centro delle ventose e l'angolo di posizionamento orizzontale verifica che la posizione sia raggiungibile
|
||||
Public Function VerifyOutOfStrokes(ptRef As Point3d, dRotAngDeg As Double) As Integer
|
||||
Dim dX, dY, dZ As Double
|
||||
Dim nStat As Integer
|
||||
' Posizione Home dell'asse rotante
|
||||
Dim dCHome As Double
|
||||
EgtGetAxisHomePos("C", dCHome)
|
||||
' imposto la l'uscita della ventosa come fosse l'uscita di un utensile
|
||||
' Corse dell'asse
|
||||
Dim dCMin As Double
|
||||
EgtGetAxisMin("C", dCMin)
|
||||
Dim dCMax As Double
|
||||
EgtGetAxisMax("C", dCMax)
|
||||
' Porto l'angolo nel range
|
||||
Dim dRotAngMachDeg As Double = dRotAngDeg + dCHome
|
||||
AdjustAngleInRange(dRotAngMachDeg, dCMin, dCMax)
|
||||
' Imposto la ventosa come fosse un utensile
|
||||
EgtSetCalcTool("", "H4", 1)
|
||||
EgtGetCalcPositions(ptRef, dRotAngDeg + dCHome, 0, nStat, dX, dY, dZ)
|
||||
EgtVerifyOutstroke(dX, dY, dZ, dRotAngDeg + dCHome, 0, nStat)
|
||||
' Calcolo gli assi macchina
|
||||
Dim dX, dY, dZ As Double
|
||||
Dim nStat As Integer
|
||||
EgtGetCalcPositions(ptRef, dRotAngMachDeg, 0, nStat, dX, dY, dZ)
|
||||
' Verifico le corse
|
||||
EgtVerifyOutstroke(dX, dY, dZ, dRotAngMachDeg, 0, nStat)
|
||||
Return nStat
|
||||
End Function
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
Margin="0,5,0,0"
|
||||
Content="Verify"/>
|
||||
<ToggleButton Name="MagneticBtn" Height="40" Width="80"
|
||||
Visibility="Collapsed"
|
||||
Margin="0,5,0,0"
|
||||
Content="Magnetic"/>
|
||||
<Button Name="ExportBtn" Height="40" Width="80"
|
||||
|
||||
@@ -4,6 +4,7 @@ Imports System.Collections.ObjectModel
|
||||
Imports System.Runtime.InteropServices
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports OmagOFFICE.VeinMatchingWindow
|
||||
|
||||
Public Class VeinMatchingWindow
|
||||
|
||||
@@ -37,6 +38,11 @@ Public Class VeinMatchingWindow
|
||||
Private m_bStartRot As Boolean = False
|
||||
Private m_bStartMove As Boolean = False
|
||||
|
||||
Enum ALETTE
|
||||
F = 2
|
||||
A = 1
|
||||
End Enum
|
||||
|
||||
Private Sub Window_Initialized(sender As Object, e As EventArgs)
|
||||
' Assegnazione scena all'host e posizionamento nella PlacePageGrid
|
||||
VeinMatchingSceneHost.Child = VeinMatchingScene
|
||||
@@ -256,14 +262,14 @@ Public Class VeinMatchingWindow
|
||||
EgtMovePartToSnapPointOnCollision(nMoveId, True, m_dSnapDist, bSnapMoved)
|
||||
End If
|
||||
End If
|
||||
' Standard
|
||||
' Standard
|
||||
Else
|
||||
EgtMove(nMoveId, vtMove)
|
||||
End If
|
||||
VeinMatching.SetProjectModified()
|
||||
EgtDraw()
|
||||
End If
|
||||
' altrimenti rotazione
|
||||
' altrimenti rotazione
|
||||
Else
|
||||
' Ricavo l'angolo di movimento
|
||||
Dim vtPrev As Vector3d = m_ptPrev - m_ptCen
|
||||
@@ -273,7 +279,7 @@ Public Class VeinMatchingWindow
|
||||
' Con verifica di collisione
|
||||
If m_bCurrVerify Then
|
||||
EgtRotatePart(nMoveId, True, m_ptCen, dAngRotDeg)
|
||||
' Standard
|
||||
' Standard
|
||||
Else
|
||||
EgtRotate(nMoveId, m_ptCen, Vector3d.Z_AX(), dAngRotDeg, GDB_RT.GLOB)
|
||||
End If
|
||||
@@ -293,15 +299,15 @@ Public Class VeinMatchingWindow
|
||||
' Se eseguito drag
|
||||
If Not m_bDragToStart Then
|
||||
' Non serve fare alcunché
|
||||
' Se selezione da eseguire
|
||||
' Se selezione da eseguire
|
||||
ElseIf m_nIdToSel <> GDB_ID.NULL Then
|
||||
' Eseguo la selezione
|
||||
EgtSelectObj(m_nIdToSel)
|
||||
' Se deselezione da eseguire
|
||||
' Se deselezione da eseguire
|
||||
ElseIf m_nIdToDesel <> GDB_ID.NULL Then
|
||||
EgtDeselectObj(m_nIdToDesel)
|
||||
End If
|
||||
' Altrimenti selezione/deselezione anche per nesting
|
||||
' Altrimenti selezione/deselezione anche per nesting
|
||||
Else
|
||||
' Se selezione da eseguire
|
||||
If m_nIdToSel <> GDB_ID.NULL Then
|
||||
@@ -329,7 +335,7 @@ Public Class VeinMatchingWindow
|
||||
EgtSetCurrentContext(VeinMatchingScene.GetCtx())
|
||||
' Se selezione riuscita, la eseguo anche in VME
|
||||
If bSelected Then EgtSelectObj(m_nIdToSel)
|
||||
' Se deselezione da eseguire
|
||||
' Se deselezione da eseguire
|
||||
ElseIf m_nIdToDesel <> GDB_ID.NULL Then
|
||||
' Eseguo la deselezione in Nesting
|
||||
Dim bDeselected As Boolean = False
|
||||
@@ -507,31 +513,31 @@ Friend Module VeinMatching
|
||||
Dim PartId As Integer = EgtGetFirstPart()
|
||||
While PartId <> GDB_ID.NULL
|
||||
Dim b3Tmp As New BBox3d()
|
||||
if EgtGetBBoxGlob( PartId, GDB_BB.STANDARD, b3Tmp) Then b3Parts.Add( b3Tmp)
|
||||
If EgtGetBBoxGlob(PartId, GDB_BB.STANDARD, b3Tmp) Then b3Parts.Add(b3Tmp)
|
||||
PartId = EgtGetNextPart(PartId)
|
||||
End While
|
||||
' Se ingombro troppo grande, errore
|
||||
If b3Parts.DimX() > 2 * ( DIM_REG - SAFE_DIST) Or b3Parts.DimY() > 2 * ( DIM_REG - SAFE_DIST) Then
|
||||
If b3Parts.DimX() > 2 * (DIM_REG - SAFE_DIST) Or b3Parts.DimY() > 2 * (DIM_REG - SAFE_DIST) Then
|
||||
Return False
|
||||
End If
|
||||
' Se fuori dalla regione di validità, li muovo
|
||||
Dim vtMove As New Vector3d
|
||||
If b3Parts.Min().x < -DIM_REG + SAFE_DIST Then
|
||||
vtMove += New Vector3d( -DIM_REG + SAFE_DIST - b3Parts.Min().x, 0, 0)
|
||||
End If
|
||||
vtMove += New Vector3d(-DIM_REG + SAFE_DIST - b3Parts.Min().x, 0, 0)
|
||||
End If
|
||||
If b3Parts.Min().y < -DIM_REG + SAFE_DIST Then
|
||||
vtMove += New Vector3d( 0, -DIM_REG + SAFE_DIST - b3Parts.Min().y, 0)
|
||||
End If
|
||||
vtMove += New Vector3d(0, -DIM_REG + SAFE_DIST - b3Parts.Min().y, 0)
|
||||
End If
|
||||
If b3Parts.Max().x > DIM_REG - SAFE_DIST Then
|
||||
vtMove += New Vector3d( DIM_REG - SAFE_DIST - b3Parts.Max().x, 0, 0)
|
||||
End If
|
||||
vtMove += New Vector3d(DIM_REG - SAFE_DIST - b3Parts.Max().x, 0, 0)
|
||||
End If
|
||||
If b3Parts.Max().y > DIM_REG - SAFE_DIST Then
|
||||
vtMove += New Vector3d( 0, DIM_REG - SAFE_DIST - b3Parts.Max().y, 0)
|
||||
End If
|
||||
vtMove += New Vector3d(0, DIM_REG - SAFE_DIST - b3Parts.Max().y, 0)
|
||||
End If
|
||||
If Not vtMove.IsSmall() Then
|
||||
PartId = EgtGetFirstPart()
|
||||
While PartId <> GDB_ID.NULL
|
||||
EgtMove( PartId, vtMove, GDB_RT.GLOB)
|
||||
EgtMove(PartId, vtMove, GDB_RT.GLOB)
|
||||
PartId = EgtGetNextPart(PartId)
|
||||
End While
|
||||
End If
|
||||
@@ -580,9 +586,9 @@ Friend Module VeinMatching
|
||||
EgtSetInfo(nVeinId2, KEY_ORI_ID, nPartId)
|
||||
' Ne garantisco la visibilità
|
||||
Dim nStat As Integer = GDB_ST.OFF
|
||||
If Not EgtGetStatus( nVeinId2, nStat) OrElse nStat <> GDB_ST.ON_ Then
|
||||
EgtSetStatus( nVeinId2, GDB_ST.ON_)
|
||||
End If
|
||||
If Not EgtGetStatus(nVeinId2, nStat) OrElse nStat <> GDB_ST.ON_ Then
|
||||
EgtSetStatus(nVeinId2, GDB_ST.ON_)
|
||||
End If
|
||||
' Se impostato, nascondo scritte, sono nel layer "Region"
|
||||
If Not m_bShowText Then
|
||||
Dim nVeinRegId As Integer = EgtGetFirstNameInGroup(nVeinId2, NAME_REGION)
|
||||
@@ -991,7 +997,7 @@ Friend Module VeinMatching
|
||||
' Esporto il file come immagine
|
||||
EgtSetCurrentContext(m_nVeinCtx)
|
||||
Dim bOk As Boolean = (EgtGetFileType(sFilePath) = FT.IMG)
|
||||
bOk = bOk AndAlso EgtGetImage(DirectCast( EgtGetShowMode(), EgtInterface.SM),
|
||||
bOk = bOk AndAlso EgtGetImage(DirectCast(EgtGetShowMode(), EgtInterface.SM),
|
||||
New Color3d(255, 255, 255), New Color3d(255, 255, 255),
|
||||
m_nImgWidth, m_nImgHeight, sFilePath)
|
||||
' Ripristino il contesto originale
|
||||
@@ -1079,7 +1085,7 @@ Friend Module VeinMatching
|
||||
Return (GetVeinPartId(nPartId) <> GDB_ID.NULL)
|
||||
End Function
|
||||
|
||||
Friend Function ModifyPartText( nPartId As Integer, sNewText As String, Optional bDraw As Boolean = True) As Boolean
|
||||
Friend Function ModifyPartText(nPartId As Integer, sNewText As String, Optional bDraw As Boolean = True) As Boolean
|
||||
' Verifico esista il contesto del VeinMatching
|
||||
If m_nVeinCtx = 0 Then Return True
|
||||
' Recupero il contesto corrente (principale)
|
||||
@@ -1097,7 +1103,7 @@ Friend Module VeinMatching
|
||||
Dim nCurrId As Integer = EgtGetFirstInGroup(nVeinRegId)
|
||||
While nCurrId <> GDB_ID.NULL
|
||||
If EgtGetType(nCurrId) = GDB_TY.EXT_TEXT Then
|
||||
EgtModifyText( nCurrId, sNewText)
|
||||
EgtModifyText(nCurrId, sNewText)
|
||||
Exit While
|
||||
End If
|
||||
nCurrId = EgtGetNext(nCurrId)
|
||||
@@ -1713,43 +1719,44 @@ Friend Module VeinMatching
|
||||
End Function
|
||||
|
||||
Friend Function MoveAlettaSolid(ByRef Item As Aletta, ByRef ThicknessRaw As Double) As Boolean
|
||||
|
||||
' A: alzatina, F: frontalino
|
||||
Dim nType As Integer
|
||||
If Not EgtGetInfo(Item.IdSideRef, "AF", nType) Then Return False
|
||||
|
||||
Dim ptSRef, ptERef, ptE As Point3d
|
||||
Dim ptSRef, ptERef, ptS, ptE As Point3d
|
||||
' Piano cucina
|
||||
If Not EgtStartPoint(Item.IdSideRef, GDB_ID.ROOT, ptSRef) Then Return False
|
||||
If Not EgtEndPoint(Item.IdSideRef, GDB_ID.ROOT, ptERef) Then Return False
|
||||
' AlzFront
|
||||
If Not EgtStartPoint(Item.SideId, GDB_ID.ROOT, ptS) Then Return False
|
||||
If Not EgtEndPoint(Item.SideId, GDB_ID.ROOT, ptE) Then Return False
|
||||
|
||||
' verifco che sia già stato ruotato
|
||||
Dim nInfo3D As Integer = 0
|
||||
EgtGetInfo(Item.SideId, "Info3D", nInfo3D)
|
||||
' vettore lato cucina
|
||||
Dim vtRotRef As Vector3d = ptERef - ptSRef
|
||||
' vettore lato AlzFront
|
||||
Dim vtRot As Vector3d = ptE - ptS
|
||||
|
||||
If nInfo3D <> 1 Then
|
||||
' ruoto il solido intorno al lato di riferimento
|
||||
Dim vtRot As Vector3d = ptERef - ptSRef
|
||||
If nType = 1 Then
|
||||
EgtRotate(Item.PartId, ptE, vtRot, -90, GDB_RT.GLOB)
|
||||
ElseIf nType = 2 Then
|
||||
EgtRotate(Item.PartId, ptE, vtRot, 90, GDB_RT.GLOB)
|
||||
End If
|
||||
' ruoto il solido intorno al lato di riferimento
|
||||
If nType = ALETTE.A Then
|
||||
EgtRotate(Item.PartId, ptE, vtRot, 90, GDB_RT.GLOB)
|
||||
ElseIf nType = ALETTE.F Then
|
||||
EgtRotate(Item.PartId, ptE, vtRot, -90, GDB_RT.GLOB)
|
||||
End If
|
||||
|
||||
' punto di riferimento per la traslazione sul solido
|
||||
Dim ptSolid As Point3d
|
||||
If nType = 1 Then
|
||||
If nType = ALETTE.A Then
|
||||
' cerco id della curva che definisce la front face
|
||||
Dim nSolidGrp As Integer = EgtGetFirstNameInGroup(Item.PartId, NAME_VM_SOLID)
|
||||
Dim nFrontCrvId As Integer = EgtGetFirstInGroup(nSolidGrp)
|
||||
EgtStartPoint(nFrontCrvId, ptSolid)
|
||||
ElseIf nType = 2 Then
|
||||
EgtStartPoint(Item.SideId, ptSolid)
|
||||
EgtStartPoint(nFrontCrvId, GDB_ID.ROOT, ptSolid)
|
||||
ElseIf nType = ALETTE.F Then
|
||||
EgtStartPoint(Item.SideId, GDB_ID.ROOT, ptSolid)
|
||||
End If
|
||||
|
||||
Dim ItemFrame As New Frame3d
|
||||
If Not EgtGetGroupGlobFrame(Item.PartId, ItemFrame) Then Return False
|
||||
ptSolid.ToGlob(ItemFrame)
|
||||
' Dim ItemFrame As New Frame3d
|
||||
' If Not EgtGetGroupGlobFrame(Item.PartId, ItemFrame) Then Return False
|
||||
' ptSolid.ToGlob(ItemFrame)
|
||||
|
||||
'punto di riferimento per la traslazione sul piano cucina
|
||||
Dim ptKitchen As Point3d = ptERef
|
||||
@@ -1757,6 +1764,16 @@ Friend Module VeinMatching
|
||||
Dim vtMove As Vector3d = ptKitchen - ptSolid
|
||||
EgtMove(Item.PartId, vtMove, GDB_RT.GLOB)
|
||||
|
||||
' eventualmente ruoto per allineare l'alzatina al piano cucina
|
||||
Dim dLRef, dAngVRef, dAngHRef As Double
|
||||
vtRotRef.ToSpherical(dLRef, dAngVRef, dAngHRef)
|
||||
Dim dL, dAngV, dAngH As Double
|
||||
vtRot.Rotate(Vector3d.Z_AX, 180)
|
||||
vtRot.ToSpherical(dL, dAngV, dAngH)
|
||||
Dim dDelta As Double = dAngHRef - dAngH
|
||||
If Math.Abs(dDelta) < EPS_ANG_SMALL Then Return True
|
||||
EgtRotate(Item.PartId, ptKitchen, Vector3d.Z_AX, dDelta, GDB_RT.GLOB)
|
||||
|
||||
Return True
|
||||
End Function
|
||||
End Module
|
||||
|
||||
@@ -7,7 +7,8 @@ Public Class PrintPanelVM
|
||||
|
||||
Public ReadOnly Property PrintToolTip As String
|
||||
Get
|
||||
Return "Print shading" & vbCrLf & "Print hidden line (Shift)"
|
||||
' "Print shading" & vbCrLf & "Print hidden line (Shift)"
|
||||
Return "Print"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -24,10 +25,22 @@ Public Class PrintPanelVM
|
||||
|
||||
Public Sub Print(ByVal param As Object)
|
||||
Dim SM_Select As SM = SM.SHADING
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) > 0 Then
|
||||
|
||||
' Imposto la stampa HiddenLine (non è gestita la stampa WireFrame)
|
||||
'If (Keyboard.Modifiers And ModifierKeys.Shift) > 0 Then
|
||||
' SM_Select = SM.HIDDENLINE
|
||||
' EgtSetLineAttribs(3)
|
||||
'End If
|
||||
|
||||
' Gestione stampa in funzione del della visualizzazione corrente
|
||||
If OmagOFFICEMap.refShowPanelVM.WireframeIsChecked Then
|
||||
SM_Select = SM.WIREFRAME
|
||||
EgtSetLineAttribs(3)
|
||||
ElseIf OmagOFFICEMap.refShowPanelVM.HiddenLineIsChecked Then
|
||||
SM_Select = SM.HIDDENLINE
|
||||
EgtSetLineAttribs(3)
|
||||
End If
|
||||
|
||||
Dim printDlg As New PrintDialog
|
||||
Dim sPath = OmagOFFICEMap.refMainWindowVM.MainWindowM.sTempDir & "\Image.png"
|
||||
If printDlg.ShowDialog() Then
|
||||
@@ -35,10 +48,9 @@ Public Class PrintPanelVM
|
||||
Dim dW As Double = printDlg.PrintableAreaWidth
|
||||
Dim dH As Double = printDlg.PrintableAreaHeight
|
||||
Try
|
||||
' Creo l'immagine da allegare
|
||||
' EgtZoom(ZM.ALL, True)
|
||||
' Prendo l'immagine per la stampa
|
||||
' Prendo l'immagine corrente per la stampa
|
||||
Dim colWhite As New Color3d(255, 255, 255)
|
||||
' Recupero le dimensioni correnti della pagina di disegno
|
||||
Dim nImgW As Integer = GetWidthDimProjectV()
|
||||
Dim nImgH As Integer = GetHeightDimProjectV()
|
||||
If Not EgtGetImage(SM_Select, colWhite, colWhite, nImgW, nImgH, sPath) Then
|
||||
@@ -63,12 +75,7 @@ Public Class PrintPanelVM
|
||||
Dim tmpImg As New Image
|
||||
tmpImg.BeginInit()
|
||||
tmpImg.Source = bitImage
|
||||
'tmpImg.Margin = New Thickness(-100)
|
||||
tmpImg.Stretch = Stretch.Uniform
|
||||
' ruoto a seconda dell'aspetto della pagina
|
||||
'If (dH > dW And nImgH < nImgW) Or (dH < dW And nImgH > nImgW) Then
|
||||
' tmpImg.LayoutTransform = New RotateTransform(-90)
|
||||
'End If
|
||||
tmpImg.EndInit()
|
||||
' eseguo la stampa
|
||||
printDlg.PrintVisual(tmpImg, "Parts Layout")
|
||||
|
||||
@@ -223,8 +223,8 @@ Public Class MainWindowM
|
||||
' Verifico abilitazione nesting automatico
|
||||
m_bAutoNestOption = Not String.IsNullOrWhiteSpace( sNestKey)
|
||||
' Recupero livello e opzioni della chiave
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2502, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(9423, 2502, 1, m_nKeyOptions)
|
||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2505, 1, m_nKeyLevel) And
|
||||
EgtGetKeyOptions(9423, 2505, 1, m_nKeyOptions)
|
||||
' Verifico abilitazione prodotto
|
||||
Dim bProd As Boolean = GetKeyOption(KEY_OPT.OFFICE_BASE)
|
||||
' Inizializzazione generale di EgtInterface
|
||||
|
||||
@@ -69,6 +69,6 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.5.2.1")>
|
||||
<Assembly: AssemblyFileVersion("2.5.2.1")>
|
||||
<Assembly: AssemblyVersion("2.5.5.1")>
|
||||
<Assembly: AssemblyFileVersion("2.5.5.1")>
|
||||
|
||||
|
||||
@@ -189,6 +189,10 @@ Public Class MyMachGroupPanelVM
|
||||
End If
|
||||
' Verifico che gli utensili delle lavorazioni correnti siano attrezzati (necessario perchè potrei aver cambiato gli utensili delle lavorazioni)
|
||||
' e che le lavorazioni correnti siano compatibili con materiale e spessore
|
||||
|
||||
' Inizializzo l'elenco delle lavorazioni correnti
|
||||
Dim CurrMachining As New CurrMachWindowVM
|
||||
|
||||
' Lama
|
||||
Dim bOkCurrSawing As Boolean = True
|
||||
Dim bOkCurrWaterjetting As Boolean = True
|
||||
@@ -229,12 +233,13 @@ Public Class MyMachGroupPanelVM
|
||||
Else
|
||||
bOkCurrWaterjetting = False
|
||||
End If
|
||||
|
||||
' Imposto il colore del pulsante SetUp
|
||||
If Not bOkSetUp Then
|
||||
OmagOFFICEMap.refMachinePanelVM.SetUp_Background = Brushes.Red
|
||||
Else
|
||||
OmagOFFICEMap.refMachinePanelVM.SetUp_Background = DirectCast(New BrushConverter().ConvertFrom("#FFDDDDDD"), SolidColorBrush)
|
||||
End If
|
||||
' Imposto il colore di sfondo del pulsante SettingMachinig
|
||||
If Not bOkMatThick Or Not bOkCurrSawing Then
|
||||
If Not bOkMatThick Or Not bOkCurrWaterjetting Then
|
||||
OmagOFFICEMap.refOptionPanelVM.RawPart_Background = Brushes.Red
|
||||
|
||||
@@ -152,17 +152,19 @@ Public Class MySceneHostVM
|
||||
MainScene.SetSnapPointType(SP.PT_SKETCH)
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub SaveProject()
|
||||
MyBase.SaveProject()
|
||||
Public Overrides Function SaveProject() As Boolean
|
||||
Dim bOk As Boolean = MyBase.SaveProject()
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub SaveAsProject()
|
||||
MyBase.SaveAsProject()
|
||||
Public Overrides Function SaveAsProject() As Boolean
|
||||
Dim bOk As Boolean = MyBase.SaveAsProject()
|
||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Private Function GetMachineBaseDirs() As String
|
||||
' Trasformo l'elenco dei direttori radice macchina in una stringa del tipo "..\Dir1\Example01|..\Dir2\|Example02"
|
||||
@@ -183,7 +185,7 @@ Public Class MySceneHostVM
|
||||
|
||||
#Region "ProjectManager"
|
||||
|
||||
Public Overrides Sub NewProject()
|
||||
Public Overrides Function NewProject() As Boolean
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
Dim bOk As Boolean = MainController.NewProject()
|
||||
' Eventuale reset VM
|
||||
@@ -191,9 +193,10 @@ Public Class MySceneHostVM
|
||||
VeinMatching.Clear()
|
||||
End If
|
||||
MainScene.SetStatusNull()
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub OpenProject(sFilePath As String)
|
||||
Public Overrides Function OpenProject(sFilePath As String) As Boolean
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
Dim bOk As Boolean = False
|
||||
If String.IsNullOrEmpty(sFilePath) Then
|
||||
@@ -216,33 +219,37 @@ Public Class MySceneHostVM
|
||||
Dim sVmFile As String = Path.ChangeExtension(sFile, ".vme")
|
||||
VeinMatching.Open(sVmFile)
|
||||
End If
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Public Overrides Sub ExportProject()
|
||||
Public Overrides Function ExportProject() As Boolean
|
||||
Dim bOk As Boolean = False
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
' Verifico che il progetto sia salvato
|
||||
If EgtGetModified() Then
|
||||
MessageBox.Show(EgtMsg( 91501), "", MessageBoxButton.OK, MessageBoxImage.Exclamation)
|
||||
Return
|
||||
MessageBox.Show(EgtMsg(91501), "", MessageBoxButton.OK, MessageBoxImage.Exclamation)
|
||||
Return bOk
|
||||
End If
|
||||
' Scelta del direttorio di destinazione
|
||||
Dim sLastExportDir As String = String.Empty
|
||||
GetMainPrivateProfileString(S_GENERAL, K_EXPORTDIR, "", sLastExportDir)
|
||||
Dim DirDlg As New System.Windows.Forms.FolderBrowserDialog
|
||||
DirDlg.Description = EgtMsg( 91502) ' Seleziona il direttorio di esportazione
|
||||
DirDlg.Description = EgtMsg(91502) ' Seleziona il direttorio di esportazione
|
||||
DirDlg.SelectedPath = sLastExportDir
|
||||
If DirDlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return
|
||||
If DirDlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return bOk
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_EXPORTDIR, DirDlg.SelectedPath)
|
||||
' Eseguo esportazione
|
||||
If ExecExport(DirDlg.SelectedPath) Then
|
||||
' Esportazione conclusa con successo
|
||||
OmagOFFICEMap.refStatusBarVM.SetOutputMessage( EgtMsg( 91504), 5, MSG_TYPE.INFO)
|
||||
OmagOFFICEMap.refStatusBarVM.SetOutputMessage(EgtMsg(91504), 5, MSG_TYPE.INFO)
|
||||
bOk = True
|
||||
Else
|
||||
' Errore nell'esportazione
|
||||
MessageBox.Show( EgtMsg( 91503), "", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
MessageBox.Show(EgtMsg(91503), "", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
End If
|
||||
EgtSetCurrentContext(MainScene.GetCtx())
|
||||
End Sub
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Private Function ExecExport(sDirDest As String) As Boolean
|
||||
' salvo il nome della macchina correntemente selezionata
|
||||
|
||||
@@ -251,6 +251,10 @@
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningTab\ModifStartEndCutWindowVM.vb" />
|
||||
<Compile Include="OptionPanel\MachiningTab\ModifStartEndWjWindowVM.vb" />
|
||||
<Compile Include="OptionPanel\MachiningTab\ModifyQualityV.xaml.vb">
|
||||
<DependentUpon>ModifyQualityV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningTab\ModifyQualityVM.vb" />
|
||||
<Compile Include="OptionPanel\MachiningTab\MoveRawModeV.xaml.vb">
|
||||
<DependentUpon>MoveRawModeV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -441,6 +445,10 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningTab\ModifyQualityV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningTab\MoveRawModeV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
|
||||
@@ -7,20 +7,20 @@
|
||||
<Button Style="{StaticResource OptionPanel_Button}"
|
||||
Command="{Binding PrevCommand}"
|
||||
IsEnabled="{Binding PrevIsEnabled}"
|
||||
Margin="0,0,2.5,0">
|
||||
Margin="0,0,0,0">
|
||||
<Image Source="/Resources/MachiningTab/BackArrow.png"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource OptionPanel_Button}"
|
||||
Command="{Binding NextCommand}"
|
||||
IsEnabled="{Binding NextIsEnabled}"
|
||||
Margin="0,0,2.5,0">
|
||||
Margin="0,0,0,0">
|
||||
<Image Source="/Resources/MachiningTab/ForwardArrow.png"/>
|
||||
</Button>
|
||||
<Button Style="{StaticResource OptionPanel_Button}"
|
||||
Content="{Binding ModifyMsg}"
|
||||
Command="{Binding ModifyCommand}"
|
||||
IsEnabled="{Binding ModifyIsEnabled}"
|
||||
Margin="0,0,2.5,0"/>
|
||||
Margin="0,0,0,0"/>
|
||||
<Button Style="{StaticResource OptionPanel_Button}"
|
||||
Content="{Binding AutoMsg}"
|
||||
Command="{Binding AutoCommand}"
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<EgtWPFLib5:EgtCustomWindow x:Class="ModifyQualityV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
IsMinimizable="False"
|
||||
ShowInTaskbar="False"
|
||||
Title="{Binding Title}"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
Height="200" Width="400"
|
||||
WindowStartupLocation="CenterOwner">
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
<ColumnDefinition Width="4*"/>
|
||||
<ColumnDefinition Width="4*"/>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="0.5*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Column="1" Grid.Row="1" Margin="0,5,0,0"
|
||||
Style="{StaticResource OptionTextBlock}" Text="{Binding ValueMsg}"/>
|
||||
<ComboBox ItemsSource="{Binding QualityList}"
|
||||
SelectedItem="{Binding SelectedQuality}"
|
||||
Grid.Column="2" Grid.Row="1" Margin="10,5,10,0"/>
|
||||
|
||||
<Grid Name="ButtonsGrid" Grid.Column="1" Grid.Row="3" Grid.RowSpan="1" Grid.ColumnSpan="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="0.5*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Name="OkBtn" Content="{Binding OkMsg}" Grid.Column="1"
|
||||
Style="{DynamicResource ToolBar_TextButton}">
|
||||
</Button>
|
||||
<Button Content="{Binding ExitMsg}" Grid.Column="3"
|
||||
IsCancel="True"
|
||||
Style="{DynamicResource ToolBar_TextButton}">
|
||||
</Button>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
</EgtWPFLib5:EgtCustomWindow>
|
||||
@@ -0,0 +1,6 @@
|
||||
Public Class ModifyQualityV
|
||||
|
||||
Private Sub OkBtn_Click(sender As Object, e As RoutedEventArgs) Handles OkBtn.Click
|
||||
DialogResult = True
|
||||
End Sub
|
||||
End Class
|
||||
@@ -0,0 +1,61 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.IO
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Public Class ModifyQualityVM
|
||||
Inherits VMBase
|
||||
|
||||
Private m_Title As String = String.Empty
|
||||
Public Property Title As String
|
||||
Get
|
||||
Return m_Title
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_Title = value
|
||||
End Set
|
||||
End Property
|
||||
Public ReadOnly Property ValueMsg As String
|
||||
Get
|
||||
Return EgtMsg(MSG_SPLITPAGEUC + 35)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property OkMsg As String
|
||||
Get
|
||||
Return EgtMsg(91651) 'Ok
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ExitMsg As String
|
||||
Get
|
||||
Return EgtMsg(91652) 'Annulla
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_QualityList As New ObservableCollection(Of String)
|
||||
|
||||
Public Property QualityList As ObservableCollection(Of String)
|
||||
Get
|
||||
Return m_QualityList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of String))
|
||||
m_QualityList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_SelectedQuality As String
|
||||
|
||||
Public Property SelectedQuality As String
|
||||
Get
|
||||
Return m_SelectedQuality
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_SelectedQuality = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -7,17 +7,17 @@
|
||||
<ListBox ItemsSource="{Binding ItemList}"
|
||||
DisplayMemberPath="Name"
|
||||
SelectionMode="Extended"
|
||||
Height="250" Margin="0,0,0,5">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding bIsActive}" Value="False">
|
||||
<Setter Property="Foreground" Value="{StaticResource Omag_Gray}"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
Height="200" Margin="0,0,0,5">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding bIsActive}" Value="False">
|
||||
<Setter Property="Foreground" Value="{StaticResource Omag_Gray}"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
</ListBox>
|
||||
|
||||
<Grid Margin="0,0,0,5">
|
||||
@@ -44,7 +44,7 @@
|
||||
</Grid>
|
||||
|
||||
<Border Margin="0,0,0,5" Style="{StaticResource Border}">
|
||||
|
||||
|
||||
<UniformGrid Columns="3">
|
||||
|
||||
<Button Content="{Binding OnOffMsg}"
|
||||
@@ -65,29 +65,37 @@
|
||||
</Border>
|
||||
|
||||
<Border Margin="0,0,0,5" Style="{StaticResource Border}">
|
||||
|
||||
|
||||
<StackPanel>
|
||||
|
||||
|
||||
<UniformGrid Columns="3" Margin="0,0,0,5">
|
||||
<Grid>
|
||||
<Button Content="{Binding CutMsg}"
|
||||
<Grid>
|
||||
<Button Content="{Binding CutMsg}"
|
||||
Style="{StaticResource OptionPanel_TextWrapButton}"
|
||||
Command="{Binding CutCommand}"
|
||||
Visibility="{Binding CutBtnVisibility}"
|
||||
Margin="0,0,2.5,0"/>
|
||||
<ToggleButton Grid.Row="0"
|
||||
<ToggleButton Grid.Row="0"
|
||||
Content="{Binding BridgeMsg}"
|
||||
Style="{StaticResource OptionPanel_ToggleWrapButton}"
|
||||
IsChecked="{Binding BridgeBtn_IsChecked}"
|
||||
Visibility="{Binding BridgeBtnVisibility}"
|
||||
Margin="0,0,2.5,0" Padding="0"/>
|
||||
</Grid>
|
||||
|
||||
<Button Content="{Binding CutStartMsg}"
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Button Content="{Binding CutStartMsg}"
|
||||
Style="{StaticResource OptionPanel_TextWrapButton}"
|
||||
Command="{Binding CutStartCommand}"
|
||||
Visibility="{Binding CutStartBtnVisibility}"
|
||||
Margin="2.5,0,2.5,0"/>
|
||||
<Button Content="{Binding QualityMsg}"
|
||||
Style="{StaticResource OptionPanel_TextWrapButton}"
|
||||
Command="{Binding QualityCommand}"
|
||||
Visibility="{Binding QualityBtnVisibility}"
|
||||
Margin="2.5,0,2.5,0"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Button Content="{Binding CutEndMsg}"
|
||||
Style="{StaticResource OptionPanel_TextWrapButton}"
|
||||
@@ -125,11 +133,11 @@
|
||||
</Grid>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
|
||||
</Border>
|
||||
|
||||
<Border Margin="0,0,0,5" Style="{StaticResource Border}">
|
||||
|
||||
|
||||
<StackPanel>
|
||||
|
||||
<UniformGrid Columns="3" Margin="0,0,0,5">
|
||||
@@ -149,11 +157,11 @@
|
||||
Command="{Binding AllCenStartCommand}"
|
||||
Visibility="{Binding AllCenStartBtnVisibility}"
|
||||
Margin="2.5,0,0,0"/>
|
||||
|
||||
|
||||
</UniformGrid>
|
||||
|
||||
<UniformGrid Columns="3" Margin="0,0,0,5">
|
||||
|
||||
|
||||
<Button Content="{Binding OutCenEndMsg}"
|
||||
Style="{StaticResource OptionPanel_TextWrapButton}"
|
||||
Command="{Binding OutCenEndCommand}"
|
||||
@@ -195,14 +203,14 @@
|
||||
</UniformGrid>
|
||||
|
||||
<UniformGrid Columns="3" Margin="0,0,0,5">
|
||||
<!--Bottone invisibile per permetter il corretto allineamento-->
|
||||
<Button Content="{Binding }" Grid.Column="0"
|
||||
<!--Bottone invisibile per permetter il corretto allineamento-->
|
||||
<Button Content="{Binding }" Grid.Column="0"
|
||||
Style="{StaticResource OptionPanel_TextWrapButton}"
|
||||
Command="{Binding }"
|
||||
Visibility="Hidden"
|
||||
Margin="2.5,0,2.5,0"/>
|
||||
<!--Inverti direzione di taglio-->
|
||||
<Button Content="{Binding InvertMsg}" Grid.Column="0"
|
||||
<!--Inverti direzione di taglio-->
|
||||
<Button Content="{Binding InvertMsg}" Grid.Column="0"
|
||||
Style="{StaticResource OptionPanel_TextWrapButton}"
|
||||
Command="{Binding InvertCommand}"
|
||||
Visibility="{Binding InvertBtnVisibility}"
|
||||
@@ -210,7 +218,7 @@
|
||||
|
||||
</UniformGrid>
|
||||
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</Border>
|
||||
|
||||
|
||||
@@ -256,6 +256,18 @@ Public Class SplitModeVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_QualityBtnVisibility As Visibility = Visibility.Hidden
|
||||
|
||||
Public Property QualityBtnVisibility As Visibility
|
||||
Get
|
||||
Return m_QualityBtnVisibility
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_QualityBtnVisibility = value
|
||||
NotifyPropertyChanged(NameOf(QualityBtnVisibility))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_BridgeBtn_IsChecked As Boolean = False
|
||||
Public Property BridgeBtn_IsChecked As Boolean
|
||||
Get
|
||||
@@ -402,6 +414,12 @@ Public Class SplitModeVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property QualityMsg As String
|
||||
Get
|
||||
Return "Quality"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Messages
|
||||
|
||||
' Definizione comandi
|
||||
@@ -425,6 +443,7 @@ Public Class SplitModeVM
|
||||
Private m_cmdModifEnd As ICommand
|
||||
Private m_cmdPause As ICommand
|
||||
Private m_cmdInvert As ICommand
|
||||
Private m_cmdQuality As ICommand
|
||||
|
||||
#End Region ' FIELDS & PROPERTIES
|
||||
|
||||
@@ -867,9 +886,11 @@ Public Class SplitModeVM
|
||||
If CutBtnVisibility = Visibility.Hidden Then
|
||||
BridgeBtnVisibility = Visibility.Visible
|
||||
BridgeDeleteBtnVisibility = Visibility.Visible
|
||||
QualityBtnVisibility = Visibility.Visible
|
||||
Else
|
||||
BridgeBtnVisibility = Visibility.Hidden
|
||||
BridgeDeleteBtnVisibility = Visibility.Hidden
|
||||
QualityBtnVisibility = Visibility.Hidden
|
||||
End If
|
||||
Else
|
||||
BridgeBtnVisibility = Visibility.Hidden
|
||||
@@ -2605,6 +2626,72 @@ Public Class SplitModeVM
|
||||
|
||||
#End Region ' Bridge
|
||||
|
||||
#Region "Quality"
|
||||
|
||||
Public ReadOnly Property QualityCommand As ICommand
|
||||
Get
|
||||
If m_cmdQuality Is Nothing Then
|
||||
m_cmdQuality = New Command(AddressOf ModifyQuality)
|
||||
End If
|
||||
Return m_cmdQuality
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub ModifyQuality()
|
||||
Dim bFirstWJ As Boolean = True
|
||||
Dim sQuality As String = String.Empty
|
||||
' Recupero la lavorazione corrente
|
||||
If m_CurrFirstInd = -1 Then Return
|
||||
Dim bGenModif As Boolean = False
|
||||
For Index As Integer = m_CurrFirstInd To m_CurrLastInd
|
||||
If Not m_ItemList(Index).IsSelected Then
|
||||
Continue For
|
||||
End If
|
||||
Dim nI As Integer = m_ItemList(Index).Ind
|
||||
Dim nOperId As Integer = m_MachiningList(nI).m_nId
|
||||
Dim nMachiningType As Integer = EgtGetOperationType(nOperId)
|
||||
' se altrimenti getto d'acqua
|
||||
If nMachiningType = MCH_MY.WATERJETTING Then
|
||||
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
|
||||
If bFirstWJ Then
|
||||
EgtSetCurrMachining(nOperId)
|
||||
' Dialogo richiesta valore
|
||||
'(m_MainWindow, m_MainWindow.m_CurrentMachine.Qualities, "Quality")
|
||||
Dim ModifyQualityWnd As New ModifyQualityV
|
||||
Dim ModifyQuality As New ModifyQualityVM
|
||||
ModifyQuality.Title = "Quality"
|
||||
ModifyQuality.QualityList = CurrentMachine.Qualities
|
||||
ModifyQualityWnd.DataContext = ModifyQuality
|
||||
ModifyQualityWnd.Owner = Application.Current.MainWindow
|
||||
If EgtGetInfo(nOperId, "Quality", sQuality) Then
|
||||
ModifyQuality.SelectedQuality = sQuality
|
||||
Else
|
||||
ModifyQuality.SelectedQuality = CurrentMachine.sCurrWaterJettingQuality
|
||||
End If
|
||||
If Not ModifyQualityWnd.ShowDialog() Then Return
|
||||
sQuality = ModifyQuality.SelectedQuality
|
||||
' comunico che ho letto il primo dato
|
||||
bFirstWJ = False
|
||||
|
||||
End If
|
||||
' ------------------ INIZIO PREPARAZIONE TASTIERINO VIRTUALE ------------------
|
||||
' Modifica della lavorazione
|
||||
EgtSetCurrMachining(nOperId)
|
||||
EgtSetInfo(nOperId, "Quality", sQuality)
|
||||
UpdateMachiningPreview(m_MachiningList(nI).m_nId, True)
|
||||
' verifico interferenza
|
||||
bGenModif = True
|
||||
End If
|
||||
Next
|
||||
' Se modificato qualcosa
|
||||
If bGenModif Then
|
||||
EgtDraw()
|
||||
m_bModified = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' Quality
|
||||
|
||||
Friend Sub OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
|
||||
If Not m_bActive OrElse OmagOFFICEMap.refMachiningTabVM.IsShow Then Return
|
||||
|
||||
@@ -2428,6 +2428,7 @@ Public Class NestingTabVM
|
||||
VeinMatching.OnDeselectPart(m_nIdToDesel)
|
||||
End If
|
||||
' Reset
|
||||
GetFamilyGroupInPark()
|
||||
m_bDrag = False
|
||||
m_nIdToSel = GDB_ID.NULL
|
||||
m_nIdToDesel = GDB_ID.NULL
|
||||
|
||||
@@ -176,7 +176,25 @@
|
||||
|
||||
</GroupBox>
|
||||
|
||||
<Button Content="{Binding ConfirmPhotoMsg}"
|
||||
<!-- Definizione della Grid per Punti Per il Registration -->
|
||||
<GroupBox Header="{Binding PointsRegMsg}" Margin="0,0,0,5"
|
||||
Visibility="{Binding PointsRegVisibility}">
|
||||
<StackPanel>
|
||||
<UniformGrid Columns="3">
|
||||
<ToggleButton Content="{Binding AddMsg}"
|
||||
IsChecked="{Binding AddPointReg}"
|
||||
Style="{StaticResource OptionPanel_ToggleButton}"/>
|
||||
<ToggleButton Content="{Binding ModMsg}"
|
||||
IsChecked="{Binding ModPointReg}"
|
||||
Style="{StaticResource OptionPanel_ToggleButton}"/>
|
||||
<ToggleButton Content="{Binding RemoveMsg}"
|
||||
IsChecked="{Binding RemovePointReg}"
|
||||
Style="{StaticResource OptionPanel_ToggleButton}"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
|
||||
<Button Content="{Binding ConfirmPhotoMsg}"
|
||||
Command="{Binding ConfirmPhotoCommand}"
|
||||
Visibility="{Binding ConfirmPhotoVisibility}"
|
||||
Style="{StaticResource OptionPanel_TextButton}"
|
||||
|
||||
@@ -42,6 +42,17 @@ Public Class RawPartTabVM
|
||||
' Layer per crocette temporanee
|
||||
Private m_nTempLay As Integer = GDB_ID.NULL
|
||||
|
||||
' Layer per crocette dei punti REG
|
||||
Private m_nRegGroupId As Integer = GDB_ID.NULL
|
||||
' Numero di spot inseriti nel grezzo corrente
|
||||
Private m_nCountSpot As Integer = 0
|
||||
' Gruppo Spot attualmente selezionato
|
||||
Private m_nCurrSpotRegId As Integer = GDB_ID.NULL
|
||||
Private Const COUNTSPOT As String = "CountSpot"
|
||||
Private Const REG As String = "Reg"
|
||||
Private Const SPOTREG_ As String = "SpotReg_"
|
||||
Private Const RADSPOT As Double = 20
|
||||
|
||||
' Costante minima dimensione del grezzo
|
||||
Private Const MIN_RAW_DIM As Double = 10
|
||||
' Costante distanza di sicurezza del grezzo dal bordo
|
||||
@@ -343,9 +354,11 @@ Public Class RawPartTabVM
|
||||
Dim dHeight As Double = 0
|
||||
If StringToLen(value, dHeight) And dHeight > -EPS_ZERO Then
|
||||
OmagOFFICEMap.refStatusBarVM.ClearOutputMessage()
|
||||
Dim dPrevHeight As Double = m_dHeight
|
||||
m_dHeight = dHeight
|
||||
UpdateRawPartHeight()
|
||||
UpdateTabState()
|
||||
MoveAllSpotRegistration(New Vector3d(0, 0, m_dHeight - dPrevHeight))
|
||||
EstCalc.SetSlabHeight(dHeight)
|
||||
OmagOFFICEMap.refMachGroupPanelVM.SelectedMachGroup.NotifyPropertyChanged("MachGroupToolTip")
|
||||
Else
|
||||
@@ -741,6 +754,73 @@ Public Class RawPartTabVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
'-------------------- REGISTRATION '--------------------
|
||||
Private m_AddPointReg As Boolean
|
||||
Public Property AddPointReg As Boolean
|
||||
Get
|
||||
Return m_AddPointReg
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If value <> m_AddPointReg Then
|
||||
If value Then
|
||||
PhotoWithMouse = False
|
||||
m_bDrag = False
|
||||
End If
|
||||
m_AddPointReg = value
|
||||
NotifyPropertyChanged("AddPointReg")
|
||||
m_ModPointReg = False
|
||||
NotifyPropertyChanged("ModPointReg")
|
||||
m_RemovePointReg = False
|
||||
NotifyPropertyChanged("RemovePointReg")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_ModPointReg As Boolean
|
||||
Public Property ModPointReg As Boolean
|
||||
Get
|
||||
Return m_ModPointReg
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If value <> m_ModPointReg Then
|
||||
EgtDeselectAll()
|
||||
EgtResetMark(m_nCurrSpotRegId)
|
||||
EgtDraw()
|
||||
If value Then
|
||||
PhotoWithMouse = False
|
||||
End If
|
||||
m_ModPointReg = value
|
||||
NotifyPropertyChanged("ModPointReg")
|
||||
m_AddPointReg = False
|
||||
NotifyPropertyChanged("AddPointReg")
|
||||
m_RemovePointReg = False
|
||||
NotifyPropertyChanged("RemovePointReg")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_RemovePointReg As Boolean
|
||||
Public Property RemovePointReg As Boolean
|
||||
Get
|
||||
Return m_RemovePointReg
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If value <> m_RemovePointReg Then
|
||||
If value Then
|
||||
PhotoWithMouse = False
|
||||
m_bDrag = False
|
||||
End If
|
||||
m_RemovePointReg = value
|
||||
NotifyPropertyChanged("RemovePointReg")
|
||||
m_AddPointReg = False
|
||||
NotifyPropertyChanged("AddPointReg")
|
||||
m_ModPointReg = False
|
||||
NotifyPropertyChanged("ModPointReg")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
'-------------------- REGISTRATION '--------------------
|
||||
|
||||
Private m_PointsVisibility As Visibility
|
||||
Public Property PointsVisibility As Visibility
|
||||
Get
|
||||
@@ -943,6 +1023,12 @@ Public Class RawPartTabVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ModMsg As String
|
||||
Get
|
||||
Return "Modifica"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property NewMsg As String
|
||||
Get
|
||||
Return EgtMsg(MSG_RAWPARTPAGEUC + 11)
|
||||
@@ -967,6 +1053,12 @@ Public Class RawPartTabVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property PointsRegMsg As String
|
||||
Get
|
||||
Return "Registration"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Messages
|
||||
|
||||
#Region "ToolTip"
|
||||
@@ -1009,8 +1101,8 @@ Public Class RawPartTabVM
|
||||
Friend Function InitRawPart() As Boolean
|
||||
EgtSetCurrentContext(OmagOFFICEMap.refSceneHostVM.MainScene.GetCtx())
|
||||
' Se abilitati, visualizzo bottone per dati lastra
|
||||
Dim bSlabId As Boolean = ( GetMainPrivateProfileInt( S_RAWPART, K_SLABID, 0) <> 0)
|
||||
SlabIdVisibility = If( bSlabId, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
||||
Dim bSlabId As Boolean = (GetMainPrivateProfileInt(S_RAWPART, K_SLABID, 0) <> 0)
|
||||
SlabIdVisibility = If(bSlabId, Windows.Visibility.Visible, Windows.Visibility.Hidden)
|
||||
' Se disponibile, imposto possibilità di contorno da foto
|
||||
If EstPhoto.GetContour() = GDB_ID.NULL Then
|
||||
If m_TypeList.Count = 3 Then m_TypeList.RemoveAt(2)
|
||||
@@ -1092,10 +1184,25 @@ Public Class RawPartTabVM
|
||||
RecalcRawPart(True)
|
||||
End If
|
||||
' Abilitazione eventuale bottone per dati slab
|
||||
SlabIdIsEnabled = ( EstCalc.GetRawId() <> GDB_ID.NULL)
|
||||
SlabIdIsEnabled = (EstCalc.GetRawId() <> GDB_ID.NULL)
|
||||
' Creo layer temporaneo per crocette
|
||||
m_nTempLay = EgtCreateGroup(GDB_ID.ROOT)
|
||||
EgtSetLevel(m_nTempLay, GDB_LV.TEMP)
|
||||
|
||||
' Veroifico se esiste il gruppo "REG"
|
||||
Dim nIdReg As Integer = EgtGetFirstNameInGroup(EgtGetParent(EstCalc.GetRawId()), "Reg")
|
||||
If nIdReg <> GDB_ID.NULL Then
|
||||
m_nRegGroupId = nIdReg
|
||||
EgtGetInfo(m_nRegGroupId, COUNTSPOT, m_nCountSpot)
|
||||
' Lo rendo visibile
|
||||
EgtSetStatus(m_nRegGroupId, GDB_ST.ON_)
|
||||
Else
|
||||
' Creo layer per definire i punti di REG
|
||||
m_nRegGroupId = EgtCreateGroup(EgtGetParent(EstCalc.GetRawId()))
|
||||
EgtSetName(m_nRegGroupId, REG)
|
||||
m_nCountSpot = 0
|
||||
End If
|
||||
|
||||
' Determino modalità di definizione
|
||||
OutlineIsChecked = True
|
||||
If EgtExistsInfo(EstCalc.GetRawId(), KEY_RAWBYPOINTS) Then
|
||||
@@ -1177,6 +1284,8 @@ Public Class RawPartTabVM
|
||||
WriteMainPrivateProfileString(S_RAWPART, K_RAWOFFSX, DoubleToString(m_dOffsetX, 2))
|
||||
WriteMainPrivateProfileString(S_RAWPART, K_RAWOFFSY, DoubleToString(m_dOffsetY, 2))
|
||||
WriteMainPrivateProfileString(S_RAWPART, K_RAWKERF, DoubleToString(m_dKerf, 2))
|
||||
' Nascondo il gruppo dei punti Reg
|
||||
EgtSetStatus(m_nRegGroupId, GDB_ST.OFF)
|
||||
' Se ci sono pezzi nel grezzo
|
||||
If EgtGetFirstPartInRawPart(EstCalc.GetRawId()) <> GDB_ID.NULL Then
|
||||
' Cancello tutte le lavorazioni
|
||||
@@ -1310,7 +1419,7 @@ Public Class RawPartTabVM
|
||||
AdjustRawPartPosition()
|
||||
End If
|
||||
' Abilitazione eventuale bottone per dati slab
|
||||
SlabIdIsEnabled = ( EstCalc.GetRawId() <> GDB_ID.NULL)
|
||||
SlabIdIsEnabled = (EstCalc.GetRawId() <> GDB_ID.NULL)
|
||||
' Aggiorno visualizzazione
|
||||
EgtDraw()
|
||||
End Sub
|
||||
@@ -1374,7 +1483,6 @@ Public Class RawPartTabVM
|
||||
nInvert = -1
|
||||
End If
|
||||
Dim dOffset As Double = (-m_dKerf - m_PrecKerf) * nInvert
|
||||
EgtSaveFile("c:\EgtData\OmagOFFICE\Temp\Error.nge", NGE.TEXT)
|
||||
Dim nCount As Integer = 0
|
||||
Dim bOK As Boolean = EgtOffsetCurve(nKerfId, dOffset, OFF_TYPE.EXTEND)
|
||||
EgtSetColor(nKerfId, m_KerfCol)
|
||||
@@ -1413,7 +1521,7 @@ Public Class RawPartTabVM
|
||||
If EstCalc.GetRawId() = GDB_ID.NULL Then
|
||||
RecalcRawPart(True)
|
||||
Return
|
||||
' se da cancellare
|
||||
' se da cancellare
|
||||
ElseIf m_dHeight < EPS_SMALL Then
|
||||
' Se ci sono pezzi
|
||||
If EgtGetFirstPartInRawPart(EstCalc.GetRawId()) <> GDB_ID.NULL Then
|
||||
@@ -1434,7 +1542,7 @@ Public Class RawPartTabVM
|
||||
End If
|
||||
' Elimino il grezzo
|
||||
EgtRemoveRawPart(EstCalc.GetRawId())
|
||||
' altrimenti da aggiornare
|
||||
' altrimenti da aggiornare
|
||||
Else
|
||||
' Salvo vecchia altezza
|
||||
Dim dOldHeight As Double = EstCalc.GetRawHeight()
|
||||
@@ -1468,7 +1576,7 @@ Public Class RawPartTabVM
|
||||
EstPhoto.UpdateContour()
|
||||
End If
|
||||
' Abilitazione eventuale bottone per dati slab
|
||||
SlabIdIsEnabled = ( EstCalc.GetRawId() <> GDB_ID.NULL)
|
||||
SlabIdIsEnabled = (EstCalc.GetRawId() <> GDB_ID.NULL)
|
||||
' Aggiorno visualizzazione
|
||||
EgtDraw()
|
||||
End Sub
|
||||
@@ -1576,6 +1684,10 @@ Public Class RawPartTabVM
|
||||
' Muovo eventuali cerchietti alle estremità della curva di contorno
|
||||
MoveCircles(vtMove)
|
||||
End If
|
||||
' Muovo eventuali punti SpotReg
|
||||
If m_nRegGroupId <> GDB_ID.NULL Then
|
||||
MoveAllSpotRegistration(vtMove)
|
||||
End If
|
||||
' Incremento opportunamente l'offset della fotografia
|
||||
Dim dPhotoOffsetX As Double = m_dPhotoOffsetX + vtMove.x
|
||||
Dim dPhotoOffsetY As Double = m_dPhotoOffsetY + vtMove.y
|
||||
@@ -1831,6 +1943,106 @@ Public Class RawPartTabVM
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function MoveSpotRegistration(nIdGroup As Integer, vtMove As Vector3d) As Boolean
|
||||
If nIdGroup = GDB_ID.NULL Then Return False
|
||||
' Non ci deve essere movimento in Z
|
||||
vtMove.z = 0
|
||||
' Recupero il cercio di riferimento
|
||||
Dim nArcId As Integer = EgtGetFirstInGroup(nIdGroup)
|
||||
Dim b3Crv As New BBox3d
|
||||
EgtGetBBoxGlob(nArcId, GDB_BB.STANDARD, b3Crv)
|
||||
b3Crv.Move(vtMove)
|
||||
If b3Crv.Min().x < m_ptTableMin.x + 10 * EPS_SMALL Then
|
||||
vtMove.x += m_ptTableMin.x + 10 * EPS_SMALL - b3Crv.Min().x
|
||||
ElseIf b3Crv.Max().x > m_ptTableMin.x + m_dTableLength + 10 * EPS_SMALL Then
|
||||
vtMove.x += m_ptTableMin.x + m_dTableLength - 10 * EPS_SMALL - b3Crv.Max().x
|
||||
End If
|
||||
If b3Crv.Min().y < m_ptTableMin.y + 10 * EPS_SMALL Then
|
||||
vtMove.y += m_ptTableMin.y + 10 * EPS_SMALL - b3Crv.Min().y
|
||||
ElseIf b3Crv.Max().y > m_ptTableMin.y + m_dTableWidth + 10 * EPS_SMALL Then
|
||||
vtMove.y += m_ptTableMin.y + m_dTableWidth - 10 * EPS_SMALL - b3Crv.Max().y
|
||||
End If
|
||||
' muovo il gruppo
|
||||
EgtMove(nIdGroup, vtMove)
|
||||
EgtDraw()
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Sub MoveAllSpotRegistration(vtMove As Vector3d)
|
||||
Dim nId As Integer = EgtGetFirstInGroup(m_nRegGroupId)
|
||||
While nId <> GDB_ID.NULL
|
||||
EgtMove(nId, vtMove)
|
||||
nId = EgtGetNext(nId)
|
||||
End While
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
Private Function CreateSpotRegistration(nLayerIdReg As Integer, ptP As Point3d, nIndexSpot As Integer) As Boolean
|
||||
' creo uno specifico layer per ogni spot (definito da una croce inscritta in un cerchio)
|
||||
Dim nIdSpotLay As Integer = EgtCreateGroup(nLayerIdReg)
|
||||
' Aggiungo cerchio
|
||||
Dim nCircId As Integer = EgtCreateCircle(nIdSpotLay, ptP, RADSPOT)
|
||||
' Inserisco una croce all'interno del
|
||||
Dim nLineVId As Integer = EgtCreateLinePVL(nIdSpotLay, ptP, Vector3d.Y_AX, RADSPOT)
|
||||
EgtExtendCurveStartByLen(nLineVId, RADSPOT)
|
||||
Dim nLineHId As Integer = EgtCreateLinePVL(nIdSpotLay, ptP, Vector3d.X_AX, RADSPOT)
|
||||
EgtExtendCurveStartByLen(nLineHId, RADSPOT)
|
||||
Dim nTextId As Integer = EgtCreateText(nIdSpotLay, ptP + New Vector3d(1, 1, 0), nIndexSpot.ToString, 10)
|
||||
' coloro gli oggetti appena creati ed assegno il nome
|
||||
Dim bOk As Boolean = EgtSetColor(nCircId, New Color3d(0, 0, 0))
|
||||
bOk = bOk And EgtSetName(nCircId, SPOTREG_ & "Arc")
|
||||
bOk = bOk And EgtSetColor(nLineVId, New Color3d(0, 0, 0))
|
||||
bOk = bOk And EgtSetName(nLineVId, SPOTREG_ & "LineV")
|
||||
bOk = bOk And EgtSetColor(nLineHId, New Color3d(0, 0, 0))
|
||||
bOk = bOk And EgtSetName(nLineHId, SPOTREG_ & "LineH")
|
||||
bOk = bOk And EgtSetColor(nTextId, New Color3d(255, 0, 0))
|
||||
bOk = bOk And EgtSetName(nTextId, SPOTREG_ & "Text")
|
||||
' assegno il nome del gruppo corrente
|
||||
bOk = bOk And EgtSetName(nIdSpotLay, SPOTREG_ & nIndexSpot.ToString)
|
||||
If bOk Then
|
||||
' Aggiorno il contatore degli Spot
|
||||
EgtSetInfo(nLayerIdReg, COUNTSPOT, nIndexSpot)
|
||||
m_nCountSpot = nIndexSpot
|
||||
End If
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Private Function RemoveSpotRegistration(nSpotRegId As Integer) As Boolean
|
||||
Dim nIndSpotReg As Integer = GetIndexGroupSpotReg(nSpotRegId)
|
||||
If Not EgtErase(nSpotRegId) Then Return False
|
||||
' faccio scorrere tutti i gruppi ed eventualmente li rinomino
|
||||
Dim n_IdSR As Integer = EgtGetFirstInGroup(m_nRegGroupId)
|
||||
m_nCountSpot -= 1
|
||||
EgtSetInfo(m_nRegGroupId, COUNTSPOT, m_nCountSpot)
|
||||
While n_IdSR <> GDB_ID.NULL
|
||||
Dim nCurrIndSpotReg As Integer = GetIndexGroupSpotReg(n_IdSR)
|
||||
If nCurrIndSpotReg > nIndSpotReg Then
|
||||
' Recupero il testo
|
||||
Dim nIdtext As Integer = EgtGetFirstNameInGroup(n_IdSR, SPOTREG_ & "Text")
|
||||
nCurrIndSpotReg -= 1
|
||||
EgtModifyText(nIdtext, nCurrIndSpotReg.ToString)
|
||||
EgtSetName(n_IdSR, SPOTREG_ & nCurrIndSpotReg.ToString)
|
||||
End If
|
||||
n_IdSR = EgtGetNext(n_IdSR)
|
||||
End While
|
||||
EgtDraw()
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function GetIndexGroupSpotReg(nSpotRegId As Integer) As Integer
|
||||
Dim sNameParent As String = String.Empty
|
||||
EgtGetName(nSpotRegId, sNameParent)
|
||||
' Ricavo l'indice dal nome
|
||||
Dim sItems As String() = sNameParent.Split("_"c)
|
||||
Dim nCurrIndex As Integer = 0
|
||||
If sItems.Count = 2 Then
|
||||
If Not Integer.TryParse(sItems(1), nCurrIndex) Then
|
||||
nCurrIndex = -1
|
||||
End If
|
||||
End If
|
||||
Return nCurrIndex
|
||||
End Function
|
||||
|
||||
Private Function ValidateCurrMachMatThick() As Boolean
|
||||
' Verifico che le lavorazioni correnti siano compatibili con materiale e spessore
|
||||
' Lama
|
||||
@@ -1945,32 +2157,32 @@ Public Class RawPartTabVM
|
||||
End Property
|
||||
|
||||
Public Sub SlabId(ByVal param As Object)
|
||||
Dim nRawId As Integer = EstCalc.GetRawId()
|
||||
Dim nRawId As Integer = EstCalc.GetRawId()
|
||||
If nRawId = GDB_ID.NULL Then Return
|
||||
' Finestra input dati
|
||||
Dim DlgSlabIdVM As New SlabIdWindowVM()
|
||||
Dim DlgSlabIdV As New SlabIdWindowV(Application.Current.MainWindow, DlgSlabIdVM)
|
||||
' Recupero eventuali vecchi dati della lastra
|
||||
Dim sBlockName As String = "" : Dim sSlabNbr As String = ""
|
||||
EgtGetInfo( nRawId, INFO_RAW_BLOCK, sBlockName)
|
||||
EgtGetInfo( nRawId, INFO_RAW_SLABNBR, sSlabNbr)
|
||||
DlgSlabIdVM.SetData( sBlockName, sSlabNbr)
|
||||
EgtGetInfo(nRawId, INFO_RAW_BLOCK, sBlockName)
|
||||
EgtGetInfo(nRawId, INFO_RAW_SLABNBR, sSlabNbr)
|
||||
DlgSlabIdVM.SetData(sBlockName, sSlabNbr)
|
||||
' Visualizzo finestra richiesta dati
|
||||
If DlgSlabIdV.ShowDialog() Then
|
||||
DlgSlabIdVM.GetData( sBlockName, sSlabNbr)
|
||||
DlgSlabIdVM.GetData(sBlockName, sSlabNbr)
|
||||
' Assegno info
|
||||
EgtSetInfo( nRawId, INFO_RAW_BLOCK, sBlockName)
|
||||
EgtSetInfo( nRawId, INFO_RAW_SLABNBR, sSlabNbr)
|
||||
EgtSetInfo(nRawId, INFO_RAW_BLOCK, sBlockName)
|
||||
EgtSetInfo(nRawId, INFO_RAW_SLABNBR, sSlabNbr)
|
||||
' Aggiorno nome lastra
|
||||
If Not String.IsNullOrWhiteSpace( sBlockName) And Not String.IsNullOrWhiteSpace( sBlockName) Then
|
||||
If Not String.IsNullOrWhiteSpace(sBlockName) And Not String.IsNullOrWhiteSpace(sBlockName) Then
|
||||
Dim sSlabName = sBlockName & "-" & sSlabNbr
|
||||
EstCalc.SetSlabName( sSlabName)
|
||||
EstCalc.SetSlabName(sSlabName)
|
||||
' notifico il MachGroup Corrente
|
||||
OmagOFFICEMap.refMachGroupPanelVM.SelectedMachGroup.NotifyPropertyChanged("MachGroupToolTip")
|
||||
End If
|
||||
' Cancello vecchio BarCode e se definito inserisco nuovo
|
||||
Dim sBarCode As String = sBlockName & " - " & sSlabNbr
|
||||
ShowBarCode( nRawId, sBarCode)
|
||||
ShowBarCode(nRawId, sBarCode)
|
||||
' Aggiorno visualizzazione
|
||||
EgtDraw()
|
||||
End If
|
||||
@@ -2141,7 +2353,7 @@ Public Class RawPartTabVM
|
||||
EstCalc.SetSlabHeight(m_dHeight)
|
||||
' Visualizzo eventuale codice
|
||||
Dim sBarCode As String = sBlockCode & " - " & sSlabCode
|
||||
ShowBarCode( EstCalc.GetRawId(), sBarCode)
|
||||
ShowBarCode(EstCalc.GetRawId(), sBarCode)
|
||||
' notifico il MachGroup Corrente
|
||||
OmagOFFICEMap.refMachGroupPanelVM.SelectedMachGroup.NotifyPropertyChanged("MachGroupToolTip")
|
||||
' Carico contorno
|
||||
@@ -2227,6 +2439,53 @@ Public Class RawPartTabVM
|
||||
m_dDragPar = -1
|
||||
Exit While
|
||||
End If
|
||||
' ---------- SELEZIONE SpotReg ----------
|
||||
ElseIf m_AddPointReg Then
|
||||
' Acquisisco punto da disegno
|
||||
EgtUnProjectPoint(e.Location, m_ptPrev)
|
||||
Dim ptRawMax As Point3d = GetRawPtMax()
|
||||
m_ptPrev.z = ptRawMax.z
|
||||
' Inserisco un nuovo punto registrazione
|
||||
CreateSpotRegistration(m_nRegGroupId, m_ptPrev, m_nCountSpot + 1)
|
||||
EgtDraw()
|
||||
' disattivo il comando di inserimento
|
||||
m_AddPointReg = False
|
||||
NotifyPropertyChanged("AddPointReg")
|
||||
Return
|
||||
ElseIf m_ModPointReg Then
|
||||
If sName.StartsWith(SPOTREG_) Then
|
||||
EgtDeselectAll()
|
||||
EgtResetMark(m_nCurrSpotRegId)
|
||||
' recupero recupero il centro della prima curva
|
||||
Dim nArcId As Integer = EgtGetFirstInGroup(nSelId)
|
||||
Dim nIdParent As Integer = EgtGetParent(nSelId)
|
||||
EgtSelectGroupObjs(nIdParent)
|
||||
EgtSetMark(nIdParent)
|
||||
EgtDraw()
|
||||
' Acquisisco punto da disegno
|
||||
EgtUnProjectPoint(e.Location, m_ptPrev)
|
||||
m_bDrag = True
|
||||
m_nDragEnt = nIdParent
|
||||
' Salvo l'Id del punto SpotReg da spostare
|
||||
m_nCurrSpotRegId = nIdParent
|
||||
' esco dal ciclo
|
||||
Return
|
||||
End If
|
||||
ElseIf m_RemovePointReg Then
|
||||
If sName.StartsWith(SPOTREG_) Then
|
||||
' recupero recupero il centro della prima curva
|
||||
Dim nArcId As Integer = EgtGetFirstInGroup(nSelId)
|
||||
Dim nIdParent As Integer = EgtGetParent(nSelId)
|
||||
RemoveSpotRegistration(nIdParent)
|
||||
EgtDraw()
|
||||
EgtErase(nIdParent)
|
||||
m_RemovePointReg = False
|
||||
NotifyPropertyChanged("RemovePointReg")
|
||||
|
||||
' esco dal ciclo
|
||||
Return
|
||||
End If
|
||||
' ---------- SELEZIONE SpotReg ----------
|
||||
ElseIf sName = NAME_RAW_SOLID Then
|
||||
m_bDrag = EgtUnProjectPoint(e.Location, m_ptPrev)
|
||||
m_nDragEnt = -1
|
||||
@@ -2377,6 +2636,8 @@ Public Class RawPartTabVM
|
||||
' Eseguo modifica
|
||||
If m_PhotoWithMouse Then
|
||||
ModifyPhoto(ptCurr)
|
||||
ElseIf m_ModPointReg Then
|
||||
MoveSpotRegistration(m_nDragEnt, ptCurr - m_ptPrev)
|
||||
Else
|
||||
Select Case GetRawMode()
|
||||
Case RAWMODE.RECTANGLE
|
||||
|
||||
@@ -137,10 +137,10 @@ Public Class SimulTabVM
|
||||
MyEstim.Estimation_IsEnabled = False
|
||||
End If
|
||||
' Impostazioni box stime
|
||||
NotifyPropertyChanged("Time")
|
||||
NotifyPropertyChanged("CutLen")
|
||||
NotifyPropertyChanged("NetArea")
|
||||
NotifyPropertyChanged("Usage")
|
||||
MyEstim.NotifyPropertyChanged("Time")
|
||||
MyEstim.NotifyPropertyChanged("CutLen")
|
||||
MyEstim.NotifyPropertyChanged("NetArea")
|
||||
MyEstim.NotifyPropertyChanged("Usage")
|
||||
' Nascondo eventuali pezzi in parcheggio
|
||||
HideParkedParts()
|
||||
' Nascondo eventuale contorno da foto
|
||||
|
||||
Reference in New Issue
Block a user