diff --git a/Strategies/Standard/STR0005/STR0005.lua b/Strategies/Standard/STR0005/STR0005.lua index 65f24b3..c00cfcc 100644 --- a/Strategies/Standard/STR0005/STR0005.lua +++ b/Strategies/Standard/STR0005/STR0005.lua @@ -102,7 +102,7 @@ function STR0005.Make( bAddMachining, Proc, Part, CustomParameters) local dFeatureMaxNotClampableLengthHead, dFeatureMaxNotClampableLengthTail = FeatureLib.GetFeatureMaxNotClampableLengths( Proc, Part) local bFeatureHindersClamping = FeatureLib.IsMachiningLong( max( dFeatureMaxNotClampableLengthHead, dFeatureMaxNotClampableLengthTail), Part, { dMaxSegmentLength = BeamData.LONGCUT_ENDLEN}) local bIsFeatureLong = FeatureLib.IsMachiningLong( Proc.b3Box:getDimX(), Part, { dMaxSegmentLength = BeamData.LONGCUT_ENDLEN}) - local bIsTwoFacesCommonEdgeTooLong = ( ( Proc.nFct == 2) and IsTwoFacesCommonEdgeTooLong( Proc, Part)) + local bIsTwoFacesCommonEdgeTooLong = ( ( Proc.Topology and ( Proc.Topology.sName == 'Rabbet-2-Through')) and IsTwoFacesCommonEdgeTooLong( Proc, Part)) -- lavorazione con codolo if ( Proc.nFct > 2 and bIsFeatureLong) diff --git a/StrategyLibs/BLADETOWASTE.lua b/StrategyLibs/BLADETOWASTE.lua index 2a01ec8..039ac2d 100644 --- a/StrategyLibs/BLADETOWASTE.lua +++ b/StrategyLibs/BLADETOWASTE.lua @@ -593,7 +593,7 @@ function BLADETOWASTE.Make( ProcOrId, Part, OptionalParameters) -- controlli preventivi if Proc.nFct > 2 then error( 'BladeToWaste : max 2 faces supported') - elseif Proc.nFct == 2 then + elseif Proc.Topology and ( Proc.Topology.sName == 'Rabbet-2-Through') then -- ricerca lato in comune local nCommonEdge for i = 1, #Proc.Faces[1].Edges do diff --git a/StrategyLibs/FACEBYBLADE.lua b/StrategyLibs/FACEBYBLADE.lua index c2d06f8..7a43b9e 100644 --- a/StrategyLibs/FACEBYBLADE.lua +++ b/StrategyLibs/FACEBYBLADE.lua @@ -57,7 +57,7 @@ local function GetLeadInOutType( Machining) end -local function CalculateLeadInOut( Machining, EdgeToMachine, Part) +local function CalculateLeadInOut( Machining, EdgeToMachine, bIsSplitFeature) -- TODO implementare le funzioni di Tool Collision Avoidance (vedi wiki e FacesBysaw -> CalcLeadInOutPerpGeom) -- si determina l'eventuale riduzione da applicare in caso di inizio o fine chiusi @@ -81,7 +81,8 @@ local function CalculateLeadInOut( Machining, EdgeToMachine, Part) if Machining.bIsStartClosed or Machining.bIsEndClosed or Machining.CloneStepsRadial.nCount > 1 - or Machining.Steps.nCount > 1 then + or Machining.Steps.nCount > 1 + or bIsSplitFeature then Machining.sLeadInOutType = 'Perpendicular' if AreSameVectorApprox( Machining.vtToolDirection, EdgeToMachine.vtN) then @@ -375,7 +376,7 @@ function FACEBYBLADE.Make( Proc, Part, FaceToMachine, EdgeToMachine, OptionalPar Cutting.CloneStepsRadial.dStep = Cutting.dDepthToMachine end -- approccio e retrazione - Cutting.LeadIn, Cutting.LeadOut = CalculateLeadInOut( Cutting, EdgeToMachine, Part) + Cutting.LeadIn, Cutting.LeadOut = CalculateLeadInOut( Cutting, EdgeToMachine, bIsSplitFeature) -- lunghezza lavorata -- TODO per il calcolo del dLengthOnX si deve correggere con allungamento / accorciamento percorso Cutting.dLengthToMachine = EdgeToMachine.dLength + Cutting.LeadIn.dStartAddLength + Cutting.LeadOut.dEndAddLength