diff --git a/BatchProcess.lua b/BatchProcess.lua index 4b8ec23..67f4482 100644 --- a/BatchProcess.lua +++ b/BatchProcess.lua @@ -1,4 +1,4 @@ --- BatchProcess.lua by Egaltech s.r.l. 2021/07/08 +-- BatchProcess.lua by Egaltech s.r.l. 2021/07/28 -- Gestione calcolo batch disposizione e lavorazioni per Pareti -- 2020/07/24 Nuvola di punti riferita allo Zero Tavola. -- 2020/10/28 Corretto spostamento pezzi per rotazioni (0 o 180) e inversioni( 0, 90, 180, o 270). @@ -7,6 +7,7 @@ -- 2021/03/06 La creazione del file ori si fa solo alla fine se non ci sono stati errori o se edit. -- 2021/03/08 Aggiunta gestione lavorazione su macchine per travi. -- 2021/04/09 Corretto spostamento pezzi per rotazioni e inversioni. +-- 2021/07/28 Aggiunta scelta direzione di vista per modifica e simulazione. -- Intestazioni require( 'EgtBase') @@ -199,7 +200,7 @@ if bToProcess then UpdateAuxData( sBtmFile) -- Recupero informazione se progetto o produzione - local bProj = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo'), 'PROJECT', 'i') == 1) + local bProj = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL, 'PROJECT', 'i') == 1) -- Dimensioni del pannello local dRawL = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL, 'PANELLEN', 'd') or 100) @@ -611,9 +612,11 @@ if WALL.FLAG == 5 then EgtSetColor( nClCrvId, 'RED') end --- Se modifica o simula, imposto la vista ISO 3d +-- Se modifica o simula, imposto la vista ISO 3d opportuna if WALL.FLAG == 1 or WALL.FLAG == 2 then - EgtSetView( SCE_VD.ISO_SW, false) + local vView = { SCE_VD.ISO_NW, SCE_VD.ISO_SW, SCE_VD.ISO_NE, SCE_VD.ISO_SE} + local nV = min( max( WD.SIMUL_VIEW_DIR or 2, 1), 4) + EgtSetView( vView[nV], false) -- se cloud, imposto la vista TOP elseif WALL.FLAG == 5 then EgtSetView( SCE_VD.TOP, false) diff --git a/BatchProcessNew.lua b/BatchProcessNew.lua index 7f54185..29cf2ca 100644 --- a/BatchProcessNew.lua +++ b/BatchProcessNew.lua @@ -596,9 +596,11 @@ if WALL.FLAG == 5 then EgtSetColor( nClCrvId, 'RED') end --- Se modifica o simula, imposto la vista ISO 3d +-- Se modifica o simula, imposto la vista ISO 3d opportuna if WALL.FLAG == 1 or WALL.FLAG == 2 then - EgtSetView( SCE_VD.ISO_SW, false) + local vView = { SCE_VD.ISO_NW, SCE_VD.ISO_SW, SCE_VD.ISO_NE, SCE_VD.ISO_SE} + local nV = min( max( WD.SIMUL_VIEW_DIR or 2, 1), 4) + EgtSetView( vView[nV], false) -- se cloud, imposto la vista TOP elseif WALL.FLAG == 5 then EgtSetView( SCE_VD.TOP, false) diff --git a/LuaLibs/WProcessFreeContour.lua b/LuaLibs/WProcessFreeContour.lua index c80c33f..6a5c992 100644 --- a/LuaLibs/WProcessFreeContour.lua +++ b/LuaLibs/WProcessFreeContour.lua @@ -1,4 +1,4 @@ --- ProcessFreeContour.lua by Egaltech s.r.l. 2021/07/07 +-- ProcessFreeContour.lua by Egaltech s.r.l. 2021/07/28 -- Gestione calcolo profilo libero per Pareti -- Tabella per definizione modulo @@ -440,6 +440,7 @@ local function GetTunnelDimension( nId, nPartId, nAddGrpId) ptN2:toGlob(frFc) -- creo superficie intermedia local nSurfInt = EgtSurfTmPlaneInBBox( nAddGrpId, ptN2, vtOrtho, b3Solid, GDB_ID.ROOT) + if not nSurfInt then return end -- ritaglio la superficie con le facce della fessura for i = 1, nFacCnt do local ptN, vtN = EgtSurfTmFacetCenter( nId, i - 1, GDB_ID.ROOT) @@ -1079,7 +1080,7 @@ local function AddMillCorner( nTypeConeCut, vFace, Proc, nRawId, b3Raw, end -- cancello la copia della superfice if nNewProc then - EgtErase(nNewProc) + EgtErase( nNewProc) end return true end @@ -1546,7 +1547,7 @@ local function AddCuts( sCutting, vFace, Proc, nRawId, b3Raw, dSawThick) -- assegno affondamento local dDepth = vFace[i].Depth local vtNz = vFace[i].Norm:getZ() - if vtNz < 0 then + if ( WD.CHECK_MIN_Z_SAW == nil or WD.CHECK_MIN_Z_SAW) and vtNz < 0 then dDepth = dDepth - dSawThick * abs( vtNz) end EgtSetMachiningParam( MCH_MP.DEPTH, dDepth) diff --git a/LuaLibs/WallExec.lua b/LuaLibs/WallExec.lua index d610c1a..22d1e40 100644 --- a/LuaLibs/WallExec.lua +++ b/LuaLibs/WallExec.lua @@ -65,13 +65,17 @@ function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall, bMachGroupOk, bPartO -- Calcolo posizione estremo di riferimento della tavola rispetto a sua origine in BL local OrigOnTab local nCorner - if WD.ORIG_CORNER == 'TL' then + local nOrigCorner = WD.ORIG_CORNER + if WD.GetOrigCorner then + nOrigCorner = WD.GetOrigCorner( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL, 'REFPOS', 'i')) + end + if nOrigCorner == 'TL' then nCorner = MCH_CR.TL OrigOnTab = Point3d( 0, b3Tab:getDimY(), 0) - elseif WD.ORIG_CORNER == 'BL' then + elseif nOrigCorner == 'BL' then nCorner = MCH_CR.BL OrigOnTab = Point3d(0, 0, 0) - elseif WD.ORIG_CORNER == 'TR' then + elseif nOrigCorner == 'TR' then nCorner = MCH_CR.TR OrigOnTab = Point3d( b3Tab:getDimX(), b3Tab:getDimY(), 0) else -- 'BR' diff --git a/Process.lua b/Process.lua index 6179e76..2da76f1 100644 --- a/Process.lua +++ b/Process.lua @@ -213,9 +213,9 @@ local function MyProcessWalls() local dPanelWidth = EgtGetInfo( BtlInfoId, 'PANELWIDTH', 'd') or WD.STD_RAW_WIDTH -- Richiedo lunghezza del grezzo e sovramateriale di testa - local vsVal = EgtDialogBox( 'Lavora Pareti' .. ' (Ltot='.. EgtNumToString( dBoxL + 0.5, 0) .. ', Wtot=' .. EgtNumToString( dBoxW + 0.5, 0) .. ')', - {'Lunghezza grezzo', EgtNumToString( dPanelLen, 0)}, - {'Larghezza grezzo', EgtNumToString( dPanelWidth, 0)}) + local vsVal = EgtDialogBox( 'Lavora Pareti' .. ' (Ltot='.. EgtNumToString( dBoxL + 0.05, 1) .. ', Wtot=' .. EgtNumToString( dBoxW + 0.05, 1) .. ')', + {'Lunghezza grezzo', EgtNumToString( dPanelLen, 1)}, + {'Larghezza grezzo', EgtNumToString( dPanelWidth, 1)}) if not vsVal then EgtDraw() return