3dPrinting :

- correzioni varie.
This commit is contained in:
SaraP
2022-10-03 12:07:43 +02:00
parent 6b2c1834d2
commit 5e65055e86
3 changed files with 43 additions and 31 deletions
+21 -6
View File
@@ -213,6 +213,7 @@ local function AddRetraction( nCrvId, LayerParams, dCoastingLen, dWipeLen, dWipe
else
EgtErase( nCrvId)
end
EgtModifyCurveExtrusion( nCoastingId, LayerParams.vtSlicing)
EgtSetName( nCoastingId, COASTING_CRV)
EgtSetInfo( nCoastingId, KEY_TYPE, TYPE.COASTING)
EgtSetColor( nCoastingId, EgtStdColor('ORANGE'))
@@ -242,6 +243,15 @@ local function AddRetraction( nCrvId, LayerParams, dCoastingLen, dWipeLen, dWipe
vtDir:rotate( LayerParams.vtSlicing, EgtIf( bChangeSign, - dAng, dAng))
local ptS = EgtEP( nCoastingId or nCrvId)
local ptE = ptS + vtDir * dWipeLen
-- verifico soddisfi altezza minima per dimensioni utensile
local dHMin = 0.5 * LayerParams.dTDiam * sqrt( LayerParams.vtSlicing:getX() * LayerParams.vtSlicing:getX() + LayerParams.vtSlicing:getY() * LayerParams.vtSlicing:getY())
local k = 1
while ptE:getZ() < dHMin + GEO.EPS_SMALL and k < 36 do
vtDir:rotate( LayerParams.vtSlicing, EgtIf( bChangeSign, 10, -10))
ptE = ptS + vtDir * dWipeLen
k = k + 1
end
nWipeId = EgtCurveCompoFromPoints( EgtGetParent( nCrvId), {ptS, ptE})
EgtModifyCurveExtrusion( nWipeId, LayerParams.vtSlicing, GDB_RT.GLOB)
EgtRelocateGlob( nWipeId, nCoastingId or nCrvId, GDB_IN.AFTER)
@@ -561,7 +571,7 @@ local function FindCorrectRibsLead( dPar, nCrv, nCrvOffs, bLeadInvert, dLeadLen,
end
--------------------------------------------------------------------
local function AddRibsLeadIn( nCrv, nLoopsGrp, dStrand)
local function AddRibsLeadIn( nCrv, nLoopsGrp, dStrand, vtSlicing)
local dLILen = EgtGetInfo( nCrv, KEY_RIBS_LEAD_IN_LEN, 'd')
local bLIInvert = EgtGetInfo( nCrv, KEY_RIBS_LEAD_IN_INVERT, 'b')
@@ -578,6 +588,7 @@ local function AddRibsLeadIn( nCrv, nLoopsGrp, dStrand)
local nLeadIn = FindCorrectRibsLead( dParS, nCrv, nCrvOffs, bLIInvert, dLILen, dStrand, true)
-- se lead in possibile
if nLeadIn then
EgtModifyCurveExtrusion( nLeadIn, vtSlicing)
EgtSetInfo( nLeadIn, KEY_TYPE, TYPE.RIB)
EgtSetName( nLeadIn, LEAD_IN_CRV)
end
@@ -626,6 +637,7 @@ local function AddRibsLeadOut( nCrv, nTPathGrp, nLoopsGrp, vtSlicing, dStrand)
if dRibsLOLen > GEO.EPS_SMALL and not bSkip then
nCrvLO = EgtCopyGlob( nCrvRef, nCrv, GDB_IN.AFTER)
EgtTrimCurveEndAtLen( nCrvLO, dRibsLOLen)
EgtModifyCurveExtrusion( nCrvLO, vtSlicing)
EgtSetInfo( nCrvLO, KEY_TYPE, TYPE.RIB)
EgtSetName( nCrvLO, LEAD_OUT_CRV)
-- aggiorno ptE e vtE
@@ -638,6 +650,7 @@ local function AddRibsLeadOut( nCrv, nTPathGrp, nLoopsGrp, vtSlicing, dStrand)
nCoasting = EgtCopyGlob( nCrvRef, nCrvLO or nCrv, GDB_IN.AFTER)
EgtTrimCurveStartAtLen( nCoasting, dRibsLOLen)
EgtTrimCurveEndAtLen( nCoasting, dRibsLOCoasting)
EgtModifyCurveExtrusion( nCoasting, vtSlicing)
EgtSetName( nCoasting, COASTING_CRV)
EgtSetInfo( nCoasting, KEY_TYPE, TYPE.COASTING)
@@ -789,7 +802,7 @@ local function CalcRibsToolPath( nCrvGrp, nTpathGrpId, LayerParams, dCorrZ)
-- verifico se necessario lead in
local nPrev = EgtGetPrev( nCrvRib)
if not nPrev or EgtGetName( nPrev) then
AddRibsLeadIn( nCrvRib, nLoopGrp, LayerParams.dStrand)
AddRibsLeadIn( nCrvRib, nLoopGrp, LayerParams.dStrand, LayerParams.vtSlicing)
end
-- verifico se necessario lead out
local nNext = EgtGetNext( nCrvRib)
@@ -968,10 +981,12 @@ function CalcToolPath.Exec( nPartId)
local ptS = EgtEP( nPrev)
local ptE = EgtSP( nCurr)
local nLinkId = EgtCurveCompoFromPoints( nTpathGrpId, {ptS, ptE})
EgtRelocateGlob( nLinkId, nCurr, GDB_IN.BEFORE)
EgtModifyCurveExtrusion( nLinkId, LayerParams.vtSlicing, GDB_RT.GLOB)
EgtSetInfo( nLinkId, KEY_TYPE, TYPE.LINK)
EgtSetName( nLinkId, LINK_CRV)
if nLinkId then
EgtRelocateGlob( nLinkId, nCurr, GDB_IN.BEFORE)
EgtModifyCurveExtrusion( nLinkId, LayerParams.vtSlicing, GDB_RT.GLOB)
EgtSetInfo( nLinkId, KEY_TYPE, TYPE.LINK)
EgtSetName( nLinkId, LINK_CRV)
end
end
sPrevName = sCurrName
nPrev = nCurr