Merge branch 'develop' into BladeKeepWastePerpendicularStrip
This commit is contained in:
@@ -414,6 +414,53 @@ local function TestEngagement( sBladeEngagement, Parameters, OptionalParameters)
|
||||
end
|
||||
end
|
||||
|
||||
-- se attacco tangenziale standard non possibile si prova l'attacco tangenziale speciale tutto da un lato
|
||||
if not LeadInOut.Tangent then
|
||||
-- prima si prova l'invertito (il più frequente)
|
||||
TangentLeadInOut = LeadInOutLib.CalculateLeadInOut( 'SpecialTangentInverted', Parameters, LeadInOutOptionalParameters)
|
||||
-- check extracorsa nei punti di attacco
|
||||
PointsOnToolTipCenter = {
|
||||
PreSimulationLib.GetPointOnToolTipCenter( TangentLeadInOut.LeadIn.ptPoint, vtHead, Face.vtN, Edge.vtN, Tool),
|
||||
PreSimulationLib.GetPointOnToolTipCenter( TangentLeadInOut.LeadOut.ptPoint, vtHead, Face.vtN, Edge.vtN, Tool)
|
||||
}
|
||||
bOutOfStrokeTangent = PreSimulationLib.CheckOutOfStrokeFromPoints( PointsOnToolTipCenter, vtHead, nSCC, Tool)
|
||||
-- attacco tangenziale non in extracorsa: si verifica se è in collisione
|
||||
if not bOutOfStrokeTangent then
|
||||
CheckCollisionOptionalParameters.PointsToCheck = {}
|
||||
table.insert( CheckCollisionOptionalParameters.PointsToCheck, TangentLeadInOut.LeadIn.ptPoint)
|
||||
table.insert( CheckCollisionOptionalParameters.PointsToCheck, TangentLeadInOut.LeadOut.ptPoint)
|
||||
local bCollisionFoundTangent, bMoveAfterSplitTangent = PreSimulationLib.CheckCollision( CheckCollisionParameters, CheckCollisionOptionalParameters)
|
||||
-- attacco tangenziale possibile
|
||||
if not bCollisionFoundTangent then
|
||||
LeadInOut.Tangent = TangentLeadInOut
|
||||
LeadInOut.Tangent.bMoveAfterSplit = bMoveAfterSplitTangent
|
||||
end
|
||||
end
|
||||
|
||||
if not LeadInOut.Tangent then
|
||||
-- se speciale invertito non applicabile si prova lo speciale non invertito
|
||||
TangentLeadInOut = LeadInOutLib.CalculateLeadInOut( 'SpecialTangent', Parameters, LeadInOutOptionalParameters)
|
||||
-- check extracorsa nei punti di attacco
|
||||
PointsOnToolTipCenter = {
|
||||
PreSimulationLib.GetPointOnToolTipCenter( TangentLeadInOut.LeadIn.ptPoint, vtHead, Face.vtN, Edge.vtN, Tool),
|
||||
PreSimulationLib.GetPointOnToolTipCenter( TangentLeadInOut.LeadOut.ptPoint, vtHead, Face.vtN, Edge.vtN, Tool)
|
||||
}
|
||||
bOutOfStrokeTangent = PreSimulationLib.CheckOutOfStrokeFromPoints( PointsOnToolTipCenter, vtHead, nSCC, Tool)
|
||||
-- attacco tangenziale non in extracorsa: si verifica se è in collisione
|
||||
if not bOutOfStrokeTangent then
|
||||
CheckCollisionOptionalParameters.PointsToCheck = {}
|
||||
table.insert( CheckCollisionOptionalParameters.PointsToCheck, TangentLeadInOut.LeadIn.ptPoint)
|
||||
table.insert( CheckCollisionOptionalParameters.PointsToCheck, TangentLeadInOut.LeadOut.ptPoint)
|
||||
local bCollisionFoundTangent, bMoveAfterSplitTangent = PreSimulationLib.CheckCollision( CheckCollisionParameters, CheckCollisionOptionalParameters)
|
||||
-- attacco tangenziale possibile
|
||||
if not bCollisionFoundTangent then
|
||||
LeadInOut.Tangent = TangentLeadInOut
|
||||
LeadInOut.Tangent.bMoveAfterSplit = bMoveAfterSplitTangent
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- se disponibili più attacchi si sceglie il più corto, altrimenti quello possibile
|
||||
if LeadInOut.Perpendicular and LeadInOut.Tangent then
|
||||
if LeadInOut.Perpendicular.dTotalLength > LeadInOut.Tangent.dTotalLength + 10 then
|
||||
|
||||
Reference in New Issue
Block a user