From 36a867ef4af676581de7310239c3084ab76c6bb4 Mon Sep 17 00:00:00 2001 From: SaraP Date: Mon, 4 Dec 2023 14:50:14 +0100 Subject: [PATCH] 3dPrinting : - aggiunta approssimazione delle curve nel toolpath per eliminare piccoli tratti. --- LuaLibs/CalcToolPath.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/LuaLibs/CalcToolPath.lua b/LuaLibs/CalcToolPath.lua index f215c7e..1823bb5 100644 --- a/LuaLibs/CalcToolPath.lua +++ b/LuaLibs/CalcToolPath.lua @@ -15,6 +15,7 @@ local AMD = require( 'AddManData') --------------------------------------------------------------------- local s_nPartId local s_nDefaultWipeAng = -90 -- angolo = 0° per wipe significa che esce ortogonalmente alla direzione del movimento +local s_dApproxTol = 0.1 --------------------------------------------------------------------- local function GetLayerParamsForToolPathCalc() @@ -141,7 +142,7 @@ local function AddCurvesToToolPath( vEntIds, nTpathGrpId, nOrder, bInvert, vtSli -- mi sposto dell'altezza layer EgtMove( vIds[nIdx], dLayHeight * vtSlicing, GDB_RT.GLOB) - + if EgtCurveIsClosed( vIds[nIdx]) then EgtSetInfo( vIds[nIdx], KEY_CLOSED_CRV, 1) -- eventuale inversione @@ -150,7 +151,9 @@ local function AddCurvesToToolPath( vEntIds, nTpathGrpId, nOrder, bInvert, vtSli EgtSetInfo( vIds[nIdx], KEY_INVERTED_CRV, 1) end end - + + EgtApproxCurve( vIds[nIdx], GDB_CA.ARCS, s_dApproxTol) + EgtSetInfo( vEntIds[i], KEY_ASSOCIATED_TP_CRV, vIds[nIdx]) EgtSetInfo( vIds[nIdx], KEY_ASSOCIATED_P_CRV, vEntIds[i]) @@ -307,8 +310,6 @@ local function AddLeadIn( nCrvId, LayerParams, nGrpId) vtOrtho:rotate( LayerParams.vtSlicing, dAng) local ptS = ptE - LayerParams.dLeadInTangDist * vtTang + LayerParams.dLeadInOrthoDist * vtOrtho - -- verifico che non affondi nella tavola - if ptS:getZ() < s_dHMin + GEO.EPS_SMALL then return end local nLeadInCrv if LayerParams.nLeadInType == LEAD_TYPE.LINEAR then @@ -1711,6 +1712,7 @@ local function CalcRibsToolPath( vEntIds, nRibsGrp, nTpathGrpId, LayerParams) local nNewEntId = EgtCopyGlob( vEntIds[i], nTpathGrpId, GDB_IN.LAST_SON) -- mi sposto dell'altezza layer EgtMove( nNewEntId, LayerParams.dLayHeight * LayerParams.vtSlicing, GDB_RT.GLOB) + EgtApproxCurve( nNewEntId, GDB_CA.ARCS, s_dApproxTol) EgtModifyCurveExtrusion( nNewEntId, LayerParams.vtSlicing, GDB_RT.GLOB) EgtSetColor( nNewEntId, EgtStdColor('MAROON'))