Inizio inserimento tagli separazione in Splitting
This commit is contained in:
+83
-29
@@ -1,4 +1,5 @@
|
||||
Imports EgtUILib
|
||||
Imports System.Security.Cryptography
|
||||
Imports EgtUILib
|
||||
|
||||
Friend Module CamAuto
|
||||
|
||||
@@ -32,7 +33,7 @@ Friend Module CamAuto
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Friend Function AddWaterJetMachining( nOperId As Integer, ByRef nWarn As Integer) As Boolean
|
||||
Friend Function AddWaterJetMachining(nOperId As Integer, ByRef nWarn As Integer) As Boolean
|
||||
EgtLuaCreateGlobTable("CAM")
|
||||
SetLuaStandardCamParams()
|
||||
EgtLuaSetGlobIntVar("CAM.OPERID", nOperId)
|
||||
@@ -157,6 +158,59 @@ Friend Module CamAuto
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Friend Function ResetAllSplitCut() As Boolean
|
||||
Dim bOk As Boolean = True
|
||||
Dim nIdCurrMachGroup As Integer = EgtGetCurrMachGroup()
|
||||
EgtResetCurrMachGroup()
|
||||
Dim nParId As Integer = EgtGetFirstPart()
|
||||
While nParId <> GDB_ID.NULL
|
||||
Dim nNextParId As Integer = EgtGetNextPart(nParId)
|
||||
Dim sName As String = String.Empty
|
||||
If EgtGetName(nParId, sName) AndAlso sName.Contains(SPLIT_CUT & "_" & nIdCurrMachGroup.ToString) Then
|
||||
' Elimino il pezzo
|
||||
bOk = bOk And EgtErase(nParId)
|
||||
End If
|
||||
nParId = nNextParId
|
||||
End While
|
||||
EgtSetCurrMachGroup(nIdCurrMachGroup)
|
||||
'' Ricerca nei grezzi dei pezzi (devono essere ricercati tra quelli presenti nei grezzi)
|
||||
'Dim bOk As Boolean = True
|
||||
'' Recupero il numero di fasi presenti nel progetto
|
||||
'Dim nPhaseCount As Integer = EgtGetPhaseCount()
|
||||
'Dim nRawId As Integer = EgtGetFirstRawPart()
|
||||
'While nRawId <> GDB_ID.NULL
|
||||
' Dim nParId As Integer = EgtGetFirstPartInRawPart(nRawId)
|
||||
' While nParId <> GDB_ID.NULL
|
||||
' Dim nNextParId As Integer = EgtGetNextPartInRawPart(nParId)
|
||||
' ' verifico se il pezzo passato è un taglio di sepatazione (il nome deve contenere "SpliCut")
|
||||
' Dim sName As String = String.Empty
|
||||
' If EgtGetName(nParId, sName) AndAlso sName.Contains(SPLIT_CUT) Then
|
||||
' ' Elimino i riferimenti ai grezzi
|
||||
' If EgtRemovePartFromRawPart(nParId) Then
|
||||
' ' Elimino il pezzo
|
||||
' bOk = bOk And EgtErase(nParId)
|
||||
' End If
|
||||
' End If
|
||||
' nParId = nNextParId
|
||||
' End While
|
||||
' nRawId = EgtGetNextRawPart(nRawId)
|
||||
'End While
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Friend Function RemoveCurrentSplitCut(nIdSplitCut As Integer) As Boolean
|
||||
Dim bOk As Boolean = True
|
||||
Dim nIdCurrMachGroup As Integer = EgtGetCurrMachGroup()
|
||||
EgtResetCurrMachGroup()
|
||||
Dim sName As String = String.Empty
|
||||
If EgtGetName(nIdSplitCut, sName) AndAlso sName.Contains(SPLIT_CUT & "_" & nIdCurrMachGroup.ToString) Then
|
||||
' Elimino il pezzo
|
||||
bOk = EgtErase(nIdSplitCut)
|
||||
End If
|
||||
EgtSetCurrMachGroup(nIdCurrMachGroup)
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
' verifico che il contorno passato non sia stato separato
|
||||
Friend Function VerifyOutLoopIsClosed(nIdLayerOutLoop As Integer) As Boolean
|
||||
Dim nIdMy As Integer = EgtGetFirstInGroup(nIdLayerOutLoop)
|
||||
@@ -260,7 +314,7 @@ Friend Module CamAuto
|
||||
EgtGetGroupObjs(EgtGetFirstNameInGroup(nPartId, NAME_UNDERDRILL)) = 0 Then
|
||||
Return True
|
||||
End If
|
||||
' Se tutti i pezzi
|
||||
' Se tutti i pezzi
|
||||
Else
|
||||
' Salvo fase attualmente corrente
|
||||
Dim nOriPhase As Integer = EgtGetCurrPhase()
|
||||
@@ -401,9 +455,9 @@ Friend Module CamAuto
|
||||
Dim sTool2 As String = String.Empty
|
||||
EgtGetMachiningParam(MCH_MP.TUUID, sTuuid)
|
||||
EgtTdbGetToolFromUUID(sTuuid, sTool)
|
||||
If String.IsNullOrWhiteSpace( sTool) Then
|
||||
If String.IsNullOrWhiteSpace(sTool) Then
|
||||
Dim sMchTool As String = ""
|
||||
EgtGetMachiningParam( MCH_MP.TOOL, sMchTool)
|
||||
EgtGetMachiningParam(MCH_MP.TOOL, sMchTool)
|
||||
bOk = False
|
||||
If sMissingTools.IndexOf(sMchTool) = -1 Then
|
||||
sMissingTools = sMissingTools & sMchTool & ", "
|
||||
@@ -417,7 +471,7 @@ Friend Module CamAuto
|
||||
sTool2 = sTool & "-2"
|
||||
End If
|
||||
If String.Compare(sTool, CurrentMachine.sCurrSaw) <> 0 AndAlso
|
||||
( String.IsNullOrWhiteSpace( sTool2) OrElse String.Compare(sTool2, CurrentMachine.sCurrSaw) <> 0) AndAlso
|
||||
(String.IsNullOrWhiteSpace(sTool2) OrElse String.Compare(sTool2, CurrentMachine.sCurrSaw) <> 0) AndAlso
|
||||
String.Compare(sTool, CurrentMachine.sCurrDripSaw) <> 0 Then
|
||||
bOk = False
|
||||
If sMissingTools.IndexOf(sTool) = -1 Then
|
||||
@@ -483,7 +537,7 @@ Friend Module CamAuto
|
||||
Dim nOperId As Integer = EgtGetFirstOperation()
|
||||
While nOperId <> GDB_ID.NULL
|
||||
' verifico sia una lavorazione valida di taglio con lama
|
||||
If IsValidMachining( nOperId) And EgtGetOperationType( nOperId) = MCH_OY.SAWING Then
|
||||
If IsValidMachining(nOperId) And EgtGetOperationType(nOperId) = MCH_OY.SAWING Then
|
||||
' verifica interferenza
|
||||
Dim nFlag As Integer = FMI_TYPE.NONE
|
||||
If Not VerifyComposedMachining(nOperId, nFlag) Then
|
||||
@@ -604,8 +658,8 @@ Friend Module CamAuto
|
||||
If nOriLeadIn <> MCH_SAW_LI.STRICT Then
|
||||
EgtSetMachiningParam(MCH_MP.LEADINTYPE, MCH_SAW_LI.STRICT)
|
||||
Dim dUserAddLen As Double = 0
|
||||
EgtGetInfo( nMchId, INFO_MCH_USER_SAL, dUserAddLen)
|
||||
EgtRemoveInfo( nMchId, INFO_MCH_USER_SAL)
|
||||
EgtGetInfo(nMchId, INFO_MCH_USER_SAL, dUserAddLen)
|
||||
EgtRemoveInfo(nMchId, INFO_MCH_USER_SAL)
|
||||
Dim dAddLen As Double = 0
|
||||
EgtGetMachiningParam(MCH_MP.STARTADDLEN, dAddLen)
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, dAddLen - dUserAddLen - dSafeLen)
|
||||
@@ -624,8 +678,8 @@ Friend Module CamAuto
|
||||
If nOriLeadOut <> MCH_SAW_LO.STRICT Then
|
||||
EgtSetMachiningParam(MCH_MP.LEADOUTTYPE, MCH_SAW_LO.STRICT)
|
||||
Dim dUserAddLen As Double = 0
|
||||
EgtGetInfo( nMchId, INFO_MCH_USER_EAL, dUserAddLen)
|
||||
EgtRemoveInfo( nMchId, INFO_MCH_USER_EAL)
|
||||
EgtGetInfo(nMchId, INFO_MCH_USER_EAL, dUserAddLen)
|
||||
EgtRemoveInfo(nMchId, INFO_MCH_USER_EAL)
|
||||
Dim dAddLen As Double = 0
|
||||
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, dAddLen - dUserAddLen - dSafeLen)
|
||||
@@ -956,13 +1010,13 @@ Friend Module CamAuto
|
||||
Dim nRawId As Integer = EgtGetFirstRawPart()
|
||||
If nRawId = GDB_ID.NULL Then Return False
|
||||
' Se non ci sono pezzi, esco
|
||||
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart( nRawId)
|
||||
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart(nRawId)
|
||||
If nPart1Id = GDB_ID.NULL Then Return True
|
||||
' Verifico se cornice curva
|
||||
Dim nDir As Integer = 0
|
||||
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
|
||||
Dim bSwap As Boolean = ( nDir = 0)
|
||||
Dim bCurved As Boolean = ( nDir >= 2)
|
||||
Dim bSwap As Boolean = (nDir = 0)
|
||||
Dim bCurved As Boolean = (nDir >= 2)
|
||||
' Recupero la lavorazione corrente di sgrossatura con lama
|
||||
Dim sCurrSawRou As String = CurrentMachine.sCurrSawRoughing
|
||||
If String.IsNullOrEmpty(sCurrSawRou) Then Return True
|
||||
@@ -989,8 +1043,8 @@ Friend Module CamAuto
|
||||
' Imposto la geometria
|
||||
EgtSetMachiningGeometry(vId)
|
||||
' Imposto trim iniziale e finale
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
|
||||
' Se cornice curva, imposto SCC
|
||||
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
|
||||
' Applico la lavorazione
|
||||
@@ -1005,13 +1059,13 @@ Friend Module CamAuto
|
||||
Dim nRawId As Integer = EgtGetFirstRawPart()
|
||||
If nRawId = GDB_ID.NULL Then Return False
|
||||
' Se non ci sono pezzi, esco
|
||||
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart( nRawId)
|
||||
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart(nRawId)
|
||||
If nPart1Id = GDB_ID.NULL Then Return True
|
||||
' Verifico se cornice curva
|
||||
Dim nDir As Integer = 0
|
||||
EgtGetInfo( nPart1Id, INFO_FRAME_DIR, nDir)
|
||||
Dim bSwap As Boolean = ( nDir = 0)
|
||||
Dim bCurved As Boolean = ( nDir >= 2)
|
||||
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
|
||||
Dim bSwap As Boolean = (nDir = 0)
|
||||
Dim bCurved As Boolean = (nDir >= 2)
|
||||
' Recupero la lavorazione corrente di finitura con lama
|
||||
Dim sCurrSawFin As String = CurrentMachine.sCurrSawFinishing
|
||||
If String.IsNullOrEmpty(sCurrSawFin) Then Return True
|
||||
@@ -1048,8 +1102,8 @@ Friend Module CamAuto
|
||||
' Imposto la geometria
|
||||
EgtSetMachiningGeometry(vId)
|
||||
' Imposto trim iniziale e finale
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
|
||||
' Se cornice curva, imposto SCC
|
||||
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
|
||||
' Applico la lavorazione
|
||||
@@ -1064,13 +1118,13 @@ Friend Module CamAuto
|
||||
Dim nRawId As Integer = EgtGetFirstRawPart()
|
||||
If nRawId = GDB_ID.NULL Then Return False
|
||||
' Se non ci sono pezzi, esco
|
||||
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart( nRawId)
|
||||
Dim nPart1Id As Integer = EgtGetFirstPartInRawPart(nRawId)
|
||||
If nPart1Id = GDB_ID.NULL Then Return True
|
||||
' Verifico se cornice curva
|
||||
Dim nDir As Integer = 0
|
||||
EgtGetInfo(nPart1Id, INFO_FRAME_DIR, nDir)
|
||||
Dim bSwap As Boolean = ( nDir = 0)
|
||||
Dim bCurved As Boolean = ( nDir >= 2)
|
||||
Dim bSwap As Boolean = (nDir = 0)
|
||||
Dim bCurved As Boolean = (nDir >= 2)
|
||||
' Recupero la lavorazione corrente di spatolatura con lama
|
||||
Dim sCurrSawSideFin As String = CurrentMachine.sCurrSawSideFinishing
|
||||
If String.IsNullOrEmpty(sCurrSawSideFin) Then Return True
|
||||
@@ -1091,8 +1145,8 @@ Friend Module CamAuto
|
||||
' Imposto la geometria
|
||||
EgtSetMachiningGeometry(vId)
|
||||
' Imposto trim iniziale e finale
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If( bSwap, -dTrimEnd, -dTrimStart))
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If( bSwap, -dTrimStart, -dTrimEnd))
|
||||
EgtSetMachiningParam(MCH_MP.STARTADDLEN, If(bSwap, -dTrimEnd, -dTrimStart))
|
||||
EgtSetMachiningParam(MCH_MP.ENDADDLEN, If(bSwap, -dTrimStart, -dTrimEnd))
|
||||
' Se cornice curva, imposto SCC
|
||||
If bCurved Then EgtSetMachiningParam(MCH_MP.SOLCHOICETYPE, MCH_SCC.ADIR_NEAR)
|
||||
' Applico la lavorazione
|
||||
@@ -1231,14 +1285,14 @@ Friend Module CamAuto
|
||||
dStartDist = dEndDist
|
||||
dEndDist = dTemp
|
||||
End If
|
||||
' altrimenti
|
||||
' altrimenti
|
||||
Else
|
||||
Dim vtSide As Vector3d
|
||||
' Se faccia non limitata da altre o sopra la limitante
|
||||
If bFree Then
|
||||
EgtSetMachiningParam(MCH_MP.FACEUSE, MCH_MIL_FU.ORTUP_DOWN)
|
||||
vtSide = Vector3d.Z_AX()
|
||||
' altrimenti è stata trovata una faccia adiacente limitante
|
||||
' altrimenti è stata trovata una faccia adiacente limitante
|
||||
Else
|
||||
If vtAdjN.x > 10 * EPS_SMALL Then
|
||||
EgtSetMachiningParam(MCH_MP.FACEUSE, MCH_MIL_FU.ORTUP_LEFT)
|
||||
|
||||
@@ -260,6 +260,8 @@ Module ConstMach
|
||||
Public Const INFO_AUX_SPLIT_WJ As String = "AUX_SPLIT_WJ"
|
||||
' Info in OutLoop per punto inzio lavorazione WaterJet
|
||||
Public Const INFO_START As String = "Start"
|
||||
' Nome dei tagli diretti inseriti in fase di Splitting
|
||||
Public Const SPLIT_CUT As String = "SplitCut"
|
||||
|
||||
' Nome di pezzo che è una cornice
|
||||
Public Const NAME_FRAME As String = "Frame"
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
<Button Command="{Binding MachOptionsCommand}" ToolTip="{Binding OptionsToolTip}" Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/TopCommandBar/Options.png" Stretch="Uniform" />
|
||||
</Button>
|
||||
<Button Command="{Binding SetUpCommand}" ToolTip="{Binding SetUpToolTip}"
|
||||
Style="{StaticResource ToolBar_TextButton}" Width="70" Content="{Binding SetUpMsg}"
|
||||
Background="{Binding SetUp_Background}"/>
|
||||
<Button Command="{Binding SetUpCommand}" ToolTip="{Binding SetUpToolTip}" Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/NewIcons/ToolChangerPos.png" Stretch="Uniform" />
|
||||
</Button>
|
||||
<Button Command="{Binding WaterjetDbCommand}" ToolTip="{Binding WaterjetDbToolTip}"
|
||||
Style="{StaticResource ToolBar_TextButton}" Width="70" Content="{Binding WaterjetDbMsg}" Visibility="{Binding WjDb_Visibility}"/>
|
||||
</DockPanel>
|
||||
|
||||
+16
-3
@@ -128,6 +128,9 @@
|
||||
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DotNetZip, Version=1.16.0.0, Culture=neutral, PublicKeyToken=6583c7c814667745, processorArchitecture=MSIL">
|
||||
<HintPath>packages\DotNetZip.1.16.0\lib\net40\DotNetZip.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EgtPHOTOLib, Version=2.3.1.1, Culture=neutral, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\EgtProg\Dll32\EgtPHOTOLib.dll</HintPath>
|
||||
@@ -138,9 +141,6 @@
|
||||
<Reference Include="EgtWPFLib5">
|
||||
<HintPath>..\..\EgtProg\DllD32\EgtWPFLib5.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Ionic.Zip">
|
||||
<HintPath>..\..\EgtProg\OmagOFFICE\Ionic.Zip.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationFramework.Aero" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
|
||||
@@ -628,6 +628,7 @@
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<AppDesigner Include="My Project\" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
@@ -923,6 +924,18 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\TopCommandBar\Modify.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\Crea-taglio.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\Attrezzaggio.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\Rimuovi-taglio.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\NewIcons\Modifica-taglio.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagOFFICE\OmagOFFICER32.exe
|
||||
|
||||
@@ -239,16 +239,21 @@
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<UniformGrid Columns="4" Margin="0,0,0,-2.5">
|
||||
|
||||
|
||||
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,2.5,0,1">
|
||||
|
||||
<!--Bottone invisibile per permetter il corretto allineamento-->
|
||||
<!--
|
||||
<Button Content="{Binding }" Grid.Column="0"
|
||||
Style="{StaticResource OptionPanel_TextWrapButton}"
|
||||
Command="{Binding }"
|
||||
Visibility="Hidden"
|
||||
Margin="0,0,1,0"/>
|
||||
Margin="0,0,1,0"/>-->
|
||||
|
||||
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
|
||||
|
||||
|
||||
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="2" Margin="1,0,0,0">
|
||||
<Button ToolTip="{Binding AllExtendMsg}"
|
||||
Style="{StaticResource Split_Button_Img}"
|
||||
Command="{Binding AllExtendCommand}"
|
||||
@@ -276,7 +281,37 @@
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,2.5,0,1">
|
||||
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
|
||||
<ToggleButton ToolTip="{Binding AllExtendMsg}"
|
||||
Style="{StaticResource Split_ToggleButton_Img}"
|
||||
IsChecked="{Binding CreateCut_IsChecked}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,0,0,0">
|
||||
<StackPanel>
|
||||
<Image Source="/Resources/NewIcons/Crea-taglio.png"
|
||||
Style="{StaticResource ImgButton}"/>
|
||||
</StackPanel>
|
||||
</ToggleButton>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Visibility="{Binding AllExtendBtnVisibility}" Grid.Column="1" Margin="1,0,0,0">
|
||||
<ToggleButton ToolTip="{Binding AllExtendMsg}"
|
||||
Style="{StaticResource Split_ToggleButton_Img}"
|
||||
IsChecked="{Binding RemoveCut_IsChecked}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,0,0,0">
|
||||
<StackPanel>
|
||||
<Image Source="/Resources/NewIcons/Rimuovi-taglio.png"
|
||||
Style="{StaticResource ImgButton}"/>
|
||||
</StackPanel>
|
||||
</ToggleButton>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.Drawing
|
||||
Imports System.Security.Cryptography
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtCustomWindow
|
||||
|
||||
Public Class SplitModeVM
|
||||
Inherits VMBase
|
||||
@@ -39,6 +42,16 @@ Public Class SplitModeVM
|
||||
Private m_ptSrtBridge As New Point3d
|
||||
Private m_ptEndBridge As New Point3d
|
||||
|
||||
' Punti per creazione tagli odi separazione
|
||||
Private m_ptStartPoint As Point3d
|
||||
Private m_bGetStartPoint As Boolean = False
|
||||
Private m_ptEndPoint As Point3d
|
||||
Private m_bGetEndPoint As Boolean = False
|
||||
Private m_IdSplitLine As Integer = GDB_ID.NULL
|
||||
Private m_IdSplitGroup As Integer = GDB_ID.NULL
|
||||
Private m_IdSplitGroupLayer As Integer = GDB_ID.NULL
|
||||
Private m_IdCurrRawSolid As Integer = GDB_ID.NULL
|
||||
|
||||
' Flag di pagina attiva
|
||||
Private m_bActive As Boolean = False
|
||||
' Drag
|
||||
@@ -292,6 +305,38 @@ Public Class SplitModeVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#Region "SPLIT CUT"
|
||||
|
||||
Private m_CreateCut_IsChecked As Boolean
|
||||
Public Property CreateCut_IsChecked As Boolean
|
||||
Get
|
||||
Return m_CreateCut_IsChecked
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_CreateCut_IsChecked = value
|
||||
m_RemoveCut_IsChecked = False
|
||||
NotifyPropertyChanged(NameOf(RemoveCut_IsChecked))
|
||||
CreateCutIsChecked()
|
||||
NotifyPropertyChanged(NameOf(CreateCut_IsChecked))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_RemoveCut_IsChecked As Boolean
|
||||
Public Property RemoveCut_IsChecked As Boolean
|
||||
Get
|
||||
Return m_RemoveCut_IsChecked
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_RemoveCut_IsChecked = value
|
||||
m_CreateCut_IsChecked = False
|
||||
NotifyPropertyChanged(NameOf(CreateCut_IsChecked))
|
||||
RemoveCutIsChecked()
|
||||
NotifyPropertyChanged(NameOf(RemoveCut_IsChecked))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' Split Cut
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property OnOffMsg As String
|
||||
@@ -380,13 +425,13 @@ Public Class SplitModeVM
|
||||
|
||||
Public ReadOnly Property ModifStartMsg As String
|
||||
Get
|
||||
Return EgtMsg( 90373) ' Inizio Modif.
|
||||
Return EgtMsg(90373) ' Inizio Modif.
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ModifEndMsg As String
|
||||
Get
|
||||
Return EgtMsg( 90374) ' Fine Modif.
|
||||
Return EgtMsg(90374) ' Fine Modif.
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -536,6 +581,13 @@ Public Class SplitModeVM
|
||||
' eventualmente interrompo la creazione dei ponticelli
|
||||
DeselectWJBridgesPart()
|
||||
|
||||
' Interrompo la creazione di tagli di separazione
|
||||
ResetSplitCut()
|
||||
m_CreateCut_IsChecked = False
|
||||
NotifyPropertyChanged(NameOf(CreateCut_IsChecked))
|
||||
m_RemoveCut_IsChecked = False
|
||||
NotifyPropertyChanged(NameOf(RemoveCut_IsChecked))
|
||||
|
||||
' Rimuovo evidenziazione e numeri
|
||||
RemoveMarkAndNumbers()
|
||||
' Ripristino colori lavorazioni
|
||||
@@ -730,6 +782,30 @@ Public Class SplitModeVM
|
||||
EnableButtons()
|
||||
End Sub
|
||||
|
||||
' Aggiorno le lavorazioni
|
||||
Private Sub PreviewMachinigList()
|
||||
' Visualizzo solo anteprime di lavorazioni della fase
|
||||
ShowOnePhaseMachiningPreview(m_nCurrPhase)
|
||||
' Preparo la lista delle lavorazioni
|
||||
CalculateSplitMachList(m_nCurrPhase, m_MachiningList)
|
||||
' azzero i contatori delle lavorazioni
|
||||
m_nCountSawing = 0
|
||||
m_nCountWaterjetting = 0
|
||||
m_nCountOtherMachining = 0
|
||||
' Aggiorno visualizzazione delle lavorazioni
|
||||
EgtEmptyGroup(m_nNbrGrpId)
|
||||
For nI As Integer = 0 To m_MachiningList.Count() - 1
|
||||
' sistemo colore
|
||||
ColorMachining(m_MachiningList(nI))
|
||||
' assegno numerazione
|
||||
NumberDirectionMachining(nI)
|
||||
' conto il numero di tipi di lavorazioni
|
||||
CountMachiningType(m_MachiningList(nI), m_nCountSawing, m_nCountWaterjetting, m_nCountOtherMachining)
|
||||
Next
|
||||
' Preparo la lista degli Item
|
||||
ShowMachiningList()
|
||||
End Sub
|
||||
|
||||
Private Sub ShowMachiningList()
|
||||
m_ItemList.Clear()
|
||||
For i As Integer = 1 To m_MachiningList.Count()
|
||||
@@ -777,14 +853,14 @@ Public Class SplitModeVM
|
||||
If OmagOFFICEMap.refMachiningTabVM.ByHand Then
|
||||
' Ci deve essere almeno 1 taglio disabilitato e 1 e 1 solo passante
|
||||
OmagOFFICEMap.refMachiningTabVM.NextIsEnabled = (GetDisabledCutsCount() > 0 And GetSplitCutsCount() = 1)
|
||||
' Altrimenti
|
||||
' Altrimenti
|
||||
Else
|
||||
' Ci deve essere almeno 1 taglio disabilitato e almeno 1 passante oppure fase successiva alla prima
|
||||
OmagOFFICEMap.refMachiningTabVM.NextIsEnabled = (GetDisabledCutsCount() > 0 And
|
||||
(GetSplitCutsCount() > 0 Or m_nCurrPhase > 1)) Or
|
||||
CurrentMachine.bRawFinalMove
|
||||
End If
|
||||
' altrimenti sto solo visualizzando
|
||||
' altrimenti sto solo visualizzando
|
||||
Else
|
||||
OmagOFFICEMap.refMachiningTabVM.NextIsEnabled = (m_nCurrPhase < EgtGetPhaseCount())
|
||||
End If
|
||||
@@ -1200,6 +1276,42 @@ Public Class SplitModeVM
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub CreateCutIsChecked()
|
||||
' attivo la scena per renderla attiva
|
||||
If m_CreateCut_IsChecked Then
|
||||
' OmagOFFICEMap.refSceneHostVM.MainScene.SetStatusSelPoint()
|
||||
OmagOFFICEMap.refSceneHostVM.MainScene.SetStatusNull()
|
||||
ResetSplitCut()
|
||||
Else
|
||||
' ????????
|
||||
ResetSplitCut()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub RemoveCutIsChecked()
|
||||
If m_RemoveCut_IsChecked Then
|
||||
OmagOFFICEMap.refSceneHostVM.MainScene.SetStatusNull()
|
||||
ResetSplitCut()
|
||||
Else
|
||||
' ????????
|
||||
ResetSplitCut()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub ResetSplitCut()
|
||||
EgtResetMark(m_IdCurrRawSolid)
|
||||
If m_IdSplitGroup <> GDB_ID.NULL Then
|
||||
EgtErase(m_IdSplitGroup)
|
||||
EgtDraw()
|
||||
End If
|
||||
m_bGetStartPoint = False
|
||||
m_bGetEndPoint = False
|
||||
m_IdSplitLine = GDB_ID.NULL
|
||||
m_IdSplitGroup = GDB_ID.NULL
|
||||
m_IdSplitGroupLayer = GDB_ID.NULL
|
||||
m_IdCurrRawSolid = GDB_ID.NULL
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
#Region "COMMANDS"
|
||||
@@ -2695,6 +2807,87 @@ Public Class SplitModeVM
|
||||
|
||||
#End Region ' Quality
|
||||
|
||||
' Genera la lavorazione associata al percoso indicato
|
||||
Private Function CreateSingleCut() As Boolean
|
||||
Dim bOk As Boolean = False
|
||||
' Verifico sia definito il punto iniziale e il grezzo
|
||||
If Not (m_bGetStartPoint And m_bGetEndPoint) AndAlso m_IdCurrRawSolid <> GDB_ID.NULL Then
|
||||
Return False
|
||||
End If
|
||||
' Spessore grezzo
|
||||
Dim ptRawMin, ptRawMax As Point3d
|
||||
If Not EgtGetRawPartBBox(m_IdCurrRawSolid, ptRawMin, ptRawMax) Then Return False
|
||||
Dim dRawHeight As Double = ptRawMax.z - ptRawMin.z
|
||||
' Recupero spessore lama corrente
|
||||
Dim sSaw As String = CurrentMachine.sCurrSaw
|
||||
Dim sSawing As String = CurrentMachine.sCurrSawing
|
||||
EgtTdbSetCurrTool(sSaw)
|
||||
Dim dThick As Double = 0
|
||||
' Se è impostata una lavorazione di lama
|
||||
If Not String.IsNullOrEmpty(sSawing) Then
|
||||
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
|
||||
End If
|
||||
'' Rimuovo eventuale vecchio pezzo per taglio diretto
|
||||
'EraseDirectCutPart()
|
||||
|
||||
' Disattivo eventuali lavorazioni presenti
|
||||
' DeactivateAllMachinings()
|
||||
|
||||
' Recupero pezzo per il taglio diretto
|
||||
Dim nPartId = m_IdSplitGroup
|
||||
|
||||
'-------------------------------------------------------------------------------------------------
|
||||
'' Applico la correzione di spessore lama -> anche se Offset=0! ver_2.5b1
|
||||
'Dim dTotOffset = m_dOffset
|
||||
'If m_bSawTh Then
|
||||
' dTotOffset += If(m_dOffset > 0, dThick, -dThick)
|
||||
' EgtOffsetCurve(nCutId, dTotOffset, OFF_TYPE.EXTEND)
|
||||
'Else
|
||||
' EgtOffsetCurve(nCutId, dTotOffset, OFF_TYPE.EXTEND)
|
||||
'End If
|
||||
'' Imposto affondamento e angolo di fianco sul taglio
|
||||
'EgtSetInfo(nCutId, INFO_DEPTH, m_dDepth)
|
||||
'EgtSetInfo(nCutId, INFO_SIDE_ANGLE, m_dAngV)
|
||||
'-------------------------------------------------------------------------------------------------
|
||||
|
||||
' Calcolo punto di inserimento nel grezzo
|
||||
Dim ptMin, ptMax As Point3d
|
||||
EgtGetBBoxGlob(nPartId, GDB_BB.STANDARD, ptMin, ptMax)
|
||||
Dim ptTabOri As Point3d
|
||||
EgtGetTableRef(1, ptTabOri)
|
||||
'Dim ptIns As Point3d = ptMin + (ptTabOri - ptRawMin)
|
||||
Dim ptOri As New Point3d
|
||||
Dim ptIns As Point3d = ptOri + (ptMin - ptRawMin)
|
||||
ptIns.z = dRawHeight
|
||||
' Imposto la fase corrente
|
||||
EgtSetCurrPhase(m_nCurrPhase)
|
||||
' Inserisco il taglio nel grezzo : CamAuto.GetCurrentRaw()
|
||||
EgtAddPartToRawPart(nPartId, ptIns, m_IdCurrRawSolid)
|
||||
' Inserisco la lavorazione
|
||||
bOk = AddMachinings(nPartId) AndAlso UpdateAllMachiningsToolpaths()
|
||||
' Spengo la linea
|
||||
If bOk Then
|
||||
EgtSetStatus(m_IdSplitLine, GDB_ST.OFF)
|
||||
End If
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Private Function RemoveCut(nId As Integer) As Boolean
|
||||
Dim bOk As Boolean = False
|
||||
Dim nIdCurrMachGroup As Integer = EgtGetCurrMachGroup()
|
||||
Dim ParentId As Integer = EgtGetParent(nId)
|
||||
While ParentId <> GDB_ID.NULL
|
||||
Dim sCutName As String = String.Empty
|
||||
EgtGetName(ParentId, sCutName)
|
||||
If sCutName.Contains(SPLIT_CUT & "_" & nIdCurrMachGroup.ToString) Then
|
||||
bOk = RemoveCurrentSplitCut(ParentId)
|
||||
Return bOk
|
||||
End If
|
||||
ParentId = EgtGetParent(ParentId)
|
||||
End While
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
Friend Sub OnMouseDownScene(sender As Object, e As System.Windows.Forms.MouseEventArgs)
|
||||
' Verifico di essere il gestore attivo e non in modalità sola visualizzazione
|
||||
If Not m_bActive OrElse OmagOFFICEMap.refMachiningTabVM.IsShow Then Return
|
||||
@@ -2728,6 +2921,64 @@ Public Class SplitModeVM
|
||||
Return
|
||||
End If
|
||||
|
||||
' Recupero le coordinate del punto corrente (solo se esiste la selezione di un grezzo corrente -> vedi sotto)
|
||||
If m_CreateCut_IsChecked AndAlso m_IdCurrRawSolid <> GDB_ID.NULL Then
|
||||
Dim ptCurr As Point3d
|
||||
EgtUnProjectPoint(e.Location, ptCurr)
|
||||
If m_bGetStartPoint And Not m_bGetEndPoint Then
|
||||
m_ptEndPoint = ptCurr
|
||||
m_bGetEndPoint = True
|
||||
End If
|
||||
If Not m_bGetStartPoint Then
|
||||
m_ptStartPoint = ptCurr
|
||||
m_bGetStartPoint = True
|
||||
m_IdSplitGroup = EgtCreateGroup(GDB_ID.ROOT)
|
||||
Dim nIdCurrMachGroup As Integer = EgtGetCurrMachGroup()
|
||||
EgtSetName(m_IdSplitGroup, SPLIT_CUT & "_" & nIdCurrMachGroup.ToString & "." & EgtGetCurrPhase())
|
||||
m_IdSplitGroupLayer = EgtCreateGroup(m_IdSplitGroup)
|
||||
EgtSetName(m_IdSplitGroupLayer, NAME_OUTLOOP)
|
||||
End If
|
||||
If m_bGetStartPoint And m_bGetEndPoint Then
|
||||
' procedo a disegnare la linea tra i due punti indicati
|
||||
Dim ptRawMin, ptRawMax As Point3d
|
||||
If EgtGetRawPartBBox(m_IdCurrRawSolid, ptRawMin, ptRawMax) Then
|
||||
m_ptStartPoint.z = ptRawMax.z
|
||||
m_ptEndPoint.z = ptRawMax.z
|
||||
EgtModifyCurveEndPoint(m_IdSplitLine, m_ptEndPoint)
|
||||
CreateSingleCut()
|
||||
' Resetto tutte le variabili utilizzate
|
||||
EgtResetMark(m_IdCurrRawSolid)
|
||||
m_bGetStartPoint = False
|
||||
m_bGetEndPoint = False
|
||||
m_IdSplitLine = GDB_ID.NULL
|
||||
m_IdSplitGroup = GDB_ID.NULL
|
||||
m_IdSplitGroupLayer = GDB_ID.NULL
|
||||
m_IdCurrRawSolid = GDB_ID.NULL
|
||||
' Aggiorno la visualizzazione
|
||||
PreviewMachinigList()
|
||||
EgtDraw()
|
||||
End If
|
||||
End If
|
||||
Return
|
||||
ElseIf m_CreateCut_IsChecked AndAlso m_IdCurrRawSolid = GDB_ID.NULL Then
|
||||
' Verifico se selezionato grezzo
|
||||
EgtSetObjFilterForSelWin(False, False, True, False, False)
|
||||
Dim nSelRaw As Integer
|
||||
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSelRaw)
|
||||
Dim nIdRaw As Integer = EgtGetFirstObjInSelWin()
|
||||
While nIdRaw <> GDB_ID.NULL
|
||||
Dim sRawName As String = String.Empty
|
||||
If EgtGetName(nIdRaw, sRawName) AndAlso sRawName = NAME_RAW_SOLID Then
|
||||
m_IdCurrRawSolid = EgtGetParent(nIdRaw)
|
||||
EgtSetMark(m_IdCurrRawSolid)
|
||||
EgtDraw()
|
||||
Return
|
||||
End If
|
||||
nIdRaw = EgtGetNextObjInSelWin()
|
||||
End While
|
||||
Return
|
||||
End If
|
||||
|
||||
' Reset drag
|
||||
m_nDragInd = -1
|
||||
m_nDragType = 0
|
||||
@@ -2739,6 +2990,16 @@ Public Class SplitModeVM
|
||||
EgtSelect(e.Location, Scene.DIM_SEL, Scene.DIM_SEL, nSel)
|
||||
Dim nId As Integer = EgtGetFirstObjInSelWin()
|
||||
While nId <> GDB_ID.NULL
|
||||
' --------------------------------- SPLIT CUT ---------------------------------
|
||||
' Se attiva l'eliminazione di un taglio di separazione
|
||||
If m_RemoveCut_IsChecked Then
|
||||
RemoveCut(nId)
|
||||
' Aggiorno la visualizzazione
|
||||
PreviewMachinigList()
|
||||
EgtDraw()
|
||||
Return
|
||||
End If
|
||||
' --------------------------------- SPLIT CUT ---------------------------------
|
||||
' Verifico sia un attacco o uscita di taglio con lama
|
||||
Dim nType As Integer = 0
|
||||
Dim sName As String = ""
|
||||
@@ -2828,6 +3089,28 @@ Public Class SplitModeVM
|
||||
Return
|
||||
End If
|
||||
|
||||
' Recupero le coordinate del punto corrente
|
||||
If m_CreateCut_IsChecked Then
|
||||
If m_bGetStartPoint And Not m_bGetEndPoint Then
|
||||
m_ptEndPoint = ptCurr
|
||||
End If
|
||||
If m_bGetStartPoint And Not m_bGetEndPoint Then
|
||||
' procedo a disegnare la linea tra i due punti indicati
|
||||
Dim ptRawMin, ptRawMax As Point3d
|
||||
If EgtGetRawPartBBox(m_IdCurrRawSolid, ptRawMin, ptRawMax) Then
|
||||
m_ptStartPoint.z = ptRawMax.z
|
||||
m_ptEndPoint.z = ptRawMax.z
|
||||
If m_IdSplitLine = GDB_ID.NULL Then
|
||||
m_IdSplitLine = EgtCreateLine(m_IdSplitGroupLayer, m_ptStartPoint, m_ptEndPoint)
|
||||
Else
|
||||
EgtModifyCurveEndPoint(m_IdSplitLine, m_ptEndPoint)
|
||||
End If
|
||||
EgtDraw()
|
||||
End If
|
||||
End If
|
||||
Return
|
||||
End If
|
||||
|
||||
' Se drag non abilitato o in corso
|
||||
If m_nDragInd = -1L Or m_bDragging Then Return
|
||||
m_bDragging = True
|
||||
@@ -2878,19 +3161,19 @@ Public Class SplitModeVM
|
||||
dUeal = dOrigUeal + dDelta
|
||||
' Se c'è limite alla lunghezza libera
|
||||
If m_MachiningList(m_nDragInd).m_dEndFreeLen < FREELEN_INF Then
|
||||
' Recupero sicurezza in corner interno
|
||||
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, CurrentMachine.sMachIniFile), 10 * EPS_SMALL)
|
||||
' Recupero lunghezza baffo del taglio
|
||||
Dim nPvId As Integer = GDB_ID.NULL
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
|
||||
Dim dDT As Double = 0
|
||||
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
|
||||
dUeal = Math.Min(dUeal, m_MachiningList(m_nDragInd).m_dEndFreeLen - dDT - dCornerSafety)
|
||||
End If
|
||||
' Modifica della lavorazione
|
||||
EgtSetCurrMachining(nOperId)
|
||||
Dim dAddLen As Double = 0
|
||||
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
|
||||
' Recupero sicurezza in corner interno
|
||||
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, CurrentMachine.sMachIniFile), 10 * EPS_SMALL)
|
||||
' Recupero lunghezza baffo del taglio
|
||||
Dim nPvId As Integer = GDB_ID.NULL
|
||||
EgtGetInfo(EgtGetFirstNameInGroup(nOperId, NAME_PREVIEW), INFO_PV_ONPART_ID, nPvId)
|
||||
Dim dDT As Double = 0
|
||||
EgtGetInfo(EgtGetFirstGroupInGroup(nPvId), "DT", dDT)
|
||||
dUeal = Math.Min(dUeal, m_MachiningList(m_nDragInd).m_dEndFreeLen - dDT - dCornerSafety)
|
||||
End If
|
||||
' Modifica della lavorazione
|
||||
EgtSetCurrMachining(nOperId)
|
||||
Dim dAddLen As Double = 0
|
||||
EgtGetMachiningParam(MCH_MP.ENDADDLEN, dAddLen)
|
||||
If dAddLen - dOrigUeal < -10 * EPS_SMALL Then
|
||||
m_bDragging = False
|
||||
Return
|
||||
@@ -2951,10 +3234,10 @@ Public Class SplitModeVM
|
||||
Return m_sName
|
||||
End Get
|
||||
Set(value As String)
|
||||
If value <> m_sName Then
|
||||
m_sName = value
|
||||
NotifyPropertyChanged("Name")
|
||||
End If
|
||||
If value <> m_sName Then
|
||||
m_sName = value
|
||||
NotifyPropertyChanged("Name")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
@@ -1994,6 +1994,8 @@ Public Class NestingTabVM
|
||||
ResetAllStartCurv()
|
||||
' cancello tutti i ponticelli disegnati
|
||||
ResetAllBridges()
|
||||
' cancello tutti i tagli di separazione disegnati
|
||||
ResetAllSplitCut()
|
||||
' Cancello tutte le lavorazioni
|
||||
CamAuto.EraseMachinings(GDB_ID.NULL)
|
||||
' Reinserisco tutte le lavorazioni piane
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="DotNetZip" version="1.16.0" targetFramework="net40-client" />
|
||||
</packages>
|
||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+18621
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
+18116
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user