diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index 009bb28..2afbb54 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -154,6 +154,9 @@ local function IsHeadFeature( Proc, b3Raw, dCurrOvmH) if Drill.Identify( Proc) then return Drill.IsHeadFeature( Proc, b3Raw, dCurrOvmH) end + if StJoNotch.Identify( Proc) then + return StJoNotch.IsHeadFeature( Proc, b3Raw, dCurrOvmH) + end if RoundArch.Identify( Proc) then return RoundArch.IsHeadFeature( Proc, b3Raw, dCurrOvmH) end @@ -219,6 +222,9 @@ local function IsTailFeature( Proc, b3Raw, dCurrOvmH, dCurrOvmT) if Drill.Identify( Proc) then return Drill.IsTailFeature( Proc, b3Raw, dCurrOvmT) end + if StJoNotch.Identify( Proc) then + return StJoNotch.IsTailFeature( Proc, b3Raw) + end if DtMortise.Identify( Proc) then return DtMortise.IsTailFeature( Proc, b3Raw) end diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index 6c6073e..ab3d144 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -449,7 +449,7 @@ function FacesBySaw.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, sCutType, -- eventuale segnalazione ingombro di testa o coda local dMinHIng = min( 0.5 * BD.VICE_MINH, 0.5 * b3Raw:getDimZ()) if bUpdateIng and Proc.Box:getDimZ() > dMinHIng and Proc.Box:getMin():getZ() < b3Raw:getMin():getZ() + dMinHIng and - not ( abs( vtN[nBigInd]:getX()) < 0.05 and vtN[nBigInd]:getY() < 0 and Proc.Box:getDimX() > 500) then + not ( abs( vtN[nBigInd]:getX()) < 0.05 and vtN[nBigInd]:getY() < 0 and Proc.Box:getDimX() > 500 and Proc.Box:getDimY() < 40) then if Proc.Head then local dOffs = b3Solid:getMax():getX() - Proc.Box:getMin():getX() BL.UpdateHCING( nRawId, dOffs) @@ -460,7 +460,7 @@ function FacesBySaw.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, sCutType, local dOffs = b3Solid:getMax():getX() - Proc.Box:getMin():getX() local dDist = b3Solid:getMax():getX() - Proc.Box:getMax():getX() -- se concavo aumento la distanza (rimane una punta...) - if dAngT < 0 then dDist = dDist + 10 end + --if dAngT < 0 then dDist = dDist + 10 end BL.UpdateHCING( nRawId, dOffs, dDist) end end diff --git a/LuaLibs/ProcessStepJointNotch.lua b/LuaLibs/ProcessStepJointNotch.lua index 627336b..6cf3ffd 100644 --- a/LuaLibs/ProcessStepJointNotch.lua +++ b/LuaLibs/ProcessStepJointNotch.lua @@ -24,6 +24,23 @@ function ProcessStepJointNotch.Identify( Proc) return ( ( Proc.Grp == 3 or Proc.Grp == 4) and Proc.Prc == 80) end +--------------------------------------------------------------------- +-- Verifica se feature di testa +function ProcessStepJointNotch.IsHeadFeature( Proc, b3Raw, dCurrOvmH) + return false +end + +--------------------------------------------------------------------- +-- Verifica se feature di coda +function ProcessStepJointNotch.IsTailFeature( Proc, b3Raw) + -- recupero box del pezzo + local nPartId = EgtGetParent( EgtGetParent( Proc.Id) or GDB_ID.NULL) + local b3Solid = EgtGetBBoxGlob( EgtGetFirstNameInGroup( nPartId, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD) + -- verifico se รจ in coda + local dEndDist = Proc.Box:getMin():getX() - b3Solid:getMin():getX() + return ( dEndDist < BD.MAX_DIST_HTFEA) +end + --------------------------------------------------------------------- -- Classificazione della feature function ProcessStepJointNotch.Classify( Proc) @@ -89,47 +106,10 @@ local function MachineByBlade( Proc, nPhase, nRawId, nPartId, dOvmHead, b3Solid, EgtOutLog( sErr) return false, sErr end - -- verifico se necessari tagli supplementari - local vCuts = DC.GetDice( nAddGrpId, b3Solid, ptC[nBigInd], vtN[nBigInd], false, ptC[nSmaInd], vtN[nSmaInd]) - --DC.PrintOrderCut( vCuts) - if #vCuts > 0 then - -- sistemo posizione nel DB e nome - for i = 1, #vCuts do - for j = 1, #vCuts[i] do - EgtSetName( vCuts[i][j], 'AddCut_' .. tostring( Proc.Id)) - EgtSetInfo( vCuts[i][j], 'TASKID', Proc.TaskId) - end - end - -- eseguo - for i = 1, #vCuts do - -- determino il modo di tagliare - local k, l = nBigInd, nSmaInd - if ( i % 2) == 1 then - k, l = l, k - end - local nOrthoOpposite - if bOnY then - local bFront = ( ptC[k]:getY() < ptPs:getY()) - nOrthoOpposite = EgtIf( bFront, MCH_MILL_FU.ORTHO_BACK, MCH_MILL_FU.ORTHO_FRONT) - else - local bOver = ( vtN[nBigInd]:getZ() > -0.1) - nOrthoOpposite = EgtIf( bOver, MCH_MILL_FU.ORTHO_DOWN, MCH_MILL_FU.ORTHO_TOP) - end - -- lavoro la faccia - for j = 1, #vCuts[i] do - local dLocCutExtra = EgtIf( j == #vCuts[i], dCutExtra - dExtraUp, dCutExtra) - local bOk, sErr = Fbs.MakeOne( vCuts[i][j], 0, sCutting, dSawDiam, nOrthoOpposite, EgtIf( bDownHead, -2, nil), dLocCutExtra, BD.CUT_SIC, 0, 0, 0, nil, b3Raw) - if not bOk then - return bOk, sErr - end - end - end - -- altrimenti, tagli diretti delle facce - else - local bOk, sErr = Fbs.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, 'HeadSide' .. EgtIf( bDownHead, '_H2', ''), nil, bDownHead) - if not bOk then - return bOk, sErr - end + -- tagli delle facce + local bOk, sErr = Fbs.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, 'HeadSide' .. EgtIf( bDownHead, '_H2', ''), nil, bDownHead) + if not bOk then + return bOk, sErr end return true end