3dPrinting 2.5d3 :

- migliorata gestione di setti con fori
- gestione di setti con link disegnato dall'utente dallo stesso lato del solido.
This commit is contained in:
SaraP
2023-04-17 17:17:59 +02:00
parent 922c5510c0
commit 9c42a70c6a
6 changed files with 574 additions and 83 deletions
+10 -3
View File
@@ -349,18 +349,25 @@ local function AddRetraction( nCrvId, vtSlicing, dCoastingLen, dWipeLen, dWipeDi
nCopyId = nil
EgtTrimCurveEndAtLen( nWipeId, dWipeLen)
else
-- se extra shell, infill a zigzag, spiral vase o rib che non termina sulla parete
local vtDir = EgtEV( nCoastingId or nCrvId, GDB_ID.ROOT)
local dAng = dWipeDir + s_nDefaultWipeAng
-- verifico se necessario cambiare il segno all'angolo
local bChangeSign = false
-- riempimento
if nType == TYPE.INFILL or nType == TYPE.AUX_SOLID then
local vtS = EgtGetInfo( nCrvId, KEY_ZIG_ZAG_DIR, 'v')
local bSameDir = AreSameVectorApprox( vtS, vtDir)
bChangeSign = ( bInverted == bSameDir)
else
-- rib
elseif nType == TYPE.RIB then
local bInvertStrandOrder = EgtGetInfo( nCrvId, KEY_RIBS_INVERT_STRAND_ORDER, 'b') or false
local bInvertDir = EgtGetInfo( nCrvId, KEY_RIBS_INVERT_DIR, 'b') or false
bChangeSign = ( bInvertDir ~= bInvertStrandOrder)
-- extra shell
elseif nType == TYPE.EXTRA_SHELL or nType == TYPE.EXTRA_OUTER_SHELL then
bChangeSign = bInverted
end
vtDir:rotate( vtSlicing, EgtIf( bChangeSign, - dAng, dAng))
local ptS = EgtEP( nCoastingId or nCrvId, GDB_ID.ROOT)
local ptE = FindWipeEndPoint( ptS, vtDir, dWipeLen, vtSlicing)
@@ -1038,7 +1045,7 @@ local function CalcRibsToolPath( vEntIds, nRibsGrp, nTpathGrpId, LayerParams)
else
local bLoopRib = EgtGetInfo( tabRibs[i][1], KEY_LOOP_RIB, 'b') or false
for j = 1, #tabRibs[i] - 1 do
local bUserLink = EgtGetInfo( tabRibs[i][j], KEY_RIBS_USER_LINK, 'b') or false
local bUserLink = ( EgtGetInfo( tabRibs[i][j], KEY_RIBS_USER_LINK, 'b') or false) and ( EgtGetInfo( tabRibs[i][j+1], KEY_RIBS_USER_LINK, 'b') or false)
local nOrig1 = EgtGetInfo( tabRibs[i][j], KEY_ORIGINAL_RIB, 'i') or 0
local nOrig2 = EgtGetInfo( tabRibs[i][j + 1], KEY_ORIGINAL_RIB, 'i') or 0
local nSplitId1 = EgtGetInfo( tabRibs[i][j], KEY_SPLIT_ID, 'i') or 0