From b9037b28f7808529d9babf9b8327c220a00ccffb Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Fri, 10 Jul 2026 10:11:05 +0200 Subject: [PATCH] - in PreSimulationLib la flangia lama si controlla solo con il primo asse (prima veniva controllata inutilmente con tutti gli assi) --- LuaLibs/PreSimulationLib.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/LuaLibs/PreSimulationLib.lua b/LuaLibs/PreSimulationLib.lua index c4c75d6..6e41ad7 100644 --- a/LuaLibs/PreSimulationLib.lua +++ b/LuaLibs/PreSimulationLib.lua @@ -403,6 +403,7 @@ local function CheckCollisionWithAxis( sAxis, MachiningParameters, OptionalParam local sRestLengthSideForPreSimulation = OptionalParameters.sRestLengthSideForPreSimulation or 'Tail' local bCannotSplitRestLength = OptionalParameters.bCannotSplitRestLength or false local vtAux = OptionalParameters.vtAux + local bCheckFlange = OptionalParameters.bCheckFlange -- se normale faccia non parallela a direzione testa c'รจ qualcosa che non va if not AreSameOrOppositeVectorApprox( vtNFace, vtHead) then @@ -426,7 +427,7 @@ local function CheckCollisionWithAxis( sAxis, MachiningParameters, OptionalParam -- se lama con flangia si aggiunge quest'ultima ai solidi di collisione, ipotizzandola grande fino al dMaxDepth + sicurezza local idAddedCollisionSurfTm - if Tool.sType == 'SAW_FLAT' then + if bCheckFlange and Tool.sType == 'SAW_FLAT' then local ptCenterFlange = PointsOnToolTipCenter[i] + vtHead * Tool.dThickness local frHead = Frame3d( ptCenterFlange, vtHead) local dExtraSafety = 2 -- valore empirico che serve nei casi molto inclinati, ci potrebbero essere casi in cui va aumentato @@ -532,7 +533,10 @@ function PreSimulationLib.CheckCollision( Parameters, OptionalParameters) local sR1 = AxesNames[4] -- ultimo asse lineare prima dei rotativi (solitamente Z) si controlla sempre + -- qui si controlla anche la collisione con flangia lama, se necessario + OptionalParametersCheckCollisionWithAxis.bCheckFlange = true bCollisionFound, bMoveAfterSplitL3 = CheckCollisionWithAxis( sL3, Parameters, OptionalParametersCheckCollisionWithAxis) + OptionalParametersCheckCollisionWithAxis.bCheckFlange = false if sR3 and not bCollisionFound then bCollisionFound, bMoveAfterSplitR3 = CheckCollisionWithAxis( sR3, Parameters, OptionalParametersCheckCollisionWithAxis)