diff --git a/LuaLibs/MachiningLib.lua b/LuaLibs/MachiningLib.lua index 33e88af..3c1692a 100644 --- a/LuaLibs/MachiningLib.lua +++ b/LuaLibs/MachiningLib.lua @@ -166,10 +166,16 @@ function MachiningLib.GetSplitMachinings( Machinings, SplittingPoints, Part ) end -- anche le lavorazioni non splittate necessitano del segmento assegnato else - local dRightAddLength = dOriginalStartAddLength - local dLeftAddLength = dOriginalEndAddLength - if MachiningLib.StartsLeftSide( Machinings[i]) then - dRightAddLength, dLeftAddLength = dLeftAddLength, dRightAddLength + local dRightAddLength = 0 + local dLeftAddLength = 0 + -- si considerano allungamenti e accorciamenti solo se la feature è orientata principalmente lungo X + -- TODO il modo corretto è proiettare tutto, allungamenti e accorciamenti compresi, sulla faccia frontale + if abs( Machinings[i].vtToolDirection:getX()) < 0.707 then + dRightAddLength = dOriginalStartAddLength + dLeftAddLength = dOriginalEndAddLength + if MachiningLib.StartsLeftSide( Machinings[i]) then + dRightAddLength, dLeftAddLength = dLeftAddLength, dRightAddLength + end end for j = 1, nParts do local dNextSplitX = dEdgeMinX