Merge branch 'AlternativeDiceSize' into develop

This commit is contained in:
luca.mazzoleni
2026-02-02 13:27:46 +01:00
11 changed files with 349 additions and 109 deletions
+15 -7
View File
@@ -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