From a4ed9b5b5bccce6306ac8e15b44648907f2fe0da Mon Sep 17 00:00:00 2001 From: "andrea.villa" Date: Fri, 14 Mar 2025 12:29:51 +0100 Subject: [PATCH] Piccola correzione lettura parametri strategia --- LuaLibs/BeamLib.lua | 2 +- LuaLibs/MachiningLib.lua | 30 ++++++++++++++----------- Strategies/Standard/STR0006/STR0006.lua | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/LuaLibs/BeamLib.lua b/LuaLibs/BeamLib.lua index f4d189b..efd97be 100644 --- a/LuaLibs/BeamLib.lua +++ b/LuaLibs/BeamLib.lua @@ -384,7 +384,7 @@ end function BeamLib.LoadCustomParametersInStrategy( Proc, CustomParameters, DefaultStrategyParamList) local UpdatedParameters = {} -- TODO serve controllare se campo 'sStrategyId' congruente tra il Config (DefaultStrategyParamList) e i parametri custom (CustomParameters)? - if DefaultStrategyParamList.Parameters and #DefaultStrategyParamList.Parameters > 0 then + if DefaultStrategyParamList and DefaultStrategyParamList.Parameters and #DefaultStrategyParamList.Parameters > 0 then for i=1, #DefaultStrategyParamList.Parameters do local xParameterValue = nil -- se strategia forzata, leggo eventuali parametri nelle info diff --git a/LuaLibs/MachiningLib.lua b/LuaLibs/MachiningLib.lua index acdf399..be6c51c 100644 --- a/LuaLibs/MachiningLib.lua +++ b/LuaLibs/MachiningLib.lua @@ -868,20 +868,24 @@ function MachiningLib.PrepareMachiningsForSorting( Part) -- se fase di lavoro standard, assegnazione dello spezzone if MachiningCurrent.nStage == 2 then local nParts = #Part.SplittingPoints + 1 - local dPartMinX = Part.b3Part:getMin():getX() - local dPartMaxX = Part.b3Part:getMax():getX() - for j = 1, nParts do - local dNextSplitX = dPartMinX - local dPreviousSplitX = dPartMaxX - if j ~= 1 then - dPreviousSplitX = Part.SplittingPoints[j - 1]:getX() - end - if j ~= nParts then - dNextSplitX = Part.SplittingPoints[j]:getX() - end - if MachiningCurrent.ptCenter:getX() > dNextSplitX - 10 * GEO.EPS_SMALL and MachiningCurrent.ptCenter:getX() < dPreviousSplitX + 10 * GEO.EPS_SMALL then - MachiningCurrent.nPartSegment = j + if nParts > 1 then + local dPartMinX = Part.b3Part:getMin():getX() + local dPartMaxX = Part.b3Part:getMax():getX() + for j = 1, nParts do + local dNextSplitX = dPartMinX + local dPreviousSplitX = dPartMaxX + if j ~= 1 then + dPreviousSplitX = Part.SplittingPoints[j - 1]:getX() + end + if j ~= nParts then + dNextSplitX = Part.SplittingPoints[j]:getX() + end + if MachiningCurrent.ptCenter:getX() > dNextSplitX - 10 * GEO.EPS_SMALL and MachiningCurrent.ptCenter:getX() < dPreviousSplitX + 10 * GEO.EPS_SMALL then + MachiningCurrent.nPartSegment = j + end end + else + MachiningCurrent.nPartSegment = -1 end else MachiningCurrent.nPartSegment = -1 diff --git a/Strategies/Standard/STR0006/STR0006.lua b/Strategies/Standard/STR0006/STR0006.lua index ddecfa5..8791de9 100644 --- a/Strategies/Standard/STR0006/STR0006.lua +++ b/Strategies/Standard/STR0006/STR0006.lua @@ -155,7 +155,7 @@ function STR0006.Make( bAddMachining, Proc, Part, CustomParameters) local StrategyLib = {} StrategyLib.Config = require( 'STR0006\\STR0006Config') Strategy.sName = StrategyLib.Config.sStrategyId - Strategy.Parameters = BeamLib.LoadCustomParametersInStrategy( CustomParameters, StrategyLib.Config) + Strategy.Parameters = BeamLib.LoadCustomParametersInStrategy( Proc, CustomParameters, StrategyLib.Config) Strategy.Machining = {} Strategy.Result = {} local Results = {}