Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 624a188481 | |||
| d3c2787f81 | |||
| 93b4adfdec | |||
| 1d672af81e | |||
| 8a79a7838e | |||
| 172fc5180a | |||
| 6064a19a2c | |||
| 5cc85a8735 | |||
| 7af9a9affb | |||
| e26a42dfd9 |
+147
-130
@@ -49,6 +49,7 @@
|
|||||||
-- 2022/06/29 Migliorate lavorazioni con fresatura di lato per L30 se parametro Q03=2. Ora con 4 facce / 3 facce a L può entrare una fresa grande fino al doppio dell'altezza della tasca / doppio della dimensione minima.
|
-- 2022/06/29 Migliorate lavorazioni con fresatura di lato per L30 se parametro Q03=2. Ora con 4 facce / 3 facce a L può entrare una fresa grande fino al doppio dell'altezza della tasca / doppio della dimensione minima.
|
||||||
-- 2022/07/05 Modifiche per sega a catena di testa e relativa MaxElev.
|
-- 2022/07/05 Modifiche per sega a catena di testa e relativa MaxElev.
|
||||||
-- 2022/07/12 In MakeByChainOrSaw aggiunto check per feature L20 usata in modo improprio e, nel caso, si passa a una lavorazione tasca.
|
-- 2022/07/12 In MakeByChainOrSaw aggiunto check per feature L20 usata in modo improprio e, nel caso, si passa a una lavorazione tasca.
|
||||||
|
-- 2022/07/19 Profondamente semplificata la funzione SetOpenSide. Modificata la MakeMoreFaces per cercare sempre OpenPocket in determinate condizioni.
|
||||||
-- 2022/08/11 Aggiunta lavorazione tunnel splittata con sega a catena per tutte le macchine ad esclusione della Fast.
|
-- 2022/08/11 Aggiunta lavorazione tunnel splittata con sega a catena per tutte le macchine ad esclusione della Fast.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
@@ -1325,142 +1326,157 @@ end
|
|||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
local function SetOpenSide( nPathInt, vtOrtho, b3Solid, nAddGrpId, nStartPoint)
|
local function SetOpenSide( nPathInt, vtOrtho, b3Solid, nAddGrpId, nStartPoint)
|
||||||
|
|
||||||
-- fondo tra loro le curve compatibili
|
-- fondo tra loro le curve compatibili
|
||||||
EgtMergeCurvesInCurveCompo( nPathInt)
|
EgtMergeCurvesInCurveCompo( nPathInt)
|
||||||
local nStartIdEnt, nNumEnt = EgtCurveDomain( nPathInt)
|
local nStartIdEnt, nNumEnt = EgtCurveDomain( nPathInt)
|
||||||
local pLastPIni, pLastPEnd
|
local pLastPIni, pLastPEnd
|
||||||
|
|
||||||
-- faccio una copia della curva e la esplodo
|
-- faccio una copia della curva e la esplodo
|
||||||
if nStartIdEnt then
|
if nStartIdEnt then
|
||||||
-- prendo i punti
|
-- ciclo i lati della curva e controllo per ognuno se giace in uno dei piani limite del pezzo: se sì allora il lato è aperto
|
||||||
for i = 1, nNumEnt do
|
for i = 1, nNumEnt do
|
||||||
local pPini = EgtUP( nPathInt, (i-1), GDB_RT.GLOB)
|
local pPini = EgtUP( nPathInt, (i-1), GDB_RT.GLOB)
|
||||||
local pPend = EgtUP( nPathInt, EgtIf( i == nNumEnt, 0, i), GDB_RT.GLOB)
|
local pPend = EgtUP( nPathInt, EgtIf( i == nNumEnt, 0, i), GDB_RT.GLOB)
|
||||||
-- Se normale lungo la Z considero il box in X e Y
|
if ( abs( pPini:getX() - b3Solid:getMax():getX()) < 10 * GEO.EPS_SMALL and abs( pPend:getX() - b3Solid:getMax():getX()) < 10 * GEO.EPS_SMALL) or
|
||||||
if abs(vtOrtho:getZ()) > 0.999 then
|
( abs( pPini:getX() - b3Solid:getMin():getX()) < 10 * GEO.EPS_SMALL and abs( pPend:getX() - b3Solid:getMin():getX()) < 10 * GEO.EPS_SMALL) or
|
||||||
-- se corrisponde a X
|
( abs( pPini:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL) or
|
||||||
if ( abs( pPini:getX() - b3Solid:getMax():getX()) < 10 * GEO.EPS_SMALL and abs( pPend:getX() - b3Solid:getMax():getX()) < 10 * GEO.EPS_SMALL) or
|
( abs( pPini:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL) or
|
||||||
( abs( pPini:getX() - b3Solid:getMin():getX()) < 10 * GEO.EPS_SMALL and abs( pPend:getX() - b3Solid:getMin():getX()) < 10 * GEO.EPS_SMALL) then
|
( abs( pPini:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL) or
|
||||||
-- setto l'entità open
|
( abs( pPini:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL) then
|
||||||
local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
-- scrivo nelle proprietà della curva quali sono i lati aperti
|
||||||
if #sActInfo > 0 then
|
local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
||||||
EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
if #sActInfo > 0 then
|
||||||
else
|
-- se ci sono già altri lati aperti
|
||||||
EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
||||||
end
|
else
|
||||||
-- prendo i punti per eventuale modifica del punto di inizio percorso
|
-- se è l'unico
|
||||||
pLastPIni = pPini
|
EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
||||||
pLastPEnd = pPend
|
|
||||||
-- altrimenti se corrisponde a Y
|
|
||||||
elseif ( abs( pPini:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL) or
|
|
||||||
( abs( pPini:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL) then
|
|
||||||
-- setto l'entità open
|
|
||||||
local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
|
||||||
if #sActInfo > 0 then
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
|
||||||
else
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
|
||||||
end
|
|
||||||
-- prendo i punti per eventuale modifica del punto di inizio percorso
|
|
||||||
pLastPIni = pPini
|
|
||||||
pLastPEnd = pPend
|
|
||||||
end
|
|
||||||
-- altrimenti se normale lungo la Y considero il box in X e Z
|
|
||||||
elseif abs(vtOrtho:getZ()) < 0.001 and abs(vtOrtho:getY()) > 0.999 then
|
|
||||||
-- se corrisponde a X
|
|
||||||
if ( abs( pPini:getX() - b3Solid:getMax():getX()) < 10 * GEO.EPS_SMALL and abs( pPend:getX() - b3Solid:getMax():getX()) < 10 * GEO.EPS_SMALL) or
|
|
||||||
( abs( pPini:getX() - b3Solid:getMin():getX()) < 10 * GEO.EPS_SMALL and abs( pPend:getX() - b3Solid:getMin():getX()) < 10 * GEO.EPS_SMALL) then
|
|
||||||
-- setto l'entità open
|
|
||||||
local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
|
||||||
if #sActInfo > 0 then
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
|
||||||
else
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
|
||||||
end
|
|
||||||
-- prendo i punti per eventuale modifica del punto di inizio percorso
|
|
||||||
pLastPIni = pPini
|
|
||||||
pLastPEnd = pPend
|
|
||||||
-- altrimenti se corrisponde a Z
|
|
||||||
elseif ( abs( pPini:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL) or
|
|
||||||
( abs( pPini:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL) then
|
|
||||||
-- setto l'entità open
|
|
||||||
local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
|
||||||
if #sActInfo > 0 then
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
|
||||||
else
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
|
||||||
end
|
|
||||||
-- prendo i punti per eventuale modifica del punto di inizio percorso
|
|
||||||
pLastPIni = pPini
|
|
||||||
pLastPEnd = pPend
|
|
||||||
end
|
|
||||||
-- caso che non dovrebbe mai capitare ma gestito per completezza
|
|
||||||
-- altrimenti se normale lungo la X considero il box in Y e Z
|
|
||||||
elseif abs(vtOrtho:getZ()) < 0.001 and abs(vtOrtho:getX()) > 0.999 then
|
|
||||||
-- se corrisponde a Y
|
|
||||||
if ( abs( pPini:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL) or
|
|
||||||
( abs( pPini:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL) then
|
|
||||||
-- setto l'entità open
|
|
||||||
local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
|
||||||
if #sActInfo > 0 then
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
|
||||||
else
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
|
||||||
end
|
|
||||||
-- prendo i punti per eventuale modifica del punto di inizio percorso
|
|
||||||
pLastPIni = pPini
|
|
||||||
pLastPEnd = pPend
|
|
||||||
-- altrimenti se corrisponde a Z
|
|
||||||
elseif ( abs( pPini:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL) or
|
|
||||||
( abs( pPini:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL) then
|
|
||||||
-- setto l'entità open
|
|
||||||
local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
|
||||||
if #sActInfo > 0 then
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
|
||||||
else
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
|
||||||
end
|
|
||||||
-- prendo i punti per eventuale modifica del punto di inizio percorso
|
|
||||||
pLastPIni = pPini
|
|
||||||
pLastPEnd = pPend
|
|
||||||
end
|
|
||||||
-- se asse Z orizzontale verifico se si avvicina piú a Y
|
|
||||||
elseif abs(vtOrtho:getZ()) < 0.001 then
|
|
||||||
if abs(vtOrtho:getY()) > 0.75 then
|
|
||||||
-- se corrisponde a Z
|
|
||||||
if ( abs( pPini:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL) or
|
|
||||||
( abs( pPini:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL) then
|
|
||||||
-- setto l'entità open
|
|
||||||
local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
|
||||||
if #sActInfo > 0 then
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
|
||||||
else
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
|
||||||
end
|
|
||||||
-- prendo i punti per eventuale modifica del punto di inizio percorso
|
|
||||||
pLastPIni = pPini
|
|
||||||
pLastPEnd = pPend
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- se asse Y a 0 (fresa ne davanti ne dietro) verifico se si avvicina piú a Z+
|
|
||||||
elseif abs(vtOrtho:getY()) < 0.001 then
|
|
||||||
if abs(vtOrtho:getZ()) > 0.75 then
|
|
||||||
-- se corrisponde a Y
|
|
||||||
if ( abs( pPini:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL) or
|
|
||||||
( abs( pPini:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL) then
|
|
||||||
-- setto l'entità open
|
|
||||||
local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
|
||||||
if #sActInfo > 0 then
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
|
||||||
else
|
|
||||||
EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
|
||||||
end
|
|
||||||
-- prendo i punti per eventuale modifica del punto di inizio percorso
|
|
||||||
pLastPIni = pPini
|
|
||||||
pLastPEnd = pPend
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
-- inizio - 20220719 codice vecchio mantenuto per backup
|
||||||
|
-- -- Se normale lungo la Z considero il box in X e Y
|
||||||
|
-- if abs(vtOrtho:getZ()) > 0.999 then
|
||||||
|
-- -- se corrisponde a X
|
||||||
|
-- if ( abs( pPini:getX() - b3Solid:getMax():getX()) < 10 * GEO.EPS_SMALL and abs( pPend:getX() - b3Solid:getMax():getX()) < 10 * GEO.EPS_SMALL) or
|
||||||
|
-- ( abs( pPini:getX() - b3Solid:getMin():getX()) < 10 * GEO.EPS_SMALL and abs( pPend:getX() - b3Solid:getMin():getX()) < 10 * GEO.EPS_SMALL) then
|
||||||
|
-- -- setto l'entità open
|
||||||
|
-- local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
||||||
|
-- if #sActInfo > 0 then
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
||||||
|
-- else
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
||||||
|
-- end
|
||||||
|
-- -- prendo i punti per eventuale modifica del punto di inizio percorso
|
||||||
|
-- pLastPIni = pPini
|
||||||
|
-- pLastPEnd = pPend
|
||||||
|
-- -- altrimenti se corrisponde a Y
|
||||||
|
-- elseif ( abs( pPini:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL) or
|
||||||
|
-- ( abs( pPini:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL) then
|
||||||
|
-- -- setto l'entità open
|
||||||
|
-- local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
||||||
|
-- if #sActInfo > 0 then
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
||||||
|
-- else
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
||||||
|
-- end
|
||||||
|
-- -- prendo i punti per eventuale modifica del punto di inizio percorso
|
||||||
|
-- pLastPIni = pPini
|
||||||
|
-- pLastPEnd = pPend
|
||||||
|
-- end
|
||||||
|
-- -- altrimenti se normale lungo la Y considero il box in X e Z
|
||||||
|
-- elseif abs(vtOrtho:getZ()) < 0.001 and abs(vtOrtho:getY()) > 0.999 then
|
||||||
|
-- -- se corrisponde a X
|
||||||
|
-- if ( abs( pPini:getX() - b3Solid:getMax():getX()) < 10 * GEO.EPS_SMALL and abs( pPend:getX() - b3Solid:getMax():getX()) < 10 * GEO.EPS_SMALL) or
|
||||||
|
-- ( abs( pPini:getX() - b3Solid:getMin():getX()) < 10 * GEO.EPS_SMALL and abs( pPend:getX() - b3Solid:getMin():getX()) < 10 * GEO.EPS_SMALL) then
|
||||||
|
-- -- setto l'entità open
|
||||||
|
-- local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
||||||
|
-- if #sActInfo > 0 then
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
||||||
|
-- else
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
||||||
|
-- end
|
||||||
|
-- -- prendo i punti per eventuale modifica del punto di inizio percorso
|
||||||
|
-- pLastPIni = pPini
|
||||||
|
-- pLastPEnd = pPend
|
||||||
|
-- -- altrimenti se corrisponde a Z
|
||||||
|
-- elseif ( abs( pPini:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL) or
|
||||||
|
-- ( abs( pPini:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL) then
|
||||||
|
-- -- setto l'entità open
|
||||||
|
-- local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
||||||
|
-- if #sActInfo > 0 then
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
||||||
|
-- else
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
||||||
|
-- end
|
||||||
|
-- -- prendo i punti per eventuale modifica del punto di inizio percorso
|
||||||
|
-- pLastPIni = pPini
|
||||||
|
-- pLastPEnd = pPend
|
||||||
|
-- end
|
||||||
|
-- -- caso che non dovrebbe mai capitare ma gestito per completezza
|
||||||
|
-- -- altrimenti se normale lungo la X considero il box in Y e Z
|
||||||
|
-- elseif abs(vtOrtho:getZ()) < 0.001 and abs(vtOrtho:getX()) > 0.999 then
|
||||||
|
-- -- se corrisponde a Y
|
||||||
|
-- if ( abs( pPini:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL) or
|
||||||
|
-- ( abs( pPini:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL) then
|
||||||
|
-- -- setto l'entità open
|
||||||
|
-- local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
||||||
|
-- if #sActInfo > 0 then
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
||||||
|
-- else
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
||||||
|
-- end
|
||||||
|
-- -- prendo i punti per eventuale modifica del punto di inizio percorso
|
||||||
|
-- pLastPIni = pPini
|
||||||
|
-- pLastPEnd = pPend
|
||||||
|
-- -- altrimenti se corrisponde a Z
|
||||||
|
-- elseif ( abs( pPini:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL) or
|
||||||
|
-- ( abs( pPini:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL) then
|
||||||
|
-- -- setto l'entità open
|
||||||
|
-- local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
||||||
|
-- if #sActInfo > 0 then
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
||||||
|
-- else
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
||||||
|
-- end
|
||||||
|
-- -- prendo i punti per eventuale modifica del punto di inizio percorso
|
||||||
|
-- pLastPIni = pPini
|
||||||
|
-- pLastPEnd = pPend
|
||||||
|
-- end
|
||||||
|
-- -- se asse Z orizzontale verifico se si avvicina piú a Y
|
||||||
|
-- elseif abs(vtOrtho:getZ()) < 0.001 then
|
||||||
|
-- if abs(vtOrtho:getY()) > 0.75 then
|
||||||
|
-- -- se corrisponde a Z
|
||||||
|
-- if ( abs( pPini:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMax():getZ()) < 10 * GEO.EPS_SMALL) or
|
||||||
|
-- ( abs( pPini:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL and abs( pPend:getZ() - b3Solid:getMin():getZ()) < 10 * GEO.EPS_SMALL) then
|
||||||
|
-- -- setto l'entità open
|
||||||
|
-- local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
||||||
|
-- if #sActInfo > 0 then
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
||||||
|
-- else
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
||||||
|
-- end
|
||||||
|
-- -- prendo i punti per eventuale modifica del punto di inizio percorso
|
||||||
|
-- pLastPIni = pPini
|
||||||
|
-- pLastPEnd = pPend
|
||||||
|
-- end
|
||||||
|
-- end
|
||||||
|
-- -- se asse Y a 0 (fresa ne davanti ne dietro) verifico se si avvicina piú a Z+
|
||||||
|
-- elseif abs(vtOrtho:getY()) < 0.001 then
|
||||||
|
-- if abs(vtOrtho:getZ()) > 0.75 then
|
||||||
|
-- -- se corrisponde a Y
|
||||||
|
-- if ( abs( pPini:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMax():getY()) < 10 * GEO.EPS_SMALL) or
|
||||||
|
-- ( abs( pPini:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL and abs( pPend:getY() - b3Solid:getMin():getY()) < 10 * GEO.EPS_SMALL) then
|
||||||
|
-- -- setto l'entità open
|
||||||
|
-- local sActInfo = EgtGetInfo( nPathInt, 'OPEN', 's') or ''
|
||||||
|
-- if #sActInfo > 0 then
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', sActInfo .. ',' .. (i-1))
|
||||||
|
-- else
|
||||||
|
-- EgtSetInfo( nPathInt, 'OPEN', (i-1))
|
||||||
|
-- end
|
||||||
|
-- -- prendo i punti per eventuale modifica del punto di inizio percorso
|
||||||
|
-- pLastPIni = pPini
|
||||||
|
-- pLastPEnd = pPend
|
||||||
|
-- end
|
||||||
|
-- end
|
||||||
|
-- fine - 20220719 codice vecchio mantenuto per backup
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- se devo cambiare il punto di partenza
|
-- se devo cambiare il punto di partenza
|
||||||
@@ -1469,7 +1485,7 @@ local function SetOpenSide( nPathInt, vtOrtho, b3Solid, nAddGrpId, nStartPoint)
|
|||||||
-- calcolo il punto medio con gli ultimi punti utilizzati
|
-- calcolo il punto medio con gli ultimi punti utilizzati
|
||||||
local ptPs = ( pLastPIni + pLastPEnd) / 2
|
local ptPs = ( pLastPIni + pLastPEnd) / 2
|
||||||
EgtChangeClosedCurveStartPoint( nPathInt, ptPs, GDB_RT.GLOB)
|
EgtChangeClosedCurveStartPoint( nPathInt, ptPs, GDB_RT.GLOB)
|
||||||
-- se devo eliminare la parte open
|
-- se devo eliminare la parte open, nei casi in cui la funzione caller non faccia in automatico il check
|
||||||
if nStartPoint == 2 then
|
if nStartPoint == 2 then
|
||||||
EgtRemoveCurveCompoCurve( nPathInt, true)
|
EgtRemoveCurveCompoCurve( nPathInt, true)
|
||||||
EgtRemoveCurveCompoCurve( nPathInt, false)
|
EgtRemoveCurveCompoCurve( nPathInt, false)
|
||||||
@@ -1478,7 +1494,6 @@ local function SetOpenSide( nPathInt, vtOrtho, b3Solid, nAddGrpId, nStartPoint)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1797,7 +1812,7 @@ local function MakeRoundCleanContour( Proc, nPhase, nRawId, nPartId, b3Raw,
|
|||||||
end
|
end
|
||||||
-- normale alla faccia aggiunta
|
-- normale alla faccia aggiunta
|
||||||
vtN1 = Vector3d( vtOrtho)
|
vtN1 = Vector3d( vtOrtho)
|
||||||
-- imposto i lati aperti
|
-- imposto i lati aperti e con il parametro 2 li cancello per evitare di lavorarli
|
||||||
SetOpenSide( nFirstId, vtOrtho, b3Solid, nAddGrpId, 2)
|
SetOpenSide( nFirstId, vtOrtho, b3Solid, nAddGrpId, 2)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -4299,6 +4314,7 @@ local function ManageAntiSplintByMill( Proc, nPhase, nRawId, nPartId, b3Raw,
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
vtN1 = Vector3d(vtOrtho)
|
vtN1 = Vector3d(vtOrtho)
|
||||||
|
-- imposto i lati aperti e con il parametro 2 li cancello per evitare di lavorarli
|
||||||
local bOkPath = SetOpenSide( nFirstId, vtOrtho, b3Solid, nAddGrpId, 2)
|
local bOkPath = SetOpenSide( nFirstId, vtOrtho, b3Solid, nAddGrpId, 2)
|
||||||
-- se non ho un percorso chiuso estraggo i percorsi
|
-- se non ho un percorso chiuso estraggo i percorsi
|
||||||
if bOkPath then
|
if bOkPath then
|
||||||
@@ -5165,7 +5181,8 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|||||||
-- o passare subito dalla lavorazione con lama/sega catena
|
-- o passare subito dalla lavorazione con lama/sega catena
|
||||||
if ( bTrySidePocketAtFirst and Proc.Fct == 3 and bIsU) or bForceSideMill then
|
if ( bTrySidePocketAtFirst and Proc.Fct == 3 and bIsU) or bForceSideMill then
|
||||||
-- lavoro con svuotature (singola o doppia contrapposta)
|
-- lavoro con svuotature (singola o doppia contrapposta)
|
||||||
local sMyMchFind = EgtIf( bForceSideMill, 'OpenPocket', 'Pocket')
|
-- 20220719 -> settate tutte come OpenPocket; prima era Pocket
|
||||||
|
local sMyMchFind = 'OpenPocket'
|
||||||
local dDiamTool = 100
|
local dDiamTool = 100
|
||||||
local nPathInt, nSurfInt, bOneShot, nFirstMachId
|
local nPathInt, nSurfInt, bOneShot, nFirstMachId
|
||||||
local bIs3Faces = true
|
local bIs3Faces = true
|
||||||
|
|||||||
Reference in New Issue
Block a user