3dPrinting 3.1e1 :

- corretto errore generazione icrx.
This commit is contained in:
SaraP
2026-05-05 10:50:08 +02:00
parent 8708a8daea
commit 5ad919c4e4
2 changed files with 27 additions and 18 deletions
+25 -16
View File
@@ -13,8 +13,8 @@ EgtOutLog( ' RunPreprareExport started', 1)
local AMD = require( 'AddManData')
------------------------------------------------------------------
local function CalcCurves( nSliceId, nDestGrp, vtSlicing, dStrandBase)
local function CalcCurves( nSliceId, nDestGrp, dStrandBase)
-- scorro tutti i gruppi di curve
local vCrvs = EgtGetNameInGroup( nSliceId, CONTOUR_GRP .. '*')
for j = 1, #vCrvs do
@@ -31,30 +31,40 @@ local function CalcCurves( nSliceId, nDestGrp, vtSlicing, dStrandBase)
-- calcolo fat region a partire da una copia della curva ( in questo modo nel DB geometrico non restano
-- salvati i diagrammi di Voronoi che non servono per conti futuri)
local nCopy = EgtCopyGlob( nId, nDestGrp)
local nSurf = EgtSurfFrFatCurve( nDestGrp, nCopy, 0.5 * dStrand, false)
local nSurf = EgtSurfFrFatCurve( nDestGrp, nCopy, 0.5 * dStrand + 0.01, false)
-- se fallisce ritento con valore leggermente diverso
if not nSurf or nSurf == GDB_ID.NULL then
nSurf = EgtSurfFrFatCurve( nDestGrp, nCopy, 0.5 * dStrand - 0.05, false)
end
EgtErase( nCopy)
if nSurf then
local nChunks = EgtSurfFrChunkCount( nSurf)
for k = 0, nChunks - 1 do
-- estraggo i loop associati
local nCrv, nCnt = EgtExtractSurfFrChunkLoops( nSurf, k, nDestGrp)
-- eventuali aggiustamenti per creare un percorso unico
if nCnt > 1 then
for nLoopId = nCrv + 1, nCrv + nCnt - 1 do
local dLen = EgtCurveLength( nLoopId)
local dPar1 = EgtCurveParamAtLength( nLoopId, dLen * 0.5)
local dPar2 = EgtCurveParamAtLength( nLoopId, dLen * 0.5 + 2 * GEO.EPS_SMALL)
local ptM = EgtUP( nLoopId, dPar1)
local ptM2 = EgtUP( nLoopId, dPar2)
local _, _, dParRef1 = EgtPointCurveDist( ptM2, nCrv)
local _, _, dParRef2 = EgtPointCurveDist( ptM, nCrv)
EgtTrimCurveStartEndAtParam( nCrv, dParRef2, dParRef1)
EgtTrimCurveStartEndAtParam( nLoopId, dPar2, dPar1)
-- recupero la prima curva del loop interno che non sia di raccordo
local vTempProps = EgtCurveCompoGetTempProp( nLoopId)
local dU
for i = 1, #vTempProps do
if vTempProps[i] > 0 then
dU = i - 1
break
end
end
-- taglio il loop interno
EgtChangeClosedCurveStart( nLoopId, dU + 0.5)
EgtTrimCurveStartAtLen( nLoopId, 5 * GEO.EPS_SMALL)
-- taglio il loop esterno in corrispondenza del loop interno
local _, _, dPar = EgtPointCurveDist( EgtSP( nLoopId), nCrv)
EgtChangeClosedCurveStart( nCrv, dPar)
EgtTrimCurveStartAtLen( nCrv, 5 * GEO.EPS_SMALL)
-- unisco le curve
EgtAddCurveCompoLine( nCrv, EgtSP( nLoopId))
EgtAddCurveCompoCurve( nCrv, nLoopId)
EgtCloseCurveCompo( nCrv)
@@ -190,7 +200,6 @@ function RunPrepareExport.Exec()
end
for i = 1, #vSlices do
-- creo il gruppo corrispondente
local nDestGrp = EgtGroup( nGrp)
EgtSetName( nDestGrp, EgtGetName( vSlices[i]))
@@ -200,10 +209,10 @@ function RunPrepareExport.Exec()
if nSlicingType == SLICING_TYPE.MULTIPLANAR or nSlicingType == SLICING_TYPE.MULTIPLANAR_DEG45 or nSlicingType == SLICING_TYPE.MULTIPLANAR_HOR or bSpiralVase then
GetSolids( vSlices[i], nDestGrp)
else
CalcCurves( vSlices[i], nDestGrp, vtSlicing, dStrandBase)
CalcCurves( vSlices[i], nDestGrp, dStrandBase)
end
end
return nGrp
end
+2 -2
View File
@@ -1,4 +1,4 @@
-- Version.lua by Egaltech s.r.l. 2026/03/23
-- Version.lua by Egaltech s.r.l. 2026/05/04
-- Gestione della versione di 3dPrinting
VERSION = '3.1d1'
VERSION = '3.1e1'