Compare commits

..

5 Commits

Author SHA1 Message Date
Nicola Pievani 18966d103e Pulizia codice 2025-04-08 14:11:07 +02:00
Nicola Pievani 8a65942370 Creazione primo frame non parallelo agli assi 2025-04-08 12:18:12 +02:00
Nicola Pievani c55cbfa5bb Inizio gestione inserimento cornici (DA RIFARE) 2025-04-04 11:32:18 +02:00
Nicola Pievani 1557f0865c Merge commit 'e5e80e9a55ff8ea618bd0bc5149e626c3ac3ac7d' into develop 2025-04-03 12:16:45 +02:00
Nicola Pievani c7828774d8 Inizio gestione Frame allineato con il grezzo 2025-04-01 12:04:43 +02:00
12 changed files with 318 additions and 165 deletions
+6 -8
View File
@@ -2854,22 +2854,20 @@ Math.Abs(e.Location.Y - m_locPrev.Y) < m_nRestRadius Then
Return False
End Function
Friend Function StoreOnePartDXF(nId As Integer, DimX As Double, DimY As Double, MaxPt As Point3d) As Boolean
'Const STORE_LARGH As Double = 6000
Friend Function StoreOnePartDXF(nId As Integer, X As Double, Y As Double) As Boolean
Const STORE_LARGH As Double = 6000
Const STORE_DIST As Double = 200
'Const STORE_OFFS As Double = 20 + 40 + 20
'Dim dStoreLarg As Double = GetPrivateProfileDouble("Store", "StoreLargh", STORE_LARGH, m_MainWindow.GetMachIniFile())
Const STORE_OFFS As Double = 20 + 40 + 20
Dim dStoreLarg As Double = GetPrivateProfileDouble("Store", "StoreLargh", STORE_LARGH, m_MainWindow.GetMachIniFile())
Dim dStoreDist As Double = GetPrivateProfileDouble("Store", "StoreDist", STORE_DIST, m_MainWindow.GetMachIniFile())
'Dim dStoreOffs As Double = GetPrivateProfileDouble("Store", "StoreOffs", STORE_OFFS, m_MainWindow.GetMachIniFile())
Dim dStoreOffs As Double = GetPrivateProfileDouble("Store", "StoreOffs", STORE_OFFS, m_MainWindow.GetMachIniFile())
' Recupero box tavola
Dim b3Tab As New BBox3d
If Not EgtGetTableArea(1, b3Tab) Then
b3Tab.Add(New Point3d(0, 0, 0))
b3Tab.Add(New Point3d(-3600, -2600, 0))
End If
Dim Offs_y As Double = b3Tab.Min.y - MaxPt.y - STORE_DIST
Dim Offs_x As Double = b3Tab.Min.x - (MaxPt.x - DimX) + (b3Tab.DimX - DimX) / 2
Dim vt As New Vector3d(Offs_x, Offs_y, b3Tab.Min.z)
Dim vt As New Vector3d(b3Tab.Min.x, b3Tab.Min.y - Y - STORE_DIST, b3Tab.Min.z)
EgtMove(nId, vt, GDB_RT.GLOB)
' Recupero il centro del pezzo in parcheggio e lo salvo
Dim ptCenter As Point3d
+7 -16
View File
@@ -273,7 +273,7 @@ Public Class SelParkIndWD
Next
End Sub
' Restituisce il primo parcheggio attivo
' Restituisce il primo parcheggio attivo (
Public Shared Function GetCurrentParkIndSelected() As ParkInd
Dim ListParkInd As New List(Of ParkInd)
SelParkIndWD.LoadParkInd(ListParkInd)
@@ -286,7 +286,7 @@ Public Class SelParkIndWD
Return Nothing
End Function
' Restitusice il nome del file immagine del parcheggio (manca solo dell'Indice di parcheggio e dell'esetensione png)
' Restitusice il nome del file immagine del parcheggio (manance solo dell'Indice di parcheggio e dell'esetensione png)
Public Shared Function GetPathCurrProj() As String
Dim nProj As Integer = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProject()
Dim sParkPath As String = m_MainWindow.GetSaveDir() & "\" & Math.Abs(nProj).ToString("D4") & "_ParkInd_"
@@ -298,20 +298,15 @@ Public Class SelParkIndWD
Return sParkPath
End Function
' Dato il nome del progetto crea le immagini dei parcheggi
Public Shared Sub CopyImgSvg(sNewFileName As String, refListParkInd As List(Of ParkInd), Optional nCtx As Integer = -1)
Public Shared Sub CopyImgSvg(sNewFileName As String, Optional nCtx As Integer = -1)
If sNewFileName.EndsWith(".nge") Then
sNewFileName = sNewFileName.Remove(sNewFileName.Length - 4, 4) & "_ParkInd_"
End If
Dim Extension As String = ".svg"
If Not MainWindow.m_bShowSVGParkInd Then Extension = ".png"
Dim ListParkInd As New List(Of ParkInd)
If Not IsNothing(refListParkInd) Then
ListParkInd = refListParkInd
Else
' ricarico la lista
SelParkIndWD.LoadParkInd(ListParkInd, nCtx)
End If
' ricarico la lista
SelParkIndWD.LoadParkInd(ListParkInd, nCtx)
'SelParkIndWD.sActualProj = Path.GetFileNameWithoutExtension(sPath)
For Each ItemParkInd As ParkInd In ListParkInd
If ItemParkInd.Ind <> 0 And ItemParkInd.Ind <> 999 And ItemParkInd.nPartInPark > 0 Then
@@ -821,12 +816,8 @@ Public Module XMLReader
Canv.ViewBoxDim = ViewBoxDim
' Elaboro i dati per avere la scalatura del disegno
Dim DimViewBox As String() = ViewBoxDim.ToString.Split(" ")
Dim DimX As Integer = 10
Dim DimY As Integer = 10
If DimViewBox.Count = 4 Then
DimX = Math.Abs(CInt(DimViewBox(2))) + Math.Abs(CInt(DimViewBox(0)))
DimY = Math.Abs(CInt(DimViewBox(3))) + Math.Abs(CInt(DimViewBox(1)))
End If
Dim DimX As Integer = Math.Abs(CInt(DimViewBox(2))) + Math.Abs(CInt(DimViewBox(0)))
Dim DimY As Integer = Math.Abs(CInt(DimViewBox(3))) + Math.Abs(CInt(DimViewBox(1)))
' Leggo in loop i tag: 'path'
While Not m_xmlr.EOF
-1
View File
@@ -343,7 +343,6 @@ Module ConstIni
Public Const K_DC_FLATT_HEADSIDE As String = "FlattHeadSide"
Public Const K_DC_FLATT_MACHTYPE As String = "FlattMachType"
Public Const K_DC_FLATT_ROTLOCK As String = "FlattRotLock"
Public Const K_DC_FLATT_SAWTH As String = "FlattSawThick"
Public Const K_DC_FLAT_CHAINEDPATH As String = "ChainedPath"
Public Const K_DC_FLATT_POSX As String = "FlattPosX"
Public Const K_DC_FLATT_POSY As String = "FlattPosY"
+1
View File
@@ -53,6 +53,7 @@ Public Class ControlsDirectCutUC
FlatteningCut
Polishing
CopyTemplate
SawTest
SingleCutAuto
SingleDrill
Squaring
-16
View File
@@ -407,7 +407,6 @@ Public Class FlatteningCut
If Not EgtSetCalcTool(sSaw, "H1", 1) Then Return
' Trasformo in posizione punta utensile in basso
If Not EgtGetCalcTipFromPositions(dL1, dL2, dL3, vAng, True, m_ptTipP2) Then Return
End If
' Calcolo direzione asse lama
If Not EgtGetCalcToolDirFromAngles(dR1, dR2, m_vtToolP2) Then Return
@@ -726,21 +725,6 @@ Public Class FlatteningCut
Dim ptStart As Point3d = m_ptTipP1
ptStart.z = 0
Dim nCutId = EgtCreateLinePDL(nLayerId, ptStart, m_dAngO, m_dLen)
' -- APPLICO OFFSET AI TAGLI -- And PointModeCmBx.SelectedIndex = PT_MODE.SAW
If m_nTool = TOOL.SAW And PointModeCmBx.SelectedIndex = PT_MODE.SAW Then
' Applico un offset al taglio:
Dim vtOffs As New Vector3d
EgtStartVector(nCutId, GDB_RT.GLOB, vtOffs)
vtOffs.Rotate(Vector3d.Z_AX, 90)
Dim SawThick As Double = GetFootPrintTool()
Dim DirOffs As Double = GetPrivateProfileDouble(S_DIRECTCUTS, K_DC_FLATT_SAWTH, 0, m_MainWindow.GetIniFile)
Dim vtNormTool As Vector3d = m_vtToolP1
vtNormTool.Normalize()
EgtOutLog("Offset flattening: " & DirOffs.ToString & "*" & SawThick.ToString)
If DirOffs <> 0 Then EgtMove(nCutId, vtOffs * DirOffs * SawThick, GDB_RT.GLOB)
End If
EgtSetInfo(nCutId, INFO_DIRECTCUT, 1)
' Imposto affondamento e angolo di fianco sul taglio
EgtSetInfo(nCutId, INFO_DEPTH, m_dDepth)
+3 -4
View File
@@ -1074,9 +1074,8 @@ Public Class ImportPageUC
' Passo al pezzo successivo
nId = EgtGetNextPart(nId)
End While
Dim DimX As Double = GlobBBox.DimX
Dim DimY As Double = GlobBBox.DimY
Dim BBoxMaxPt As Point3d = GlobBBox.Max
Dim x As Double = GlobBBox.DimX
Dim Y As Double = GlobBBox.DimY
' Ciclo sui pezzi inseriti
nId = nFirstId
@@ -1115,7 +1114,7 @@ Public Class ImportPageUC
' Inserisco in parcheggio
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
' Mantengo la posizione relativa tra i pezzi
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePartDXF(nId, DimX, DimY, BBoxMaxPt)
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePartDXF(nId, x, Y)
Else
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nId, True)
End If
+15 -14
View File
@@ -92,22 +92,23 @@
Style="{DynamicResource OmagCut_YellowGradientYellowIconButton}">
<Image Source="{DynamicResource Sezione-corniceImg}" Style="{DynamicResource OmagCut_ButtonIcon}"/>
</Button>-->
<Grid>
<Button Name="SelGuideBtn" Style="{DynamicResource OmagCut_YellowTextButton}"/>
<UniformGrid Name="ArcGrid" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Columns="2" >
<TextBlock Name="ArcRadTxBl" Grid.Row="2" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ArcRadTxBx" Grid.Column="2" Grid.Row="2" Width="50"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="ArcAngTxBl" Grid.Row="3" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ArcAngTxBx" Grid.Column="2" Grid.Row="3" Width="50"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</UniformGrid>
</Grid>
<UniformGrid Name="ArcGrid" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Columns="2" >
<TextBlock Name="ArcRadTxBl" Grid.Row="2" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ArcRadTxBx" Grid.Column="2" Grid.Row="2" Width="50"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
<TextBlock Name="ArcAngTxBl" Grid.Row="3" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="ArcAngTxBx" Grid.Column="2" Grid.Row="3" Width="50"
Style="{DynamicResource OmagCut_CalculatorTextBox}"/>
</UniformGrid>
</UniformGrid>
<UniformGrid Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Columns="2" >
<Button Name="SelGuideBtn" Style="{DynamicResource OmagCut_YellowTextButton}"/>
<ToggleButton Name="SelRawSideBtn" Style="{DynamicResource OmagCut_YellowToggleButton}"/>
</UniformGrid>
<TextBlock Name="OffsZTxBl" Grid.Row="2" Grid.ColumnSpan="2"
Style="{DynamicResource OmagCut_ToolsDBTextBlock}"/>
<EgtWPFLib:EgtTextBox Name="OffsZTxBx" Grid.Column="2" Grid.Row="2" Width="50"
+257 -91
View File
@@ -23,6 +23,10 @@ Public Class FrameCutPageUC
' Importazione guida in corso
Private m_bGuide As Boolean = False
' Linea selezionata dal contorno del grezzo
Private m_LineDir As Integer = -1
Private m_ptMidLineDir As New Point3d
Private Sub FrameCutPage_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
' Creazione delle Page UserControl
m_ProjectMgr = New ProjectMgrUC
@@ -61,9 +65,10 @@ Public Class FrameCutPageUC
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 1)) 'Lungo X
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 2)) 'Lungo Y
If GetPrivateProfileInt(S_FRAME, K_ARC_ENABLE, 0, m_MainWindow.GetIniFile()) <> 0 And
m_MainWindow.GetKeyOption( MainWindow.KEY_OPT.CURVED_FRAME) Then
m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.CURVED_FRAME) Then
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 13)) 'Arco
m_AlongAx.Add(EgtMsg(MSG_FRAMECUTPAGEUC + 14)) 'Guida
m_AlongAx.Add("Raw side")
End If
SelSectionBtn.ToolTip = EgtMsg(MSG_FRAMECUTPAGEUC + 15) 'Sezione
SelGuideBtn.Content = EgtMsg(MSG_FRAMECUTPAGEUC + 16) 'Guida
@@ -75,6 +80,7 @@ Public Class FrameCutPageUC
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 9) 'Distanza inizio
OffsYyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 22) 'Distanza Y
OffsXInteryTxBl.Text = EgtMsg(90645) 'Interasse
SelRawSideBtn.Content = "Sel raw side"
Dim sChBxToolTip As String = EgtMsg(90646) 'Applica valore indicato\n altrienti spessore lama
sChBxToolTip = sChBxToolTip.Replace("/n", "£")
Dim sItems As String() = sChBxToolTip.Split("£")
@@ -138,25 +144,26 @@ Public Class FrameCutPageUC
AlongAxCmBx.SelectedIndex = m_CurrAx
AlongAxCmBx.IsEnabled = False
' Se cornice arco o curva, disabilito scelta nuova sezione
SelSectionBtn.IsEnabled = ( m_CurrAx = 0 Or m_CurrAx = 1)
SelSectionBtn.IsEnabled = (m_CurrAx = 0 Or m_CurrAx = 1)
' Se cornice curva, verifico se disabilitare scelta guida
If m_CurrAx = 3 Then
SelGuideBtn.IsEnabled = ( EgtGetFirstNameInGroup( nPartId, NAME_GUIDE) = GDB_ID.NULL)
End If
Dim bIsEnable As Boolean = (EgtGetFirstNameInGroup(nPartId, NAME_GUIDE) = GDB_ID.NULL)
If m_CurrAx = 3 Then SelGuideBtn.IsEnabled = bIsEnable
If m_CurrAx = 4 Then SelRawSideBtn.IsEnabled = bIsEnable
' Se cornice su arco ne leggo i dati
If m_CurrAx = 2 Then
Dim dExtRad As Double
if EgtGetInfo(nPartId, INFO_FRAME_ARCRAD, dExtRad) Then ArcRadTxBx.Text = LenToString( dExtRad, 3)
If EgtGetInfo(nPartId, INFO_FRAME_ARCRAD, dExtRad) Then ArcRadTxBx.Text = LenToString(dExtRad, 3)
Dim dAngCenDeg As Double
if EgtGetInfo(nPartId, INFO_FRAME_ARCANG, dAngCenDeg) Then ArcAngTxBx.Text = DoubleToString( dAngCenDeg, 3)
If EgtGetInfo(nPartId, INFO_FRAME_ARCANG, dAngCenDeg) Then ArcAngTxBx.Text = DoubleToString(dAngCenDeg, 3)
End If
' Altrimenti
' Altrimenti
Else
' Abilito cambio direzione e scelta sezione
AlongAxCmBx.SelectedIndex = m_CurrAx
AlongAxCmBx.IsEnabled = True
SelSectionBtn.IsEnabled = True
SelGuideBtn.IsEnabled = True
If m_CurrAx = 3 Then SelGuideBtn.IsEnabled = True
If m_CurrAx = 4 Then SelRawSideBtn.IsEnabled = True
End If
End Sub
@@ -168,6 +175,7 @@ Public Class FrameCutPageUC
ArcGrid.Visibility = Windows.Visibility.Collapsed
OffsYyTxBl.Visibility = Windows.Visibility.Collapsed
OffsYyTxBx.Visibility = Windows.Visibility.Collapsed
SelRawSideBtn.Visibility = Windows.Visibility.Collapsed
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 9) 'Distanza inizio
Case 2 'Arco
SelSectionBtn.Visibility = Windows.Visibility.Visible
@@ -175,6 +183,7 @@ Public Class FrameCutPageUC
ArcGrid.Visibility = Windows.Visibility.Visible
OffsYyTxBl.Visibility = Windows.Visibility.Visible
OffsYyTxBx.Visibility = Windows.Visibility.Visible
SelRawSideBtn.Visibility = Windows.Visibility.Collapsed
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 21) 'Distanza X
Case 3 'Guida
SelSectionBtn.Visibility = Windows.Visibility.Visible
@@ -183,6 +192,16 @@ Public Class FrameCutPageUC
ArcGrid.Visibility = Windows.Visibility.Collapsed
OffsYyTxBl.Visibility = Windows.Visibility.Visible
OffsYyTxBx.Visibility = Windows.Visibility.Visible
SelRawSideBtn.Visibility = Windows.Visibility.Collapsed
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 21) 'Distanza X
Case 4
SelSectionBtn.Visibility = Windows.Visibility.Visible
SelGuideBtn.Visibility = Windows.Visibility.Collapsed
ArcGrid.Visibility = Windows.Visibility.Collapsed
OffsYyTxBl.Visibility = Windows.Visibility.Visible
OffsYyTxBx.Visibility = Windows.Visibility.Visible
SelRawSideBtn.Visibility = Windows.Visibility.Visible
SelRawSideBtn.IsEnabled = False
OffsXyTxBl.Text = EgtMsg(MSG_FRAMECUTPAGEUC + 21) 'Distanza X
End Select
End Sub
@@ -209,11 +228,58 @@ Public Class FrameCutPageUC
Not m_CurrProjPage.CurrentProjectScene.IsStatusNull() Then
Return
End If
' Verifico se selezionato indicativo di pezzo
EgtSetObjFilterForSelWin(False, False, True, False, False)
Dim nSel As Integer
Dim nSel As Integer = GDB_ID.NULL
Dim nId As Integer = GDB_ID.NULL
If SelRawSideBtn.IsChecked Then
' Verifico se selezionato indicativo di pezzo
EgtSetObjFilterForSelWin(False, True, False, False, False)
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
nId = EgtGetFirstObjInSelWin()
Dim ptPrev As Point3d
' Verifico cosa selezionato
Dim nSolidId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_RAW_SOLID)
Dim nKerfId = EgtGetFirstNameInGroup(m_CurrProjPage.m_nRawId, NAME_KERF)
' Acquisisco punto da disegno
EgtUnProjectPoint(e.Location, ptPrev)
Dim sName As String = String.Empty
While nId <> GDB_ID.NULL
sName = String.Empty
EgtGetName(nId, sName)
If sName = NAME_KERF Then
' la sottoentità del Kerf selezionato
EgtUnProjectPoint(e.Location, ptPrev)
Dim dDist, dU As Double
EgtPointCurveDist(ptPrev.Loc(nKerfId), nKerfId, nKerfId, dDist, dU)
Dim ptStart As New Point3d
EgtAtParamPoint(nKerfId, CInt(Math.Floor(dU)), GDB_ID.ROOT, ptStart)
Dim ptEnd As New Point3d
EgtAtParamPoint(nKerfId, CInt(Math.Ceiling(dU)), GDB_ID.ROOT, ptEnd)
Dim nParentLineGuide As Integer = EgtCreateGroup(GDB_ID.ROOT)
' creo la linea a partire dall'entita sopra
m_LineDir = EgtCreateLine(EgtCreateGroup(nParentLineGuide), ptStart, ptEnd, GDB_RT.GLOB)
m_ptMidLineDir = New Point3d(ptStart)
EgtMidPoint(m_LineDir, GDB_RT.GLOB, m_ptMidLineDir)
EgtExtendCurveStartByLen(m_LineDir, 3500)
EgtSetMark(m_LineDir)
EgtDraw()
m_bGuide = True
If MyCreateFrame(nParentLineGuide) Then SelRawSideBtn.IsChecked = False
' Privilegio il kerf, pertanto esco
Exit While
End If
nId = EgtGetNextObjInSelWin()
End While
Return
End If
' Verifico se selezionato indicativo di pezzo
EgtSetObjFilterForSelWin(False, True, True, False, False)
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
Dim nId As Integer = EgtGetFirstObjInSelWin()
nId = EgtGetFirstObjInSelWin()
While nId <> GDB_ID.NULL
' Recupero l'identificativo del layer e del pezzo cui appartiene
Dim nLayId As Integer = EgtGetParent(nId)
@@ -374,14 +440,14 @@ Public Class FrameCutPageUC
' Cerco pezzo in grezzo
Dim nPartId As Integer = EgtGetFirstPartInRawPart(m_nRawId)
' Se modalità curva e presa solo sezione, cancello unico pezzo in grezzo
If m_CurrAx = 3 And EgtGetFirstNameInGroup( nPartId, NAME_GUIDE) = GDB_ID.NULL
If m_CurrAx = 3 And EgtGetFirstNameInGroup(nPartId, NAME_GUIDE) = GDB_ID.NULL Then
If EgtRemovePartFromRawPart(nPartId) Then
' Rimuovo le lavorazioni
EraseMachinings(nPartId)
' Cancello
EgtErase(nPartId)
End If
' Altrimenti esco subito
' Altrimenti esco subito
Else
Return
End If
@@ -478,14 +544,14 @@ Public Class FrameCutPageUC
End Sub
Friend Function CreateFrame(nPartId As Integer) As Boolean
If Not MyCreateFrame( nPartId) Then
EgtErase( nPartId)
If Not MyCreateFrame(nPartId) Then
EgtErase(nPartId)
If m_CurrAx <> 2 Then
' Errore : creazione cornice non riuscita
m_CurrProjPage.SetErrorMessage( EgtMsg(MSG_FRAMECUTPAGEUC + 20))
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_FRAMECUTPAGEUC + 20))
Else
' Errore : raggio più piccolo della larghezza della sezione
m_CurrProjPage.SetErrorMessage( EgtMsg(MSG_FRAMECUTPAGEUC + 19))
m_CurrProjPage.SetErrorMessage(EgtMsg(MSG_FRAMECUTPAGEUC + 19))
End If
Return False
End If
@@ -501,12 +567,12 @@ Public Class FrameCutPageUC
' Sistemo la sezione o la guida della cornice
If Not m_bGuide Then
If Not AdjustSection(nPartId) Then
EgtOutLog( "Error in CreateFrame : problems with Section")
EgtOutLog("Error in CreateFrame : problems with Section")
Return False
End If
Else
If Not AdjustGuide(nPartId) Then
EgtOutLog( "Error in CreateFrame : problems with Guide")
EgtOutLog("Error in CreateFrame : problems with Guide")
Return False
End If
End If
@@ -518,48 +584,49 @@ Public Class FrameCutPageUC
Dim nSectId As Integer = EgtGetFirstInGroup(nSectLayId)
If nSectId = GDB_ID.NULL Then Return False
' Creazione cornice
nSurfId = CreateLineFrame( nSectId, nSectLayId, nPartId)
nSurfId = CreateLineFrame(nSectId, nSectLayId, nPartId)
' Se non creata superficie, reset di tutto e segnalazione errore
If nSurfId = GDB_ID.NULL Then
EgtErase( nPartId)
EgtOutLog( "Error in CreateFrame : Surface not constructible")
EgtErase(nPartId)
EgtOutLog("Error in CreateFrame : Surface not constructible")
Return False
End If
' se cornice su arco
' se cornice su arco
ElseIf m_CurrAx = 2 Then
' Recupero layer e curva della sezione
Dim nSectLayId As Integer = EgtGetFirstNameInGroup(nPartId, NAME_SECT)
Dim nSectId As Integer = EgtGetFirstInGroup(nSectLayId)
If nSectId = GDB_ID.NULL Then Return False
' Porto l'inizio della curva a X0 locale
ChangeCurveStartToX0( nSectId)
ChangeCurveStartToX0(nSectId)
' Creazione cornice
nSurfId = CreateArcFrame( nSectId, nSectLayId, nPartId)
nSurfId = CreateArcFrame(nSectId, nSectLayId, nPartId)
' Se non creata superficie, reset di tutto e segnalazione errore
If nSurfId = GDB_ID.NULL Then
EgtErase( nPartId)
EgtOutLog( "Error in CreateFrame : radius too small for the section")
EgtErase(nPartId)
EgtOutLog("Error in CreateFrame : radius too small for the section")
Return False
End If
' altrimenti cornice su guida
' altrimenti cornice su guida
Else
If not m_bGuide Then
If Not m_bGuide Then
' Recupero layer e curva della sezione
Dim nSectLayId As Integer = EgtGetFirstNameInGroup(nPartId, NAME_SECT)
Dim nSectId As Integer = EgtGetFirstInGroup(nSectLayId)
If nSectId = GDB_ID.NULL Then Return False
' Porto l'inizio della curva a X0 locale
ChangeCurveStartToX0( nSectId)
ChangeCurveStartToX0(nSectId)
Else
' Porto la guida nel pezzo con la sezione
Dim nTruePartId As Integer = EgtGetFirstPartInRawPart( m_nRawId)
Dim nTruePartId As Integer = EgtGetFirstPartInRawPart(m_nRawId)
If nTruePartId = GDB_ID.NULL Then
EgtOutLog( "Error in CreateFrame : Section not found")
EgtOutLog("Error in CreateFrame : Section not found")
Return False
End If
' Parcheggio il pezzo trovato
m_MainWindow.m_CadCutPageUC.m_NestPage.CalcRawPart()
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart( nTruePartId)
m_MainWindow.m_CadCutPageUC.m_NestPage.StoreOnePart(nTruePartId)
' Recupero layer e curva della sezione
Dim nSectLayId As Integer = EgtGetFirstNameInGroup(nTruePartId, NAME_SECT)
Dim nSectId As Integer = EgtGetFirstInGroup(nSectLayId)
@@ -569,17 +636,17 @@ Public Class FrameCutPageUC
Dim nGuideId As Integer = EgtGetFirstInGroup(nGuideLayId)
If nGuideId = GDB_ID.NULL Then Return False
' Sposto la guida in questo pezzo
EgtRelocate( nGuideLayId, nTruePartId)
EgtRelocate(nGuideLayId, nTruePartId)
' Cancello il pezzo
EgtErase( nPartId)
EgtErase(nPartId)
' Creazione cornice
nPartId = nTruePartId
nSurfId = CreateCurveFrame( nSectId, nSectLayId, nGuideId, nGuideLayId, nPartId)
nPartId = nTruePartId
nSurfId = CreateCurveFrame(nSectId, nSectLayId, nGuideId, nGuideLayId, nPartId)
m_bGuide = False
' Se non creata superficie, reset di tutto e segnalazione errore
If nSurfId = GDB_ID.NULL Then
EgtErase( nPartId)
EgtOutLog( "Error in CreateFrame : Surface not constructible")
EgtErase(nPartId)
EgtOutLog("Error in CreateFrame : Surface not constructible")
Return False
End If
End If
@@ -623,17 +690,17 @@ Public Class FrameCutPageUC
Dim nSurfId As Integer = GDB_ID.NULL
' Se cornice rettilinea
If m_CurrAx = 0 Or m_CurrAx = 1 Then
nSurfId = CreateLineFrame( nSectId, nSectLayId, nPartId)
' se cornice su arco
nSurfId = CreateLineFrame(nSectId, nSectLayId, nPartId)
' se cornice su arco
ElseIf m_CurrAx = 2 Then
nSurfId = CreateArcFrame( nSectId, nSectLayId, nPartId)
' altrimenti cornice su curva
nSurfId = CreateArcFrame(nSectId, nSectLayId, nPartId)
' altrimenti cornice su curva
Else
' Recupero layer e curva della guida
Dim nGuideLayId As Integer = EgtGetFirstNameInGroup(nPartId, NAME_GUIDE)
Dim nGuideId As Integer = EgtGetFirstInGroup(nGuideLayId)
If nGuideId = GDB_ID.NULL Then Return False
nSurfId = CreateCurveFrame( nSectId, nSectLayId, nGuideId, nGuideLayId, nPartId)
nSurfId = CreateCurveFrame(nSectId, nSectLayId, nGuideId, nGuideLayId, nPartId)
End If
' Assegno nome e direzione a pezzo
EgtSetName(nPartId, NAME_FRAME)
@@ -699,7 +766,7 @@ Public Class FrameCutPageUC
ptStart = ptTmp
End If
' Se cornice rettilinea
If m_CurrAx = 0 Or m_CurrAx = 1 Then
If m_CurrAx = 0 Or m_CurrAx = 1 Then
' Se linea orizzontale, aggiungo tratti verticali
If b3Box.DimY() < EPS_SMALL Then
ptStart -= 10 * EPS_SMALL * Vector3d.Y_AX()
@@ -740,7 +807,7 @@ Public Class FrameCutPageUC
EgtAddCurveCompoLine(nCrvId, ptEnd)
b3Box.Add(ptEnd)
End If
' Altrimenti cornice curva
' Altrimenti cornice curva
Else
' Aggiungo linea verticale dall'estremo più alto alla quota del più basso
If ptStart.y > ptEnd.y Then
@@ -767,7 +834,15 @@ Public Class FrameCutPageUC
EgtSelectLayerObjs(nLayerId)
Dim nCrvIds(0) As Integer
nCrvIds(0) = GDB_ID.SEL
Dim nCrvId As Integer = EgtCreateCurveCompoByChain(nLayerId, 1, nCrvIds, New Point3d(), True)
' ---- INIZIO ---- NUOVA GESTIONE ---- Verifico che il segmento passato è una linea ricavata dal contorno del grezzo
Dim nCrvId As Integer = GDB_ID.NULL
If m_CurrAx = 4 And m_LineDir <> GDB_ID.NULL Then
nCrvId = m_LineDir
Else
nCrvId = EgtCreateCurveCompoByChain(nLayerId, 1, nCrvIds, New Point3d(), True)
End If
' ---- FINE ---- NUOVA GESTIONE ----
' Se non è stata creata esco
If nCrvId = GDB_ID.NULL Then Return False
' Elimino eventuali curve oltre la prima
Dim nId As Integer = EgtGetNext(nCrvId)
@@ -792,17 +867,17 @@ Public Class FrameCutPageUC
' Elimino vecchio layer
EgtErase(nLayerId)
' Impongo rotazione guida CCW
Dim bClosed As Boolean = EgtCurveIsClosed( nCrvId)
If Not bClosed Then EgtCloseCurveCompo( nCrvId)
Dim bClosed As Boolean = EgtCurveIsClosed(nCrvId)
If Not bClosed Then EgtCloseCurveCompo(nCrvId)
Dim dArea As Double = 0
EgtCurveAreaXY( nCrvId, dArea)
If Not bClosed Then EgtRemoveCurveCompoCurve( nCrvId)
If dArea < -1 Then EgtInvertCurve( nCrvId)
EgtCurveAreaXY(nCrvId, dArea)
If Not bClosed Then EgtRemoveCurveCompoCurve(nCrvId)
If dArea < -1 Then EgtInvertCurve(nCrvId)
' Se curva chiusa, impongo inizio a metà del lato a X max
If bClosed Then
Dim b3Guide As New BBox3d
EgtGetBBox( nCrvId, GDB_BB.STANDARD, b3Guide)
Dim ptStart As New Point3d( b3Guide.Max().x, b3Guide.Center().y, b3Guide.Center().z)
EgtGetBBox(nCrvId, GDB_BB.STANDARD, b3Guide)
Dim ptStart As New Point3d(b3Guide.Max().x, b3Guide.Center().y, b3Guide.Center().z)
EgtChangeClosedCurveStartPoint(nCrvId, ptStart)
End If
Return True
@@ -828,7 +903,7 @@ Public Class FrameCutPageUC
Return True
End Function
Private Function CreateLineFrame( nSectId As Integer, nSectLayId As Integer, nPartId As Integer) As Integer
Private Function CreateLineFrame(nSectId As Integer, nSectLayId As Integer, nPartId As Integer) As Integer
' Porto la sezione nel piano opportuno e calcolo il vettore di estrusione
Dim vtExtr As Vector3d
If m_CurrAx = 0 Then
@@ -869,7 +944,7 @@ Public Class FrameCutPageUC
Return nSurfId
End Function
Private Function CreateArcFrame( nSectId As Integer, nSectLayId As Integer, nPartId As Integer) As Integer
Private Function CreateArcFrame(nSectId As Integer, nSectLayId As Integer, nPartId As Integer) As Integer
' Recupero ingombro locale della sezione
Dim b3Sect As New BBox3d
EgtGetBBox(nSectId, GDB_BB.STANDARD, b3Sect)
@@ -912,22 +987,22 @@ Public Class FrameCutPageUC
' Creo la superficie swept
Dim dSectRotDeg As Double = 90 + dAngIniDeg
EgtRotate(nSectLayId, ptStart, Vector3d.Z_AX(), dSectRotDeg, GDB_RT.LOC)
Dim nSurfId As Integer = EgtCreateSurfTmSwept( nSurfLayId, nSectId, nGuideId, True, EPS_STM)
Dim nSurfId As Integer = EgtCreateSurfTmSwept(nSurfLayId, nSectId, nGuideId, True, EPS_STM)
Return nSurfId
End Function
Private Function CreateCurveFrame( nSectId As Integer, nSectLayId As Integer, nGuideId As Integer, nGuideLayId As Integer, nPartId As Integer) As Integer
Private Function CreateCurveFrame(nSectId As Integer, nSectLayId As Integer, nGuideId As Integer, nGuideLayId As Integer, nPartId As Integer) As Integer
' Recupero flag lavorazione da lato opposto
Dim bOthSide As Boolean = False
EgtGetInfo( nPartId, INFO_FRAME_OTHSIDE, bOthSide)
EgtGetInfo(nPartId, INFO_FRAME_OTHSIDE, bOthSide)
' Recupero dati inizio guida
Dim ptStart As Point3d
EgtStartPoint(nGuideId, nPartId, ptStart)
Dim vtStart As Vector3d
EgtStartVector(nGuideId, nPartId, vtStart)
' Creo riferimento per sezione
dim frSect As New Frame3d
frSect.Setup( ptStart, -vtStart)
Dim frSect As New Frame3d
frSect.Setup(ptStart, -vtStart)
' Porto la sezione in questo riferimento
EgtChangeGroupFrame(nSectLayId, frSect)
' Recupero ingombro locale della sezione
@@ -935,16 +1010,16 @@ Public Class FrameCutPageUC
EgtGetBBox(nSectId, GDB_BB.STANDARD, b3Sect)
' Recupero ingombro locale della guida
Dim b3Guide As New BBox3d
EgtGetBBox( nGuideId, GDB_BB.STANDARD, b3Guide)
b3Guide.ToLoc( frSect)
EgtGetBBox(nGuideId, GDB_BB.STANDARD, b3Guide)
b3Guide.ToLoc(frSect)
' Muovo sezione dalla parte interna della curva
If ( Not bOthSide And Math.Abs( b3Guide.Min().x) > Math.Abs( b3Guide.Max().x)) OrElse
( bOthSide And Math.Abs( b3Guide.Min().x) <= Math.Abs( b3Guide.Max().x)) Then
Dim vtMove As New Vector3d( - b3Sect.Max().x, -b3Sect.Min().y, 0)
EgtMove( nSectId, vtMove)
If (Not bOthSide And Math.Abs(b3Guide.Min().x) > Math.Abs(b3Guide.Max().x)) OrElse
(bOthSide And Math.Abs(b3Guide.Min().x) <= Math.Abs(b3Guide.Max().x)) Then
Dim vtMove As New Vector3d(-b3Sect.Max().x, -b3Sect.Min().y, 0)
EgtMove(nSectId, vtMove)
Else
Dim vtMove As New Vector3d( - b3Sect.Min().x, -b3Sect.Min().y, 0)
EgtMove( nSectId, vtMove)
Dim vtMove As New Vector3d(-b3Sect.Min().x, -b3Sect.Min().y, 0)
EgtMove(nSectId, vtMove)
End If
' Recupero o creo layer per la superficie
Dim nSurfLayId As Integer = EgtGetFirstNameInGroup(nPartId, NAME_SURF)
@@ -956,25 +1031,12 @@ Public Class FrameCutPageUC
End If
EgtSetColor(nSurfLayId, COL_FRAME())
' Creo la superficie swept
Dim nSurfId As Integer = EgtCreateSurfTmSwept( nSurfLayId, nSectId, nGuideId, True, EPS_STM)
Dim nSurfId As Integer = EgtCreateSurfTmSwept(nSurfLayId, nSectId, nGuideId, True, EPS_STM)
Return nSurfId
End Function
Private Function InsertPartInRawPart(nPartId As Integer) As Boolean
' Determino ingombro del pezzo
Dim PartBox As New BBox3d
EgtGetBBoxGlob(nPartId, GDB_BB.EXACT + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, PartBox)
' Determino ingombro di eventuali pezzi già presenti
Dim OtherBox As New BBox3d
Dim nId2 As Integer = EgtGetFirstPartInRawPart(m_nRawId)
While nId2 <> GDB_ID.NULL
Dim TmpBox As New BBox3d
If EgtGetBBoxGlob(nId2, GDB_BB.EXACT + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, TmpBox) Then
OtherBox.Add(TmpBox)
End If
nId2 = EgtGetNextPartInRawPart(nId2)
End While
' Determino distanza da spessore lama
' Determino distanza (interasse cornici) da spessore lama oppure offset
Dim dMinDist As Double = 0
Dim dSawThick As Double = 0
Dim dOffsXIntery As Double = 0
@@ -991,16 +1053,36 @@ Public Class FrameCutPageUC
Else
dMinDist = dSawThick + 5 * EPS_SMALL
End If
'If dOffsXIntery <= dSawThick Then
' dMinDist = dSawThick + 5 * EPS_SMALL
' EgtOutLog("WARNINGS: Saw tickness is more width then interaxis")
'Else
' dMinDist = dOffsXIntery + 5 * EPS_SMALL
'End If
Else
EgtOutLog("Not found current saw for frames mindist")
dMinDist = dOffsXIntery
End If
If m_CurrAx = 4 Then
Dim nCountFrame As Integer = 0
Dim nIdOtherFrame As Integer = EgtGetFirstPartInRawPart(m_nRawId)
While nIdOtherFrame <> GDB_ID.NULL
nCountFrame += 1
nIdOtherFrame = EgtGetNextPartInRawPart(nIdOtherFrame)
End While
EgtAddPartToRawPart(nPartId, New Point3d(0, 0, 0), EgtGetFirstRawPart())
Return AdjustPartInGenericRawPart(nCountFrame, dMinDist)
End If
' Determino ingombro del pezzo
Dim PartBox As New BBox3d
EgtGetBBoxGlob(nPartId, GDB_BB.EXACT + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, PartBox)
' Determino ingombro di eventuali pezzi già presenti
Dim OtherBox As New BBox3d
Dim nId2 As Integer = EgtGetFirstPartInRawPart(m_nRawId)
While nId2 <> GDB_ID.NULL
Dim TmpBox As New BBox3d
If EgtGetBBoxGlob(nId2, GDB_BB.EXACT + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, TmpBox) Then
OtherBox.Add(TmpBox)
End If
nId2 = EgtGetNextPartInRawPart(nId2)
End While
' Inserisco il pezzo nel grezzo
Dim ptIns As Point3d
If OtherBox.IsEmpty() Then
@@ -1027,11 +1109,95 @@ Public Class FrameCutPageUC
ptIns.y = m_dKerf
End If
End If
Dim dOffsZ As Double = 0
StringToLen(OffsZTxBx.Text, dOffsZ)
ptIns.z = (m_RawBox.Max().z - m_RawBox.Min().z) - (PartBox.Max().z - PartBox.Min().z) - dOffsZ
ptIns.z = Math.Max(ptIns.z, 0)
Return EgtAddPartToRawPart(nPartId, ptIns, EgtGetFirstRawPart())
End Function
Public Function AdjustPartInGenericRawPart(Optional nCountOtherFrame As Integer = 0, Optional dMinDist As Double = 0) As Boolean
' --- Eseguo una traslazione per portare il FRAME sul punto iniziale della guida (NON NEL PUNTO MINIMO DEL BOX!) ---
Dim nTruePartId As Integer = EgtGetFirstPartInRawPart(m_nRawId)
' Recupero layer e curva della guida
Dim nGuideLayId As Integer = EgtGetFirstNameInGroup(nTruePartId, NAME_GUIDE)
If nGuideLayId = GDB_ID.NULL Then Return True
Dim nGuideId As Integer = EgtGetFirstInGroup(nGuideLayId)
' Recupero il layer e il contorno della sezione
Dim nSectLayId As Integer = EgtGetFirstNameInGroup(nTruePartId, NAME_SECT)
Dim nSectId As Integer = EgtGetFirstInGroup(nSectLayId)
' Aggiusto la poszione del pezzo: punto medio della guida sul punto medio del lato selezionato
Dim ptMid As Point3d
EgtMidPoint(nGuideId, GDB_RT.GLOB, ptMid)
Dim vtTrasl As Vector3d = m_ptMidLineDir - ptMid
vtTrasl.z = 0
EgtMove(nTruePartId, vtTrasl)
' Porto il pezzo dentro al grezzo
Dim vtPerp As New Vector3d
EgtStartVector(nGuideId, GDB_RT.GLOB, vtPerp)
vtPerp.Rotate(Vector3d.Z_AX, 90)
' Definisco il frame su cui iniziare a lavorare
Dim ptS As New Point3d
EgtStartPoint(nGuideId, GDB_RT.GLOB, ptS)
Dim vtDir As New Vector3d
EgtStartVector(nGuideId, GDB_RT.GLOB, vtDir)
Dim frSect As New Frame3d(ptS, vtDir, vtPerp, Vector3d.Z_AX)
' Costruisco il BBox nel riferimento indicato
Dim BBoxRef As New BBox3d
EgtGetBBoxRef(nTruePartId, GDB_BB.EXACT + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, frSect, BBoxRef)
' Nella grafica i nomi dei parametri di offset devono diventare "Perp" e "Orto" oppure un solo parametro "Orto"?
Dim dOffsXy As Double = 0
StringToLen(OffsXyTxBx.Text, dOffsXy)
dOffsXy = (dOffsXy + BBoxRef.DimY) + (dMinDist + BBoxRef.DimY) * nCountOtherFrame
EgtMove(nTruePartId, vtPerp * dOffsXy)
' Ritaglio il volume del pezzo per occupare il grezzo
Dim nSurfLayId As Integer = EgtGetFirstNameInGroup(nTruePartId, "Surf")
Dim nSurfId As Integer = EgtGetFirstInGroup(nSurfLayId)
' Recupero una copia del grezzo
Dim nCopyRawId As Integer = EgtCopyGlob(EgtGetFirstNameInGroup(m_nRawId, "RawSolid"), nSurfLayId)
EgtSetName(nCopyRawId, "SurfTrimmed")
EgtSurfTmIntersect(nCopyRawId, nSurfId)
' Assegno colori e trasparenza
EgtSetColor(nCopyRawId, COL_FRAME)
EgtSetAlpha(nCopyRawId, 100)
EgtErase(nSurfId)
' Recupero il box in coordinate locali dell'ingombro del pezzo
Dim ptSlast As New Point3d
EgtStartPoint(nGuideId, GDB_RT.GLOB, ptSlast)
Dim frSectLast As New Frame3d(ptSlast, vtDir, vtPerp, Vector3d.Z_AX)
Dim BBoxRefLast As New BBox3d
EgtGetBBoxRef(nCopyRawId, GDB_BB.EXACT + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, frSect, BBoxRefLast)
' Ricalcolo la lunghezza della guida
Dim dLenGUide As Double = 0
EgtCurveLength(nGuideId, dLenGUide)
Dim pt1 As New Point3d
EgtStartPoint(nGuideId, GDB_RT.GLOB, pt1)
EgtTrimExtendCurveByLen(nGuideId, -BBoxRefLast.Min.x, pt1)
Dim pt2 As New Point3d
EgtEndPoint(nGuideId, GDB_RT.GLOB, pt2)
EgtTrimExtendCurveByLen(nGuideId, BBoxRefLast.Max.x - dLenGUide, pt2)
' riposizione l'origine della sezione
Dim pt3 As New Point3d
EgtStartPoint(nGuideId, GDB_RT.GLOB, pt3)
EgtMove(nSectId, New Vector3d(pt3 - pt1), GDB_RT.GLOB)
EgtDraw()
'EgtSaveFile("C:\EgtData\OmagCUT\Temp\BOB.nge", NGE.BIN)
Return True
End Function
End Class
+1 -5
View File
@@ -1218,17 +1218,13 @@ Class MainWindow
m_DirectCutPageUC.m_ControlsDirectCutUC.m_GridCut.GridCut_Unloaded(sender, e)
Case ControlsDirectCutUC.DirectCutPages.FlatteningCut
m_DirectCutPageUC.m_ControlsDirectCutUC.m_FlatteningCut.FlatteningCut_Unloaded(sender, e)
End Select
Select Case m_DirectCutPageUC.m_ControlsDirectCutUC1.m_ActiveDirectCutPage
Case ControlsDirectCutUC.DirectCutPages.CopyTemplate
m_DirectCutPageUC.m_ControlsDirectCutUC1.m_CopyTemplate.CopyTemplate_Unloaded(sender, e)
Case ControlsDirectCutUC.DirectCutPages.Polishing
m_DirectCutPageUC.m_ControlsDirectCutUC1.m_Polishing.Polishing_Unloaded(sender, e)
Case ControlsDirectCutUC1.DirectCutPages.SawTest
Case ControlsDirectCutUC.DirectCutPages.SawTest
m_DirectCutPageUC.m_ControlsDirectCutUC1.m_SawTest.SawTest_Unloaded(sender, e)
End Select
Return True
End Function
+2 -4
View File
@@ -782,9 +782,9 @@ Public Class CurrentProjectPageUC
If GetPrivateProfileInt(S_GENERAL, K_ENABLEDXFPARK, 0, m_MainWindow.GetIniFile) <> 0 Then
' Gestione visulizzazione lista pezzi in parcheggio
Dim sNewFileName As String = SelParkIndWD.GetPathCurrProj()
SelParkIndWD.CopyImgSvg(sPath, Nothing)
SelParkIndWD.CopyImgSvg(sPath)
SelParkIndWD.sActualProj = String.Empty
SelParkIndWD.CopyImgSvg(sNewFileName, Nothing)
SelParkIndWD.CopyImgSvg(sNewFileName)
End If
'--------------------------------------------------------------------------------
@@ -798,8 +798,6 @@ Public Class CurrentProjectPageUC
m_MruFiles.Add(sPath)
' Dichiaro progetto non modificato
EgtResetModified()
EgtOutLog("PROJECT " & CurrProjName & " SAVED")
Return True
End Function
+1 -1
View File
@@ -514,7 +514,7 @@ Public Class OpenPageUC
' Gestione visulizzazione lista pezzi in parcheggio
Dim nProj As Integer = m_MainWindow.m_CurrentProjectPageUC.GetCurrentProject()
Dim sNewFileName As String = m_MainWindow.GetSaveDir() & "\" & Math.Abs(nProj).ToString("D4") & "_ParkInd_"
SelParkIndWD.CopyImgSvg(sNewFileName, Nothing, OpenScene.GetCtx)
SelParkIndWD.CopyImgSvg(sNewFileName, OpenScene.GetCtx)
SelParkIndWD.sActualProj = String.Empty
'--------------------------------------------------------------------------------
+25 -5
View File
@@ -100,18 +100,38 @@ Public Class ProjectMgrUC
' Scelta tavola della macchina
Dim nTabInd As Integer = ChooseTable()
' Ricarico la lista dei parcheggi del progetto precedente a quello nuovo
' Creo una copia di tutte le immagini usata nella lista dei parcheggi
Dim ListParkInd As New List(Of ParkInd)
SelParkIndWD.LoadParkInd(ListParkInd)
' Creo nuovo progetto
m_CurrProjPage.NewProject(nTabInd, bRetainParkedParts)
' Gestione visulizzazione lista pezzi in parcheggio
Dim sNewFileName As String = SelParkIndWD.GetPathCurrProj()
SelParkIndWD.CopyImgSvg(sNewFileName, ListParkInd)
' Gestione visulizzazione lista pezzi in parcheggio
m_MainWindow.m_CadCutPageUC.m_NestPage.ReloadListParkInd()
Dim sNewFileName As String = SelParkIndWD.GetPathCurrProj()
SelParkIndWD.CopyImgSvg(sNewFileName)
'Dim Extension As String = ".svg"
'If Not MainWindow.m_bShowSVGParkInd Then Extension = ".png"
'For Each ItemParkInd As ParkInd In ListParkInd
' If ItemParkInd.Ind <> 0 And ItemParkInd.Ind <> 999 And ItemParkInd.nPartInPark > 0 Then
' Try
' Dim sNewFile As String = sNewFileName & ItemParkInd.Ind.ToString & Extension
' If MainWindow.m_bShowSVGParkInd Then
' WriteMyXML(sNewFile, ItemParkInd.LocalMyCanvas)
' Else
' If File.Exists(sNewFile) Then
' File.Delete(sNewFile)
' End If
' File.Copy(If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img), sNewFile)
' End If
' Catch ex As Exception
' EgtOutLog("Copia immagine " & If(Extension = ".svg", ItemParkInd.Svg, ItemParkInd.Img) & " di ParkInd non roiscita")
' End Try
' End If
'Next
m_MainWindow.m_CadCutPageUC.m_NestPage.ReloadListParkInd()
' Gestione stato FastGrid
m_MainWindow.m_CadCutPageUC.m_FastGridSlabManager.OnPostNewProject()