DataWall :

- possibilità di disabilitare i fori orizzontali da variabile di walldata.lua di macchina
- ulteriore modifica per riconoscimento lato esterno (aggiunto uso vExtr a GetFacesExternalSide).
This commit is contained in:
DarioS
2022-03-16 12:24:13 +01:00
parent 1d9b741d8d
commit a126d8262c
3 changed files with 10 additions and 7 deletions
+7 -6
View File
@@ -1,4 +1,4 @@
-- ProcessFreeContour.lua by Egaltech s.r.l. 2022/03/14
-- ProcessFreeContour.lua by Egaltech s.r.l. 2022/03/16
-- Gestione calcolo profilo libero per Pareti
-- 2021/11/15 Penna e chiodature sono sempre riportate sulla faccia sopra anche se nel progetto sono sotto.
-- 2021/12/10 In taglio con lama aggiunta gestione SCC per testa Gearbox.
@@ -6,6 +6,7 @@
-- 2022/02/03 Corretto controllo massimo affondamento nella tavola.
-- 2022/02/21 Corretti allungamenti/accorciamenti tagli inclinati con fresa. Migliorata gestione tagli trasversali per macchine travi.
-- 2022/03/14 Corretto riconoscimento lato esterno per percorsi aperti.
-- 2022/03/16 Ulteriore modifica per riconoscimento lato esterno (aggiunto uso vExtr a GetFacesExternalSide).
-- Tabella per definizione modulo
local WPF = {}
@@ -306,19 +307,19 @@ end
---------------------------------------------------------------------
local function GetFacesExternalSide( Proc)
local function GetFacesExternalSide( Proc, vtExtr)
-- 3=sinistra, 4=destra
-- se meno di due facce considero esterno come dichiarato dal gruppo
local nNumFacet = EgtSurfTmFacetCount( Proc.Id)
if nNumFacet < 2 then return Proc.Grp end
-- se facce isoate, considero esterno come dichiarato dal gruppo
-- se facce isolate, considero esterno come dichiarato dal gruppo
local bAdj, ptV1, ptV2, dAng = EgtSurfTmFacetsContact( Proc.Id, 0, 1, GDB_ID.ROOT)
if not bAdj then return Proc.Grp end
-- calcolo dell'esterno rispetto all'avanzamento
local ptC1, vtN1 = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT)
local ptV = ( ptV1 + ptV2) / 2
local vtDir1 = ptV - ptC1
if ( vtN1 ^ vtDir1):getZ() > 0 then
if ( vtN1 ^ vtDir1) * vtExtr > 0 then
return 4
else
return 3
@@ -1869,7 +1870,7 @@ local function MakeByCut( Proc, nRawId, b3Raw)
local vtExtr= EgtCurveExtrusion( AuxId, GDB_RT.GLOB)
if vtExtr then
bOpposite = ( Proc.Grp == 4 and vtExtr:getZ() < 0) or ( Proc.Grp == 3 and vtExtr:getZ() > 0)
if GetFacesExternalSide( Proc) ~= Proc.Grp then
if GetFacesExternalSide( Proc, vtExtr) ~= Proc.Grp then
bOpposite = not bOpposite
end
end
@@ -2236,7 +2237,7 @@ local function MakeByPocket( Proc, nRawId, b3Raw)
vtExtr = EgtCurveExtrusion( AuxId, GDB_RT.GLOB)
if vtExtr then
bOpposite = ( Proc.Grp == 4 and vtExtr:getZ() < 0) or ( Proc.Grp == 3 and vtExtr:getZ() > 0)
if GetFacesExternalSide( Proc) ~= Proc.Grp then
if GetFacesExternalSide( Proc, vtExtr) ~= Proc.Grp then
bOpposite = not bOpposite
end
end