Compare commits
5 Commits
Ticket#2811
..
3.1d2
| Author | SHA1 | Date | |
|---|---|---|---|
| 7e243bb9ea | |||
| ca21098226 | |||
| 32052e3016 | |||
| 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)
|
||||
|
||||
@@ -229,10 +229,10 @@ function ProcessDtMortise.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
||||
end
|
||||
local b3DtMrt = EgtGetBBoxRef( Proc.Id, GDB_BB.STANDARD, rfDtMrt)
|
||||
local dAltMort = b3DtMrt:getDimZ()
|
||||
-- verifico se di tipo pocket
|
||||
-- verifico se di tipo pocket o se antischeggia disabilitato
|
||||
local bPocket = ( EgtGetInfo( Proc.Id, 'P05', 'i') == 1)
|
||||
local dForcePrecutBypass = EgtGetInfo( Proc.Id, 'Q01', 'i')
|
||||
if bPocket or dForcePrecutBypass == 1 then bMakeAntiSplitPath = false end
|
||||
local bDisableAntiSplint = ( EgtGetInfo( Proc.Id, 'Q01', 'i') or 0) == 1
|
||||
if bPocket or bDisableAntiSplint then bMakeAntiSplitPath = false end
|
||||
-- verifico se frontale
|
||||
local bFront = ( Proc.Prc == 56)
|
||||
-- se mortasa di fronte, eseguo il taglio della faccia
|
||||
|
||||
+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
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
==== Beam Update Log ====
|
||||
|
||||
Versione 3.1d2 (10/04/2026)
|
||||
- Added : in StepJoint aggiunto Q02=1 per forzare fresa
|
||||
- Added : in DtMortise aggiunto Q01=1 per disabilitare antischeggia
|
||||
- Fixed : in LapJoint correzione a antischeggia con fresa in caso di feature spezzata
|
||||
|
||||
Versione 3.1d1 (08/04/2026)
|
||||
- Added : le forature vengono accorciate con massima elevazione anche in presenza di tagli di testa
|
||||
- Modif : nelle slot con lama verticali si lavora sempre in concordanza
|
||||
|
||||
+1
-1
@@ -2,5 +2,5 @@
|
||||
-- Gestione della versione di Beam
|
||||
|
||||
NAME = 'Beam'
|
||||
VERSION = '3.1d1'
|
||||
VERSION = '3.1d2'
|
||||
MIN_EXE = '3.1b1'
|
||||
|
||||
Reference in New Issue
Block a user