- a WallExec aggiunta rimozione operazioni se legate a lavorazioni specchiate
- modifiche varie per forzare sideGroove in caso la lavorazione principale sia una tasca cieca che guarda in alto - modificata MakeMoreFaces per contemplare lavorazioni in doppio
This commit is contained in:
+40
-2
@@ -673,6 +673,7 @@ local function SetMirroredFeatures( vProc, b3Raw)
|
||||
local nMirrorId
|
||||
local dYMirrorAx
|
||||
local dDeltaZ
|
||||
local bIsMirrorTowardsBottom = false
|
||||
for j = 1, #vProc do
|
||||
local ProcMirror = vProc[j]
|
||||
if ProcMirror.TopologyLongName == Proc.TopologyLongName and ProcMirror.Id ~= Proc.Id and ProcMirror.Flg ~= 0 then
|
||||
@@ -709,6 +710,7 @@ local function SetMirroredFeatures( vProc, b3Raw)
|
||||
local ptOnMirrorAx = ( Proc.Box:getCenter() + ProcMirror.Box:getCenter()) / 2
|
||||
dYMirrorAx = ptOnMirrorAx:getY() - b3Tab:getMin():getY()
|
||||
dDeltaZ = ProcMirror.Box:getMax():getZ() - Proc.Box:getMax():getZ()
|
||||
bIsMirrorTowardsBottom = ProcMirror.AffectedFaces.Bottom
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -721,6 +723,11 @@ local function SetMirroredFeatures( vProc, b3Raw)
|
||||
Proc.MirrorAx = dYMirrorAx
|
||||
-- Offset Z tra le feature
|
||||
Proc.MirrorDeltaZ = dDeltaZ
|
||||
-- se sono groove cieche e la principale guarda su e l'altra guarda giù, la principale va trattata come sidegroove in accordo con la seconda
|
||||
if ( Proc.TopologyLongName == 'Groove-Blind-RightAngles-Parallel-3' or Proc.TopologyLongName == 'Groove-Blind-RightAngles-Parallel-4') and
|
||||
Proc.AffectedFaces.Top and bIsMirrorTowardsBottom then
|
||||
Proc.Stype = 2
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -783,7 +790,7 @@ function WallExec.ProcessFeatures()
|
||||
else
|
||||
table.insert( Stats, {Err=0, Msg='', Rot=0, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
end
|
||||
elseif not Proc.Double then
|
||||
elseif not Proc.Double then
|
||||
local sMsg = 'Feature not machinable by orientation'
|
||||
table.insert( Stats, {Err=1, Msg=sMsg, Rot=0, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
end
|
||||
@@ -795,7 +802,38 @@ function WallExec.ProcessFeatures()
|
||||
-- ELIMINAZIONE LAVORAZIONI MIRROR IN BASE A SETTAGGIO MACHININGTODELETE IN PROC
|
||||
-- VERIFICA E UPDATE NOTE PER LAVORAZIONI IN CUI SI CONTROLLA SE I PERCORSI SONO SPECCHIATI
|
||||
-------
|
||||
|
||||
-- setto quali sono le lavorazioni da disattivare perchè specchiate di lavorazioni in doppio
|
||||
local vProcToDisable = {}
|
||||
for i = 1, #vProc do
|
||||
local Proc = vProc[i]
|
||||
if Proc.Double and Proc.Double > 0 then
|
||||
for j = 1, #vProc do
|
||||
local ProcMirror = vProc[j]
|
||||
if Proc.MirrorId == ProcMirror.Id then
|
||||
table.insert( vProcToDisable, ProcMirror.Id)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
-- cancello le operazioni legate a lavorazioni specchiate
|
||||
local nOperId = EgtGetNextOperation( EgtGetPhaseDisposition( 1))
|
||||
while nOperId do
|
||||
EgtSetCurrMachining( nOperId)
|
||||
local nOperationProcIds = EgtGetMachiningGeometry()
|
||||
local nOperationProcId = EgtIf( #nOperationProcIds[1] > 1, nOperationProcIds[1][1], nOperationProcIds[1])
|
||||
local nCurrentOperId = nOperId
|
||||
for i = 1, #vProcToDisable do
|
||||
local ProcId = vProcToDisable[i]
|
||||
if nOperationProcId == ProcId then
|
||||
nOperId = EgtGetNextOperation( nOperId)
|
||||
EgtRemoveOperation(nCurrentOperId)
|
||||
break
|
||||
end
|
||||
end
|
||||
if nCurrentOperId == nOperId then
|
||||
nOperId = EgtGetNextOperation( nOperId)
|
||||
end
|
||||
end
|
||||
-- se macchina pareti
|
||||
if not WD.BEAM_MACHINE then
|
||||
-- riordino le lavorazioni tra tutti i pezzi
|
||||
|
||||
Reference in New Issue
Block a user