DataBeam :
- migliorie a contorno libero e arco.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
-- ProcessFreeContour.lua by Egaltech s.r.l. 2019/07/19
|
||||
-- ProcessFreeContour.lua by Egaltech s.r.l. 2019/12/07
|
||||
-- Gestione calcolo profilo libero per Travi
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
@@ -131,7 +131,9 @@ local function MakeByMill( Proc, nPhase, nRawId, nPartId, dOvmHead)
|
||||
-- recupero i dati della curva e del profilo
|
||||
local dDepth = abs( EgtCurveThickness( AuxId))
|
||||
local vtExtr = EgtCurveExtrusion( AuxId, GDB_RT.GLOB)
|
||||
local b3Aux = EgtGetBBoxGlob( AuxId, GDB_BB.STANDARD)
|
||||
local bToolInv = ( vtExtr:getZ() < -0.1)
|
||||
local bDown = ( b3Aux:getMin():getZ() < b3Raw:getMin():getZ() + 5)
|
||||
-- recupero la lavorazione
|
||||
local sMilling = ML.FindMilling( 'FreeContour')
|
||||
if not sMilling then
|
||||
@@ -150,8 +152,7 @@ local function MakeByMill( Proc, nPhase, nRawId, nPartId, dOvmHead)
|
||||
-- ne verifico la lunghezza per eventuale spezzatura e lavorazione in doppio
|
||||
local nStep = 1
|
||||
local dStep = 0
|
||||
local dLenMax = BD.LONGCUT_MAXLEN
|
||||
local b3Aux = EgtGetBBoxGlob( AuxId, GDB_BB.STANDARD)
|
||||
local dLenMax = BD.LONGCUT_ENDLEN
|
||||
if b3Aux:getDimX() > dLenMax then
|
||||
local dCrvLen = EgtCurveLength( AuxId)
|
||||
nStep = ceil( dCrvLen / dLenMax)
|
||||
@@ -173,10 +174,12 @@ local function MakeByMill( Proc, nPhase, nRawId, nPartId, dOvmHead)
|
||||
end
|
||||
local nDouble = 1
|
||||
local bCanDouble = abs( vtExtr:getY()) > 0.707 and bCross
|
||||
local bStripOnSide = false
|
||||
if bCross then
|
||||
if nStep > 1 then
|
||||
if nStep > 1 or ( bDown and b3Aux:getDimX() > 0.5 * b3Raw:getDimX()) then
|
||||
-- devo lasciare un codolo
|
||||
dDepth = dDepth - BD.DIM_STRIP
|
||||
bStripOnSide = true
|
||||
else
|
||||
-- devo affondare un poco oltre
|
||||
dDepth = dDepth + BD.CUT_EXTRA
|
||||
@@ -190,6 +193,10 @@ local function MakeByMill( Proc, nPhase, nRawId, nPartId, dOvmHead)
|
||||
dDepth = dMaxDepth
|
||||
end
|
||||
end
|
||||
-- se utensile orizzontale verso Y+, non in doppio e codolo da lasciare, devo invertire per lavorare sempre da Y-
|
||||
if vtExtr:getY() > 0.707 and nDouble == 1 and bStripOnSide then
|
||||
bToolInv = true
|
||||
end
|
||||
-- eseguo
|
||||
for i = 1, nStep do
|
||||
for j = 1, nDouble do
|
||||
|
||||
Reference in New Issue
Block a user