DataWall :

- in lavorazione FreeContour disabilito Tabs se affondo meno del richiesto
- in lavorazione FreeContour corretta scelta fresa meno peggio per affondamento massimo
- in LapJoint aggiunta gestione tunnel.
This commit is contained in:
Dario Sassi
2020-11-17 11:12:20 +00:00
parent e310406d43
commit 5646af535b
2 changed files with 45 additions and 11 deletions
+29 -7
View File
@@ -1,4 +1,4 @@
-- WProcessLapJoint.lua by Egaltech s.r.l. 2020/09/01
-- WProcessLapJoint.lua by Egaltech s.r.l. 2020/11/17
-- Gestione calcolo mezzo-legno per Pareti
-- Tabella per definizione modulo
@@ -7,6 +7,7 @@ local WPL = {}
-- Include
require( 'EgtBase')
local WL = require( 'WallLib')
local FreeContour = require( 'WProcessFreeContour')
EgtOutLog( ' WProcessLapJoint started', 1)
@@ -46,12 +47,29 @@ function WPL.Classify( Proc, b3Raw)
-- se più di 2 facce
else
local nFacInd, dElev, nFacInd2, dElev2 = WL.GetFaceWithMostAdj( Proc.Id, Proc.PartId)
if nFacInd < 0 then return false end
-- dati della faccia
local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, nFacInd, GDB_ID.ROOT)
local _, dH, dV = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFacInd, GDB_ID.ROOT)
-- verifico se è lavorabile da sopra o di fianco se con sega a catena
return ( vtN:getZ() >= WD.NZ_MINA or ( dV < 19 and Proc.Fct > 4 and vtN:getZ() > - 0.01))
-- se trovata faccia di fondo
if nFacInd >= 0 then
-- dati della faccia
local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, nFacInd, GDB_ID.ROOT)
local _, dH, dV = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFacInd, GDB_ID.ROOT)
-- verifico se è lavorabile da sopra o di fianco se con sega a catena
return ( vtN:getZ() >= WD.NZ_MINA or ( dV < 19 and Proc.Fct > 4 and vtN:getZ() > - 0.01))
-- se altrimenti tunnel o fessura
elseif nFacInd == -1 then
-- dati delle prime tre facce
local ptC = {}
local vtN = {}
ptC[1], vtN[1] = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT)
ptC[2], vtN[2] = EgtSurfTmFacetCenter( Proc.Id, 1, GDB_ID.ROOT)
ptC[3], vtN[3] = EgtSurfTmFacetCenter( Proc.Id, 2, GDB_ID.ROOT)
-- verifico se è lavorabile da sopra
local vtAxN = vtN[1] ^ vtN[2]
if vtAxN:isSmall() then vtAxN = vtN[1] ^ vtN[3] end
return abs( vtAxN:getZ()) >= WD.NZ_MINA
-- altrimenti non lavorabile
else
return false
end
end
end
@@ -355,6 +373,10 @@ end
local function MakeMoreFaces( Proc, nRawId, b3Raw)
-- cerco la faccia con il maggior numero di adiacenze
local nFacInd, dElev, nFacInd2 = WL.GetFaceWithMostAdj( Proc.Id, Proc.PartId)
-- se tunnel, applico lavorazione del contorno libero
if nFacInd == - 1 then
return FreeContour.Make( Proc, nRawId, b3Raw)
end
local vtN = EgtSurfTmFacetNormVersor( Proc.Id, nFacInd, GDB_ID.ROOT)
local _, dH, dV = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFacInd, GDB_ID.ROOT)
-- se necessaria sega a catena