- in BCS aggiunta strategia STR0005 per feature 0-20

- modifiche a lunghezza non pinzabile
- in STR0002 se svuotatura su faccia tunnel, lavorazione è considerata ora completa, ma si abbassa qualità
This commit is contained in:
andrea.villa
2025-10-22 10:44:48 +02:00
parent 9c4fab2d3c
commit 50336bfad6
3 changed files with 27 additions and 31 deletions
+1 -1
View File
@@ -144,7 +144,7 @@ local function GetStrategies_Essetre( Proc)
---------------------------------------------------------------------
-- Feature : Birds Mouth (0-20)
elseif ID.IsBirdsMouth( Proc) then
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0010'}}
Strategies = { { sStrategyId = 'STR0002'}, { sStrategyId = 'STR0005'}, { sStrategyId = 'STR0010'}}
---------------------------------------------------------------------
-- Feature : Hip or Valley Rafter Notch (0-25)
elseif ID.IsHipValleyRafterNotch( Proc) then
+11 -9
View File
@@ -949,15 +949,17 @@ function FeatureLib.CalculateFeatureNotClampableLengths( Proc, Part)
dOffs = min( dOffs, BeamData.VICE_MAXH - BeamData.VICE_MINH)
end
dNotClampableLengthTail = dOffs
elseif Proc.b3Box:getCenter():getX() > Part.b3Part:getCenter():getX() then
local dOffs = Part.b3Part:getMax():getX() - Proc.b3Box:getMin():getX()
local dDist = Part.b3Part:getMax():getX() - Proc.b3Box:getMax():getX()
-- se pinze a 45° e pinza abbastanza materiale, compenso comunque, ma solo inclinazione morse
if not bIsVertClamps and dDeltaZClamp > BeamData.VICE_MINH and BeamData.VICE_MAXH then
dOffs = min( dOffs, BeamData.VICE_MAXH - BeamData.VICE_MINH)
end
-- dDist serve??
dNotClampableLengthHead = dOffs
-- TODO il controllo sul punto centrale non è corretto, deve essere rivisto.
-- Si lascia qui commentato perchè era così anche in quello vecchio, quindi potrebbe essere che in qualche caso potesse funzionare
-- elseif Proc.b3Box:getCenter():getX() > Part.b3Part:getCenter():getX() then
-- local dOffs = Part.b3Part:getMax():getX() - Proc.b3Box:getMin():getX()
-- local dDist = Part.b3Part:getMax():getX() - Proc.b3Box:getMax():getX()
-- -- se pinze a 45° e pinza abbastanza materiale, compenso comunque, ma solo inclinazione morse
-- if not bIsVertClamps and dDeltaZClamp > BeamData.VICE_MINH and BeamData.VICE_MAXH then
-- dOffs = min( dOffs, BeamData.VICE_MAXH - BeamData.VICE_MINH)
-- end
-- -- dDist serve??
-- dNotClampableLengthHead = dOffs
end
end
end
+15 -21
View File
@@ -332,14 +332,12 @@ local function GetBestPocketingStrategy( Proc)
-- se la 3 completa tutto
elseif Machining[3].bIsApplicable and Machining[3].ToolInfo.dResidualDepth < 10 * GEO.EPS_SMALL then
Machining.sTypeMachining = 'Side1'
-- TODO setto non completo perchè è rimasto il raggio sullo spigolo. E' giusto considerare non completo?
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or Proc.Topology.sName == 'VGroove-2-Through' then
Strategy.Result.sStatus = 'Not-Completed'
else
Strategy.Result.sStatus = 'Completed'
end
Strategy.Result.sStatus = 'Completed'
Strategy.Result.dCompletionIndex = FeatureLib.GetFeatureCompletionIndex( 100)
Strategy.Result.dQuality = FeatureLib.GetStrategyQuality( 'SEMI')
-- si cambia qualità perchè è rimasto il raggio sullo spigolo. E' giusto considerare non completo?
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or Proc.Topology.sName == 'VGroove-2-Through' then
Strategy.Result.dQuality = FeatureLib.GetStrategyQuality( 'SEMI')
end
Strategy.Result.dMRR = Machining[3].dMRR
if Proc.MainFaces.TunnelAddedFaces then
Machining[3].ToolInfo.dResidualDepth = -( Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dElevation + BeamData.MILL_OVERLAP)
@@ -353,14 +351,12 @@ local function GetBestPocketingStrategy( Proc)
-- se la 4 completa tutto
elseif Machining[4].bIsApplicable and Machining[4].ToolInfo.dResidualDepth < 10 * GEO.EPS_SMALL then
Machining.sTypeMachining = 'Side2'
-- TODO setto non completo perchè è rimasto il raggio sullo spigolo. E' giusto considerare non completo?
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or Proc.Topology.sName == 'VGroove-2-Through' then
Strategy.Result.sStatus = 'Not-Completed'
else
Strategy.Result.sStatus = 'Completed'
end
Strategy.Result.sStatus = 'Completed'
Strategy.Result.dCompletionIndex = FeatureLib.GetFeatureCompletionIndex( 100)
Strategy.Result.dQuality = FeatureLib.GetStrategyQuality( 'SEMI')
-- si cambia qualità perchè è rimasto il raggio sullo spigolo. E' giusto considerare non completo?
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or Proc.Topology.sName == 'VGroove-2-Through' then
Strategy.Result.dQuality = FeatureLib.GetStrategyQuality( 'SEMI')
end
Strategy.Result.dMRR = Machining[4].dMRR
if Proc.MainFaces.TunnelAddedFaces then
Machining[4].ToolInfo.dResidualDepth = -( Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dElevation + BeamData.MILL_OVERLAP)
@@ -375,18 +371,16 @@ local function GetBestPocketingStrategy( Proc)
elseif Proc.MainFaces.TunnelAddedFaces and Machining[3].bIsApplicable and Machining[4].bIsApplicable and
Machining[3].ToolInfo.dResidualDepth + Machining[4].ToolInfo.dResidualDepth < (Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dElevation * 2) + BeamData.MILL_OVERLAP then
Machining.sTypeMachining = 'Side1-Side2'
-- TODO setto non completo perchè è rimasto il raggio sullo spigolo. E' giusto considerare non completo?
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or Proc.Topology.sName == 'VGroove-2-Through' then
Strategy.Result.sStatus = 'Not-Completed'
else
Strategy.Result.sStatus = 'Completed'
end
Strategy.Result.sStatus = 'Completed'
-- si suddivide l'extra lavorabile sulle due frese
local dExtraMachDepth = ( Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dElevation * 2 - Machining[3].ToolInfo.dResidualDepth - Machining[4].ToolInfo.dResidualDepth - BeamData.MILL_OVERLAP) / 2
Machining[3].ToolInfo.dResidualDepth = Machining[3].ToolInfo.dResidualDepth - Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dElevation + dExtraMachDepth
Machining[4].ToolInfo.dResidualDepth = Machining[4].ToolInfo.dResidualDepth - Proc.MainFaces.TunnelAddedFaces.MiddleFaceTm.Faces[1].dElevation + dExtraMachDepth
Strategy.Result.dCompletionIndex = FeatureLib.GetFeatureCompletionIndex( 100)
Strategy.Result.dQuality = FeatureLib.GetStrategyQuality( 'SEMI')
-- si cambia qualità perchè è rimasto il raggio sullo spigolo. E' giusto considerare non completo?
if Proc.Topology.sName == 'Groove-3-Through' or Proc.Topology.sName == 'Rabbet-2-Through' or Proc.Topology.sName == 'Bevel-2-Blind' or Proc.Topology.sName == 'VGroove-2-Through' then
Strategy.Result.dQuality = FeatureLib.GetStrategyQuality( 'SEMI')
end
Strategy.Result.dMRR = ( Machining[3].dMRR + Machining[4].dMRR) / 2
Machining[1].bIsApplicable = false
Machining[2].bIsApplicable = false