diff --git a/LuaLibs/RunMachParamFromSWCalc.lua b/LuaLibs/RunMachParamFromSWCalc.lua index 15c2b6c..eec4539 100644 --- a/LuaLibs/RunMachParamFromSWCalc.lua +++ b/LuaLibs/RunMachParamFromSWCalc.lua @@ -1,4 +1,4 @@ --- RunMachParamFromSWCalc.lua by Egaltech s.r.l. 2022/09/15 +-- RunMachParamFromSWCalc.lua by Egaltech s.r.l. 2022/11/22 -- Calcolo dei parametri di stampa -- Tabella per definizione modulo @@ -82,12 +82,14 @@ function RunMachParamFromSWCalc.Exec() dTotLayerLength = dTotLayerLength + dTotCrvLength -- recupero area local nOuterCrvId = EgtGetFirstNameInGroup( nCrvId, OUTER_CRV) - local _, _, dTotCrvArea = EgtCurveArea( nOuterCrvId) - local dOuterLength = EgtCurveLength( nOuterCrvId) - -- recupero offset del part per aggiungerlo all'area interna - local dOffset = EgtGetInfo( nPartId, KEY_OFFSET_SLICE, 'd') - dTotCrvArea = dTotCrvArea + ( dOffset * dOuterLength) - dTotLayerArea = dTotLayerArea + dTotCrvArea + if nOuterCrvId and dStrandCount > 0.5 then + local _, _, dTotCrvArea = EgtCurveArea( nOuterCrvId) + local dOuterLength = EgtCurveLength( nOuterCrvId) + -- recupero offset del part per aggiungerlo all'area interna + local dOffset = EgtGetInfo( nPartId, KEY_OFFSET_SLICE, 'd') + dTotCrvArea = dTotCrvArea + ( dOffset * dOuterLength) + dTotLayerArea = dTotLayerArea + dTotCrvArea + end nCrvId = EgtGetNextName( nCrvId, CONTOUR_GRP .. '*') end -- recupero feed del layer @@ -114,11 +116,16 @@ function RunMachParamFromSWCalc.Exec() end EgtSetInfo( nLayerResultId, KEY_SLICEID, nOrigLayers) -- calcolo costante MF - local dMF = dTotLayerLength * dStrand / dTotLayerArea * 100 + local dMF = 1 + local dSC = 1 + if dTotLayerArea > 1 then + dMF = dTotLayerLength * dStrand / dTotLayerArea * 100 + dSC = dStrandCount + end -- calcolo tempi stimati del layer - local dTMin = ( dMF + MATERIAL.AMin) / MATERIAL.BMin * pow( 0.25 * dStrand, MATERIAL.KW) * pow( dSliceStep, MATERIAL.KZ) * pow( dStrandCount, MATERIAL.KN) - local dTTrg = ( dMF + MATERIAL.ATrg) / MATERIAL.BTrg * pow( 0.25 * dStrand, MATERIAL.KW) * pow( dSliceStep, MATERIAL.KZ) * pow( dStrandCount, MATERIAL.KN) - local dTMax = ( dMF + MATERIAL.AMax) / MATERIAL.BMax * pow( 0.25 * dStrand, MATERIAL.KW) * pow( dSliceStep, MATERIAL.KZ) * pow( dStrandCount, MATERIAL.KN) + local dTMin = ( dMF + MATERIAL.AMin) / MATERIAL.BMin * pow( 0.25 * dStrand, MATERIAL.KW) * pow( dSliceStep, MATERIAL.KZ) * pow( dSC, MATERIAL.KN) + local dTTrg = ( dMF + MATERIAL.ATrg) / MATERIAL.BTrg * pow( 0.25 * dStrand, MATERIAL.KW) * pow( dSliceStep, MATERIAL.KZ) * pow( dSC, MATERIAL.KN) + local dTMax = ( dMF + MATERIAL.AMax) / MATERIAL.BMax * pow( 0.25 * dStrand, MATERIAL.KW) * pow( dSliceStep, MATERIAL.KZ) * pow( dSC, MATERIAL.KN) local dFMin = dTotLayerLength / dTMax * 60 local dFTrg = dTotLayerLength / dTTrg * 60 local dFMax = dTotLayerLength / dTMin * 60