diff --git a/LuaLibs/ProcessLapJoint.lua b/LuaLibs/ProcessLapJoint.lua index 826e862..c4a646b 100644 --- a/LuaLibs/ProcessLapJoint.lua +++ b/LuaLibs/ProcessLapJoint.lua @@ -91,7 +91,7 @@ function ProcessLapJoint.Identify( Proc) end --------------------------------------------------------------------- -local function AssignQIdent( Proc) +local function AssignQValues( Proc) -- reset assegnazione parametri Q Q_FORCE_BLADE = nil @@ -614,8 +614,8 @@ function ProcessLapJoint.IsTailFeature( Proc, b3Raw) return true end end - -- in base al tipo di feature attribuisco il significato dei parametri Q - AssignQIdent( Proc) + -- in base al tipo di feature leggo i valori dei parametri Q + AssignQValues( Proc) -- se può essere fatto con utensile tipo lama local bUseBHSideMill, bHead, bHeadDir = VerifyBHSideMill( Proc) if bUseBHSideMill then @@ -1086,10 +1086,6 @@ local function MakeByMill( Proc, nFacInd, rfFac, dH, dV, dElev, dCollSic, bSpeci EgtOutLog( sErr) return false, sErr end - EgtOutLog( '*** ProcID=' .. tostring( Proc.Id)) - EgtOutLog( '*** Name=' .. EgtGetName( Proc.Id)) - EgtOutLog( '*** nFacInd=' .. tostring( nFacInd)) - EgtOutLog( '*** nFacAdj=' .. tostring( nFacAdj)) -- Determino se estremi aperti o chiusi e faccia adiacente da aggiungere alla lavorazione local bOpenStart = false local bOpenEnd = false @@ -1156,12 +1152,6 @@ local function MakeByMill( Proc, nFacInd, rfFac, dH, dV, dElev, dCollSic, bSpeci local nFaceUse = BL.GetNearestParalOpposite( rfFac:getVersZ()) -- inserisco la lavorazione di fresatura local sName = 'Mill_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id)) - - -- -- - EgtOutLog( '*** FaceUse=' .. tostring( nFaceUse)) - EgtOutLog( '*** Milling on Face=' .. tostring( nFacAdj)) - -- -- - local nMchFId = EgtAddMachining( sName, sMilling) if not nMchFId then sErr = 'Error adding machining ' .. sName .. '-' .. sMilling @@ -4358,7 +4348,8 @@ local function ShowFacesNumber( SurfId) rFrame:toGlob(EgtGetGlobFrame(SurfId)) local idGrp = EgtGroup( GDB_ID.ROOT, rFrame, GDB_RT.GLOB) EgtFrame( GDB_ID.ROOT, rFrame, GDB_ID.GLOB) - local idTxt = EgtTextEx( idGrp, {-5, -5, 1}, 0, tostring( fcIdx), 'Arial', 'S', 10) + local idTxt = EgtTextEx( idGrp, {-4, -5, 0}, 0, tostring( fcIdx), 'Arial', 'S', 10) + EgtSetColor( idTxt, {255, 255, 255, 100}, false) EgtSetName( idTxt, 'Txt_Surf' .. tostring( SurfId) .. '_Face' .. tostring( fcIdx)) EgtRelocateGlob( idTxt, GDB_ID.ROOT) EgtErase( idGrp) @@ -4464,7 +4455,6 @@ end --------------------------------------------------------------------- local function AreFacesOrthogonal( nSurfId, nFacInd, nFacInd2, dCosSideAng) - -- recupero il numero di facce if not dCosSideAng then dCosSideAng = -0.09 end @@ -4488,7 +4478,7 @@ end local function MakeSpecialThreeFaces( Proc, nPhase, bIsL, nRawId, nPartId, dOvmHead, b3Raw, nChamfer) local nFacInd, dFacElev, nFacInd2, dFacElev2 = BL.GetFaceWithMostAdj( Proc.Id, nPartId) - -- entrambe le facce non devono essere orientate verso il basso + -- entrambe le facce non devono essere orientate verso il basso local _, vtN = EgtSurfTmFacetCenter( Proc.Id, nFacInd, GDB_ID.ROOT) local _, vtN2 = EgtSurfTmFacetCenter( Proc.Id, nFacInd2, GDB_ID.ROOT) -- se orientata verso il basso, verifico l'alternativa @@ -4524,29 +4514,23 @@ local function MakeSpecialThreeFaces( Proc, nPhase, bIsL, nRawId, nPartId, dOvmH if abs( vtN:getX()) > 0.7 or abs( vtN:getY()) > 0.7 or abs( vtN:getZ()) > 0.7 then dCollSic = 0 end if abs( vtN2:getX()) > 0.7 or abs( vtN2:getY()) > 0.7 or abs( vtN2:getZ()) > 0.7 then dCollSic2 = 0 end local sPocketing - -- controllo se le facce sono ortogonali o meno + local nPockFace + -- controllo se le facce sono ortogonali local dOrtho = AreFacesOrthogonal(Proc.Id, nFacInd, nFacInd2) - local nPockFace - --if bUseNewMethod == false then if (dOrtho == 0) then -- ortogonali sPocketing = ML.FindPocketing( sMchFind, dDiam2, dFacElev2 + dCollSic2) nPockFace = nFacInd2 elseif (dOrtho > 0) then -- overcut (angolo aperto) - -- prendo prima la faccia 1 + -- inizio con la prima delle 2 facce sPocketing = ML.FindPocketing( sMchFind, dDiam, dFacElev + dCollSic) nPockFace = nFacInd - else - local sErr = 'Error : special LapJoint with undercut face is not managed' - EgtOutLog( sErr) - return false, sErr end -- se non trova una svuotatura adatta provo ad assegnarla all'altra faccia if not sPocketing then - --if bUseNewMethod == false then if (dOrtho == 0) then - -- se ortogonali, 'swappa' le 2 facce + -- se ortogonali, faccio uno 'swap' delle 2 facce dDiam, dDiam2 = dDiam2, dDiam dCollSic, dCollSic2 = dCollSic2, dCollSic nFacInd, nFacInd2 = nFacInd2, nFacInd @@ -4556,7 +4540,7 @@ local function MakeSpecialThreeFaces( Proc, nPhase, bIsL, nRawId, nPartId, dOvmH rfFac, rfFac2 = rfFac2, rfFac vtN, vtN2 = vtN2, vtN end - -- prendo a riferimento l'altra faccia + -- prendo a riferimento la seconda faccia per la svuotatura nPockFace = nFacInd2 sPocketing = ML.FindPocketing( sMchFind, dDiam2, dFacElev2 + dCollSic2) @@ -4567,10 +4551,6 @@ local function MakeSpecialThreeFaces( Proc, nPhase, bIsL, nRawId, nPartId, dOvmH end end - EgtOutLog( '*** nFacInd=' .. tostring(nFacInd)) - EgtOutLog( '*** nFacInd2=' .. tostring(nFacInd2)) - EgtOutLog( '*** Pocketing Face=' .. tostring(nPockFace)) - -- provo con contornatura local dDiamTool = 20 if bIsL then @@ -4628,10 +4608,6 @@ local function MakeSpecialThreeFaces( Proc, nPhase, bIsL, nRawId, nPartId, dOvmH if not bOk then return false, sWarn end end - --- --- - --ShowFacesNumber( Proc.Id) - EgtOutLog( '*** -----------------------------------------------------------------') - return true, '' end @@ -4820,27 +4796,16 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa -- altrimenti lavoro con svuotatura else local bSpecial3faces = false - local bUseNewMethod = false - - EgtOutLog( '*** -----------------------------------------------------------------') - EgtOutLog( '*** new method=' .. EgtIf( bUseNewMethod, 'YES', 'NO')) - + -- verifico se lavorando la faccia principale rimane esclusa molta sezione trasversale complessiva della feature (da box) local rfFac, dH, dV = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFacInd, GDB_ID.ROOT) local bBoxF = EgtGetBBoxRef( Proc.Id, GDB_BB.STANDARD, rfFac) - - if bUseNewMethod == false then - if dH * dV < 0.9 * ( bBoxF:getDimX() * bBoxF:getDimY()) then - bSpecial3faces = true + + if dH * dV < 0.9 * ( bBoxF:getDimX() * bBoxF:getDimY()) then + bSpecial3faces = true + --- --- + --ShowFacesNumber( Proc.Id) end - else - -- diminuisco la differenza per cui considero la lavorazione come "speciale" per lavorare anche con angoli prossimi all'ortogonalità - if dH * dV < 0.97 * ( bBoxF:getDimX() * bBoxF:getDimY()) then - bSpecial3faces = true - end - end - - EgtOutLog( '*** bSpecial3faces=' .. EgtIf( bSpecial3faces, 'YES', 'NO')) -- se riconosciuta gestione 3 facce -- e limitata per ora alla feature 20 @@ -4848,7 +4813,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa -- se smusso non è esclusivo if nChamfer < 2 then local bOk, sErr = MakeSpecialThreeFaces( Proc, nPhase, bIsL, nRawId, nPartId, dOvmHead, b3Raw, nChamfer) - return bOk, sErr + return bOk, sErr end -- altrimenti lavorazione di svuotatura o contornatura @@ -5482,8 +5447,8 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead) EgtOutLog( sErr) return false, sErr end - -- in base al tipo di feature attribuisco il significato dei parametri Q - AssignQIdent( Proc) + -- in base al tipo di feature leggo i valori dei parametri Q + AssignQValues( Proc) -- se non forzate frese, uso la lama local bUseBlade = Q_USE_ROUGH_TOOL ~= 1 and Q_USE_MILL ~= 1 local nForceUseBladeOnNotContinueFace