From 5866566ebe6de3fc47b69ff15d1f882c0f5deb37 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Mon, 24 Jun 2024 09:57:21 +0200 Subject: [PATCH 1/6] - in BatchProcess, in caso di DEFAULT_RAW_NO_EXTRA_WIDTH, azzerati eventuali PosX e PosZ in arrivo sul pezzo --- BatchProcess.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/BatchProcess.lua b/BatchProcess.lua index 7ca2806..f24e092 100644 --- a/BatchProcess.lua +++ b/BatchProcess.lua @@ -280,6 +280,11 @@ if bToProcess then -- Ne recupero la posizione for i = 1, #vWall do local PosX = EgtGetInfo( vWall[i].Id, 'POSX', 'd') + local PosZ = EgtGetInfo( vWall[i].Id, 'POSZ', 'd') + if WD.DEFAULT_RAW_NO_EXTRA_WIDTH and i == 1 then + PosX = 0 + PosZ = 0 + end vWall[i].PosX = PosX + min( dExtraL, 1200) if WD.USE_POSY then local PosY = EgtGetInfo( vWall[i].Id, 'POSY', 'd') @@ -287,7 +292,6 @@ if bToProcess then else vWall[i].PosY = 0 end - local PosZ = EgtGetInfo( vWall[i].Id, 'POSZ', 'd') vWall[i].PosZ = PosZ + dExtraW / 2 end From e56074f662078188a48d0569f0d80d36f1d67956 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Thu, 27 Jun 2024 14:56:37 +0200 Subject: [PATCH 2/6] modifiche ulteriori per parametro DEFAULT_RAW_NO_EXTRA_WIDTH --- BatchProcess.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/BatchProcess.lua b/BatchProcess.lua index f24e092..a4ad1fa 100644 --- a/BatchProcess.lua +++ b/BatchProcess.lua @@ -281,9 +281,11 @@ if bToProcess then for i = 1, #vWall do local PosX = EgtGetInfo( vWall[i].Id, 'POSX', 'd') local PosZ = EgtGetInfo( vWall[i].Id, 'POSZ', 'd') - if WD.DEFAULT_RAW_NO_EXTRA_WIDTH and i == 1 then + if bProj and WD.DEFAULT_RAW_NO_EXTRA_WIDTH and i == 1 then PosX = 0 PosZ = 0 + dRawL = vWall[i].Box:getDimX() + dRawW = vWall[i].Box:getDimY() end vWall[i].PosX = PosX + min( dExtraL, 1200) if WD.USE_POSY then From 4531434e7968cad99546a0437d045de1f42c32bb Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Thu, 27 Jun 2024 15:50:24 +0200 Subject: [PATCH 3/6] - correzioni a DEFAULT_RAW_NO_EXTRA_WIDTH --- BatchProcess.lua | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/BatchProcess.lua b/BatchProcess.lua index a4ad1fa..e720dae 100644 --- a/BatchProcess.lua +++ b/BatchProcess.lua @@ -281,12 +281,6 @@ if bToProcess then for i = 1, #vWall do local PosX = EgtGetInfo( vWall[i].Id, 'POSX', 'd') local PosZ = EgtGetInfo( vWall[i].Id, 'POSZ', 'd') - if bProj and WD.DEFAULT_RAW_NO_EXTRA_WIDTH and i == 1 then - PosX = 0 - PosZ = 0 - dRawL = vWall[i].Box:getDimX() - dRawW = vWall[i].Box:getDimY() - end vWall[i].PosX = PosX + min( dExtraL, 1200) if WD.USE_POSY then local PosY = EgtGetInfo( vWall[i].Id, 'POSY', 'd') @@ -374,6 +368,14 @@ if bToProcess then PostErrView( WALL.ERR, WALL.MSG) return end + + -- se impostato flag apposito, in vista il grezzo è uguale al pezzo + if bProj and WD.DEFAULT_RAW_NO_EXTRA_WIDTH and i == 1 then + PosX = 0 + PosZ = 0 + dRawL = vWall[1].Box:getDimX() + dRawW = vWall[1].Box:getDimY() + end -- Verifico dimensioni massime grezzo if dRawL > WD.MAX_LENGTH + 10 * GEO.EPS_SMALL or dRawW > WD.MAX_WIDTH + 10 * GEO.EPS_SMALL or dRawH > WD.MAX_HEIGHT + 10 * GEO.EPS_SMALL then From d5e30baf069fb563513c52cad65e6a13c8c99d57 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Thu, 27 Jun 2024 16:38:45 +0200 Subject: [PATCH 4/6] - ulteriori correzioni per DEFAULT_RAW_NO_EXTRA_WIDTH --- BatchProcess.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/BatchProcess.lua b/BatchProcess.lua index e720dae..6261c91 100644 --- a/BatchProcess.lua +++ b/BatchProcess.lua @@ -281,6 +281,10 @@ if bToProcess then for i = 1, #vWall do local PosX = EgtGetInfo( vWall[i].Id, 'POSX', 'd') local PosZ = EgtGetInfo( vWall[i].Id, 'POSZ', 'd') + if bProj and WD.DEFAULT_RAW_NO_EXTRA_WIDTH and #vWall == 1 then + PosX = 0 + PosZ = 0 + end vWall[i].PosX = PosX + min( dExtraL, 1200) if WD.USE_POSY then local PosY = EgtGetInfo( vWall[i].Id, 'POSY', 'd') @@ -370,9 +374,7 @@ if bToProcess then end -- se impostato flag apposito, in vista il grezzo è uguale al pezzo - if bProj and WD.DEFAULT_RAW_NO_EXTRA_WIDTH and i == 1 then - PosX = 0 - PosZ = 0 + if bProj and WD.DEFAULT_RAW_NO_EXTRA_WIDTH and #vWall == 1 then dRawL = vWall[1].Box:getDimX() dRawW = vWall[1].Box:getDimY() end From 099e81cbfd1ad9a49c39702a3169a3677dbd7514 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 17 Jul 2024 11:25:17 +0200 Subject: [PATCH 5/6] - in ProcessDrill aggiunti, se foro verticale passante, riduzione affondamento di 5 mm sostituito con tab. Attualmente limite dal diametro di 200 mm, da verificare --- LuaLibs/WProcessDrill.lua | 58 ++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 19 deletions(-) diff --git a/LuaLibs/WProcessDrill.lua b/LuaLibs/WProcessDrill.lua index b2e01aa..12e3744 100644 --- a/LuaLibs/WProcessDrill.lua +++ b/LuaLibs/WProcessDrill.lua @@ -324,32 +324,41 @@ function WPD.Make( Proc, nRawId, b3Raw) local bAngledContourDrill = false local nAngledContourDrillId = GDB_ID.NULL local dReduceDepth = 0 + local bUseTabs = false -- se trovata svuotatura, verifico se richiesta invece contornatura if nType == 'Pocket' then -- recupero eventuale flag per fare sola contornatura local nContourOnly = ( EgtGetInfo( Proc.Id, sContourOnly, 'i') or 0) if nContourOnly == 1 then - -- imposto riduzione profondita' per evitare distacco pezzo interno - dReduceDepth = 5 - -- se inclinato e passante - if abs( vtExtr:getZ()) >= WD.DRILL_VZ_MIN and abs( vtExtr:getZ()) < 0.999 and Proc.Fcs > 0 and Proc.Fce > 0 then - -- gruppo ausiliario per preforo - local nAddGrpId = WL.GetAddGroup( Proc.PartId) - -- ricavo contorno inferiore della superficie - local nAngledCircleId, nAngledCircleCnt = EgtExtractSurfTmLoops( Proc.Id, nAddGrpId) - local dMinZ = 10000 - local nMinCircleId = GDB_ID.NULL - for Circleindex = 1, nAngledCircleCnt do - local b3Circle = EgtGetBBoxGlob( nAngledCircleId + Circleindex -1, GDB_BB.EXACT) - if b3Circle:getMin():getZ() < dMinZ then - nMinCircleId = nAngledCircleId + Circleindex -1 + -- se passante + if Proc.Fcs > 0 and Proc.Fce > 0 then + -- se inclinato + if abs( vtExtr:getZ()) >= WD.DRILL_VZ_MIN and abs( vtExtr:getZ()) < 0.999 then + -- gruppo ausiliario per preforo + local nAddGrpId = WL.GetAddGroup( Proc.PartId) + -- ricavo contorno inferiore della superficie + local nAngledCircleId, nAngledCircleCnt = EgtExtractSurfTmLoops( Proc.Id, nAddGrpId) + local dMinZ = 10000 + local nMinCircleId = GDB_ID.NULL + for Circleindex = 1, nAngledCircleCnt do + local b3Circle = EgtGetBBoxGlob( nAngledCircleId + Circleindex -1, GDB_BB.EXACT) + if b3Circle:getMin():getZ() < dMinZ then + nMinCircleId = nAngledCircleId + Circleindex -1 + end end + -- estrudo + EgtModifyCurveExtrusion( nMinCircleId, vtExtr, GDB_RT.GLOB) + EgtModifyCurveThickness( nMinCircleId, dLen) + bAngledContourDrill = true + nAngledContourDrillId = nMinCircleId + -- se non inclinato e abbastanza grande uso i tab + -- TODO se si risolve il problema dei tabs non funzionanti sotto ai 200 mm rimuovere il check sul diametro + elseif dDiam > 200 - GEO.EPS_SMALL then + bUseTabs = true + -- se non inclinato e piccolo non arrivo sul fondo + else + dReduceDepth = 5 end - -- estrudo - EgtModifyCurveExtrusion( nMinCircleId, vtExtr, GDB_RT.GLOB) - EgtModifyCurveThickness( nMinCircleId, dLen) - bAngledContourDrill = true - nAngledContourDrillId = nMinCircleId end sDrilling = WM.FindMilling( 'FreeContour', dLen, nil, nil, nil, nil, true) if sDrilling then @@ -515,6 +524,17 @@ function WPD.Make( Proc, nRawId, b3Raw) sUserNotes = EgtSetValInNotes( sUserNotes, 'MirrorAx', Proc.MirrorAx) end EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes) + if bUseTabs then + local dStep = EgtGetMachiningParam( MCH_MP.STEP) + EgtSetMachiningParam( MCH_MP.STEPTYPE, MCH_MILL_ST.ONEWAY) + EgtSetMachiningParam( MCH_MP.LEAVETAB, true) + EgtSetMachiningParam( MCH_MP.TABHEIGHT, EgtClamp( dStep, 0.15 * dDepth, 0.25 * dDepth )) + EgtSetMachiningParam( MCH_MP.TABLEN, EgtClamp( 2 * dDiamT, 0.1 * dDiam, 0.2 * dDiam )) + EgtSetMachiningParam( MCH_MP.TABANGLE, 45) + EgtSetMachiningParam( MCH_MP.TABDIST, 100) + EgtSetMachiningParam( MCH_MP.TABMIN, 3) + EgtSetMachiningParam( MCH_MP.TABMAX, 3) + end -- eseguo if not EgtApplyMachining( true, false) then local _, sErr = EgtGetLastMachMgrError() From 499e49f4f682f464294d0ea08e2c4552cb1a5369 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Wed, 17 Jul 2024 15:50:41 +0200 Subject: [PATCH 6/6] - update log e version - piccola modifica in ProcessDrill --- LuaLibs/WProcessDrill.lua | 2 +- UpdateLog.txt | 4 ++++ Version.lua | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/LuaLibs/WProcessDrill.lua b/LuaLibs/WProcessDrill.lua index 12e3744..a4de0c1 100644 --- a/LuaLibs/WProcessDrill.lua +++ b/LuaLibs/WProcessDrill.lua @@ -353,7 +353,7 @@ function WPD.Make( Proc, nRawId, b3Raw) nAngledContourDrillId = nMinCircleId -- se non inclinato e abbastanza grande uso i tab -- TODO se si risolve il problema dei tabs non funzionanti sotto ai 200 mm rimuovere il check sul diametro - elseif dDiam > 200 - GEO.EPS_SMALL then + elseif dDiam > 100 - 10 * GEO.EPS_SMALL then bUseTabs = true -- se non inclinato e piccolo non arrivo sul fondo else diff --git a/UpdateLog.txt b/UpdateLog.txt index 7bd6ed1..f1d9bf8 100644 --- a/UpdateLog.txt +++ b/UpdateLog.txt @@ -1,5 +1,9 @@ ==== Wall Update Log ==== +Versione 2.6g1 (17/07/2024) +- Modif : in ProcessDrill, se foro verticale passante e diametro inferiore a 100 mm, riduzione affondamento di 5 mm sostituito con tab +- Fixed : correzioni a utilizzo DEFAULT_RAW_NO_EXTRA_WIDTH + Versione 2.6f1 (21/06/2024) - Added : in BatchProcess e BatchProcessNew aggiunto DEFAULT_RAW_NO_EXTRA_WIDTH per eliminare il sovramateriale grezzo in vista diff --git a/Version.lua b/Version.lua index 61cc3d6..6b4004a 100644 --- a/Version.lua +++ b/Version.lua @@ -2,5 +2,5 @@ -- Gestione della versione di Wall NAME = 'Wall' -VERSION = '2.6f1' -MIN_EXE = '2.6c2' +VERSION = '2.6g1' +MIN_EXE = '2.6g1'