Compare commits
23 Commits
Ticket#3017
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| a083405552 | |||
| 287a5b118f | |||
| a6a61a8980 | |||
| e82f03f191 | |||
| efdbe5c001 | |||
| e3057a1e53 | |||
| cb1aa22e9b | |||
| a275719560 | |||
| 8e491efb5d | |||
| e482c60775 | |||
| 2b9c8539de | |||
| e557d57dae | |||
| d377a33420 | |||
| f5a5350e70 | |||
| 0d7e9e09b3 | |||
| 198031a3c1 | |||
| ce2fcf4a42 | |||
| 2f312c5cb8 | |||
| c9fae12574 | |||
| a137794c75 | |||
| dac5b40d3b | |||
| 2c3b6030c2 | |||
| d255d8aaa9 |
@@ -277,6 +277,15 @@ if bToProcess then
|
|||||||
else
|
else
|
||||||
vBeam[i].Box = b3Solid
|
vBeam[i].Box = b3Solid
|
||||||
end
|
end
|
||||||
|
if BD.MAX_LENGTH and BD.MAX_LENGTH > 10 and b3Solid:getDimX() > BD.MAX_LENGTH then
|
||||||
|
local sOut = 'Piece-Length (' .. EgtNumToString( b3Solid:getDimX(), 2) .. ') ' ..
|
||||||
|
'out of machine limits (' .. EgtNumToString( BD.MAX_LENGTH, 2) .. ') '
|
||||||
|
BEAM.ERR = 17
|
||||||
|
BEAM.MSG = sOut
|
||||||
|
WriteErrToLogFile( BEAM.ERR, BEAM.MSG)
|
||||||
|
PostErrView( BEAM.ERR, BEAM.MSG)
|
||||||
|
return
|
||||||
|
end
|
||||||
end
|
end
|
||||||
-- Assegno lunghezza della barra
|
-- Assegno lunghezza della barra
|
||||||
dBarLen = vBeam[1].Box:getDimX() + 10
|
dBarLen = vBeam[1].Box:getDimX() + 10
|
||||||
@@ -330,6 +339,15 @@ if bToProcess then
|
|||||||
else
|
else
|
||||||
vBeam[i].Box = b3Solid
|
vBeam[i].Box = b3Solid
|
||||||
end
|
end
|
||||||
|
if BD.MAX_LENGTH and BD.MAX_LENGTH > 10 and b3Solid:getDimX() > BD.MAX_LENGTH then
|
||||||
|
local sOut = 'Piece-Length (' .. EgtNumToString( b3Solid:getDimX(), 2) .. ') ' ..
|
||||||
|
'out of machine limits (' .. EgtNumToString( BD.MAX_LENGTH, 2) .. ') '
|
||||||
|
BEAM.ERR = 17
|
||||||
|
BEAM.MSG = sOut
|
||||||
|
WriteErrToLogFile( BEAM.ERR, BEAM.MSG)
|
||||||
|
PostErrView( BEAM.ERR, BEAM.MSG)
|
||||||
|
return
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1641,7 +1641,8 @@ local function SetCutsOnFrontMortises( vProc)
|
|||||||
-- verifico se i piani coincidono
|
-- verifico se i piani coincidono
|
||||||
local bSamePlane = ( ptC1 and vtN1 and ptC2 and vtN2 and AreSameVectorApprox( vtN1, vtN2) and ( ptC2 - ptC1) * vtN1 < 1.0)
|
local bSamePlane = ( ptC1 and vtN1 and ptC2 and vtN2 and AreSameVectorApprox( vtN1, vtN2) and ( ptC2 - ptC1) * vtN1 < 1.0)
|
||||||
if bSamePlane then
|
if bSamePlane then
|
||||||
vProc[i].CutFront = vProc[j].Id
|
--vProc[i].CutFront = vProc[j].Id
|
||||||
|
vProc[j].bSkipCut = true
|
||||||
end
|
end
|
||||||
-- log
|
-- log
|
||||||
local sMsg = string.format( 'Cut %d meet Mortise %d', vProc[i].Id, vProc[j].Id) .. EgtIf( bSamePlane, ' with same plane', '')
|
local sMsg = string.format( 'Cut %d meet Mortise %d', vProc[i].Id, vProc[j].Id) .. EgtIf( bSamePlane, ' with same plane', '')
|
||||||
@@ -1658,7 +1659,8 @@ local function SetCutsOnFrontMortises( vProc)
|
|||||||
-- verifico se i piani coincidono
|
-- verifico se i piani coincidono
|
||||||
local bSamePlane = ( ptC1 and vtN1 and ptC2 and vtN2 and AreSameVectorApprox( vtN1, vtN2) and ( ptC2 - ptC1) * vtN1 < 1.0)
|
local bSamePlane = ( ptC1 and vtN1 and ptC2 and vtN2 and AreSameVectorApprox( vtN1, vtN2) and ( ptC2 - ptC1) * vtN1 < 1.0)
|
||||||
if bSamePlane then
|
if bSamePlane then
|
||||||
vProc[i].CutFront = vProc[j].Id
|
--vProc[i].CutFront = vProc[j].Id
|
||||||
|
vProc[j].bSkipCut = true
|
||||||
end
|
end
|
||||||
-- log
|
-- log
|
||||||
local sMsg = string.format( 'Cut %d meet DtMortise %d', vProc[i].Id, vProc[j].Id) .. EgtIf( bSamePlane, ' with same plane', '')
|
local sMsg = string.format( 'Cut %d meet DtMortise %d', vProc[i].Id, vProc[j].Id) .. EgtIf( bSamePlane, ' with same plane', '')
|
||||||
|
|||||||
@@ -457,7 +457,7 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw
|
|||||||
-- se distanza al punto è maggiore del raggio lama, significa che non ho già lavorato, quindi calcolo entrata opportunamente
|
-- se distanza al punto è maggiore del raggio lama, significa che non ho già lavorato, quindi calcolo entrata opportunamente
|
||||||
if dDistPointToCenter > 0.5 * dSawDiam then
|
if dDistPointToCenter > 0.5 * dSawDiam then
|
||||||
dLiTang = -dAllStart * dCosAlpha
|
dLiTang = -dAllStart * dCosAlpha
|
||||||
dLiPerp = dDist1 * dSinAlpha
|
dLiPerp = dDist1 * dSinAlpha
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- se ho accorciato uscita, setto componente tangente e perpendicolare sul percorso di uscita
|
-- se ho accorciato uscita, setto componente tangente e perpendicolare sul percorso di uscita
|
||||||
|
|||||||
+48
-1
@@ -479,12 +479,16 @@ local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, b
|
|||||||
-- determino il modo di tagliare
|
-- determino il modo di tagliare
|
||||||
local vtOrthoO
|
local vtOrthoO
|
||||||
local bNoPerpCuts = false
|
local bNoPerpCuts = false
|
||||||
|
local vtO
|
||||||
|
-- Se tagli ortogonali (indice dispari)
|
||||||
if i % 2 == 1 then
|
if i % 2 == 1 then
|
||||||
vtOrthoO = Vector3d( vtN)
|
vtOrthoO = Vector3d( vtN)
|
||||||
|
-- Se tagli perpendicolari (indice pari)
|
||||||
else
|
else
|
||||||
local vtO
|
-- Se elemento precedente contiene tagli ortogonali
|
||||||
if #vCuts[i-1] > 0 then
|
if #vCuts[i-1] > 0 then
|
||||||
vtO = EgtSurfTmFacetNormVersor( vCuts[i-1][1], 0, GDB_ID.ROOT)
|
vtO = EgtSurfTmFacetNormVersor( vCuts[i-1][1], 0, GDB_ID.ROOT)
|
||||||
|
-- Se elemento successivo contiene tagli ortogonali
|
||||||
elseif vCuts[i+1] and #vCuts[i+1] > 0 then
|
elseif vCuts[i+1] and #vCuts[i+1] > 0 then
|
||||||
-- lunghezza faccia nell'eventuale direzione ortogonale
|
-- lunghezza faccia nell'eventuale direzione ortogonale
|
||||||
local asseX = EgtSurfTmFacetNormVersor( vCuts[i+1][1], 0, GDB_ID.ROOT)
|
local asseX = EgtSurfTmFacetNormVersor( vCuts[i+1][1], 0, GDB_ID.ROOT)
|
||||||
@@ -552,8 +556,51 @@ local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, b
|
|||||||
end
|
end
|
||||||
local bOk2, sErr2 = Fbs.MakeOne( nSurfToCut, 0, sCutting, dSawDiam, nFaceUseCut2, nil, dCutExtra, BD.CUT_SIC, 0, 0, 0, '', b3Raw)
|
local bOk2, sErr2 = Fbs.MakeOne( nSurfToCut, 0, sCutting, dSawDiam, nFaceUseCut2, nil, dCutExtra, BD.CUT_SIC, 0, 0, 0, '', b3Raw)
|
||||||
if not bOk2 then return false, sErr2 end
|
if not bOk2 then return false, sErr2 end
|
||||||
|
|
||||||
-- caso standard
|
-- caso standard
|
||||||
else
|
else
|
||||||
|
-- se necessario aggiungo tagli obliqui per cubettare pezzi lunghi che potrebbero cadere sul motore
|
||||||
|
if ( i % 2) == 0 and Proc.Fct == 1 and AreSameOrOppositeVectorApprox( vtO, Z_AX()) then
|
||||||
|
local vtOrthoVert = vtN ^ vtO
|
||||||
|
-- inverte direzione superfici per corretta direzione SCC
|
||||||
|
if ( vtN:getY() > 0 and vtOrthoVert:getY() > 0) or ( vtN:getY() < 0 and vtOrthoVert:getY() < 0) then
|
||||||
|
vtOrthoVert = -vtOrthoVert
|
||||||
|
end
|
||||||
|
local Frame = Frame3d( ptC, vtN, vtO)
|
||||||
|
local b3Fac = EgtGetBBoxRef( vCuts[i][1], GDB_BB.STANDARD, Frame)
|
||||||
|
-- se cubetto più grande di MAX_DIM_DICE
|
||||||
|
if abs( b3Fac:getDimY() - BD.MAX_DIM_DICE) > 10 * GEO.EPS_SMALL then
|
||||||
|
local nVerticalCuts = ceil( b3Fac:getDimY() / ( BD.MAX_LEN_DICE)) - 1
|
||||||
|
local dVerticalSliceDist = b3Fac:getDimY() / ( nVerticalCuts + 1)
|
||||||
|
-- selezione utensile
|
||||||
|
local dSawDiam = 400
|
||||||
|
if EgtMdbSetCurrMachining( sCutting) then
|
||||||
|
local sTuuid = EgtMdbGetCurrMachiningParam( MCH_MP.TUUID)
|
||||||
|
if EgtTdbSetCurrTool( EgtTdbGetToolFromUUID( sTuuid) or '') then
|
||||||
|
dSawDiam = EgtTdbGetCurrToolParam( MCH_TP.DIAM) or dSawDiam
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- crea faccia per tagli verticali e le taglia a dimensione corretta
|
||||||
|
for k = 1, nVerticalCuts do
|
||||||
|
local nFaceUse = BL.GetNearestOrthoOpposite( vtN)
|
||||||
|
local dVerticalCutOffset = dVerticalSliceDist * k
|
||||||
|
local sLeadInOutType = 'Perpendicular'
|
||||||
|
local nMergedParallelSurfId = EgtSurfTmBySewing( nAddGrpId, vCuts[i], false)
|
||||||
|
local ptVertCut = EgtSurfTmFacetCenter( nMergedParallelSurfId, 0, GDB_ID.ROOT)
|
||||||
|
ptVertCut = ptVertCut + ( -b3Fac:getDimY()/2 + dVerticalCutOffset) * vtOrthoVert
|
||||||
|
local nSurfId = EgtSurfTmPlaneInBBox( nAddGrpId, ptVertCut, vtOrthoVert, b3Raw, GDB_RT.GLOB)
|
||||||
|
-- se non è il primo taglio parallelo taglia anche le superfici con la faccia parallela precedente
|
||||||
|
if i ~= 2 then
|
||||||
|
local nMergedPreviousParallelSurfId = EgtSurfTmBySewing( nAddGrpId, vCuts[i-2], false)
|
||||||
|
local ptOnPreviousParallelSurf = EgtSurfTmFacetCenter( nMergedPreviousParallelSurfId, 0, GDB_ID.ROOT)
|
||||||
|
EgtCutSurfTmPlane( nSurfId, ptOnPreviousParallelSurf, vtN, false, GDB_RT.GLOB)
|
||||||
|
end
|
||||||
|
EgtCutSurfTmPlane( nSurfId, ptVertCut, -vtN, false, GDB_RT.GLOB)
|
||||||
|
local bOk, sErr = Fbs.MakeOne( nSurfId, 0, sCutting, dSawDiam, nFaceUse, nil, -0.1, BD.CUT_SIC, 0, 0, 0, '', b3Raw, nil, nil, nil, sLeadInOutType, nil, 0, nil)
|
||||||
|
if not bOk then return bOk, sErr end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
-- lavoro la faccia
|
-- lavoro la faccia
|
||||||
for j = 1, #vCuts[i] do
|
for j = 1, #vCuts[i] do
|
||||||
-- se taglio dal basso
|
-- se taglio dal basso
|
||||||
|
|||||||
@@ -348,6 +348,11 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
if EgtGetInfo( Proc.Id, 'Q04', 'i') == 1 then
|
if EgtGetInfo( Proc.Id, 'Q04', 'i') == 1 then
|
||||||
return FreeContour.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
return FreeContour.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- verifico se macchina configurata per avere le nuove svuotature in doppio
|
||||||
|
local sIniMachFile = EgtGetCurrMachineDir()..'\\'..EgtGetCurrMachineName()..'.ini'
|
||||||
|
local dPockDoubleNTActive = ( EgtGetStringFromIni( 'Machinings', 'PocketingDoubleNT', '0', sIniMachFile) == '1')
|
||||||
|
|
||||||
-- default per costanti
|
-- default per costanti
|
||||||
BD.DRILL_VX_MAX_ANGLEDRILL = ( BD.DRILL_VX_MAX_ANGLEDRILL or 0.928)
|
BD.DRILL_VX_MAX_ANGLEDRILL = ( BD.DRILL_VX_MAX_ANGLEDRILL or 0.928)
|
||||||
-- ingombro del pezzo
|
-- ingombro del pezzo
|
||||||
@@ -594,8 +599,10 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
local dHoleToCutDistance = vDistance[1]
|
local dHoleToCutDistance = vDistance[1]
|
||||||
-- se il taglio accorcia realmente il foro
|
-- se il taglio accorcia realmente il foro
|
||||||
if ( dHoleToCutDistance > 10 * GEO.EPS_SMALL or Proc.AffectedFaces.Right) and dHoleToCutDistance < dLen then
|
if ( dHoleToCutDistance > 10 * GEO.EPS_SMALL or Proc.AffectedFaces.Right) and dHoleToCutDistance < dLen then
|
||||||
|
local dToolTipFromCenterDrill = ( ( dDiam / 2) - ( dToolDiam / 2))
|
||||||
|
local dExtraSicDistFromThToTiltedCut = sqrt( ( dToolTipFromCenterDrill / CosB)^2 - dToolTipFromCenterDrill^2) + sqrt( ( ( dDiamTh / 2) / CosB)^2 - (dDiamTh / 2)^2)
|
||||||
dMaxDepth = dMaxDepthOri
|
dMaxDepth = dMaxDepthOri
|
||||||
dMaxElev = dLen - dHoleToCutDistance
|
dMaxElev = dLen - ( dHoleToCutDistance - dExtraSicDistFromThToTiltedCut)
|
||||||
bTryDrill = true
|
bTryDrill = true
|
||||||
local dToolAddLength = dLen - dMaxElev
|
local dToolAddLength = dLen - dMaxElev
|
||||||
-- se l'utensile è comunque troppo corto lavoro il massimo possibile
|
-- se l'utensile è comunque troppo corto lavoro il massimo possibile
|
||||||
@@ -651,7 +658,7 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
local dLastStepDepth
|
local dLastStepDepth
|
||||||
if Proc.Double and Proc.Double > 0 then
|
if Proc.Double and Proc.Double > 0 then
|
||||||
if ( sType == 'Pocket_AT' or sType == 'Pocket') then
|
if ( sType == 'Pocket_AT' or sType == 'Pocket') then
|
||||||
if bOpen then
|
if not dPockDoubleNTActive and bOpen then
|
||||||
local dReduceDepth = MIRROR_POCKETS_MIN_DISTANCE / 2 + 10
|
local dReduceDepth = MIRROR_POCKETS_MIN_DISTANCE / 2 + 10
|
||||||
dLastStepDepth = dDepth + dReduceDepth
|
dLastStepDepth = dDepth + dReduceDepth
|
||||||
dDepth = dDepth - dReduceDepth
|
dDepth = dDepth - dReduceDepth
|
||||||
@@ -721,7 +728,7 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
return false, sWarn
|
return false, sWarn
|
||||||
else
|
else
|
||||||
-- se DrillPocket passante in doppio si fa lavorazione aggiuntiva dell'ultimo step
|
-- se DrillPocket passante in doppio si fa lavorazione aggiuntiva dell'ultimo step
|
||||||
if Proc.Double and Proc.Double > 0 and ( sType == 'Pocket_AT' or sType == 'Pocket') and bOpen then
|
if not dPockDoubleNTActive and Proc.Double and Proc.Double > 0 and ( sType == 'Pocket_AT' or sType == 'Pocket') and bOpen then
|
||||||
if dLastStepDepth > dMaxDepth + 10 * GEO.EPS_SMALL then
|
if dLastStepDepth > dMaxDepth + 10 * GEO.EPS_SMALL then
|
||||||
sMyWarn = 'Warning in drill pocket last step: depth (' .. EgtNumToString( dLastStepDepth, 1) .. ') bigger than max tool depth (' .. EgtNumToString( dMaxDepth, 1) .. ')'
|
sMyWarn = 'Warning in drill pocket last step: depth (' .. EgtNumToString( dLastStepDepth, 1) .. ') bigger than max tool depth (' .. EgtNumToString( dMaxDepth, 1) .. ')'
|
||||||
return false, sMyWarn
|
return false, sMyWarn
|
||||||
|
|||||||
@@ -236,7 +236,7 @@ function ProcessDtMortise.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
-- verifico se frontale
|
-- verifico se frontale
|
||||||
local bFront = ( Proc.Prc == 56)
|
local bFront = ( Proc.Prc == 56)
|
||||||
-- se mortasa di fronte, eseguo il taglio della faccia
|
-- se mortasa di fronte, eseguo il taglio della faccia
|
||||||
if bFront then
|
if bFront and not Proc.bSkipCut then
|
||||||
-- verifico esista la faccia di taglio
|
-- verifico esista la faccia di taglio
|
||||||
local ptCutC, vtCutN = EgtSurfTmFacetCenter( Proc.Id, 1, GDB_ID.ROOT)
|
local ptCutC, vtCutN = EgtSurfTmFacetCenter( Proc.Id, 1, GDB_ID.ROOT)
|
||||||
if ptCutC and vtCutN and AreSameVectorApprox( vtExtr, vtCutN) then
|
if ptCutC and vtCutN and AreSameVectorApprox( vtExtr, vtCutN) then
|
||||||
|
|||||||
@@ -4800,6 +4800,16 @@ local function ManageAntiSplintBySaw( Proc, b3Raw, b3Solid, bIsU, vtN, nFacInd,
|
|||||||
local dSawThick = 0
|
local dSawThick = 0
|
||||||
local dMaxDepth = 200
|
local dMaxDepth = 200
|
||||||
local bAdj, dAng, dExtraOffs, sWarn2, nIdMach
|
local bAdj, dAng, dExtraOffs, sWarn2, nIdMach
|
||||||
|
-- Se faccia sulla quale cerca di applicare l'antisplint è chiusa e limitata da altre facce non lo applica
|
||||||
|
local FacetEdge = BL.GetEdgesInfo( Proc, Proc.Face[nFacet+1])
|
||||||
|
for nEdge = 1, #FacetEdge do
|
||||||
|
if AreSameVectorApprox( FacetEdge[nEdge].ToolDirection, vtN) and ( not FacetEdge[nEdge].IsStartOpen or not FacetEdge[nEdge].IsEndOpen) and not FacetEdge[nEdge].IsOpen then
|
||||||
|
sWarn2 = 'Warning : antisplint not applicable on closed face'
|
||||||
|
if not sWarn then sWarn = '' end
|
||||||
|
sWarn = EgtIf( #sWarn > 0, sWarn .. '\n' .. sWarn2, sWarn2)
|
||||||
|
return bMadeASbyBld, true, sWarn
|
||||||
|
end
|
||||||
|
end
|
||||||
bMadeASbyBld, sWarn2, nIdMach, dSawThick, dMaxDepth, bAdj, dAng, dExtraOffs = MakeAntiSplintBySaw( Proc, nFacet, vtN, b3Raw, nFacInd, bReduceDepth, bMillDown)
|
bMadeASbyBld, sWarn2, nIdMach, dSawThick, dMaxDepth, bAdj, dAng, dExtraOffs = MakeAntiSplintBySaw( Proc, nFacet, vtN, b3Raw, nFacInd, bReduceDepth, bMillDown)
|
||||||
if not bMadeASbyBld then return bMadeASbyBld, false, sWarn2 end
|
if not bMadeASbyBld then return bMadeASbyBld, false, sWarn2 end
|
||||||
if sWarn2 then
|
if sWarn2 then
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ local BD = require( 'BeamData')
|
|||||||
local ML = require( 'MachiningLib')
|
local ML = require( 'MachiningLib')
|
||||||
|
|
||||||
-- variabili assegnazione parametri Q
|
-- variabili assegnazione parametri Q
|
||||||
local Q_DEPTH_CHAMFER = 'Q02' -- d
|
local Q_DEPTH_CHAMFER = 'Q01' -- d
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- Riconoscimento della feature
|
-- Riconoscimento della feature
|
||||||
@@ -467,7 +467,7 @@ function ProcessMortise.Make( Proc, nPhase, nRawId, nPartId, dCurrOvmH)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- se mortasa di fronte, eseguo il taglio della faccia
|
-- se mortasa di fronte, eseguo il taglio della faccia
|
||||||
if bFront then
|
if bFront and not Proc.bSkipCut then
|
||||||
-- verifico esista la faccia di taglio
|
-- verifico esista la faccia di taglio
|
||||||
local ptCutC, vtCutN = EgtSurfTmFacetCenter( Proc.Id, 1, GDB_ID.ROOT)
|
local ptCutC, vtCutN = EgtSurfTmFacetCenter( Proc.Id, 1, GDB_ID.ROOT)
|
||||||
if ptCutC and vtCutN and AreSameVectorApprox( vtExtr, vtCutN) then
|
if ptCutC and vtCutN and AreSameVectorApprox( vtExtr, vtCutN) then
|
||||||
|
|||||||
@@ -89,6 +89,14 @@ local function MyProcessInputData()
|
|||||||
else
|
else
|
||||||
vBeam[i].Box = b3Solid
|
vBeam[i].Box = b3Solid
|
||||||
end
|
end
|
||||||
|
if BD.MAX_LENGTH and BD.MAX_LENGTH > 10 and b3Solid:getDimX() > BD.MAX_LENGTH then
|
||||||
|
local sOut = 'Lunghezza (' .. EgtNumToString( b3Solid:getDimX(), 2) .. ') ' ..
|
||||||
|
'oltre i limiti della macchina (' .. EgtNumToString( BD.MAX_LENGTH, 2) .. ') '
|
||||||
|
EgtOutLog( sOut)
|
||||||
|
EgtOutBox( sOut, 'Lavora Travi', 'WARNING')
|
||||||
|
EgtDraw()
|
||||||
|
return false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
dRawW = vBeam[1].Box:getDimY()
|
dRawW = vBeam[1].Box:getDimY()
|
||||||
dRawH = vBeam[1].Box:getDimZ()
|
dRawH = vBeam[1].Box:getDimZ()
|
||||||
|
|||||||
@@ -1,5 +1,17 @@
|
|||||||
==== Beam Update Log ====
|
==== Beam Update Log ====
|
||||||
|
|
||||||
|
Versione 3.1f2 (18/06/2026)
|
||||||
|
- Added : Gestione svuotature in doppio tipo NT
|
||||||
|
|
||||||
|
Versione 3.1f1 (17/06/2026)
|
||||||
|
- Added : Tagli per dividere il cubetto in caso sia troppo lungo
|
||||||
|
- Modif : DepthChamfer su feature Mortase (050 e 051) cambio di Q. Prima era Q02, ora è Q01
|
||||||
|
|
||||||
|
Versione 3.1e2 (01/06/2026)
|
||||||
|
- Added : in Cut aggiunta Q18 per evitare di ruotare
|
||||||
|
- Modif : gli smussi di testa sono in senso orario
|
||||||
|
- Modif : in mortasa coda di rondine piccole correzioni
|
||||||
|
|
||||||
Versione 3.1e1 (05/05/2026)
|
Versione 3.1e1 (05/05/2026)
|
||||||
- Modif : in LapJoint migliorate slot con sega a catena
|
- Modif : in LapJoint migliorate slot con sega a catena
|
||||||
- Fixed : in DrillPocket in doppio eliminata lavorazione aggiuntiva in caso di utensile non abbastanza lungo
|
- Fixed : in DrillPocket in doppio eliminata lavorazione aggiuntiva in caso di utensile non abbastanza lungo
|
||||||
|
|||||||
+1
-1
@@ -2,5 +2,5 @@
|
|||||||
-- Gestione della versione di Beam
|
-- Gestione della versione di Beam
|
||||||
|
|
||||||
NAME = 'Beam'
|
NAME = 'Beam'
|
||||||
VERSION = '3.1e2'
|
VERSION = '3.1f2'
|
||||||
MIN_EXE = '3.1b1'
|
MIN_EXE = '3.1b1'
|
||||||
|
|||||||
Reference in New Issue
Block a user