- in FACEBYBLADE se feature spezzata si forza attacco perpendicolare
- in STR0005 e BLADETOWASTE l'esclusione per lato in comune troppo lungo si fa solo se rabbet
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user