-- WallData.lua by Egaltech s.r.l. 2022/01/12
-- Raccolta dati generali per Pareti

EgtOutLog( ' 90480023_XS-MW-WallData started', 1)

-- Tabella per definizione modulo
local WallData = {
   MIN_LENGTH = 100,                        -- lunghezza minima del grezzo
   MIN_WIDTH = 100,                         -- larghezza minima del grezzo
   MIN_HEIGHT = 10,                         -- altezza minima del grezzo
   MAX_LENGTH = 18000,                      -- lunghezza massima del grezzo
   MAX_WIDTH = 4900,                        -- larghezza massima del grezzo
   MAX_HEIGHT = 400,                        -- altezza massima del grezzo
   STD_RAW_LENGTH = 10000,                  -- lunghezza standard del grezzo
   STD_RAW_WIDTH = 4000,                    -- larghezza standard del grezzo
   OVM_HEAD = 60,                           -- sovramateriale testa
   OVM_MID = 50,                            -- sovramateriale intermedio
   COLL_SIC = 5,                            -- distanza di sicurezza per collisioni
   CUT_SIC = 20,                            -- distanza di sicurezza per tagli
   CUT_EXTRA = 0,                           -- affondamento extra standard per tagli di lama e fresature
   CUT_EXTRA_MIN = 0,                       -- affondamento extra ridotto per tagli di lama e fresature
   NZ_MINA = 0.5,                           -- componente limite in Z normale di una faccia (-30deg)
   NZ_MINB = -0.4,                          -- componente limite in Z normale di un insieme di facce (-23deg)
   DRILL_TOL = 0.5,                         -- tolleranza tra diametro foro e diametro punta
   DRILL_VZ_MIN = 0.5,                      -- componente limite in Z del versore di un foro
   DRILL_VX_MAX = 0.866,                    -- componente limite in X del versore di un foro sulle facce laterali
   DRILL_OVERLAP = 5,                       -- sovrapposizione tra due mezze forature
   MILL_OVERLAP = 5,                        -- sovrapposizione tra due mezze fresature
   MAX_CLEAN_CRN30 = 60,                    -- massimo spessore per pulitura angolo con fresa 30deg
   MAX_CLEAN_CRN60 = 150,                   -- massimo spessore per pulitura angolo con fresa 60deg
   MILL_MAX_DEPTH_AS_MAT = false,            -- massimo affondamento frese uguale ad altezza tagliente (max materiale)
   RAWCOL = { 255, 160, 32, 30},            -- colore del grezzo
   SIMUL_VIEW_DIR = 2,                      -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE)
   ORIG_CORNER = 'BL',                      -- posizione origine (TL,BL,TR,BR,TM,BM) 
   USE_POSY = true                          -- utilizzare POSY di BTL (spostamento sullo spessore per pareti a layer)
}

-- Aggiornamento con dati da TechnoEssetre7
local sTs3Data = EgtGetStringFromIni( 'Wall', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-90480023_XS-MW.data"
local sData = EgtGetCurrMachineDir().."\\Wall\\Ts3Data.lua"
if EgtExistsFile( sTs3Data) then
   EgtCopyFile( sTs3Data, sData)
   local sTs3DataOld = sTs3Data..'.old'
   EgtEraseFile( sTs3DataOld)
   EgtRenameFile( sTs3Data, sTs3DataOld)
end
if EgtExistsFile( sData) then
   local Machine = dofile( sData)
   if Machine then
      if Machine.Trave then
         WallData.MIN_LENGTH = Machine.Trave.YMIN or BeamData.MIN_LENGTH
         WallData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH
         WallData.MIN_HEIGHT = Machine.Trave.ZMIN or BeamData.MIN_HEIGHT
         WallData.MAX_LENGTH = Machine.Trave.YMAX or BeamData.MAX_LENGTH
         WallData.MAX_WIDTH = Machine.Trave.XMAX or BeamData.MAX_WIDTH
         WallData.MAX_HEIGHT = Machine.Trave.ZMAX or BeamData.MAX_HEIGHT
      end
   end
end

-------------------------------------------------------------------------------------------------------------
local function GetOrigCorner( RefPos)
   if RefPos == 1 then
      return 'BL'
   elseif RefPos == 2 then
      return 'TL'
   elseif RefPos == 3 then
      return 'BL'
   elseif RefPos == 4 then
      return 'TL'
   else
      return 'BL'
   end
end
WallData.GetOrigCorner = GetOrigCorner

-------------------------------------------------------------------------------------------------------------
local function GetSawHeadSide( dSpeed, sHead)
   if sHead == 'H2' then
      return EgtIf( dSpeed > 0, MCH_SAW_HS.LEFT, MCH_SAW_HS.RIGHT)
   else
      return EgtIf( dSpeed < 0, MCH_SAW_HS.LEFT, MCH_SAW_HS.RIGHT)
   end
end
WallData.GetSawHeadSide = GetSawHeadSide

---------------------------------------------------------------------
return WallData
