Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 52aaea30ac |
+95
-25
@@ -46,16 +46,12 @@ local BeamData = {
|
|||||||
|
|
||||||
-- costanti riportate da mlde non necessarie per automatismo (sostituire con GetParameters o simile)
|
-- costanti riportate da mlde non necessarie per automatismo (sostituire con GetParameters o simile)
|
||||||
local MldeParameters = {}
|
local MldeParameters = {}
|
||||||
MldeParameters.NumericalControl = 'TPA' -- NUM o TPA o NUM_PLUS
|
|
||||||
MldeParameters.MinX = 0
|
|
||||||
MldeParameters.MaxX = 1350
|
|
||||||
MldeParameters.MinZ = -1350
|
|
||||||
MldeParameters.MaxZ = 0
|
|
||||||
MldeParameters.MillOffs = 177.35
|
MldeParameters.MillOffs = 177.35
|
||||||
MldeParameters.SawOffs = -242.68
|
MldeParameters.MinJoinVV = 75
|
||||||
MldeParameters.DeltaTabY = 898.0
|
MldeParameters.MinJoinSS = 100
|
||||||
MldeParameters.DeltaTabZ = -1017.8 + MldeParameters.MillOffs -- per TPA : -1013.3 + MillOffs -- per NUM : -838.4
|
MldeParameters.MinJoinLS = 290
|
||||||
MldeParameters.NewTopC = true
|
MldeParameters.MinJoinSL = 100
|
||||||
|
MldeParameters.MinJoinLL = 400
|
||||||
|
|
||||||
-- Aggiornamento con dati macchina personalizzati
|
-- Aggiornamento con dati macchina personalizzati
|
||||||
-- TODO sostituire con GetParameters o simile
|
-- TODO sostituire con GetParameters o simile
|
||||||
@@ -71,22 +67,6 @@ if EgtExistsFile( sData) then
|
|||||||
local Machine = dofile( sData)
|
local Machine = dofile( sData)
|
||||||
if Machine then
|
if Machine then
|
||||||
if Machine.Offsets then
|
if Machine.Offsets then
|
||||||
if Machine.Offsets.TIPO_CN == 0 then
|
|
||||||
MldeParameters.NumericalControl = 'NUM'
|
|
||||||
elseif Machine.Offsets.TIPO_CN == 2 then
|
|
||||||
MldeParameters.NumericalControl = 'NUM_PLUS'
|
|
||||||
else
|
|
||||||
MldeParameters.NumericalControl = 'TPA'
|
|
||||||
end
|
|
||||||
if Machine.Offsets.MAX_X then MldeParameters.MinX = - Machine.Offsets.MAX_X end
|
|
||||||
if Machine.Offsets.MIN_X then MldeParameters.MaxX = - Machine.Offsets.MIN_X end
|
|
||||||
if Machine.Offsets.MIN_Z then MldeParameters.MinZ = Machine.Offsets.MIN_Z end
|
|
||||||
if Machine.Offsets.MAX_Z then MldeParameters.MaxZ = Machine.Offsets.MAX_Z end
|
|
||||||
if Machine.Offsets.PIVOTFRESA then MldeParameters.MillOffs = - Machine.Offsets.PIVOTFRESA end
|
|
||||||
if Machine.Offsets.PIVOTLAMA then MldeParameters.SawOffs = - Machine.Offsets.PIVOTLAMA end
|
|
||||||
if Machine.Offsets.OFFSETX then MldeParameters.DeltaTabY = - Machine.Offsets.OFFSETX end
|
|
||||||
if Machine.Offsets.OFFSETZ then MldeParameters.DeltaTabZ = Machine.Offsets.OFFSETZ + EgtIf( MldeParameters.NumericalControl == 'TPA', MldeParameters.MillOffs, 0) end
|
|
||||||
if Machine.Offsets.NEWTOPC then MldeParameters.NewTopC = ( Machine.Offsets.NEWTOPC == 1) end
|
|
||||||
BeamData.MINRAW_S = max( BeamData.MINRAW_S, Machine.Offsets.MINRAW_S or BeamData.MINRAW_S)
|
BeamData.MINRAW_S = max( BeamData.MINRAW_S, Machine.Offsets.MINRAW_S or BeamData.MINRAW_S)
|
||||||
BeamData.MINRAW_L = max( BeamData.MINRAW_L, Machine.Offsets.MINRAW_L or BeamData.MINRAW_L)
|
BeamData.MINRAW_L = max( BeamData.MINRAW_L, Machine.Offsets.MINRAW_L or BeamData.MINRAW_L)
|
||||||
BeamData.CUT_EXTRA = Machine.Offsets.CUT_EXTRA or BeamData.CUT_EXTRA
|
BeamData.CUT_EXTRA = Machine.Offsets.CUT_EXTRA or BeamData.CUT_EXTRA
|
||||||
@@ -98,9 +78,15 @@ if EgtExistsFile( sData) then
|
|||||||
BeamData.LEN_SHORT_PART = Machine.Offsets.LEN_SHORT_PART or BeamData.LEN_SHORT_PART
|
BeamData.LEN_SHORT_PART = Machine.Offsets.LEN_SHORT_PART or BeamData.LEN_SHORT_PART
|
||||||
BeamData.MAX_HEIGHT2 = Machine.Offsets.MAX_HEIGHT2 or BeamData.MAX_HEIGHT2
|
BeamData.MAX_HEIGHT2 = Machine.Offsets.MAX_HEIGHT2 or BeamData.MAX_HEIGHT2
|
||||||
BeamData.OVM_MID = Machine.Offsets.OVM_MID or BeamData.OVM_MID
|
BeamData.OVM_MID = Machine.Offsets.OVM_MID or BeamData.OVM_MID
|
||||||
|
if Machine.Offsets.PIVOTFRESA then MldeParameters.MillOffs = - Machine.Offsets.PIVOTFRESA end
|
||||||
if Machine.Offsets.ROT90 ~= nil then BeamData.ROT90 = ( Machine.Offsets.ROT90 == 1) end
|
if Machine.Offsets.ROT90 ~= nil then BeamData.ROT90 = ( Machine.Offsets.ROT90 == 1) end
|
||||||
if Machine.Offsets.ROT180 ~= nil then BeamData.ROT180 = ( Machine.Offsets.ROT180 == 1) end
|
if Machine.Offsets.ROT180 ~= nil then BeamData.ROT180 = ( Machine.Offsets.ROT180 == 1) end
|
||||||
if Machine.Offsets.CUT_SIC then BeamData.CUT_SIC = EgtClamp( Machine.Offsets.CUT_SIC, 15, 50) end
|
if Machine.Offsets.CUT_SIC then BeamData.CUT_SIC = EgtClamp( Machine.Offsets.CUT_SIC, 15, 50) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_VV then MldeParameters.MinJoinVV = EgtClamp( Machine.Offsets.MIN_JOIN_VV, 60, 150) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_SS then MldeParameters.MinJoinSS = EgtClamp( Machine.Offsets.MIN_JOIN_SS, 80, 275) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_LS then MldeParameters.MinJoinLS = EgtClamp( Machine.Offsets.MIN_JOIN_LS, 250, 400) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_SL then MldeParameters.MinJoinSL = EgtClamp( Machine.Offsets.MIN_JOIN_SL, 80, 400) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_LL then MldeParameters.MinJoinLL = EgtClamp( Machine.Offsets.MIN_JOIN_LL, 300, 600) end
|
||||||
end
|
end
|
||||||
if Machine.Trave then
|
if Machine.Trave then
|
||||||
BeamData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH
|
BeamData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH
|
||||||
@@ -114,6 +100,90 @@ if EgtExistsFile( sData) then
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function GetSectionCoeff( dW, dH, dL)
|
||||||
|
local SEZ_L = 80000
|
||||||
|
local SEZ_S = 20000
|
||||||
|
local LEN_SMALL = 2000
|
||||||
|
local dSez = dW * dH
|
||||||
|
if dSez <= SEZ_S then
|
||||||
|
return 0.0
|
||||||
|
elseif dSez < SEZ_L then
|
||||||
|
if dL and dL < LEN_SMALL then dSez = max( 0.6 * dSez, SEZ_S) end
|
||||||
|
local dCoeff = ( dSez - SEZ_S) / ( SEZ_L - SEZ_S)
|
||||||
|
return dCoeff
|
||||||
|
else
|
||||||
|
return 1.0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
-- TODO questa è copiata (e migliorata) da mlde, va unificata
|
||||||
|
-- TODO vedere se servono anche dDeltaTol e dMinOther
|
||||||
|
local function GetMinJoin( dW, dH, dL)
|
||||||
|
|
||||||
|
-- funzione di supporto per interpolazione lineare
|
||||||
|
local function MapRange( x, x1, x2, y1, y2)
|
||||||
|
if x <= x1 then return y1 end
|
||||||
|
if x >= x2 then return y2 end
|
||||||
|
return y1 + ( y2 - y1) * ( ( x - x1) / ( x2 - x1))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- costanti geometriche e tolleranze
|
||||||
|
local L_SMALL = 800
|
||||||
|
local H_V, H_S, H_L = 90, 200, 400
|
||||||
|
local W_V, W_S, W_L = 90, 150, 250
|
||||||
|
|
||||||
|
local DELTA_TOL_S = 210
|
||||||
|
local DELTA_TOL_V = 110
|
||||||
|
local DELTA_TOL_L = 410
|
||||||
|
|
||||||
|
local dMinJoin, dDeltaTol
|
||||||
|
|
||||||
|
if dW <= W_V and dH <= H_V then
|
||||||
|
dMinJoin = MldeParameters.MinJoinVV
|
||||||
|
dDeltaTol = DELTA_TOL_V
|
||||||
|
elseif dL <= L_SMALL then
|
||||||
|
dMinJoin = MldeParameters.MinJoinSS
|
||||||
|
dDeltaTol = DELTA_TOL_S
|
||||||
|
else
|
||||||
|
-- 1. Interpolazione sulla larghezza partendo da valori macchina
|
||||||
|
local dMinJoinS = MapRange( dW, W_S, W_L, MldeParameters.MinJoinSS, MldeParameters.MinJoinSL)
|
||||||
|
local dMinJoinL = MapRange( dW, W_S, W_L, MldeParameters.MinJoinLS, MldeParameters.MinJoinLL)
|
||||||
|
|
||||||
|
-- 2. Interpolazione sull'altezza partendo dai valori interpolati sulla larghezza
|
||||||
|
dMinJoin = MapRange( dH, H_S, H_L, dMinJoinS, dMinJoinL)
|
||||||
|
dDeltaTol = MapRange( dH, H_S, H_L, DELTA_TOL_S, DELTA_TOL_L)
|
||||||
|
|
||||||
|
if dW < W_V then
|
||||||
|
dDeltaTol = DELTA_TOL_V
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--local dMinOther = abs( MldeParameters.MinY) + abs( MldeParameters.MaxV) + dMinJoin
|
||||||
|
|
||||||
|
return dMinJoin
|
||||||
|
end
|
||||||
|
BeamData.GetMinJoin = GetMinJoin
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function GetRestrictedLength( dW, dH, dL)
|
||||||
|
local dMinJoin = GetMinJoin( dW, dH, dL)
|
||||||
|
local dExtra = 50
|
||||||
|
|
||||||
|
local dRestrictedLength = dMinJoin + dExtra
|
||||||
|
|
||||||
|
return dRestrictedLength
|
||||||
|
end
|
||||||
|
BeamData.GetRestrictedLength = GetRestrictedLength
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function GetMinUnloadableRaw( dW, dH)
|
||||||
|
local dCoeff = GetSectionCoeff( dW, dH)
|
||||||
|
return ( 1 - dCoeff) * BeamData.MINRAW_S + dCoeff * BeamData.MINRAW_L
|
||||||
|
end
|
||||||
|
BeamData.GetMinUnloadableRaw = GetMinUnloadableRaw
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
local function GetBlockedAxis( sHead, nToolType, sBlockedAxis)
|
local function GetBlockedAxis( sHead, nToolType, sBlockedAxis)
|
||||||
-- lama
|
-- lama
|
||||||
|
|||||||
Reference in New Issue
Block a user