BugFix/FixLongCut:
- aggiustato l'attacco in caso di inizio/fine limitate
This commit is contained in:
@@ -886,11 +886,22 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId, bCustUseBlade, nCus
|
||||
if bLimXmin and bLimXmax and Proc.Box:getDimX() < 2 * dToolDiam then
|
||||
return MakeByPocketing( Proc, nPhase, nRawId, nPartId)
|
||||
end
|
||||
-- determino l'utilizzo della faccia
|
||||
local nFaceUse = EgtIf( abs( vtN:getY()) > 0.01, MCH_MILL_FU.ORTHO_DOWN, EgtIf( bFront, MCH_MILL_FU.ORTHO_FRONT, MCH_MILL_FU.ORTHO_BACK))
|
||||
-- determino il lato di attacco (0:xMin, 1:xMax)
|
||||
local nStartSide = 0
|
||||
if nFaceUse == MCH_MILL_FU.ORTHO_DOWN and not bFront then
|
||||
nStartSide = 1
|
||||
elseif nFaceUse ~= MCH_MILL_FU.ORTHO_DOWN then
|
||||
if ( bFront and nSide == -1) or ( not bFront and nSide == 1) then
|
||||
nStartSide = 1
|
||||
end
|
||||
end
|
||||
-- determino gli estremi
|
||||
local dStartDist = 0
|
||||
local dStartAccDist = BD.LONGCUT_ENDLEN
|
||||
local bStartFixed = true
|
||||
if ( bLimXmin and bFront) or ( bLimXmax and not bFront) then
|
||||
if ( bLimXmin and nStartSide == 0) or ( bLimXmax and nStartSide == 1) then
|
||||
dStartDist = dToolDiam / 2
|
||||
dStartAccDist = BD.LONGCUT_MAXLEN
|
||||
bStartFixed = false
|
||||
@@ -898,7 +909,7 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId, bCustUseBlade, nCus
|
||||
local dEndDist = 0
|
||||
local dEndAccDist = BD.LONGCUT_ENDLEN
|
||||
local bEndFixed = true
|
||||
if ( bLimXmin and not bFront) or ( bLimXmax and bFront) then
|
||||
if ( bLimXmin and nStartSide == 1) or ( bLimXmax and nStartSide == 0) then
|
||||
dEndDist = dToolDiam / 2
|
||||
dEndAccDist = BD.LONGCUT_MAXLEN
|
||||
bEndFixed = false
|
||||
@@ -963,8 +974,6 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId, bCustUseBlade, nCus
|
||||
dEndAccDist = 0
|
||||
end
|
||||
end
|
||||
-- determino l'utilizzo della faccia
|
||||
local nFaceUse = EgtIf( abs( vtN:getY()) > 0.01, MCH_MILL_FU.ORTHO_DOWN, EgtIf( bFront, MCH_MILL_FU.ORTHO_FRONT, MCH_MILL_FU.ORTHO_BACK))
|
||||
-- si percorre il lato basso della faccia
|
||||
local nM = 0
|
||||
local nCountMilHead = 0
|
||||
@@ -995,6 +1004,21 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId, bCustUseBlade, nCus
|
||||
EgtOutLog( sErr)
|
||||
return false, sErr
|
||||
end
|
||||
if i == 1 and not bStartFixed then
|
||||
if nO == 1 or EgtGetMachiningParam( MCH_MP.LITANG) ~= 0 then
|
||||
EgtSetMachiningParam( MCH_MP.LIELEV, 0)
|
||||
EgtSetMachiningParam( MCH_MP.LITANG, 0)
|
||||
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_MILL_LI.LINEAR)
|
||||
EgtSetMachiningParam( MCH_MP.LIPERP, dWidth + BD.CUT_EXTRA + BD.CUT_SIC or 20)
|
||||
end
|
||||
elseif i == nC and not bEndFixed then
|
||||
if nO == 1 or EgtGetMachiningParam( MCH_MP.LOTANG) ~= 0 then
|
||||
EgtSetMachiningParam( MCH_MP.LOELEV, 0)
|
||||
EgtSetMachiningParam( MCH_MP.LOTANG, 0)
|
||||
EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MCH_MILL_LI.LINEAR)
|
||||
EgtSetMachiningParam( MCH_MP.LOPERP, dWidth + BD.CUT_EXTRA + BD.CUT_SIC or 20)
|
||||
end
|
||||
end
|
||||
-- aggiungo geometria
|
||||
EgtSetMachiningGeometry( {{ Proc.Id, 0}})
|
||||
-- limito opportunamente la lavorazione
|
||||
|
||||
Reference in New Issue
Block a user