diff --git a/Beam/BeamData.lua b/Beam/BeamData.lua index d5e734a..dadaa7b 100644 --- a/Beam/BeamData.lua +++ b/Beam/BeamData.lua @@ -184,6 +184,67 @@ local function GetChainSawInitAngs( vtN, vtO, nInd) end BeamData.GetChainSawInitAngs = GetChainSawInitAngs +--------------------------------------------------------------------- +local function GetMinNzTopHead( vtNFace) + if vtNFace and abs( vtNFace:getY()) > 0.8659 then + return -0.2499 + else + return sin( -45) + end +end + +--------------------------------------------------------------------- +local function GetMinNzDownUp( b3Raw, vtNFace, vtToolDirection) + if vtToolDirection and vtToolDirection:getZ() > 0.35 then + -- N_HorAng < 15° or N_HorAng > 55° + if vtNFace and ( abs( vtNFace:getY()) < 0.259 or abs( vtNFace:getY()) > 0.819) then + return -0.708 + -- N_HorAng > 50° + elseif vtNFace and abs( vtNFace:getY()) > 0.766 then + return -0.383 + else + return EgtIf( b3Raw:getDimZ() < BeamData.MIN_DIM_HBEAM, -0.609, -0.383) + end + else + -- N_HorAng > 60° + if vtNFace and ( abs( vtNFace:getY()) > 0.866) then + return -0.708 + else + if b3Raw:getDimZ() < 120 then + return -0.708 + elseif b3Raw:getDimZ() < 200 then + -- N_HorAng < 15° or N_HorAng > 55° + if vtNFace and ( abs( vtNFace:getY()) < 0.259 or abs( vtNFace:getY()) > 0.819) then + return -0.5 + else + return -0.383 + end + elseif b3Raw:getDimZ() < 300 then + -- N_HorAng < 10° + if vtNFace and ( abs( vtNFace:getY()) < 0.174) then + return -0.5 + else + return -0.259 + end + elseif b3Raw:getDimZ() < BeamData.MIN_DIM_HBEAM then + -- N_HorAng < 10° + if vtNFace and ( abs( vtNFace:getY()) < 0.174) then + return -0.342 + else + return -0.259 + end + else + -- N_HorAng < 10° + if vtNFace and ( abs( vtNFace:getY()) < 0.174) then + return -0.383 + else + return -0.174 + end + end + end + end +end + --------------------------------------------------------------------- local function GetSetupInfo( sHead) local SetupInfo = {} @@ -197,23 +258,24 @@ local function GetSetupInfo( sHead) if sHead == 'H1' then SetupInfo.HeadType = { bTop = true, bBottom = false} SetupInfo.PreferredSide = {} - SetupInfo.dMinNz = sin( -45) + SetupInfo.GetMinNz = GetMinNzTopHead -- lama su testa 5 assi da sopra elseif sHead == 'H2' then SetupInfo.HeadType = { bTop = true, bBottom = false} SetupInfo.PreferredSide = {} - SetupInfo.dMinNz = sin( -45) + SetupInfo.GetMinNz = GetMinNzTopHead + SetupInfo.GetMinNzDownUp = GetMinNzDownUp -- motosega elseif sHead == 'H3' then SetupInfo.HeadType = { bTop = true, bBottom = false} SetupInfo.PreferredSide = {} - SetupInfo.dMinNz = 0 + SetupInfo.GetMinNz = function() return 0 end -- rinvio angolare 90° (considerato come fosse una testa da sotto) elseif sHead == 'H5' then SetupInfo.bToolOnAggregate = true SetupInfo.HeadType = { bTop = false, bBottom = true} SetupInfo.PreferredSide = {} - SetupInfo.dMaxNz = 0 + SetupInfo.GetMaxNz = function() return 0 end end return SetupInfo