From 969f4cb6a0ee6c080925a483b564d7808a3eaecb Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Tue, 9 Apr 2024 16:17:57 +0200 Subject: [PATCH] - in FeatureTopology modifiche alla definizione di parallelo per tunnel e groove - in SawPlusChain piccole correzioni --- LuaLibs/FeatureTopology.lua | 6 +++--- LuaLibs/ProcessLapJoint.lua | 16 +++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/LuaLibs/FeatureTopology.lua b/LuaLibs/FeatureTopology.lua index 57d4067..c77d6b8 100644 --- a/LuaLibs/FeatureTopology.lua +++ b/LuaLibs/FeatureTopology.lua @@ -113,11 +113,11 @@ end --------------------------------------------------------------------- -- restituisce un vettore contenente gli indici delle facce di Proc parallele ad una delle direzioni principali; il check varia in base alla famiglia topologica -local function GetFacesParallelToPart( Proc, sFamily, bIsThrough) +local function GetFacesParallelToPart( Proc, sFamily) local vFacesParallelToPart = {} for i = 0, Proc.Fct - 1 do local vtN = EgtSurfTmFacetNormVersor( Proc.Id, i, GDB_ID.ROOT) - if sFamily == 'Rabbet' or sFamily == 'Bevel' or sFamily == 'DoubleBevel' or sFamily == 'Strip' or sFamily == 'Tunnel' or ( sFamily == 'Groove' and bIsThrough) then + if sFamily == 'Rabbet' or sFamily == 'Bevel' or sFamily == 'DoubleBevel' or sFamily == 'Strip' then local vTriangularFaces = GetTriangularFaces( Proc) local bIsTriangularFace = false -- verifico se la faccia è triangolare @@ -244,7 +244,7 @@ function FeatureTopology.Classify( Proc, b3Raw) end -- verifico se facce parallele a quelle della trave - local vFacesParallelToPart = GetFacesParallelToPart( Proc, sFamily, bIsThrough) + local vFacesParallelToPart = GetFacesParallelToPart( Proc, sFamily) local bIsParallel = ( #vFacesParallelToPart == Proc.Fct) -- assegnazioni diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 15298f6..c8a3ec3 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -4595,6 +4595,8 @@ end -- TODO gestione messaggi in funzione apposita (almeno per append) +-- TODO gestire topologia tunnel (anche da due lati) + local SawPlusChain = {} SawPlusChain.Saw = {} SawPlusChain.Chainsaw = {} @@ -4985,7 +4987,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc) EgtOutLog( Cutting.Message) return Cutting end - if Proc.Pocket.SideOpeningsCount == 0 then + if #( Proc.Pocket.SideFaces) > 0 then -- se tasca più stretta della lama la strategia non è applicabile if Cutting.Tool.Diameter > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for saw blade diameter' @@ -5102,7 +5104,7 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc) EgtOutLog( Chainsawing.Message) return Chainsawing end - if Proc.Pocket.SideOpeningsCount == 0 then + if #( Proc.Pocket.SideFaces) == 0 then -- se tasca più stretta della sega a catena la strategia non è applicabile if Chainsawing.Tool.Width > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then Chainsawing.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for chainsaw width' @@ -5177,15 +5179,15 @@ function SawPlusChain.Make( Proc, nRawId, nPhase, bOnlySaw) Proc.Pocket.Strategy = 'SawPlusChain' local b3Raw = EgtGetRawPartBBox( nRawId) - if not SawPlusChain.IsTopologyOk( Proc) then - local sErr = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not implemented for topology ' .. Proc.TopologyLongName + -- TODO per implementare la strategia con lapjoint lunghe bisogna prima riconoscere le topologie che arrivano + if Proc.IsSplittedLapJoint then + local sErr = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not implemented for long lapjoint ' EgtOutLog( sErr) return false, sErr end - -- TODO per implementare la strategia con lapjoint lunghe bisogna prima riconoscere le topologie che arrivano - if Proc.IsSplittedLapJoint then - local sErr = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not implemented for long lapjoint ' + if not SawPlusChain.IsTopologyOk( Proc) then + local sErr = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not implemented for topology ' .. Proc.TopologyLongName EgtOutLog( sErr) return false, sErr end