diff --git a/LuaLibs/LeadInOutLib.lua b/LuaLibs/LeadInOutLib.lua index 5d64cf5..c3d4236 100644 --- a/LuaLibs/LeadInOutLib.lua +++ b/LuaLibs/LeadInOutLib.lua @@ -83,7 +83,7 @@ function LeadInOutLib.CalculateLeadInOut( sLeadInOutType, Parameters) LeadIn.dPerpDistance = max( dDistanceToPartStart * vtEdgePreviousInvLoc:getY(), dDepthToMachine) LeadIn.dTangentDistance = max( dDistanceToPartStart, dDepthToMachinePrevious) * -abs( vtEdgePreviousInvLoc:getX()) LeadOut.dPerpDistance = max( dDistanceToPartEnd * vtEdgeNextLoc:getY(), dDepthToMachine) - LeadOut.dTangentDistance = max( dDistanceToPartEnd, dDepthToMachine) * vtEdgeNextLoc:getX() + LeadOut.dTangentDistance = max( dDistanceToPartEnd, dDepthToMachineNext) * vtEdgeNextLoc:getX() elseif sLeadInOutType == 'Tangent' then LeadIn.dTangentDistance = Tool.dDiameter / 2 + BeamData.CUT_SIC diff --git a/StrategyLibs/FACEBYBLADE.lua b/StrategyLibs/FACEBYBLADE.lua index 9b8b78c..99bc939 100644 --- a/StrategyLibs/FACEBYBLADE.lua +++ b/StrategyLibs/FACEBYBLADE.lua @@ -61,20 +61,30 @@ local function GetLeadInOut( Machining, EdgeToMachine, bIsSplitFeature) LeadIn, LeadOut = LeadInOutLib.InvertLeadInOut( LeadIn, LeadOut) end - -- se lavorazione con OppositeToolDirection l'attacco va corretto - if not AreSameVectorApprox( Machining.vtToolDirection, EdgeToMachine.vtN) then - LeadIn.dPerpDistance = BeamData.CUT_SIC - Machining.dRadialOffset - LeadOut.dPerpDistance = BeamData.CUT_SIC - Machining.dRadialOffset - end - -- in caso di percorso ridotto gli attacchi vanno adeguati if Machining.sEdgeUsage == 'Guillotine' then local dGuillotineLengthToMachine = 1 LeadIn.dStartAddLength = ( - EdgeToMachine.dLength + dGuillotineLengthToMachine) / 2 LeadOut.dEndAddLength = ( - EdgeToMachine.dLength + dGuillotineLengthToMachine) / 2 + LeadIn.dPerpDistance = EdgeToMachine.dElevation + BeamData.CUT_SIC - Machining.dRadialOffset + LeadIn.dTangentDistance = 0 + LeadOut.dPerpDistance = EdgeToMachine.dElevation + BeamData.CUT_SIC - Machining.dRadialOffset + LeadOut.dTangentDistance = 0 elseif Machining.sEdgeUsage == 'Reduced' then LeadIn.dStartAddLength = - FACEBYBLADE.GetPathReductionLength( Machining.nToolIndex, Machining.dMaxRadialOffset) LeadOut.dEndAddLength = - FACEBYBLADE.GetPathReductionLength( Machining.nToolIndex, Machining.dMaxRadialOffset) + LeadIn.dPerpDistance = EdgeToMachine.dElevation + BeamData.CUT_SIC - Machining.dRadialOffset + LeadIn.dTangentDistance = 0 + LeadOut.dPerpDistance = EdgeToMachine.dElevation + BeamData.CUT_SIC - Machining.dRadialOffset + LeadOut.dTangentDistance = 0 + end + + -- se lavorazione con OppositeToolDirection o ridotta l'attacco va corretto + if not AreSameVectorApprox( Machining.vtToolDirection, EdgeToMachine.vtN) then + LeadIn.dPerpDistance = BeamData.CUT_SIC - Machining.dRadialOffset + LeadOut.dPerpDistance = BeamData.CUT_SIC - Machining.dRadialOffset + LeadIn.dTangentDistance = 0 + LeadOut.dTangentDistance = 0 end -- stima lunghezza reale attacchi per calcolo lunghezza lavorata @@ -514,6 +524,10 @@ function FACEBYBLADE.Make( Proc, Part, FaceToMachine, EdgeToMachine, OptionalPar return Cutting end + -- TODO valutare se togliere o lasciare questo + Cutting.nOutRaw = 3 + -- fine + -- 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