DataWall :
- corretto controllo foro sottosquadra - corretta gestione contorni liberi per lato di lavoro 3 e 4 - corretto LapJoint chiuso ma senza fondo lavorato come contorno libero.
This commit is contained in:
@@ -84,7 +84,7 @@ function WPD.Make( Proc, nRawId, b3Raw)
|
||||
local vtExtr = EgtCurveExtrusion( AuxId, GDB_RT.GLOB)
|
||||
local bOpen = ( Proc.Fcs ~= 0 and Proc.Fce ~= 0)
|
||||
-- verifico che il foro non sia fattibile solo da sotto
|
||||
local bToInvert = ( vtExtr:getZ() < 0)
|
||||
local bToInvert = ( vtExtr:getZ() < -0.1)
|
||||
if bToInvert and ( not bOpen or Proc.Flg ~= 1) then
|
||||
local sErr = 'Error : drilling from bottom impossible'
|
||||
EgtOutLog( sErr)
|
||||
|
||||
@@ -381,7 +381,9 @@ local function MakeByCut( Proc, nRawId, b3Raw)
|
||||
if AuxId then
|
||||
AuxId = AuxId + Proc.Id
|
||||
local vtExtr= EgtCurveExtrusion( AuxId, GDB_RT.GLOB)
|
||||
bOpposite = ( vtExtr and vtExtr:getZ() < 0)
|
||||
if vtExtr then
|
||||
bOpposite = ( Proc.Grp == 4 and vtExtr:getZ() < 0) or ( Proc.Grp == 3 and vtExtr:getZ() > 0)
|
||||
end
|
||||
end
|
||||
-- recupero la lavorazione di taglio con lama e i suoi parametri
|
||||
local sCutting, dSawDiam, dSawThick, dSawMaxDepth = WM.FindCutting( 'Standard')
|
||||
|
||||
@@ -375,6 +375,29 @@ local function MakeMoreFaces( Proc, nRawId, b3Raw)
|
||||
local nFacInd, dElev, nFacInd2 = WL.GetFaceWithMostAdj( Proc.Id, Proc.PartId)
|
||||
-- se tunnel, applico lavorazione del contorno libero
|
||||
if nFacInd == - 1 then
|
||||
-- riordino le facce come contorno libero da lavorare a destra
|
||||
for i = 1, Proc.Fct - 2 do
|
||||
local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, i - 1, GDB_ID.ROOT)
|
||||
for j = i + 1, Proc.Fct do
|
||||
local bAdj, ptAdj, _, _ = EgtSurfTmFacetsContact( Proc.Id, i - 1, j - 1, GDB_ID.ROOT)
|
||||
if bAdj and ( vtN ^ ( ptAdj - ptC)) * Z_AX() > 0 then
|
||||
if i ~= j - 1 then
|
||||
EgtSurfTmSwapFacets( Proc.Id, i, j - 1)
|
||||
end
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
-- applico riordinamento
|
||||
--local vOrd = { 0, 2, 1, 3}
|
||||
--for i = 1, #vOrd do
|
||||
-- if vOrd[i] ~= i - 1 then
|
||||
-- EgtSurfTmSwapFacets( Proc.Id, vOrd[i], i - 1)
|
||||
-- vOrd[vOrd[i]+1] = vOrd[i]
|
||||
-- vOrd[i] = i - 1
|
||||
-- end
|
||||
--end
|
||||
-- eseguo
|
||||
return FreeContour.Make( Proc, nRawId, b3Raw)
|
||||
end
|
||||
local vtN = EgtSurfTmFacetNormVersor( Proc.Id, nFacInd, GDB_ID.ROOT)
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
-- Intestazioni
|
||||
require( 'EgtBase')
|
||||
_ENV = EgtProtectGlobal()
|
||||
EgtEnableDebug( false)
|
||||
EgtEnableDebug( true)
|
||||
|
||||
-- Imposto direttorio libreria specializzata per Travi
|
||||
local sBaseDir = EgtGetSourceDir()
|
||||
|
||||
Reference in New Issue
Block a user