diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 7f3b058..c687824 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -99,7 +99,6 @@ end --------------------------------------------------------------------- local function AssignQValues( Proc) - -- reset assegnazione parametri Q Q_FORCE_BLADE = nil Q_BLADE_ON_ALONG_FACE = 0 @@ -151,7 +150,6 @@ end --------------------------------------------------------------------- local function EvaluateQParam() - local sErr -- verifico che lo smusso sia richiesto local nChamfer = 0 @@ -185,7 +183,6 @@ end --------------------------------------------------------------------- local function InitGlob( Proc, nPhase, nRawId, nPartId, dOvmHead) - if not Proc then return false, 'Error : Proc is missing' end @@ -274,7 +271,6 @@ end local function GetFacetsData( nProcId) local tFData = {} local nFacInd, dFacElev, nFacInd2, dFacElev2 = BL.GetFaceWithMostAdj( nProcId, _nPartId) - if nFacInd then tFData = UpdateFacet1Data( nProcId, tFData, nFacInd, dFacElev) tFData = UpdateFacet2Data( nProcId, tFData, nFacInd2, dFacElev2) @@ -302,10 +298,7 @@ end --------------------------------------------------------------------- local function GetToolInfoForMachining( sMachiningName) if EgtMdbSetCurrMachining( sMachiningName) then - local toolInfo = { sTuuid = nil, dLength = nil, dDiam = nil, - dThDiam = nil, dMaxMat = nil, dMaxDepth = nil, - dSideDepth = nil, dCornerRad = nil, dThick = nil } - + local toolInfo = {} toolInfo.sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID) if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( toolInfo.sTuuid) or '') then toolInfo.dLength = EgtTdbGetCurrToolParam( MCH_TP.LEN) @@ -462,7 +455,7 @@ local function GetChainSawInitAngs( vtN, vtO) end --------------------------------------------------------------------- -local function VerifyChainSaw( Proc, dMinDim, dMaxDim) +local function VerifyChainSaw( dMinDim, dMaxDim) local bUseChainSaw = false local sMchFind = 'Sawing' local sSawing = ML.FindSawing( sMchFind) @@ -494,7 +487,7 @@ local function VerifyChainSaw( Proc, dMinDim, dMaxDim) end --------------------------------------------------------------------- -local function VerifyPocket( Proc, dDiam, dDepth, dMaxTotLen, sMchFindMaster) +local function VerifyPocket( dDiam, dDepth, dMaxTotLen, sMchFindMaster) -- tipo di svuotatura local sMchFind = EgtIf( sMchFindMaster and #sMchFindMaster > 0, sMchFindMaster, 'Pocket') -- ricerca della svuotatura @@ -665,27 +658,26 @@ local function GetTunnelDimension( Proc) end --------------------------------------------------------------------- -local function GetFaceAdj( Proc, nFacInd, dH, dV) - +local function GetFaceAdj( Proc, tFData) -- Recupero le facce adiacenti alla principale (solo quelle esistenti) - local vAdj = GetValidFacetAdjacencies( Proc.Id, nFacInd) + local vAdj = GetValidFacetAdjacencies( Proc.Id, tFData.nFacInd) if not vAdj or #vAdj == 0 then local sErr = 'Error : main face without adjacencies' return -1, sErr end EgtOutLog( 'Adjac=' .. table.concat( vAdj, ','), 4) -- Riordino le dimensioni per avere dH > dV - if dH < dV then - dH, dV = dV, dH + if tFData.dH < tFData.dV then + tFData.dH, tFData.dV = tFData.dV, tFData.dH end -- Cerco una faccia adiacente alla principale sul lato lungo local nFacAdj for i = 1, #vAdj do - local _, ptP1, ptP2, _ = EgtSurfTmFacetsContact( Proc.Id, nFacInd, vAdj[i], GDB_ID.ROOT) + local _, ptP1, ptP2, _ = EgtSurfTmFacetsContact( Proc.Id, tFData.nFacInd, vAdj[i], GDB_ID.ROOT) local dLen = dist( ptP1, ptP2) - if dLen > 0.5 * dH then + if dLen > 0.5 * tFData.dH then nFacAdj = vAdj[i] - EgtOutLog( string.format( 'Adjac=%d Len=%.3f H=%.3f V=%.3f', vAdj[i], dLen, dH, dV), 4) + EgtOutLog( string.format( 'Adjac=%d Len=%.3f H=%.3f V=%.3f', vAdj[i], dLen, tFData.dH, tFData.dV), 4) break end end @@ -886,9 +878,9 @@ function ProcessLapJoint.Classify( Proc, b3Raw) local dDimMin, dDimMax, _, _, _, nSurfInt = GetTunnelDimension( Proc) EgtErase( nSurfInt) -- verifico se può essere fatto con svuotatura - if VerifyPocket( Proc, dDimMin) then + if VerifyPocket( dDimMin) then return true, false - elseif VerifyChainSaw( Proc, dDimMin, dDimMax) then + elseif VerifyChainSaw( dDimMin, dDimMax) then return true, false else return false @@ -904,7 +896,7 @@ function ProcessLapJoint.Classify( Proc, b3Raw) -- dati della faccia local _, vtN = EgtSurfTmFacetCenter( Proc.Id, tFData.nFacInd, GDB_ID.ROOT) -- cerco se c'è faccia adiacente sul lato più lungo - local nFaceAdj = GetFaceAdj( Proc, tFData.nFacInd, tFData.dH, tFData.dV) or -1 + local nFaceAdj = GetFaceAdj( Proc, tFData) or -1 local _, bIsL = TestUL( Proc) -- verifico se è lavorabile solo dal basso local bDown = ( vtN:getZ() < BD.NZ_MINA and not BD.DOWN_HEAD) @@ -1039,7 +1031,6 @@ end --------------------------------------------------------------------- local function MakeTwoFacesByMill( Proc, bDownHead) - -- verifico il numero di facce della tacca assert( ( Proc.Fct == 2), 'Error : MakeTwoFacesByMill in LapJoint with ' .. tostring( Proc.Fct) .. ' faces') -- recupero la lavorazione @@ -1168,7 +1159,7 @@ end --------------------------------------------------------------------- local function MakeByMill( Proc, tFData, dCollSic, bSpecialApp, sMillMaster) -- Cerco una faccia adiacente alla principale sul lato lungo - local nFacAdj, sErr = GetFaceAdj( Proc, tFData.nFacInd, tFData.dH, tFData.dV) + local nFacAdj, sErr = GetFaceAdj( Proc, tFData) if nFacAdj < 0 then EgtOutLog( sErr) return false, sErr @@ -2465,13 +2456,13 @@ local function ExtractExternalPaths( nPathInt, nNumIdAux, vtOrtho) end --------------------------------------------------------------------- -local function MakeChamfer( Proc, bIs3Faces, vtOrtho, nSurfInt) - +local function MakeChamfer( Proc, vtOrtho, nSurfInt) -- Se variabile globale indica che lo smusso è già stato fatto, esco if _bMadeChamfer then return 0 end _bMadeChamfer = true + local bIs3Faces = Proc.Fct == 3 -- recupero la lavorazione local sMilling = ML.FindMilling( 'Mark') if not sMilling then @@ -2711,7 +2702,8 @@ local function MakeByMillAsSaw( Proc, tFData, nBottomFace, sMillingOnSide, dSawD end --------------------------------------------------------------------- -local function DoHeadChainSaw( Proc, sName, sSawing, tFData, nFacAdj, vtNE, vtNS, dSawWidth, dSawThick, dDistToNextPiece, dMaxDepth, bOpenStart, bOpenEnd) +local function DoHeadChainSaw( Proc, sName, sSawing, tFData, nFacAdj, vtNE, vtNS, dSawWidth, + dSawThick, dDistToNextPiece, dMaxDepth, bOpenStart, bOpenEnd) -- Calcolo uso faccia local nFaceUse = BL.GetNearestParalOpposite( tFData.rfFac:getVersZ()) -- Calcolo normale faccia adiacente @@ -2724,10 +2716,10 @@ local function DoHeadChainSaw( Proc, sName, sSawing, tFData, nFacAdj, vtNE, vtNS end for i = 1, nStep do -- Applico la lavorazione con sega a catena a questa faccia - local sLoopName = sName .. '_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id)) .. '_' .. tostring( i) - local nMchFId = EgtAddMachining( sLoopName, sSawing) + local sStepName = sName .. '_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id)) .. '_' .. tostring( i) + local nMchFId = EgtAddMachining( sStepName, sSawing) if not nMchFId then - local sErr = 'Error adding machining ' .. sLoopName .. '-' .. sSawing + local sErr = 'Error adding machining ' .. sStepName .. '-' .. sSawing EgtOutLog( sErr) return false, sErr end @@ -2801,7 +2793,8 @@ local function DoHeadChainSaw( Proc, sName, sSawing, tFData, nFacAdj, vtNE, vtNS end --------------------------------------------------------------------- -local function DoSideChainSaw(Proc, sName, sSawing2, tFData, vtN, vtOrtho, dDimMin, dSawThick2, dMaxMat2, bOpenStart, bOpenEnd) +local function DoSideChainSaw( Proc, sName, sSawing2, tFData, vtN, vtOrtho, + dDimMin, dSawThick2, dMaxMat2, bOpenStart, bOpenEnd) -- Verifico se necessarie più passate local nStep = ceil( ( dDimMin - 10 * GEO.EPS_SMALL) / dSawThick2) local dStep = 0 @@ -2810,10 +2803,10 @@ local function DoSideChainSaw(Proc, sName, sSawing2, tFData, vtN, vtOrtho, dDimM end for i = 1, nStep do -- inserisco la lavorazione di sawing - local sLoopName = sName .. '_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id)) .. '_' .. tostring( i) - local nMchFId = EgtAddMachining( sLoopName, sSawing2) + local sStepName = sName .. '_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id)) .. '_' .. tostring( i) + local nMchFId = EgtAddMachining( sStepName, sSawing2) if not nMchFId then - local sErr = 'Error adding machining ' .. sLoopName .. '-' .. sSawing2 + local sErr = 'Error adding machining ' .. sStepName .. '-' .. sSawing2 EgtOutLog( sErr) return false, sErr end @@ -2904,10 +2897,9 @@ local function DoSideChainSaw(Proc, sName, sSawing2, tFData, vtN, vtOrtho, dDimM end --------------------------------------------------------------------- -local function MakeByChainOrSaw( Proc, tFData, - dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace, - bOrthoFacesMaster, nBottomFace, - nSurfInt, bIs3Faces) +local function MakeByChainOrSaw( Proc, tFData, dDimMin, dDimMax, vtOrtho, + bOrthoFacesMaster, nBottomFace, nSurfInt) + local bIs3Faces = Proc.Fct == 3 local bOrthoFaces local sWarn -- ottengo la distanza tra la fine del pezzo e il pezzo successivo @@ -2930,11 +2922,11 @@ local function MakeByChainOrSaw( Proc, tFData, if bOrthoFaces then -- ottengo le dimensioni del tunnel - dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace, nSurfInt = GetTunnelDimension( Proc) + dDimMin, dDimMax, _, vtOrtho, _, nSurfInt = GetTunnelDimension( Proc) -- verifico la direzione -- se devo inserire il chamfer if _nChamfer > 0 then - local nOk, sErr = MakeChamfer( Proc, bIs3Faces, vtOrtho, nSurfInt) + local nOk, sErr = MakeChamfer( Proc, vtOrtho, nSurfInt) if nOk < 0 then return false, sErr end end end @@ -3098,7 +3090,7 @@ local function MakeByChainOrSaw( Proc, tFData, -- altrimenti segacatena di fianco else -- verifico se posso farlo con la sega-catena - local bMakeChainSaw, sSawing2, dMaxMat2, dSawCornerRad2, dSawThick2 = VerifyChainSaw( Proc, dDimMin, dDimMax) + local bMakeChainSaw, sSawing2, dMaxMat2, dSawCornerRad2, dSawThick2 = VerifyChainSaw( dDimMin, dDimMax) if bMakeChainSaw then local bOk, sErr = DoSideChainSaw(Proc, sName, sSawing2, tFData, vtN, vtOrtho, dDimMin, dSawThick2, dMaxMat2, bOpenStart, bOpenEnd) if not bOk then @@ -3154,7 +3146,7 @@ local function MakeAntiSplintBySaw( Proc, nFacet, vtN, nFacInd, bReduceDepth, bM if dDepth > dLimitDepth then dExtraOffs = dLimitDepth - dDepth else - dExtraOffs = - (dDepth/2) + dExtraOffs = -(dDepth / 2) end end end @@ -3170,7 +3162,8 @@ local function MakeAntiSplintBySaw( Proc, nFacet, vtN, nFacInd, bReduceDepth, bM end --------------------------------------------------------------------- -local function MakePocket( Proc, ptPs, tvtN, nFaceRef, sMchFind, nUseRoughTool, sMasterPocket, dPrevFaceElev, tDimAndRef, dAng) +local function MakePocket( Proc, ptPs, tvtN, nFaceRef, sMchFind, nUseRoughTool, + sMasterPocket, dPrevFaceElev, tDimAndRef, dAng) -- calcolo l'elevazione dal punto medio local dElev local dLenIn, dLedOut = BL.GetPointDirDepth( _nPartId, ptPs, tvtN[2]) @@ -3227,7 +3220,7 @@ local function MakePocket( Proc, ptPs, tvtN, nFaceRef, sMchFind, nUseRoughTool, return false, sErr end -- aggiungo geometria - EgtSetMachiningGeometry( {{ Proc.Id, (nFaceRef)}}) + EgtSetMachiningGeometry( {{ Proc.Id, nFaceRef}}) -- imposto uso faccia EgtSetMachiningParam( MCH_MP.FACEUSE, MCH_MILL_FU.ORTHO_CONT) -- imposto posizione braccio porta testa @@ -3297,7 +3290,7 @@ local function DoHeadCut( Proc, nMchFId, sTuuidPk, dDiamTool, dElev, nSideFace, -- aggiungo geometria EgtSetMachiningGeometry( {{ Proc.Id, nSideFace}}) -- imposto uso faccia - local nFaceUse = BL.GetNearestOrthoOpposite(tvtN[1]) + local nFaceUse = BL.GetNearestOrthoOpposite( tvtN[1]) -- aggiusto i parametri EgtSetMachiningParam( MCH_MP.FACEUSE, nFaceUse) EgtSetMachiningParam( MCH_MP.DEPTH_STR, 'TH') @@ -3529,13 +3522,15 @@ local function DoPocket( sName, sPocketing, sMchFind, vtN, nPathInt, nFaceIdx, d end --------------------------------------------------------------------- -local function MakeByPockets( Proc, bIs3Faces, bOrthoFacesMaster, bMillDown) +local function MakeByPockets( Proc, bOrthoFacesMaster, bMillDown) local nFirstMachId local bOrthoFaces local sWarn local sMchFind = 'Pocket' local dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace, nSurfInt - local bBadMach = false + local bBadMach = false + local bIs3Faces = Proc.Fct == 3 + if bIs3Faces then -- recupero la faccia con il maggior numero di adiacenze e l'elevazione relativa local nFacInd, _, nFacInd2, _ = BL.GetFaceWithMostAdj( Proc.Id, _nPartId, bIs3Faces) @@ -3559,7 +3554,7 @@ local function MakeByPockets( Proc, bIs3Faces, bOrthoFacesMaster, bMillDown) local nPathInt -- se devo inserire il chamfer if _nChamfer > 0 then - local nOk, sErr = MakeChamfer( Proc, bIs3Faces, vtOrtho, nSurfInt) + local nOk, sErr = MakeChamfer( Proc, vtOrtho, nSurfInt) if nOk < 0 then return -1, sErr end end -- se smusso non è esclusivo @@ -3567,10 +3562,10 @@ local function MakeByPockets( Proc, bIs3Faces, bOrthoFacesMaster, bMillDown) -- ricalcolo se è lavorabile da sotto bMillDown = ( BD.DOWN_HEAD == true) -- verifico se può essere fatto con svuotatura - local bMakePocket, sPocketing, dMaxDepth, dDiamTool = VerifyPocket( Proc, dDimMin, dDepth / 2, nil, sMchFind) + local bMakePocket, sPocketing, dMaxDepth, dDiamTool = VerifyPocket( dDimMin, dDepth / 2, nil, sMchFind) local bMakePocketDn, sPocketingDn, dMaxDepthDn if bMillDown then - bMakePocketDn, sPocketingDn, dMaxDepthDn = VerifyPocket( Proc, dDimMin, dDepth / 2, nil, sMchFind..'_H2') + bMakePocketDn, sPocketingDn, dMaxDepthDn = VerifyPocket( dDimMin, dDepth / 2, nil, sMchFind .. '_H2') -- se è negativo inverto il versore e la faccia if vtOrtho:getZ() < 0 then vtOrtho = -vtOrtho @@ -3879,7 +3874,6 @@ local function MakeAntiSplintByMill( Proc, pPaths, nPathInt, vtN1, -- assegno lavorazioni ad ogni percorso for i = 1, #pPaths do - local nIdPath = pPaths[i][1] local nSide = pPaths[i][2] -- modifico versore direzione @@ -4016,7 +4010,6 @@ end local function ManageAntiSplintByMill( Proc, nFacInd, bMillDown, bDoubleSide, vtOrtho, nPathInt, nSurfInt, dDepth, bOneShot, nFirstMachId) - local sMyWarn = '' local pPaths = {} local nAuxId @@ -4070,7 +4063,7 @@ local function ManageAntiSplintByMill( Proc, nFacInd, bMillDown, bDoubleSide, -- se fresatura da sotto salto la lavorazione if vtN1:getZ() < BD.DRILL_VZ_MIN and not bMillDown then - local sErr = 'Error : milling from bottom ' + local sErr = 'Error : milling from bottom' EgtOutLog( sErr) return false, sErr end @@ -4317,7 +4310,6 @@ local function MakeSpecialThreeFaces( Proc, tFData) local dCollSic2 = 2 * BD.COLL_SIC if abs( tFData.vtN:getX()) > 0.7 or abs( tFData.vtN:getY()) > 0.7 or abs( tFData.vtN:getZ()) > 0.7 then dCollSic = 0 end if abs( tFData.vtN2:getX()) > 0.7 or abs( tFData.vtN2:getY()) > 0.7 or abs( tFData.vtN2:getZ()) > 0.7 then dCollSic2 = 0 end - local sPocketing = ML.FindPocketing( sMchFind, dDiam2, tFData.dFacElev2 + dCollSic2) local nPockFace = tFData.nFacInd2 -- se non trova una svuotatura adatta provo ad assegnarla all'altra faccia @@ -4403,7 +4395,7 @@ end --------------------------------------------------------------------- local function MakeByChainsaw( Proc, dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace) -- verifico se posso farlo con la sega-catena - local bMakeChainSaw, sSawing, dMaxMat, dSawCornerRad, dSawThick = VerifyChainSaw( Proc, dDimMin, dDimMax) + local bMakeChainSaw, sSawing, dMaxMat, dSawCornerRad, dSawThick = VerifyChainSaw( dDimMin, dDimMax) if bMakeChainSaw then -- Verifico se necessarie più passate @@ -4479,7 +4471,7 @@ local function MakeSidePocketings( Proc, tFData, dCollSic, bSpecialMillOnSide, nBottomFace, sMillingOnSide, dToolDiamOnSide, dThickMillOnSide, bSinglePart, bIsU, bIsL, dDiam, bMillDown, bMillUp, sMchFind, sMchFindBackUp) local bTryWithBlades = true - local nOk, bOk, sStat, sErr, dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace, bOrthoFaces, nSurfInt + local nOk, bOk, sStat, sErr, dDimMin, dDimMax, dDepth, vtOrtho, bOrthoFaces, nSurfInt if bSpecialMillOnSide then -- eseguo bOk, sWarn = MakeByMillAsSaw( Proc, tFData, nBottomFace, sMillingOnSide, dToolDiamOnSide, dThickMillOnSide) @@ -4496,17 +4488,15 @@ local function MakeSidePocketings( Proc, tFData, dCollSic, bSpecialMillOnSide, tFData = SwapFacetsData( tFData) end -- eseguo (come 3 faces) - bOk, sWarn, sStat = MakeByChainOrSaw( Proc, tFData, - dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace, - bOrthoFaces, nBottomFace, nSurfInt, true) + bOk, sWarn, sStat = MakeByChainOrSaw( Proc, tFData, dDimMin, dDimMax, vtOrtho, + bOrthoFaces, nBottomFace, nSurfInt) if not bOk then -- in base al flag interno e al numero di facce e se ha forma ad U: provo prima la svuotatura sul fianco e -- se non è possibile allora provo in seguito con lama o segacatena -- o passare subito dalla lavorazione con lama/sega catena if Proc.Fct == 3 and bIsU then -- lavoro con svuotature (singola o doppia contrapposta) - nOk, sErr, dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace, _, _, _, _, _, _, _, - bOrthoFaces = MakeByPockets( Proc, true, nil, bMillDown) + nOk, sErr, dDimMin, dDimMax, dDepth, vtOrtho, _, _, _, _, _, _, _, _, bOrthoFaces = MakeByPockets( Proc, nil, bMillDown) -- se lavorazione non idonee (asse della feature troppo inclinato e impossibile lavorare completamente da due parti) if nOk == -2 then if not sMchFind then @@ -4551,7 +4541,7 @@ local function MakeSidePocketings( Proc, tFData, dCollSic, bSpecialMillOnSide, if ( ( Proc.Fct == 3 and bIsU) or (Proc.Fct == 2 and bIsL)) and _nChamfer > 0 then -- ottengo le dimensioni dello pseudotunnel local _, _, _, vtOrtho, _, nSurfInt = GetTunnelDimension( Proc) - local nOk, sErr = MakeChamfer( Proc, true, vtOrtho, nSurfInt) + local nOk, sErr = MakeChamfer( Proc, vtOrtho, nSurfInt) if nOk < 0 then return 1, false, sErr end end bOk = true @@ -4580,7 +4570,7 @@ local function MakeSidePocketings( Proc, tFData, dCollSic, bSpecialMillOnSide, local dDiamTool = 100 local nPathInt, nSurfInt, bOneShot, nFirstMachId, bDoubleSide nOk, sErr, dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace, dDiamTool, - bDoubleSide, nPathInt, nSurfInt, bOneShot, bMillDown, nFirstMachId, bOrthoFaces = MakeByPockets( Proc, true, nil, bMillDown) + bDoubleSide, nPathInt, nSurfInt, bOneShot, bMillDown, nFirstMachId, bOrthoFaces = MakeByPockets( Proc, nil, bMillDown) if nOk == -2 then if not sMchFind then sMchFind = sMchFindBackUp @@ -4608,8 +4598,7 @@ local function MakeSidePocketings( Proc, tFData, dCollSic, bSpecialMillOnSide, -- se abilitato dal parametro Q inserisco pulitura spigoli o contorno con fresa più piccola if Q_CONTOUR_SMALL_TOOL > 0 then local bOk, sWarn2 = MakeRoundCleanCornerOrContour( Proc, tFData.nFacInd, dDiamTool, Q_CONTOUR_SMALL_TOOL, bMillDown, - bDoubleSide, vtOrtho, nPathInt, nSurfInt, - dDepth, bOneShotm) + bDoubleSide, vtOrtho, nPathInt, nSurfInt, dDepth, bOneShotm) if not bOk then return 1, false, sWarn2 end sWarn = FormatWarning( sWarn, sWarn2) end @@ -4628,10 +4617,9 @@ local function MakeSidePocketings( Proc, tFData, dCollSic, bSpecialMillOnSide, tFData = SwapFacetsData( tFData) end -- eseguo (non 3 faces) - bOk, sWarn, sStat = MakeByChainOrSaw( Proc, tFData, dDimMin, dDimMax, dDepth, vtOrtho, - nLundIdFace, bOrthoFaces, nBottomFace, nSurfInt) + bOk, sWarn, sStat = MakeByChainOrSaw( Proc, tFData, dDimMin, dDimMax, vtOrtho, bOrthoFaces, nBottomFace, nSurfInt) if not bOk and sStat == 'MNF' then - _, sPocketing = VerifyPocket( Proc, dDiam, tFData.dFacElev + dCollSic, nil, sMchFind) + _, sPocketing = VerifyPocket( dDiam, tFData.dFacElev + dCollSic, nil, sMchFind) if sPocketing then sWarn = '' else @@ -4688,7 +4676,7 @@ local function MakePocketingOrMilling( Proc, tFData, bSinglePart) -- altrimenti cerco la faccia secondaria per adiacenza alla principale else -- Cerco una faccia adiacente alla principale sul lato lungo - local nFacAdj, sErr = GetFaceAdj( Proc, tFData.nFacInd, tFData.dH, tFData.dV) + local nFacAdj, sErr = GetFaceAdj( Proc, tFData) if nFacAdj < 0 then EgtOutLog( sErr) return false, sErr @@ -4765,9 +4753,9 @@ local function MakePocketingOrMilling( Proc, tFData, bSinglePart) end -- ricerca lavorazione local sPocketing - local _, sMyPocketing, dMyTMaxDepth, _ = VerifyPocket( Proc, dDiam, tFData.dFacElev + dCollSic, dMaxTotLen, sMchFind .. EgtIf( bMillDown, '_H2', '')) + local _, sMyPocketing, dMyTMaxDepth, _ = VerifyPocket( dDiam, tFData.dFacElev + dCollSic, dMaxTotLen, sMchFind .. EgtIf( bMillDown, '_H2', '')) if not sMyPocketing and bMillUp then - _, sMyPocketing, dMyTMaxDepth, _ = VerifyPocket( Proc, dDiam, tFData.dFacElev + dCollSic, dMaxTotLen, sMchFind) + _, sMyPocketing, dMyTMaxDepth, _ = VerifyPocket( dDiam, tFData.dFacElev + dCollSic, dMaxTotLen, sMchFind) bMillDown = false end --local sMyPocketing, dMyTDiam, dMyTMaxDepth = ML.FindPocketing( sMchFind .. EgtIf( bMillDown, '_H2', ''), dDiam, dFacElev + dCollSic, dMaxTotLen) @@ -4881,8 +4869,8 @@ local function MakePocketingOrMilling( Proc, tFData, bSinglePart) end -- altrimenti, in base alla forma, provo con svuotature di fianco o con la sega a catena o lama else - local stat, bOk, sWarn = MakeSidePocketings( Proc, tFData, dCollSic, bSpecialMillOnSide, - nBottomFace, sMillingOnSide, dToolDiamOnSide, dThickMillOnSide, bSinglePart, + local stat, bOk, sWarn = MakeSidePocketings( Proc, tFData, dCollSic, bSpecialMillOnSide, nBottomFace, + sMillingOnSide, dToolDiamOnSide, dThickMillOnSide, bSinglePart, bIsU, bIsL, dDiam, bMillDown, bMillUp, sMchFind, sMchFindBackUp) if stat == 1 then return bOk, sWarn @@ -4890,10 +4878,10 @@ local function MakePocketingOrMilling( Proc, tFData, bSinglePart) end else -- se devo inserire il chamfer - if ( ( Proc.Fct == 3 and bIsU) or (Proc.Fct == 2 and bIsL)) and _nChamfer > 0 then + if (( Proc.Fct == 3 and bIsU) or (Proc.Fct == 2 and bIsL)) and _nChamfer > 0 then -- ottengo le dimensioni dello pseudotunnel local _, _, _, vtOrtho, _, nSurfInt = GetTunnelDimension( Proc) - local nOk, sErr = MakeChamfer( Proc, true, vtOrtho, nSurfInt) + local nOk, sErr = MakeChamfer( Proc, vtOrtho, nSurfInt) if nOk < 0 then return false, sErr end end end @@ -4929,7 +4917,7 @@ local function MakePocketingOrMilling( Proc, tFData, bSinglePart) -- se ho più di 3 facce e non di forma ad U oppure ho 3 facce e di forma ad U -- e non sono stati inseriti antischeggia di lama -- controllo se c'è una faccia non ortogonale alla principale e la lavoro con una contornatura o svuotatura - if ( ( Proc.Fct > 3 and not bIsU) or ( Proc.Fct == 3 and bIsU)) and not bMadeASbyBld then + if (( Proc.Fct > 3 and not bIsU) or ( Proc.Fct == 3 and bIsU)) and not bMadeASbyBld then -- Recupero le facce adiacenti alla principale (solo quelle esistenti) local vAdj = GetValidFacetAdjacencies( Proc.Id, tFData.nFacInd) if not vAdj or #vAdj == 0 then @@ -4950,7 +4938,7 @@ local function MakePocketingOrMilling( Proc, tFData, bSinglePart) tDimAndRef[2] = { dH2, dV2, rfFac2} local ptPs = ( ptP1 + ptP2) / 2 local bOk, sWarn2 = MachineByMill( Proc, tvtNx, tFData.nFacInd, vAdj[i], ptPs, tDimAndRef, - EgtIf( ( Proc.Fct == 3 and bIsU), 0, 2), nUseRoughTool, dAng, sPocketing, sTuuidPk, tFData.dFacElev) + EgtIf( Proc.Fct == 3 and bIsU, 0, 2), nUseRoughTool, dAng, sPocketing, sTuuidPk, tFData.dFacElev) if not bOk then return bOk, sWarn2 end sWarn = FormatWarning( sWarn, sWarn2) end @@ -5034,7 +5022,7 @@ local function MakeThreeFaces( Proc, bSinglePart, bPrevBhSideMill) if bPrevBhSideMill == nil then bPrevBhSideMill = bMakeBySideMill end - --if bMakeBySideMill and ( dMaxMat <= dV + 15 * GEO.EPS_SMALL) then + --if bMakeBySideMill and ( dMaxMat <= tFData.dV + 15 * GEO.EPS_SMALL) then if bMakeBySideMill and ( dMaxMat <= tFData.dH + 15 * GEO.EPS_SMALL) then -- se smusso non è esclusivo if _nChamfer < 2 then @@ -5070,7 +5058,6 @@ end --------------------------------------------------------------------- local function MakeMoreFaces( Proc, bSinglePart, bPrevBhSideMill) local bClosedOrthoFaces - local nBottomFace -- recupero la faccia con il maggior numero di adiacenze e l'elevazione relativa local tFData = GetFacetsData( Proc.Id) if not tFData.nFacInd or tFData.nFacInd < 0 then @@ -5084,6 +5071,7 @@ local function MakeMoreFaces( Proc, bSinglePart, bPrevBhSideMill) end -- se è una feature scanalatura (con 5 facce) e non è stata riconosciuta come fessura, eseguo altre verifiche if Proc.Prc == 16 and Proc.Fct == 5 and not bClosedOrthoFaces then + local nBottomFace -- dalla copia della superfice, ciclo eliminando una faccia per volta per verificare se trova fessura for i = 1, Proc.Fct do local nNewProcId = EgtCopyGlob( Proc.Id, _nAddGrpId) or GDB_ID.NULL @@ -5128,7 +5116,7 @@ local function MakeMoreFaces( Proc, bSinglePart, bPrevBhSideMill) if bClosedOrthoFaces then local bTryWithBlades = true -- lavoro fessura con svuotature (singola o doppia contrapposta) - local nOk, sErr, dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace = MakeByPockets( Proc, false, bClosedOrthoFaces) + local nOk, sErr, dDimMin, dDimMax, dDepth, vtOrtho, nLundIdFace = MakeByPockets( Proc, bClosedOrthoFaces) if nOk < 0 then return false, sErr elseif nOk > 0 then @@ -5153,7 +5141,6 @@ end --------------------------------------------------------------------- local function MakeLongFaces( Proc, Func) - -- divido in parti lungo la X local vAddId = {} local nPart = max( ceil( Proc.Box:getDimX() / BD.LONGCUT_MAXLEN), 2) @@ -5338,7 +5325,7 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) local _, bIsL = TestUL( Proc) if bIsL and _nChamfer > 0 then local _, _, _, vtOrtho, _, nSurfInt = GetTunnelDimension( Proc) - local nOk, sErr = MakeChamfer( Proc, true, vtOrtho, _b3Solid, nSurfInt) + local nOk, sErr = MakeChamfer( Proc, vtOrtho, _b3Solid, nSurfInt) if nOk < 0 then return false, sErr end end return Fbs.MakeTwo( Proc, _nPhase, _nRawId, _nPartId, _dOvmHead, 'HeadSide' .. EgtIf( bDownHead, '_H2', ''), true, bDownHead) @@ -5355,4 +5342,4 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) end --------------------------------------------------------------------- -return ProcessLapJoint +return ProcessLapJoint \ No newline at end of file