Compare commits
10 Commits
Ticket#2310
...
2.7c1
| Author | SHA1 | Date | |
|---|---|---|---|
| 761778b87c | |||
| 5fa40fad99 | |||
| 8e608bd623 | |||
| 60a1707d43 | |||
| 1848ed85d0 | |||
| 197673de11 | |||
| 19e1d4e760 | |||
| abb1509314 | |||
| b9e4d9b01f | |||
| fcb541175a |
+1
-1
@@ -202,7 +202,7 @@ if bBtl and string.find( sTitle, 'Bar_', 1, true) and EgtExistsFile( sNgeFile) t
|
||||
EgtEraseFile( sDiffFile)
|
||||
local _, nDiff = EgtTextFileCompare( BEAM.FILE, sOriFile, ';', sDiffFile)
|
||||
-- se BTL corrente coincide con originale, salto il riprocessamento
|
||||
if nDiff == 0 then
|
||||
if nDiff == 0 and sFlag ~= 'CHECK' and sFlag ~= 'CHECK+GENERATE' then
|
||||
bToProcess = false
|
||||
-- se cambiata configurazione macchina da ultima elaborazione, devo riprocessare
|
||||
if EgtCompareFilesLastWriteTime( sOriFile, sMachDir .. '\\Beam\\TS3Data.lua') == -1 or
|
||||
|
||||
@@ -1863,10 +1863,14 @@ local function VerifyDrillMirrored( Proc, vProc, b3Raw)
|
||||
( BD.DOWN_HEAD and AreOppositeVectorApprox( vtExtr, Y_AX())) then
|
||||
Proc.Double = 2
|
||||
Proc.MachDepthDouble = dMachiningDepth
|
||||
Proc.MirrorCutId = ProcToDisable.CutId
|
||||
Proc.MirrorTaskId = ProcToDisable.TaskId
|
||||
DisableOtherDrilling( ProcToDisable, vProc)
|
||||
elseif BD.DOWN_HEAD and AreSameVectorApprox( vtExtr, Z_AX()) then
|
||||
Proc.Double = 3
|
||||
Proc.MachDepthDouble = dMachiningDepth
|
||||
Proc.MirrorCutId = ProcToDisable.CutId
|
||||
Proc.MirrorTaskId = ProcToDisable.TaskId
|
||||
DisableOtherDrilling( ProcToDisable, vProc)
|
||||
end
|
||||
end
|
||||
@@ -2173,8 +2177,14 @@ function BeamExec.ProcessFeatures()
|
||||
if not bOk then
|
||||
nTotErr = nTotErr + 1
|
||||
table.insert( Stats, {Err=1, Msg=sMsg, Rot=-2, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
if Proc.Double == 2 or Proc.Double == 3 then
|
||||
table.insert( Stats, {Err=1, Msg=sMsg, Rot=-2, CutId=Proc.MirrorCutId, TaskId=Proc.MirrorTaskId})
|
||||
end
|
||||
elseif sMsg and #sMsg > 0 then
|
||||
table.insert( Stats, {Err=-1, Msg=sMsg, Rot=-2, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
if Proc.Double == 2 or Proc.Double == 3 then
|
||||
table.insert( Stats, {Err=-1, Msg=sMsg, Rot=-2, CutId=Proc.MirrorCutId, TaskId=Proc.MirrorTaskId})
|
||||
end
|
||||
else
|
||||
table.insert( Stats, {Err=0, Msg='', Rot=-2, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
if Proc.Double == 2 or Proc.Double == 3 then
|
||||
@@ -2263,8 +2273,14 @@ function BeamExec.ProcessFeatures()
|
||||
if not bOk then
|
||||
nTotErr = nTotErr + 1
|
||||
table.insert( Stats, {Err=1, Msg=sMsg, Rot=-1, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
if Proc.Double == 2 or Proc.Double == 3 then
|
||||
table.insert( Stats, {Err=1, Msg=sMsg, Rot=-1, CutId=Proc.MirrorCutId, TaskId=Proc.MirrorTaskId})
|
||||
end
|
||||
elseif sMsg and #sMsg > 0 then
|
||||
table.insert( Stats, {Err=-1, Msg=sMsg, Rot=-1, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
if Proc.Double == 2 or Proc.Double == 3 then
|
||||
table.insert( Stats, {Err=-1, Msg=sMsg, Rot=-1, CutId=Proc.MirrorCutId, TaskId=Proc.MirrorTaskId})
|
||||
end
|
||||
else
|
||||
table.insert( Stats, {Err=0, Msg='', Rot=-1, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
if Proc.Double == 2 or Proc.Double == 3 then
|
||||
@@ -2341,8 +2357,14 @@ function BeamExec.ProcessFeatures()
|
||||
if not bOk then
|
||||
nTotErr = nTotErr + 1
|
||||
table.insert( Stats, {Err=1, Msg=sMsg, Rot=0, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
if Proc.Double == 2 or Proc.Double == 3 then
|
||||
table.insert( Stats, {Err=1, Msg=sMsg, Rot=0, CutId=Proc.MirrorCutId, TaskId=Proc.MirrorTaskId})
|
||||
end
|
||||
elseif sMsg and #sMsg > 0 then
|
||||
table.insert( Stats, {Err=-1, Msg=sMsg, Rot=0, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
if Proc.Double == 2 or Proc.Double == 3 then
|
||||
table.insert( Stats, {Err=-1, Msg=sMsg, Rot=0, CutId=Proc.MirrorCutId, TaskId=Proc.MirrorTaskId})
|
||||
end
|
||||
else
|
||||
table.insert( Stats, {Err=0, Msg='', Rot=0, CutId=Proc.CutId, TaskId=Proc.TaskId})
|
||||
if Proc.Double == 2 or Proc.Double == 3 then
|
||||
|
||||
@@ -92,7 +92,7 @@ function ProcessCut.Classify( Proc, b3Raw)
|
||||
-- calcolo l'ingombro orizzontale della faccia
|
||||
local _, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, 0)
|
||||
-- confronto questo ingombro con il doppio della massima dimensione del DiceCut (impossibile lavorare sotto da sopra se più di 2 tagli oppure se tipo PF, taglio inclinato in Y e non taglio singolo orizzontale)
|
||||
if DimH > 2 * BD.MAX_DIM_DICE or ( BD.C_SIMM and abs( vtN:getY()) > 0.1 and dMaxMat < DimH + BD.CUT_EXTRA) then
|
||||
if DimH > 2 * BD.MAX_DIM_DICE or ( BD.C_SIMM and ( abs( vtN:getY()) > 0.1 or bDownCut) and dMaxMat < DimH + BD.CUT_EXTRA) then
|
||||
return true, true
|
||||
end
|
||||
end
|
||||
|
||||
@@ -412,7 +412,8 @@ function ProcessHeadCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bNeedHCut
|
||||
( b3Raw:getDimZ() > EgtIf( BD.TURN, 2 * dMaxVertDepth, dMaxVertDepth + dMaxDepth2) - 2 * BD.CUT_EXTRA_MIN + 10 * GEO.EPS_SMALL)
|
||||
local bHorizCut = ( ( b3Raw:getDimY() > b3Raw:getDimZ() + 10 * GEO.EPS_SMALL or BD.TURN) and b3Raw:getDimZ() < dMaxVertDepth - BD.CUT_EXTRA)
|
||||
local bDoubleHorizCut = ( ( BD.DOWN_HEAD or BD.TURN) and not bHorizCut and b3Raw:getDimY() > 2 * dDimYRef - BD.CUT_EXTRA_MIN + 10 * GEO.EPS_SMALL)
|
||||
local bDoubleCut = ( not bHorizCut and not bDoubleHorizCut and b3Raw:getDimY() > dDimYRef - BD.CUT_EXTRA + 10 * GEO.EPS_SMALL)
|
||||
local bDoubleCut = ( not bHorizCut and not bDoubleHorizCut and b3Raw:getDimY() > dDimYRef - BD.CUT_EXTRA + 10 * GEO.EPS_SMALL) and
|
||||
( b3Raw:getDimY() < 2 * dDimYRef - BD.CUT_EXTRA_MIN + 10 * GEO.EPS_SMALL)
|
||||
-- verifico necessità di tagli aggiuntivi orizzontali o verticali
|
||||
local dMinOvmHeadForAddeddCuts = 10.123
|
||||
local bNeedVerticalAddedCuts = ( Proc.Face[1].WidthTrimmed > BD.MAX_LEN_DICE) and ( dOvmHead > dMinOvmHeadForAddeddCuts - 10 * GEO.EPS_SMALL)
|
||||
|
||||
@@ -802,6 +802,12 @@ function ProcessLapJoint.IsTailFeature( Proc, b3Raw)
|
||||
( b3Solid:getDimX() > BD.LEN_SHORT_PART and Proc.Box:getDimX() > min( BD.MAX_LEN_HTFEA, 0.8 * b3Solid:getDimX())) then
|
||||
return false
|
||||
end
|
||||
|
||||
-- se interessa la coda, e pezzo lungo, si sposta dopo separazione
|
||||
if b3Solid:getDimX() > BD.LEN_SHORT_PART and Proc.AffectedFaces.Left and Proc.Fct >= 2 then
|
||||
return true
|
||||
end
|
||||
|
||||
-- se una o due facce e interessa veramente la coda, allora di coda
|
||||
if Proc.Fct <= 2 then
|
||||
if Proc.Box:getMin():getX() < b3Solid:getMin():getX() + 1. then
|
||||
@@ -814,10 +820,6 @@ function ProcessLapJoint.IsTailFeature( Proc, b3Raw)
|
||||
if Proc.AffectedFaces.Left and ( EgtGetInfo( Proc.Id, Q_SAW_PLUS_CHAIN, 'i') or 0) > 0 then
|
||||
return true
|
||||
end
|
||||
-- se interessa la coda, e pezzo lungo, si sposta dopo separazione
|
||||
if b3Solid:getDimX() > BD.LEN_SHORT_PART and Proc.AffectedFaces.Left and Proc.Fct > 2 then
|
||||
return true
|
||||
end
|
||||
-- deve avere la normale principale diretta verso la coda (oppure tunnel)
|
||||
Topology.Classify( Proc, b3Raw)
|
||||
local nFacInd, dElev, nFacInd2, dElev2 = BL.GetFaceWithMostAdj( Proc, nPartId)
|
||||
|
||||
@@ -634,7 +634,8 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt
|
||||
( b3Raw:getDimZ() > EgtIf( BD.TURN, 2 * dMaxVertDepth, dMaxVertDepth + dSawMaxDepth2) - 2 * BD.CUT_EXTRA_MIN + 10 * GEO.EPS_SMALL)
|
||||
local bHorizCut = ( ( b3Raw:getDimY() > b3Raw:getDimZ() + 10 * GEO.EPS_SMALL or BD.TURN) and ( b3Raw:getDimZ() < dMaxVertDepth - BD.CUT_EXTRA))
|
||||
local bDoubleHorizCut = ( ( BD.DOWN_HEAD or BD.TURN) and not bHorizCut and b3Raw:getDimY() > 2 * dDimYRef - BD.CUT_EXTRA_MIN + 10 * GEO.EPS_SMALL)
|
||||
local bDoubleCut = ( not bHorizCut and not bDoubleHorizCut and b3Raw:getDimY() > dDimYRef - BD.CUT_EXTRA + 10 * GEO.EPS_SMALL)
|
||||
local bDoubleCut = ( not bHorizCut and not bDoubleHorizCut and b3Raw:getDimY() > dDimYRef - BD.CUT_EXTRA + 10 * GEO.EPS_SMALL) and
|
||||
( b3Raw:getDimY() < 2 * dDimYRef - BD.CUT_EXTRA_MIN + 10 * GEO.EPS_SMALL)
|
||||
-- dati geometrici del taglio
|
||||
local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT)
|
||||
-- separazione solo se esiste grezzo successivo con pezzi o scaricabile
|
||||
|
||||
+10
-2
@@ -1,8 +1,16 @@
|
||||
==== Beam Update Log ====
|
||||
|
||||
Versione 2.7xx ()
|
||||
Versione 2.7c1 (17/03/2025)
|
||||
- Modif : in HeadCut e Split, per decidere se fare doppio taglio verticale, si controlla anche il massimo possibile e non solo il minimo
|
||||
- Modif : in LapJoint migliorato controllo per decidere se feature di coda
|
||||
- Modif : nei tagli, se taglio rivolto verso il basso e non possibile tagliare di fianco, si fa in fase ribaltata
|
||||
- Fixed : in BacthProcess (Ts7) corretta restituzione stato feature erroneamente segnalata verde
|
||||
- Fixed : corretta restituzione stato feature lavorata in doppio
|
||||
|
||||
Versione 2.7b3 (03/03/2025)
|
||||
- Modif : in forature passanti orizzontali fatte da un solo lato, si inverte il lato di lavoro in base all'utensile scelto
|
||||
- Modif : in LapJoint in lavorazione tipo BH permessa U passante non parallela agli assi principali
|
||||
- Modif : in LapJoint in lavorazione tipo BH permessa U passante non parallela agli assi principali; attacchi migliorati
|
||||
- Modif : in LapJoint le feature di coda con pezzo lungo vengono spostate sempre dopo separazione
|
||||
- Fixed : in macchine tipo Turn piccoli miglioramenti ai tagli di lama
|
||||
|
||||
Versione 2.7b2 (05/02/2025)
|
||||
|
||||
+1
-1
@@ -2,5 +2,5 @@
|
||||
-- Gestione della versione di Beam
|
||||
|
||||
NAME = 'Beam'
|
||||
VERSION = '2.7b2'
|
||||
VERSION = '2.7c1'
|
||||
MIN_EXE = '2.6e5'
|
||||
|
||||
Reference in New Issue
Block a user