Files
Carlo Baronchelli 741791a0e4 Copia locale Iniziale
2022-05-19 16:04:07 +02:00

66 lines
2.2 KiB
Lua

-- WProcessDoubleCut.lua by Egaltech s.r.l. 2021/04/28
-- Gestione calcolo doppi tagli di lama per Pareti
-- Tabella per definizione modulo
local WPDC = {}
-- Include
require( 'EgtBase')
local WL = require( 'WallLib')
local Cut = require( 'WProcessCut')
local LapJoint = require( 'WProcessLapJoint')
EgtOutLog( ' WProcessDoubleCut started', 1)
-- Dati
local WD = require( 'WallData')
local ML = require( 'WMachiningLib')
---------------------------------------------------------------------
-- Riconoscimento della feature
function WPDC.Identify( Proc)
return ( (( Proc.Grp == 1 or Proc.Grp == 2) and Proc.Prc == 11) or
( Proc.Grp == 0 and Proc.Prc == 12))
end
---------------------------------------------------------------------
-- Classificazione della feature
function WPDC.Classify( Proc, b3Raw)
-- se una faccia, uso la classificazione dei tagli singoli
if Proc.Fct == 1 then return Cut.Classify( Proc, b3Raw) end
-- se più di due facce non si fa
if Proc.Fct > 2 then return false end
-- dati delle facce
local vtN = {}
vtN[1] = EgtSurfTmFacetNormVersor( Proc.Id, 0, GDB_ID.ROOT)
vtN[2] = EgtSurfTmFacetNormVersor( Proc.Id, 1, GDB_ID.ROOT)
-- verifico se è lavorabile da sopra o di fianco
return ( vtN[1]:getZ() >= - 0.01 or vtN[2]:getZ() >= - 0.01)
end
----------------------------------------------------------------------
-- Classificazione del flip della feature per nesting
-- return nFlip0, nFlip1
function WPDC.FlipClassify( Proc)
-- se una faccia, uso la classificazione dei tagli singoli
if Proc.Fct == 1 then return Cut.FlipClassify( Proc) end
-- se due facce, uso la classificazione del lap joint a due facce
if Proc.Fct == 2 then return LapJoint.FlipClassify( Proc) end
-- se più di due facce non si fa
if Proc.Fct > 2 then return 0, 0 end
end
---------------------------------------------------------------------
-- Applicazione della lavorazione
function WPDC.Make( Proc, nRawId, b3Raw)
-- se singola faccia, passo a quella lavorazione
if Proc.Fct == 1 then return Cut.Make( Proc, nRawId, b3Raw) end
-- altrimenti due facce e passo alla LapJoint
return LapJoint.Make( Proc, nRawId, b3Raw)
end
---------------------------------------------------------------------
return WPDC