Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4138f89f69 | |||
| 66013f5e07 |
@@ -1158,6 +1158,31 @@ function BeamLib.Is3EdgesApprox( Proc, nFacet, nAddGrpId)
|
||||
return bResult
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function BeamLib.IsPointOnBoxLimits( ptPoint, b3Solid)
|
||||
local dTol = 500 * GEO.EPS_SMALL
|
||||
|
||||
local dMinX = b3Solid:getMin():getX()
|
||||
local dMinY = b3Solid:getMin():getY()
|
||||
local dMinZ = b3Solid:getMin():getZ()
|
||||
|
||||
local dMaxX = b3Solid:getMax():getX()
|
||||
local dMaxY = b3Solid:getMax():getY()
|
||||
local dMaxZ = b3Solid:getMax():getZ()
|
||||
|
||||
-- Check di ogni piano limite
|
||||
if abs( ptPoint:getX() - dMinX) < dTol then return true, "Left" end
|
||||
if abs( ptPoint:getX() - dMaxX) < dTol then return true, "Right" end
|
||||
|
||||
if abs( ptPoint:getY() - dMinY) < dTol then return true, "Front" end
|
||||
if abs( ptPoint:getY() - dMaxY) < dTol then return true, "Back" end
|
||||
|
||||
if abs( ptPoint:getZ() - dMinZ) < dTol then return true, "Bottom" end
|
||||
if abs( ptPoint:getZ() - dMaxZ) < dTol then return true, "Top" end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- restituisce le facce della parte interessate dalla feature Proc
|
||||
function BeamLib.GetProcessAffectedFaces( Proc)
|
||||
|
||||
+16
-11
@@ -4803,7 +4803,7 @@ local function ManageAntiSplintBySaw( Proc, b3Raw, b3Solid, bIsU, vtN, nFacInd,
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function MakePathsOnExtremPoints( nAddGrpId, nIdPath, pPaths, dTDiam)
|
||||
local function MakePathsOnExtremePoints( nAddGrpId, nIdPath, pPaths, dTDiam, b3Solid)
|
||||
|
||||
local dLength = 2
|
||||
if not nIdPath then return pPaths end
|
||||
@@ -4819,15 +4819,20 @@ local function MakePathsOnExtremPoints( nAddGrpId, nIdPath, pPaths, dTDiam)
|
||||
local vtIni = EgtSV( nIdPath, GDB_RT.GLOB)
|
||||
local vtEnd = EgtEV( nIdPath, GDB_RT.GLOB)
|
||||
|
||||
local ptIniP = ptIni
|
||||
local ptEndP = ptIniP + (vtIni * dLength)
|
||||
local nAuxId = EgtLine( nAddGrpId, ptIniP, ptEndP, GDB_RT.GLOB)
|
||||
table.insert( pPaths, { nAuxId, 1, ptIniP})
|
||||
-- si costruisce il percorso solo per i punti sui bordi del grezzo
|
||||
if BL.IsPointOnBoxLimits( ptIni, b3Solid) then
|
||||
local ptIniP = ptIni
|
||||
local ptEndP = ptIniP + (vtIni * dLength)
|
||||
local nAuxId = EgtLine( nAddGrpId, ptIniP, ptEndP, GDB_RT.GLOB)
|
||||
table.insert( pPaths, { nAuxId, 1, ptIniP})
|
||||
end
|
||||
|
||||
ptIniP = ptEnd
|
||||
ptEndP = ptEnd - ( vtEnd * dLength)
|
||||
nAuxId = EgtLine( nAddGrpId, ptIniP, ptEndP, GDB_RT.GLOB)
|
||||
table.insert( pPaths, { nAuxId, 2, ptIniP})
|
||||
if BL.IsPointOnBoxLimits( ptEnd, b3Solid) then
|
||||
local ptIniP = ptEnd
|
||||
local ptEndP = ptEnd - ( vtEnd * dLength)
|
||||
local nAuxId = EgtLine( nAddGrpId, ptIniP, ptEndP, GDB_RT.GLOB)
|
||||
table.insert( pPaths, { nAuxId, 2, ptIniP})
|
||||
end
|
||||
|
||||
return pPaths
|
||||
end
|
||||
@@ -5081,7 +5086,7 @@ local function ManageAntiSplintByMill( Proc, nPhase, nRawId, nPartId, b3Raw,
|
||||
-- creo percorsi antisplint dagli estremi dei percorsi di contorno trovati
|
||||
for i = 1, nNumId do
|
||||
local nIdPath = nFirstId + i - 1
|
||||
pPaths = MakePathsOnExtremPoints( nAddGrpId, nIdPath, pPaths, dTDiam)
|
||||
pPaths = MakePathsOnExtremePoints( nAddGrpId, nIdPath, pPaths, dTDiam, b3Solid)
|
||||
end
|
||||
end
|
||||
-- alrimenti ho la faccia aggiunta
|
||||
@@ -5116,7 +5121,7 @@ local function ManageAntiSplintByMill( Proc, nPhase, nRawId, nPartId, b3Raw,
|
||||
-- se non ho un percorso chiuso estraggo i percorsi
|
||||
if bOpenPath then
|
||||
-- creo percorsi antisplint dagli estremi dei percorsi di contorno trovati
|
||||
pPaths = MakePathsOnExtremPoints( nAddGrpId, nFirstId, pPaths, dTDiam)
|
||||
pPaths = MakePathsOnExtremePoints( nAddGrpId, nFirstId, pPaths, dTDiam, b3Solid)
|
||||
end
|
||||
EgtErase(nFirstId)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user