DataWall :
- correzioni per verifica setup prima di simulazione - aggiunto massimo affondamento di lama e fresa nella tavola - in Gorge larghezza come gambo più sicurezza e impostata rotazione asse C - nell'ordinamento si fanno le gole orizzontali (SideMill) prima di quelle inclinate - migliorati controlli forature in nesting.
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
-- ProcessFreeContour.lua by Egaltech s.r.l. 2022/01/13
|
||||
-- ProcessFreeContour.lua by Egaltech s.r.l. 2022/02/03
|
||||
-- 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.
|
||||
-- 2022/01/13 Aggiunta gestione massimo affondamento in Z anche per pulizia spigoli con fresa 60deg (WD.MAX_CLEAN_CRN60).
|
||||
-- 2022/02/03 Corretto controllo massimo affondamento nella tavola.
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
local WPF = {}
|
||||
@@ -16,6 +17,8 @@ EgtOutLog( ' WProcessFreeContour started', 1)
|
||||
-- Dati
|
||||
local WD = require( 'WallData')
|
||||
local WM = require( 'WMachiningLib')
|
||||
if WD.CHECK_MIN_Z_SAW == nil then WD.CHECK_MIN_Z_SAW = true end
|
||||
if not WD.MIN_Z_SAW then WD.MIN_Z_SAW = 0 end
|
||||
if not WD.MAX_CLEAN_CRN60 then WD.MAX_CLEAN_CRN60 = 150 end
|
||||
local WHISK_OFFS = 0.1
|
||||
local WHISK_SAFE = 5
|
||||
@@ -1193,8 +1196,12 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd
|
||||
local dDepth = vFace[i].Width + WD.CUT_EXTRA
|
||||
dThick = vFace[i].Width
|
||||
local vtNz = vFace[i].Norm:getZ()
|
||||
if vtNz < 0 then
|
||||
dDepth = dDepth - dMillDiam * abs( vtNz) / sqrt( 1 - vtNz * vtNz)
|
||||
if WD.CHECK_MIN_Z_SAW then
|
||||
if vtNz >= 0 then
|
||||
dDepth = min( dDepth, vFace[i].Width - WD.MIN_Z_SAW)
|
||||
else
|
||||
dDepth = min( dDepth, dDepth - WD.MIN_Z_SAW + dMillDiam * vtNz / sqrt( 1 - vtNz * vtNz))
|
||||
end
|
||||
end
|
||||
-- se affondamento superiore ai limiti della fresa
|
||||
if dDepth > dMaxDepth then
|
||||
@@ -1251,8 +1258,12 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd
|
||||
local dDepth = vFace[i].Width + WD.CUT_EXTRA
|
||||
dThick = vFace[i].Width
|
||||
local vtNz = vFace[i].Norm:getZ()
|
||||
if vtNz < 0 then
|
||||
dDepth = dDepth - dMillDiam * abs( vtNz) / sqrt( 1 - vtNz * vtNz)
|
||||
if WD.CHECK_MIN_Z_SAW then
|
||||
if vtNz >= 0 then
|
||||
dDepth = min( dDepth, vFace[i].Width - WD.MIN_Z_SAW)
|
||||
else
|
||||
dDepth = min( dDepth, dDepth - WD.MIN_Z_SAW + dMillDiam * vtNz / sqrt( 1 - vtNz * vtNz))
|
||||
end
|
||||
end
|
||||
-- se affondamento superiore ai limiti della fresa
|
||||
if dDepth > dMaxDepth then
|
||||
@@ -1417,8 +1428,12 @@ local function AddMillings( sMilling, vFace, Proc, nRawId, b3Raw, nConeCut, nAdd
|
||||
local dDepth = vFace[i].Width + WD.CUT_EXTRA
|
||||
dThick = vFace[i].Width
|
||||
local vtNz = vFace[i].Norm:getZ()
|
||||
if vtNz < 0 then
|
||||
dDepth = dDepth - dMillDiam * abs( vtNz) / sqrt( 1 - vtNz * vtNz)
|
||||
if WD.CHECK_MIN_Z_SAW then
|
||||
if vtNz >= 0 then
|
||||
dDepth = min( dDepth, vFace[i].Width - WD.MIN_Z_SAW)
|
||||
else
|
||||
dDepth = min( dDepth, dDepth - WD.MIN_Z_SAW + dMillDiam * vtNz / sqrt( 1 - vtNz * vtNz))
|
||||
end
|
||||
end
|
||||
-- se affondamento superiore ai limiti della fresa
|
||||
if dDepth > dMaxDepth then
|
||||
@@ -1500,7 +1515,7 @@ local function AddSawings( sSawing, vFace, Proc, nRawId, b3Raw)
|
||||
end
|
||||
EgtSetInfo( nMchId, 'Part', Proc.PartId)
|
||||
-- calcolo l'affondamento
|
||||
local dDepth = vFace[i].Width + WD.CUT_EXTRA
|
||||
local dDepth = vFace[i].Width + min( WD.CUT_EXTRA, -WD.MIN_Z_SAW)
|
||||
dThick = vFace[i].Width
|
||||
-- se affondamento superiore ai limiti della sega a catena
|
||||
if dDepth > dMaxDepth then
|
||||
@@ -1549,7 +1564,7 @@ local function AddSawings( sSawing, vFace, Proc, nRawId, b3Raw)
|
||||
end
|
||||
EgtSetInfo( nMchId, 'Part', Proc.PartId)
|
||||
-- calcolo l'affondamento
|
||||
local dDepth = vFace[i].Width + WD.CUT_EXTRA
|
||||
local dDepth = vFace[i].Width + min( WD.CUT_EXTRA, -WD.MIN_Z_SAW)
|
||||
dThick = vFace[i].Width
|
||||
-- se affondamento superiore ai limiti della sega a catena
|
||||
if dDepth > dMaxDepth then
|
||||
@@ -1621,11 +1636,15 @@ local function AddCuts( sCutting, vFace, Proc, nRawId, b3Raw, dSawThick)
|
||||
local bGearbox = EgtGetInfo( EgtGetHeadId( sHead) or GDB_ID.NULL, 'Gearbox', 'b')
|
||||
-- aggiungo geometria
|
||||
EgtSetMachiningGeometry( { { Proc.Id, vFace[i].Fac}})
|
||||
-- assegno affondamento
|
||||
-- calcolo l'affondamento
|
||||
local dDepth = vFace[i].Depth
|
||||
local vtNz = vFace[i].Norm:getZ()
|
||||
if ( WD.CHECK_MIN_Z_SAW == nil or WD.CHECK_MIN_Z_SAW) and vtNz < 0 then
|
||||
dDepth = dDepth - dSawThick * abs( vtNz)
|
||||
if WD.CHECK_MIN_Z_SAW then
|
||||
if vtNz >= 0 then
|
||||
dDepth = min( dDepth, -WD.MIN_Z_SAW)
|
||||
else
|
||||
dDepth = min( dDepth, -WD.MIN_Z_SAW + dSawThick * vtNz)
|
||||
end
|
||||
end
|
||||
EgtSetMachiningParam( MCH_MP.DEPTH, dDepth)
|
||||
-- verifico se va invertita la direzione di lavorazione perchè faccia verso l'alto (angolo maggiore di 0.01 deg)
|
||||
|
||||
Reference in New Issue
Block a user