- modifiche per sistemazione riferimenti oggetti inseriti.
This commit is contained in:
Dario Sassi
2024-04-12 11:03:47 +02:00
parent 11704fa33d
commit 90b1fa9221
+43 -21
View File
@@ -418,7 +418,7 @@ Public Class MySceneHostVM
"|New geometry EgalTech(*.nge)|*.nge" &
"|Imported Files (*.*)|*.stl;*.igs;*.iges;*.stp;*.step;*.3mf;*.nge" &
"|All Files (*.*)|*.*",
.FilterIndex = 1,
.FilterIndex = 6,
.InitialDirectory = sDir}
If Not OpenFileDialog.ShowDialog Then
Return False
@@ -431,29 +431,35 @@ Public Class MySceneHostVM
' sposto le nuove geometrie nel layer rib del pezzo
Dim nNewPartId As Integer = EgtGetLastPart()
Dim nNewLayerId As Integer = EgtGetFirstGroupInGroup(nNewPartId)
Dim frLayer As New Frame3d
EgtGetGroupGlobFrame( nNewLayerId, frLayer)
Dim nNewEntityId As Integer = EgtGetFirstInGroup(nNewLayerId)
While nNewEntityId <> GDB_ID.NULL
Dim EntityType As GDB_TY = EgtGetType(nNewEntityId)
Select Case EntityType
Case GDB_TY.CRV_COMPO, GDB_TY.CRV_LINE, GDB_TY.CRV_ARC
Dim nNewRib = nNewEntityId
Dim nNewRib As Integer = GDB_ID.NULL
If EntityType = GDB_TY.CRV_LINE OrElse EntityType = GDB_TY.CRV_ARC Then
nNewRib = EgtCreateCurveCompo(Map.refTopPanelVM.SelPart.nPartId, nNewEntityId, False)
nNewRib = EgtCreateCurveCompo(nNewLayerId, nNewEntityId, False)
EgtRelocate( nNewRib, Map.refRibPanelVM.nRibLayerId, GDB_POS.LAST_SON)
Else
' lo copio nel layer dei rib
nNewRib = EgtCopy(nNewEntityId, Map.refRibPanelVM.nRibLayerId, GDB_POS.LAST_SON)
End If
EgtSetName(nNewRib, RIB_CURVE)
' elimino effetti di eventuale riferimento originale
EgtTransform( nNewRib, frLayer)
' elimino colore entita'
EgtResetColor(nNewEntityId)
' lo aggiungo alla lista
Dim NewEntity As RibEntity = New RibEntity(RibEntity.RibTypes.FROMIMPORT, nNewRib)
Map.refRibPanelVM.RibList.Add(NewEntity)
Case GDB_TY.SRF_MESH, GDB_TY.SRF_FRGN, GDB_TY.SRF_BEZ
Dim nNewRib = nNewEntityId
' lo copio nel layer dei rib
nNewRib = EgtCopy(nNewEntityId, Map.refRibPanelVM.nRibLayerId, GDB_POS.LAST_SON)
Dim nNewRib As Integer = EgtCopy(nNewEntityId, Map.refRibPanelVM.nRibLayerId, GDB_POS.LAST_SON)
EgtSetName(nNewRib, RIB_EXTRUSION)
' elimino effetti di eventuale riferimento originale
EgtTransform( nNewRib, frLayer)
' elimino colore entita'
EgtResetColor(nNewEntityId)
' lo aggiungo alla lista
@@ -490,7 +496,7 @@ Public Class MySceneHostVM
"|New geometry EgalTech(*.nge)|*.nge" &
"|Imported Files (*.*)|*.stl;*.igs;*.iges;*.stp;*.step;*.3mf;*.nge" &
"|All Files (*.*)|*.*",
.FilterIndex = 1,
.FilterIndex = 6,
.InitialDirectory = sDir}
If Not OpenFileDialog.ShowDialog Then
Return False
@@ -502,6 +508,8 @@ Public Class MySceneHostVM
' sposto le nuove geometrie nel layer rib del pezzo
Dim nNewPartId As Integer = EgtGetLastPart()
Dim nNewLayerId As Integer = EgtGetFirstGroupInGroup(nNewPartId)
Dim frLayer As New Frame3d
EgtGetGroupGlobFrame( nNewLayerId, frLayer)
' verifico che ci sia una sola entita'
If EgtGetGroupObjs(nNewLayerId) <> 1 Then
MessageBox.Show("Impossible importing file that contains more than one entity.", "Error", MessageBoxButton.OK, MessageBoxImage.Error)
@@ -510,6 +518,8 @@ Public Class MySceneHostVM
If MenuItem.OrigLayer.EntityList.Count > 0 AndAlso MenuItem.OrigLayer.EntityList(0).nId <> GDB_ID.NULL Then EgtErase(MenuItem.OrigLayer.EntityList(0).nId)
Dim nNewEntityId As Integer = EgtGetFirstInGroup(nNewLayerId)
EgtRelocate(nNewEntityId, MenuItem.OrigLayer.nLayerId, GDB_POS.LAST_SON)
' elimino effetti di eventuale riferimento originale
EgtTransform( nNewEntityId, frLayer)
' elimino colore entita'
EgtResetColor(nNewEntityId)
' aggiorno riferimento pezzo
@@ -548,7 +558,7 @@ Public Class MySceneHostVM
"|New geometry EgalTech(*.nge)|*.nge" &
"|Imported Files (*.*)|*.stl;*.igs;*.iges;*.stp;*.step;*.3mf;*.nge" &
"|All Files (*.*)|*.*",
.FilterIndex = 1,
.FilterIndex = 6,
.InitialDirectory = sDir}
If Not OpenFileDialog.ShowDialog Then
Return False
@@ -561,29 +571,35 @@ Public Class MySceneHostVM
' sposto le nuove geometrie nel layer ShellNumber del pezzo
Dim nNewPartId As Integer = EgtGetLastPart()
Dim nNewLayerId As Integer = EgtGetFirstGroupInGroup(nNewPartId)
Dim frLayer As New Frame3d
EgtGetGroupGlobFrame( nNewLayerId, frLayer)
Dim nNewEntityId As Integer = EgtGetFirstInGroup(nNewLayerId)
While nNewEntityId <> GDB_ID.NULL
Dim EntityType As GDB_TY = EgtGetType(nNewEntityId)
Select Case EntityType
Case GDB_TY.CRV_COMPO, GDB_TY.CRV_LINE, GDB_TY.CRV_ARC
Dim nNewShellNumberId As Integer = nNewEntityId
Dim nNewShellNumberId As Integer = GDB_ID.NULL
If EntityType = GDB_TY.CRV_LINE OrElse EntityType = GDB_TY.CRV_ARC Then
nNewShellNumberId = EgtCreateCurveCompo(Map.refTopPanelVM.SelPart.nPartId, nNewEntityId, False)
nNewShellNumberId = EgtCreateCurveCompo(nNewLayerId, nNewEntityId, False)
EgtRelocate( nNewShellNumberId, Map.refShellNumberPanelVM.nShellNumberLayerId, GDB_POS.LAST_SON)
Else
' lo copio nel layer dei shellnumber
nNewShellNumberId = EgtCopy(nNewEntityId, Map.refShellNumberPanelVM.nShellNumberLayerId, GDB_POS.LAST_SON)
End If
EgtSetName(nNewShellNumberId, RIB_CURVE)
' elimino effetti di eventuale riferimento originale
EgtTransform( nNewShellNumberId, frLayer)
' elimino colore entita'
EgtResetColor(nNewEntityId)
' lo aggiungo alla lista
Dim NewEntity As ShellNumberEntity = New ShellNumberEntity(ShellNumberEntity.ShellNumberTypes.FROMIMPORT, nNewShellNumberId)
Map.refShellNumberPanelVM.ShellNumberList.Add(NewEntity)
Case GDB_TY.SRF_MESH, GDB_TY.SRF_FRGN, GDB_TY.SRF_BEZ
Dim nNewShellNumberId = nNewEntityId
' lo copio nel layer dei rib
nNewShellNumberId = EgtCopy(nNewEntityId, Map.refShellNumberPanelVM.nShellNumberLayerId, GDB_POS.LAST_SON)
' lo copio nel layer dei shellnumber
Dim nNewShellNumberId As Integer = EgtCopy(nNewEntityId, Map.refShellNumberPanelVM.nShellNumberLayerId, GDB_POS.LAST_SON)
EgtSetName(nNewShellNumberId, RIB_EXTRUSION)
' elimino effetti di eventuale riferimento originale
EgtTransform( nNewShellNumberId, frLayer)
' elimino colore entita'
EgtResetColor(nNewEntityId)
' lo aggiungo alla lista
@@ -593,7 +609,7 @@ Public Class MySceneHostVM
nNewEntityId = EgtGetNext(nNewEntityId)
End While
EgtErase(nNewPartId)
' seleziono ultima rib
' seleziono ultima ShellNumber
Map.refShellNumberPanelVM.SelLastShellNumber()
EgtDraw()
' Imposto flag di ricalcolo slice
@@ -620,7 +636,7 @@ Public Class MySceneHostVM
"|New geometry EgalTech(*.nge)|*.nge" &
"|Imported Files (*.*)|*.stl;*.igs;*.iges;*.stp;*.step;*.3mf;*.nge" &
"|All Files (*.*)|*.*",
.FilterIndex = 1,
.FilterIndex = 6,
.InitialDirectory = sDir}
If Not OpenFileDialog.ShowDialog Then
Return False
@@ -633,29 +649,35 @@ Public Class MySceneHostVM
' sposto le nuove geometrie nel layer ShellNumber del pezzo
Dim nNewPartId As Integer = EgtGetLastPart()
Dim nNewLayerId As Integer = EgtGetFirstGroupInGroup(nNewPartId)
Dim frLayer As New Frame3d
EgtGetGroupGlobFrame( nNewLayerId, frLayer)
Dim nNewEntityId As Integer = EgtGetFirstInGroup(nNewLayerId)
While nNewEntityId <> GDB_ID.NULL
Dim EntityType As GDB_TY = EgtGetType(nNewEntityId)
Select Case EntityType
Case GDB_TY.CRV_COMPO, GDB_TY.CRV_LINE, GDB_TY.CRV_ARC
Dim nNewFilledSolidId As Integer = nNewEntityId
Dim nNewFilledSolidId As Integer = GDB_ID.NULL
If EntityType = GDB_TY.CRV_LINE OrElse EntityType = GDB_TY.CRV_ARC Then
nNewFilledSolidId = EgtCreateCurveCompo(Map.refTopPanelVM.SelPart.nPartId, nNewEntityId, False)
nNewFilledSolidId = EgtCreateCurveCompo(nNewLayerId, nNewEntityId, False)
EgtRelocate( nNewFilledSolidId, Map.refFilledSolidPanelVM.nFilledSolidLayerId, GDB_POS.LAST_SON)
Else
' lo copio nel layer dei shellnumber
' lo copio nel layer dei FilledSolid
nNewFilledSolidId = EgtCopy(nNewEntityId, Map.refFilledSolidPanelVM.nFilledSolidLayerId, GDB_POS.LAST_SON)
End If
EgtSetName(nNewFilledSolidId, RIB_CURVE)
' elimino effetti di eventuale riferimento originale
EgtTransform( nNewFilledSolidId, frLayer)
' elimino colore entita'
EgtResetColor(nNewEntityId)
' lo aggiungo alla lista
Dim NewEntity As FilledSolidEntity = New FilledSolidEntity(FilledSolidEntity.FilledSolidTypes.FROMIMPORT, nNewFilledSolidId)
Map.refFilledSolidPanelVM.FilledSolidList.Add(NewEntity)
Case GDB_TY.SRF_MESH, GDB_TY.SRF_FRGN, GDB_TY.SRF_BEZ
Dim nNewFilledSolidId = nNewEntityId
' lo copio nel layer dei rib
nNewFilledSolidId = EgtCopy(nNewEntityId, Map.refFilledSolidPanelVM.nFilledSolidLayerId, GDB_POS.LAST_SON)
' lo copio nel layer dei FilledSolid
Dim nNewFilledSolidId As Integer = EgtCopy(nNewEntityId, Map.refFilledSolidPanelVM.nFilledSolidLayerId, GDB_POS.LAST_SON)
EgtSetName(nNewFilledSolidId, RIB_EXTRUSION)
' elimino effetti di eventuale riferimento originale
EgtTransform( nNewFilledSolidId, frLayer)
' elimino colore entita'
EgtResetColor(nNewEntityId)
' lo aggiungo alla lista
@@ -665,7 +687,7 @@ Public Class MySceneHostVM
nNewEntityId = EgtGetNext(nNewEntityId)
End While
EgtErase(nNewPartId)
' seleziono ultima rib
' seleziono ultima FilledSolid
Map.refFilledSolidPanelVM.SelLastFilledSolid()
EgtDraw()
' Imposto flag di ricalcolo slice