From e37486db1da4b27f868ca3f9c5a30565589b7e35 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Mon, 27 Jan 2025 15:57:12 +0100 Subject: [PATCH] - in STR0003 correzione nel calcolo LeadIn/Out per i cloni --- LuaLibs/MachiningLib.lua | 1 + Strategies/Standard/HEADCUT/HEADCUT.lua | 1 + Strategies/Standard/STR0003/STR0003.lua | 4 ++-- Strategies/Standard/STR0005/STR0005.lua | 5 +++-- StrategyLibs/SLOTBYBLADE.lua | 5 +++-- StrategyLibs/SLOTBYCHAINSAW.lua | 1 + 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/LuaLibs/MachiningLib.lua b/LuaLibs/MachiningLib.lua index 9f2f937..a9a4417 100644 --- a/LuaLibs/MachiningLib.lua +++ b/LuaLibs/MachiningLib.lua @@ -296,6 +296,7 @@ end ------------------------------------------------------------------------------------------------------------- -- funzione per cercare utensile tipo LAMA con certe caratteristiche -- TODO da completare +-- TODO il FindBlade dovrà restituire di utilizzare sempre la lama sopra se l'angolo lo permette, ma avendo un'altezza massima (da macchina) oltre cui il DownUp non sarà fattibile (evita collisioni tra asse e pezzo) function MachiningLib.FindBlade( Proc, ToolSearchParameters) local ToolInfo = {} diff --git a/Strategies/Standard/HEADCUT/HEADCUT.lua b/Strategies/Standard/HEADCUT/HEADCUT.lua index 17fd160..86e5964 100644 --- a/Strategies/Standard/HEADCUT/HEADCUT.lua +++ b/Strategies/Standard/HEADCUT/HEADCUT.lua @@ -16,6 +16,7 @@ local MachiningLib = require( 'MachiningLib') local FeatureLib = require( 'FeatureLib') -- strategie di base local FaceByBlade = require('FACEBYBLADE') +local SlotByBlade = require('SLOTBYBLADE') -- Tabella per definizione modulo local HEADCUT = {} diff --git a/Strategies/Standard/STR0003/STR0003.lua b/Strategies/Standard/STR0003/STR0003.lua index 1af1510..955d69a 100644 --- a/Strategies/Standard/STR0003/STR0003.lua +++ b/Strategies/Standard/STR0003/STR0003.lua @@ -210,8 +210,8 @@ function Blade.AddMachiningAllSteps( Proc, Cutting, AuxiliaryData) AuxiliaryData.Clones[i].LeadOut = {} AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffset + Cutting.HorizontalSteps.dStep * ( Cutting.HorizontalSteps.nCount - i) -- update distanza perpendicolare attacco per contemplare l'offset applicato - AuxiliaryData.Clones[i].LeadIn.dPerpDistance = dOriginalLeadInPerpDistance - Cutting.dRadialOffset - AuxiliaryData.Clones[i].LeadOut.dPerpDistance = dOriginalLeadOutPerpDistance - Cutting.dRadialOffset + AuxiliaryData.Clones[i].LeadIn.dPerpDistance = dOriginalLeadInPerpDistance - AuxiliaryData.Clones[i].dRadialOffset + AuxiliaryData.Clones[i].LeadOut.dPerpDistance = dOriginalLeadOutPerpDistance - AuxiliaryData.Clones[i].dRadialOffset end bMachiningAdded = MachiningLib.AddNewMachining( Proc, Cutting, AuxiliaryData) diff --git a/Strategies/Standard/STR0005/STR0005.lua b/Strategies/Standard/STR0005/STR0005.lua index 98498a1..3a9df84 100644 --- a/Strategies/Standard/STR0005/STR0005.lua +++ b/Strategies/Standard/STR0005/STR0005.lua @@ -115,6 +115,7 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters) Strategy.Result.sInfo = '' Blade.Result = {} + -- estensione oltre la coda local dExtendAfterTail = Strategy.Parameters.dExtendAfterTail or max( Part.dDistanceToNextPiece - BeamData.CUT_EXTRA, 0) if MachiningLib.CanExtendAfterTail( Strategy.Parameters.sCanDamageNextPiece, Part) then dExtendAfterTail = 10000 @@ -127,8 +128,8 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters) local MRRParametersBlade = {} if bFeatureHindersClamping or bLeaveWasteAttached then - -- TODO Lavorazione con codolo - -- attenzione perchè se l'inclinazione della faccia la fa finire oltre lo spigolo questo riduce il massimo calcolare (come calcolare????) + -- TODO valutare se estrapolare in funzione a sè stante in StrategyLibs + -- attenzione perchè se l'inclinazione della faccia la fa finire oltre lo spigolo questo riduce il massimo (come calcolare????) -- il FindBlade dovrà restituire di utilizzare sempre la lama sopra se l'angolo lo permette, ma avendo un'altezza massima (da macchina) oltre cui il DownUp non sarà fattibile (evita collisioni tra asse e pezzo) -- si trovano i lati da lavorare diff --git a/StrategyLibs/SLOTBYBLADE.lua b/StrategyLibs/SLOTBYBLADE.lua index 205f892..f7ca131 100644 --- a/StrategyLibs/SLOTBYBLADE.lua +++ b/StrategyLibs/SLOTBYBLADE.lua @@ -105,6 +105,7 @@ function SLOTBYBLADE.Make( Proc, Part, FaceToMachine, EdgeToMachine, OptionalPar local dDepthToMachine = min( OptionalParameters.dDepthToMachine or EdgeToMachine.dElevation, EdgeToMachine.dElevation) local bIsSplitFeature = OptionalParameters.bIsSplitFeature or false local bOppositeToolDirection = OptionalParameters.bOppositeToolDirection or false + local sDepth = OptionalParameters.sDepth or 0 -- lunghezze e punti caratteristici della lavorazione e del lato lavorato Cutting.dLengthToMachine = EdgeToMachine.dLength @@ -157,8 +158,8 @@ function SLOTBYBLADE.Make( Proc, Part, FaceToMachine, EdgeToMachine, OptionalPar end -- parametri della lavorazione - -- profondità (parametro DEPTH) non usata - Cutting.sDepth = 0 + -- profondità (parametro DEPTH) + Cutting.sDepth = sDepth -- inizio e fine aperti o chiusi Cutting.bIsStartClosed = not EdgeToMachine.bIsStartOpen Cutting.bIsEndClosed = not EdgeToMachine.bIsEndOpen diff --git a/StrategyLibs/SLOTBYCHAINSAW.lua b/StrategyLibs/SLOTBYCHAINSAW.lua index d450cf3..fcd3dc3 100644 --- a/StrategyLibs/SLOTBYCHAINSAW.lua +++ b/StrategyLibs/SLOTBYCHAINSAW.lua @@ -71,6 +71,7 @@ function SLOTBYCHAINSAW.Make( Proc, Part, FaceToMachine, EdgeToMachine, Optional local dPocketHeight = OptionalParameters.dPocketHeight or 0 local bIsSplitFeature = OptionalParameters.bIsSplitFeature or false local bOppositeToolDirection = OptionalParameters.bOppositeToolDirection or false + local sDepth = OptionalParameters.sDepth or 'TH' -- lunghezze e punti caratteristici della lavorazione e del lato lavorato Mortising.dLengthToMachine = dLengthToMachine