DataBeam :

- nelle macchine con testa da sotto si fanno con la testa sopra anche tutti i tagli da sotto fattibili
- in LapJoint modificato ripasso con fresa piccola ora di tipo SmallToolContour.
This commit is contained in:
DarioS
2021-06-29 12:30:53 +02:00
parent cf762ecd83
commit 3d86d96e1e
2 changed files with 36 additions and 18 deletions
+1 -1
View File
@@ -694,7 +694,7 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom,
end
-- abilitazione lavorazione da sotto (testa da sotto e direzione normale sotto -20deg)
local bTopHead = ( BD.DOWN_HEAD and vtN:getZ() > -0.342)
local bDownHead = ( BD.DOWN_HEAD and vtN:getZ() < -0.341)
local bDownHead = ( BD.DOWN_HEAD and vtN:getZ() < -0.341 and ( abs( vtN:getY()) > 0.017 or b3Raw:getDimY() > 2 * ( BD.MAX_DIM_HTCUT - BD.CUT_EXTRA_MIN)))
-- recupero la lavorazione
local sCutType = EgtIf( Proc.Head, 'HeadSide', 'TailSide')
local sCutting = ML.FindCutting( sCutType .. EgtIf( bDownHead, '_H2', ''))
+35 -17
View File
@@ -260,7 +260,7 @@ local function VerifyChainSaw( Proc, dMinDim, dMaxDim, vtOrtho)
end
---------------------------------------------------------------------
local function VerifyIfPocket( Proc, dDiam, vtOrtho, dDepth, sMchFindMaster)
local function VerifyIfPocket( Proc, dDiam, dDepth, sMchFindMaster)
-- tipo di svuotatura
local sMchFind = EgtIf( sMchFindMaster and #sMchFindMaster > 0, sMchFindMaster, 'Pocket')
-- ricerca della svuotatura
@@ -450,13 +450,17 @@ end
---------------------------------------------------------------------
local function CalcCollisionSafety( vtDir)
local dCollSic = 8 * BD.COLL_SIC
if abs( vtDir:getX()) > 0.996 or abs( vtDir:getY()) > 0.996 or abs( vtDir:getZ()) > 0.996 then
local dCollSic = 10 * BD.COLL_SIC
if abs( vtDir:getX()) > 0.999 or abs( vtDir:getY()) > 0.999 or abs( vtDir:getZ()) > 0.999 then
dCollSic = 0
elseif abs( vtDir:getX()) > 0.996 or abs( vtDir:getY()) > 0.996 or abs( vtDir:getZ()) > 0.996 then
dCollSic = 1 * BD.COLL_SIC
elseif abs( vtDir:getX()) > 0.89 or abs( vtDir:getY()) > 0.89 or abs( vtDir:getZ()) > 0.89 then
dCollSic = 2.5 * BD.COLL_SIC
elseif abs( vtDir:getX()) > 0.866 or abs( vtDir:getY()) > 0.866 or abs( vtDir:getZ()) > 0.866 then
dCollSic = 2 * BD.COLL_SIC
dCollSic = 4 * BD.COLL_SIC
elseif abs( vtDir:getX()) > 0.707 or abs( vtDir:getY()) > 0.707 or abs( vtDir:getZ()) > 0.707 then
dCollSic = 5 * BD.COLL_SIC
dCollSic = 5.5 * BD.COLL_SIC
end
return dCollSic
end
@@ -645,7 +649,7 @@ function ProcessLapJoint.Classify( Proc, b3Raw)
local dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace, nSurfInt = GetTunnelDimension( Proc, nPartId)
EgtErase(nSurfInt)
-- verifico se può essere fatto con svuotatura
if VerifyIfPocket( Proc, dDimMin, vtOrtho) then
if VerifyIfPocket( Proc, dDimMin) then
return true, false
elseif VerifyChainSaw( Proc, dDimMin, dDimMax, vtOrtho) then
return true, false
@@ -1346,10 +1350,13 @@ local function SetOpenSide( nPathInt, vtOrtho, b3Solid, nAddGrpId, nStartPoint)
if nStartPoint == 2 then
EgtRemoveCurveCompoCurve( nPathInt, true)
EgtRemoveCurveCompoCurve( nPathInt, false)
return true
end
end
end
end
return false
end
---------------------------------------------------------------------
@@ -1357,9 +1364,9 @@ local function MakeRoundCleanCorner( Proc, nPhase, nRawId, nPartId, b3Raw,
nFacInd, nAddGrpId, dDiam)
-- recupero la lavorazione senza considerare l'elevazione
local sMilling = ML.FindMilling( 'LongSmallCut')
local sMilling = ML.FindMilling( 'SmallToolContour')
if not sMilling then
local sMyWarn = 'Warning : clean corner milling/tool not found in library'
local sMyWarn = 'Warning : SmallToolContour not found in library'
EgtOutLog( sMyWarn)
return true, sMyWarn
end
@@ -1535,9 +1542,9 @@ local function MakeRoundCleanContour( Proc, nPhase, nRawId, nPartId, b3Raw,
bOneShot)
-- recupero la lavorazione senza considerare l'elevazione perché viene calcolata l'elevazione utile
local sMilling = ML.FindMilling( 'LongSmallCut')
local sMilling = ML.FindMilling( 'SmallToolContour')
if not sMilling then
local sMyWarn = 'Warning : clean corner milling/tool not found in library'
local sMyWarn = 'Warning : SmallToolContour not found in library'
EgtOutLog( sMyWarn)
return true, sMyWarn
end
@@ -1699,12 +1706,23 @@ local function MakeRoundCleanContour( Proc, nPhase, nRawId, nPartId, b3Raw,
end
end
EgtSetMachiningParam( MCH_MP.SCC, nSCC)
-- tipo attacco e uscita
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_MILL_LI.NONE)
EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MCH_MILL_LO.AS_LI)
-- allungo inizio e fine di 3/4 del diametro utensile
EgtSetMachiningParam( MCH_MP.STARTADDLEN, dTDiam * 0.75)
EgtSetMachiningParam( MCH_MP.ENDADDLEN, dTDiam * 0.75)
-- gestione attacco e uscita
if EgtCurveIsClosed( nIdPath) then
-- attacco e uscita a quarto di cerchio senza allungamenti a inizio e fine
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_MILL_LI.TANGENT)
EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MCH_MILL_LO.AS_LI)
EgtSetMachiningParam( MCH_MP.LITANG, 0)
EgtSetMachiningParam( MCH_MP.LIPERP, 0.5 * dTDiam)
EgtSetMachiningParam( MCH_MP.LIELEV, 0)
EgtSetMachiningParam( MCH_MP.STARTADDLEN, 0)
EgtSetMachiningParam( MCH_MP.ENDADDLEN, 0)
else
-- nessun attacco e uscita, allungo inizio e fine di 3/4 del diametro utensile
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_MILL_LI.NONE)
EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MCH_MILL_LO.AS_LI)
EgtSetMachiningParam( MCH_MP.STARTADDLEN, 0.75 * dTDiam)
EgtSetMachiningParam( MCH_MP.ENDADDLEN, 0.75 * dTDiam)
end
-- setto massimo affondamento possibile
local dMachDepth = 0
if ( dMaxElev + BD.CUT_EXTRA + dCollSic) > dTMaxDepth then
@@ -3248,7 +3266,7 @@ local function MakeByPockets( Proc, nPhase, nRawId, nPartId, nChamfer, dDepthCha
-- se smusso non è esclusivo
if nChamfer < 2 then
-- verifico se può essere fatto con svuotatura
local bMakePocket, sPocketing, dMaxDepth, dDiamTool = VerifyIfPocket( Proc, dDimMin, vtOrtho, dDepth / 2, sMchFind)
local bMakePocket, sPocketing, dMaxDepth, dDiamTool = VerifyIfPocket( Proc, dDimMin, dDepth / 2, sMchFind)
if bMakePocket then
-- gestione svuotatura da un solo lato o anche dal lato opposto (se non verticale)
-- estraggo il contorno dalla superfice per evitare i problemi con la svuotatura