ProcessCut.Classify - Aggiunta Q18 che evita che la trave ruoti in caso di taglio di testa se la dimensione del taglio richiede dicecut.

This commit is contained in:
daniele.nicoli
2026-05-20 13:36:03 +02:00
parent fd0a52ad6b
commit 723713707f
+3 -2
View File
@@ -63,6 +63,7 @@ function ProcessCut.Classify( Proc, b3Raw)
if ( BD.C_SIMM and BD.DOWN_HEAD) or BD.TURN then
return true
end
local bForceNoBeamRotation = EgtGetInfo( Proc.Id, 'Q18', 'd') or 0 == 1
-- recupero i dati del taglio
local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT)
-- calcolo le massime estensioni lineari orizzontale e verticale della faccia
@@ -73,7 +74,7 @@ function ProcessCut.Classify( Proc, b3Raw)
then
-- confronto queste estensioni con la massima dimensione del DiceCut (impossibile lavorare se entrambe maggiori)
if DimH > BD.MAX_DIM_DICE + 100 * GEO.EPS_SMALL and DimV > BD.MAX_DIM_DICE + 100 * GEO.EPS_SMALL then
return true, true
return true, not bForceNoBeamRotation
end
end
-- se è un taglio da sotto, lo verifico
@@ -96,7 +97,7 @@ function ProcessCut.Classify( Proc, b3Raw)
_, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, 0)
-- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli oppure se tipo PF, taglio inclinato in Y e non taglio singolo orizzontale)
if DimH > 2 * BD.MAX_DIM_DICE or ( BD.C_SIMM and ( abs( vtN:getY()) > 0.1) and dMaxMat < DimH + BD.CUT_EXTRA) then
return true, true
return true, not bForceNoBeamRotation
end
end
return true, false