- in FaceData si calcola vtEdge per ogni lato in modo da non doverlo calcolare ogni volta; sostituito in tutte le funzioni

- in LeadInOutLib.CalculateLeadInOut si calcola l'attacco perpendicolare in modo rigoroso
- in FACEBYBLADE correzioni al calcolo attacco
This commit is contained in:
luca.mazzoleni
2025-12-16 13:04:42 +01:00
parent 646e69e3af
commit 05f729df45
6 changed files with 70 additions and 22 deletions
+6 -12
View File
@@ -51,12 +51,10 @@ local function GetMachiningPoints( Edge, dDepthToMachine)
local ptMid = Point3d( ( ptStart + ptEnd) / 2)
-- caso ottimizzato: lato parallelo ad una direzione principale
local vtEdge = Edge.ptEnd - Edge.ptStart
vtEdge:normalize()
local bIsEdgeParallelToMainDirection =
AreSameOrOppositeVectorApprox( vtEdge, X_AX())
or AreSameOrOppositeVectorApprox( vtEdge, Y_AX())
or AreSameOrOppositeVectorApprox( vtEdge, Z_AX())
AreSameOrOppositeVectorApprox( Edge.vtEdge, X_AX())
or AreSameOrOppositeVectorApprox( Edge.vtEdge, Y_AX())
or AreSameOrOppositeVectorApprox( Edge.vtEdge, Z_AX())
-- aggiunta punti
-- inizio e fine solo se lato obliquo
@@ -181,9 +179,7 @@ local function CheckCollisionWithAxis( sAxis, MachiningParameters, OptionalParam
end
-- vtC punta sempre verso il corpo dell'asse C o verso l'aggregato
local vtEdge = Edge.ptEnd - Edge.ptStart
vtEdge:normalize()
local nSCC = Tool.SetupInfo.GetSCC( Edge.vtN, vtEdge, vtNFace)
local nSCC = Tool.SetupInfo.GetSCC( Edge.vtN, Edge.vtEdge, vtNFace)
local vtSCC = BeamLib.GetDirectionFromSCC( nSCC)
local vtC = vtHead ^ Tool.SetupInfo.vtRotationAxisC
vtC:normalize()
@@ -269,12 +265,10 @@ function PreSimulationLib.CheckCollisionAxisAB( Edge, vtNFace, vtHead, Part, Too
-- riferimento perpendicolare al taglio, X nel verso della normale al lato e Y verso il motore
local ptMachining = Point3d( ( Edge.ptStart + Edge.ptEnd) / 2) + Edge.vtN * ( Edge.dElevation - dDepthToMachine)
local vtEdge = Edge.ptEnd - Edge.ptStart
vtEdge:normalize()
-- costruzione flat region del pezzo e del grezzo restante nel piano perpendicolare al taglio
local idPartSurfFr = GetPartSurfFrInPlane( Part, vtEdge)
local idRestlengthSurfFr = GetRestlengthSurfFrInPlane( Part, vtEdge)
local idPartSurfFr = GetPartSurfFrInPlane( Part, Edge.vtEdge)
local idRestlengthSurfFr = GetRestlengthSurfFrInPlane( Part, Edge.vtEdge)
-- costruzione flat region approssimata del motore nel piano perpendicolare al taglio
-- punto di congiunzione tra motore e lama