DataBeam :

- migliorie a contorno libero e arco.
This commit is contained in:
Dario Sassi
2019-12-07 19:15:41 +00:00
parent b1de0cdc82
commit fb61114039
2 changed files with 43 additions and 15 deletions
+11 -4
View File
@@ -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