From 4205ae9c863d3d9cfea940251d752ef07dde4300 Mon Sep 17 00:00:00 2001 From: DarioS Date: Thu, 29 Jul 2021 17:13:02 +0200 Subject: [PATCH] DataWall : - correzione contorni liberi per casi Q05=2 e 3 quando chiusi e lavorati solo con fresa. --- LuaLibs/WProcessFreeContour.lua | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/LuaLibs/WProcessFreeContour.lua b/LuaLibs/WProcessFreeContour.lua index cb0fca0..6ea1414 100644 --- a/LuaLibs/WProcessFreeContour.lua +++ b/LuaLibs/WProcessFreeContour.lua @@ -506,7 +506,7 @@ local function ReorderFacesFromTab( nIdSurf, vFace) end --------------------------------------------------------------------- -local function MakeCustomPath( vGeom, nConeCut, dMillDiam, nAddGrpId, dThick) +local function MakeCustomPath( vGeom, nConeCut, dMillDiam, nAddGrpId, dThick, bClosed) local nPath = {} local nPathData = {} @@ -518,6 +518,9 @@ local function MakeCustomPath( vGeom, nConeCut, dMillDiam, nAddGrpId, dThick) if i < #vGeom then -- ricavo i punti e l'angolo interno _, _, _, dAng = EgtSurfTmFacetsContact( vGeom[i][1], vGeom[i][2], vGeom[i+1][2], GDB_ID.ROOT) + elseif i == #vGeom and nConeCut == 3 and bClosed then + -- ricavo i punti e l'angolo interno + _, _, _, dAng = EgtSurfTmFacetsContact( vGeom[i][1], vGeom[i][2], vGeom[1][2], GDB_ID.ROOT) else dAng = 0 end @@ -592,10 +595,10 @@ local function MakeCustomPath( vGeom, nConeCut, dMillDiam, nAddGrpId, dThick) -- aggiungo linea precedente table.insert( nPath, ( nId1st + i - 1)) -- se non è la linea finale e l'angolo tra le due facce è ammesso - if i < nIdCount and nPathData[i][2] < 0 then + if ( i < nIdCount and nPathData[i][2] < 0) or ( i == nIdCount and bClosed and nPathData[i][2] < 0) then -- aggiungo una retta sulla bisettrice local _, vtN2 = EgtSurfTmFacetCenter( vGeom[i][1], vGeom[i][2], GDB_ID.ROOT) - local _, vtN3 = EgtSurfTmFacetCenter( vGeom[i][1], vGeom[i+1][2], GDB_ID.ROOT) + local _, vtN3 = EgtSurfTmFacetCenter( vGeom[i][1], vGeom[ EgtIf( i == nIdCount and bClosed, 1, i+1)][2], GDB_ID.ROOT) local ptP1 = EgtEP( ( nId1st + i - 1), GDB_ID.ROOT) -- sommo i tre versori per avere una direzione media local vtExtrExit = vtN2 + vtN3 @@ -1296,7 +1299,7 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd -- altrimenti se devo scaricare l'angolo elseif nConeCut == 3 then -- eseguo la costruzione del percorso - local nPathId, sErr = MakeCustomPath( vGeom, nConeCut, dMillDiam, nAddGrpId) + local nPathId, sErr = MakeCustomPath( vGeom, nConeCut, dMillDiam, nAddGrpId, nil, bClosed and bAllType4) if nPathId == 0 then return 0, sErr end EgtSetMachiningGeometry({{ nPathId, -1}}) EgtSetMachiningParam( MCH_MP.STARTADDLEN, dSal)