Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ecaedb0ed2 | |||
| 9a0f478529 | |||
| 70761248ff | |||
| ef59f66c67 | |||
| 14bf36ed68 | |||
| 06bac914ef | |||
| 1b956580c9 | |||
| 625f12a1e8 | |||
| 84dffd8966 |
@@ -587,7 +587,7 @@ Public Class BTLPartM
|
|||||||
Public ReadOnly Property nINPROD As Integer
|
Public ReadOnly Property nINPROD As Integer
|
||||||
Get
|
Get
|
||||||
Dim INPROD As Integer = 0
|
Dim INPROD As Integer = 0
|
||||||
EgtDuploCount(m_nPartId, INPROD)
|
EgtDuploInRawCount(m_nPartId, INPROD)
|
||||||
Return INPROD
|
Return INPROD
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|||||||
@@ -144,6 +144,8 @@
|
|||||||
Public Const BTL_PRT_INVERTED As String = "INVERTED"
|
Public Const BTL_PRT_INVERTED As String = "INVERTED"
|
||||||
Public Const BTL_PRT_MATERIAL As String = "MATERIAL"
|
Public Const BTL_PRT_MATERIAL As String = "MATERIAL"
|
||||||
Public Const BTL_PRT_VOLUME As String = "VOLUME"
|
Public Const BTL_PRT_VOLUME As String = "VOLUME"
|
||||||
|
Public Const BTL_PRT_ROT As String = "ROT"
|
||||||
|
Public Const BTL_PRT_FLIP As String = "FLIP"
|
||||||
' parametri pezzo
|
' parametri pezzo
|
||||||
Public Const BTL_PRT_SINGLEMEMBERNUM = "SINGLEMEMBERNUMBER"
|
Public Const BTL_PRT_SINGLEMEMBERNUM = "SINGLEMEMBERNUMBER"
|
||||||
Public Const BTL_PRT_ASSEMBLYNUM = "ASSEMBLYNUMBER"
|
Public Const BTL_PRT_ASSEMBLYNUM = "ASSEMBLYNUMBER"
|
||||||
|
|||||||
@@ -168,4 +168,7 @@ Public Module ConstIni
|
|||||||
Public Const K_EXTERNALFILEPATH As String = "ExternalFilePath"
|
Public Const K_EXTERNALFILEPATH As String = "ExternalFilePath"
|
||||||
Public Const K_REMINDERFREQUENCY As String = "ReminderFrequency"
|
Public Const K_REMINDERFREQUENCY As String = "ReminderFrequency"
|
||||||
|
|
||||||
|
Public Const S_SPECIAL As String = "Special"
|
||||||
|
Public Const K_SPECIALENABLE As String = "SpecialEnable"
|
||||||
|
|
||||||
End Module
|
End Module
|
||||||
|
|||||||
@@ -482,6 +482,8 @@ Public Class PartM
|
|||||||
EgtGetInfo(nPartId, BTL_PRT_GROUP, NewPartM.m_sGROUP)
|
EgtGetInfo(nPartId, BTL_PRT_GROUP, NewPartM.m_sGROUP)
|
||||||
EgtGetInfo(nPartId, BTL_PRT_STOREY, NewPartM.m_sSTOREY)
|
EgtGetInfo(nPartId, BTL_PRT_STOREY, NewPartM.m_sSTOREY)
|
||||||
EgtGetInfo(nPartId, BTL_PRT_MATERIAL, NewPartM.m_sMATERIAL)
|
EgtGetInfo(nPartId, BTL_PRT_MATERIAL, NewPartM.m_sMATERIAL)
|
||||||
|
EgtGetInfo(nPartId, BTL_PRT_ROT, NewPartM.m_dROT)
|
||||||
|
EgtGetInfo(nPartId, BTL_PRT_FLIP, NewPartM.m_nFLIP)
|
||||||
Dim nTemp As Integer = 0
|
Dim nTemp As Integer = 0
|
||||||
If Not EgtGetInfo(nPartId, BTL_PRT_ROTATED, nTemp) Then
|
If Not EgtGetInfo(nPartId, BTL_PRT_ROTATED, nTemp) Then
|
||||||
nTemp = 0
|
nTemp = 0
|
||||||
|
|||||||
@@ -35,5 +35,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.5.8.1")>
|
<Assembly: AssemblyVersion("2.5.12.2")>
|
||||||
<Assembly: AssemblyFileVersion("2.5.8.1")>
|
<Assembly: AssemblyFileVersion("2.5.12.2")>
|
||||||
|
|||||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
|||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("2.5.8.1")]
|
[assembly: AssemblyVersion("2.5.12.2")]
|
||||||
[assembly: AssemblyFileVersion("2.5.8.1")]
|
[assembly: AssemblyFileVersion("2.5.12.2")]
|
||||||
|
|||||||
@@ -219,6 +219,7 @@ Friend Class MyComparer
|
|||||||
Return 0
|
Return 0
|
||||||
End If
|
End If
|
||||||
End Select
|
End Select
|
||||||
|
Return 0
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -437,6 +437,10 @@ Public Class LeftPanelVM
|
|||||||
New OPState("Reset", OPStates.End),
|
New OPState("Reset", OPStates.End),
|
||||||
New OPState("Unspecified", OPStates.Unspecified)
|
New OPState("Unspecified", OPStates.Unspecified)
|
||||||
}
|
}
|
||||||
|
Case Else
|
||||||
|
m_OPStateList = New List(Of OPState) From {
|
||||||
|
New OPState("Unspecified", OPStates.Unspecified)
|
||||||
|
}
|
||||||
End Select
|
End Select
|
||||||
' seleziono in partenza unspecified
|
' seleziono in partenza unspecified
|
||||||
Dim UnspecifiedState As OPState = m_OPStateList.FirstOrDefault(Function(x) x.Id = OPStates.Unspecified)
|
Dim UnspecifiedState As OPState = m_OPStateList.FirstOrDefault(Function(x) x.Id = OPStates.Unspecified)
|
||||||
|
|||||||
@@ -317,6 +317,7 @@ Public Class MyMachGroupVM
|
|||||||
' segno pezzo da produrre
|
' segno pezzo da produrre
|
||||||
MachGroup.m_bToBeProduced = True
|
MachGroup.m_bToBeProduced = True
|
||||||
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.Production_Background))
|
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.Production_Background))
|
||||||
|
Map.refSupervisorMachGroupPanelVM.MachGroupVMList_View.Refresh()
|
||||||
|
|
||||||
' sposto MachGroup in lista come ultimo dei pronti da produrre
|
' sposto MachGroup in lista come ultimo dei pronti da produrre
|
||||||
Dim OldIndex As Integer = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.IndexOf(MachGroup)
|
Dim OldIndex As Integer = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.IndexOf(MachGroup)
|
||||||
|
|||||||
@@ -248,8 +248,8 @@ Public Class MainWindowM
|
|||||||
EgtSetLockId( sLockId)
|
EgtSetLockId( sLockId)
|
||||||
End If
|
End If
|
||||||
' Recupero livello e opzioni della chiave
|
' Recupero livello e opzioni della chiave
|
||||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2508, 1, m_nKeyLevel) And
|
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2512, 1, m_nKeyLevel) And
|
||||||
EgtGetKeyOptions(5327, 2508, 1, m_nKeyOptions)
|
EgtGetKeyOptions(5327, 2512, 1, m_nKeyOptions)
|
||||||
' Inizializzazione generale di EgtInterface
|
' Inizializzazione generale di EgtInterface
|
||||||
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
||||||
m_sLogFile = m_sTempDir & "\" & SUPGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
m_sLogFile = m_sTempDir & "\" & SUPGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||||
|
|||||||
@@ -70,5 +70,5 @@ Imports System.Windows
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.5.8.1")>
|
<Assembly: AssemblyVersion("2.5.12.2")>
|
||||||
<Assembly: AssemblyFileVersion("2.5.8.1")>
|
<Assembly: AssemblyFileVersion("2.5.12.2")>
|
||||||
|
|||||||
@@ -93,10 +93,14 @@ Public Class BTLPartVM
|
|||||||
Dim LSTValues() As String = sSwapItem.Split(","c)
|
Dim LSTValues() As String = sSwapItem.Split(","c)
|
||||||
If Not IsNothing(LSTValues(LSTValues.Count - 1)) AndAlso Integer.TryParse(LSTValues(LSTValues.Count - 1), nSwapItem) AndAlso nSwapItem > 0 Then
|
If Not IsNothing(LSTValues(LSTValues.Count - 1)) AndAlso Integer.TryParse(LSTValues(LSTValues.Count - 1), nSwapItem) AndAlso nSwapItem > 0 Then
|
||||||
Dim nMachgroupId As Integer = EgtGetParent(EgtGetParent(EgtGetParent(nSwapItem)))
|
Dim nMachgroupId As Integer = EgtGetParent(EgtGetParent(EgtGetParent(nSwapItem)))
|
||||||
Dim MachGroupModel = DbControllers.m_MachGroupController.FindByMachGroupId(Map.refProjManagerVM.CurrProj.nProdId, nMachgroupId)
|
If nMachgroupId = GDB_ID.NULL Then
|
||||||
If MachGroupModel.State > ItemState.ND Then
|
EgtOutLog("Trovato Duplo Ghost")
|
||||||
bDuploInProduction = True
|
Else
|
||||||
Exit For
|
Dim MachGroupModel = DbControllers.m_MachGroupController.FindByMachGroupId(Map.refProjManagerVM.CurrProj.nProdId, nMachgroupId)
|
||||||
|
If MachGroupModel.State > ItemState.ND Then
|
||||||
|
bDuploInProduction = True
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|||||||
@@ -398,7 +398,8 @@ Public Class BTLStructureVM
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
SelBTLParts.AddToList(SelBTLPart)
|
If Not IsNothing(SelBTLPart) Then SelBTLParts.AddToList(SelBTLPart)
|
||||||
|
|
||||||
If bByOptim Then
|
If bByOptim Then
|
||||||
m_bOnlySelectItem = False
|
m_bOnlySelectItem = False
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -47,6 +47,7 @@
|
|||||||
Visibility="{Binding ChooseMachineBtn_Visibility}">
|
Visibility="{Binding ChooseMachineBtn_Visibility}">
|
||||||
<Image Source="/Resources/CALCPanel/ChooseMachine.png" Stretch="Uniform"/>
|
<Image Source="/Resources/CALCPanel/ChooseMachine.png" Stretch="Uniform"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Grid Margin="0,0,5,0" Visibility="{Binding ChooseMachine_Visibility}">
|
<Grid Margin="0,0,5,0" Visibility="{Binding ChooseMachine_Visibility}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
|||||||
@@ -338,6 +338,10 @@
|
|||||||
<DependentUpon>SetUpV.xaml</DependentUpon>
|
<DependentUpon>SetUpV.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="SetUp\SetUpVM.vb" />
|
<Compile Include="SetUp\SetUpVM.vb" />
|
||||||
|
<Compile Include="SpecialPanel\SpecialPanelV.xaml.vb">
|
||||||
|
<DependentUpon>SpecialPanelV.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="SpecialPanel\SpecialPanelVM.vb" />
|
||||||
<Compile Include="StatisticsTimePanel\StatisticsTimePanelV.xaml.vb">
|
<Compile Include="StatisticsTimePanel\StatisticsTimePanelV.xaml.vb">
|
||||||
<DependentUpon>StatisticsTimePanelV.xaml</DependentUpon>
|
<DependentUpon>StatisticsTimePanelV.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -544,6 +548,10 @@
|
|||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Page>
|
</Page>
|
||||||
|
<Page Include="SpecialPanel\SpecialPanelV.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>XamlIntelliSenseFileGenerator</Generator>
|
||||||
|
</Page>
|
||||||
<Page Include="StatisticsTimePanel\StatisticsTimePanelV.xaml">
|
<Page Include="StatisticsTimePanel\StatisticsTimePanelV.xaml">
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
|
|||||||
@@ -794,6 +794,12 @@ Public Class LeftPanelVM
|
|||||||
EgtSetMode(nDuploId, GDB_MD.STD)
|
EgtSetMode(nDuploId, GDB_MD.STD)
|
||||||
nPartDuploIdList.Add(nDuploId)
|
nPartDuploIdList.Add(nDuploId)
|
||||||
Next
|
Next
|
||||||
|
'' salvo lista info
|
||||||
|
Dim saveInfoBeamList As MyMachGroupVM = BeamMachGroup
|
||||||
|
'Dim saveInfoBeamList As New List(Of PartVM)
|
||||||
|
'For Each info As PartVM In BeamMachGroup.PartVMList
|
||||||
|
' saveInfoBeamList.Add(info)
|
||||||
|
'Next
|
||||||
' calcolo posizione nuovo pezzo per rispettare ordine lunghezze
|
' calcolo posizione nuovo pezzo per rispettare ordine lunghezze
|
||||||
Dim nInsertIndex As Integer
|
Dim nInsertIndex As Integer
|
||||||
' scrivo dati di tutti i pezzi
|
' scrivo dati di tutti i pezzi
|
||||||
@@ -852,7 +858,38 @@ Public Class LeftPanelVM
|
|||||||
End While
|
End While
|
||||||
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
|
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
|
||||||
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||||
Return False
|
EgtOutLog("Fallito inserimento grezzo nella barra in AddPartToBeam")
|
||||||
|
|
||||||
|
' elimino duplo
|
||||||
|
For Each nDuploId In nPartDuploIdList
|
||||||
|
EgtErase(nDuploId)
|
||||||
|
EgtRemoveRawPart(nDuploId)
|
||||||
|
Next
|
||||||
|
|
||||||
|
' rimuovo info duplo e aggiorno info grezzo
|
||||||
|
nPartIndex = 0
|
||||||
|
For nIndex = 0 To BeamMachGroup.PartVMList.Count - 1
|
||||||
|
If nPartIndex < nPartDuploIdList.Count() AndAlso BeamMachGroup.PartVMList(nIndex).dL > PartsToAdd(0).dL Then
|
||||||
|
EgtRemoveInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + 1)
|
||||||
|
nPartIndex += 1
|
||||||
|
ElseIf nPartIndex < nPartDuploIdList.Count() AndAlso BeamMachGroup.PartVMList(nIndex).dL < PartsToAdd(0).dL Then
|
||||||
|
EgtRemoveInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + 1)
|
||||||
|
nPartIndex += 1
|
||||||
|
End If
|
||||||
|
EgtRemoveInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + nPartIndex + 1)
|
||||||
|
EgtSetInfo(BeamMachGroup.Id, MGR_RPT_PART & nIndex + 1, BeamMachGroup.PartVMList(nIndex).nPartId & "," & DoubleToString(BeamMachGroup.PartVMList(nIndex).dPOSX, 3))
|
||||||
|
Next
|
||||||
|
|
||||||
|
' elimino vecchio grezzo ed eseguo script creazione nuovo
|
||||||
|
nRawId = EgtGetFirstRawPart()
|
||||||
|
While nRawId <> GDB_ID.NULL
|
||||||
|
EgtRemoveRawPart(nRawId)
|
||||||
|
nRawId = EgtGetFirstRawPart()
|
||||||
|
End While
|
||||||
|
|
||||||
|
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||||
|
EgtOutLog("Fallita esecuzione ExecBeam. ERRORE")
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
For nDuploIndex = 0 To PartsToAdd.Count - 1
|
For nDuploIndex = 0 To PartsToAdd.Count - 1
|
||||||
EgtSetInfo(nPartDuploIdList(nDuploIndex), MGR_PRT_ROT, PartsToAdd(nDuploIndex).nROTATED)
|
EgtSetInfo(nPartDuploIdList(nDuploIndex), MGR_PRT_ROT, PartsToAdd(nDuploIndex).nROTATED)
|
||||||
@@ -861,7 +898,11 @@ Public Class LeftPanelVM
|
|||||||
' aggiorno lista pezzi
|
' aggiorno lista pezzi
|
||||||
BeamMachGroup.MyMachGroupM.RefreshPartList()
|
BeamMachGroup.MyMachGroupM.RefreshPartList()
|
||||||
' seleziono pezzo aggiunto
|
' seleziono pezzo aggiunto
|
||||||
If BeamMachGroup.PartVMList.Count > nInsertIndex Then BeamMachGroup.SelPart = BeamMachGroup.PartVMList(nInsertIndex)
|
If BeamMachGroup.PartVMList.Count > nInsertIndex Then
|
||||||
|
BeamMachGroup.SelPart = BeamMachGroup.PartVMList(nInsertIndex)
|
||||||
|
Else
|
||||||
|
BeamMachGroup.SelPart = BeamMachGroup.PartVMList(nInsertIndex - 1)
|
||||||
|
End If
|
||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|||||||
@@ -172,13 +172,17 @@ Public Class MyMachGroupPanelVM
|
|||||||
' elimino pezzo copia
|
' elimino pezzo copia
|
||||||
EgtRemovePartFromRawPart(nDuploId)
|
EgtRemovePartFromRawPart(nDuploId)
|
||||||
EgtErase(nDuploId)
|
EgtErase(nDuploId)
|
||||||
'' recupero gruppo di lavorazione e trave dell'interfaccia
|
' recupero gruppo di lavorazione e trave dell'interfaccia
|
||||||
Dim BeamMachGroup As MyMachGroupVM = MachGroupVMList.FirstOrDefault(Function(x) x.Id = nMachGroupId)
|
Dim BeamMachGroup As MyMachGroupVM = MachGroupVMList.FirstOrDefault(Function(x) x.Id = nMachGroupId)
|
||||||
If Not IsNothing(BeamMachGroup) Then
|
If Not IsNothing(BeamMachGroup) Then
|
||||||
Dim Beam As PartVM = BeamMachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nDuploId)
|
Dim Beam As PartVM = BeamMachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nDuploId)
|
||||||
EgtSetCurrMachGroup(BeamMachGroup.Id)
|
EgtSetCurrMachGroup(BeamMachGroup.Id)
|
||||||
Beam.DeletePart()
|
Beam.DeletePart()
|
||||||
End If
|
End If
|
||||||
|
' reset necessario per poter ottenere nMachGroupId corretto
|
||||||
|
EgtResetCurrMachGroup()
|
||||||
|
' aggiorno dati utilizzo barra
|
||||||
|
BeamMachGroup.UpdateUsage()
|
||||||
Next
|
Next
|
||||||
' aggiorno quantita' in prod
|
' aggiorno quantita' in prod
|
||||||
Dim BTLPart As BTLPartVM = CALCPanelVM.GetBTLPartVMFromBTLPartId(nPartId)
|
Dim BTLPart As BTLPartVM = CALCPanelVM.GetBTLPartVMFromBTLPartId(nPartId)
|
||||||
|
|||||||
@@ -201,19 +201,47 @@ Public Class PartVM
|
|||||||
' recupero box del layer box
|
' recupero box del layer box
|
||||||
Dim b3Box As New BBox3d
|
Dim b3Box As New BBox3d
|
||||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||||
If EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180, GDB_RT.GLOB) Then
|
Dim vtAxes As Vector3d
|
||||||
|
' se travi ruoto attorno all'asse Z
|
||||||
|
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.BEAM Then
|
||||||
|
vtAxes = Vector3d.Z_AX
|
||||||
|
' se pareti ruoto attorno all'asse X
|
||||||
|
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.WALL Then
|
||||||
|
vtAxes = Vector3d.X_AX
|
||||||
|
End If
|
||||||
|
If EgtRotate(nPartId, b3Box.Center, vtAxes, 180, GDB_RT.GLOB) Then
|
||||||
m_PartM.nFLIP = If(value, 180, 0)
|
m_PartM.nFLIP = If(value, 180, 0)
|
||||||
EgtSetInfo(nPartId, MGR_PRT_FLIP, If(value, 180, 0))
|
EgtSetInfo(nPartId, MGR_PRT_FLIP, If(value, 180, 0))
|
||||||
Else
|
Else
|
||||||
NotifyPropertyChanged(NameOf(bFLIP))
|
NotifyPropertyChanged(NameOf(bFLIP))
|
||||||
End If
|
End If
|
||||||
' recupero box del pezzo
|
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
|
||||||
Dim b3Part As New BBox3d
|
' recupero box del pezzo
|
||||||
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, b3Part)
|
Dim b3Part As New BBox3d
|
||||||
' calcolo distanza tra i box
|
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, b3Part)
|
||||||
Dim vtDeltaBox As Vector3d = b3Box.Min - b3Part.Min
|
' calcolo distanza tra i box
|
||||||
' reinserisco il pezzo nel grezzo
|
Dim vtDeltaBox As Vector3d = b3Box.Min - b3Part.Min
|
||||||
EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId)
|
' reinserisco il pezzo nel grezzo
|
||||||
|
EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId)
|
||||||
|
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
|
||||||
|
' elimino vecchio grezzo ed eseguo script creazione nuovo
|
||||||
|
DeleteOldRaw()
|
||||||
|
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
|
||||||
|
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||||
|
EgtOutLog("Fallita creazione barra nell'ExecBeam in bFlip")
|
||||||
|
' elimino vecchio grezzo ed eseguo script creazione nuovo
|
||||||
|
DeleteOldRaw()
|
||||||
|
If EgtRotate(nPartId, b3Box.Center, vtAxes, 180, GDB_RT.GLOB) Then
|
||||||
|
m_PartM.nFLIP = 180
|
||||||
|
EgtSetInfo(nPartId, MGR_PRT_FLIP, 180)
|
||||||
|
Else
|
||||||
|
NotifyPropertyChanged(NameOf(m_PartM.nFLIP))
|
||||||
|
End If
|
||||||
|
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||||
|
EgtOutLog("Fallita esecuzione ExecBeam. ERRORE")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
' lo riseleziono
|
' lo riseleziono
|
||||||
EgtSelectObj(nPartId)
|
EgtSelectObj(nPartId)
|
||||||
' resetto validazione del pezzo
|
' resetto validazione del pezzo
|
||||||
@@ -289,66 +317,140 @@ Public Class PartVM
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub Rotate(IsPositive As Boolean)
|
Private Sub Rotate(IsPositive As Boolean)
|
||||||
' salvo posizione
|
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
|
||||||
Dim dTempPosX As Double = m_PartM.dPOSX
|
' elimino vecchio grezzo ed eseguo script creazione nuovo
|
||||||
Dim dTempPosY As Double = m_PartM.dPOSY
|
DeleteOldRaw()
|
||||||
' tolgo il pezzo dal grezzo
|
' recupero layer del box
|
||||||
EgtRemovePartFromRawPart(nPartId)
|
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||||
' recupero layer del box
|
' recupero box del layer box
|
||||||
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
Dim b3Box As New BBox3d
|
||||||
' recupero box del layer box
|
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||||
Dim b3Box As New BBox3d
|
' se invertito lo reinverto
|
||||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.Z_AX, 180, GDB_RT.GLOB)
|
||||||
' se invertito lo reinverto
|
' eseguo rotazione attorno asse X
|
||||||
Dim bFliped As Boolean = bFLIP
|
Dim dRot As Integer = 0
|
||||||
If bFliped Then EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180, GDB_RT.GLOB)
|
If dW <> dH Then
|
||||||
Dim dAng As Double = If(IsPositive, 90, -90)
|
dRot = If(IsPositive, 180, -180)
|
||||||
' eseguo rotazione
|
ElseIf dW = dH Then
|
||||||
Dim bOk As Boolean = EgtRotate(nPartId, b3Box.Center, -Vector3d.Z_AX, dAng, GDB_RT.GLOB)
|
dRot = If(IsPositive, 90, -90)
|
||||||
If bOk Then
|
|
||||||
Dim TempRot = m_PartM.dROT
|
|
||||||
TempRot += dAng
|
|
||||||
If TempRot >= 360 Then
|
|
||||||
TempRot -= 360
|
|
||||||
ElseIf TempRot < 0 Then
|
|
||||||
TempRot += 360
|
|
||||||
End If
|
End If
|
||||||
m_PartM.dROT = TempRot
|
Dim bOk As Boolean = EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, dRot, GDB_RT.GLOB)
|
||||||
EgtSetInfo(nPartId, MGR_PRT_ROT, m_PartM.dROT)
|
If bOk Then
|
||||||
End If
|
Dim TempRot = m_PartM.dROT
|
||||||
' ripristino eventuale inversione
|
TempRot += dRot
|
||||||
If bFliped Then EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180, GDB_RT.GLOB)
|
If TempRot >= 360 Then
|
||||||
' recupero box del pezzo
|
TempRot -= 360
|
||||||
Dim b3Part As New BBox3d
|
ElseIf TempRot < 0 Then
|
||||||
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, b3Part)
|
TempRot += 360
|
||||||
'aggiorno box del box con rotazione
|
End If
|
||||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
m_PartM.dROT = TempRot
|
||||||
' calcolo distanza tra i box
|
EgtSetInfo(nPartId, MGR_PRT_ROT, m_PartM.dROT)
|
||||||
Dim vtDeltaBox As Vector3d = b3Box.Min - b3Part.Min ' Vector3d.NULL
|
End If
|
||||||
' calcolo posizione rispetto al riferimento
|
' ripristino eventuale inversione
|
||||||
Select Case Map.refProjectVM.BTLStructureVM.nPROJTYPE
|
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.Z_AX, 180, GDB_RT.GLOB)
|
||||||
Case BWType.WALL
|
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
|
||||||
' se parete, valuto angolo di posizionamento
|
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||||
Select Case CurrentMachine.NestingCorner
|
EgtOutLog("Fallita creazione barra nell'ExecBeam in Rotate")
|
||||||
Case MCH_CR.TL
|
' elimino vecchio grezzo ed eseguo script creazione nuovo
|
||||||
'vtDeltaBox = New Vector3d(b3Box.Min.x - b3Part.Min.x, b3Box.Max.y - b3Part.Max.y, 0)
|
DeleteOldRaw()
|
||||||
dTempPosY = dTempPosY - dW + dL
|
' annullo Flip
|
||||||
Case MCH_CR.BL
|
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.Z_AX, 180, GDB_RT.GLOB)
|
||||||
|
' ripristino rotazione
|
||||||
|
Dim dRotation As Integer = 0
|
||||||
|
If dW <> dH Then
|
||||||
|
dRotation = m_PartM.dROT + dRot
|
||||||
|
m_PartM.dROT = dRotation
|
||||||
|
If dRotation >= 360 Then
|
||||||
|
dRotation = dRot
|
||||||
|
m_PartM.dROT = 0
|
||||||
|
End If
|
||||||
|
ElseIf dW = dH Then
|
||||||
|
dRotation = m_PartM.dROT - dRot
|
||||||
|
If dRotation = 0 Then
|
||||||
|
dRotation = 3 * dRot
|
||||||
|
m_PartM.dROT = 0
|
||||||
|
ElseIf dRotation = 90 Then
|
||||||
|
dRotation += 2 * dRot
|
||||||
|
m_PartM.dROT = 90
|
||||||
|
ElseIf dRotation = 180 Then
|
||||||
|
dRotation += dRot
|
||||||
|
m_PartM.dROT = 180
|
||||||
|
ElseIf dRotation < 0 Then
|
||||||
|
dRotation += 4 * dRot
|
||||||
|
m_PartM.dROT = 270
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, dRotation, GDB_RT.GLOB)
|
||||||
|
' salvo informazione
|
||||||
|
EgtSetInfo(nPartId, MGR_PRT_ROT, m_PartM.dROT)
|
||||||
|
' annullo Flip
|
||||||
|
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.Z_AX, 180, GDB_RT.GLOB)
|
||||||
|
If Not ExecBeam(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||||
|
EgtOutLog("Fallita esecuzione ExecBeam. ERRORE")
|
||||||
|
End If
|
||||||
|
NotifyPropertyChanged(NameOf(m_PartM.dROT))
|
||||||
|
End If
|
||||||
|
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
|
||||||
|
' salvo posizione
|
||||||
|
Dim dTempPosX As Double = m_PartM.dPOSX
|
||||||
|
Dim dTempPosY As Double = m_PartM.dPOSY
|
||||||
|
' tolgo il pezzo dal grezzo
|
||||||
|
EgtRemovePartFromRawPart(nPartId)
|
||||||
|
' recupero layer del box
|
||||||
|
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||||
|
' recupero box del layer box
|
||||||
|
Dim b3Box As New BBox3d
|
||||||
|
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||||
|
' se invertito lo reinverto
|
||||||
|
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180, GDB_RT.GLOB)
|
||||||
|
Dim dAng As Double = If(IsPositive, 90, -90)
|
||||||
|
' eseguo rotazione
|
||||||
|
Dim bOk As Boolean = EgtRotate(nPartId, b3Box.Center, -Vector3d.Z_AX, dAng, GDB_RT.GLOB)
|
||||||
|
If bOk Then
|
||||||
|
Dim TempRot = m_PartM.dROT
|
||||||
|
TempRot += dAng
|
||||||
|
If TempRot >= 360 Then
|
||||||
|
TempRot -= 360
|
||||||
|
ElseIf TempRot < 0 Then
|
||||||
|
TempRot += 360
|
||||||
|
End If
|
||||||
|
m_PartM.dROT = TempRot
|
||||||
|
EgtSetInfo(nPartId, MGR_PRT_ROT, m_PartM.dROT)
|
||||||
|
End If
|
||||||
|
' ripristino eventuale inversione
|
||||||
|
If bFLIP Then EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180, GDB_RT.GLOB)
|
||||||
|
' recupero box del pezzo
|
||||||
|
Dim b3Part As New BBox3d
|
||||||
|
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, b3Part)
|
||||||
|
'aggiorno box del box con rotazione
|
||||||
|
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||||
|
' calcolo distanza tra i box
|
||||||
|
Dim vtDeltaBox As Vector3d = b3Box.Min - b3Part.Min ' Vector3d.NULL
|
||||||
|
' calcolo posizione rispetto al riferimento
|
||||||
|
Select Case Map.refProjectVM.BTLStructureVM.nPROJTYPE
|
||||||
|
Case BWType.WALL
|
||||||
|
' se parete, valuto angolo di posizionamento
|
||||||
|
Select Case CurrentMachine.NestingCorner
|
||||||
|
Case MCH_CR.TL
|
||||||
|
'vtDeltaBox = New Vector3d(b3Box.Min.x - b3Part.Min.x, b3Box.Max.y - b3Part.Max.y, 0)
|
||||||
|
dTempPosY = dTempPosY - dW + dL
|
||||||
|
Case MCH_CR.BL
|
||||||
'vtDeltaBox = b3Box.Min - b3Part.Min
|
'vtDeltaBox = b3Box.Min - b3Part.Min
|
||||||
' non cambio posizioni
|
' non cambio posizioni
|
||||||
Case MCH_CR.TR
|
Case MCH_CR.TR
|
||||||
'vtDeltaBox = b3Box.Max - b3Part.Max
|
'vtDeltaBox = b3Box.Max - b3Part.Max
|
||||||
dTempPosX = dTempPosX - dL + dW
|
dTempPosX = dTempPosX - dL + dW
|
||||||
dTempPosY = dTempPosY - dW + dL
|
dTempPosY = dTempPosY - dW + dL
|
||||||
Case MCH_CR.BR
|
Case MCH_CR.BR
|
||||||
'vtDeltaBox = New Vector3d(b3Box.Max.x - b3Part.Max.x, b3Box.Min.y - b3Part.Min.y, 0)
|
'vtDeltaBox = New Vector3d(b3Box.Max.x - b3Part.Max.x, b3Box.Min.y - b3Part.Min.y, 0)
|
||||||
dTempPosX = dTempPosX - dL + dW
|
dTempPosX = dTempPosX - dL + dW
|
||||||
End Select
|
End Select
|
||||||
Case Else
|
Case Else
|
||||||
' non cambio nulla
|
' non cambio nulla
|
||||||
End Select
|
End Select
|
||||||
' reinserisco il pezzo nel grezzo
|
' reinserisco il pezzo nel grezzo
|
||||||
EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId)
|
EgtAddPartToRawPart(nPartId, New Point3d(dTempPosX - vtDeltaBox.x, dTempPosY - vtDeltaBox.y, 0), ParentMachGroupVM.MyMachGroupM.nRawPartId)
|
||||||
|
End If
|
||||||
' lo riseleziono
|
' lo riseleziono
|
||||||
EgtSelectObj(nPartId)
|
EgtSelectObj(nPartId)
|
||||||
' resetto validazione del pezzo
|
' resetto validazione del pezzo
|
||||||
@@ -356,6 +458,14 @@ Public Class PartVM
|
|||||||
NotifyPropertyChanged(NameOf(sROT))
|
NotifyPropertyChanged(NameOf(sROT))
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub DeleteOldRaw()
|
||||||
|
Dim nRawId As Integer = EgtGetFirstRawPart()
|
||||||
|
While nRawId <> GDB_ID.NULL
|
||||||
|
EgtRemoveRawPart(nRawId)
|
||||||
|
nRawId = EgtGetFirstRawPart()
|
||||||
|
End While
|
||||||
|
End Sub
|
||||||
|
|
||||||
Friend Sub SelectBTLPart()
|
Friend Sub SelectBTLPart()
|
||||||
' eseguo la selezione nella lista pezzi
|
' eseguo la selezione nella lista pezzi
|
||||||
Dim nBTLPartId As Integer = MyMachGroupPanelM.DuploGetOriginal(nPartId)
|
Dim nBTLPartId As Integer = MyMachGroupPanelM.DuploGetOriginal(nPartId)
|
||||||
|
|||||||
@@ -157,6 +157,13 @@ Public Class MainWindowM
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
Private m_bSpecialPanel As Boolean = False
|
||||||
|
Friend ReadOnly Property bSpecialPanel As Boolean
|
||||||
|
Get
|
||||||
|
Return m_bSpecialPanel
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
#End Region ' FIELDS
|
#End Region ' FIELDS
|
||||||
|
|
||||||
#Region "CONSTRUCTOR"
|
#Region "CONSTRUCTOR"
|
||||||
@@ -235,8 +242,8 @@ Public Class MainWindowM
|
|||||||
EgtSetLockId( sLockId)
|
EgtSetLockId( sLockId)
|
||||||
End If
|
End If
|
||||||
' Recupero livello e opzioni della chiave
|
' Recupero livello e opzioni della chiave
|
||||||
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2508, 1, m_nKeyLevel) And
|
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2512, 1, m_nKeyLevel) And
|
||||||
EgtGetKeyOptions(5327, 2508, 1, m_nKeyOptions)
|
EgtGetKeyOptions(5327, 2512, 1, m_nKeyOptions)
|
||||||
' Inizializzazione generale di EgtInterface
|
' Inizializzazione generale di EgtInterface
|
||||||
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
|
||||||
m_sLogFile = m_sTempDir & "\" & VWOPTGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
m_sLogFile = m_sTempDir & "\" & VWOPTGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
|
||||||
@@ -278,6 +285,8 @@ Public Class MainWindowM
|
|||||||
EgtSetUiUnits(GetMainPrivateProfileInt(S_SCENE, K_MMUNITS, 1) <> 0)
|
EgtSetUiUnits(GetMainPrivateProfileInt(S_SCENE, K_MMUNITS, 1) <> 0)
|
||||||
' Leggo e imposto livello utilizzatore
|
' Leggo e imposto livello utilizzatore
|
||||||
m_nUserLevel = Math.Min(m_nKeyLevel, GetMainPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1))
|
m_nUserLevel = Math.Min(m_nKeyLevel, GetMainPrivateProfileInt(S_GENERAL, K_USERLEVEL, 1))
|
||||||
|
' Recupero flag SpecialPanel
|
||||||
|
m_bSpecialPanel = GetMainPrivateProfileInt(S_SPECIAL, K_SPECIALENABLE, 0) = 1
|
||||||
' Imposto dir font Nfe e font default
|
' Imposto dir font Nfe e font default
|
||||||
Dim sNfeDir As String = String.Empty
|
Dim sNfeDir As String = String.Empty
|
||||||
GetMainPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir)
|
GetMainPrivateProfileString(S_GEOMDB, K_NFEFONTDIR, "", sNfeDir)
|
||||||
|
|||||||
@@ -70,5 +70,5 @@ Imports System.Windows
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.5.8.1")>
|
<Assembly: AssemblyVersion("2.5.12.2")>
|
||||||
<Assembly: AssemblyFileVersion("2.5.8.1")>
|
<Assembly: AssemblyFileVersion("2.5.12.2")>
|
||||||
|
|||||||
@@ -52,6 +52,8 @@
|
|||||||
<EgtBEAMWALL:ViewPanelV DataContext="{StaticResource ViewPanelVM}"/>
|
<EgtBEAMWALL:ViewPanelV DataContext="{StaticResource ViewPanelVM}"/>
|
||||||
<EgtBEAMWALL:InstrumentPanelV DataContext="{StaticResource InstrumentPanelVM}"/>
|
<EgtBEAMWALL:InstrumentPanelV DataContext="{StaticResource InstrumentPanelVM}"/>
|
||||||
<EgtBEAMWALL:CalcPanelV DataContext="{StaticResource CALCPanelVM}"/>
|
<EgtBEAMWALL:CalcPanelV DataContext="{StaticResource CALCPanelVM}"/>
|
||||||
|
<EgtBEAMWALL:SpecialPanelV DataContext="{StaticResource SpecialPanelVM}"
|
||||||
|
Visibility="{Binding DataContext.SpecialPanel_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
||||||
<EgtBEAMWALL:FreeContourManagerV DataContext="{StaticResource FreeContourManagerVM}"
|
<EgtBEAMWALL:FreeContourManagerV DataContext="{StaticResource FreeContourManagerVM}"
|
||||||
Visibility="{Binding DataContext.FreeContourManager_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
Visibility="{Binding DataContext.FreeContourManager_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
||||||
</WrapPanel>
|
</WrapPanel>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ Imports EgtBEAMWALL.Core
|
|||||||
Imports EgtWPFLib5
|
Imports EgtWPFLib5
|
||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
Imports System.Collections.ObjectModel
|
Imports System.Collections.ObjectModel
|
||||||
|
Imports EgtBEAMWALL.DataLayer.Controllers
|
||||||
|
|
||||||
Public Class ProjectVM
|
Public Class ProjectVM
|
||||||
Inherits VMBase
|
Inherits VMBase
|
||||||
@@ -11,6 +12,12 @@ Public Class ProjectVM
|
|||||||
|
|
||||||
Private m_Calc_Timer As New DispatcherTimer
|
Private m_Calc_Timer As New DispatcherTimer
|
||||||
|
|
||||||
|
Friend Event OnPreControllerExec(sFilePath As String)
|
||||||
|
Friend Event OnPostControllerExec()
|
||||||
|
|
||||||
|
' Flag per non salvare Script appena eseguito in elenco MruScript
|
||||||
|
Private m_bScriptInMru As Boolean = True
|
||||||
|
|
||||||
Private Property m_GridDims As New ObservableCollection(Of GridDimension)
|
Private Property m_GridDims As New ObservableCollection(Of GridDimension)
|
||||||
Public Property GridDims As ObservableCollection(Of GridDimension)
|
Public Property GridDims As ObservableCollection(Of GridDimension)
|
||||||
Get
|
Get
|
||||||
@@ -189,6 +196,13 @@ Public Class ProjectVM
|
|||||||
NotifyPropertyChanged("FreeContourManager_Visibility")
|
NotifyPropertyChanged("FreeContourManager_Visibility")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Public ReadOnly Property SpecialPanel_Visibility As Visibility
|
||||||
|
Get
|
||||||
|
Return If(Map.refMainWindowVM.MainWindowM.bSpecialPanel AndAlso Map.refMainWindowVM.MainWindowM.nUserLevel > 5, Visibility.Visible, Visibility.Collapsed)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
|
||||||
Friend Sub NotifyAllPanelVisibility()
|
Friend Sub NotifyAllPanelVisibility()
|
||||||
NotifyPropertyChanged("LeftPanel_Visibility")
|
NotifyPropertyChanged("LeftPanel_Visibility")
|
||||||
NotifyPropertyChanged("TopPanel_Visibility")
|
NotifyPropertyChanged("TopPanel_Visibility")
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ Public Class MySceneHostVM
|
|||||||
PostInitializeScene()
|
PostInitializeScene()
|
||||||
' Imposto stato gestione mouse diretto della scena a nessuno
|
' Imposto stato gestione mouse diretto della scena a nessuno
|
||||||
MainScene.SetStatusNull()
|
MainScene.SetStatusNull()
|
||||||
|
' Imposto focus pulsante su false
|
||||||
|
MainScene.SetFocusOnMove(False)
|
||||||
' Recupero e imposto handle finestra principale
|
' Recupero e imposto handle finestra principale
|
||||||
Dim hMainWnd As IntPtr = New WindowInteropHelper(Application.Current.MainWindow).Handle
|
Dim hMainWnd As IntPtr = New WindowInteropHelper(Application.Current.MainWindow).Handle
|
||||||
EgtSetMainWindowHandle(hMainWnd)
|
EgtSetMainWindowHandle(hMainWnd)
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<EgtFloating:EgtFloatingPanel x:Class="SpecialPanelV"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5"
|
||||||
|
IsTopDockable="True" IsBottomDockable="False" IsLeftDockable="False"
|
||||||
|
IsRightDockable="False" Style="{StaticResource ToolBar_EgtFloatingPanel}">
|
||||||
|
|
||||||
|
<ItemsControl ItemsSource="{Binding ButtonList}">
|
||||||
|
<ItemsControl.ItemsPanel>
|
||||||
|
<ItemsPanelTemplate>
|
||||||
|
<StackPanel Orientation="Horizontal"/>
|
||||||
|
</ItemsPanelTemplate>
|
||||||
|
</ItemsControl.ItemsPanel>
|
||||||
|
<ItemsControl.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<Button ToolTip="{Binding ToolTip}" Command="{Binding LuaExecCommand}" Style="{StaticResource DrawPanelButton}"
|
||||||
|
Visibility="{Binding Btn_Visibility}" IsEnabled="{Binding Btn_IsEnabled}">
|
||||||
|
<Image Source="{Binding ImagePath}"/>
|
||||||
|
</Button>
|
||||||
|
</DataTemplate>
|
||||||
|
</ItemsControl.ItemTemplate>
|
||||||
|
</ItemsControl>
|
||||||
|
|
||||||
|
</EgtFloating:EgtFloatingPanel>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Public Class SpecialPanelV
|
||||||
|
|
||||||
|
End Class
|
||||||
@@ -0,0 +1,202 @@
|
|||||||
|
Imports System.IO
|
||||||
|
Imports EgtUILib
|
||||||
|
Imports EgtWPFLib5
|
||||||
|
Imports EgtBEAMWALL.Core
|
||||||
|
|
||||||
|
Public Class SpecialPanelVM
|
||||||
|
|
||||||
|
Private m_ButtonList As New List(Of ButtonItem)
|
||||||
|
Public ReadOnly Property ButtonList As List(Of ButtonItem)
|
||||||
|
Get
|
||||||
|
Return m_ButtonList
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Sub New()
|
||||||
|
' Creo riferimento a questa classe in Map
|
||||||
|
Map.SetRefSpecialPanelVM(Me)
|
||||||
|
' se attivo, inizializzo i bottoni leggendoli da file ini
|
||||||
|
If Map.refMainWindowVM.MainWindowM.bSpecialPanel Then
|
||||||
|
Dim BtnIndex As Integer = 1
|
||||||
|
Dim CurrBtn As ButtonItem = Nothing
|
||||||
|
While GetPrivateProfileButton(S_SPECIAL, K_BUTTON & BtnIndex, "", CurrBtn)
|
||||||
|
m_ButtonList.Add(CurrBtn)
|
||||||
|
BtnIndex += 1
|
||||||
|
End While
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
#Region "METHODS"
|
||||||
|
|
||||||
|
Public Function SetSpecialPanelButtonsVisibility(IsMachMode As Boolean) As Boolean
|
||||||
|
Dim bSpecialPanel_Visible As Boolean = False
|
||||||
|
For Each BtnItem In m_ButtonList
|
||||||
|
' verifico il valore di nDrawMachOrBoth del bottone e IsMachMode per rendere visibile o meno il bottone in ButtonList
|
||||||
|
Select Case BtnItem.nDrawMachOrBoth
|
||||||
|
Case 0 ' bottone nascosto
|
||||||
|
BtnItem.m_Btn_Visibility = Visibility.Collapsed
|
||||||
|
Case 1 ' bottone visibile solo in Draw
|
||||||
|
BtnItem.m_Btn_Visibility = If(Not IsMachMode, Visibility.Visible, Visibility.Collapsed)
|
||||||
|
Case 2 ' bottone visibile solo in Machining
|
||||||
|
BtnItem.m_Btn_Visibility = If(IsMachMode, Visibility.Visible, Visibility.Collapsed)
|
||||||
|
Case 3 ' bottone visibile sia in Draw che in Machining
|
||||||
|
BtnItem.m_Btn_Visibility = Visibility.Visible
|
||||||
|
End Select
|
||||||
|
' se anche uno solo è visibile anche lo SpecialPanel dovrà esserlo
|
||||||
|
If BtnItem.Btn_Visibility = Visibility.Visible Then bSpecialPanel_Visible = True
|
||||||
|
'BtnItem.OnPropertyChanged(NameOf(BtnItem.Btn_Visibility))
|
||||||
|
BtnItem.NotifyPropertyChanged(NameOf(BtnItem.Btn_Visibility))
|
||||||
|
Next
|
||||||
|
Return bSpecialPanel_Visible
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Friend Sub SpecialPanelIsEnabled(SpecialPanelBtn_IsEnabled As Boolean)
|
||||||
|
For Each BtnItem In m_ButtonList
|
||||||
|
BtnItem.m_Btn_IsEnabled = SpecialPanelBtn_IsEnabled
|
||||||
|
'BtnItem.OnPropertyChanged(NameOf(BtnItem.Btn_IsEnabled))
|
||||||
|
BtnItem.NotifyPropertyChanged(NameOf(BtnItem.Btn_IsEnabled))
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Function GetPrivateProfileButton(sSection As String, sKey As String, sBaseDir As String, ByRef ReadButtonItem As ButtonItem) As Boolean
|
||||||
|
ReadButtonItem = Nothing
|
||||||
|
Dim sVal As String = String.Empty
|
||||||
|
GetMainPrivateProfileString(sSection, sKey, "", sVal)
|
||||||
|
If String.IsNullOrWhiteSpace(sVal) Then Return False
|
||||||
|
Dim sItems() As String = sVal.Split(","c)
|
||||||
|
If sItems.Count() >= 1 Then
|
||||||
|
Dim sLuaPath As String = sItems(0)
|
||||||
|
Dim sImagePath As String = If(sItems.Count() >= 2, sItems(1), "")
|
||||||
|
Dim sToolTip As String = If(sItems.Count() >= 3, sItems(2), "")
|
||||||
|
Dim sDrawMachOrBoth As String = If(sItems.Count() >= 4 AndAlso Not String.IsNullOrWhiteSpace(sItems(3)), sItems(3), "1")
|
||||||
|
If Not String.IsNullOrWhiteSpace(sBaseDir) And Not String.IsNullOrWhiteSpace(sLuaPath) Then
|
||||||
|
If sLuaPath.Contains(".lua") Then sLuaPath = sBaseDir & "\" & sLuaPath
|
||||||
|
If Not String.IsNullOrWhiteSpace(sImagePath) Then sImagePath = sBaseDir & "\" & sImagePath
|
||||||
|
End If
|
||||||
|
ReadButtonItem = New ButtonItem(sSection, sLuaPath, sImagePath, sToolTip, sDrawMachOrBoth)
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
Return False
|
||||||
|
End Function
|
||||||
|
|
||||||
|
#End Region ' Methods
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class ButtonItem
|
||||||
|
Inherits VMBase
|
||||||
|
|
||||||
|
Friend Shared WithEvents m_ProjectVM As ProjectVM
|
||||||
|
Private Shared m_sCurrBarName As String
|
||||||
|
|
||||||
|
Private m_sBarName As String
|
||||||
|
Private m_sImagePath As String
|
||||||
|
Public ReadOnly Property ImagePath As String
|
||||||
|
Get
|
||||||
|
Return m_sImagePath
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Private m_sLuaCmdPath As String
|
||||||
|
Private m_sToolTip As String
|
||||||
|
Public ReadOnly Property ToolTip As String
|
||||||
|
Get
|
||||||
|
Return m_sToolTip
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Private m_nDrawMachOrBoth As Integer
|
||||||
|
Public ReadOnly Property nDrawMachOrBoth As Integer
|
||||||
|
Get
|
||||||
|
Return m_nDrawMachOrBoth
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Friend m_Btn_Visibility As Visibility
|
||||||
|
Public ReadOnly Property Btn_Visibility As Visibility
|
||||||
|
Get
|
||||||
|
Return m_Btn_Visibility
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Friend m_Btn_IsEnabled As Boolean = True
|
||||||
|
Public ReadOnly Property Btn_IsEnabled As Boolean
|
||||||
|
Get
|
||||||
|
Return m_Btn_IsEnabled
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
' Definizione comandi
|
||||||
|
Private m_cmdLuaExec As ICommand
|
||||||
|
|
||||||
|
Sub New( sBarName As String, sLuaCmdPath As String, sImagePath As String, sToolTip As String, sDrawMachOrBoth As String)
|
||||||
|
m_sBarName = sBarName
|
||||||
|
If File.Exists(sImagePath) Then
|
||||||
|
' per lasciare libere le immagini le copio (potrebbe fallire perchè bloccate da altro eseguibile)
|
||||||
|
Dim sNewPath As String = Path.Combine(Map.refMainWindowVM.MainWindowM.sResourcesRoot, sBarName & "_" & Path.GetFileName(sImagePath))
|
||||||
|
Try
|
||||||
|
File.Copy( sImagePath, sNewPath, True)
|
||||||
|
Catch ex As Exception
|
||||||
|
End Try
|
||||||
|
m_sImagePath = sNewPath
|
||||||
|
Else
|
||||||
|
m_sImagePath = Map.refMainWindowVM.MainWindowM.sResourcesRoot & "\" & sImagePath
|
||||||
|
End If
|
||||||
|
m_sLuaCmdPath = sLuaCmdPath
|
||||||
|
m_sToolTip = sToolTip
|
||||||
|
If Not Integer.TryParse(sDrawMachOrBoth, m_nDrawMachOrBoth) Then m_nDrawMachOrBoth = 0
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
#Region "COMMANDS"
|
||||||
|
|
||||||
|
#Region "LuaExecCommand"
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Returns a command that do New.
|
||||||
|
''' </summary>
|
||||||
|
Public ReadOnly Property LuaExecCommand As ICommand
|
||||||
|
Get
|
||||||
|
If m_cmdLuaExec Is Nothing Then
|
||||||
|
m_cmdLuaExec = New Command(AddressOf LuaExec)
|
||||||
|
End If
|
||||||
|
Return m_cmdLuaExec
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Execute the New. This method is invoked by the NewCommand.
|
||||||
|
''' </summary>
|
||||||
|
Public Sub LuaExec(ByVal param As Object)
|
||||||
|
If String.IsNullOrWhiteSpace(m_sLuaCmdPath) Then Return
|
||||||
|
If Not File.Exists(m_sLuaCmdPath) Then Return
|
||||||
|
If Not Path.GetExtension(m_sLuaCmdPath).ToLower = ".lua" Then Return
|
||||||
|
' Abilito eventi se comando lua termina con Beam\Process.lua
|
||||||
|
m_sCurrBarName = m_sBarName
|
||||||
|
Dim bRaiseEvent As Boolean = ( m_sBarName = "Beam" OrElse m_sBarName = "Wall")
|
||||||
|
' eseguo file Lua
|
||||||
|
EgtBEAMWALL.ViewerOptimizer.LuaExec.ExecScript(m_sLuaCmdPath, bRaiseEvent)
|
||||||
|
m_sCurrBarName = Nothing
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Private Shared Sub OnPreControllerExec(sFilePath As String) Handles m_ProjectVM.OnPreControllerExec
|
||||||
|
' If m_sCurrBarName = "Beam" Then
|
||||||
|
' EgtLuaCreateGlobTable("BEAM")
|
||||||
|
' EgtLuaSetGlobStringVar("BEAM.BASEDIR", IniFile.m_sBeamDirPath)
|
||||||
|
' If EgtGetUserLevel() >= 9 AndAlso GetPrivateProfileInt(S_LUA, K_BWSIM, 0) = 1 then EgtLuaSetGlobBoolVar("BEAM.BW", true)
|
||||||
|
' ElseIf m_sCurrBarName = "Wall" Then
|
||||||
|
' EgtLuaCreateGlobTable("WALL")
|
||||||
|
' EgtLuaSetGlobStringVar("WALL.BASEDIR", IniFile.m_sWallDirPath)
|
||||||
|
' If EgtGetUserLevel() >= 9 AndAlso GetPrivateProfileInt(S_LUA, K_BWSIM, 0) = 1 then EgtLuaSetGlobBoolVar("WALL.BW", true)
|
||||||
|
' End If
|
||||||
|
'End Sub
|
||||||
|
|
||||||
|
'Private Shared Sub OnPostControllerExec() Handles m_ProjectVM.OnPostControllerExec
|
||||||
|
' If m_sCurrBarName = "Beam" Then
|
||||||
|
' EgtLuaResetGlobVar("BEAM")
|
||||||
|
' ElseIf m_sCurrBarName = "Wall" Then
|
||||||
|
' EgtLuaResetGlobVar("WALL")
|
||||||
|
' End If
|
||||||
|
'End Sub
|
||||||
|
|
||||||
|
#End Region ' LuaExecCommand
|
||||||
|
|
||||||
|
#End Region ' Commands
|
||||||
|
|
||||||
|
End Class
|
||||||
@@ -51,6 +51,7 @@
|
|||||||
<OmagOFFICE:MachiningTabVM x:Key="MachiningTabVM"/>
|
<OmagOFFICE:MachiningTabVM x:Key="MachiningTabVM"/>
|
||||||
<OmagOFFICE:SimulTabVM x:Key="SimulTabVM"/>-->
|
<OmagOFFICE:SimulTabVM x:Key="SimulTabVM"/>-->
|
||||||
<EgtBEAMWALL:MyMachGroupPanelVM x:Key="MachGroupPanelVM"/>
|
<EgtBEAMWALL:MyMachGroupPanelVM x:Key="MachGroupPanelVM"/>
|
||||||
|
<EgtBEAMWALL:SpecialPanelVM x:Key="SpecialPanelVM"/>
|
||||||
|
|
||||||
<!--Colori predefiniti-->
|
<!--Colori predefiniti-->
|
||||||
<SolidColorBrush x:Key="Omag_Blue" Color="#FF095CA8" />
|
<SolidColorBrush x:Key="Omag_Blue" Color="#FF095CA8" />
|
||||||
@@ -310,6 +311,13 @@
|
|||||||
</Style.Triggers>
|
</Style.Triggers>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
|
|
||||||
|
<Style x:Key="DrawPanelButton" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
|
||||||
|
<Setter Property="Height" Value="30"/>
|
||||||
|
<Setter Property="Width" Value="30"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
|
||||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||||
|
|
||||||
<!-- TextBlock -->
|
<!-- TextBlock -->
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
Imports EgtBEAMWALL.Core
|
Imports EgtBEAMWALL.Core
|
||||||
|
Imports EgtBEAMWALL.DataLayer.Controllers
|
||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
Imports EgtWPFLib5
|
Imports EgtWPFLib5
|
||||||
|
|
||||||
@@ -203,4 +204,17 @@ Module LuaExec
|
|||||||
Return bOk
|
Return bOk
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
' Special Panel
|
||||||
|
Friend Sub ExecScript(sFilePath As String, Optional bRaiseEvent As Boolean = False)
|
||||||
|
EgtLuaExecFile(sFilePath)
|
||||||
|
|
||||||
|
'Dim bMachiningMode As Boolean = EgtGetCurrMachGroup() <> GDB_ID.NULL
|
||||||
|
'If Not bMachiningMode And EgtGetCurrLayer() = GDB_ID.NULL Then
|
||||||
|
' Dim nCurrPart As Integer = EgtGetCurrPart()
|
||||||
|
' If nCurrPart = GDB_ID.NULL Or Not EgtSetCurrPartLayer(nCurrPart, EgtGetFirstLayer(nCurrPart, True)) Then
|
||||||
|
' EgtResetCurrPartLayer()
|
||||||
|
' End If
|
||||||
|
'End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
End Module
|
End Module
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ Module Map
|
|||||||
Private m_refFeatureManagerVM As FeatureManagerVM
|
Private m_refFeatureManagerVM As FeatureManagerVM
|
||||||
Private m_refAddSectionXMaterialWndVM As AddSectionXMaterialWndVM
|
Private m_refAddSectionXMaterialWndVM As AddSectionXMaterialWndVM
|
||||||
Private m_refStatisticsTimePanelVM As StatisticsTimePanelVM
|
Private m_refStatisticsTimePanelVM As StatisticsTimePanelVM
|
||||||
|
Private m_refSpecialPanelVM As SpecialPanelVM
|
||||||
'Private m_refOpenProjectFileDialogVM As OpenProjectFileDialogVM
|
'Private m_refOpenProjectFileDialogVM As OpenProjectFileDialogVM
|
||||||
'Private m_refRawPartTabVM As RawPartTabVM
|
'Private m_refRawPartTabVM As RawPartTabVM
|
||||||
'Private m_refNestingTabVM As NestingTabVM
|
'Private m_refNestingTabVM As NestingTabVM
|
||||||
@@ -241,6 +242,12 @@ Module Map
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property refSpecialPanelVM As SpecialPanelVM
|
||||||
|
Get
|
||||||
|
Return m_refSpecialPanelVM
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
'Public ReadOnly Property refOpenProjectFileDialogVM As OpenProjectFileDialogVM
|
'Public ReadOnly Property refOpenProjectFileDialogVM As OpenProjectFileDialogVM
|
||||||
' Get
|
' Get
|
||||||
' Return m_refOpenProjectFileDialogVM
|
' Return m_refOpenProjectFileDialogVM
|
||||||
@@ -453,6 +460,12 @@ Module Map
|
|||||||
Return Not IsNothing(m_refStatisticsTimePanelVM)
|
Return Not IsNothing(m_refStatisticsTimePanelVM)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Friend Function SetRefSpecialPanelVM(SpecialPanelVM As SpecialPanelVM) As Boolean
|
||||||
|
m_refSpecialPanelVM = SpecialPanelVM
|
||||||
|
Return Not IsNothing(m_refSpecialPanelVM)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
'Friend Function SetRefOpenProjectFileDialogVM(OpenProjectFileDialogVM As OpenProjectFileDialogVM) As Boolean
|
'Friend Function SetRefOpenProjectFileDialogVM(OpenProjectFileDialogVM As OpenProjectFileDialogVM) As Boolean
|
||||||
' m_refOpenProjectFileDialogVM = OpenProjectFileDialogVM
|
' m_refOpenProjectFileDialogVM = OpenProjectFileDialogVM
|
||||||
' Return Not IsNothing(m_refOpenProjectFileDialogVM)
|
' Return Not IsNothing(m_refOpenProjectFileDialogVM)
|
||||||
@@ -526,7 +539,7 @@ Module Map
|
|||||||
Not IsNothing(m_refStatisticsVM) AndAlso Not IsNothing(m_refPParameterListVM) AndAlso
|
Not IsNothing(m_refStatisticsVM) AndAlso Not IsNothing(m_refPParameterListVM) AndAlso
|
||||||
Not IsNothing(m_refQParameterListVM) AndAlso Not IsNothing(m_refFeatureManagerVM) AndAlso
|
Not IsNothing(m_refQParameterListVM) AndAlso Not IsNothing(m_refFeatureManagerVM) AndAlso
|
||||||
Not IsNothing(m_refAddSectionXMaterialWndVM) AndAlso Not IsNothing(m_refStatisticsTimePanelVM) AndAlso
|
Not IsNothing(m_refAddSectionXMaterialWndVM) AndAlso Not IsNothing(m_refStatisticsTimePanelVM) AndAlso
|
||||||
LibMap.EndInit()
|
Not IsNothing(m_refSpecialPanelVM) AndAlso LibMap.EndInit()
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
#End Region ' Init
|
#End Region ' Init
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user