Merge branch 'AlternativeDiceSize' into develop
This commit is contained in:
@@ -284,7 +284,7 @@ end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- in base a tipo testa e angolo soglia, verifica se la faccia è troppo inclinata per la lavorazione scelta (per DownUp passare vtNFace opposta)
|
||||
local function IsFaceZOutOfRange( vtNFace, Tool)
|
||||
function MachiningLib.IsFaceZOutOfRange( vtNFace, Tool)
|
||||
|
||||
-- lama sopra: angolo negativo troppo basso
|
||||
if Tool.SetupInfo.HeadType.bTop and vtNFace:getZ() < Tool.SetupInfo.GetMinNz( vtNFace, Tool) - GEO.EPS_ZERO then
|
||||
@@ -319,7 +319,7 @@ local function TestEngagement( sBladeEngagement, Parameters, OptionalParameters)
|
||||
end
|
||||
|
||||
-- se l'angolo non può essere raggiunto dall'utensile la lavorazione non è fattibile
|
||||
if IsFaceZOutOfRange( vtHead, Tool) then
|
||||
if MachiningLib.IsFaceZOutOfRange( vtHead, Tool) then
|
||||
return false
|
||||
end
|
||||
|
||||
@@ -354,9 +354,14 @@ local function TestEngagement( sBladeEngagement, Parameters, OptionalParameters)
|
||||
|
||||
-- calcolo e check attacchi
|
||||
local LeadInOut = {}
|
||||
local LeadInOutOptionalParameters = {
|
||||
sRestLengthSideForPreSimulation = OptionalParameters.sRestLengthSideForPreSimulation,
|
||||
bCannotSplitRestLength = OptionalParameters.bCannotSplitRestLength,
|
||||
bMoveAfterSplit = bMoveAfterSplit
|
||||
}
|
||||
|
||||
-- attacco perpendicolare
|
||||
local PerpendicularLeadInOut = LeadInOutLib.CalculateLeadInOut( 'Perpendicular', Parameters)
|
||||
local PerpendicularLeadInOut = LeadInOutLib.CalculateLeadInOut( 'Perpendicular', Parameters, LeadInOutOptionalParameters)
|
||||
-- check extracorsa nei punti di attacco
|
||||
|
||||
PointsOnToolTipCenter = {
|
||||
@@ -380,7 +385,7 @@ local function TestEngagement( sBladeEngagement, Parameters, OptionalParameters)
|
||||
end
|
||||
|
||||
-- attacco tangenziale
|
||||
local TangentLeadInOut = LeadInOutLib.CalculateLeadInOut( 'Tangent', Parameters)
|
||||
local TangentLeadInOut = LeadInOutLib.CalculateLeadInOut( 'Tangent', Parameters, LeadInOutOptionalParameters)
|
||||
-- check extracorsa nei punti di attacco
|
||||
PointsOnToolTipCenter = {
|
||||
PreSimulationLib.GetPointOnToolTipCenter( TangentLeadInOut.LeadIn.ptPoint, vtHead, Face.vtN, Edge.vtN, Tool),
|
||||
@@ -571,7 +576,6 @@ end
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- funzione per cercare utensile tipo LAMA con certe caratteristiche
|
||||
-- TODO da rivedere/completare
|
||||
-- TODO il FindBlade dovrà restituire di utilizzare sempre la lama sopra se l'angolo lo permette, ma avendo un'altezza massima (da macchina) oltre cui il DownUp non sarà fattibile (evita collisioni tra asse e pezzo)
|
||||
function MachiningLib.FindBlade( Proc, ToolSearchParameters)
|
||||
local ToolInfo = {}
|
||||
|
||||
@@ -598,6 +602,8 @@ function MachiningLib.FindBlade( Proc, ToolSearchParameters)
|
||||
local EdgeToMachine = ToolSearchParameters.EdgeToMachine
|
||||
local Part = ToolSearchParameters.Part
|
||||
local bIsDicing = ToolSearchParameters.bIsDicing or false
|
||||
local sRestLengthSideForPreSimulation = ToolSearchParameters.sRestLengthSideForPreSimulation or 'Tail'
|
||||
local bCannotSplitRestLength = ToolSearchParameters.bCannotSplitRestLength or false
|
||||
|
||||
local nBestToolIndex
|
||||
local dBestToolResidualDepth = 0
|
||||
@@ -629,7 +635,9 @@ function MachiningLib.FindBlade( Proc, ToolSearchParameters)
|
||||
dDepthToMachine = min( dElevation, TOOLS[i].dMaxDepth)
|
||||
}
|
||||
local BladeEngagementOptionalParameters = {
|
||||
bIsDicing = bIsDicing
|
||||
bIsDicing = bIsDicing,
|
||||
sRestLengthSideForPreSimulation = sRestLengthSideForPreSimulation,
|
||||
bCannotSplitRestLength = bCannotSplitRestLength
|
||||
}
|
||||
TIMER:startElapsed( 'GetBladeEngagement')
|
||||
bIsBladeOk, CurrentEngagement = MachiningLib.GetBladeEngagement( BladeEngagementParameters, BladeEngagementOptionalParameters)
|
||||
@@ -641,7 +649,7 @@ function MachiningLib.FindBlade( Proc, ToolSearchParameters)
|
||||
|
||||
-- se si ha solo la faccia si può verificare se questa è orientata correttamente
|
||||
elseif FaceToMachine then
|
||||
if IsFaceZOutOfRange( FaceToMachine.vtN, TOOLS[i]) then
|
||||
if MachiningLib.IsFaceZOutOfRange( FaceToMachine.vtN, TOOLS[i]) then
|
||||
bIsToolCompatible = false
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user