DataWall :
- prime modifiche per gestione pareti su macchina travi.
This commit is contained in:
+30
-7
@@ -199,9 +199,35 @@ if bToProcess then
|
||||
-- Aggiorno eventuali dati ausiliari
|
||||
UpdateAuxData( sBtmFile)
|
||||
|
||||
-- Recupero informazione se progetto o produzione
|
||||
local bProj = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo'), 'PROJECT', 'i') == 1)
|
||||
|
||||
-- Dimensioni del pannello
|
||||
local dRawL = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL, 'PANELLEN', 'd') or 8000)
|
||||
local dRawW = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL, 'PANELWIDTH', 'd') or 4000)
|
||||
local dRawL = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL, 'PANELLEN', 'd') or 100)
|
||||
local dRawW = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL, 'PANELWIDTH', 'd') or 50)
|
||||
local dExtraL = 0
|
||||
local dExtraW = 0
|
||||
if bProj then
|
||||
if WD.BEAM_MACHINE then
|
||||
if dRawL < WD.MIN_LENGTH then
|
||||
dExtraL = WD.MIN_LENGTH - dRawL
|
||||
dRawL = WD.MIN_LENGTH
|
||||
elseif dRawL < WD.MAX_LENGTH then
|
||||
dExtraL = min( WD.MAX_LENGTH - dRawL, 3000)
|
||||
dRawL = dRawL + dExtraL
|
||||
end
|
||||
if dRawW + 10 < WD.MIN_WIDTH then
|
||||
dExtraW = WD.MIN_WIDTH - dRawW
|
||||
dRawW = WD.MIN_WIDTH
|
||||
elseif dRawW < WD.MAX_WIDTH then
|
||||
dExtraW = min( WD.MAX_WIDTH - dRawW, 10)
|
||||
dRawW = dRawW + dExtraW
|
||||
end
|
||||
else
|
||||
dExtraW = 10
|
||||
dRawW = dRawW + dExtraW
|
||||
end
|
||||
end
|
||||
|
||||
-- Recupero l'elenco ordinato delle pareti
|
||||
local vWall = {}
|
||||
@@ -243,14 +269,11 @@ if bToProcess then
|
||||
-- Ne recupero la posizione
|
||||
for i = 1, #vWall do
|
||||
local PosX = EgtGetInfo( vWall[i].Id, 'POSX', 'd')
|
||||
vWall[i].PosX = PosX
|
||||
vWall[i].PosX = PosX + min( dExtraL, 1200)
|
||||
local PosZ = EgtGetInfo( vWall[i].Id, 'POSZ', 'd')
|
||||
vWall[i].PosZ = PosZ
|
||||
vWall[i].PosZ = PosZ + dExtraW / 2
|
||||
end
|
||||
|
||||
-- Recupero informazione se progetto o produzione
|
||||
local bProj = ( EgtGetInfo( EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo'), 'PROJECT', 'i') == 1)
|
||||
|
||||
-- Eseguo eventuali rotazioni e inversioni testa-coda
|
||||
for i = 1, #vWall do
|
||||
local b3Solid = vWall[i].Box
|
||||
|
||||
+23
-1
@@ -66,6 +66,7 @@ function WallExec.ProcessWalls( dRawL, dRawW, dRawH, vWall, bMachGroupOk, bPartO
|
||||
-- Creazione del grezzo e suo posizionamento in macchina
|
||||
local nRaw = EgtAddRawPart( Point3d(0,0,0), dRawL, dRawW, dRawH, WD.RAWCOL)
|
||||
EgtMoveToCornerRawPart( nRaw, OrigOnTab, nCorner)
|
||||
EgtSetInfo( nRaw, 'ORD', 1)
|
||||
-- Inserimento dei pezzi nel grezzo
|
||||
for i = 1, #vWall do
|
||||
-- assegno identificativo pezzo
|
||||
@@ -266,7 +267,10 @@ local function SortMach( nPhase, LastMch, nType, sStartName, bExistName, sInfo,
|
||||
ptE:getX(), ptE:getY(), ptE:getZ(), 0, 0)
|
||||
end
|
||||
EgtSpSetAngularParams( 1000, 40, 2000, 60)
|
||||
EgtSpSetOpenBound( true,SHP_OB.NEAR_PNT,-2000,0,0,90,90)
|
||||
EgtSpSetOpenBound( true, SHP_OB.NEAR_PNT, 50000, 0, 0, 0, 0)
|
||||
if WD.BEAM_MACHINE and nType == MCH_OY.SAWING then
|
||||
EgtSpSetOpenBound( false, SHP_OB.NEAR_PNT, -50000, 0, 0, 0, 0)
|
||||
end
|
||||
local vOrd = EgtSpCalculate( SHP_TY.OPEN)
|
||||
EgtSpTerminate()
|
||||
|
||||
@@ -357,6 +361,24 @@ function WallExec.ProcessFeatures()
|
||||
end
|
||||
-- riordino le lavorazioni
|
||||
SortMachinings()
|
||||
-- se macchina travi
|
||||
if WD.BEAM_MACHINE then
|
||||
-- dati su prima disposizione
|
||||
local nDispId = EgtGetPhaseDisposition( 1)
|
||||
EgtSetInfo( nDispId, 'TYPE', 'START')
|
||||
EgtSetInfo( nDispId, 'ORD', 1)
|
||||
-- aggiungo flag su ultima lavorazione
|
||||
local nLastMchId = EgtGetLastActiveOperation()
|
||||
EgtSetCurrMachining( nLastMchId)
|
||||
EgtSetMachiningParam( MCH_MP.USERNOTES, 'Cut;')
|
||||
-- aggiungo disposizione per lo scarico
|
||||
EgtAddPhase()
|
||||
local nRawId = EgtGetFirstRawPart()
|
||||
EgtKeepRawPart( nRawId, 1)
|
||||
local nDisp2Id = EgtGetPhaseDisposition( 2)
|
||||
EgtSetInfo( nDisp2Id, 'TYPE', 'END')
|
||||
EgtSetInfo( nDisp2Id, 'ORD', 1)
|
||||
end
|
||||
-- restituzione risultati
|
||||
return ( nTotErr == 0), Stats
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user