- 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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user