3dPrinting 2.6k1 :

- correzioni spiral vase per transizione tra layers.
This commit is contained in:
SaraP
2024-11-28 12:44:03 +01:00
parent 898d065fe1
commit 3d6f9f2b85
3 changed files with 15 additions and 6 deletions
+13 -4
View File
@@ -18,6 +18,7 @@ local s_nDefaultWipeAng = -90 -- angolo = 0° per wipe significa che esce orto
local s_dApproxTol = 0.1
local s_dHSafeWipe = 2
local s_nCurrIdx
local s_dSpiralVaseTanTol = 0.001
---------------------------------------------------------------------
local function GetLayerParamsForToolPathCalc()
@@ -2091,12 +2092,20 @@ local function SpiralVase( vLayIds, LayerParams)
else
local ptOld = EgtEP( nOldId, GDB_ID.ROOT)
local ptNew = EgtSP( nNewEntId, GDB_ID.ROOT)
-- se i punti non coincidono modifico la curva per avere transizione più uniforme
if not AreSamePointApprox( ptOld, ptNew) then
-- modifico la curva per avere una transizione più uniforme tra i due layers
if EgtCurveCompoRadius( nNewEntId, 0) == -1 and dist( ptOld, ptNew) / EgtCurveCompoLength( nNewEntId, 0) < s_dSpiralVaseTanTol then
-- se i punti sono abbastanza vicini e la curva inizia con un tratto lineare sufficientemente lungo allora distribuisco la differenza tra i
-- due layer solo sul primo tratto
EgtModifyCurveStartPoint( nNewEntId, ptOld, GDB_RT.GLOB)
else
-- distribuisco la differenza su tutta la curva
-- recupero la curva da usare come guida
local nGuideId = EgtCopyGlob( nOldPathId, nTpathGrpId)
-- la porto alla stessa quota del toolpath
local nGuideId = EgtCopyGlob( nOldPathId, nPathGrpId)
-- la rendo coerente con il toolpath
EgtMove( nGuideId, vtMove + LayerParams.dLayHeight * LayerParams.vtSlicing, GDB_RT.GLOB)
if LayerParams.bInvert then
EgtInvertCurve( nGuideId)
end
-- modifico i punti iniziali affinchè coincidano con il punto finale del percorso precedente
EgtChangeClosedCurveStartPoint( nGuideId, ptOld, GDB_RT.GLOB)
EgtChangeClosedCurveStartPoint( nNewEntId, ptOld, GDB_RT.GLOB)