- in PreCollisionLib e MachiningLib refactoring di CheckCollisionWithAxis
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user