From bc5c99422ba0dd48a2cd5ae6595f449e7185763c Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Thu, 9 Mar 2023 09:34:43 +0100 Subject: [PATCH] 2.5c4 - in LapJoint Gestito caso riconoscimento errato Stype 3 - piccola correzione a MachiningLib -> FindMilling --- LuaLibs/WMachiningLib.lua | 3 ++- LuaLibs/WProcessLapJoint.lua | 23 ++++++++++++++++++++++- Version.lua | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/LuaLibs/WMachiningLib.lua b/LuaLibs/WMachiningLib.lua index e3b857c..edab88d 100644 --- a/LuaLibs/WMachiningLib.lua +++ b/LuaLibs/WMachiningLib.lua @@ -2,6 +2,7 @@ -- Libreria ricerca lavorazioni per Pareti -- Tabella per definizione modulo +-- 2023/03/09 Piccola correzione alla SideDepth in FindMilling local WMachiningLib = {} -- Include @@ -62,7 +63,7 @@ function WMachiningLib.FindMilling( sType, dDepth, sTuuid, nTool_ID, dMaxDiam, d local dTDiam = EgtTdbGetCurrToolParam( MCH_TP.DIAM) local dTDiamTh = EgtTdbGetCurrToolThDiam() or 0 local dTTipFeed = EgtTdbGetCurrToolParam( MCH_TP.TIPFEED) - local dTMaxDepthOnSide = min( EgtTdbGetCurrToolValInNotes( MCH_TP.USERNOTES, 'SIDEDEPTH', 'd') or 0, 0.5 * ( dTDiam - dTDiamTh)) + local dTMaxDepthOnSide = min( EgtTdbGetCurrToolValInNotes( MCH_TP.USERNOTES, 'SIDEDEPTH', 'd') or 999, 0.5 * ( dTDiam - dTDiamTh)) local nMyTool_ID = EgtTdbGetCurrToolValInNotes( MCH_TP.USERNOTES, 'Tool_ID', 'i') if nMchType == MCH_MY.MILLING and ( not sTuuid or sTuuid == sMyTuuid) and diff --git a/LuaLibs/WProcessLapJoint.lua b/LuaLibs/WProcessLapJoint.lua index a626a82..1209352 100644 --- a/LuaLibs/WProcessLapJoint.lua +++ b/LuaLibs/WProcessLapJoint.lua @@ -14,6 +14,7 @@ -- 2022/11/15 DS Con lama massima inclinazione 60deg. -- 2022/12/01 Per 2 facce con angolo > 90° implementata lavorazione principale verticale. Se da sopra, aggiunta ripresa del lato inclinato. -- 2022/12/14 Nel caso di 2 facce piccola correzione al modo di ordinare le facce. +-- 2023/03/09 Gestito caso riconoscimento errato Stype 3 -- Tabella per definizione modulo local WPL = {} @@ -142,6 +143,26 @@ function WPL.Classify( Proc, b3Raw) bAllowNegativeFace = true end end + + -- conto le adiacenze delle facce + local vAdj = {} + local nFacesWithMoreThanOneAdj = 0 + for i = 1, Proc.Fct do + -- recupero le adiacenze del loop esterno + local vFacAdj = EgtSurfTmFacetAdjacencies( Proc.Id, i - 1)[1] + -- le conto + local nCount = 0 + for j = 1, #vFacAdj do + if vFacAdj[j] >= 0 then + nCount = nCount + 1 + end + end + vAdj[i] = nCount + if nCount > 1 then + nFacesWithMoreThanOneAdj = nFacesWithMoreThanOneAdj + 1 + end + end + -- verifico se la faccia è lavorabile da sopra o di fianco if ( vtN:getZ() >= WD.NZ_MINA or ( dMinNz < -0.866 and Proc.Fct >= 3 and ( vtN:getZ() > - 0.01 or bAllowNegativeFace))) then Proc.Stype = 1 @@ -155,7 +176,7 @@ function WPL.Classify( Proc, b3Raw) Proc.Stype = 2 return ( vtN2:getZ() >= WD.NZ_MINA or ( dMinNz < -0.866 and Proc.Fct >= 3 and vtN2:getZ() > - 0.01)) -- se tre facce - elseif Proc.Fct == 3 then + elseif Proc.Fct == 3 and nFacesWithMoreThanOneAdj < 2 then -- verifico se U da sopra -- dati della faccia local nFac2 = EgtIf( nFacInd == 0, 1, 0) diff --git a/Version.lua b/Version.lua index da5ffee..2819faf 100644 --- a/Version.lua +++ b/Version.lua @@ -1,4 +1,4 @@ -- Version.lua by Egalware s.r.l. 2023/03/08 -- Gestione della versione di Wall -VERSION = '2.5c3' +VERSION = '2.5c4'