3dPrinting :

- aggiunto offset lead point anche per shell interne quando non ci sono collegamenti.
This commit is contained in:
SaraP
2023-02-01 11:03:24 +01:00
parent 9f5c2523e0
commit 6117583a79
+27 -10
View File
@@ -169,6 +169,30 @@ local function AddLink( vCrv, nTpathGrpId, nLinkType, dLinkParam, dSPOffs, dStra
end
end
---------------------------------------------------------------------
local function AddOffsetLeadPoint( vIds, nFirstCopy, dOffsetLP, nLinkType)
-- se link va fatto solo sulla shell esterna
local nLast = EgtIf( nLinkType == LINK_TYPE.NONE, #vIds, 1)
if abs( dOffsetLP) > GEO.EPS_SMALL then
for i = 1, nLast do
if dOffsetLP > GEO.EPS_SMALL then
-- taglio curva
EgtTrimCurveStartAtLen( vIds[i], dOffsetLP)
else
-- è necessario aggiungere un tratto
local nAddCrv = EgtCopyGlob( EgtIf( i == 1, nFirstCopy, vIds[i]), vIds[1], GDB_IN.AFTER)
EgtTrimCurveStartAtLen( nAddCrv, EgtCurveLength( nAddCrv) - abs( dOffsetLP))
EgtAddCurveCompoCurve( vIds[i], nAddCrv, true, false)
end
end
end
-- elimino curva aux usata per prima shell
EgtErase( nFirstCopy)
end
--------------------------------------------------------------------
local function AddLeadIn( nCrvId, LayerParams, nGrpId)
@@ -353,20 +377,13 @@ local function CalcShellsToolPath( vEntIds, nTpathGrpId, LayerParams, dCorrZ)
-- aggiungo le curve nel toolpath
local vIds = AddCurvesToToolPath( vEntIds, nTpathGrpId, LayerParams.nOrder, LayerParams.bInvert, LayerParams.vtSlicing, LayerParams.dLayHeight, dCorrZ)
local nFirstCopy = EgtCopyGlob( vIds[1], nTpathGrpId)
local nFirstCopy = EgtCopyGlob( vIds[1], nTpathGrpId) -- necessaria per corretto offset lead point sulla shell esterna
-- aggiungo gli opportuni raccordi
AddLink( vIds, nTpathGrpId, LayerParams.nLinkType, LayerParams.dLinkParam, LayerParams.dSPOffs, LayerParams.dStrand, LayerParams.vtSlicing)
-- offset lead point curva iniziale
if LayerParams.dOffsetLP > - GEO.EPS_SMALL then
EgtTrimCurveStartAtLen( vIds[1], LayerParams.dOffsetLP)
EgtErase( nFirstCopy)
else
-- devi aggiungere un tratto di curva
EgtTrimCurveStartAtLen( nFirstCopy, EgtCurveLength( nFirstCopy) - abs( LayerParams.dOffsetLP))
EgtAddCurveCompoCurve( vIds[1], nFirstCopy, true, false)
end
-- offset lead point
AddOffsetLeadPoint( vIds, nFirstCopy, LayerParams.dOffsetLP, LayerParams.nLinkType)
-- aggiungo leadin/leadout
if LayerParams.nLeadInType ~= LEAD_TYPE.NONE then