- in BLADETOWASTE -> CutWholeWaste, in caso di taglio da due lati, si fa per ultima la lavorazione che va verso l'alto

This commit is contained in:
luca.mazzoleni
2025-07-18 16:20:57 +02:00
parent bba5d13084
commit caf8e5f144
+14 -1
View File
@@ -512,6 +512,14 @@ local function GetDualSideCutStrategy( Proc, OptionalParameters)
-- se lama ci arriva si assegnano utensili e profondità da ritornare
if ToolInfo.nToolIndex and ToolInfo.dResidualDepth < 10 * GEO.EPS_SMALL then
-- si deve decidere se fare per primo il taglio opposto oppure no
local bIsOppositeCutFirst = false
local vtTemp = EdgeToMachine.vtN ^ FaceToMachine.vtN
local bIsEdgeLeftSide = vtTemp:getZ() < 10 * GEO.EPS_SMALL
if ( TOOLS[ToolInfo.nToolIndex].bIsCCW and bIsEdgeLeftSide) or ( not TOOLS[ToolInfo.nToolIndex].bIsCCW and not bIsEdgeLeftSide) then
bIsOppositeCutFirst = true
end
CuttingParametersList = {
{
nToolIndex = ToolInfo.nToolIndex,
@@ -520,7 +528,8 @@ local function GetDualSideCutStrategy( Proc, OptionalParameters)
{
nToolIndex = ToolInfo.nToolIndex,
dDepthToMachine = dDepthToMachine
}
},
bIsOppositeCutFirst = bIsOppositeCutFirst
}
else
EdgeToMachine = nil
@@ -592,6 +601,10 @@ local function CutWholeWaste( Proc, Part, OptionalParameters)
dExtendAfterTail = dExtendAfterTail,
bReduceBladePath = bReduceBladePath
}
-- se necessario, si inverte l'ordine delle lavorazioni per avere il secondo taglio verso l'alto
if not CuttingParametersList.bIsOppositeCutFirst then
OptionalParametersFaceByBlade, OptionalParametersFaceByBladeDouble = OptionalParametersFaceByBladeDouble, OptionalParametersFaceByBlade
end
Cutting = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParametersFaceByBlade)
CuttingDouble = FaceByBlade.Make( Proc, Part, Proc.Faces[1], EdgeToMachine, OptionalParametersFaceByBladeDouble)