DataBeam :

- modifiche per rendere più robusti i test in GetNearestParalOpposite, GetNearestOrthoOpposite, MakeOneFaceBySaw e FacesBySaw.MakeTwo
- in lavorazioni con sega a catena si premia la scelta A=0 per FAST e A=90 per PF.
This commit is contained in:
Dario Sassi
2021-02-01 08:12:19 +00:00
parent ddeaf7559b
commit d1d86f0629
4 changed files with 32 additions and 31 deletions
+11 -11
View File
@@ -263,14 +263,14 @@ function BeamLib.GetNearestParalOpposite( vtRef, vtNorm)
local dVertSq =vtMyRef:getZ() * vtMyRef:getZ()
-- se prevalente la componente orizzontale
if dHorSq >= dVertSq then
if abs( vtMyRef:getX()) > abs( vtMyRef:getY()) then
if vtMyRef:getX() > 0 then
if abs( vtMyRef:getX()) > abs( vtMyRef:getY()) - GEO.EPS_SMALL then
if vtMyRef:getX() > -GEO.EPS_SMALL then
return MCH_MILL_FU.PARAL_LEFT
else
return MCH_MILL_FU.PARAL_RIGHT
end
else
if vtMyRef:getY() > 0 then
if vtMyRef:getY() > -GEO.EPS_SMALL then
return MCH_MILL_FU.PARAL_FRONT
else
return MCH_MILL_FU.PARAL_BACK
@@ -278,7 +278,7 @@ function BeamLib.GetNearestParalOpposite( vtRef, vtNorm)
end
-- altrimenti prevale la verticale
else
if vtMyRef:getZ() > 0 then
if vtMyRef:getZ() > -GEO.EPS_SMALL then
return MCH_MILL_FU.PARAL_DOWN
else
return MCH_MILL_FU.PARAL_TOP
@@ -300,14 +300,14 @@ function BeamLib.GetNearestOrthoOpposite( vtRef, vtNorm)
local dVertSq = vtMyRef:getZ() * vtMyRef:getZ()
-- se prevalente la componente orizzontale
if dHorSq >= dVertSq then
if abs( vtMyRef:getX()) >= abs( vtMyRef:getY()) then
if vtMyRef:getX() > 0 then
if abs( vtMyRef:getX()) > abs( vtMyRef:getY()) - GEO.EPS_SMALL then
if vtMyRef:getX() > -GEO.EPS_SMALL then
return MCH_MILL_FU.ORTHO_LEFT
else
return MCH_MILL_FU.ORTHO_RIGHT
end
else
if vtMyRef:getY() > 0 then
if vtMyRef:getY() > -GEO.EPS_SMALL then
return MCH_MILL_FU.ORTHO_FRONT
else
return MCH_MILL_FU.ORTHO_BACK
@@ -315,7 +315,7 @@ function BeamLib.GetNearestOrthoOpposite( vtRef, vtNorm)
end
-- altrimenti prevale la verticale
else
if vtMyRef:getZ() > 0 then
if vtMyRef:getZ() > -GEO.EPS_SMALL then
return MCH_MILL_FU.ORTHO_DOWN
else
return MCH_MILL_FU.ORTHO_TOP
@@ -885,10 +885,10 @@ function BeamLib.MakeOneFaceBySaw( nSurfId, nFacet, sCutting, dSawDiam, Par5, dV
EgtOutLog( 'vtN=' .. tostring( vtN) .. ' vtRef=' .. tostring( vtRef) .. ' vtOut=' .. tostring( vtOut) .. ' vtAux=' .. tostring( vtAux), 3)
local nSCC = MCH_SCC.NONE
if not BD.C_SIMM or vtRef:getZ() < 0.866 then
if abs( vtAux:getX()) > abs( vtAux:getY()) then
nSCC = EgtIf( ( vtAux:getX() > 0), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_XM)
if abs( vtAux:getX()) > abs( vtAux:getY()) - GEO.EPS_SMALL then
nSCC = EgtIf( ( vtAux:getX() > -GEO.EPS_SMALL), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_XM)
else
nSCC = EgtIf( ( vtAux:getY() > 0), MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM)
nSCC = EgtIf( ( vtAux:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM)
end
end
-- inserisco la lavorazione di taglio