From f1490bfaf08ffedd260295a2d0be8c11da79fd4d Mon Sep 17 00:00:00 2001 From: DarioS Date: Sun, 18 Sep 2022 19:12:53 +0200 Subject: [PATCH] 3dPrinting : - tolleranza di approssimazione portata a 0.5 da 0.02 - piccola miglioria nella segnalazione errori. --- LuaLibs/CalcSlices.lua | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/LuaLibs/CalcSlices.lua b/LuaLibs/CalcSlices.lua index ece2511..754c69d 100644 --- a/LuaLibs/CalcSlices.lua +++ b/LuaLibs/CalcSlices.lua @@ -1,4 +1,4 @@ --- CalcSlices.lua by Egaltech s.r.l. 2022/07/06 +-- CalcSlices.lua by Egaltech s.r.l. 2022/09/18 -- Calcolo percorsi di lavoro per Stampa 3d -- Tabella per definizione modulo @@ -297,7 +297,7 @@ function CalcSlices.Exec( nPartId, nStmId, HMax) -- costanti local TOLER = 0.2 - local SMALL_TOLER = 0.02 + local SMALL_TOLER = 0.5 local BIG_TOLER = 2.0 local MIN_LEN = 20.0 local MIN_AREA = 25.0 @@ -457,11 +457,12 @@ function CalcSlices.Exec( nPartId, nStmId, HMax) end EgtErase( nGrp) local nSurfFR, nSrfNbr = EgtSurfFlatRegion( nLayId, vClosedId) - for i = 1, #vClosedId do - EgtErase( vClosedId[i]) - end if nSurfFR then + -- elimino le curve originali + for i = 1, #vClosedId do + EgtErase( vClosedId[i]) + end -- esplodo in superfici elementari local vSrfId = {} for j = 1, nSrfNbr do @@ -539,9 +540,22 @@ function CalcSlices.Exec( nPartId, nStmId, HMax) end end else - -- errore + local bErr = true + -- se nessuna curva + if #vClosedId == 0 then + bErr = false + -- se una sola curva, ne verifico larghezza media + elseif #vClosedId == 1 then + local dLen = EgtCurveLength( vClosedId[1]) + local _, _, dArea = EgtCurveArea( vClosedId[1]) + if not dArea or dArea / dLen < SMALL_TOLER then bErr = false end + end + -- cambio nome al layer EgtSetName( nLayId, '__' .. SLICE_LAYER .. EgtNumToString( nLayCnt)) - table.insert( vErr, nLayCnt) + -- se vero errore lo segnalo + if bErr then + table.insert( vErr, nLayCnt) + end end -- passo al layer successivo