Compare commits

..

22 Commits

Author SHA1 Message Date
luca.mazzoleni ac58afc627 Merge branch 'develop' 2023-05-04 18:09:02 +02:00
luca.mazzoleni 1d68e47bdf update log e versione 2023-05-04 18:08:51 +02:00
luca.mazzoleni 1d802852bd piccola modifica a SCC per LongCut derivanti da Cut 2023-05-04 18:06:55 +02:00
luca.mazzoleni 01386ce711 update log 2023-05-04 12:05:27 +02:00
luca.mazzoleni 4c4ae7bb6f Merge branch 'master' into develop 2023-05-03 15:54:00 +02:00
luca.mazzoleni b66bd700f4 Merge branch 'develop' 2023-05-03 15:45:34 +02:00
luca.mazzoleni 1c93a079bd update version 2023-05-03 15:45:22 +02:00
luca.mazzoleni 000454139d Merge branch 'release/2.5e1' 2023-05-03 15:23:19 +02:00
luca.mazzoleni b460b2c7a4 Merge tag '2.5e1' into develop
Finish Release: 2.5e1
2023-05-03 15:23:19 +02:00
luca.mazzoleni 65c344bb30 Merge branch 'BugFix/LongCutSccFix' into develop 2023-05-03 15:17:05 +02:00
luca.mazzoleni 587f4c61e2 - in Longcut corretto SCC in caso di asse utensile allineato con Z
- tolleranza su sezione portata a 0.1 mm anche per BatchProcess vecchia
2023-05-03 15:13:28 +02:00
luca.mazzoleni cc63560b19 Merge branch 'master' into develop 2023-04-26 09:46:59 +02:00
DarioS d6813e4efa DataBeam :
- modifica a LongCut per orientamento direzione ausiliaria testa con lama.
2023-04-24 16:42:36 +02:00
luca.mazzoleni 18ebaf8a16 update log modifiche 2023-04-21 09:18:31 +02:00
luca.mazzoleni 60c489f70b Merge remote-tracking branch 'origin/master' into develop 2023-04-21 09:18:01 +02:00
DarioS 270bca6bcc DataBeam :
- in tagli di testa e coda aumentato appena (10.123) spessore minimo applicazione cubetti speciali
- in tagli di coda cubetti speciali rimesse note lavorazione 'PreCut;' e 'Cut;'
- in tagli di coda cubetti speciali rimessa restituzione 3° parametro nNewPhase
- in tagli longitudinali per macchine PF (BD.C_SIMM) modificata assegnazione SCC.
2023-04-20 21:39:57 +02:00
luca.mazzoleni 8ae94c1de6 Merge tag '2.5d2' into develop
Finish Release: 2.5d2
2023-04-20 17:41:40 +02:00
luca.mazzoleni 3ec836ad9a Merge branch 'release/2.5d2' 2023-04-20 17:41:40 +02:00
luca.mazzoleni 479a28afb8 update versione 2023-04-20 17:40:27 +02:00
luca.mazzoleni 9cfccc29d6 Merge branch 'master' of https://gitlab.steamware.net/egaltech/DataBeam into develop 2023-04-20 16:27:10 +02:00
luca.mazzoleni c344493daf aggiunto settings di vs code a gitignore 2023-04-20 16:21:04 +02:00
luca.mazzoleni 5942332de8 Merge branch 'develop' 2023-04-06 15:59:31 +02:00
6 changed files with 41 additions and 20 deletions
+3 -2
View File
@@ -23,6 +23,7 @@
-- 2021/06/16 Se disponibile si aggiunge la versione dell'eseguibile alle info del programma CN.
-- 2021/08/04 Direzione vista simulazione da BD.SIMUL_VIEW_DIR se esiste.
-- 2022/04/28 In info generazione aggiunta indicazione se 64bit.
-- 2023/05/03 Tolleranza su sezione portata a 0.1 mm (100 * GEO.EPS_SMALL).
-- Intestazioni
require( 'EgtBase')
@@ -291,8 +292,8 @@ if bToProcess then
for i = 2, #vBeam do
local dDimW = vBeam[i].Box:getDimY()
local dDimH = vBeam[i].Box:getDimZ()
if ( abs( dDimW - dRawW) > 10 * GEO.EPS_SMALL or abs( dDimH - dRawH) > 10 * GEO.EPS_SMALL) and
( abs( dDimH - dRawW) > 10 * GEO.EPS_SMALL or abs( dDimW - dRawH) > 10 * GEO.EPS_SMALL) then
if ( abs( dDimW - dRawW) > 100 * GEO.EPS_SMALL or abs( dDimH - dRawH) > 100 * GEO.EPS_SMALL) and
( abs( dDimH - dRawW) > 100 * GEO.EPS_SMALL or abs( dDimW - dRawH) > 100 * GEO.EPS_SMALL) then
table.insert( vBeamErr, i)
end
end
+1 -1
View File
@@ -273,7 +273,7 @@ function ProcessHeadCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bNeedHCut
-- per travi alte faccio faccio dei tagli orizzontali aggiuntivi
local _, _, dimV = BL.GetFaceHvRefDim( Proc.Id, 0, b3Raw)
local dMinOvmHeadForHorizontalCuts = 10
local dMinOvmHeadForHorizontalCuts = 10.123
local bAreHorizontalCutsNeeded = ( dimV > BD.MAX_LEN_DICE) and not bBigSectionCut and ( dOvmHead > dMinOvmHeadForHorizontalCuts - 10 * GEO.EPS_SMALL)
if bAreHorizontalCutsNeeded then
local nHorizontalCuts = ceil ( dimV / BD.MAX_DIM_DICE) - 1
+18 -9
View File
@@ -1,4 +1,4 @@
-- ProcessLongCut.lua by Egaltech s.r.l. 2023/03/06
-- ProcessLongCut.lua by Egaltech s.r.l. 2023/05/03
-- Gestione calcolo taglio longitudinale per Travi
-- 2021/02/03 Corretto FaceUse con fresa orizzontale su taglio orizzontale.
-- 2021/05/18 Possibile taglio con lama anche di fianco su macchina con testa da sotto.
@@ -26,6 +26,7 @@
-- 2023/03/15 Modifica alla lavorazione ulteriore con sega a catena per togliere il codolo e lasciare solo dei punti di supporto.
-- 2023/03/22 Correzione a SCC lama a seguito di modifiche alle direzioni dei tagli.
-- 2023/04/17 Gestione unificata SCC tramite funzione apposita GetSCC
-- 2023/05/03 Corretto SCC in caso di asse utensile allineato con Z.
-- Tabella per definizione modulo
local ProcessLongCut = {}
@@ -115,10 +116,10 @@ function GetProcessSpecificVectors( Proc, nFacet, nFaceUse, bInvert, sMachining)
vtTg = ptP2 - ptP1 ; vtTg:normalize()
end
end
local bWsRight = ( not bInvert)
local bWsRight = ( bInvert)
-- Versore di riferimento
local vtRef = Vector3d( vtTg)
vtRef:rotate( vtN, EgtIf( bInvert, -90, 90))
vtRef:rotate( vtN, 90)
-- Versore esterno
local vtOut = vtRef - vtRef * vtTg * vtTg ; vtOut:normalize()
-- Versore ausiliario (direzione braccio)
@@ -165,18 +166,18 @@ function ProcessLongCut.GetSCC( Proc, nFacet, sMachining, nFaceUse, bInvert, nCu
elseif nFaceUse == MCH_MILL_FU.ORTHO_BACK or ( nFaceUse == MCH_MILL_FU.PARAL_DOWN or nFaceUse == MCH_MILL_FU.PARAL_TOP) then
nSCC = MCH_SCC.ADIR_YM
end
-- se Fast e asse utensile diretto come Z posiziono l'aggregato in Y per avere il minore ingombro possibile
elseif not BD.C_SIMM and AreSameVectorApprox( vtN, Z_AX()) then
-- se Fast e fresa con asse utensile diretto come Z posiziono l'aggregato in Ym per avere il minore ingombro possibile
elseif not BD.C_SIMM and not bIsBlade and AreSameVectorApprox( vtN, Z_AX()) then
nSCC = MCH_SCC.ADIR_YM
-- se Fast ( escluso caso speciale con taglio non passante e inclinato in X) posiziono l'aggregato in X per ottimizzare il pinzaggio
elseif not BD.C_SIMM and ( not ( bCustUseBlade and abs(vtN:getX()) > 0.009 + 5 * GEO.EPS_SMALL) or not bIsBlade) then
-- se Fast ( escluso caso speciale con taglio non passante e inclinato in X e escluso caso con lama esattamente diretta in Z) posiziono l'aggregato in X per ottimizzare il pinzaggio
elseif not BD.C_SIMM and ( not ( bCustUseBlade and abs(vtN:getX()) > 0.001) or not bIsBlade) and not ( bIsBlade and AreSameVectorApprox( vtN, Z_AX())) then
if bAreCuttingStepsTowardsHead then
nSCC = EgtIf( ( not ( nCuttingStep == 1 or nCuttingStep == nC - 1)), MCH_SCC.ADIR_XP, MCH_SCC.ADIR_XM)
else
nSCC = EgtIf( ( not ( nCuttingStep == 1 or nCuttingStep == nC - 1)), MCH_SCC.ADIR_XM, MCH_SCC.ADIR_XP)
end
-- per PF o simili oppure se Fast ( caso speciale con taglio non passante e inclinato in X) e lama con aggregato lo posiziono per stare il più lontano possibile dalla trave
elseif ( bIsBlade and bIsTopBlade) or not BD.C_SIMM then
-- per Fast ( caso speciale con taglio non passante e inclinato in X e caso lama diretta esattamente in Z)
elseif not BD.C_SIMM then
local vtAux = GetProcessSpecificVectors( Proc, nFacet, nFaceUse, bInvert, sMachining)
if bCustUseBlade then
nSCC = EgtIf( ( nFaceUse == MCH_MILL_FU.ORTHO_TOP or nFaceUse == MCH_MILL_FU.ORTHO_FRONT) and vtN:getY() > -GEO.EPS_SMALL, MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM)
@@ -185,6 +186,14 @@ function ProcessLongCut.GetSCC( Proc, nFacet, sMachining, nFaceUse, bInvert, nCu
else
nSCC = EgtIf( ( vtAux:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM)
end
-- per PF o simili e lama con aggregato lo posiziono per stare il più lontano possibile dalla trave
elseif ( bIsBlade and bIsTopBlade) then
if abs( vtN:getX()) > 0.001 then
local vtAux = GetProcessSpecificVectors( Proc, nFacet, nFaceUse, bInvert, sMachining)
nSCC = EgtIf( ( vtAux:getY() > -GEO.EPS_SMALL), MCH_SCC.ADIR_YP, MCH_SCC.ADIR_YM)
else
nSCC = MCH_SCC.ADIR_XP
end
-- per PF o simili e lama senza aggregato o fresa non do alcuna preferenza
else
nSCC = MCH_SCC.NONE
+7 -7
View File
@@ -475,7 +475,7 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt
-- per travi alte faccio faccio dei tagli orizzontali aggiuntivi
local _, _, dimV = BL.GetFaceHvRefDim( Proc.Id, 0, b3Raw)
local dMinTailScrapForHorizontalCuts = 10
local dMinTailScrapForHorizontalCuts = 10.123
local bAreHorizontalCutsNeeded = ( dimV > BD.MAX_LEN_DICE) and not bBigSectionCut and ( dLenEndRaw > dMinTailScrapForHorizontalCuts - 10 * GEO.EPS_SMALL)
if bAreHorizontalCutsNeeded then
local nHorizontalCuts = ceil ( dimV / BD.MAX_DIM_DICE) - 1
@@ -489,21 +489,21 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt
local nForceWorkSide = MCH_MILL_WS.LEFT
local bForceInvert = true
local nForceSCC = MCH_SCC.ADIR_XM
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0 , sCutting, dSawDiam, nFaceUse, nil, -0.1 - dCutXOffset, BD.CUT_SIC, dHorizontalCutOffset, 0, 0, '', b3Raw, bForceInvert, nForceWorkSide, nForceSCC)
if not bOk then return bOk, sErr end
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0 , sCutting, dSawDiam, nFaceUse, nil, -0.1 - dCutXOffset, BD.CUT_SIC, dHorizontalCutOffset, 0, 0, 'Precut;', b3Raw, bForceInvert, nForceWorkSide, nForceSCC)
if not bOk then return false, sErr end
end
-- se necessario taglio verticale doppio, eseguo l'opposto
if bDoubleCut then
-- gli accorciamenti vanno invertiti per il taglio opposto
local dAccStartDoubleCut, dAccEndDoubleCut = dAccEnd, dAccStart
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, MCH_MILL_FU.ORTHO_FRONT, nil, dCutExtra, BD.CUT_SIC, dCutXOffset, dAccStartDoubleCut, dAccEndDoubleCut, '', b3Raw, true)
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, MCH_MILL_FU.ORTHO_FRONT, nil, dCutExtra, BD.CUT_SIC, dCutXOffset, dAccStartDoubleCut, dAccEndDoubleCut, 'Precut;', b3Raw, true)
if not bOk then return false, sErr end
end
-- taglio verticale
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutXOffset, dAccStart, dAccEnd, '', b3Raw)
if not bOk then return bOk, sErr end
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutXOffset, dAccStart, dAccEnd, 'Cut;', b3Raw)
if not bOk then return false, sErr end
end
return true, sWarn
return true, sWarn, nNewPhase
end
-- se necessari tagli in doppio, eseguo gli opposti
+11
View File
@@ -1,5 +1,16 @@
==== Beam Update Log ====
Versione 2.5e2 (04/05/2023)
- Modif : Piccola modifica a SCC per LongCut derivanti da Cut
Versione 2.5e1 (03/05/2023)
- Modif : in TS3v7 tolleranza su quote sezione portata a 0.1 mm
- Fixed : Corretto SCC in caso di asse utensile allineato con Z [Ticket #1232]
Versione 2.5d2 (20/04/2023)
- Added : nei tagli di testa e coda, nel caso di travi alte, aggiunti tagli orizzontali per diminuire la dimensione degli sfridi [Ticket #1175, #1185]
- Modif : unificata gestione lato testa per tagli longitudinali [Ticket #1167].
Versione 2.5d1 (06/04/23)
- Added : in svuotatura aggiunta possibilità di impostare una distanza di sicurezza minima su attacco da lato aperto
- Modif : in split per travi con sezioni molto grandi e materiale inferiore allo spessore lama, miglioramenti volti ad evitare collisioni prevedibili
+1 -1
View File
@@ -2,5 +2,5 @@
-- Gestione della versione di Beam
NAME = 'Beam'
VERSION = '2.5d1'
VERSION = '2.5e2'
MIN_EXE = '2.5c1'