|
|
|
@@ -149,44 +149,49 @@ function STR0004.Make( bAddMachining, Proc, Part, CustomParameters)
|
|
|
|
|
return false, Strategy.Result
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- TODO dDistanceToNextPiece è errato, va calcolato tenendo conto dei 3 casi (altro pezzo successivo, ultimo pezzo con dietro grezzo scaricabile, ultimo pezzo con dietro grezzo a perdere)
|
|
|
|
|
local dExtendAfterTail = max( Part.dDistanceToNextPiece - BeamData.CUT_EXTRA, 0)
|
|
|
|
|
if MachiningLib.CanExtendAfterTail( Strategy.Parameters.sCanDamageNextPiece, Part) then
|
|
|
|
|
dExtendAfterTail = 10000
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- calcolo lavorazioni
|
|
|
|
|
local bCanExtendAfterTail = MachiningLib.CanExtendAfterTail( CustomParameters.sCanDamageNextPiece, Part)
|
|
|
|
|
local Mortising = {}
|
|
|
|
|
OptionalParameters = { bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
OptionalParameters = { dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
if Proc.Topology.sName == 'Groove-4-Blind' or Proc.Topology.sName == 'Pocket-5-Blind' then
|
|
|
|
|
-- si lavora tutto il fondo
|
|
|
|
|
local OptionalParameters = { bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
local OptionalParameters = { dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
Mortising = SlotByChainSaw.Make( Proc, Part, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge, OptionalParameters)
|
|
|
|
|
Chainsaw.AddResult( Mortising)
|
|
|
|
|
-- materiale residuo - se possibile si lavora dal lato
|
|
|
|
|
if Chainsaw.Result.Bottom[#Chainsaw.Result.Bottom].dResidualDepth > 10 * GEO.EPS_SMALL and #Proc.MainFaces.SideFaces == 1 then
|
|
|
|
|
if ( Chainsaw.Result.Bottom[#Chainsaw.Result.Bottom].dResidualDepth > 10 * GEO.EPS_SMALL or not Chainsaw.Result.Bottom[#Chainsaw.Result.Bottom].bIsApplicable) and #Proc.MainFaces.SideFaces == 1 then
|
|
|
|
|
if Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge.bIsStartOpen then
|
|
|
|
|
local OptionalParameters = { bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
local OptionalParameters = { dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
Mortising = SlotByChainSaw.Make( Proc, Part, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[1], OptionalParameters)
|
|
|
|
|
elseif Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge.bIsEndOpen then
|
|
|
|
|
local OptionalParameters = { bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
local OptionalParameters = { dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
Mortising = SlotByChainSaw.Make( Proc, Part, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[2], OptionalParameters)
|
|
|
|
|
end
|
|
|
|
|
Chainsaw.AddResult( Mortising)
|
|
|
|
|
end
|
|
|
|
|
elseif Proc.Topology.sName == 'Groove-3-Through' then
|
|
|
|
|
-- si lavora tutto il fondo
|
|
|
|
|
local OptionalParameters = { bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
local OptionalParameters = { dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
Mortising = SlotByChainSaw.Make( Proc, Part, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.BottomEdge, OptionalParameters)
|
|
|
|
|
Chainsaw.AddResult( Mortising)
|
|
|
|
|
-- materiale residuo - si lavorano i lati
|
|
|
|
|
if Chainsaw.Result.Bottom[1].dResidualDepth > 10 * GEO.EPS_SMALL then
|
|
|
|
|
local OptionalParameters = { bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
if ( Chainsaw.Result.Bottom[1].dResidualDepth > 10 * GEO.EPS_SMALL or not Chainsaw.Result.Bottom[#Chainsaw.Result.Bottom].bIsApplicable) then
|
|
|
|
|
local OptionalParameters = { dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
Mortising = SlotByChainSaw.Make( Proc, Part, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[1], OptionalParameters)
|
|
|
|
|
Chainsaw.AddResult( Mortising)
|
|
|
|
|
-- ancora materiale residuo - si lavora da entrambi i lati
|
|
|
|
|
if Chainsaw.Result.Side[1].dResidualDepth > 10 * GEO.EPS_SMALL then
|
|
|
|
|
Chainsaw.Result.Side[1].bIsApplicable = false
|
|
|
|
|
local OptionalParameters = { bStopAtHalfElevation = true, bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
local OptionalParameters = { bStopAtHalfElevation = true, dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
Mortising = SlotByChainSaw.Make( Proc, Part, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[1], OptionalParameters)
|
|
|
|
|
Chainsaw.AddResult( Mortising)
|
|
|
|
|
OptionalParameters = {}
|
|
|
|
|
OptionalParameters = { bStopAtHalfElevation = true, bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
OptionalParameters = { bStopAtHalfElevation = true, dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
Mortising = SlotByChainSaw.Make( Proc, Part, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.SideEdges[2], OptionalParameters)
|
|
|
|
|
Chainsaw.AddResult( Mortising)
|
|
|
|
|
-- lavorando dai due lati non c'è materiale residuo - si può disabilitare la lavorazione del fondo
|
|
|
|
@@ -196,16 +201,16 @@ function STR0004.Make( bAddMachining, Proc, Part, CustomParameters)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
elseif Proc.Topology.sName == 'Tunnel-4-Through' then
|
|
|
|
|
local OptionalParameters = { bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
local OptionalParameters = { dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
Mortising = SlotByChainSaw.Make( Proc, Part, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.OppositeEdges[1], OptionalParameters)
|
|
|
|
|
Chainsaw.AddResult( Mortising)
|
|
|
|
|
if Chainsaw.Result.Opposite[1].dResidualDepth > 10 * GEO.EPS_SMALL then
|
|
|
|
|
Chainsaw.Result.Opposite[1].bIsApplicable = false
|
|
|
|
|
local OptionalParameters = { bStopAtHalfElevation = true, bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
local OptionalParameters = { bStopAtHalfElevation = true, dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
SlotByChainSaw.Make( Proc, Part, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.OppositeEdges[1], OptionalParameters)
|
|
|
|
|
Chainsaw.AddResult( Mortising)
|
|
|
|
|
OptionalParameters = {}
|
|
|
|
|
OptionalParameters = { bStopAtHalfElevation = true, bCanExtendAfterTail = bCanExtendAfterTail}
|
|
|
|
|
OptionalParameters = { bStopAtHalfElevation = true, dExtendAfterTail = dExtendAfterTail}
|
|
|
|
|
SlotByChainSaw.Make( Proc, Part, Proc.MainFaces.LongFaces[1], Proc.MainFaces.LongFaces[1].MainEdges.OppositeEdges[2], OptionalParameters)
|
|
|
|
|
Chainsaw.AddResult( Mortising)
|
|
|
|
|
end
|
|
|
|
|