Compare commits

..

11 Commits

Author SHA1 Message Date
andrea.villa ba6142dbc5 Merge remote-tracking branch 'origin/develop' 2026-04-23 12:26:44 +02:00
andrea.villa cfaa30d55c Update Log e Version 2026-04-23 12:26:31 +02:00
andrea.villa ea79ac1366 Tutte le forature vengono ordinate per diametro decrescente 2026-04-22 12:11:35 +02:00
luca.mazzoleni 2468599200 Merge tag '3.1d1' into develop
3.1d1
2026-04-08 16:12:24 +02:00
luca.mazzoleni ea598ef7ff Merge branch 'release/3.1d1' 2026-04-08 16:12:13 +02:00
luca.mazzoleni 9290d3f1cf update log e version 2026-04-08 16:11:59 +02:00
luca.mazzoleni 698a913a93 Merge branch 'develop' of https://gitlab.steamware.net/egaltech/DataWall into develop 2026-04-08 12:28:31 +02:00
luca.mazzoleni f62c42475e - in LapJoint migliorate tasche. Ora usa sempre la fresa migliore e se necessario limita l'escursione con il parametro Open 2026-04-08 12:28:27 +02:00
andrea.villa f397b220b9 In WallExec, quando si disattivano le feature in doppio, si verifica che effettivamente esista la Mirror 2026-04-07 11:57:45 +02:00
luca.mazzoleni d19cf453e0 Merge branch 'master' into develop 2026-04-02 13:10:58 +02:00
luca.mazzoleni a9d497925d update log 2026-04-02 13:10:49 +02:00
4 changed files with 31 additions and 56 deletions
+13 -47
View File
@@ -2304,7 +2304,7 @@ end
-- se necessario forza la tasca a chiusa
local function VerifyPocket( Proc, nFacet, dElev, nRawId)
local bForceClosedPocket = false
local dToolOvershoot
local b3Raw = EgtGetRawPartBBox( nRawId)
-- verifico se la feature è sul bordo (non ci sono altri pezzi davanti alla tasca). Se è sul bordo, l'utensile potrà attaccare da fuori.
local bIsFeatureOnEdge = ( Proc.Topology == 'Groove' and Proc.Fct == 4 and Proc.DistanceToNearestParts.Front > b3Raw:getDimY())
@@ -2366,21 +2366,15 @@ local function VerifyPocket( Proc, nFacet, dElev, nRawId)
if Proc.AffectedFaces.Right then
dDistanceToNearestPart = min( dDistanceToNearestPart, Proc.DistanceToNearestParts.Right)
end
-- se la distanza è inferiore ad un valore minimo forzo la tasca chiusa per evitare che la ricerca utensile fallisca
local dMinToolDiameter = 25
if dDistanceToNearestPart < dMinToolDiameter / 2 - 10 * GEO.EPS_SMALL then
bForceClosedPocket = true
dDistanceToNearestPart = dMaxDiameter
end
local bExcludeNoTipFeed = ( Proc.Topology == 'Pocket')
-- recupero la lavorazione
local bUseDElevToFindPocketing = true
local sPocketing = WM.FindPocketing( 'Pocket', dMaxDiameter, dElev, nil, nil, bExcludeNoTipFeed, dDistanceToNearestPart)
local sPocketing = WM.FindPocketing( 'Pocket', dMaxDiameter, dElev, nil, nil, bExcludeNoTipFeed)
-- se tasca troppo profonda cerco senza elevazione e limiterò la profondità
if not sPocketing then
bUseDElevToFindPocketing = false
sPocketing = WM.FindPocketing( 'Pocket', dMaxDiameter, nil, nil, nil, bExcludeNoTipFeed, dDistanceToNearestPart)
sPocketing = WM.FindPocketing( 'Pocket', dMaxDiameter, nil, nil, nil, bExcludeNoTipFeed)
end
local dMillDiam = 20
local dMaxDepth = 0
@@ -2391,7 +2385,7 @@ local function VerifyPocket( Proc, nFacet, dElev, nRawId)
-- se doppio cerco una lavorazione adatta
if Proc.Double and Proc.Double == 2 then
local sPocketingBackup = sPocketing
sPocketing = WM.FindPocketing( 'Pocket', dMaxDiameter, EgtIf( bUseDElevToFindPocketing, dElev, nil), nil, 'H1', true, dDistanceToNearestPart)
sPocketing = WM.FindPocketing( 'Pocket', dMaxDiameter, EgtIf( bUseDElevToFindPocketing, dElev, nil), nil, 'H1', true)
if not WM.IsMachiningOkForDouble( sPocketing) then
Proc.Double = 0
sPocketing = sPocketingBackup
@@ -2404,41 +2398,10 @@ local function VerifyPocket( Proc, nFacet, dElev, nRawId)
dMillDiam = EgtTdbGetCurrToolParam( MCH_TP.DIAM) or dMillDiam
end
end
-- verifico se la lavorazione (o il suo eventuale mirror) potrebbe danneggiare le parti limitrofe e devo quindi forzare una tasca chiusa
local bIsMachiningDamagingOtherParts = IsMachiningDamagingOtherParts( Proc, dMillDiam, nRawId)
if bIsMachiningDamagingOtherParts then
bForceClosedPocket = true
end
-- disattivo il doppio se devo forzare una tasca chiusa ma l'altra no
if Proc.Double and Proc.Double > 0 then
local bIsMirrorMachiningDamagingOtherParts = IsMachiningDamagingOtherParts( Proc.Mirror, dMillDiam, nRawId)
if bIsMachiningDamagingOtherParts ~= bIsMirrorMachiningDamagingOtherParts then
Proc.Double = 0
end
end
dToolOvershoot = min( dDistanceToNearestPart, dMillDiam / 2 + 1)
-- altrimenti diametro utensile troppo piccolo: devo forzare tasca chiusa
else
bForceClosedPocket = true
end
-- se tasca chiusa cerco lavorazione con diametro massimo pari a dimensione tasca e riverifico per eventuale doppio
if bForceClosedPocket then
dMaxDiameter = 0.9 * dStartDiameter
bUseDElevToFindPocketing = true
sPocketing = WM.FindPocketing( 'Pocket', dMaxDiameter, dElev, nil, nil, bExcludeNoTipFeed, dDistanceToNearestPart)
if not sPocketing then
bUseDElevToFindPocketing = false
sPocketing = WM.FindPocketing( 'Pocket', dMaxDiameter, nil, nil, nil, bExcludeNoTipFeed, dDistanceToNearestPart)
end
-- se doppio cerco una lavorazione adatta
if Proc.Double and Proc.Double == 2 then
local sPocketingBackup = sPocketing
sPocketing = WM.FindPocketing( 'Pocket', dMaxDiameter, EgtIf( bUseDElevToFindPocketing, dElev, nil), nil, 'H1', true, dDistanceToNearestPart)
if not WM.IsMachiningOkForDouble( sPocketing) then
Proc.Double = 0
sPocketing = sPocketingBackup
end
end
dToolOvershoot = 0
end
-- recupero dati utensile
@@ -2451,7 +2414,7 @@ local function VerifyPocket( Proc, nFacet, dElev, nRawId)
end
end
return sPocketing, bForceClosedPocket, bIsFeatureOnEdge, sTuuid, dMillDiam, dMaxDepth, dThDiam
return sPocketing, dToolOvershoot, bIsFeatureOnEdge, sTuuid, dMillDiam, dMaxDepth, dThDiam
end
---------------------------------------------------------------------
local function MakeByPocketing( Proc, nFacet, nRawId, b3Raw, bCheckQPar)
@@ -2462,7 +2425,7 @@ local function MakeByPocketing( Proc, nFacet, nRawId, b3Raw, bCheckQPar)
local nAddGrpId = WL.GetAddGroup( Proc.PartId)
local nNewProc = RemoveBottomFaceAndReorder( Proc, nAddGrpId, nFacet)
-- cerco lavorazione adatta e recupero i dati utensile
local sPocketing, bForceClosedPocket, bIsFeatureOnEdge, sTuuid, dMillDiam, dMaxDepth, dThDiam = VerifyPocket( Proc, nFacet, dElev, nRawId)
local sPocketing, dToolOvershoot, bIsFeatureOnEdge, sTuuid, dMillDiam, dMaxDepth, dThDiam = VerifyPocket( Proc, nFacet, dElev, nRawId)
if not sPocketing then
local sErr = 'Error : pocketing not found in library'
EgtOutLog( sErr)
@@ -2513,8 +2476,11 @@ local function MakeByPocketing( Proc, nFacet, nRawId, b3Raw, bCheckQPar)
sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxOptSize', 0.1)
EgtSetMachiningParam( MCH_MP.SUBTYPE, MCH_POCK_SUB.SPIRALOUT)
end
-- setto eventuale nota per forzare tasca chiusa
if bForceClosedPocket then sUserNotes = EgtSetValInNotes( sUserNotes, 'Open', 0) end
-- setto eventuale nota per forzare massima uscita dalla geometria
if dToolOvershoot then
sUserNotes = EgtSetValInNotes( sUserNotes, 'Open', dToolOvershoot)
sUserNotes = EgtSetValInNotes( sUserNotes, 'ExtProj', dToolOvershoot)
end
-- setto eventuale nota per forzare attacco esterno, fino ad un certo spessore del grezzo
local dMaxRawThicknessToStartOut = 75
if bIsFeatureOnEdge and ( not Proc.Double or Proc.Double == 0) then sUserNotes = EgtSetValInNotes( sUserNotes, 'OpenMinSafe', dMaxRawThicknessToStartOut) end
+5 -7
View File
@@ -525,10 +525,8 @@ local function SortMach( nPhase, PrevMch, nPartId, nType, StartNames, bExistName
if EgtGetOperationPhase( nOperId) == nPhase and ( nType & nOperType) == nOperType and
( not nPartId or EgtGetInfo( nOperId, 'Part', 'i') == nPartId) and
( not nPriority or EgtGetInfo( nOperId, 'PRIORITY', 'i') == nPriority ) and
( not StartNames or ( bExistName and ContainsStartName( nOperId, StartNames)) or
( not bExistName and not ContainsStartName( nOperId, StartNames))) and
( not sInfo or ( bExistInfo and EgtGetInfo( nOperId, sInfo, 'i') == 1) or
( not bExistInfo and EgtGetInfo( nOperId, sInfo, 'i') ~= 1)) then
( not StartNames or ( bExistName and ContainsStartName( nOperId, StartNames)) or ( not bExistName and not ContainsStartName( nOperId, StartNames))) and
( not sInfo or ( bExistInfo and EgtGetInfo( nOperId, sInfo, 'i') == 1) or ( not bExistInfo and EgtGetInfo( nOperId, sInfo, 'i') ~= 1)) then
-- non si deve cambiare lo stato di attivazione della lavorazione (se disabilitata errata)
EgtSetCurrMachining( nOperId)
if not EgtIsMachiningEmpty() then
@@ -652,8 +650,8 @@ local function SortMachinings( nPhase, PrevMch, nPartId, nPriority)
PrevMch = SortMach( nPhase, PrevMch, nPartId, MCH_OY.POCKETING, { 'PreDrill_'}, true, nil, nil, nil, nil, nil, nPriority)
-- Forature e Svuotature
PrevMch = SortMach( nPhase, PrevMch, nPartId, MCH_OY.DRILLING + MCH_OY.POCKETING + MCH_OY.MILLING, { 'SideMill_', 'Clean_'}, false, 'MOVE_AFTER', false, false, true, nil, nPriority)
-- -- Forature ***
-- PrevMch = SortMach( nPhase, PrevMch, nPartId, MCH_OY.DRILLING, nil, nil, 'MOVE_AFTER', false)
-- Forature ***
PrevMch = SortMach( nPhase, PrevMch, nPartId, MCH_OY.DRILLING, nil, nil, nil, false, nil, true, nil, nil)
-- -- Svuotature ***
-- PrevMch = SortMach( nPhase, PrevMch, nPartId, MCH_OY.POCKETING, nil, nil, 'MOVE_AFTER', false)
-- -- Fresature che sono rifiniture di spigoli
@@ -1329,7 +1327,7 @@ function WallExec.ProcessFeatures()
if Proc.Double and Proc.Double > 0 then
for j = 1, #vProc do
local ProcMirror = vProc[j]
if Proc.Mirror.Id == ProcMirror.Id then
if Proc.Mirror and ( Proc.Mirror.Id == ProcMirror.Id) then
-- per i fori l'operazione si basa sulla geometria ausiliaria
if Proc.TopologyLongName == 'DRILLING' then
local AuxId = EgtGetInfo( ProcMirror.Id, 'AUXID', 'i') or 0
+11
View File
@@ -1,5 +1,16 @@
==== Wall Update Log ====
Versione 3.1d2 (23/04/2026)
- Modif : Tutte le forature vengono ordinate per diametro decrescente
Versione 3.1d1 (08/04/2026)
- Modif : in LapJoint, svuotature, l'uscita dalla geometria viene limitata della massima quantità che non rovina il pezzo vicino
- Fixed : correzione per chiodature
Versione 3.1c1 (02/04/2026)
- Added : in CleanCorner si gestiscono angoli diversi da 30
- Fixed : in puliture con sega a catena corrett scelta errata del lato
Versione 2.7k1 (20/11/2025)
- Modif : in LapJoint con Q08=1 ora si fanno con milling anche tasche a L cieche da sopra
- Fixed : in LapJoint correzione alle lavorazioni inclinate
+2 -2
View File
@@ -2,5 +2,5 @@
-- Gestione della versione di Wall
NAME = 'Wall'
VERSION = '3.1c1'
MIN_EXE = '3.1a1'
VERSION = '3.1d2'
MIN_EXE = '3.1c1'