- Correzione UpdateBTL per avere i part aggiunti distanziati sempre di un offset fisso pari a 500
- Correzione UpdateBTL per avere lista part e disegno aggiornati senza riaprire il progetto ogni volta - Reso visibile il bottone UpdateBTL
This commit is contained in:
@@ -58,7 +58,6 @@
|
||||
</Button>-->
|
||||
<Button Command="{Binding UpdateBTL_Command}"
|
||||
ToolTip="{Binding UpdateBTL_ToolTip}"
|
||||
Visibility="Collapsed"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/UpdateBTL.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
|
||||
@@ -801,52 +801,54 @@ Public Class ProjManagerVM
|
||||
bOk = bOk AndAlso EgtInsertFile("C:\EgtData\EgtBEAMWALL\Temp\Prova.nge")
|
||||
' deseleziono tutto
|
||||
EgtDeselectAll()
|
||||
' ciclo sui pezzi
|
||||
' ciclo sui pezzi aggiunti
|
||||
Dim nAddedPartId As Integer = EgtGetNextPart(nLastProjPartId)
|
||||
Dim arrPartId As New ArrayList()
|
||||
Dim b3LaterParts As BBox3d = b3Parts
|
||||
Dim bFirstLoop As Boolean = True
|
||||
Dim LastPartMaxY As Double
|
||||
While nAddedPartId <> GDB_ID.NULL
|
||||
''' se arrivano dal nuovo progetto
|
||||
''Dim nCurrProjId As Integer
|
||||
''EgtGetInfo(nPartId, PROJ, nCurrProjId)
|
||||
''If nCurrProjId = Map.refProjManagerVM.CurrProj.nProjId Then
|
||||
' sposto i pezzi per non averli sovrapposti
|
||||
Dim b3LaterPart As New BBox3d
|
||||
EgtGetBBoxGlob(nAddedPartId, GDB_BB.ONLY_VISIBLE, b3LaterPart)
|
||||
b3LaterParts.Add(b3LaterPart)
|
||||
bOk = bOk AndAlso EgtMove(nAddedPartId, New Vector3d(0, b3Parts.DimY() + If(bFirstLoop, 500, 0), 0)) ' EgtMove(nAddedPartId, New Vector3d(0, b3Parts.DimY() + 500, 0))
|
||||
bFirstLoop = False
|
||||
' recupero layer del box
|
||||
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nAddedPartId, "Box")
|
||||
' recupero box del layer box
|
||||
Dim b3Box As New BBox3d
|
||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||
'' se invertito lo reinverto
|
||||
'Dim bFliped As Boolean = bFLIP
|
||||
'If bFliped Then EgtRotate(nPartId, b3Box.Center, Vector3d.X_AX, 180)
|
||||
'Dim dAng As Double = If(IsPositive, 90, -90)
|
||||
' eseguo rotazione
|
||||
bOk = bOk AndAlso EgtRotate(nAddedPartId, b3Box.Center, -Vector3d.X_AX, -90)
|
||||
' aggiungiamo il part appena aggiunto, mosso e ruotato al BBox globale
|
||||
' eseguo rotazione del pezzo
|
||||
Dim ptRot = b3Box.Min() + New Vector3d(0, b3Box.DimZ() / 2, b3Box.DimZ() / 2)
|
||||
bOk = bOk AndAlso EgtRotate(nAddedPartId, ptRot, -Vector3d.X_AX, -90)
|
||||
' ricaviamo il box globale del part appena aggiunto e ruotato
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nAddedPartId, 1, b3Part)
|
||||
' sposto il pezzo per distanziarlo dall'ultimo di un offset pari a 500
|
||||
bOk = bOk AndAlso EgtMove(nAddedPartId, New Vector3d(0, If(bFirstLoop, b3Parts.DimY(), LastPartMaxY - b3Part.Min.y) + 500, 0))
|
||||
bFirstLoop = False
|
||||
' ricaviamo il box globale del part appena spostato, salviamo la sua Y massima e lo aggiungiamo al box globale di tutti i part
|
||||
EgtGetBBoxGlob(nAddedPartId, 1, b3Part)
|
||||
LastPartMaxY = b3Part.Max.y
|
||||
b3Parts.Add(b3Part)
|
||||
nAddedPartId = EgtGetNextPart(nAddedPartId)
|
||||
End While
|
||||
' salvo il file con i part importati
|
||||
bOk = bOk AndAlso EgtSaveFile(Map.refProjManagerVM.CurrProj.sProjPath, NGE.CMPTEXT)
|
||||
' aggiungo i part inseriti alla lista
|
||||
Dim nNewPartId As Integer = EgtGetNextPart(nLastProjPartId)
|
||||
While nNewPartId <> GDB_ID.NULL
|
||||
' aggiungo dati pezzo
|
||||
Dim NewPart As BTLPartM = BTLPartM.CreateBTLPart(nNewPartId)
|
||||
' aggiungo pezzo alla lista
|
||||
Map.refProjectVM.BTLStructureVM.BTLStructureM.AddBTLPart(NewPart)
|
||||
Dim AddedBTLPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.BTLPartM Is NewPart) 'Map.refProjectVM.BTLStructureVM.SelBTLPart = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.BTLPartM Is NewPart)
|
||||
' verifico se aggiungere sezione alla lista
|
||||
If Not Map.refProjectVM.BTLStructureVM.SectionList.Contains(AddedBTLPart.Section) Then
|
||||
Map.refProjectVM.BTLStructureVM.SectionList.Add(AddedBTLPart.Section)
|
||||
End If
|
||||
nNewPartId = EgtGetNextPart(nNewPartId)
|
||||
End While
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_LASTUPDATEDIR, Path.GetDirectoryName(sFile))
|
||||
' riapro progetto
|
||||
'Map.refProjManagerVM.OpenProject(Map.refProjManagerVM.CurrProj)
|
||||
Map.refSceneHostVM.MainController.OpenProject(Map.refProjManagerVM.CurrProj.sProjPath, False)
|
||||
End If
|
||||
If bOk Then
|
||||
'' riporto aggiunta proj a prod su Db
|
||||
'DbControllers.m_ProdController.AddProj(OpenProjectFileDialogVM.SelProject.nProdId, Map.refProjManagerVM.CurrProj.nProjId)
|
||||
'' imposto currprod
|
||||
'Map.refProdManagerVM.SetCurrProd(OpenProjectFileDialogVM.SelProject.nProdId)
|
||||
End If
|
||||
'If bOk Then
|
||||
' ' riporto aggiunta proj a prod su Db
|
||||
' DbControllers.m_ProdController.AddProj(OpenProjectFileDialogVM.SelProject.nProdId, Map.refProjManagerVM.CurrProj.nProjId)
|
||||
' ' imposto currprod
|
||||
' Map.refProdManagerVM.SetCurrProd(OpenProjectFileDialogVM.SelProject.nProdId)
|
||||
'End If
|
||||
EgtZoom(ZM.ALL)
|
||||
End Sub
|
||||
|
||||
#End Region ' UpdateBTL
|
||||
|
||||
Reference in New Issue
Block a user