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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user