Merge branch 'develop' into feature/DoubleCut

This commit is contained in:
luca.mazzoleni
2025-04-30 23:56:03 +02:00
2 changed files with 40 additions and 26 deletions
+17 -12
View File
@@ -8,7 +8,8 @@ local BeamLib = require( 'BeamLib')
local BeamData = require( 'BeamData')
local MachiningLib = require( 'MachiningLib')
local SPLITCUT = require( 'SPLITCUT')
local DiceCut = require( 'DiceCut')
-- strategie di base
local BladeToWaste = require('BLADETOWASTE')
-- Tabella per definizione modulo
local TAILCUT = {}
@@ -73,20 +74,24 @@ function TAILCUT.Make( bAddMachining, Proc, Part, CustomParameters)
-- se abilitato, faccio tagli di PRECUT a zero (come SPLIT)
if Strategy.Parameters.bExecutePreCut then
Strategy.dOffset = Part.dRestLength
Strategy.bIsPreCut = true
MachiningsToAdd = SPLITCUT.Execute( Proc, Part, Strategy)
end
-- TODO: funzione che calcola tagli data una faccia
-- BladeToWaste( Proc, Part)
local Faces = {}
local Face1 = {}
local Face2 = {}
local OptionalParameters = {}
Face1.ptCenter = Proc.Faces[1].ptCenter
Face1.vtN = Proc.Faces[1].vtN
OptionalParameters.b3BoxToDicing = Part.b3Raw
Faces = DiceCut.GetDice( Part, Face1, Face2, OptionalParameters)
Strategy.Machining, _ = BladeToWaste.Make( Proc, Part, OptionalParameters)
if Strategy.Machining and #Strategy.Machining > 0 then
for i = 1, #Strategy.Machining do
local TempList = {}
TempList.Splitting = Strategy.Machining[i]
if i == #Strategy.Machining then
TempList.Splitting.sUserNotes = 'Cut;'
TempList.AuxiliaryData = { bIsSplitOrCut = true}
else
TempList.Splitting.sUserNotes = 'Precut;'
end
table.insert( MachiningsToAdd, TempList)
end
end
end
-- aggiungo lavorazioni trovate alla lista generale
+23 -14
View File
@@ -201,10 +201,13 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
local OptionalParameters = {}
OptionalParameters.nToolIndex = Strategy.SplitStrategy[1].ToolInfo.nToolIndex
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
if not Strategy.bIsPreCut then
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
Machining.AuxiliaryData.bIsSplitOrCut = true
end
OptionalParameters.dRadialStepSpan = 0
Machining.AuxiliaryData.bIsSplitOrCut = true
local EdgeToMachine = SPLITCUT.GetEdgeToMachine( Proc, -Y_AX())
Machining.Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
@@ -220,7 +223,9 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
-- Taglio lato frontale
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
OptionalParameters.dDepthToMachine = Part.dWidth / 2 + BeamData.CUT_EXTRA_MIN
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Presplit;', 'Precut;')
if not Strategy.bIsPreCut then
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Presplit;', 'Precut;')
end
OptionalParameters.dRadialStepSpan = 0
local EdgeToMachine = SPLITCUT.GetEdgeToMachine( Proc, -Y_AX())
@@ -235,11 +240,12 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
OptionalParameters.nToolIndex = Strategy.SplitStrategy[1].ToolInfo.nToolIndex
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
OptionalParameters.dDepthToMachine = Part.dWidth / 2 + BeamData.CUT_EXTRA_MIN
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
if not Strategy.bIsPreCut then
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
Machining.AuxiliaryData.bIsSplitOrCut = true
end
OptionalParameters.dRadialStepSpan = 0
Machining.AuxiliaryData.bIsSplitOrCut = true
EdgeToMachine = SPLITCUT.GetEdgeToMachine( Proc, Y_AX())
Machining.Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
table.insert( Machinings, Machining)
@@ -252,11 +258,12 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
OptionalParameters.nToolIndex = Strategy.SplitStrategy[1].ToolInfo.nToolIndex
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
OptionalParameters.dDepthToMachine = Part.dHeight + BeamData.CUT_EXTRA
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
if not Strategy.bIsPreCut then
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
Machining.AuxiliaryData.bIsSplitOrCut = true
end
OptionalParameters.dRadialStepSpan = 0
Machining.AuxiliaryData.bIsSplitOrCut = true
local EdgeToMachine = SPLITCUT.GetEdgeToMachine( Proc, Z_AX())
Machining.Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
table.insert( Machinings, Machining)
@@ -271,10 +278,11 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
local dExtraMaxMat = ( Strategy.SplitStrategy[1].ToolInfo.dMaxMatBladeFromTop + Strategy.SplitStrategy[2].ToolInfo.dMaxMatBladeFromDown - Part.dHeight - BeamData.CUT_EXTRA_MIN) / 2
OptionalParameters.dDepthToMachine = Strategy.SplitStrategy[1].ToolInfo.dMaxMatBladeFromTop - dExtraMaxMat
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Presplit;', 'Precut;')
if not Strategy.bIsPreCut then
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Presplit;', 'Precut;')
end
OptionalParameters.dRadialStepSpan = 0
local EdgeToMachine = SPLITCUT.GetEdgeToMachine( Proc, Z_AX())
Machining.Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
table.insert( Machinings, Machining)
@@ -287,11 +295,12 @@ function SPLITCUT.Execute( Proc, Part, Strategy)
OptionalParameters.nToolIndex = Strategy.SplitStrategy[2].ToolInfo.nToolIndex
OptionalParameters.dLongitudinalOffset = Strategy.dOffset or 0
OptionalParameters.dDepthToMachine = Strategy.SplitStrategy[2].ToolInfo.dMaxMatBladeFromDown - dExtraMaxMat
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
if not Strategy.bIsPreCut then
OptionalParameters.sUserNotes = EgtIf( Strategy.bSplit, 'Split;', 'Cut;')
Machining.AuxiliaryData.bIsSplitOrCut = true
end
OptionalParameters.dRadialStepSpan = 0
Machining.AuxiliaryData.bIsSplitOrCut = true
EdgeToMachine = SPLITCUT.GetEdgeToMachine( Proc, -Z_AX())
Machining.Splitting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParameters)
table.insert( Machinings, Machining)