Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cddc5abcc1 | |||
| 0324b24222 | |||
| a845258a81 | |||
| 5486fab487 | |||
| d2f093772d | |||
| a362c59c6f | |||
| 69de0b9cc5 | |||
| dc14d46bbc | |||
| c4270df480 | |||
| 096d04f640 | |||
| 2d8d5a38a6 | |||
| 4fcf50951b | |||
| 4b2827f2cd | |||
| 29dddf0d52 | |||
| 45148ee0c5 | |||
| bc7fa48823 | |||
| 05ebbc9221 | |||
| a909f2460c |
+4
-28
@@ -9,8 +9,8 @@ local BeamData = {
|
||||
RIGHT_LOAD = false, -- flag carico da destra
|
||||
ROT90 = false, -- flag abilitazione rotazione 90 gradi
|
||||
ROT180 = true, -- flag abilitazione rotazione 180 gradi
|
||||
NEWCLAMPING = false, -- flag abilitazione nuovo metodo riposizionamento carrelli
|
||||
FASTCLAMPING= true, -- flag abilitazione riduzione numero riposizionamenti al carico e durante grande trascinamento
|
||||
NEWCLAMPING = true, -- flag abilitazione nuovo metodo riposizionamento carrelli
|
||||
FASTCLAMPING= false, -- flag abilitazione riduzione numero riposizionamenti al carico e durante grande trascinamento
|
||||
MIN_WIDTH = 40, -- larghezza minima del grezzo
|
||||
MIN_HEIGHT = 40, -- altezza minima del grezzo
|
||||
MAX_WIDTH = 240, -- larghezza massima del grezzo
|
||||
@@ -23,8 +23,6 @@ local BeamData = {
|
||||
STD_RAW = 14000, -- lunghezza standard della barra di grezzo
|
||||
OVM_HEAD = 10, -- sovramateriale testa
|
||||
OVM_MID = 5.4, -- sovramateriale intermedio (spessore lama)
|
||||
MIN_JOIN_S = 100, -- minima presa pinza per pezzo piccolo
|
||||
MIN_JOIN_L = 450, -- minima presa pinza per pezzo grande
|
||||
MINRAW_S = 750, -- minimo grezzo in coda scaricabile per sezioni piccole
|
||||
MINRAW_L = 1070, -- minimo grezzo in coda scaricabile per sezioni grandi
|
||||
MAX_LEN_SCRAP = 270, -- massima lunghezza scarto di coda
|
||||
@@ -44,6 +42,7 @@ local BeamData = {
|
||||
DRILL_VZ_MIN = -0.51, -- componente limite in Z del versore di un foro
|
||||
DRILL_VX_MAX = 0.867, -- componente limite in X del versore di un foro sulle facce laterali
|
||||
DRILL_OVERLAP = 5, -- sovrapposizione tra due mezze forature
|
||||
MAX_ANGLE_DRILL_CUT = 10, -- angolo massimo tra la foratura e il taglio che la attraversa
|
||||
MILL_OVERLAP = 5, -- sovrapposizione tra due mezze fresature
|
||||
MAX_DIST_HTFEA = 50.0, -- massima distanza di feature da testa o coda per essere considerata tale
|
||||
MAX_LEN_HTFEA = 2000.0, -- massima lunghezza di feature di testa o coda
|
||||
@@ -107,6 +106,7 @@ if EgtExistsFile( sData) then
|
||||
BeamData.MAXDIAM_POCK_CORNER = Machine.Offsets.MAXDIAM_POCK_CORNER or BeamData.MAXDIAM_POCK_CORNER
|
||||
BeamData.LONGCUT_ENDLEN = Machine.Offsets.LONGCUT_ENDLEN or BeamData.LONGCUT_ENDLEN
|
||||
BeamData.LONGCUT_MAXLEN = Machine.Offsets.LONGCUT_MAXLEN or BeamData.LONGCUT_MAXLEN
|
||||
if Machine.Offsets.MAX_ANGLE_DRILL_CUT then BeamData.MAX_ANGLE_DRILL_CUT = EgtClamp( Machine.Offsets.MAX_ANGLE_DRILL_CUT, 1, 89) end
|
||||
BeamData.ADVANCE_TAIL_OFFS = Machine.Offsets.ADVANCE_TAIL_OFFS or BeamData.ADVANCE_TAIL_OFFS
|
||||
BeamData.LEN_VERY_SHORT_PART = Machine.Offsets.LEN_VERY_SHORT_PART or BeamData.LEN_VERY_SHORT_PART
|
||||
BeamData.LEN_SHORT_PART = Machine.Offsets.LEN_SHORT_PART or BeamData.LEN_SHORT_PART
|
||||
@@ -156,30 +156,6 @@ local function GetMaxLenRidgeLapFromBottom( dHRaw)
|
||||
end
|
||||
BeamData.GetMaxLenRidgeLapFromBottom = GetMaxLenRidgeLapFromBottom
|
||||
|
||||
---------------------------------------------------------------------
|
||||
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
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function GetMinUnloadableRaw( dW, dH)
|
||||
local dCoeff = GetSectionCoeff( dW, dH)
|
||||
return BeamData.MINRAW_S + dCoeff * ( BeamData.MINRAW_L - BeamData.MINRAW_S)
|
||||
end
|
||||
BeamData.GetMinUnloadableRaw = GetMinUnloadableRaw
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function GetBlockedAxis( sHead, nToolType, sBlockedAxis)
|
||||
-- lama
|
||||
|
||||
@@ -609,6 +609,9 @@ function OnRapid()
|
||||
MyBackupAxes()
|
||||
-- se primo movimento della lavorazione, gestione speciale
|
||||
if EMT.MCHFIRST and not EMT.OPEISDISP then
|
||||
-- primo posizionamento
|
||||
local MyZHome = EgtGetAxisHomePos( 'Z')
|
||||
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
||||
-- decido se muovere prima testa o carrelli (standard prima testa)
|
||||
local bHeadFirst = true
|
||||
local sLateG101
|
||||
@@ -641,9 +644,6 @@ function OnRapid()
|
||||
local sER = ' ER' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TDIAM / 2, EMT.TLEN), 3)
|
||||
local sES = ' ES'..EgtNumToString( EMT.S, 0)
|
||||
|
||||
-- primo posizionamento
|
||||
local MyZHome = EgtGetAxisHomePos( 'Z')
|
||||
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
||||
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
|
||||
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and EMT.FLAG2 == 1 then
|
||||
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||
|
||||
@@ -657,6 +657,9 @@ function OnRapid()
|
||||
MyBackupAxes()
|
||||
-- se primo movimento della lavorazione, gestione speciale
|
||||
if EMT.MCHFIRST and not EMT.OPEISDISP then
|
||||
-- primo posizionamento
|
||||
local MyZHome = EgtGetAxisHomePos( 'Z')
|
||||
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
||||
-- decido se muovere prima testa o carrelli (standard prima testa)
|
||||
local bHeadFirst = true
|
||||
local sLateG101
|
||||
@@ -713,9 +716,6 @@ function OnRapid()
|
||||
|
||||
local sES = ' ES'..EgtNumToString( EMT.S, 0)
|
||||
|
||||
-- primo posizionamento
|
||||
local MyZHome = EgtGetAxisHomePos( 'Z')
|
||||
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
||||
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
|
||||
if not EMT.LOAD and EMT.PREVHEAD == 'H3' and EMT.FLAG2 == 1 then
|
||||
local sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||
|
||||
+27
-36
@@ -464,11 +464,10 @@ function OnSimulDispositionStart()
|
||||
EgtMove( nRawId, vtMove, GDB_RT.GLOB)
|
||||
EmtLinkRawPartToGroup( nRawId, 'Y')
|
||||
end
|
||||
nRawId = nNextRawId
|
||||
end
|
||||
--nRawId = nNextRawId
|
||||
EMT.LB = b3Bar:getDimX()
|
||||
nRawId = nNextRawId
|
||||
end
|
||||
EMT.LB = b3Bar:getDimX()
|
||||
end
|
||||
-- Indicazione angolo rotazione pezzo
|
||||
EMT.ROT = EgtGetInfo( EMT.DISPID, 'ROT', 'i') or 0
|
||||
@@ -1100,16 +1099,17 @@ end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function CheckClamping( sClampName)
|
||||
nIndexClamp = EgtGetAxisId( sClampName)
|
||||
local idClampPath = EgtGetFirstInGroup( EgtGetFirstNameInGroup( nIndexClamp, 'CLAMP_CHECK') or GDB_ID.NULL)
|
||||
local b3ClampingArea = EgtGetBBoxGlob( idClampPath or GDB_ID.NULL, GDB_BB.STANDARD)
|
||||
|
||||
local nClampId = EgtGetAxisId( sClampName) or GDB_ID.NULL
|
||||
local nClampPathId = EgtGetFirstInGroup( EgtGetFirstNameInGroup( nClampId, 'CLAMP_CHECK') or GDB_ID.NULL)
|
||||
local b3ClampingArea = EgtGetBBoxGlob( nClampPathId or GDB_ID.NULL, GDB_BB.STANDARD)
|
||||
-- se non trovo percorso area di clamping, esco subito
|
||||
if not idClampPath or not EMT.VMILL or not ClampingCoeffMin then
|
||||
if not nClampPathId or not EMT.VMILL or not ClampingCoeffMin then
|
||||
return
|
||||
end
|
||||
|
||||
local function GetCurveListFromIntersection( sPosIntersPlane, sIntersPlane, dDepth)
|
||||
local idCurveList = {}
|
||||
local vCurveListId = {}
|
||||
local vtIntersPlane
|
||||
-- piano di interpolazione
|
||||
if sIntersPlane == 'X' then
|
||||
@@ -1128,44 +1128,35 @@ function CheckClamping( sClampName)
|
||||
elseif sPosIntersPlane == 'MAX' then
|
||||
ptPosIntersPlane = b3VMill:getMax() - dDepth * vtIntersPlane
|
||||
end
|
||||
|
||||
local idLoop, nLoopCnt = EgtPlaneVolZmapInters( ptPosIntersPlane, vtIntersPlane, EMT.VMILL[i], CLAMP_CHECK_INTERS, GDB_RT.GLOB)
|
||||
-- se c'è almeno una curva
|
||||
if idLoop then
|
||||
for j = 1, nLoopCnt do
|
||||
local idLoopTemp = idLoop + j - 1
|
||||
table.insert( idCurveList, idLoopTemp)
|
||||
end
|
||||
end
|
||||
local nLoopId, nLoopCnt = EgtPlaneVolZmapInters( ptPosIntersPlane, vtIntersPlane, EMT.VMILL[i], CLAMP_CHECK_INTERS, GDB_RT.GLOB)
|
||||
vCurveListId = EgtTableAdd( vCurveListId, nLoopId, nLoopCnt)
|
||||
end
|
||||
return idCurveList
|
||||
|
||||
return vCurveListId
|
||||
end
|
||||
|
||||
local function CalculateIntersectionArea( sPosIntersPlane, sIntersPlane, dDepth)
|
||||
-- test piano frontale
|
||||
local idCurveList = GetCurveListFromIntersection( sPosIntersPlane, sIntersPlane, dDepth)
|
||||
|
||||
local vCurveListId = GetCurveListFromIntersection( sPosIntersPlane, sIntersPlane, dDepth)
|
||||
-- si copia curva intersezione e curva pinza in gruppo di confronto
|
||||
local idFlatSurf, nFlatSurfCnt = EgtSurfFlatRegion( CLAMP_CHECK_GROUP, idCurveList)
|
||||
local idClampSurf = EgtSurfFlatRegion( CLAMP_CHECK_GROUP, idClampPath)
|
||||
local nFlatSurfId, nFlatSurfCnt = EgtSurfFlatRegion( CLAMP_CHECK_GROUP, vCurveListId)
|
||||
local vFlatSurfId = EgtTableFill( nFlatSurfId, nFlatSurfCnt) or {}
|
||||
local nClampSurfId = EgtSurfFlatRegion( CLAMP_CHECK_GROUP, nClampPathId)
|
||||
|
||||
if idFlatSurf then
|
||||
local dTotalArea = 0
|
||||
local dTotalXLenght = 0
|
||||
for k = 1, nFlatSurfCnt do
|
||||
local idTempSurf = idFlatSurf + k - 1
|
||||
EgtSurfFrIntersect( idTempSurf, idClampSurf)
|
||||
if idTempSurf then
|
||||
dTotalArea = dTotalArea + ceil( EgtSurfArea( idTempSurf) or 0)
|
||||
local b3BoxIntersectionBox = EgtGetBBoxGlob( idTempSurf, GDB_BB.STANDARD)
|
||||
if b3BoxIntersectionBox then
|
||||
dTotalXLenght = dTotalXLenght + ceil( b3BoxIntersectionBox:getDimX()) -- somma lunghezze (x) delle aree pinzate
|
||||
end
|
||||
local dTotalArea = 0
|
||||
local dTotalXLenght = 0
|
||||
for i = 1, #vFlatSurfId do
|
||||
local nTempSurfId = vFlatSurfId[i]
|
||||
EgtSurfFrIntersect( nTempSurfId, nClampSurfId)
|
||||
if nTempSurfId then
|
||||
dTotalArea = dTotalArea + ceil( EgtSurfArea( nTempSurfId) or 0)
|
||||
local b3BoxIntersectionBox = EgtGetBBoxGlob( nTempSurfId, GDB_BB.STANDARD)
|
||||
if b3BoxIntersectionBox then
|
||||
dTotalXLenght = dTotalXLenght + ceil( b3BoxIntersectionBox:getDimX()) -- somma lunghezze (x) delle aree pinzate
|
||||
end
|
||||
end
|
||||
return dTotalArea, dTotalXLenght
|
||||
end
|
||||
return 0
|
||||
return dTotalArea, dTotalXLenght
|
||||
end
|
||||
|
||||
-- minima area considerata per un corretto pinzaggio
|
||||
|
||||
@@ -32,7 +32,6 @@ end
|
||||
---------- OnSpecialApplyDisposition & OnPostApplyMachining ---------
|
||||
----------------------- Costanti ------------------------------------
|
||||
local DELTA_TOL_FIXED = 50
|
||||
local DeltaTol = 210
|
||||
local DELTA_SIC = 1
|
||||
local AGG_LOAD = 50
|
||||
|
||||
|
||||
+30
-26
@@ -24,10 +24,10 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '2.7l4_DEV1'
|
||||
PP_NVER = '2.7.12.4'
|
||||
PP_VER = '3.1c1'
|
||||
PP_NVER = '3.1.3.1'
|
||||
MIN_MACH_VER = '2.7j1'
|
||||
MACH_NAME = string.match( EgtGetCurrMachineDir(), "[^\\]+$") -- si ricava il nome della macchina dal direttorio
|
||||
MACH_NAME = EgtGetCurrMachineName()
|
||||
|
||||
-- Carico i dati globali
|
||||
local sMachDir = EgtGetCurrMachineDir()
|
||||
@@ -65,6 +65,7 @@ LoadT = 1454.2
|
||||
UnloadT = -1700
|
||||
MaxOpen = 305
|
||||
MillOffs = 177.35
|
||||
DistRotCenterBToTopC = 403 -- distanza tra il centro di rotazione del mandrino B e la mensola C
|
||||
SawOffs = -242.68
|
||||
SawBOffs = 0
|
||||
SawCOffs = 0
|
||||
@@ -101,7 +102,7 @@ MinJoinSL = 100
|
||||
MinJoinLL = 400
|
||||
|
||||
-- costanti dimensioni utensili
|
||||
LONG_TOOL_MINLEN = 221
|
||||
LONG_TOOL_MINLEN = 218.5
|
||||
BIG_TOOL_DIAM = 300
|
||||
|
||||
-- leggo e aggiorno con parametri da BeamData
|
||||
@@ -178,6 +179,8 @@ if EgtExistsFile( sData) then
|
||||
if Machine.Offsets.COEFF_STIMATEMPI and Machine.Offsets.COEFF_STIMATEMPI > 0 then EstimationRapidMultiplier = Machine.Offsets.COEFF_STIMATEMPI end
|
||||
if Machine.Offsets.MAX_HEIGHT_ROT_B_ABOVE then BeamHeightForFixRot = Machine.Offsets.MAX_HEIGHT_ROT_B_ABOVE end
|
||||
if Machine.Offsets.COEFF_CLAMP_CHECK then ClampingCoeffMin = Machine.Offsets.COEFF_CLAMP_CHECK end
|
||||
if Machine.Offsets.DIST_ROT_CENTER_B_TO_TOP_C then DistRotCenterBToTopC = EgtClamp( Machine.Offsets.DIST_ROT_CENTER_B_TO_TOP_C, 395, 410) end
|
||||
if Machine.Offsets.LONG_TOOL_MINLEN then LONG_TOOL_MINLEN = EgtClamp( Machine.Offsets.LONG_TOOL_MINLEN, 216, 226.1) end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -185,6 +188,7 @@ if SpecialBH then SecondSupport = 0 end
|
||||
-- Aggiorno valori MinJoin
|
||||
MinJoin = MinJoinSS
|
||||
MinOther = abs( MinY) + abs( MaxV) + MinJoin
|
||||
DeltaTol = 210
|
||||
|
||||
-- compongo i gruppi appartenenti alla base
|
||||
local sBaseAux = {'BASE/SOLID', 'BASE/TC', 'BASE/SIGN', 'BASE/COLLISION'}
|
||||
@@ -236,28 +240,28 @@ local CId = EmtAxis {
|
||||
Home = 0,
|
||||
Geo = 'C_AXIS/GEO',
|
||||
Aux = {'C_AXIS/SOLID', 'C_AXIS/COLLISION', 'C_AXIS/COLLISION2'}}
|
||||
if NewTopC then
|
||||
local vtMove = Vector3d( 65,0,0)
|
||||
local SolidArmId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'SOLID'), 'ARM')
|
||||
if EgtSurfTmMoveFacet then
|
||||
EgtSurfTmMoveFacet( SolidArmId, 11, vtMove, GDB_RT.GLOB)
|
||||
else
|
||||
EgtSurfTmMoveVertex( SolidArmId, 23, EgtSurfTmGetVertex( SolidArmId, 23, GDB_RT.GLOB) + vtMove, GDB_RT.GLOB)
|
||||
EgtSurfTmMoveVertex( SolidArmId, 25, EgtSurfTmGetVertex( SolidArmId, 25, GDB_RT.GLOB) + vtMove, GDB_RT.GLOB)
|
||||
EgtSurfTmMoveVertex( SolidArmId, 35, EgtSurfTmGetVertex( SolidArmId, 35, GDB_RT.GLOB) + vtMove, GDB_RT.GLOB)
|
||||
EgtSurfTmMoveVertex( SolidArmId, 36, EgtSurfTmGetVertex( SolidArmId, 36, GDB_RT.GLOB) + vtMove, GDB_RT.GLOB)
|
||||
end
|
||||
local CollTopId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'COLLISION'), 'TOP')
|
||||
EgtMove( CollTopId, vtMove, GDB_RT.GLOB)
|
||||
EgtSetName( CollTopId, 'BOX')
|
||||
local RefId = CollTopId + EgtGetInfo( CollTopId, 'Frame', 'i')
|
||||
EgtSetInfo( RefId, 'CollSkip', 'C_TOP')
|
||||
else
|
||||
local CollTopId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'COLLISION'), 'TOP')
|
||||
EgtSetName( CollTopId, 'BOX')
|
||||
local RefId = CollTopId + EgtGetInfo( CollTopId, 'Frame', 'i')
|
||||
EgtSetInfo( RefId, 'CollSkip', 'C_TOP')
|
||||
end
|
||||
|
||||
-- Imposto i vettori di movimento separatamente se sono presenti le variabili di riferimento
|
||||
local vtXMove = Vector3d( EgtIf( NewTopC, 65, 0), 0, 0)
|
||||
-- si prende la minima distanza tra DistRotCenterBToTopC e LONG_TOOL_MINLEN + pivot (comunque distanza minima 403)
|
||||
local dZMove = max( 403, min( ( MillOffs + LONG_TOOL_MINLEN + 5), DistRotCenterBToTopC)) - 400
|
||||
local vtZMove = Vector3d( 0, 0, dZMove)
|
||||
-- Muove le facce in X e Z del solido principale
|
||||
local SolidArmId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'SOLID'), 'ARM')
|
||||
EgtSurfTmMoveFacet( SolidArmId, 14, vtZMove, GDB_RT.GLOB)
|
||||
EgtSurfTmMoveFacet( SolidArmId, 11, vtXMove, GDB_RT.GLOB)
|
||||
-- Muove il solido di collisione denominato "TOP" in X e muove la sua faccia inferiore per portarla al pari del solido principale
|
||||
local CollTopId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'COLLISION'), 'TOP')
|
||||
EgtMove( CollTopId, vtXMove, GDB_RT.GLOB)
|
||||
EgtSurfTmMoveFacet( CollTopId, 4, vtZMove, GDB_RT.GLOB)
|
||||
EgtSetName( CollTopId, 'BOX')
|
||||
-- Imposta nel Frame di riferimento l'info "CollSkip"
|
||||
local RefId = CollTopId + EgtGetInfo( CollTopId, 'Frame', 'i')
|
||||
EgtSetInfo( RefId, 'CollSkip', 'C_TOP')
|
||||
-- Muove il solido di collisione C_TOP
|
||||
local CollUtTopId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( CId, 'COLLISION2'), 'C_TOP')
|
||||
EgtMove( CollUtTopId, vtZMove, GDB_RT.GLOB)
|
||||
|
||||
EmtAxis {
|
||||
Name = 'B',
|
||||
Parent = 'C',
|
||||
|
||||
Binary file not shown.
+25
-17
@@ -33,26 +33,34 @@
|
||||
[GenMachining]
|
||||
|
||||
[SurfRoughing]
|
||||
0=l,MaxElev,1000
|
||||
0=l,MaxElev,0
|
||||
1=b,PlaneZ,0
|
||||
2=i,Order,[0=ByPlane;1=ByDepth]
|
||||
|
||||
[SurfFinishing]
|
||||
0=b,SkipMaxDown,1
|
||||
1=i,OptimalType,[0=ZigZag;2=SpiralIn;3=SpiralOut]
|
||||
2=d,SplitAngle,45
|
||||
3=d,AngleTol,5
|
||||
|
||||
[5AxMilling]
|
||||
0=l,LinTol,0.01
|
||||
1=l,MaxLen,10
|
||||
2=s,Type,ZigZag
|
||||
3=d,SideAng,90
|
||||
4=l,Step,10
|
||||
5=d,AngIni,-90
|
||||
6=d,AngFin,90
|
||||
7=l,LiTang,0
|
||||
8=l,LiOrth,0
|
||||
9=l,LiElev,0
|
||||
10=l,LoTang,0
|
||||
11=l,LoOrth,0
|
||||
12=l,LoElev,0
|
||||
13=b,DirFromGuide,0
|
||||
14=b,SurfAvoid,0
|
||||
|
||||
0=s,VtAuxDir,0,1,0
|
||||
1=l,LinTol,0.01
|
||||
2=l,MaxLen,10
|
||||
3=i,ProjType,[0=MinDist;1=FixedDir;2=Guide]
|
||||
4=i,PocketType,[0=ZigZag;2=SpiralIn;3=SpiralOut]
|
||||
5=d,PocketAng,0
|
||||
6=d,SideAng,90
|
||||
7=d,LeadAng,0
|
||||
8=l,Step,10
|
||||
9=d,AngIni,-90
|
||||
10=d,AngFin,90
|
||||
11=l,LiTang,0
|
||||
12=l,LiOrth,0
|
||||
13=l,LiElev,0
|
||||
14=l,LoTang,0
|
||||
15=l,LoOrth,0
|
||||
16=l,LoElev,0
|
||||
17=b,DirFromGuide,0
|
||||
18=b,SurfAvoid,0
|
||||
19=d,SingConeAng,0.1
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,13 @@
|
||||
==== Common_FAST Update Log ====
|
||||
|
||||
Versione 3.1a2 (26/01/2026)
|
||||
- (GEN) Nella G101 il parametro EE era sempre a 4 perchè la variabile veniva settata dopo. Ticket#2796
|
||||
|
||||
Versione 3.1a1 (08/01/2026)
|
||||
- (SIM) Ottimizzata scrittura funzione ClampCheck post aggiornamento dll
|
||||
- (SIM) Corretto problema della funzione OnSimulDispositionStart in caso di fase finale.
|
||||
- (MLDE-SIM-GEN) Variabile DeltaTol deve essere spostata in MLDE
|
||||
|
||||
Versione 2.7l3 (22/12/2025)
|
||||
- (SIM) Eliminata MinJoin, utilizzata al suo posto funzione già esistente UpdateMinJoin nell'mlde
|
||||
- (SIM) Modificata formula calcolo Area minima
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common_FAST', -- nome script PP standard
|
||||
VERSION = '2.7l3', -- versione script
|
||||
VERSION = '3.1a2', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user