- Tolto funzioni per chiodature in doppio
- Anche se ci viene passata origine 1, si considera come fosse la 3
This commit is contained in:
@@ -8,7 +8,7 @@ require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
if not EmtModifyHeadAuxDirection then error( 'A newer version of the program is required (minimum 2.3j5)') end
|
||||
|
||||
PP_VER = '3.1d1_DEV6'
|
||||
PP_VER = '3.1d1_DEV7'
|
||||
PP_NVER = '2.7.4.1'
|
||||
|
||||
-- Parametri macchina
|
||||
|
||||
+2
-86
@@ -63,9 +63,9 @@ end
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function GetOrigCorner( RefPos)
|
||||
if RefPos == 1 then
|
||||
return 'BR'
|
||||
return 'BL'
|
||||
elseif RefPos == 2 then
|
||||
return 'TR'
|
||||
return 'TL'
|
||||
elseif RefPos == 3 then
|
||||
return 'BL'
|
||||
elseif RefPos == 4 then
|
||||
@@ -76,90 +76,6 @@ local function GetOrigCorner( RefPos)
|
||||
end
|
||||
WallData.GetOrigCorner = GetOrigCorner
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function VerifyFeatureForDouble( Proc)
|
||||
-- deve essere attiva
|
||||
if Proc.Flg == 0 then return 0 end
|
||||
-- non deve essere già associata
|
||||
if Proc.Double then return 0 end
|
||||
-- deve essere contorno libero
|
||||
if not ( ( Proc.Grp == 0 or Proc.Grp == 3 or Proc.Grp == 4) and ( Proc.Prc == 250)) then return 0 end
|
||||
-- non deve essere una svuotatura
|
||||
if EgtGetInfo( Proc.Id, 'PCKT', 'i') == 1 then return 0 end
|
||||
-- deve richiedere utensili opportuni
|
||||
local nTool = EgtGetInfo( Proc.Id, 'CNT_DATA', 'i')
|
||||
if nTool ~= 12 and nTool ~= 14 then return 0 end
|
||||
-- deve avere una curva ausiliaria associata
|
||||
local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i')
|
||||
if not AuxId then return 0 end
|
||||
AuxId = AuxId + Proc.Id
|
||||
-- questa curva deve essere una retta orientata come gli assi X o Y
|
||||
if Proc.Box:getDimY() > 1 and Proc.Box:getDimX() > 1 then return 0 end
|
||||
local ptS = EgtSP( AuxId, GDB_ID.ROOT)
|
||||
local ptE = EgtEP( AuxId, GDB_ID.ROOT)
|
||||
-- va bene se diretta come l'asse X
|
||||
if abs( ptS:getY() - ptE:getY()) < 1 then
|
||||
if ptS:getX() <ptE:getX() then
|
||||
return 1, ptS, ptE
|
||||
else
|
||||
return 1, ptE, ptS
|
||||
end
|
||||
end
|
||||
-- va bene se diretta come l'asse Y
|
||||
if abs( ptS:getX() - ptE:getX()) < 1 then
|
||||
return 2, ptS, ptE
|
||||
end
|
||||
-- non va bene
|
||||
return 0
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function FindFeaturesInDouble( vProc, b3Raw)
|
||||
if not WallData.T14_T12_DOUBLE then return end
|
||||
local MIN_INTERAX = 1350
|
||||
local MIN_EXTRA_Y = 400
|
||||
for i = 1, #vProc do
|
||||
local Proc = vProc[i]
|
||||
local nType, ptS, ptE = VerifyFeatureForDouble( Proc)
|
||||
-- se linea lungo X
|
||||
if nType == 1 then
|
||||
for j = i + 1, #vProc do
|
||||
local OtherProc = vProc[j]
|
||||
local nOtherType, ptOtherS, ptOtherE = VerifyFeatureForDouble( OtherProc)
|
||||
if nOtherType == 1 and abs( ptS:getX() - ptOtherS:getX()) < 1 and abs( ptE:getX() - ptOtherE:getX()) < 1 then
|
||||
-- verifico l'interasse come distanza tra i due inizi
|
||||
local dDeltaY = ptS:getY() - ptOtherS:getY()
|
||||
if dDeltaY >= MIN_INTERAX then
|
||||
Proc.Double = 1
|
||||
Proc.Delta = dDeltaY
|
||||
EgtSetInfo( Proc.Id, 'CNT_DATA', '14')
|
||||
OtherProc.Flg = 0
|
||||
OtherProc.Double = -1
|
||||
break
|
||||
elseif dDeltaY <= -MIN_INTERAX then
|
||||
OtherProc.Double = 1
|
||||
OtherProc.Delta = -dDeltaY
|
||||
EgtSetInfo( OtherProc.Id, 'CNT_DATA', '14')
|
||||
Proc.Flg = 0
|
||||
Proc.Double = -1
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
-- se altrimenti linea lungo Y
|
||||
elseif nType == 2 then
|
||||
local dLen = ptS:getY() - ptE:getY()
|
||||
if abs( dLen) >= MIN_INTERAX + MIN_EXTRA_Y then
|
||||
Proc.Double = 2
|
||||
Proc.Delta = max( abs( dLen) / 2, MIN_INTERAX) * EgtIf( dLen > 0, 1, -1)
|
||||
Proc.DblAcc = abs( dLen) - abs( Proc.Delta)
|
||||
EgtSetInfo( Proc.Id, 'CNT_DATA', '14')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
WallData.FindFeaturesInDouble = FindFeaturesInDouble
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function GetSawHeadSide( dSpeed, sHead)
|
||||
if sHead == 'H2' then
|
||||
|
||||
Reference in New Issue
Block a user