diff --git a/LuaLibs/FacesBySaw.lua b/LuaLibs/FacesBySaw.lua index 834f758..623c369 100644 --- a/LuaLibs/FacesBySaw.lua +++ b/LuaLibs/FacesBySaw.lua @@ -68,16 +68,28 @@ function MakeParallelOne( nSurfId, nFacet, sCutting, dSawDiam, nFaceUse, dVzLimD local dLiPerp = dDistX + dCutExtra + dCutSic local dLoTang = dLiTang local dLoPerp = dLiPerp + local dLiCompLength = 0 + local dLoCompLength = 0 -- lunghezza attacco/uscita tangenti local dLi2Tang = dSawDiam / 2 + dCutSic local dLi2Perp = 0 local dLo2Tang = dLi2Tang local dLo2Perp = dLi2Perp + local dLi2CompLength = 0 + local dLo2CompLength = 0 -- scelgo l'attacco più conveniente local bLioTang local Ktp = 1.1 if BD.KIOTP then Ktp = BD.KIOTP end - if ( sLeadInOutType == 'Tangent') or ( Ktp * dLi2Tang < dLiPerp) then + if ( sLeadInOutType == 'PerpendicularOutraw') then + bLioTang = false + dLiCompLength = BD.MAX_DIM_DICE - ( BD.DECR_VERT_CUT or 0) + EgtMdbGetGeneralParam( MCH_GP.SAFEZ) + dLoCompLength = BD.MAX_DIM_DICE - ( BD.DECR_VERT_CUT or 0) + EgtMdbGetGeneralParam( MCH_GP.SAFEZ) + dLiTang = 5 + dLoTang = 5 + dLiPerp = 0 + dLoPerp = 0 + elseif ( sLeadInOutType ~= 'Perpendicular') and ( ( sLeadInOutType == 'Tangent') or ( Ktp * dLi2Tang < dLiPerp)) then bLioTang = true dLiTang, dLiPerp, dLoTang, dLoPerp = dLi2Tang, dLi2Perp, dLo2Tang, dLo2Perp if BD.TURN then @@ -136,9 +148,11 @@ function MakeParallelOne( nSurfId, nFacet, sCutting, dSawDiam, nFaceUse, dVzLimD -- imposto attacco/uscita EgtSetMachiningParam( MCH_MP.LITANG, dLiTang) EgtSetMachiningParam( MCH_MP.LIPERP, dLiPerp) + EgtSetMachiningParam( MCH_MP.LICOMPLEN, dLiCompLength) if BD.TURN and bLioTang then EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MCH_MILL_LO.PERP_TG) end EgtSetMachiningParam( MCH_MP.LOTANG, dLoTang) EgtSetMachiningParam( MCH_MP.LOPERP, dLoPerp) + EgtSetMachiningParam( MCH_MP.LOCOMPLEN, dLoCompLength) -- imposto allungamenti iniziale e finale EgtSetMachiningParam( MCH_MP.STARTADDLEN, -dAccStart) EgtSetMachiningParam( MCH_MP.ENDADDLEN, -dAccEnd) @@ -157,6 +171,9 @@ function MakeParallelOne( nSurfId, nFacet, sCutting, dSawDiam, nFaceUse, dVzLimD local vtOut = EgtIf( vtN:getX() > 0, X_AX(), -X_AX()) EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetBlockedAxis( sCutting, 'perpendicular', b3Raw, vtTool, vtOut)) -- eventuali note + if ( sLeadInOutType == 'PerpendicularOutraw') then + sNotes = EgtSetValInNotes( sNotes, 'OutRaw', 3) + end if sNotes and #sNotes > 0 then EgtSetMachiningParam( MCH_MP.USERNOTES, sNotes) end -- eseguo if not ML.ApplyMachining( true, false) then @@ -457,7 +474,17 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw local bLioTang local Ktp = 1.1 if BD.KIOTP then Ktp = BD.KIOTP end - if ( ( sLeadInOutType == 'Tangent') or ( not bDownUp or abs( vtTg:getY()) > 0.5) and + if ( sLeadInOutType == 'PerpendicularOutraw') then + bLioTang = false + dLiCompLength = BD.MAX_DIM_DICE - ( BD.DECR_VERT_CUT or 0) + EgtMdbGetGeneralParam( MCH_GP.SAFEZ) + dLoCompLength = BD.MAX_DIM_DICE - ( BD.DECR_VERT_CUT or 0) + EgtMdbGetGeneralParam( MCH_GP.SAFEZ) + dLiTang = 5 + dLoTang = 5 + dLiPerp = 0 + dLoPerp = 0 + dLenLi = sqrt( dLiTang * dLiTang + dLiPerp * dLiPerp) + dLenLo = sqrt( dLoTang * dLoTang + dLoPerp * dLoPerp) + elseif ( sLeadInOutType ~= 'Perpendicular') and ( ( sLeadInOutType == 'Tangent') or ( not bDownUp or abs( vtTg:getY()) > 0.5) and ( not bDownHead or abs( vtTg:getZ()) < 0.51) and abs( vtTg:getX()) < 0.9848 and ( ( abs( vtTg:getZ()) < 0.17 and ( vtV1:getZ() < -0.5 or vtV2:getZ() < -0.5) and not bDownHead) or @@ -603,6 +630,9 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw local sBlockedAxis = EgtIf( bMaximizeVerticalDepth, 'parallel', 'perpendicular') EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetBlockedAxis( sCutting, sBlockedAxis, b3Raw, vtN, vtOrthO)) -- eventuali note + if ( sLeadInOutType == 'PerpendicularOutraw') then + sNotes = EgtSetValInNotes( sNotes, 'OutRaw', 3) + end if sNotes and #sNotes > 0 then EgtSetMachiningParam( MCH_MP.USERNOTES, sNotes) end -- eseguo if not ML.ApplyMachining( true, false) then diff --git a/LuaLibs/ProcessCut.lua b/LuaLibs/ProcessCut.lua index 5ed660f..69275a7 100644 --- a/LuaLibs/ProcessCut.lua +++ b/LuaLibs/ProcessCut.lua @@ -597,8 +597,14 @@ local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, b vtOrthoOAlternative = - vtOrthoO end local sLeadInOutTypeFbs = 'Calculated' - if ( sLeadInOutType == 'Tangent') and ( ( i % 2) ~= 0) then - sLeadInOutTypeFbs = 'Tangent' + if ( ( i % 2) ~= 0) then + if ( sLeadInOutType == 'Tangent') then + sLeadInOutTypeFbs = 'Tangent' + elseif ( sLeadInOutType == 'Perpendicular') then + sLeadInOutTypeFbs = 'Perpendicular' + elseif ( sLeadInOutType == 'PerpendicularOutraw') then + sLeadInOutTypeFbs = 'PerpendicularOutraw' + end end local bOk, sErr = Fbs.MakeOne( vCuts[i][j], 0, sCutting, dSawDiam, vtOrthoO, dVzLimDwnUp, dExtraCut, BD.CUT_SIC, 0, 0, 0, sNotes, b3Raw, nil, nil, bSpecialTangentLeadInOut, sLeadInOutTypeFbs, vtOrthoOAlternative) if not bOk then return bOk, sErr end diff --git a/LuaLibs/ProcessHeadCut.lua b/LuaLibs/ProcessHeadCut.lua index 54faa75..f4ba79f 100644 --- a/LuaLibs/ProcessHeadCut.lua +++ b/LuaLibs/ProcessHeadCut.lua @@ -177,10 +177,7 @@ local function AddVerticalPreCuts( Proc, sCutting, dCutXOffset, b3Raw) for j = nVerticalCuts, 1, -1 do local nFaceUse = MCH_MILL_FU.PARAL_FRONT local dVerticalCutOffset = dVerticalSliceHeight * -j - local sLeadInOutType = 'Calculated' - if BD.PRESS_ROLLER and not BD.DOWN_HEAD then - sLeadInOutType = 'Tangent' - end + local sLeadInOutType = 'PerpendicularOutraw' bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nFaceUse, nil, -0.1 -dCutXOffset, BD.CUT_SIC, dVerticalCutOffset, 0, 0, '', b3Raw, nil, nil, nil, sLeadInOutType) if not bOk then return bOk, sErr end end @@ -243,10 +240,7 @@ local function MakeStandardCuts( Proc, b3Raw, nCuts, dOffsetBetweenCuts, HeadCut for j = nHorizontalCuts, 1, -1 do local nFaceUse = MCH_MILL_FU.PARAL_DOWN local dHorizontalCutOffset = dHorizontalSliceHeight * -j - local sLeadInOutType = 'Calculated' - if BD.PRESS_ROLLER then - sLeadInOutType = 'Tangent' - end + local sLeadInOutType = 'PerpendicularOutraw' local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, Cutting1Data.sCutting, Cutting1Data.dSawDiam, nFaceUse, nil, -0.1 -dCutXOffset, BD.CUT_SIC, dHorizontalCutOffset, 0, 0, '', b3Raw, nil, nil, nil, sLeadInOutType) if not bOk then return bOk, sErr end end @@ -507,14 +501,12 @@ function ProcessHeadCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bNeedHCut bOk, sErr = AddVerticalPreCuts( AddProc, sCutting, 0, b3Raw) if not bOk then return bOk, sErr end -- tagli a cubetti con eventuale superficie limitante - bOk, sErr = Cut.Make( AddProc, nPhase, nRawId, nPartId, dOvmHead, nil, false, true, nil, nil, nil, nil, nLimitingSurf) + local sLeadInOutType = 'PerpendicularOutraw' + bOk, sErr = Cut.Make( AddProc, nPhase, nRawId, nPartId, dOvmHead, nil, false, true, nil, nil, nil, nil, nLimitingSurf, sLeadInOutType) end -- tagli aggiuntivi non necessari else - local sLeadInOutType = 'Calculated' - if BD.PRESS_ROLLER then - sLeadInOutType = 'Tangent' - end + local sLeadInOutType = 'PerpendicularOutraw' bOk, sErr = Cut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, nil, false, true, nil, nil, nil, nil, nil, sLeadInOutType) end return bOk, sErr diff --git a/LuaLibs/ProcessSplit.lua b/LuaLibs/ProcessSplit.lua index 4dae7ce..f2d82d0 100644 --- a/LuaLibs/ProcessSplit.lua +++ b/LuaLibs/ProcessSplit.lua @@ -352,10 +352,7 @@ local function AddVerticalPreCuts( Proc, sCutting, dCutXOffset, b3Raw, sNotes) for j = nVerticalCuts, 1, -1 do local nFaceUse = MCH_MILL_FU.PARAL_FRONT local dVerticalCutOffset = dVerticalSliceHeight * -j - local sLeadInOutType = 'Calculated' - if BD.PRESS_ROLLER and not BD.DOWN_HEAD then - sLeadInOutType = 'Tangent' - end + local sLeadInOutType = 'PerpendicularOutraw' bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nFaceUse, nil, -0.1 -dCutXOffset, BD.CUT_SIC, dVerticalCutOffset, 0, 0, sNotes, b3Raw, nil, nil, nil, sLeadInOutType) if not bOk then return bOk, sErr end end @@ -425,10 +422,7 @@ local function MakeStandardCuts( Proc, b3Raw, nCuts, dOffsetBetweenCuts, TailCut for j = nHorizontalCuts, 1, -1 do local nFaceUse = MCH_MILL_FU.PARAL_DOWN local dHorizontalCutOffset = dHorizontalSliceHeight * -j - local sLeadInOutType = 'Calculated' - if BD.PRESS_ROLLER then - sLeadInOutType = 'Tangent' - end + local sLeadInOutType = 'PerpendicularOutraw' local bOk, sErr = Fbs.MakeOne( Proc.Id, 0 , Cutting1Data.sCutting, Cutting1Data.dSawDiam, nFaceUse, nil, -0.1 - dCutXOffset, BD.CUT_SIC, dHorizontalCutOffset, 0, 0, 'Precut;', b3Raw, nil, nil, nil, sLeadInOutType) if not bOk then return false, sErr end end @@ -784,10 +778,7 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt end -- tagli aggiuntivi non necessari else - local sLeadInOutType = 'Calculated' - if BD.PRESS_ROLLER then - sLeadInOutType = 'Tangent' - end + local sLeadInOutType = 'PerpendicularOutraw' bOk, sErr = Cut.Make( Proc, nNewPhase, nRawId, nPartId, dMaxElev, nil, false, true, b3Raw, sNotes, dCurrOvmT, nil, nil, sLeadInOutType) end if sNotesFinal then