3dPrinting :
- tolleranza di approssimazione portata a 0.5 da 0.02 - piccola miglioria nella segnalazione errori.
This commit is contained in:
+21
-7
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user