DataWall :

- correzioni posizionamento pezzi nesting con rotazione 180 e inversione 180
- correzione lavorazioni tasche che sono solo due lati a L da sopra.
This commit is contained in:
Dario Sassi
2021-04-11 18:13:59 +00:00
parent 279478d7bf
commit c962602721
3 changed files with 16 additions and 11 deletions
+13 -4
View File
@@ -1,4 +1,4 @@
-- WProcessLapJoint.lua by Egaltech s.r.l. 2021/04/06
-- WProcessLapJoint.lua by Egaltech s.r.l. 2021/04/09
-- Gestione calcolo mezzo-legno per Pareti
-- Tabella per definizione modulo
@@ -1215,8 +1215,8 @@ local function MakeSideGrooveByMill( Proc, nFacet, nRawId, b3Raw)
local dStep = EgtGetMachiningParam( MCH_MP.STEP)
if dStep < GEO.EPS_SMALL then dStep = dMaxMat end
local nStep = ceil( ( dThick - dMaxMat) / dStep)
dStep = ( dThick - dMaxMat) / nStep
local dMaxElev = ( nStep + 1) * dStep - GEO.EPS_SMALL
dStep = ( dThick - dMaxMat) / max( nStep, 1)
local dMaxElev = max( ( nStep + 1) * dStep - GEO.EPS_SMALL, 0)
EgtSetMachiningParam( MCH_MP.STEP, dStep)
EgtSetMachiningParam( MCH_MP.USERNOTES, 'MaxElev=' .. EgtNumToString( dMaxElev, 3) .. ';')
-- eseguo
@@ -1391,6 +1391,15 @@ local function MakeTwoFaces( Proc, nRawId, b3Raw)
if not bAdj then
return false, 'Feature with two faces not adjacentes'
end
-- se equivalente ad un contorno
if abs( ptP1:getZ() - ptP2:getZ()) > 0.9 * b3Raw:getDimZ() then
-- verifico ordinamento (esterno a destra)
if ( vtN[1] ^ ( ptP1 - ptC[1])) * Z_AX() < 0 then
EgtSurfTmSwapFacets( Proc.Id, 0, 1)
end
-- applico lavorazione di contorno libero
return FreeContour.Make( Proc, nRawId, b3Raw)
end
-- versore della linea di intersezione
local vtX = ptP2 - ptP1 ; vtX:normalize()
-- larghezza delle facce ortogonalmente all'intersezione
@@ -1488,7 +1497,7 @@ local function MakeMoreFaces( Proc, nRawId, b3Raw)
if Proc.Fct >= 3 and vtN:getZ() < WD.NZ_MINA then
-- fresatura (se definita)
local sMilling, _, dMaxMat, dDiam = WM.FindMilling( 'SideGroove')
if sMilling and dElev < dDiam / 2 - 30 and dMaxMat <= min( dH, dV) + 10 * GEO.EPS_SMALL then
if sMilling and dElev < dDiam / 2 - 30 and dMaxMat <= min( dH, dV) + 20 * GEO.EPS_SMALL then
return MakeSideGrooveByMill( Proc, nFacInd, nRawId, b3Raw)
-- altrimenti sega a catena
else