3dPrinting :
- aggiunto offset lead point sul primo layer di spiral vase.
This commit is contained in:
+63
-18
@@ -2210,17 +2210,27 @@ local function SpiralVaseFullMultiPlanar( vLayIds, LayerParams)
|
||||
-- mi sposto dell'altezza layer
|
||||
EgtMove( nNewEntId, LayerParams.dLayHeight * vtSlicing, GDB_RT.GLOB)
|
||||
|
||||
-- eventuale lead in
|
||||
-- offset lead point
|
||||
if LayerParams.dOffsetLP > GEO.EPS_SMALL then
|
||||
EgtTrimCurveStartAtLen( nNewEntId, LayerParams.dOffsetLP)
|
||||
elseif LayerParams.dOffsetLP < - GEO.EPS_SMALL then
|
||||
local _, dE = EgtCurveDomain( nNewEntId)
|
||||
local dS = EgtCurveParamAtLength( nNewEntId, EgtCurveLength( nNewEntId) + LayerParams.dOffsetLP)
|
||||
local nNewPart = EgtCopyParamRange( nNewEntId, dS, dE, nTpathGrpId)
|
||||
if not EgtAddCurveCompoCurve( nNewEntId, nNewPart, true, false) then
|
||||
EgtErase( nNewPart)
|
||||
end
|
||||
end
|
||||
|
||||
-- lead in
|
||||
if LayerParams.nLeadInType ~= LEAD_TYPE.NONE then
|
||||
if not LayerParams.bSingleLeadIn or LayerParams.nFloorNbr == 0 then
|
||||
EgtTrimCurveStartAtLen( nNewEntId, LayerParams.dOffsetLP)
|
||||
local nLeadInCrv = AddLeadIn( nNewEntId, LayerParams, nTpathGrpId)
|
||||
if nLeadInCrv and LayerParams.bLinearApprox then
|
||||
EgtApproxCurve( nLeadInCrv, GDB_CA.LINES, LayerParams.dLinearApproxTol)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
-- recupero il piano precedente
|
||||
local vtSlicingPrev = EgtGetInfo( vLayIds[nIdx-1], KEY_SLICE_DIR, 'v')
|
||||
@@ -2489,6 +2499,29 @@ local function SpiralVaseFull( vLayIds, LayerParams)
|
||||
if nRealLayer == 1 then
|
||||
-- mi sposto dell'altezza layer
|
||||
EgtMove( nNewEntId, LayerParams.dLayHeight * LayerParams.vtSlicing, GDB_RT.GLOB)
|
||||
|
||||
-- offset lead point
|
||||
if LayerParams.dOffsetLP > GEO.EPS_SMALL then
|
||||
EgtTrimCurveStartAtLen( nNewEntId, LayerParams.dOffsetLP)
|
||||
elseif LayerParams.dOffsetLP < - GEO.EPS_SMALL then
|
||||
local _, dE = EgtCurveDomain( nNewEntId)
|
||||
local dS = EgtCurveParamAtLength( nNewEntId, EgtCurveLength( nNewEntId) + LayerParams.dOffsetLP)
|
||||
local nNewPart = EgtCopyParamRange( nNewEntId, dS, dE, nTpathGrpId)
|
||||
if not EgtAddCurveCompoCurve( nNewEntId, nNewPart, true, false) then
|
||||
EgtErase( nNewPart)
|
||||
end
|
||||
end
|
||||
|
||||
-- lead in
|
||||
if LayerParams.nLeadInType ~= LEAD_TYPE.NONE then
|
||||
if not LayerParams.bSingleLeadIn or LayerParams.nFloorNbr == 0 then
|
||||
local nLeadInCrv = AddLeadIn( nNewEntId, LayerParams, nTpathGrpId)
|
||||
if nLeadInCrv and LayerParams.bLinearApprox then
|
||||
EgtApproxCurve( nLeadInCrv, GDB_CA.LINES, LayerParams.dLinearApproxTol)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- modifico altezza ultimo tratto
|
||||
local dTrimPar = EgtCurveParamAtLength( nNewEntId, EgtCurveLength( nNewEntId) - s_dSpralVaseFirstDelta)
|
||||
local nNewPart = EgtSplitCurveAtParam( nNewEntId, dTrimPar)
|
||||
@@ -2498,17 +2531,7 @@ local function SpiralVaseFull( vLayIds, LayerParams)
|
||||
EgtApproxCurve( nNewEntId, GDB_CA.LINES, LayerParams.dLinearApproxTol)
|
||||
EgtApproxCurve( nNewPart, GDB_CA.LINES, LayerParams.dLinearApproxTol)
|
||||
end
|
||||
|
||||
-- eventuale lead in
|
||||
if LayerParams.nLeadInType ~= LEAD_TYPE.NONE then
|
||||
if not LayerParams.bSingleLeadIn or LayerParams.nFloorNbr == 0 then
|
||||
EgtTrimCurveStartAtLen( nNewEntId, LayerParams.dOffsetLP)
|
||||
local nLeadInCrv = AddLeadIn( nNewEntId, LayerParams, nTpathGrpId)
|
||||
if nLeadInCrv and LayerParams.bLinearApprox then
|
||||
EgtApproxCurve( nLeadInCrv, GDB_CA.LINES, LayerParams.dLinearApproxTol)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
-- a) garantisco continuità con layer precedente
|
||||
local ptOld = EgtEP( nOldId, GDB_ID.ROOT)
|
||||
@@ -2788,12 +2811,23 @@ local function SpiralVasePartialMultiPlanar( vLayIds, LayerParams)
|
||||
end
|
||||
end
|
||||
|
||||
-- eventuale lead in
|
||||
-- eventuale offset lead point e lead in
|
||||
if bFirst then
|
||||
bFirst = false
|
||||
|
||||
if LayerParams.dOffsetLP > GEO.EPS_SMALL then
|
||||
EgtTrimCurveStartAtLen( nNewEntId, LayerParams.dOffsetLP)
|
||||
elseif LayerParams.dOffsetLP < - GEO.EPS_SMALL then
|
||||
local _, dE = EgtCurveDomain( nNewEntId)
|
||||
local dS = EgtCurveParamAtLength( nNewEntId, EgtCurveLength( nNewEntId) + LayerParams.dOffsetLP)
|
||||
local nNewPart = EgtCopyParamRange( nNewEntId, dS, dE, nTpathGrpId)
|
||||
if not EgtAddCurveCompoCurve( nNewEntId, nNewPart, true, false) then
|
||||
EgtErase( nNewPart)
|
||||
end
|
||||
end
|
||||
|
||||
if LayerParams.nLeadInType ~= LEAD_TYPE.NONE then
|
||||
if not LayerParams.bSingleLeadIn or LayerParams.nFloorNbr == 0 then
|
||||
EgtTrimCurveStartAtLen( nNewEntId, LayerParams.dOffsetLP)
|
||||
local nLeadInCrv = AddLeadIn( nNewEntId, LayerParams, nTpathGrpId)
|
||||
if nLeadInCrv and LayerParams.bLinearApprox then
|
||||
EgtApproxCurve( nLeadInCrv, GDB_CA.LINES, LayerParams.dLinearApproxTol)
|
||||
@@ -2952,12 +2986,23 @@ local function SpiralVasePartial( vLayIds, LayerParams)
|
||||
end
|
||||
end
|
||||
|
||||
-- eventuale lead in
|
||||
-- eventuale offset lead point e lead in
|
||||
if bFirst then
|
||||
bFirst = false
|
||||
|
||||
if LayerParams.dOffsetLP > GEO.EPS_SMALL then
|
||||
EgtTrimCurveStartAtLen( nNewEntId, LayerParams.dOffsetLP)
|
||||
elseif LayerParams.dOffsetLP < - GEO.EPS_SMALL then
|
||||
local _, dE = EgtCurveDomain( nNewEntId)
|
||||
local dS = EgtCurveParamAtLength( nNewEntId, EgtCurveLength( nNewEntId) + LayerParams.dOffsetLP)
|
||||
local nNewPart = EgtCopyParamRange( nNewEntId, dS, dE, nTpathGrpId)
|
||||
if not EgtAddCurveCompoCurve( nNewEntId, nNewPart, true, false) then
|
||||
EgtErase( nNewPart)
|
||||
end
|
||||
end
|
||||
|
||||
if LayerParams.nLeadInType ~= LEAD_TYPE.NONE then
|
||||
if not LayerParams.bSingleLeadIn or LayerParams.nFloorNbr == 0 then
|
||||
EgtTrimCurveStartAtLen( nNewEntId, LayerParams.dOffsetLP)
|
||||
local nLeadInCrv = AddLeadIn( nNewEntId, LayerParams, nTpathGrpId)
|
||||
if nLeadInCrv and LayerParams.bLinearApprox then
|
||||
EgtApproxCurve( nLeadInCrv, GDB_CA.LINES, LayerParams.dLinearApproxTol)
|
||||
|
||||
Reference in New Issue
Block a user