- 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:
luca.mazzoleni
2025-05-26 16:39:37 +02:00
parent 05cc611dae
commit c7b3668418
3 changed files with 6 additions and 5 deletions
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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
+4 -3
View File
@@ -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