From eca9ed59680243c30d16373643c742274aa1bdbe Mon Sep 17 00:00:00 2001 From: DarioS Date: Tue, 15 Jun 2021 18:22:53 +0200 Subject: [PATCH] DataWall : - modifiche per pulitura spigoli di contorni o equivalenti con sega a catena. --- LuaLibs/WProcessFreeContour.lua | 34 +++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/LuaLibs/WProcessFreeContour.lua b/LuaLibs/WProcessFreeContour.lua index 44ffa6b..d66300c 100644 --- a/LuaLibs/WProcessFreeContour.lua +++ b/LuaLibs/WProcessFreeContour.lua @@ -1,4 +1,4 @@ --- ProcessFreeContour.lua by Egaltech s.r.l. 2021/04/22 +-- ProcessFreeContour.lua by Egaltech s.r.l. 2021/06/15 -- Gestione calcolo profilo libero per Pareti -- Tabella per definizione modulo @@ -15,7 +15,7 @@ local WD = require( 'WallData') local WM = require( 'WMachiningLib') local WHISK_OFFS = 0.1 local WHISK_SAFE = 5 -local MIN_LEN_CUT = 50 +local MIN_LEN_CUT = 250 -- variabili assegnazione parametri Q local sTypeCornerCut = 'Q05' -- i @@ -1230,6 +1230,11 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd dEal = -dMillDiam / 2 end end + -- se percorso chiuso e completo con fresa + if bClosed and bAllType4 then + dSal = 0 + dEal = 0 + end end -- se non devo scaricare l'angolo if nConeCut <= 1 then @@ -1384,6 +1389,11 @@ local function AddSawings( sSawing, vFace, Proc, nRawId, b3Raw) dMaxDepth = EgtTdbGetCurrToolMaxDepth() or dMaxDepth end end + -- Calcolo angolo 3° asse rot (da direz. utensile) + local sRot3Ang = 'A1=180' + if WD.GetChainSawBlockedAxis then + sRot3Ang = WD.GetChainSawBlockedAxis( 1) + end -- ciclo di inserimento dei tagli con sega a catena for i = 1, #vFace do -- se inizio faccia non tagliato completamente, inserisco un ripasso con sega a catena @@ -1398,7 +1408,6 @@ local function AddSawings( sSawing, vFace, Proc, nRawId, b3Raw) end EgtSetInfo( nMchId, 'Part', Proc.PartId) -- calcolo l'affondamento --- local dDepth = min( vFace[i].Width + WD.CUT_EXTRA, dMaxDepth) local dDepth = vFace[i].Width + WD.CUT_EXTRA -- se affondamento superiore ai limiti della fresa if dDepth > dMaxDepth then @@ -1415,12 +1424,19 @@ local function AddSawings( sSawing, vFace, Proc, nRawId, b3Raw) EgtSetMachiningParam( MCH_MP.INVERT, false) -- assegno utilizzo faccia EgtSetMachiningParam( MCH_MP.FACEUSE, MCH_MILL_FU.PARAL_DOWN) + -- imposto angolo 3° asse rot + EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, sRot3Ang) -- assegno affondamento EgtSetMachiningParam( MCH_MP.DEPTH, dDepth) -- assegno lato di lavoro EgtSetMachiningParam( MCH_MP.WORKSIDE, MCH_MILL_WS.RIGHT) -- posizione braccio porta testa - EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.NONE) + if vFace[i].Norm:getX() < 0.018 then + EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.NONE) + else + EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.OPPOSITE) + EgtSetMachiningParam( MCH_MP.OFFSR, dSawThick) + end -- eseguo if not EgtApplyMachining( true, false) then local _, sErr = EgtGetLastMachMgrError() @@ -1440,7 +1456,6 @@ local function AddSawings( sSawing, vFace, Proc, nRawId, b3Raw) end EgtSetInfo( nMchId, 'Part', Proc.PartId) -- calcolo l'affondamento --- local dDepth = min( vFace[i].Width + WD.CUT_EXTRA, dMaxDepth) local dDepth = vFace[i].Width + WD.CUT_EXTRA -- se affondamento superiore ai limiti della fresa if dDepth > dMaxDepth then @@ -1460,12 +1475,19 @@ local function AddSawings( sSawing, vFace, Proc, nRawId, b3Raw) EgtSetMachiningParam( MCH_MP.INVERT, false) -- assegno utilizzo faccia EgtSetMachiningParam( MCH_MP.FACEUSE, MCH_MILL_FU.PARAL_DOWN) + -- imposto angolo 3° asse rot + EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, sRot3Ang) -- assegno affondamento EgtSetMachiningParam( MCH_MP.DEPTH, dDepth) -- assegno lato di lavoro EgtSetMachiningParam( MCH_MP.WORKSIDE, MCH_MILL_WS.RIGHT) -- posizione braccio porta testa - EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.NONE) + if vFace[i].Norm:getX() < 0.018 then + EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.NONE) + else + EgtSetMachiningParam( MCH_MP.SCC, MCH_SCC.OPPOSITE) + EgtSetMachiningParam( MCH_MP.OFFSR, dSawThick) + end -- eseguo if not EgtApplyMachining( true, false) then local _, sErr = EgtGetLastMachMgrError()