- in STR0001 prima versione, da verificare, controllo finecorsa per fresature

This commit is contained in:
luca.mazzoleni
2025-12-23 14:26:01 +01:00
parent 309bae0265
commit f3938ee0b6
+29 -15
View File
@@ -30,20 +30,6 @@ local function GetSCC( Machining)
return nSCC
end
-------------------------------------------------------------------------------------------------------------
local function CheckOutOfStroke( Machining)
local vtHead = Parameters.vtHead
local Tool = Parameters.Tool
local nSCC = Parameters.nSCC
PreSimulationLib.CheckOutOfStroke( PointsToCheck, Parameters)
end
-------------------------------------------------------------------------------------------------------------
local function GetTenonStrategy( Proc, Part)
local Machining = {}
@@ -198,11 +184,39 @@ local function GetTenonStrategy( Proc, Part)
Machining.Milling.AuxiliaryData.Clones[nIndexClones].dRadialOffset = ( i - 1) * dRealSideStep
end
end
-- test finecorsa sulla passata più esterna: se extracorsa, la lavorazione non è fattibile
--local bOutOfStroke = CheckOutOfStroke( Machining.Milling)
-- TODO da considerare anche gli attacchi
-- TODO sostituire con applicazione della lavorazione?
local idGeomMaxOffset = EgtCopyGlob( Proc.FeatureInfo.idAddAuxGeom, Part.idTempGroup)
EgtOffsetCurve( idGeomMaxOffset, Machining.Milling.AuxiliaryData.Clones[1].dRadialOffset + TOOLS[Machining.Milling.ToolInfo.nToolIndex].dDiameter / 2, Part.idTempGroup)
local b3GeomMaxOffset = EgtGetBBoxGlob( idGeomMaxOffset, GDB_BB.STANDARD)
local ptBoxCenter = b3GeomMaxOffset:getCenter()
local dBoxDimX = b3GeomMaxOffset:getDimX()
local dBoxDimY = b3GeomMaxOffset:getDimY()
local dBoxDimZ = b3GeomMaxOffset:getDimZ()
-- si controlla il finecorsa nei punti al centro delle 6 facce del box
local PointsOnToolTipCenter = {}
-- X+
table.insert( PointsOnToolTipCenter, Point3d( ptBoxCenter + dBoxDimX / 2 * X_AX()))
-- X-
table.insert( PointsOnToolTipCenter, Point3d( ptBoxCenter - dBoxDimX / 2 * X_AX()))
-- Y+
table.insert( PointsOnToolTipCenter, Point3d( ptBoxCenter + dBoxDimY / 2 * Y_AX()))
-- Y-
table.insert( PointsOnToolTipCenter, Point3d( ptBoxCenter - dBoxDimY / 2 * Y_AX()))
-- Z+
table.insert( PointsOnToolTipCenter, Point3d( ptBoxCenter + dBoxDimZ / 2 * Z_AX()))
-- Z-
table.insert( PointsOnToolTipCenter, Point3d( ptBoxCenter - dBoxDimZ / 2 * Z_AX()))
local bOutOfStroke = PreSimulationLib.CheckOutOfStroke( PointsOnToolTipCenter, Proc.FeatureInfo.vtTenonN, Machining.Milling.nSCC, TOOLS[Machining.Milling.ToolInfo.nToolIndex])
if bOutOfStroke then
Machining.Milling.bIsApplicable = false
end
-- tempo di svuotatura
Result.Milling.dTimeToMachine = MachiningLib.GetTimeToMachineAllStepsWithLeadInOut( Machining.Milling, Part)
else