diff --git a/Icarus/SceneHost/MySceneHostVM.vb b/Icarus/SceneHost/MySceneHostVM.vb index 2593c5c..58d7554 100644 --- a/Icarus/SceneHost/MySceneHostVM.vb +++ b/Icarus/SceneHost/MySceneHostVM.vb @@ -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