Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7c8a1f2de6 |
+4
-4
@@ -24,14 +24,14 @@ variables:
|
|||||||
$FileList = Get-ChildItem("*.lua")
|
$FileList = Get-ChildItem("*.lua")
|
||||||
ForEach ($File in $FileList) {
|
ForEach ($File in $FileList) {
|
||||||
$FileName = Split-Path $File -leaf
|
$FileName = Split-Path $File -leaf
|
||||||
lua54 -o bin\$FileName -s $FileName
|
lua54 -o bin\$FileName $FileName
|
||||||
echo "lua54 -o bin\$FileName -s $FileName"
|
echo "lua54 -o bin\$FileName $FileName"
|
||||||
}
|
}
|
||||||
$FileList = Get-ChildItem("LuaLibs\*.lua")
|
$FileList = Get-ChildItem("LuaLibs\*.lua")
|
||||||
ForEach ($File in $FileList) {
|
ForEach ($File in $FileList) {
|
||||||
$FileName = Split-Path $File -leaf
|
$FileName = Split-Path $File -leaf
|
||||||
lua54 -o bin\LuaLibs\$FileName -s LuaLibs\$FileName
|
lua54 -o bin\LuaLibs\$FileName LuaLibs\$FileName
|
||||||
echo "lua54 -o bin\LuaLibs\$FileName -s LuaLibs\$FileName"
|
echo "lua54 -o bin\LuaLibs\$FileName LuaLibs\$FileName"
|
||||||
}
|
}
|
||||||
|
|
||||||
# helper copia SORGENTI verso cartella di rete X:\ dei SORGENTI
|
# helper copia SORGENTI verso cartella di rete X:\ dei SORGENTI
|
||||||
|
|||||||
+4
-30
@@ -60,8 +60,6 @@
|
|||||||
-- 2024/03/04 Creata funzione calcolo dipendenze tra feature con calcolo topologia.
|
-- 2024/03/04 Creata funzione calcolo dipendenze tra feature con calcolo topologia.
|
||||||
-- 2024/03/07 Implementate le lavorazioni in doppio per fori specchiati non passanti e DrillPocket.
|
-- 2024/03/07 Implementate le lavorazioni in doppio per fori specchiati non passanti e DrillPocket.
|
||||||
-- 2024/03/11 In CollectFeatures si scrive ora Width e Height della faccia sia trimmate con il grezzo che intere.
|
-- 2024/03/11 In CollectFeatures si scrive ora Width e Height della faccia sia trimmate con il grezzo che intere.
|
||||||
-- 2024/03/13 In CollectFeatures si scrive lunghezza foro su Proc e si controla se serve Predrill
|
|
||||||
-- In OrderFeature, preforo sempre prima del foro
|
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local BeamExec = {}
|
local BeamExec = {}
|
||||||
@@ -371,21 +369,14 @@ local function CollectFeatures( PartId, b3Raw, dCurrOvmH, dCurrOvmT)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if Proc.Box and not Proc.Box:isEmpty() then
|
if Proc.Box and not Proc.Box:isEmpty() then
|
||||||
Proc.Head = IsHeadFeature( Proc, b3Raw, dCurrOvmH)
|
Proc.Head = IsHeadFeature( Proc, b3Raw, dCurrOvmH)
|
||||||
Proc.Tail, Proc.AdvTail = IsTailFeature( Proc, b3Raw, dCurrOvmH, dCurrOvmT)
|
Proc.Tail, Proc.AdvTail = IsTailFeature( Proc, b3Raw, dCurrOvmH, dCurrOvmT)
|
||||||
table.insert( vProc, Proc)
|
table.insert( vProc, Proc)
|
||||||
-- se foro
|
-- se foro
|
||||||
if Drill.Identify( Proc) then
|
if Drill.Identify( Proc) then
|
||||||
-- assegno diametro e facce di ingresso e uscita (dati tabelle sempre per riferimento)
|
-- assegno diametro e facce di ingresso e uscita (dati tabelle sempre per riferimento)
|
||||||
Proc.Diam, Proc.Len, Proc.Fcs, Proc.Fce = Drill.GetData( Proc, b3Raw)
|
Proc.Diam, Proc.Fcs, Proc.Fce = Drill.GetData( Proc, b3Raw)
|
||||||
-- verifico se devo inserire i prefori
|
|
||||||
if Drill.IsPredrillNeeded( Proc) then
|
|
||||||
local bAddProc, PredrillProc= Drill.AddPredrillFromDrillProc( Proc)
|
|
||||||
if bAddProc then
|
|
||||||
table.insert( vProc, PredrillProc)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- verifico se necessaria seconda lavorazione da parte opposta per foro più lungo della punta
|
-- verifico se necessaria seconda lavorazione da parte opposta per foro più lungo della punta
|
||||||
if Drill.Split( Proc, b3Raw) then
|
if Drill.Split( Proc, b3Raw) then
|
||||||
-- aggiorno flags prima parte foro (dati tabelle sempre per riferimento)
|
-- aggiorno flags prima parte foro (dati tabelle sempre per riferimento)
|
||||||
@@ -402,7 +393,6 @@ local function CollectFeatures( PartId, b3Raw, dCurrOvmH, dCurrOvmT)
|
|||||||
Proc2.Box = BBox3d( Proc.Box)
|
Proc2.Box = BBox3d( Proc.Box)
|
||||||
Proc2.Fct = Proc.Fct
|
Proc2.Fct = Proc.Fct
|
||||||
Proc2.Diam = Proc.Diam
|
Proc2.Diam = Proc.Diam
|
||||||
Proc2.Len = Proc.Len
|
|
||||||
Proc2.Head = Drill.IsHeadFeature( Proc2, b3Raw, dCurrOvmH)
|
Proc2.Head = Drill.IsHeadFeature( Proc2, b3Raw, dCurrOvmH)
|
||||||
Proc2.Tail = Drill.IsTailFeature( Proc2, b3Raw, dCurrOvmH)
|
Proc2.Tail = Drill.IsTailFeature( Proc2, b3Raw, dCurrOvmH)
|
||||||
Proc2.Fcs = Proc.Fce
|
Proc2.Fcs = Proc.Fce
|
||||||
@@ -412,13 +402,6 @@ local function CollectFeatures( PartId, b3Raw, dCurrOvmH, dCurrOvmT)
|
|||||||
Proc2.AdjId = Proc.AdjId
|
Proc2.AdjId = Proc.AdjId
|
||||||
Proc2.MainId = Proc.MainId
|
Proc2.MainId = Proc.MainId
|
||||||
table.insert( vProc, Proc2)
|
table.insert( vProc, Proc2)
|
||||||
-- verifico se devo inserire i prefori
|
|
||||||
if Drill.IsPredrillNeeded( Proc2) then
|
|
||||||
local bAddProc, PredrillProc= Drill.AddPredrillFromDrillProc( Proc2)
|
|
||||||
if bAddProc then
|
|
||||||
table.insert( vProc, PredrillProc)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
-- se BlockHaus HalfLap
|
-- se BlockHaus HalfLap
|
||||||
elseif Proc.Prc == 37 then
|
elseif Proc.Prc == 37 then
|
||||||
@@ -939,11 +922,7 @@ local function OrderFeatures( vProc, b3Raw)
|
|||||||
end
|
end
|
||||||
-- se entrambi fori con posizione praticamente uguale ordino secondo diametro e faccia di inizio (Fcs)
|
-- se entrambi fori con posizione praticamente uguale ordino secondo diametro e faccia di inizio (Fcs)
|
||||||
if B1.Prc == 40 and B2.Prc == 40 and abs( B1.Box:getCenter():getX() - B2.Box:getCenter():getX()) < dSmallDrillRange then
|
if B1.Prc == 40 and B2.Prc == 40 and abs( B1.Box:getCenter():getX() - B2.Box:getCenter():getX()) < dSmallDrillRange then
|
||||||
if B1.IsPredrill and not B2.IsPredrill then
|
if abs( B1.Diam - B2.Diam) < 1.0 then
|
||||||
return true
|
|
||||||
elseif not B1.IsPredrill and B2.IsPredrill then
|
|
||||||
return false
|
|
||||||
elseif abs( B1.Diam - B2.Diam) < 1.0 then
|
|
||||||
if B1.Fcs == B2.Fcs then
|
if B1.Fcs == B2.Fcs then
|
||||||
if abs( B1.Box:getCenter():getX() - B2.Box:getCenter():getX()) < 1.0 then
|
if abs( B1.Box:getCenter():getX() - B2.Box:getCenter():getX()) < 1.0 then
|
||||||
if abs( B1.Box:getCenter():getY() - B2.Box:getCenter():getY()) < 1.0 then
|
if abs( B1.Box:getCenter():getY() - B2.Box:getCenter():getY()) < 1.0 then
|
||||||
@@ -1991,11 +1970,6 @@ local function AreDrillingsMirrored( Proc, ProcMirror, b3Raw)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- fori della stessa profondità
|
|
||||||
if abs( Proc.Len - ProcMirror.Len) > 10 * GEO.EPS_SMALL then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -2073,7 +2047,7 @@ function BeamExec.ProcessFeatures()
|
|||||||
|
|
||||||
-- verifica presenza forature influenzate da lavorazioni di testa o coda
|
-- verifica presenza forature influenzate da lavorazioni di testa o coda
|
||||||
if BD.IMPROVE_HEAD_TAIL_DRILLINGS then
|
if BD.IMPROVE_HEAD_TAIL_DRILLINGS then
|
||||||
local vMachBeforeIntersDrillings = CalcHeadTailMachBeforeIntersDrillings( vProc, b3Raw)
|
vMachBeforeIntersDrillings = CalcHeadTailMachBeforeIntersDrillings( vProc, b3Raw)
|
||||||
SetDrillingsToMachineAfterHeadOrTailCut( vProc, vMachBeforeIntersDrillings)
|
SetDrillingsToMachineAfterHeadOrTailCut( vProc, vMachBeforeIntersDrillings)
|
||||||
end
|
end
|
||||||
-- verifica presenza di feature specchiate per eventuali lavorazioni simultanee
|
-- verifica presenza di feature specchiate per eventuali lavorazioni simultanee
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
-- 2024/01/23 Nella GetMachinings vengono ora raccolti i parametri utensile necessari per i VerifyTool, scritti direttamente nella tabella Machining.Tool.
|
-- 2024/01/23 Nella GetMachinings vengono ora raccolti i parametri utensile necessari per i VerifyTool, scritti direttamente nella tabella Machining.Tool.
|
||||||
-- Le lavorazioni possono essere ora ordinate per dimensioni utensile (Longest, Shortest, Biggest, Smallest) se passato l'apposito parametro SortingCriterion in FindMachining. Al momento implementato solo per FindSawing.
|
-- Le lavorazioni possono essere ora ordinate per dimensioni utensile (Longest, Shortest, Biggest, Smallest) se passato l'apposito parametro SortingCriterion in FindMachining. Al momento implementato solo per FindSawing.
|
||||||
-- 2024/03/01 In VerifyPocketing implementato l'ordinamento per dimensioni utensile.
|
-- 2024/03/01 In VerifyPocketing implementato l'ordinamento per dimensioni utensile.
|
||||||
-- 2024/03/13 Aggiunta gestione Predrill
|
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local MachiningLib = {}
|
local MachiningLib = {}
|
||||||
@@ -170,7 +169,7 @@ end
|
|||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function VerifyTool( Machining, MachiningType, Params, bH2)
|
function VerifyTool( Machining, MachiningType, Params, bH2)
|
||||||
if MachiningType == MCH_MY.DRILLING then
|
if MachiningType == MCH_MY.DRILLING then
|
||||||
if Machining.SubType == 'Drill' or Machining.SubType == 'AngleDrill' or Machining.SubType == 'Predrill' then
|
if Machining.SubType == 'Drill' or Machining.SubType == 'AngleDrill' then
|
||||||
return VerifyDrill( Machining, Params.Diam, Params.Depth, bH2)
|
return VerifyDrill( Machining, Params.Diam, Params.Depth, bH2)
|
||||||
elseif Machining.SubType == 'DrillPocket' then
|
elseif Machining.SubType == 'DrillPocket' then
|
||||||
return VerifyDrillPocket( Machining, Params.Diam, Params.Depth, bH2)
|
return VerifyDrillPocket( Machining, Params.Diam, Params.Depth, bH2)
|
||||||
@@ -226,8 +225,6 @@ function GetMachinings( MachiningType, sType)
|
|||||||
Machining.SubType = 'AngleDrill'
|
Machining.SubType = 'AngleDrill'
|
||||||
elseif EgtStartsWith( Machining.Type, 'Pocket') then
|
elseif EgtStartsWith( Machining.Type, 'Pocket') then
|
||||||
Machining.SubType = 'DrillPocket'
|
Machining.SubType = 'DrillPocket'
|
||||||
elseif EgtStartsWith( Machining.Type, 'Predrill') then
|
|
||||||
Machining.SubType = 'Predrill'
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
Machining.Tool.Diameter = EgtTdbGetCurrToolParam( MCH_TP.DIAM)
|
Machining.Tool.Diameter = EgtTdbGetCurrToolParam( MCH_TP.DIAM)
|
||||||
@@ -303,7 +300,7 @@ end
|
|||||||
function ReturnParams( MachiningType, MachiningName, sType, ToolParams)
|
function ReturnParams( MachiningType, MachiningName, sType, ToolParams)
|
||||||
if MachiningType == MCH_MY.DRILLING then
|
if MachiningType == MCH_MY.DRILLING then
|
||||||
local _, sOrigType = EgtEndsWith( sType, '_H2')
|
local _, sOrigType = EgtEndsWith( sType, '_H2')
|
||||||
return MachiningName, sType, EgtIf( sOrigType == 'Drill' or sOrigType == 'Drill_AT' or sOrigType == 'AngleDrill' or sOrigType == 'Predrill' , ToolParams.TMaxMat, ToolParams.TMaxDepth), ToolParams.MaxToolLength, ToolParams.ToolDiam, ToolParams.DiamTh, ToolParams.FreeLen
|
return MachiningName, sType, EgtIf( sOrigType == 'Drill' or sOrigType == 'Drill_AT' or sOrigType == 'AngleDrill' , ToolParams.TMaxMat, ToolParams.TMaxDepth), ToolParams.MaxToolLength, ToolParams.ToolDiam, ToolParams.DiamTh, ToolParams.FreeLen
|
||||||
elseif MachiningType == MCH_MY.SAWING then
|
elseif MachiningType == MCH_MY.SAWING then
|
||||||
return MachiningName, ToolParams.H2
|
return MachiningName, ToolParams.H2
|
||||||
elseif MachiningType == MCH_MY.MILLING then
|
elseif MachiningType == MCH_MY.MILLING then
|
||||||
@@ -470,15 +467,8 @@ function MachiningLib.FindCutting( sType, bTopHead, bDownHead)
|
|||||||
end
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function MachiningLib.FindDrilling( dDiam, dDepth, bTopHead, bDownHead, bExcludeH2, bAngleTransmission, bIsPredrill)
|
function MachiningLib.FindDrilling( dDiam, dDepth, bTopHead, bDownHead, bExcludeH2, bAngleTransmission)
|
||||||
local MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5, sTypeMach
|
local MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5 = FindMachining( MCH_MY.DRILLING, EgtIf( bAngleTransmission, 'Drill_AT', 'Drill'), { Diam = dDiam, Depth = dDepth}, bTopHead, bDownHead, bExcludeH2)
|
||||||
-- se il foro è un predrill, cerco solo punte abilitate al Predrill
|
|
||||||
if bIsPredrill then
|
|
||||||
sTypeMach = 'Predrill'
|
|
||||||
else
|
|
||||||
sTypeMach = EgtIf( bAngleTransmission, 'Drill_AT', 'Drill')
|
|
||||||
end
|
|
||||||
MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5 = FindMachining( MCH_MY.DRILLING, sTypeMach, { Diam = dDiam, Depth = dDepth}, bTopHead, bDownHead, bExcludeH2)
|
|
||||||
if ( not MachiningName or MachiningName == '') then
|
if ( not MachiningName or MachiningName == '') then
|
||||||
MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5 = FindMachining( MCH_MY.DRILLING, EgtIf( bAngleTransmission, 'Pocket_AT', 'Pocket'), { Diam = dDiam, Depth = dDepth}, bTopHead, bDownHead)
|
MachiningName, MachiningType, Param1, Param2, Param3, Param4, Param5 = FindMachining( MCH_MY.DRILLING, EgtIf( bAngleTransmission, 'Pocket_AT', 'Pocket'), { Diam = dDiam, Depth = dDepth}, bTopHead, bDownHead)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
-- ProcessBlockHausFront.lua by Egaltech s.r.l. 2020/08/03
|
-- ProcessBlockHausFront.lua by Egaltech s.r.l. 2020/08/03
|
||||||
-- Gestione calcolo giunzione block house in testa
|
-- Gestione calcolo giunzione block house in testa
|
||||||
-- 2022/06/10 Aggiunto il parametro dOvmTail per gestire sovramateriali in coda diversi da OVM_MID (sezioni alte e larghe)
|
-- 2022/06/10 Aggiunto il parametro dOvmTail per gestire sovramateriali in coda diversi da OVM_MID (sezioni alte e larghe)
|
||||||
|
-- 2024/03/11 Chiamate a GetFaceHvRefDim sostituite con lettura di Proc.Face[]
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessBlockHausFront = {}
|
local ProcessBlockHausFront = {}
|
||||||
@@ -268,7 +269,9 @@ function ProcessBlockHausFront.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, dO
|
|||||||
local vtRef2 = EgtIf( bHead, X_AX(), -X_AX())
|
local vtRef2 = EgtIf( bHead, X_AX(), -X_AX())
|
||||||
-- se non ho il taglio sulla faccia interna
|
-- se non ho il taglio sulla faccia interna
|
||||||
if not bIntCut then
|
if not bIntCut then
|
||||||
local frHV, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, vFaceOrd[3] - 1)
|
local frHV = Proc.Face[ vFaceOrd[3]].FrameHV
|
||||||
|
local DimH = Proc.Face[ vFaceOrd[3]].Width
|
||||||
|
local DimV = Proc.Face[ vFaceOrd[3]].Height
|
||||||
if DimV > DimH then
|
if DimV > DimH then
|
||||||
vtRef2 = Vector3d( frHV:getVersX())
|
vtRef2 = Vector3d( frHV:getVersX())
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -20,7 +20,6 @@
|
|||||||
-- 2023/07/28 Aggiunta gestione rinvio 90deg solo per forature da sotto esattamente verticali.
|
-- 2023/07/28 Aggiunta gestione rinvio 90deg solo per forature da sotto esattamente verticali.
|
||||||
-- 2023/09/26 Se errore in applicazione lavorazione si inverte e riprova solo se foratura singola su foro aperto.
|
-- 2023/09/26 Se errore in applicazione lavorazione si inverte e riprova solo se foratura singola su foro aperto.
|
||||||
-- 2023/11/06 Migliorata gestione dei fori con AngularTransmission.
|
-- 2023/11/06 Migliorata gestione dei fori con AngularTransmission.
|
||||||
-- 2024/03/13 Aggiunta gestione Predrill
|
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessDrill = {}
|
local ProcessDrill = {}
|
||||||
@@ -97,21 +96,20 @@ end
|
|||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- Recupero dati foro e adattamento se speciale
|
-- Recupero dati foro e adattamento se speciale
|
||||||
function ProcessDrill.GetData( Proc, b3Raw)
|
function ProcessDrill.GetData( Proc, b3Raw)
|
||||||
local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i')
|
|
||||||
-- verifico se foro da adattare
|
-- verifico se foro da adattare
|
||||||
if EgtExistsInfo( Proc.Id, 'DiamUser') then
|
if EgtExistsInfo( Proc.Id, 'DiamUser') then
|
||||||
|
local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i')
|
||||||
if AuxId then AuxId = AuxId + Proc.Id end
|
if AuxId then AuxId = AuxId + Proc.Id end
|
||||||
if AuxId and EgtGetType( AuxId) == GDB_TY.CRV_ARC and BD.USER_HOLE_DIAM and BD.USER_HOLE_DIAM > 1 then
|
if AuxId and EgtGetType( AuxId) == GDB_TY.CRV_ARC and BD.USER_HOLE_DIAM and BD.USER_HOLE_DIAM > 1 then
|
||||||
EgtModifyArcRadius( AuxId, BD.USER_HOLE_DIAM / 2)
|
EgtModifyArcRadius( AuxId, BD.USER_HOLE_DIAM / 2)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- recupero diametro e lunghezza
|
-- recupero diametro
|
||||||
local dDiam = EgtGetInfo( Proc.Id, 'P12', 'd') or 0
|
local dDiam = EgtGetInfo( Proc.Id, 'P12', 'd') or 0
|
||||||
local dLen = abs( EgtCurveThickness( Proc.Id + AuxId)) or 0
|
|
||||||
-- recupero faccia di entrata e uscita
|
-- recupero faccia di entrata e uscita
|
||||||
local nFcs = EgtGetInfo( Proc.Id, 'FCS', 'i') or 0
|
local nFcs = EgtGetInfo( Proc.Id, 'FCS', 'i') or 0
|
||||||
local nFce = EgtGetInfo( Proc.Id, 'FCE', 'i') or 0
|
local nFce = EgtGetInfo( Proc.Id, 'FCE', 'i') or 0
|
||||||
return dDiam, dLen, nFcs, nFce
|
return dDiam, nFcs, nFce
|
||||||
end
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
@@ -141,77 +139,6 @@ function ProcessDrill.Split( Proc, b3Raw)
|
|||||||
return ( bOpen and ( bHoriz or BD.ROT90 or BD.DOWN_HEAD or BD.TURN or bAngTransm) and not bSlant)
|
return ( bOpen and ( bHoriz or BD.ROT90 or BD.DOWN_HEAD or BD.TURN or bAngTransm) and not bSlant)
|
||||||
end
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
|
||||||
-- Verifica se bisogna aggiungere un preforo
|
|
||||||
function ProcessDrill.IsPredrillNeeded( Proc)
|
|
||||||
local dDepthPredrill = EgtGetInfo( Proc.Id, 'Q03', 'i')
|
|
||||||
-- se non c'è la Q oppure se zero, allora non è da fare
|
|
||||||
if not dDepthPredrill or dDepthPredrill <= 0 then
|
|
||||||
return false
|
|
||||||
-- altrimenti Predrill da fare
|
|
||||||
else
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
|
||||||
-- Aggiunge il preforo alla feature passata
|
|
||||||
function ProcessDrill.AddPredrillFromDrillProc( Proc)
|
|
||||||
local dDepthPredrill = EgtGetInfo( Proc.Id, 'Q03', 'i')
|
|
||||||
-- foro più corto del preforo, allora è il foro che diventa il preforo stesso
|
|
||||||
if Proc.Len <= dDepthPredrill then
|
|
||||||
Proc.IsPredrill = true
|
|
||||||
Proc.IsPredrillOf = Proc.Id
|
|
||||||
return false
|
|
||||||
-- altrimenti creo un nuovo process
|
|
||||||
else
|
|
||||||
-- recupero gruppo per geometria aggiuntiva
|
|
||||||
local nAddGrpId = BL.GetAddGroup( Proc.PartId)
|
|
||||||
-- recupero e verifico l'entità foro
|
|
||||||
local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i') or 0
|
|
||||||
local ptCen = EgtCP( Proc.Id + AuxId, GDB_RT.GLOB)
|
|
||||||
local vtExtr = EgtCurveExtrusion( Proc.Id + AuxId, GDB_RT.GLOB)
|
|
||||||
|
|
||||||
-- copio foro originale
|
|
||||||
local nPreHoleId = EgtCopyGlob( Proc.Id, nAddGrpId)
|
|
||||||
local nPreHoleAux = EgtCopyGlob( Proc.Id + AuxId, nAddGrpId)
|
|
||||||
|
|
||||||
-- se foro invertito sposto geometria dall'altro lato del foro
|
|
||||||
if Proc.Flg == -2 then
|
|
||||||
local vsExtr = vtExtr * Proc.Len
|
|
||||||
EgtMove( nPreHoleAux, vsExtr)
|
|
||||||
EgtModifyCurveThickness( nPreHoleAux, dDepthPredrill)
|
|
||||||
-- altrimenti creo il foro direttamente
|
|
||||||
else
|
|
||||||
EgtModifyCurveThickness( nPreHoleAux, -dDepthPredrill)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- definisco dati seconda parte
|
|
||||||
local PredrillProc = {}
|
|
||||||
PredrillProc.PartId = Proc.PartId
|
|
||||||
PredrillProc.Id = nPreHoleId
|
|
||||||
PredrillProc.Grp = Proc.Grp
|
|
||||||
PredrillProc.Prc = Proc.Prc
|
|
||||||
PredrillProc.Flg = Proc.Flg
|
|
||||||
PredrillProc.Box = Proc.Box
|
|
||||||
PredrillProc.Fct = Proc.Fct
|
|
||||||
PredrillProc.Diam = Proc.Diam
|
|
||||||
PredrillProc.Len = dDepthPredrill
|
|
||||||
PredrillProc.Head = Proc.Head
|
|
||||||
PredrillProc.Tail = Proc.Tail
|
|
||||||
PredrillProc.Fcs = Proc.Fcs
|
|
||||||
PredrillProc.Fce = Proc.Fce
|
|
||||||
PredrillProc.CutId = Proc.CutId
|
|
||||||
PredrillProc.TaskId = Proc.TaskId
|
|
||||||
PredrillProc.AdjId = Proc.AdjId
|
|
||||||
PredrillProc.MainId = Proc.MainId
|
|
||||||
PredrillProc.IsPredrill = true
|
|
||||||
PredrillProc.IsPredrillOf = Proc.Id
|
|
||||||
|
|
||||||
return true, PredrillProc
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- Classificazione della feature
|
-- Classificazione della feature
|
||||||
function ProcessDrill.Classify( Proc, b3Raw)
|
function ProcessDrill.Classify( Proc, b3Raw)
|
||||||
@@ -362,15 +289,15 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId)
|
|||||||
local bDrillUp = ( bDownDrill and vtExtr:getZ() > -0.421)
|
local bDrillUp = ( bDownDrill and vtExtr:getZ() > -0.421)
|
||||||
local bExcludeH2 = false
|
local bExcludeH2 = false
|
||||||
if Proc.Double and Proc.Double > 0 then
|
if Proc.Double and Proc.Double > 0 then
|
||||||
-- bMillUp = true
|
bMillUp = true
|
||||||
bDrillDown = false
|
bDrillDown = false
|
||||||
bExcludeH2 = true
|
bExcludeH2 = true
|
||||||
end
|
end
|
||||||
-- primo gruppo di controlli con lunghezza utensile pari a metà foro se passante
|
-- primo gruppo di controlli con lunghezza utensile pari a metà foro se passante
|
||||||
-- recupero la lavorazione
|
-- recupero la lavorazione
|
||||||
local sDrilling, sType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, dCheckDepth, bDrillUp, bDrillDown, bExcludeH2, bDrillAngTrasm, Proc.IsPredrill)
|
local sDrilling, sType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, dCheckDepth, bDrillUp, bDrillDown, bExcludeH2, bDrillAngTrasm)
|
||||||
if not sDrilling and dCheckDepth then
|
if not sDrilling and dCheckDepth then
|
||||||
sDrilling, sType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, 0, bDrillUp, bDrillDown, bExcludeH2, bDrillAngTrasm, Proc.IsPredrill)
|
sDrilling, sType, dMaxDepth, dMaxToolLength, dToolDiam, dDiamTh, dToolFreeLen = ML.FindDrilling( dDiam, 0, bDrillUp, bDrillDown, bExcludeH2, bDrillAngTrasm)
|
||||||
if sDrilling then dCheckDepth = nil end
|
if sDrilling then dCheckDepth = nil end
|
||||||
end
|
end
|
||||||
if not sDrilling then
|
if not sDrilling then
|
||||||
@@ -527,7 +454,7 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId)
|
|||||||
dMaxElev = dMaxDepth
|
dMaxElev = dMaxDepth
|
||||||
end
|
end
|
||||||
-- inserisco la lavorazione
|
-- inserisco la lavorazione
|
||||||
local sName = EgtIf( sType == 'Predrill', 'Predrill_', 'Drill_') .. ( EgtGetName( Proc.Id) or tostring( Proc.Id))
|
local sName = 'Drill_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id))
|
||||||
local nMchId = EgtAddMachining( sName, sDrilling)
|
local nMchId = EgtAddMachining( sName, sDrilling)
|
||||||
if not nMchId then
|
if not nMchId then
|
||||||
local sErr = 'Error adding machining ' .. sName .. '-' .. sDrilling
|
local sErr = 'Error adding machining ' .. sName .. '-' .. sDrilling
|
||||||
@@ -537,7 +464,7 @@ function ProcessDrill.Make( Proc, nPhase, nRawId, nPartId)
|
|||||||
-- aggiungo geometria
|
-- aggiungo geometria
|
||||||
EgtSetMachiningGeometry( {{ AuxId, -1}})
|
EgtSetMachiningGeometry( {{ AuxId, -1}})
|
||||||
-- eventuale inversione
|
-- eventuale inversione
|
||||||
if sType == 'Drill' or sType == 'Drill_H2' or sType == 'Drill_AT' or sType == 'AngleDrill' or sType == 'Predrill' then
|
if sType == 'Drill' or sType == 'Drill_H2' or sType == 'Drill_AT' or sType == 'AngleDrill' then
|
||||||
EgtSetMachiningParam( MCH_MP.INVERT, bToInvert)
|
EgtSetMachiningParam( MCH_MP.INVERT, bToInvert)
|
||||||
else
|
else
|
||||||
EgtSetMachiningParam( MCH_MP.TOOLINVERT, bToInvert)
|
EgtSetMachiningParam( MCH_MP.TOOLINVERT, bToInvert)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
-- ProcessLapJoint.lua by Egaltech s.r.l. 2024/03/15
|
-- ProcessLapJoint.lua by Egaltech s.r.l. 2023/09/26
|
||||||
-- Gestione calcolo mezzo-legno per Travi
|
-- Gestione calcolo mezzo-legno per Travi
|
||||||
-- 2019/10/08 Agg. gestione OpenPocket.
|
-- 2019/10/08 Agg. gestione OpenPocket.
|
||||||
-- 2021/01/24 Con sega a catena ora sempre impostato asse A.
|
-- 2021/01/24 Con sega a catena ora sempre impostato asse A.
|
||||||
@@ -99,7 +99,6 @@
|
|||||||
-- 2024/02/29 In lapjoint 2 facce (TestTwoFacesDownHead) migliorata la scelta della lama da sotto.
|
-- 2024/02/29 In lapjoint 2 facce (TestTwoFacesDownHead) migliorata la scelta della lama da sotto.
|
||||||
-- 2024/03/01 Migliorata VerifyPocket.
|
-- 2024/03/01 Migliorata VerifyPocket.
|
||||||
-- 2024/03/04 Implementato attacco esterno se tasca 4 facce sulla coda ma nessun pezzo successivo.
|
-- 2024/03/04 Implementato attacco esterno se tasca 4 facce sulla coda ma nessun pezzo successivo.
|
||||||
-- 2024/03/15 Correzione a calcolo ingombro per feature basse e lunghe dalla testa.
|
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessLapJoint = {}
|
local ProcessLapJoint = {}
|
||||||
@@ -662,10 +661,8 @@ local function UpdateEncumbrance( Proc, nRawId, b3Raw, b3Solid)
|
|||||||
elseif Proc.Box:getCenter():getX() > b3Solid:getCenter():getX() then
|
elseif Proc.Box:getCenter():getX() > b3Solid:getCenter():getX() then
|
||||||
local dOffs = b3Solid:getMax():getX() - Proc.Box:getMin():getX()
|
local dOffs = b3Solid:getMax():getX() - Proc.Box:getMin():getX()
|
||||||
local dDist = b3Solid:getMax():getX() - Proc.Box:getMax():getX()
|
local dDist = b3Solid:getMax():getX() - Proc.Box:getMax():getX()
|
||||||
-- se pinze a 45° e pinza abbastanza materiale, compenso comunque, ma solo inclinazione morse
|
-- se concavo aumento la distanza (rimane una punta...)
|
||||||
if not bIsVertClamps and dDeltaZClamp > BD.VICE_MINH and BD.VICE_MAXH then
|
--if dAngT < 0 then dDist = dDist + 10 end
|
||||||
dOffs = min( dOffs, BD.VICE_MAXH - BD.VICE_MINH)
|
|
||||||
end
|
|
||||||
BL.UpdateHCING( nRawId, dOffs, dDist)
|
BL.UpdateHCING( nRawId, dOffs, dDist)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,19 +1,5 @@
|
|||||||
==== Beam Update Log ====
|
==== Beam Update Log ====
|
||||||
|
|
||||||
Versione 2.6c3 (15/03/2024)
|
|
||||||
- Added : Aggiunta gestione prefori
|
|
||||||
|
|
||||||
Versione 2.6c2 (12/03/2024)
|
|
||||||
- Added : in Mortase Aggiunta possibilità di inserire lavorazione di smusso
|
|
||||||
- Added : in FreeContour aggiunto smusso se lav. di svuotatura
|
|
||||||
- Added : in BeamExec creata funzione calcolo dipendenze tra feature
|
|
||||||
- Added : In BeamExec -> CollectFeatures si scrive ora Width e Height della faccia sia trimmate con il grezzo che intere
|
|
||||||
- Added : implementate le lavorazioni in doppio per fori specchiati non passanti e DrillPocket
|
|
||||||
- Modif : in LapJoint migliorata ricerca pocket (VerifyPocket)
|
|
||||||
- Modif : implementato attacco esterno se tasca 4 facce sulla coda ma nessun pezzo successivo
|
|
||||||
- Modif : rimossi simboli di debug da compile
|
|
||||||
- Fixed : In FreeContour corretto caso di smusso non passante
|
|
||||||
|
|
||||||
Versione 2.6c1 (29/02/2024)
|
Versione 2.6c1 (29/02/2024)
|
||||||
- Modif : in FacesBySaw e LapJoint migliorato calcolo area non pinzabile in testa HCING e coda TCING
|
- Modif : in FacesBySaw e LapJoint migliorato calcolo area non pinzabile in testa HCING e coda TCING
|
||||||
- Modif : vari miglioramenti all'ordinamento delle lavorazioni
|
- Modif : vari miglioramenti all'ordinamento delle lavorazioni
|
||||||
|
|||||||
+1
-1
@@ -2,5 +2,5 @@
|
|||||||
-- Gestione della versione di Beam
|
-- Gestione della versione di Beam
|
||||||
|
|
||||||
NAME = 'Beam'
|
NAME = 'Beam'
|
||||||
VERSION = '2.6c3'
|
VERSION = '2.6c1'
|
||||||
MIN_EXE = '2.6a1'
|
MIN_EXE = '2.6a1'
|
||||||
|
|||||||
Reference in New Issue
Block a user