- in PreCollisionLib e MachiningLib refactoring di CheckCollisionWithAxis

This commit is contained in:
luca.mazzoleni
2025-12-04 19:02:02 +01:00
parent ad1ea741d0
commit 56ca5a74b9
2 changed files with 38 additions and 10 deletions
+27 -8
View File
@@ -290,6 +290,7 @@ end
-- TODO da gestire riduzione percorso
function MachiningLib.GetBladeEngagement( Parameters, OptionalParameters)
-- parametri obbligatori
local Face = Parameters.Face
local Edge = Parameters.Edge
local Part = Parameters.Part
@@ -307,14 +308,23 @@ function MachiningLib.GetBladeEngagement( Parameters, OptionalParameters)
local bCollisionFound
local bMoveAfterSplitZ, bMoveAfterSplitC, bMoveAfterSplitAB
bCollisionFound, bMoveAfterSplitZ = PreCollisionLib.CheckCollisionWithAxis( 'Z', Edge, Face.vtN, Face.vtN, Part, Tool, dDepthToMachine)
local CheckCollisionParameters = {
Edge = Edge,
vtNFace = Face.vtN,
vtHead = Face.vtN,
Part = Part,
Tool = Tool,
dDepthToMachine = dDepthToMachine
}
bCollisionFound, bMoveAfterSplitZ = PreCollisionLib.CheckCollisionWithAxis( 'Z', CheckCollisionParameters)
if not bCollisionFound then
bCollisionFound, bMoveAfterSplitC = PreCollisionLib.CheckCollisionWithAxis( 'C', Edge, Face.vtN, Face.vtN, Part, Tool, dDepthToMachine, bIsDicing)
bCollisionFound, bMoveAfterSplitC = PreCollisionLib.CheckCollisionWithAxis( 'C', CheckCollisionParameters, { bCheckOnlyRestlength = bIsDicing})
end
if not bCollisionFound then
bCollisionFound, bMoveAfterSplitAB = PreCollisionLib.CheckCollisionWithAxis( 'AB', Edge, Face.vtN, Face.vtN, Part, Tool, dDepthToMachine, bIsDicing)
bCollisionFound, bMoveAfterSplitAB = PreCollisionLib.CheckCollisionWithAxis( 'AB', CheckCollisionParameters, { bCheckOnlyRestlength = bIsDicing})
end
-- se nessuna collisione trovata si ritorna lavorazione fattibile, altrimenti si proseguirà al DownUp
@@ -322,7 +332,7 @@ function MachiningLib.GetBladeEngagement( Parameters, OptionalParameters)
local sBladeEngagement = 'Standard'
local bMoveAfterSplit = bMoveAfterSplitZ or bMoveAfterSplitC or bMoveAfterSplitAB
return true, sBladeEngagement, bMoveAfterSplit
return true, sBladeEngagement, bMoveAfterSplit, sLeadInOutType
end
end
@@ -337,14 +347,23 @@ function MachiningLib.GetBladeEngagement( Parameters, OptionalParameters)
local bCollisionFound
local bMoveAfterSplitZ, bMoveAfterSplitC, bMoveAfterSplitAB
bCollisionFound, bMoveAfterSplitZ = PreCollisionLib.CheckCollisionWithAxis( 'Z', Edge, Face.vtN, -Face.vtN, Part, Tool, dDepthToMachine)
local CheckCollisionParameters = {
Edge = Edge,
vtNFace = Face.vtN,
vtHead = -Face.vtN,
Part = Part,
Tool = Tool,
dDepthToMachine = dDepthToMachine
}
bCollisionFound, bMoveAfterSplitZ = PreCollisionLib.CheckCollisionWithAxis( 'Z', CheckCollisionParameters)
if not bCollisionFound then
bCollisionFound, bMoveAfterSplitC = PreCollisionLib.CheckCollisionWithAxis( 'C', Edge, Face.vtN, -Face.vtN, Part, Tool, dDepthToMachine)
bCollisionFound, bMoveAfterSplitC = PreCollisionLib.CheckCollisionWithAxis( 'C', CheckCollisionParameters)
end
if not bCollisionFound then
bCollisionFound, bMoveAfterSplitAB = PreCollisionLib.CheckCollisionWithAxis( 'AB', Edge, Face.vtN, -Face.vtN, Part, Tool, dDepthToMachine)
bCollisionFound, bMoveAfterSplitAB = PreCollisionLib.CheckCollisionWithAxis( 'AB', CheckCollisionParameters)
end
-- se si è arrivati qui senza collisioni il DownUp è fattibile
@@ -352,7 +371,7 @@ function MachiningLib.GetBladeEngagement( Parameters, OptionalParameters)
local sBladeEngagement = 'DownUp'
local bMoveAfterSplit = bMoveAfterSplitZ or bMoveAfterSplitC or bMoveAfterSplitAB
return true, sBladeEngagement, bMoveAfterSplit
return true, sBladeEngagement, bMoveAfterSplit, sLeadInOutType
end
return false