3dPrinting :
- aggiunto offset lead point anche per shell interne quando non ci sono collegamenti.
This commit is contained in:
+27
-10
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user