- in PreCollisionLib si gestisce correttamente la direzione SCC

- in FACEBYBLADE SCC preso da funzione macchina
- in BeamLib aggiunta funzione per convertire il valore SCC in direzione
This commit is contained in:
luca.mazzoleni
2025-11-28 15:58:14 +01:00
parent 198fa3a546
commit a2ed6f5789
3 changed files with 39 additions and 8 deletions
+14 -6
View File
@@ -6,6 +6,7 @@ local PreCollisionLib = {}
-- Include
require( 'EgtBase')
local BeamLib = require( 'BeamLib')
-- Carico i dati globali
@@ -53,10 +54,10 @@ end
-------------------------------------------------------------------------------------------------------------
-- calcolo pivot in riferimento globale
local function GetGlobalPivot( ptRef, vtSCC, vtHead, vtMovePivot)
local function GetGlobalPivot( ptRef, vtToolSCC, vtHead, vtMovePivot)
-- frame solidale all'utensile (lo stesso in cui vtMovePivot è definito)
local frTool = Frame3d( ptRef, vtHead, vtSCC)
local frTool = Frame3d( ptRef, vtHead, vtToolSCC)
local vtMovePivotGlob = Vector3d( vtMovePivot)
vtMovePivotGlob:toGlob( frTool)
local ptPivot = ptRef + vtMovePivotGlob
@@ -124,11 +125,18 @@ function PreCollisionLib.CheckCollisionWithAxis( sAxis, Edge, vtNFace, vtHead, P
ToolExitPoints[i] = Point3d( MachiningPoints[i] + Edge.vtN * Tool.dDiameter / 2) + vtHead * EgtIf( bIsDownUp, ( Tool.dLength - Tool.dThickness), Tool.dLength)
end
-- TODO questo va girato di verso in base a SCC
local vtSCC = Edge.vtN
-- vtToolSCC è la direzione vtTool con verso dato dalla direzione SCC (punta verso il lato in cui c'è l'asse C/aggregato)
local nSCC = Tool.SetupInfo.GetSCC( Edge.vtN, Edge.ptEnd - Edge.ptStart, vtNFace)
local vtSCC = BeamLib.GetDirectionFromSCC( nSCC)
local vtToolSCC
if Edge.vtN * vtSCC > GEO.EPS_SMALL then
vtToolSCC = Vector3d( Edge.vtN)
else
vtToolSCC = Vector3d( -Edge.vtN)
end
-- direzioni in cui fare il check
local PreCollisionData = Tool.SetupInfo.GetPreCollisionData( sAxis, vtSCC, vtHead)
local PreCollisionData = Tool.SetupInfo.GetPreCollisionData( sAxis, vtToolSCC, vtHead)
local bMoveAfterSplit = false
@@ -143,7 +151,7 @@ function PreCollisionLib.CheckCollisionWithAxis( sAxis, Edge, vtNFace, vtHead, P
for j = 1, #PreCollisionData do
-- pivot in globale
local ptPivot = GetGlobalPivot( ToolExitPoints[i], vtSCC, vtHead, PreCollisionData[j].vtMovePivot)
local ptPivot = GetGlobalPivot( ToolExitPoints[i], vtToolSCC, vtHead, PreCollisionData[j].vtMovePivot)
-- orientamento del riferimento locale
local vtDirectionX = PreCollisionData[j].Directions.vtDirectionX