DataWall :
- migliorie a nesting - aggiunta gestione prefori - migliorie a rifinitura tagli inclinati.
This commit is contained in:
@@ -112,9 +112,9 @@ function WPF.FlipClassify( Proc, b3Raw)
|
||||
nFlip1 = 100
|
||||
elseif dVtNZMedia >= 0 + GEO.EPS_SMALL then
|
||||
nFlip0 = 75
|
||||
nFlip1 = 25
|
||||
nFlip1 = 50
|
||||
else
|
||||
nFlip0 = 25
|
||||
nFlip0 = 50
|
||||
nFlip1 = 75
|
||||
end
|
||||
end
|
||||
@@ -1245,6 +1245,19 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd
|
||||
end
|
||||
end
|
||||
local dEal = vFace[i].Whisk - vFace[i].Len
|
||||
-- se angolo interno prima e faccia precedente inclinata verso l'alto oltre 16.1deg
|
||||
if vFace[i].PrevAng < -30 and j and vFace[j].Norm:getZ() < 0.96078 and vFace[j].Norm:getZ() > 0 then
|
||||
dEal = dEal + vFace[j].Width * vFace[j].Norm:getZ()
|
||||
end
|
||||
-- se angolo interno dopo e faccia successiva inclinata verso l'alto oltre 16.1deg
|
||||
local k = EgtIf( i < #vFace, i + 1, EgtIf( bClosed, 1, nil))
|
||||
if k and vFace[k].PrevAng < -30 and vFace[k].Norm:getZ() < 0.96078 and vFace[k].Norm:getZ() > 0 then
|
||||
dEal = dEal + vFace[k].Width * vFace[j].Norm:getZ()
|
||||
-- se l'inclinazione è inferiore a 46.1deg
|
||||
if vFace[k].Norm:getZ() > 0.72055 then
|
||||
dEal = dEal - vFace[k].Width
|
||||
end
|
||||
end
|
||||
EgtSetMachiningParam( MCH_MP.STARTADDLEN, dSal)
|
||||
EgtSetMachiningParam( MCH_MP.ENDADDLEN, dEal)
|
||||
-- percorso da non invertire
|
||||
@@ -1306,6 +1319,7 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd
|
||||
local dSal = EgtIf( ( vFace[i].Type & 2) ~= 0, vFace[i].Whisk - vFace[i].Len, 0)
|
||||
local dEal = 0
|
||||
local OrigI = i
|
||||
local OrigH = j
|
||||
local LastJ
|
||||
i = i + 1
|
||||
local j = EgtIf( i <= #vFace, i, EgtIf( bAllType4 or not bClosed, nil, 1))
|
||||
@@ -1333,14 +1347,12 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd
|
||||
local dTanA = -tan( vFace[OrigI].PlPrevAng + 90)
|
||||
dSal = -dMillDiam / 2 * ( 1 + ( 1 + dSinA) * dTanA) + min( 0, vFace[OrigI].Width * vFace[OrigI].Norm:getZ() * dTanA)
|
||||
-- se faccia precedente inclinata verso il basso
|
||||
local OrigH = EgtIf( OrigI > 1, OrigI - 1, EgtIf( bClosed, #vFace, nil))
|
||||
if OrigH and vFace[OrigH].Norm:getZ() < -0.017 then
|
||||
dSal = dSal + vFace[OrigH].Width * vFace[OrigH].Norm:getZ()
|
||||
end
|
||||
-- se angolo esterno prima
|
||||
elseif vFace[OrigI].PrevAng > 30 then
|
||||
-- se faccia precedente inclinata verso il basso
|
||||
local OrigH = EgtIf( OrigI > 1, OrigI - 1, EgtIf( bClosed, #vFace, nil))
|
||||
if OrigH and vFace[OrigH].Norm:getZ() < -0.017 then
|
||||
dSal = dSal - vFace[OrigH].Width * vFace[OrigH].Norm:getZ()
|
||||
end
|
||||
@@ -1348,8 +1360,8 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd
|
||||
end
|
||||
-- se lavorazione completa o finale su faccia finale
|
||||
local LastFace = ( LastJ or OrigI)
|
||||
if vFace[LastFace].Type == 4 or vFace[LastFace].Type == 2 then
|
||||
local OrigK = EgtIf( LastFace < #vFace, LastFace + 1, EgtIf( bClosed, 1, nil))
|
||||
local OrigK = EgtIf( LastFace < #vFace, LastFace + 1, EgtIf( bClosed, 1, nil))
|
||||
if vFace[LastFace].Type == 4 or ( vFace[LastFace].Type & 2) ~= 0 then
|
||||
-- se angolo interno dopo
|
||||
if OrigK and vFace[OrigK].PrevAng < -30 then
|
||||
local dSinA = -sin( vFace[OrigK].PlPrevAng + 90)
|
||||
@@ -1367,6 +1379,21 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd
|
||||
end
|
||||
end
|
||||
end
|
||||
-- per sola lavorazione finale
|
||||
if ( vFace[LastFace].Type & 2) ~= 0 then
|
||||
-- se angolo interno dopo e faccia successiva inclinata verso l'alto oltre 16.1 deg
|
||||
if OrigK and vFace[OrigK].PrevAng < -30 and vFace[OrigK].Norm:getZ() < 0.96078 and vFace[OrigK].Norm:getZ() > 0 then
|
||||
dSal = dSal + vFace[OrigK].Width * vFace[OrigK].Norm:getZ()
|
||||
end
|
||||
-- se angolo interno prima e faccia precedente inclinata verso l'alto oltre 16.1 deg
|
||||
if vFace[OrigI].PrevAng < -30 and OrigH and vFace[OrigH].Norm:getZ() < 0.96078 and vFace[OrigH].Norm:getZ() > 0 then
|
||||
dSal = dSal + vFace[OrigH].Width * vFace[OrigH].Norm:getZ()
|
||||
-- se l'inclinazione è inferiore a 46.1deg
|
||||
if vFace[OrigH].Norm:getZ() > 0.72055 then
|
||||
dSal = dSal - vFace[OrigH].Width
|
||||
end
|
||||
end
|
||||
end
|
||||
-- se percorso chiuso e completo con fresa
|
||||
if bClosed and bAllType4 then
|
||||
dSal = 0
|
||||
|
||||
Reference in New Issue
Block a user