3dPrinting 2.5g1 :

- aggiunto numero di passate per Filled Solids.
This commit is contained in:
SaraP
2023-07-03 10:23:37 +02:00
parent ba9470ee88
commit 03c1768afe
5 changed files with 111 additions and 83 deletions
+12 -8
View File
@@ -670,6 +670,7 @@ local function VerifyInfillLink( nLinkId, nCurr, nNext, vIds, dStrand, nGrpTmp)
if nCnt > 1 then return false end
-- verifico se tratti lineari paralleli al setto sono sufficientemente lontani
local dMinDist = dStrand * 0.5
local nLinkLoc = EgtCopyGlob( nLinkId, nGrpTmp)
local _, dParELink = EgtCurveDomain( nLinkLoc)
local nCurrLoc = EgtCopyGlob( nCurr, nGrpTmp)
@@ -684,7 +685,7 @@ local function VerifyInfillLink( nLinkId, nCurr, nNext, vIds, dStrand, nGrpTmp)
-- verifico distanza
local nCrvTest = EgtCurveCompoFromPoints( nGrpTmp, { EgtUP( nCurrLoc, dPar-1), EgtUP( nCurrLoc, dPar)})
local dDist = EgtPointCurveDist( EgtUP( nLinkLoc, dParCrv - 0.5), nCrvTest)
if dDist < dStrand * 0.5 + GEO.EPS_SMALL then
if dDist < dMinDist + GEO.EPS_SMALL then
return false
end
end
@@ -703,7 +704,7 @@ local function VerifyInfillLink( nLinkId, nCurr, nNext, vIds, dStrand, nGrpTmp)
-- verifico distanza
local nCrvTest = EgtCurveCompoFromPoints( nGrpTmp, { EgtUP( nCurrLoc, dPar), EgtUP( nCurrLoc, dPar + 1)})
local dDist = EgtPointCurveDist( EgtUP( nLinkLoc, dParCrv - 0.5), nNextLoc)
if dDist < dStrand * 0.5 + GEO.EPS_SMALL then
if dDist < dMinDist + GEO.EPS_SMALL then
return false
end
end
@@ -955,14 +956,14 @@ local function CalcAuxSolidsToolPath( nAuxSolidsGrp, nAuxSolidsPathGrp, nTpathGr
local dWipeDir = EgtGetInfo( nSolidId, KEY_AUX_SOLIDS_WIPE_DIR, 'd')
-- copio i percorsi nel gruppo toolpath
local vIds = AddCurvesToToolPath( vEntIds, nTpathGrpId, EgtIf( nFillType == FILL_TYPE.OFFSET, nOrder, PRINT_ORDER.EXT_INT), LayerParams.bInvert, LayerParams.vtSlicing, LayerParams.dLayHeight)
local vIds = AddCurvesToToolPath( vEntIds, nTpathGrpId, nOrder, LayerParams.bInvert, LayerParams.vtSlicing, LayerParams.dLayHeight)
-- assegno strand
for i = 1, #vIds do
EgtSetInfo( vIds[i], KEY_CRV_STRAND, dStrand)
end
-- aggiungo link e offset lead point
-- distinguo le shell dal riempimento
local vShells = {}
local vInfill = {}
for i = 1, #vIds do
@@ -975,7 +976,8 @@ local function CalcAuxSolidsToolPath( nAuxSolidsGrp, nAuxSolidsPathGrp, nTpathGr
end
end
if nFillType == FILL_TYPE.OFFSET or nFillType == FILL_TYPE.NONE then
-- aggiungo link e offset lead point sulle shell
if #vShells > 0 then
local nLinkType = EgtGetInfo( nSolidId, KEY_AUX_SOLIDS_LINK_TYPE, 'i')
local dLinkParam = EgtGetInfo( nSolidId, KEY_AUX_SOLIDS_LINK_PARAM, 'd')
local dSPOffset = EgtGetInfo( nSolidId, KEY_AUX_SOLIDS_SP_OFFSET, 'd')
@@ -984,9 +986,11 @@ local function CalcAuxSolidsToolPath( nAuxSolidsGrp, nAuxSolidsPathGrp, nTpathGr
local nFirstCopy = EgtCopyGlob( vShells[1], nTpathGrpId) -- necessaria per avere il corretto offset lead point sulla shell esterna nel caso di link
AddLink( vShells, nTpathGrpId, nLinkType, dLinkParam, dSPOffset, nOrder, LayerParams.vtSlicing)
AddOffsetLeadPoint( vShells, nFirstCopy, dLPOffset, nLinkType)
elseif nFillType & FILL_CATEGORY.INFILL ~= 0 then
local bInfillLink = EgtGetInfo( nSolidId, KEY_AUX_SOLIDS_INFILL, 'b')
end
-- aggiungo eventuale link su infill
if nFillType & FILL_CATEGORY.INFILL ~= 0 then
local bInfillLink = EgtGetInfo( nSolidId, KEY_AUX_SOLIDS_INFILL_LINK, 'b')
if bInfillLink then
CalcInfillLink( vInfill, nAuxSolidsPathGrp, dStrand, LayerParams)
end