Files
DataWall/LuaLibs/WProcessSawCut.lua

63 lines
1.9 KiB
Lua

-- WProcessSawCut.lua by Egaltech s.r.l. 2021/04/28
-- Gestione calcolo taglio di lama per Pareti
-- Tabella per definizione modulo
local WPSC = {}
-- Include
require( 'EgtBase')
local WL = require( 'WallLib')
local Cut = require( 'WProcessCut')
EgtOutLog( ' WProcessSawCut started', 1)
-- Dati
local WD = require( 'WallData')
local WM = require( 'WMachiningLib')
---------------------------------------------------------------------
-- Riconoscimento della feature
function WPSC.Identify( Proc)
return ( ( Proc.Grp == 0 or Proc.Grp == 3 or Proc.Grp == 4) and Proc.Prc == 13)
end
---------------------------------------------------------------------
-- Classificazione della feature
function WPSC.Classify( Proc, b3Raw)
-- recupero i dati del versore direzione di accesso della lavorazione
local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i')
if not AuxId then return false end
AuxId = AuxId + Proc.Id
local vtDir = EgtSV( AuxId, GDB_ID.ROOT)
local vtDirZ = vtDir:getZ()
if Proc.IsThrough then
vtDirZ = abs( vtDir:getZ())
end
return ( vtDirZ > 0.5)
end
----------------------------------------------------------------------
-- Classificazione del flip della feature per nesting
-- return nFlip0, nFlip1
function WPSC.FlipClassify( Proc)
-- recupero i dati del versore direzione di accesso della lavorazione
local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i')
if not AuxId then return false end
AuxId = AuxId + Proc.Id
local vtDir = EgtSV( AuxId, GDB_ID.ROOT)
local vtDirZ = vtDir:getZ()
nFlip0 = EgtIf( vtDirZ > 0.5, 100, 0)
nFlip1 = EgtIf( - vtDirZ > 0.5, 100, 0)
return nFlip0, nFlip1
end
---------------------------------------------------------------------
-- Applicazione della lavorazione
function WPSC.Make( Proc, nRawId, b3Raw)
return Cut.Make( Proc, nRawId, b3Raw)
end
---------------------------------------------------------------------
return WPSC