Prima versione configurazione macchina.

Derivazione da PF1250MAX, PF12503T, PF1500rl
This commit is contained in:
andrea.villa
2024-10-16 11:40:30 +02:00
parent a0ea5491e0
commit 54f453c079
37 changed files with 11149 additions and 0 deletions
+318
View File
@@ -0,0 +1,318 @@
variables:
VERS_MAIN: '1.0'
MACH_NAME: ''
MACH_NAME_TEST: ''
MANUFACTURER: ''
NEW_REL: ''
NET_SHARE_X: '\\10.74.82.201\EgwTech'
NET_SHARE_Z: '\\10.74.82.201\Artifacts'
NET_SHARE_S: '\\10.74.82.201\Scambio'
NET_SHARE_R: '\\10.74.82.201\EgwTech'
NET_SHARE_H: '\\10.74.82.252\team drives'
NET_USERQ: 'steamw\egalware'
NET_USER_SERVICES: 'steamw\services'
MACH_VERS: '0.0.0.0'
TEMP_PATH: 'C:\MachinesDeploy'
MACHINES_PATH_R: 'R:\EgtData\Machines_GIT'
DEST_MACHINES_PATH_H: 'H:'
SRC_PATH: ''
BASE_PATH: ''
TEST_PATH: ''
URL_VERSIONS_LOG: "https://liman.egalware.com/ELM.API/api/release/save"
MACH_VERS_NUM: '0.0.0.0'
CRITICAL_STRING: "#critical#"
TOOLS_MACHINE_PATH: ""
#Note compilazione LUA:
# lua54 -o bin\$FileName -s $FileName: -o = output, -s = NON include i debug symbols
# helper copia script verso cartella di rete S:\ delle cartelle bin
.ReplicaS: &ReplicaS
- |
net use S: /delete
SLEEP 2
net use S: $env:NET_SHARE_S /u:$env:NET_USERQ $SDRIVE_PASSWD
ROBOCOPY /MIR $env:BASE_PATH S:\LucaM\MachinesDeploy\$env:MACH_NAME\$env:MACH_VERS\ /XD "bin" /XD "$env:MACH_NAME_TEST"
SLEEP 2
net use S: /delete
# helper copia script verso cartella di rete R:\
.ReplicaR: &ReplicaR
- |
net use R: /delete
SLEEP 2
net use R: $env:NET_SHARE_R /u:$env:NET_USERQ $ZDRIVE_PASSWD
echo "-----------------------"
echo " Copia macchina su R"
echo "-----------------------"
$customerPathR = $env:MACHINES_PATH_R + "\" + $env:MANUFACTURER
ROBOCOPY /MIR "$env:SRC_PATH" "$customerPathR\$env:MACH_NAME\" /XD "bin"
ROBOCOPY "$env:TEST_PATH" "$customerPathR\_TestMachines\$env:MACH_NAME_TEST\" /E /XD "bin"
ROBOCOPY /MIR "$env:BASE_PATH" "$customerPathR\_Deploy\$env:MACH_NAME\$env:MACH_VERS\" /XD "bin" /XD "$env:MACH_NAME_TEST"
SLEEP 2
net use R: /delete
# helper copia script verso drive condiviso
.ReplicaStor01: &ReplicaStor01
- |
net use H: /delete
SLEEP 2
net use H: $env:NET_SHARE_H /u:$env:NET_USER_SERVICES $SRVCS_PASSWD
echo "-----------------------"
echo " Copia macchina su stor01"
echo "-----------------------"
SLEEP 2
$customerPathH = $env:DEST_MACHINES_PATH_H + "\" + $env:MANUFACTURER + "\test"
$destinationPath = "$customerPathH\$env:MACH_NAME" + "\"
ROBOCOPY "$env:BASE_PATH" "$destinationPath\" *.zip
SLEEP 2
net use H: /delete
# helper copia script verso cartella di rete R:\ per develop
.ReplicaR_DEV: &ReplicaR_DEV
- |
net use R: /delete
SLEEP 2
net use R: $env:NET_SHARE_R /u:$env:NET_USERQ $ZDRIVE_PASSWD
echo "-----------------------"
echo " Copia macchina su R - DEV"
echo "-----------------------"
$customerPathR = $env:MACHINES_PATH_R + "\" + $env:MANUFACTURER
ROBOCOPY /MIR "$env:BASE_PATH" "$customerPathR\_Deploy\$env:MACH_NAME\_DEV\$env:MACH_VERS\" /XD "bin" /XD "$env:MACH_NAME_TEST"
SLEEP 2
net use R: /delete
#helper copia sorgenti da R a percorso temporaneo
.CreateBaseFolder: &CreateBaseFolder
- |
net use R: /delete
SLEEP 2
net use R: $env:NET_SHARE_R /u:$env:NET_USERQ $ZDRIVE_PASSWD
echo "-----------------------"
echo " Recupero file non git da R e copia su macchina virtuale"
echo "-----------------------"
# test se la cartella con gli utensili esiste per questa macchina
if (!(Test-Path -Path $env:TOOLS_MACHINE_PATH)) {
echo "-----------------------"
echo "CANNOT FIND TOOLS FOR THIS MACHINE!!"
echo "-----------------------"
Exit 1}
ROBOCOPY "$env:TOOLS_MACHINE_PATH" "$env:SRC_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
ROBOCOPY "$env:TOOLS_MACHINE_PATH" "$env:TEST_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
ROBOCOPY "$env:TOOLS_MACHINE_PATH" "$env:SRC_PATH\bin\$env:MACH_NAME\" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
SLEEP 2
net use R: /delete
# helper compilazione LUA a 32 e 64 bit
.LuaCompile: &LuaCompile
- |
Set-Alias lua54 C:\Tools\Lua32\luac54
echo "-----------------------"
echo " Copia file su macchina virtuale"
echo "-----------------------"
ROBOCOPY . "$env:SRC_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
ROBOCOPY . "$env:TEST_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
Rename-Item -Path "$env:TEST_PATH\$env:MACH_NAME.mlde" -NewName "$env:MACH_NAME_TEST.mlde"
Rename-Item -Path "$env:TEST_PATH\$env:MACH_NAME.ini" -NewName "$env:MACH_NAME_TEST.ini"
ROBOCOPY . "$env:SRC_PATH\bin\$env:MACH_NAME\" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
echo "-----------------------"
echo " Compilazione file *.lua 32/64bit"
echo "-----------------------"
$FileList = Get-ChildItem * -Include( "*.mlpe", "*.mlse")
ForEach ($File in $FileList) {
$FileName = Split-Path $File -leaf
lua54 -o $env:SRC_PATH\bin\$env:MACH_NAME\$FileName -s $FileName
echo "lua54 -o bin\$FileName -s $FileName"
}
# helper recupero nome macchina e costruttore
.machName-fix: &machName-fix
- |
echo "-----------------------"
echo " Recupero nome macchina e costruttore"
echo "-----------------------"
$fileName = dir *.mlde
$env:MACH_NAME = $fileName.BaseName
$env:MACH_NAME_TEST = $env:MACH_NAME + ".TEST"
$comp = $fileName.BaseName -split "-"
$env:MANUFACTURER = $comp[0]
Write-Output $env:MANUFACTURER
# helper calcolo versione
.version-fix: &version-fix
- |
echo "-----------------------"
echo " Calcolo versione"
echo "-----------------------"
# calcolo versione formato stringa
$fPath = "$env:MACH_NAME.mlde";
$vLine = Select-String -path $fPath -Pattern '^PP_VER';
$comp = $vLine -split "=";
$env:MACH_VERS = $comp[1].Replace("'","").Trim()
# display versione formato stringa
Write-Output $env:MACH_VERS
# calcolo versione formato numerico
$fPath = "$env:MACH_NAME.mlde";
$vLine = Select-String -path $fPath -Pattern '^PP_NVER';
$comp = $vLine -split "=";
$env:MACH_VERS_NUM = $comp[1].Replace("'","").Trim()
# display versione formato numerico
Write-Output $env:MACH_VERS_NUM
# helper calcolo versione se develop
.version-fix_DEV: &version-fix_DEV
- |
echo "-----------------------"
echo " Calcolo versione - DEV"
echo "-----------------------"
$commitAuthor = $CI_COMMIT_AUTHOR -split " "
$commitAuthor = $commitAuthor[0].Trim()
$env:MACH_VERS = $commitAuthor
# display versione
Write-Output $env:MACH_VERS
# helper creazione folders
.folder-fix: &folder-fix
- |
echo "-----------------------"
echo " Creazione cartelle su macchina virtuale"
echo "-----------------------"
$env:TOOLS_MACHINE_PATH = "$env:MACHINES_PATH_R\$env:MANUFACTURER\_DefaultMachineSetup\$env:MACH_NAME"
Write-Output $env:TOOLS_MACHINE_PATH
$env:SRC_PATH = "$env:TEMP_PATH\$env:MACH_NAME\$env:MACH_VERS\$env:MACH_NAME";
$env:BASE_PATH = "$env:TEMP_PATH\$env:MACH_NAME\$env:MACH_VERS";
$env:TEST_PATH = "$env:TEMP_PATH\$env:MACH_NAME\$env:MACH_VERS\$env:MACH_NAME_TEST";
Write-Output $env:BASE_PATH;
if (Test-Path $env:BASE_PATH) { Remove-Item -Path "$env:BASE_PATH\*" -R -Force };
Write-Output $env:TEST_PATH;
# helper compressione e pulizia folders
.ZipClean: &ZipClean
- |
" Compressione file su macchina virtuale"
$7zipPath = $env:ProgramFiles+"\7-Zip\7z.exe";
if (-not (Test-Path -Path $7zipPath -PathType Leaf)) {
throw "7 zip file '$7zipPath' not found"
}
Set-Alias 7zip $7zipPath
$Target = "$env:BASE_PATH\$env:MACH_NAME.zip"
cd "$env:SRC_PATH\bin\"
$Source = "*"
7zip a -tzip $Target $Source
Write-Output "called ZIP $Source --> $Target"
# helper invio notifica a log versioni online (LiMan)
.SendToVersionsLog: &SendToVersionsLog
- |
echo "-----------------------"
echo " Invio versione a log online"
echo "-----------------------"
$tags = ""
$date = ""
# se critico scrive tag
if ( $CI_COMMIT_MESSAGE | Select-String -Pattern $env:CRITICAL_STRING) {
$tags = "CRITICAL"
$date = (Get-Date).AddDays(1).toString("yyyy-MM-ddTHH:mm:ss.fffZ")
}
else
{
$date = (Get-Date).AddDays(3).toString("yyyy-MM-ddTHH:mm:ss.fffZ")
}
$body =
@{
codInst = "EgalWare"
codApp = $env:MACH_NAME
uplAppId = "UpdateManager"
masterKey = $LiMan_Key
tipo = "Machine"
versNum = $env:MACH_VERS_NUM
versText = $env:MACH_VERS
releaseDate = $date
relTags = $tags
}
$jsonBody = ConvertTo-Json -InputObject $body
echo $jsonBody
Invoke-WebRequest -Method Post -URI $env:URL_VERSIONS_LOG -ContentType "application/json" -Body $jsonBody -UseBasicParsing
# helper esecuzione test
.RunTest: &RunTest
- |
Write-Output "Test done!"
stages:
- build
# - test
# - deploy
LuaCompile:build:
stage: build
only:
- main
- master
tags:
- win
before_script:
- *machName-fix
- *version-fix
- *folder-fix
script:
- *CreateBaseFolder
- *LuaCompile
- *ZipClean
- *ReplicaR
- *ReplicaStor01
- *SendToVersionsLog
LuaCompileDev:build:
stage: build
only:
- develop
tags:
- win
before_script:
- *machName-fix
- *version-fix_DEV
- *folder-fix
script:
- *CreateBaseFolder
- *LuaCompile
- *ZipClean
- *ReplicaR_DEV
# LuaCompile:test:
# stage: test
# needs: ["LuaCompile:build"]
# only:
# - main
# - master
# - develop
# tags:
# - win
# before_script:
# - *version-fix
# - *folder-fix
# script:
# - *LuaCompile
# - *RunTest
# LuaCompile:deploy:
# stage: deploy
# needs: ["LuaCompile:test"]
# only:
# - main
# - master
# tags:
# - win
# before_script:
# - *version-fix
# - *folder-fix
# script:
# - *LuaCompile
# - *ZipClean
# - *ReplicaR
+248
View File
@@ -0,0 +1,248 @@
-- BeamData.lua by Egaltech s.r.l. 2023/05/12
-- Raccolta dati generali per Travi
EgtOutLog( ' PF1500rl-BeamData started')
-- Tabella per definizione modulo
local BeamData = {
RIGHT_LOAD = true, -- flag carico da destra
SIMUL_VIEW_DIR = 1, -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE)
MIN_WIDTH = 40, -- larghezza minima del grezzo
MIN_HEIGHT = 40, -- altezza minima del grezzo
MAX_WIDTH = 1500, -- larghezza massima del grezzo
MAX_HEIGHT = 300, -- altezza massima del grezzo
LEN_SHORT_PART = 1200, -- lunghezza massima pezzo piccolo
MAX_RAW = 20000, -- massima lunghezza grezzo (deve essere minore di LenTable - RAW_OFFSET)
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 = 980, -- minimo grezzo in coda scaricabile per sezioni piccole
MINRAW_L = 1680, -- minimo grezzo in coda scaricabile per sezioni grandi
CHAR_EXTRA_DIST = 400, -- distanza aggiuntiva per minimizzare scambi di carrelli
CHAR_LOAD_DIST = 3000, -- distanza suggerita di presa della pinza dalla testa trave al carico
MAX_LEN_SCRAP = 150, -- massima lunghezza scarto di coda
MAX_LEN_SCRAP_START = 150, -- massima lunghezza scarto di testa
MAX_DIM_HTCUT = 185, -- larghezza massima taglio di testa o coda
MAX_DIM_HTCUT_HBEAM = 185, -- larghezza massima taglio di testa o coda con trave alta
MIN_DIM_HBEAM = 610, -- altezza minima di trave alta
OVM_CHAIN_HBEAM = 8, -- sovramateriale per split con sega a catena
MAX_DIM_DICE = 155, -- dimensione trasversale massima cubetto
MAX_LEN_DICE = 400, -- lunghezza massima cubetto
DECR_VERT_CUT = 25, -- riduzione profondità per affondamento verticale in taglio orizzontale
COLL_SIC = 5, -- distanza di sicurezza per collisioni
CUT_SIC = 28, -- distanza di sicurezza per tagli
CUT_EXTRA = 5, -- affondamento extra standard per tagli di lama e fresature
CUT_EXTRA_MIN = 2, -- affondamento extra ridotto per tagli di lama e fresature
CUT_VZ_MIN = -0.484, -- componente limite in Z del versore di un taglio (-61deg)
NZ_MINA = -0.6, -- componente limite in Z normale di una faccia (-30deg)
NZ_MINB = -0.4, -- componente limite in Z normale di un insieme di facce (-23deg)
DRILL_TOL = 0.2, -- tolleranza tra diametro foro e diametro punta
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
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 = 2550.0, -- massima lunghezza di feature di testa o coda
LONGCUT_ENDLEN = 1500, -- lunghezza lavoro estremi iniziale e finale
LONGCUT_MAXLEN = 3000, -- lunghezza massima sezione di taglio longitudinale
MAX_LEN_RIDGELAP_FROM_BOTTOM = 0, -- massima lunghezza ridgelap lavorabile da sotto
MAX_LEN_RIDGELAP_FROM_BOTTOM_HBEAM = 0, -- massima lunghezza ridgelap lavorabile da sotto con trave alta
DIM_TO_CENTER_STRIP = 0, -- larghezza minima trave per inserimento codolo nel centro della trave; 0 = automatico
DIM_STRIP = -1, -- dimensione codolo sostegno parti lasciate su contorno libero o archi
DIM_STRIP_SMALL = 2, -- dimensione codolo piccolo (quando le parti sostenute sono sicuramente sulla parte sopra del pezzo)
RAWCOL = { 255, 160, 32, 30}, -- colore del grezzo
RAW_OFFSET = 2000, -- spostamento grezzo rimanente dopo split
VICE_MINH = 110, -- altezza minima della morsa
OFFSET_DRILL_TENON = 0, -- offset fori su tenoni verso base degli stessi (0=non fare)
USER_HOLE_DIAM = 0, -- diametro foro per L20
MAX_TOOL_LEN_FOR_HOR_MACH = 600, -- massima lunghezza ingombro per poter fare forature (fresature) oltre i 10 gradi dalla verticale
DRILL_VZ_MIN_LONG_TOOL = 0.984, -- componente limite per lavorazioni con punta lunga
MAX_TOOL_LEN_BACK_HOR_MACH = 600, -- massima lunghezza utensile per poter eseguire lavorazioni (forature/svuotature) da dietro (faccia 4)
MIN_LEN_LAMELLO = 1000, -- lunghezza minima di fessura longitudinale per lavorazione tipo lamello (SideMillAsBlade)
PRESS_ROLLER = true, -- dichiarazione presenza rulli pressori
C_SIMM = true, -- dichiarazione simmetria mensola asse C
C_SIMM_ENC = 180, -- ingombro semi-forcella in X da naso mandrino (compresa sicurezza)
DOWN_HEAD = true, -- dichiarazione presenza seconda testa dal basso
DH_MAX_TOP = 370, -- quota massima raggiungibile dalla testa da sotto dal sotto del pezzo
KIOTP = 2, -- coefficiente moltiplicativo per attacco/uscita lama tangente anzichè perpendicolare
MAXDIAM_POCK_CORNER = 30, -- diametro massimo utensile ammesso per tasche con angoli interni
USE_LONGCUT = true, -- per i tagli longitudinali usare solo la lavorazione di lama LongCut
ADVANCE_TAIL_CUT = true, -- per spostare prima del taglio di separazione il taglio di coda su pezzi corti con robabile caduta
ADVANCE_TAIL_OFFS = 5, -- accorciamento taglio di coda avanzato (minimo 1)
DOUBLE_HEAD_DOVETAIL = true, -- flag abilitazione lavorazione mortase a coda di rondine in doppio
DOUBLE_HEAD_MORTISE = true, -- flag abilitazione lavorazione mortase in doppio
DOUBLE_HEAD_DRILLING = true -- flag abilitazione forature in doppio
}
---------------------------------------------------------------------
-- Aggiornamento con dati da TechnoEssetre7
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-PF1500rl.data"
local sDataBeam = EgtGetCurrMachineDir().."\\Beam\\Ts3Data.lua"
if EgtExistsFile( sTs3Data) then
EgtCopyFile( sTs3Data, sDataBeam)
local sTs3DataOld = sTs3Data..'.old'
EgtEraseFile( sTs3DataOld)
EgtRenameFile( sTs3Data, sTs3DataOld)
end
if EgtExistsFile( sDataBeam) then
local Machine = dofile( sDataBeam)
if Machine then
if Machine.Offsets then
if Machine.Offsets.DOUBLE_HEAD_DOVETAIL then BeamData.DOUBLE_HEAD_DOVETAIL = ( Machine.Offsets.DOUBLE_HEAD_DOVETAIL == 1) end
if Machine.Offsets.DOUBLE_HEAD_MORTISE then BeamData.DOUBLE_HEAD_MORTISE = ( Machine.Offsets.DOUBLE_HEAD_MORTISE == 1) end
if Machine.Offsets.DOUBLE_HEAD_DRILLING then BeamData.DOUBLE_HEAD_DRILLING = ( Machine.Offsets.DOUBLE_HEAD_DRILLING == 1) end
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.CUT_EXTRA = Machine.Offsets.CUT_EXTRA or BeamData.CUT_EXTRA
BeamData.CUT_EXTRA_MIN = Machine.Offsets.CUT_EXTRA_MIN or BeamData.CUT_EXTRA_MIN
BeamData.DIM_STRIP_SMALL = Machine.Offsets.DIM_STRIP_SMALL or BeamData.DIM_STRIP_SMALL
BeamData.DIM_TO_CENTER_STRIP = Machine.Offsets.DIM_TO_CENTER_STRIP or BeamData.DIM_TO_CENTER_STRIP
BeamData.MAXDIAM_POCK_CORNER = Machine.Offsets.MAXDIAM_POCK_CORNER or BeamData.MAXDIAM_POCK_CORNER
end
if Machine.Trave then
BeamData.MIN_WIDTH = Machine.Trave.XMIN or BeamData.MIN_WIDTH
BeamData.MIN_HEIGHT = Machine.Trave.ZMIN or BeamData.MIN_HEIGHT
BeamData.MAX_WIDTH = Machine.Trave.XMAX or BeamData.MAX_WIDTH
BeamData.MAX_HEIGHT = Machine.Trave.ZMAX or BeamData.MAX_HEIGHT
end
if Machine.User then
BeamData.OFFSET_DRILL_TENON = Machine.User.L040_OFFSET_P1 or BeamData.OFFSET_DRILL_TENON
if Machine.User.OPTIMIZATIONS_ENABLE_SLICES_F5 == 1 then
BeamData.MAX_LEN_SCRAP = Machine.User.OPTIMIZATIONS_LENGTH_SLICES or BeamData.MAX_LEN_SCRAP
else
BeamData.MAX_LEN_SCRAP = 100000
end
if Machine.User.OPTIMIZATIONS_ENABLE_SLICES_F6 == 1 then
BeamData.MAX_LEN_SCRAP_START = Machine.User.OPTIMIZATIONS_LENGTH_SLICES or BeamData.MAX_LEN_SCRAP_START
else
BeamData.MAX_LEN_SCRAP_START = 100000
end
BeamData.USER_HOLE_DIAM = Machine.User.L020_DIAM_HOLE or BeamData.USER_HOLE_DIAM
end
end
end
---------------------------------------------------------------------
local function GetMaxLenRidgeLapFromBottom( dHRaw)
if dHRaw < BeamData.MIN_DIM_HBEAM then
return BeamData.MAX_LEN_RIDGELAP_FROM_BOTTOM + 0.01
else
return BeamData.MAX_LEN_RIDGELAP_FROM_BOTTOM_HBEAM + 0.01
end
end
BeamData.GetMaxLenRidgeLapFromBottom = GetMaxLenRidgeLapFromBottom
---------------------------------------------------------------------
local function GetBottomToolMaxTotLen( vtDir)
return 310
end
BeamData.GetBottomToolMaxTotLen = GetBottomToolMaxTotLen
---------------------------------------------------------------------
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 GetMinJoin( dW, dH, dL)
local dCoeff = GetSectionCoeff( dW, dH, dL)
return ( 1 - dCoeff) * BeamData.MIN_JOIN_S + dCoeff * BeamData.MIN_JOIN_L
end
BeamData.GetMinJoin = GetMinJoin
---------------------------------------------------------------------
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)
-- lama
if nToolType == MCH_TY.SAW_STD or nToolType == MCH_TY.SAW_FLAT then
return ''
-- sega a catena
elseif nToolType == MCH_TY.MORTISE_STD then
if sHead == 'H13' then
if sBlockedAxis == 'parallel' then
return 'A1=0'
elseif sBlockedAxis == 'perpendicular' then
return 'A1=90'
end
else
return ''
end
-- fresa
elseif nToolType == MCH_TY.MILL_STD or nToolType == MCH_TY.MILL_NOTIP then
return ''
-- punta
elseif nToolType == MCH_TY.DRILL_STD or nToolType == MCH_TY.DRILL_LONG then
return ''
else
return ''
end
end
BeamData.GetBlockedAxis = GetBlockedAxis
---------------------------------------------------------------------
local function GetSetupInfo( sHead)
local SetupInfo = {}
-- dati comuni
SetupInfo.bIsCSymmetric = true
SetupInfo.dCAxisEncumbrance = 180
SetupInfo.bToolOnAggregate = false
-- testa 5 assi da sopra
if sHead == 'H11' then
SetupInfo.bIsTopHead = true
SetupInfo.bIsBottomHead = not SetupInfo.bIsTopHead
SetupInfo.dMaxNegativeAngle = sin( -35)
-- lama su aggregato testa 5 assi da sopra
elseif sHead == 'H12' then
SetupInfo.bIsTopHead = true
SetupInfo.bIsBottomHead = not SetupInfo.bIsTopHead
SetupInfo.dMaxNegativeAngle = sin( -35)
-- seconda lama su aggregato testa 5 assi da sopra
elseif sHead == 'H16' then
SetupInfo.bIsTopHead = true
SetupInfo.bIsBottomHead = not SetupInfo.bIsTopHead
SetupInfo.dMaxNegativeAngle = sin( -35)
-- motosega
elseif sHead == 'H13' then
SetupInfo.bIsTopHead = true
SetupInfo.bIsBottomHead = not SetupInfo.bIsTopHead
SetupInfo.dMaxNegativeAngle = 0
-- testa 5 assi da sotto
elseif sHead == 'H21' then
SetupInfo.bIsBottomHead = true
SetupInfo.bIsTopHead = not SetupInfo.bIsBottomHead
SetupInfo.dMaxPositiveAngle = sin( 25)
-- lama su aggregato testa 5 assi da sotto
elseif sHead == 'H22' then
SetupInfo.bIsBottomHead = true
SetupInfo.bIsTopHead = not SetupInfo.bIsBottomHead
SetupInfo.dMaxPositiveAngle = sin( 25)
end
return SetupInfo
end
BeamData.GetSetupInfo = GetSetupInfo
---------------------------------------------------------------------
return BeamData
+9
View File
@@ -0,0 +1,9 @@
-- %TABLE_NAME%.lua by Egaltech s.r.l. %DATE_TIME%
-- Gestione dati lavorazioni per Travi
-- Tabella per definizione modulo
local %TABLE_NAME% = {
}
---------------------------------------------------------------------
return %TABLE_NAME%
+30
View File
@@ -0,0 +1,30 @@
-- GetTs3Data.lua by Egaltech s.r.l. 2022/04/07
-- Recupero dati da file Ts3Data.lua di macchina
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Per test
--GTSD = {}
--GTSD.TS3PATH = 'Essetre-FAST\\Ts3Data.lua'
local sLog = 'GetTs3Data : ' .. GTSD.TS3PATH
EgtOutLog( sLog)
if EgtExistsFile( GTSD.TS3PATH) then
local Machine = dofile( GTSD.TS3PATH)
-- Assegno valori di interesse
Offsets = Machine.Offsets
_G.Offsets = Offsets
Trave = Machine.Trave
_G.Trave = Trave
User = Machine.User
_G.User = User
end
-- Tutto ok
GTSD.ERR = 0
EgtOutLog( ' +++ GetTs3Data completed')
+80
View File
@@ -0,0 +1,80 @@
; PIndex = Type, PName, Default, Description
; Type : d=double, l=length, s=string
[1]
Name=Offsets
1=l,X1_NEG,-3450,MIN_X1
2=l,X1_POS,0,MAX_X1
3=l,PARK_X1,-250,---
4=l,Z1_NEG,-1565,MIN_Z1
5=l,Z1_POS,0,MAX_Z1
6=l,PARK_Z1,-545,PARK_Z1
7=l,PARK_SAWZ1,-150,---
8=d,B1_NEG,-127.0,MIN_B1
9=d,B1_NEG1,-119.0,MIN_B1_SAW
10=d,B1_POS,127.0,MAX_B1
11=d,B1_POS1,119.0,MAX_B1_SAW
12=d,PARK_B1,-90.0,---
13=d,PARK_SAWB1,0.0,---
14=d,C1_NEG,-275.0,MIN_C1
15=d,C1_POS,275.0,MAX_C1
16=d,PARK_C1,-90.0,---
17=d,PARK_SAWC1,-90.0,---
18=l,PIVOT_T1,170.02,PIVOT_HEAD1
19=l,X2_NEG,-2950,MIN_X2
20=l,X2_POS,0,MAX_X2
21=l,PARK_X2,-70,---
22=l,Z2_NEG,-880,MIN_Z2
23=l,Z2_POS,0,MAX_Z2
24=l,PARK_Z2,0,PARK_Z2
25=d,B2_NEG,-127.0,MIN_B2
26=d,B2_NEG1,-119.0,---
27=d,B2_POS,127.0,MAX_B2
28=d,B2_POS1,119.0,---
29=d,PARK_B2,-90.0,---
30=d,C2_NEG,-275.0,MIN_C2
31=d,C2_POS,275.0,MAX_C2
32=d,PARK_C2,-90.0,---
33=l,PIVOT_T2,169.93,PIVOT_HEAD2
34=l,MIN_Y1,378,MIN_Y1
35=l,MAX_Y1,5771,MAX_Y1
36=l,PARK_Y1,1036,PARK_Y1
37=l,MIN_V1,10,MIN_V1
38=l,MAX_V1,670,MAX_V1
39=l,MIN_Y2,-5773,MIN_Y2
40=l,MAX_Y2,-378,MAX_Y2
41=l,PARK_Y2,-1036,PARK_Y2
42=l,MIN_V2,-670,MIN_V2
43=l,MAX_V2,-10,MAX_V2
44=l,MIN_DELTAVY,391,MIN_DELTAVY
45=l,DIST_FTZERO,2206.1,CARICO_Y
46=l,DELTA_CARICZERO,45,OFFSET_RIB
47=l,DIST_UNLOAD,-2250,UNLOAD_Y
48=d,OFFSETBLAMAT1,0,OFFSET B SAW1
49=d,OFFSETCLAMAT1,0,OFFSET C SAW1
50=d,OFFSETBLAMAT2,0,OFFSET B SAW2
51=d,OFFSETCLAMAT2,0,OFFSET C SAW2
52=l,OFFSETXT1,-1178.6,OFFSET_X_HEAD1
53=l,OFFSETZT1,-1243.7,OFFSET_Z_HEAD1
54=l,OFFSETXT2,-2460.3,OFFSET_X_HEAD2
55=l,OFFSETZT2,-444.0,OFFSET_Z_HEAD2
56=l,OFFSETZSOTTOTRAVE,1005,OFFSET_Z_SOTTOTRAVE
57=d,SECONDSAW,1,SECOND_SAW
58=d,DOUBLE_HEAD_DOVETAIL,1,DT_MORTISE_IN_DOUBLE
59=d,DOUBLE_HEAD_POCKET,1,POCKET_IN_DOUBLE
60=d,DOUBLE_HEAD_DRILLING,1,DRILLING_IN_DOUBLE
[2]
Name=Trave
1=l,XMIN,30,XMIN
2=l,XMAX,1250,XMAX
3=l,ZMIN,30,ZMIN
4=l,ZMAX,400,ZMAX
[3]
Name=User
1=d,OPTIMIZATIONS_ENABLE_SLICES_F5,1,ENABLE_SLICES_ON_END
2=d,OPTIMIZATIONS_ENABLE_SLICES_F6,1,ENABLE_SLICES_ON_START
3=d,OPTIMIZATIONS_LENGTH_SLICES,100,SLICES_LENGTH
4=l,L020_DIAM_HOLE,20,L020_HOLE_DIAM
5=l,L040_OFFSET_P1,0,L040_ON_TENON_OFFSET
+62
View File
@@ -0,0 +1,62 @@
[Cut]
1=HeadSide
2=HeadSide_H2
3=TailSide
4=TailSide_H2
5=LongCut
[Drill]
1=Drill
2=Drill_H2
3=Pocket
4=Pocket_H2
5=Predrill
6=Predrill_H2
[Milling]
1=Prof
2=Prof_H2
3=FreeContour
4=FreeContour_H2
5=Tenon
6=Tenon_H2
7=DtTenon
8=DtTenon_H2
9=DtMortise
10=DtMortise_H2
11=BirdsMouth
12=BirdsMouth_H2
13=Chamfer
14=Mark
15=Mark_H2
16=Text
17=Text_H2
18=Decor01
19=Long2Cut
20=Long2Cut_H2
21=Long2CutDown
22=Long2CutDown_H2
23=LongSmallCut
24=LongSmallCut_H2
25=BHSideMill
26=CleanCorner
27=ProfTCone
28=Long2CutSide
29=Long2CutSide_H2
30=SmallToolContour
31=SmallToolContour_H2
32=AntiSplintMillCut
33=AntiSplintMillCut_H2
34=SideMillAsBlade
35=SideMillAsBlade_H2
[Pocketing]
1=Pocket
2=Pocket_H2
3=OpenPocket
4=OpenPocket_H2
5=Mortise
6=Mortise_H2
[Sawing]
1=Sawing
+3
View File
@@ -0,0 +1,3 @@
[BEAM]
StartOffset=0
Offset=0
+80
View File
@@ -0,0 +1,80 @@
local Offsets = {
X1_NEG=-3675,
X1_POS=0,
PARK_X1=-250,
Z1_NEG=-1565,
Z1_POS=0,
PARK_Z1=-535,
PARK_SAWZ1=-150,
B1_NEG=-127,
B1_NEG1=-119,
B1_POS=127,
B1_POS1=119,
PARK_B1=-90,
PARK_SAWB1=0,
C1_NEG=-275,
C1_POS=275,
PARK_C1=-90,
PARK_SAWC1=-90,
PIVOT_T1=170.02,
X2_NEG=-3195,
X2_POS=0,
PARK_X2=-70,
Z2_NEG=-975,
Z2_POS=0,
PARK_Z2=-10,
B2_NEG=-127,
B2_NEG1=-119,
B2_POS=127,
B2_POS1=119,
PARK_B2=-90,
C2_NEG=-275,
C2_POS=275,
PARK_C2=-90,
PIVOT_T2=169.93,
MIN_Y1=378,
MAX_Y1=5771,
PARK_Y1=1036,
MIN_V1=10,
MAX_V1=670,
MIN_Y2=-5773,
MAX_Y2=-378,
PARK_Y2=-1036,
MIN_V2=-670,
MAX_V2=-10,
MIN_DELTAVY=375,
DIST_FTZERO=2224.25,
DELTA_CARICZERO=45,
DIST_UNLOAD=-2250,
OFFSETBLAMAT1=0,
OFFSETCLAMAT1=0,
OFFSETBLAMAT2=0,
OFFSETCLAMAT2=0,
OFFSETXT1=-1174.22,
OFFSETZT1=-1248.99,
OFFSETXT2=-2713.59,
OFFSETZT2=-528.29,
OFFSETZSOTTOTRAVE=1005,
SECONDSAW=1,
DOUBLE_HEAD_DOVETAIL=1,
DOUBLE_HEAD_MORTISE=1,
DOUBLE_HEAD_DRILLING=1,
}
local Trave = {
XMIN=30,
XMAX=1500,
ZMIN=30,
ZMAX=400,
}
local User = {
OPTIMIZATIONS_ENABLE_SLICES_F5=1,
OPTIMIZATIONS_ENABLE_SLICES_F6=1,
OPTIMIZATIONS_LENGTH_SLICES=100,
L020_DIAM_HOLE=12,
L040_OFFSET_P1=0,
}
local Machine = { Offsets=Offsets, Trave=Trave, User=User}
return Machine
File diff suppressed because it is too large Load Diff
+2514
View File
File diff suppressed because it is too large Load Diff
+2557
View File
File diff suppressed because it is too large Load Diff
+36
View File
@@ -0,0 +1,36 @@
REM Compilazione degli script macchina Egaltech 2024.02.22
REM Per togliere info di debug aggiungere flag -s prima del nome del file di input
REM Compilazione 32 bit e copia file da non compilare
@echo off
REM chiedo all'utente la versione da assegnare alla macchina da compilare
set /p "machineVersion=Inserisci versione: "
REM variabili per costruire i percorsi delle cartelle
set "machineName=Essetre-PF1500rl"
set "deployFolder=C:\MachinesDeploy"
set "machinePath=%deployFolder%\%machineName%\"
set "fullPathSource=%deployFolder%\%machineName%\%machineVersion%\%machineName%"
set "fullPathZip=%deployFolder%\%machineName%\%machineVersion%"
REM elimino eventuale cartella esistente
rmdir /s /Q %fullPathZip%
REM copio i sorgenti nel percorso di destinazione
ROBOCOPY . %fullPathSource%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt"
REM copio i sorgenti nel percorso temporaneo per i compilati
ROBOCOPY . %fullPathSource%\bin\%machineName%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt"
REM copio i file compilati nel percorso temporaneo per i compilati
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_PF1250.mlpe Common_PF1250.mlpe
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_PF1250.mlse Common_PF1250.mlse
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_PF1250.TPA.mlpe Common_PF1250.TPA.mlpe
REM comprimo i file compilati in uno zip pronto per essere distribuito
tar.exe acvf %fullPathZip%\%machineName%.zip -C %fullPathSource%\bin\ %machineName%\*.*
REM elimino il percorso temporaneo
rmdir /s /Q %fullPathSource%\bin\
+73
View File
@@ -0,0 +1,73 @@
; Commento per evitare BOM con UTF-8
[General]
Material=Beam
[Tools]
Drillbit=1
Sawblade=1
Mill=1
Mortise=1
Chisel=0
DrillMaker=MakeWoodDrill.lua
SawbladeMaker=MakeSawblade.lua
MillMaker=MakeWoodCylMill.lua
MortiseMaker=MakeMortise.lua
ChiselMaker=MakeChisel.lua
Active=1
[ToolHolder]
H11.1=Standard.nge
H11.1:MILL_NOTIP=MillNoTip.nge
H12.1=Saw.nge
H13.1=ChainSaw.nge
H16.1=Saw.nge
H21.1=Standard.nge
H21.1:MILL_NOTIP=MillNoTip.nge
H21.1:SAW_STD=SawH2Std.nge
H21.1:SAW_FLAT=SawH2Flat.nge
[Machinings]
Drilling=1
Sawing=1
Milling=1
Pocketing=1
Mortising=1
Chiseling=0
GenMachining=0
SurfRoughing=0
SurfFinishing=0
[Machining]
InitScript=InitMach.lua
ExitScript=ExitMach.lua
[Disposition]
;InitScript=InitDisp.lua
[Heads]
; 5 axis head
H11=6608
; 5 axis saw
H12=6615
; Second 5 axis saw
H16=6623
; Chainsaw
H13=6616
; Second 5 axis head
H21=6620
; Second 5 axis bottom saw
H22=6628
; 5 axis head
H31=6608
[SetUp]
Default=Standard
[Estimations]
Enable=1
WinPlace=0,514,138,628,810
[VMill]
Enable=1
Save=0
File diff suppressed because it is too large Load Diff
Binary file not shown.
+50
View File
@@ -0,0 +1,50 @@
; Commento per evitare BOM con UTF-8
;Index = Type, Description, Default Value
; Type : b=boolean, d=double, l=lenght, s=string
[Drilling]
[Sawing]
[Milling]
0=d,MaxElev,0
1=d,OutRaw,0
2=d,SideElev,0
3=d,TrimExt,0
4=sr,VtFaceUse,0,0,0
[Pocketing]
0=d,MaxElev,0
1=b,Open,0
2=d,OpenMinSave,0
3=d,OpenOutRaw,0
4=d,MaxOptSize,0
[Mortising]
0=d,MaxElev,0
[Chiseling]
[SawRoughing]
[SawFinishing]
[GenMachining]
0=l,LinTol,0.1
1=l,MaxLen,2
2=s,Type,ZigZag
3=d,SideAng,90
4=l,Step,10
5=l,OffsProj,0
6=l,LiTang,0
7=l,LiOrth,0
8=l,LiElev,0
9=l,LoTang,0
10=l,LoOrth,0
11=l,LoElev,0
12=b,DirFromGuide,1
[SurfRoughing]
[SurfFinishing]
0=b,SkipMaxDown,1
+36
View File
@@ -0,0 +1,36 @@
-- 2018/11/21 17:30:00
-- Machining Exit for Essetre-FAST machine
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
--------------------------------------------------------------------------------
-- *** Uscita da Lavorazioni ***
-- Nascondo il pezzo così marcato e le geometrie aggiunte, visualizzo il Box
local function ProcessPart( PartId)
-- visualizzo il Box
EgtSetStatus( EgtGetFirstNameInGroup( PartId, 'Box') or GDB_ID.NULL, GDB_ST.ON)
end
-- Disabilito segnalazione modifica progetto
local bEnMod = EgtGetEnableModified()
EgtDisableModified()
-- Processo i pezzi nella radice (già chiusi tutti i gruppi di lavoro)
local PartId = EgtGetFirstPart()
while PartId do
ProcessPart( PartId)
PartId = EgtGetNextPart( PartId)
end
EgtZoom( SCE_ZM.ALL, false)
-- Ripristino segnalazione modifica progetto
if bEnMod then
EgtEnableModified()
end
MACH.ERR = 0
+44
View File
@@ -0,0 +1,44 @@
-- 2018/11/21 16:30:00
-- Machining Init for Essetre-FAST machine
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
--------------------------------------------------------------------------------
-- *** Ingresso in Lavorazioni ***
-- Rendo visibile il pezzo e le geometrie aggiunte, nascondo il Box
local function ProcessPart( PartId)
-- nascondo il Box
EgtSetStatus( EgtGetFirstNameInGroup( PartId, 'Box') or GDB_ID.NULL, GDB_ST.OFF)
end
-- Disabilito segnalazione modifica progetto
local bEnMod = EgtGetEnableModified()
EgtDisableModified()
-- Processo i pezzi nella radice
local PartId = EgtGetFirstPart()
while PartId do
ProcessPart( PartId)
PartId = EgtGetNextPart( PartId)
end
-- Processo i pezzi già nei gruppi di lavoro (quando appena lanciata Process)
local GhostId = EgtGetFirstGhostPart()
while GhostId do
local PartId = EgtGetInfo( GhostId, GDB_SI.SOURCE, 'i')
if PartId then
ProcessPart( PartId)
end
GhostId = EgtGetNextGhostPart( GhostId)
end
-- Ripristino segnalazione modifica progetto
if bEnMod then
EgtEnableModified()
end
MACH.ERR = 0
+288
View File
@@ -0,0 +1,288 @@
-- 2023/11/13
-- Gestione attrezzaggio per Essetre-PF1500rl
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Tavola di passaggio valori
local STU = {}
STU.TUUID = ""
STU.TCPOS = ""
STU.HEAD = ""
STU.GROUP = ""
STU.POS = ""
STU.EXIT = 0
STU.INDEX = 0
STU.HEAD1 = ""
STU.HEAD2 = ""
STU.ISVALID = false
STU.ERR = 0
_G.STU = STU
local INVALIDPOS = ""
local POS = "Pos"
-- Geom Set
local GS = {}
-- Configurazione posizioni (con o senza TC2)
local PositionTable = {}
local bTc2Active = ( EgtGetFirstNameInGroup( EgtGetBaseId( 'Base'), 'TC2') ~= nil)
local SecondSaw = ( EgtGetHeadId( 'H16') ~= nil)
local SecondChain = ( EgtGetFirstNameInGroup( EgtGetBaseId( 'Base'), 'TC4') ~= nil)
local TcSpecialTools = ( EgtGetFirstNameInGroup( EgtGetBaseId( 'Base'), 'TC5') ~= nil)
local TcAggreBladeUnder = ( EgtGetFirstNameInGroup( EgtGetBaseId( 'Base'), 'TCS') ~= nil)
local bFullOpt = bTc2Active and SecondSaw and SecondChain and TcSpecialTools and TcAggreBladeUnder -- se ha tutti gli optional attivati
if bFullOpt then
PositionTable = {{Pos = "Pos1", TcPos = "T1", Head = "H12", Group = "G1"}, -- TC 1
{Pos = "Pos2", TcPos = "T2", Head = "H11", Group = "G1"},
{Pos = "Pos3", TcPos = "T3", Head = "H11", Group = "G1"},
{Pos = "Pos4", TcPos = "T4", Head = "H11", Group = "G1"},
{Pos = "Pos5", TcPos = "T5", Head = "H11", Group = "G1"},
{Pos = "Pos6", TcPos = "T6", Head = "H11", Group = "G1"},
{Pos = "Pos7", TcPos = "T7", Head = "H11", Group = "G1"},
{Pos = "Pos8", TcPos = "T8", Head = "H11", Group = "G1"},
{Pos = "Pos9", TcPos = "T9", Head = "H11", Group = "G1"},
{Pos = "Pos10", TcPos = "T10", Head = "H11", Group = "G1"},
{Pos = "Pos11", TcPos = "T11", Head = "H11", Group = "G1"},
{Pos = "Pos12", TcPos = "T12", Head = "H11", Group = "G1"},
{Pos = "Pos13", TcPos = "T13", Head = "H11", Group = "G1"},
{Pos = "Pos14", TcPos = "T101", Head = "H13", Group = "G2"}, -- motosega
{Pos = "Pos15", TcPos = "T111", Head = "H13", Group = "G2"}, -- motosega 2
{Pos = "Pos16", TcPos = "T121", Head = "H11", Group = "G2"}, -- utensile speciale
{Pos = "Pos17", TcPos = "T21", Head = "H16", Group = "G3"}, -- TC 2
{Pos = "Pos18", TcPos = "T22", Head = "H11", Group = "G3"},
{Pos = "Pos19", TcPos = "T23", Head = "H11", Group = "G3"},
{Pos = "Pos20", TcPos = "T24", Head = "H11", Group = "G3"},
{Pos = "Pos21", TcPos = "T25", Head = "H11", Group = "G3"},
{Pos = "Pos22", TcPos = "T26", Head = "H11", Group = "G3"},
{Pos = "Pos23", TcPos = "T27", Head = "H11", Group = "G3"},
{Pos = "Pos24", TcPos = "T28", Head = "H11", Group = "G3"},
{Pos = "Pos25", TcPos = "T29", Head = "H11", Group = "G3"},
{Pos = "Pos26", TcPos = "T30", Head = "H11", Group = "G3"},
{Pos = "Pos27", TcPos = "T201", Head = "H22", Group = "G4"}, -- lama con aggregatop da sotto
{Pos = "Pos28", TcPos = "T220", Head = "H21", Group = "G4"}, -- TC margherita
{Pos = "Pos29", TcPos = "T221", Head = "H21", Group = "G4"},
{Pos = "Pos30", TcPos = "T222", Head = "H21", Group = "G4"},
{Pos = "Pos31", TcPos = "T223", Head = "H21", Group = "G4"},
{Pos = "Pos32", TcPos = "T224", Head = "H21", Group = "G4"},
{Pos = "Pos33", TcPos = "T225", Head = "H21", Group = "G4"},
{Pos = "Pos34", TcPos = "T226", Head = "H21", Group = "G4"},
{Pos = "Pos35", TcPos = "T227", Head = "H21", Group = "G4"},
{Pos = "Pos36", TcPos = "T228", Head = "H21", Group = "G4"},
{Pos = "Pos37", TcPos = "T229", Head = "H21", Group = "G4"},
{Pos = "Pos38", TcPos = "T230", Head = "H21", Group = "G4"},
{Pos = "Pos39", TcPos = "T301", Head = "H31", Group = "G5"}}
elseif bTc2Active then
PositionTable = {{Pos = "Pos1", TcPos = "T1", Head = "H12", Group = "G1"},
{Pos = "Pos2", TcPos = "T3", Head = "H11", Group = "G1"},
{Pos = "Pos3", TcPos = "T4", Head = "H11", Group = "G1"},
{Pos = "Pos4", TcPos = "T5", Head = "H11", Group = "G1"},
{Pos = "Pos5", TcPos = "T6", Head = "H11", Group = "G1"},
{Pos = "Pos6", TcPos = "T7", Head = "H11", Group = "G1"},
{Pos = "Pos7", TcPos = "T8", Head = "H11", Group = "G1"},
{Pos = "Pos8", TcPos = "T9", Head = "H11", Group = "G1"},
{Pos = "Pos9", TcPos = "T10", Head = "H11", Group = "G1"},
{Pos = "Pos10", TcPos = "T101",Head = "H13", Group = "G2"},
{Pos = "Pos11", TcPos = "T11", Head = "H11", Group = "G3"},
{Pos = "Pos12", TcPos = "T12", Head = "H11", Group = "G3"},
{Pos = "Pos13", TcPos = "T13", Head = "H11", Group = "G3"},
{Pos = "Pos14", TcPos = "T14", Head = "H11", Group = "G3"},
{Pos = "Pos15", TcPos = "T15", Head = "H11", Group = "G3"},
{Pos = "Pos16", TcPos = "T20", Head = "H21", Group = "G4"},
{Pos = "Pos17", TcPos = "T21", Head = "H21", Group = "G4"},
{Pos = "Pos18", TcPos = "T22", Head = "H21", Group = "G4"},
{Pos = "Pos19", TcPos = "T23", Head = "H21", Group = "G4"},
{Pos = "Pos20", TcPos = "T24", Head = "H21", Group = "G4"},
{Pos = "Pos21", TcPos = "T25", Head = "H21", Group = "G4"},
{Pos = "Pos22", TcPos = "T26", Head = "H21", Group = "G4"},
{Pos = "Pos23", TcPos = "T27", Head = "H21", Group = "G4"},
{Pos = "Pos24", TcPos = "T28", Head = "H21", Group = "G4"},
{Pos = "Pos25", TcPos = "T29", Head = "H21", Group = "G4"},
{Pos = "Pos26", TcPos = "T30", Head = "H21", Group = "G4"},
{Pos = "Pos27", TcPos = "T301", Head = "H31", Group = "G4"}}
else
PositionTable = {{Pos = "Pos1", TcPos = "T1", Head = "H12", Group = "G1"},
{Pos = "Pos2", TcPos = "T3", Head = "H11", Group = "G1"},
{Pos = "Pos3", TcPos = "T4", Head = "H11", Group = "G1"},
{Pos = "Pos4", TcPos = "T5", Head = "H11", Group = "G1"},
{Pos = "Pos5", TcPos = "T6", Head = "H11", Group = "G1"},
{Pos = "Pos6", TcPos = "T7", Head = "H11", Group = "G1"},
{Pos = "Pos7", TcPos = "T8", Head = "H11", Group = "G1"},
{Pos = "Pos8", TcPos = "T9", Head = "H11", Group = "G1"},
{Pos = "Pos9", TcPos = "T10", Head = "H11", Group = "G1"},
{Pos = "Pos10", TcPos = "T101",Head = "H13", Group = "G2"},
{Pos = "Pos11", TcPos = "T20", Head = "H21", Group = "G3"},
{Pos = "Pos12", TcPos = "T21", Head = "H21", Group = "G3"},
{Pos = "Pos13", TcPos = "T22", Head = "H21", Group = "G3"},
{Pos = "Pos14", TcPos = "T23", Head = "H21", Group = "G3"},
{Pos = "Pos15", TcPos = "T24", Head = "H21", Group = "G3"},
{Pos = "Pos16", TcPos = "T25", Head = "H21", Group = "G3"},
{Pos = "Pos17", TcPos = "T26", Head = "H21", Group = "G3"},
{Pos = "Pos18", TcPos = "T27", Head = "H21", Group = "G3"},
{Pos = "Pos19", TcPos = "T28", Head = "H21", Group = "G3"},
{Pos = "Pos20", TcPos = "T29", Head = "H21", Group = "G3"},
{Pos = "Pos21", TcPos = "T30", Head = "H21", Group = "G3"},
{Pos = "Pos22", TcPos = "T301", Head = "H31", Group = "G4"}}
end
local UsePositionHead = true
local function IsInGeomSet( ToolHead, PosHead)
for GsIndex = 1, #GS do
local bToolHead = false
local bPosHead = false
for HIndex = 1, #GS[GsIndex] do
if GS[GsIndex][HIndex] == ToolHead then
bToolHead = true
elseif GS[GsIndex][HIndex] == PosHead then
bPosHead = true
end
if bToolHead and bPosHead then
return true
end
end
if bToolHead and bPosHead then
return true
end
end
return false
end
function STU.IsCompatibleHeads()
STU.ISVALID = false
if IsInGeomSet(STU.HEAD1, STU.HEAD2) then
STU.ISVALID = true
else
STU.ISVALID = false
end
end
function STU.GetValidHeadExitForPos()
-- se TUUID non valido restituisco errore
local ToolName = EgtTdbGetToolFromUUID( STU.TUUID)
if ToolName == nill then
STU.ERR = 1
return
end
EgtTdbSetCurrTool( ToolName)
local CurrToolHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
STU.EXIT = EgtTdbGetCurrToolParam( MCH_TP.EXIT)
-- recupero testa predefinita per la posizione corrente
local CurrPosHead
for i = 1, #PositionTable do
if PositionTable[i].TcPos == STU.TCPOS then
CurrPosHead = PositionTable[i].Head
break
end
end
-- verifico se la testa è quella della posizione predefinita
if CurrPosHead == CurrToolHead then
STU.HEAD = CurrToolHead
STU.ERR = 0
return
-- verifico se la testa è compatibile con quella della posizione predefinita
elseif IsInGeomSet( CurrToolHead, CurrPosHead) then
if UsePositionHead then
STU.HEAD = CurrPosHead
STU.ERR = 0
return
else
STU.HEAD = CurrToolHead
STU.ERR = 0
return
end
-- la testa non è compatibile con quella della posizione predefinita
else
STU.HEAD = INVALIDPOS
STU.ERR = 0
return
end
end
function STU.IsValidTcPosFromHead()
STU.ISVALID = false
for i = 1, #PositionTable do
if PositionTable[i].TcPos == STU.TCPOS then
if PositionTable[i].Head == STU.HEAD then
STU.ISVALID = true
STU.ERR = 0
return
elseif IsInGeomSet(PositionTable[i].Head, STU.HEAD) then
STU.ISVALID = true
STU.ERR = 0
return
end
STU.ISVALID = false
STU.ERR = 0
return
end
end
end
function STU.GetTcPosHeadGroupFromPos()
for i = 1, #PositionTable do
if PositionTable[i].Pos == (POS .. tostring(STU.INDEX)) then
STU.TCPOS = PositionTable[i].TcPos
STU.HEAD = PositionTable[i].Head
STU.GROUP = PositionTable[i].Group
STU.ERR = 0
return
end
end
STU.TCPOS = INVALIDPOS
STU.HEAD = INVALIDPOS
STU.GROUP = INVALIDPOS
STU.ERR = 1
end
function STU.GetPosFromTcPos()
for i = 1, #PositionTable do
if PositionTable[i].TcPos == STU.TCPOS then
STU.POS = PositionTable[i].Pos
STU.ERR = 0
return
end
end
STU.POS = INVALIDPOS
STU.ERR = 1
end
function STU.GetGroupFromTcPos()
for i = 1, #PositionTable do
if PositionTable[i].TcPos == STU.TCPOS then
STU.GROUP = PositionTable[i].Group
STU.ERR = 0
return
end
end
STU.GROUP = INVALIDPOS
STU.ERR = 1
end
function STU.GetHeadFromPos()
for i = 1, #PositionTable do
if PositionTable[i].Pos == (POS .. tostring(STU.INDEX)) then
STU.HEAD = PositionTable[i].Head
STU.ERR = 0
return
end
end
STU.HEAD = INVALIDPOS
STU.ERR = 1
end
function STU.GetTcPosFromPos()
for i = 1, #PositionTable do
if PositionTable[i].Pos == (POS .. tostring(STU.INDEX)) then
STU.TCPOS = PositionTable[i].TcPos
STU.ERR = 0
return
end
end
STU.TCPOS = INVALIDPOS
STU.ERR = 1
end
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+41
View File
@@ -0,0 +1,41 @@
; Commento per evitare BOM con UTF-8
; Index, Type, Description, Value
; Index = 0,1,..,n
; Type : d=double, l=lenght, s=string, b=boolean, dr=double recalc, sr= string recalc, lr=lenght recalc, br=boolean recalc, th=toolholder
; Description : STEP, SIDESTEP, ...
[DRILL_STD]
0=th,TH,
1=d,STEP
2=s,DOUBLE
[SAW_STD]
0=th,TH,
1=d,STEP
2=d,SIDESTEP
3=b,LONGCUT
[SAW_FLAT]
0=th,TH,
1=d,STEP
2=d,SIDESTEP
3=b,LONGCUT
[MILL_STD]
0=th,TH,
1=d,STEP
2=d,SIDESTEP
3=d,SIDEDEPTH
4=s,DOUBLE
[MILL_NOTIP]
0=th,TH,
1=d,STEP
2=d,SIDESTEP
3=d,SIDEDEPTH
4=s,DOUBLE
[MORTISE_STD]
0=b,MORTISE
1=d,STEP
2=d,SIDESTEP
+147
View File
@@ -0,0 +1,147 @@
==== Common_PF1250 Update Log ====
Versione 2.6j1 (01/10/2024)
- (GEN) Migliorato calcolo chiusura paratia rulli con aggiornamento lunghezza della barra in caso di ultimo taglio e grezzo residuo in coda. Ticket#2017
- (NGE-SIM) Aggiunta gestione solidi collisione per TC verticali e TC rotante sotto
- (GEN) Per lavorazione in doppio: messaggio bloccante in caso di extra-corsa durante un movimento standard su piano generico della lavorazione.
Versione 2.6i1 (10/09/2024)
- (GEN) Se diametro utensile più del truciolatore standard grande, non si preseleziona. Ticket#2028
Versione 2.6h2 (28/08/2024)
- (SIM-GEN) Quando si aprono i rulli, se la trave non può seguire i rulli perchè la pinza andrebbe in extra-corsa, si sposta comunque la pinza fino al massimo della sua corsa. Ticket#1949
- (GEN) La testa veniva spostata a quota X sicurezza rotazione assi rotanti prima di aprire le rulliere. Ticket#1991
Versione 2.6h1 (07/08/2024)
- (GEN) Gestione creazione piano generico in caso il primo movimento della lavorazione sia un arco. Ticket#1891
- (SIM-GEN) Migliorata gestione riposizionamenti fatta con la 2.6g1. Ticket#1836
- (MLDE-SIM-GEN) Rinominato file da "Common-" a "Common_" per uniformità con i file common delle altre macchine. Serve modifica a MLDE macchina.
Versione 2.6g5 (24/07/2024)
- (SIM) Per OnSetHead chiamata da simulazione, aggiunta lettura TOTDIAM. Serve per limitare corse assi testa sotto. Ticket#1946
Versione 2.6g4 (23/07/2024)
- (SIM) Corretta ultima modifica per controllo collisioni testa non utilizzata. Trovava collisioni in lavorazioni in doppio.
Versione 2.6g3 (22/07/2024)
- (SIM) Si aggiunge al controllo collisioni anche Tool e ToolHolder della testa non utilizzata. Ticket#1937
- (SIM-GEN) In caso di grezzo piuttosto piccolo, concesso pinzaggio fino al massimo possibile, oltre al calcolo con coefficienti. Ticket#1942
Versione 2.6g2 (12/07/2024)
- (SIM-GEN) Corretto movimento testa sotto che andava in collisione tra una lavorazione e la successiva se tra le due c'era un riposizionamento pinze. Ticket#1925
Versione 2.6g1 (08/07/2024)
- (SIM-GEN) Corretto movimento che pinzava nel vuoto durante riposizionamento. Ticket#1836
Versione 2.6f2 (06/06/2024)
- (GEN) Quando si va a ZMAX, si azzerano tutte le coordinate ".pp". Scriveva una Z bassa quando era a Z massima. Ticket#1839
Versione 2.6f1 (03/06/2024)
- (SIM-GEN) Migliorata gestione approccio al pezzo con lama aggregato da sotto. Va al minimo in X solo se necessario.
Versione 2.6e6 (28/05/2024)
- (GEN) Aggiunta possibilità di scrivere nome utensile doppio anche in lavorazione con parametro "TOOLDOUBLE". Note sulla lavorazione hanno precedenza su note utensile.
- (GEN) Ripristinato controllo extra-corsa per testa 2 in caso di lavorazioni in doppio in Y (si era perso in un vecchio commit)
- (SIM-GEN) Corretto movimento testa sotto su prima lavorazione. Ruotava a parcheggio invece di andare a quota sicurezza rotazione assi.
Versione 2.6e5 (23/05/2024)
- (GEN) Controllo extra-corsa per testa 2 in caso di lavorazioni in doppio in Y
- (GEN) Corretta lettura e salvataggio coordinala asse L2 con coordinate rispetto origine. Prima erano locali e sbagliava alcuni calcoli
- (SIM-GEN) Se lavorazione con testa 2 e stesso utensile, piccola correzione che manda a parcheggio se cambiano assi rotanti solo se si trova a ZMAX
Versione 2.6e4 (15/05/2024)
- (SIM-GEN) Miglioramento gestione lama su aggregato da sotto
Versione 2.6e3 (09/05/2024)
- (SIM) Corretto prelievo lama 2 (H16). Prima di visualizzare utensile, si sposta la Z alla quota massima. Prima trovava collisione in caso utensile precedente non lama (perchè era già oltre la quota massima).
Versione 2.6e2 (06/05/2024)
- (GEN) In parcheggio paratie/pinze, viene considerato sovramateriale di testa. Simulazione era corretta. Ticket#1789
Versione 2.6e1 (30/04/2024)
- (SIM-GEN) Per macchina a 3 teste, ripristinato posizionamento testa 2 tramite parametro ParkInLavZ2. La gestione era stata persa dal common.
- (MLDE-GEN) Gestione facoltativa parametro WOOD_DENSITY settabile in Ts3. In MLDE, mettere il valore di WOOD_DENSITY nella nostra variabile 'WoodDensity'.
Versione 2.6d2 (23/04/2024)
- (MLDE-GEN) Aggiunto parametro 'IS_TEST_MACHINE' FACOLTATIVO. Se non esiste o 'false' è macchina standard, se 'true' è una macchina utilizzata per i test Egalware interni
- (GEN) Chiamando la macchina con un nome che termini con '.TEST' si abilita come macchina per test interni, equivalente a settare 'IS_TEST_MACHINE' (che comunque rimane)
- (SIM-GEN) Modificato movimenti testa sotto. Prima si muove in quota 'ParkMchY2' e poi va alla coordinata di lavoro ruotando gli assi
- (SIM) Per lavorazioni in doppio, viene subito scritta la quota Z. La generazione era già corretta. Ticket#1377
- (GEN) Ripristinato movimento iniziale testa sopra assieme alle pinze. Spostato comando wait dopo primo movimento testa. Ticket#1730
- (MLDE-SIM-GEN) Aggiunto parametro MaxZ1Blade per differenziare Z massima aggregato lama e altri utensili.
- (SIM) Aggiunto controllo con solido di collisione per verificare di non salire oltre il massimo
- (SIM) Corretta simulazione scambio testa 3 -> testa 1
Versione 2.6d1 (09/04/2024)
- (GEN) Corretto impostazione piano G24 con testa da sotto con aggregato
- (SIM-GEN) Corretta posizione prelievo/parcheggio se lama su aggregato da sotto
- (MLDE-SIM-GEN) Aggiunta variabile FACOLTATIVA 'ForceToCloseRollersGate' ( che legge la variabile da TS3 'CHIUDI_PINZE_2_3_SCAMBIO') in mlde per forzare chiusura paratie rulli
durante scambio pinze per facilitare passaggio pezzi molto storti. Se non presente chiude solo se necessario.
- (GEN) Corretta scrittura lista utensili iniziale M992 per doppia motosega e aggregato lama sotto
- (SIM-GEN) Corretto movimento punte lunghe
- (GEN) Corretto adeguamento speed per aggregato lama da sotto con coefficiente moltiplicativo
- (SIM-GEN) Aumentato numero riposizionamenti possibili a 10 ( per pezzi molto lunghi non bastava il valore precedente: 5)
- (GEN) Corretto posizionamento assi in home se primo utensile punta lunga
Versione 2.6c5 (26/03/2024)
- (SIM) Corretto primo movimento in rapido della lavorazione per testa sotto. Ora allineata a generazione
- (SIM-GEN) Aggiunta gestione parametro "SECDIST". Distanza di sicurezza tra paratia con rulli e utensile/testa. Parametro da inserire nelle note utensile
- (MLDE-SIM) Modificate collisioni traversa. Ora non comprende carro X1, il quale ha il proprio oggetto di collisione
Versione 2.6c4 (14/03/2024)
- (SIM) Miglioramento visualizzazione spigoli VMILL alla fine della simulazione. Funzione: EgtVolZmapSetShowEdges. N.B.= serve CAM5 2.6c2 NON OBBLIGATORIO
- (GEN) Modifica controlli a preselezione utensile. Margine ridotto da 400m a 200mm.
- (GEN) Corretto controllo preselezione testa H1 quando H2 in lavoro
Versione 2.6c3 (12/03/2024)
- (SIM-GEN) Migliorata gestione movimenti con lama su aggregato su testa sotto
Versione 2.6c2 (04/03/2024)
- (GEN) I commenti iniziali si scrivono in modo standard, per poterli commentare nella macchina di test
- (MLDE-GEN) Aggiunta variabile 'MACH_NAME' in MLDE con nome macchina
Versione 2.6c1 (29/02/2024)
- (SIM) Gestione rimozione VMILL per tagli a cubetti Zig-Zag
Versione 2.6b4 (23/02/2024)
- (MLDE-SIM-GEN) EgtAddToPackagePath spostato in mlde
Versione 2.6b3 (20/02/2024)
- (SIM) Aggiunta funzioni "OnSimulInit" e "OnSimulExit" per orientare vista corretta in caso di macchina con carico destro. N.B.= serve CAM5 2.6b4 NON OBBLIGATORIO
- (SIM-GEN) "BeamData" caricato come libreria con 'require' anziché come file con 'dofile'
Versione 2.6b2 (15/02/2024)
- (SIM-GEN) Primo movimento in X per testa 2 a SafeX2 anziché a ParkX2
Versione 2.6b1 (07/02/2024)
- (MLDE-SIM-GEN) Inserito parametro 'MinLengthLongCSaw' per gestione motosega molto lunga
- (MLDE) funzione 'GetCurrChainSawingVirtualAxis' spostata in MLDE
Versione 2.6a5 (31/01/2024)
- (SIM) Migliorata simulazione apertura/chiusura morse in caso di separazione
- (SIM-GEN) Migliorata gestione movimenti con motosega e adeguato simulazione
- (GEN) Corretta scrittura assi in caso di 'WriteAllCoordsOnFirstM101' per testa 2
- (SIM-GEN) Caricamento BeamData come local
Versione 2.6a4 (25/01/2024)
- (SIM-GEN) Corretto movimento in caso di cambio assi rotanti tra due lavorazioni
- (GEN) Corretta emissione coordinate assi in caso di 'WriteAllCoordsOnFirstM101'
Versione 2.6a3 (22/01/2024)
- (SIM-GEN) Correzione gestione apertura/chiusura rulli sul fine barra (#1630) e in generale
- (GEN) Modificato flag 'EmitRapidInG0' in 'EmitRapidInG1' per decidere se scrivere G1 anziché G0. Se flag a nil, scrive i rapidi in G0
- (SIM) Correzione movimenti pinze prima di separazione
Versione 2.6a2 (19/01/2024)
- (GEN) Corretta inversione coordinata X per Lama su aggregato da sotto
- (SIM) Se modalità 'WriteAllCoordsOnFirstM101', oltre alla X si scive quota di parcheggio assi B2 e C2 come in generazione
- (SIM-GEN) Tolta gestione rotazione pezzo (di derivazione PF), in macchina non è previsto ribaltamento
- (GEN) Migliorata gestione preselezione utensile
- (MLDE-GEN) Aggiunto flag 'EmitRapidInG0' per decidere se scrivere G0 anziché G1. Se flag a nil, scrive i rapidi in G1
Versione 2.6a1 (09/01/2024)
- Prima versione post-proc comune tra macchine PF1250 e PF1500
- (SIM-GEN) Corretto movimento testa 2 in ToolDesel e movimento controllo collisione
- (GEN) Tolta testa H14 per utensili speciali. Si utilizza H11 per frese standard
- (MLDE-GEN) Costanti 'MinForzaPinze' e 'MaxForzaPinze' portati in mlde/Ts3data (erano hardcoded)
- (MLDE-SIM-GEN) Aggiunto parametro 'WriteAllCoordsOnFirstM101' per decidere se stampare tutti gli assi sulla prima M101
+10
View File
@@ -0,0 +1,10 @@
-- Version.lua by EgalWare s.r.l. 2024/01/22
-- Gestione della versione dei file comuni post-processori macchine PF1250 e PF1500 di Essetre
local InfoCommon_STD_PP = {
NAME = 'Common_PF1250', -- nome script PP standard
VERSION = '2.6j1', -- versione script
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
}
return InfoCommon_STD_PP
+80
View File
@@ -0,0 +1,80 @@
; PIndex = Type, PName, Default, Description
; Type : d=double, l=length, s=string
[1]
Name=Offsets
1=l,X1_NEG,-3450,MIN_X1
2=l,X1_POS,0,MAX_X1
3=l,PARK_X1,-250,---
4=l,Z1_NEG,-1565,MIN_Z1
5=l,Z1_POS,0,MAX_Z1
6=l,PARK_Z1,-545,PARK_Z1
7=l,PARK_SAWZ1,-150,---
8=d,B1_NEG,-127.0,MIN_B1
9=d,B1_NEG1,-119.0,MIN_B1_SAW
10=d,B1_POS,127.0,MAX_B1
11=d,B1_POS1,119.0,MAX_B1_SAW
12=d,PARK_B1,-90.0,---
13=d,PARK_SAWB1,0.0,---
14=d,C1_NEG,-275.0,MIN_C1
15=d,C1_POS,275.0,MAX_C1
16=d,PARK_C1,-90.0,---
17=d,PARK_SAWC1,-90.0,---
18=l,PIVOT_T1,170.02,PIVOT_HEAD1
19=l,X2_NEG,-2950,MIN_X2
20=l,X2_POS,0,MAX_X2
21=l,PARK_X2,-70,---
22=l,Z2_NEG,-880,MIN_Z2
23=l,Z2_POS,0,MAX_Z2
24=l,PARK_Z2,0,PARK_Z2
25=d,B2_NEG,-127.0,MIN_B2
26=d,B2_NEG1,-119.0,---
27=d,B2_POS,127.0,MAX_B2
28=d,B2_POS1,119.0,---
29=d,PARK_B2,-90.0,---
30=d,C2_NEG,-275.0,MIN_C2
31=d,C2_POS,275.0,MAX_C2
32=d,PARK_C2,-90.0,---
33=l,PIVOT_T2,169.93,PIVOT_HEAD2
34=l,MIN_Y1,378,MIN_Y1
35=l,MAX_Y1,5771,MAX_Y1
36=l,PARK_Y1,1036,PARK_Y1
37=l,MIN_V1,10,MIN_V1
38=l,MAX_V1,670,MAX_V1
39=l,MIN_Y2,-5773,MIN_Y2
40=l,MAX_Y2,-378,MAX_Y2
41=l,PARK_Y2,-1036,PARK_Y2
42=l,MIN_V2,-670,MIN_V2
43=l,MAX_V2,-10,MAX_V2
44=l,MIN_DELTAVY,391,MIN_DELTAVY
45=l,DIST_FTZERO,2206.1,CARICO_Y
46=l,DELTA_CARICZERO,45,OFFSET_RIB
47=l,DIST_UNLOAD,-2250,UNLOAD_Y
48=d,OFFSETBLAMAT1,0,OFFSET B SAW1
49=d,OFFSETCLAMAT1,0,OFFSET C SAW1
50=d,OFFSETBLAMAT2,0,OFFSET B SAW2
51=d,OFFSETCLAMAT2,0,OFFSET C SAW2
52=l,OFFSETXT1,-1178.6,OFFSET_X_HEAD1
53=l,OFFSETZT1,-1243.7,OFFSET_Z_HEAD1
54=l,OFFSETXT2,-2460.3,OFFSET_X_HEAD2
55=l,OFFSETZT2,-444.0,OFFSET_Z_HEAD2
56=l,OFFSETZSOTTOTRAVE,1005,OFFSET_Z_SOTTOTRAVE
57=d,SECONDSAW,1,SECOND_SAW
58=d,DOUBLE_HEAD_DOVETAIL,1,DT_MORTISE_IN_DOUBLE
59=d,DOUBLE_HEAD_POCKET,1,POCKET_IN_DOUBLE
60=d,DOUBLE_HEAD_DRILLING,1,DRILLING_IN_DOUBLE
[2]
Name=Trave
1=l,XMIN,30,XMIN
2=l,XMAX,1250,XMAX
3=l,ZMIN,30,ZMIN
4=l,ZMAX,400,ZMAX
[3]
Name=User
1=d,OPTIMIZATIONS_ENABLE_SLICES_F5,1,ENABLE_SLICES_ON_END
2=d,OPTIMIZATIONS_ENABLE_SLICES_F6,1,ENABLE_SLICES_ON_START
3=d,OPTIMIZATIONS_LENGTH_SLICES,100,SLICES_LENGTH
4=l,L020_DIAM_HOLE,20,L020_HOLE_DIAM
5=l,L040_OFFSET_P1,0,L040_ON_TENON_OFFSET
+23
View File
@@ -0,0 +1,23 @@
[Cut]
1=Standard
[Drill]
1=Drill
2=Pocket
[Milling]
1=FreeContour
2=Side
3=SideGroove
4=DtMortise
5=Mark
6=Text
7=CleanCorner60
8=CleanCorner30
[Pocketing]
1=Pocket
2=OpenPocket
[Sawing]
1=Sawing
+3
View File
@@ -0,0 +1,3 @@
[WALL]
Kerf=10
Offset=25
+67
View File
@@ -0,0 +1,67 @@
-- WallData.lua by Egaltech s.r.l. 2021/03/08
-- Raccolta dati generali per Pareti
EgtOutLog( ' WALL-WallData started', 1)
-- Tabella per definizione modulo
local WallData = {
MIN_LENGTH = 4000, -- lunghezza minima del grezzo
MIN_WIDTH = 100, -- larghezza minima del grezzo
MIN_HEIGHT = 10, -- altezza minima del grezzo
MAX_LENGTH = 14000, -- lunghezza massima del grezzo
MAX_WIDTH = 1250, -- larghezza massima del grezzo
MAX_HEIGHT = 300, -- altezza massima del grezzo
STD_RAW_LENGTH = 10000, -- lunghezza standard del grezzo
STD_RAW_WIDTH = 1250, -- larghezza standard del grezzo
OVM_HEAD = 60, -- sovramateriale testa
OVM_MID = 50, -- sovramateriale intermedio
COLL_SIC = 5, -- distanza di sicurezza per collisioni
CUT_SIC = 20, -- distanza di sicurezza per tagli
CUT_EXTRA = 0, -- affondamento extra standard per tagli di lama e fresature
CUT_EXTRA_MIN = 0, -- affondamento extra ridotto per tagli di lama e fresature
NZ_MINA = 0.5, -- componente limite in Z normale di una faccia (-30deg)
NZ_MINB = -0.4, -- componente limite in Z normale di un insieme di facce (-23deg)
DRILL_TOL = 0.5, -- tolleranza tra diametro foro e diametro punta
DRILL_VZ_MIN = 0.5, -- componente limite in Z del versore di un foro
DRILL_VX_MAX = 0.866, -- componente limite in X del versore di un foro sulle facce laterali
DRILL_OVERLAP = 5, -- sovrapposizione tra due mezze forature
MILL_OVERLAP = 5, -- sovrapposizione tra due mezze fresature
CHECK_MIN_Z_SAW = true, -- controlla la quota minima della lama rispetto alla tavola (default true)
MIN_Z_SAW = -10, -- quota minima rispetto alla tavola (default 0)
RAWCOL = { 255, 160, 32, 30}, -- colore del grezzo
ORIG_CORNER = 'BR', -- angolo tavola per origine di battuta (BR (default), TR, BL, TL)
MAX_CLEAN_CRN30 = 120, -- massimo spessore per pulitura angolo con fresa 30deg
MIN_DIM_ALLOW_CLEAN = 200, -- apertura minima per lavorazione pulitura spigolo
MILL_MAX_DEPTH_AS_MAT = true, -- massimo affondamento frese uguale ad altezza tagliente (max materiale)
CUT_MAX_LENGTH = 3000, -- massima lunghezza di un taglio
SIMUL_VIEW_DIR = 1, -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE)
BEAM_MACHINE = true -- lavorazione pareti su macchina travi (PF...)
}
-- Aggiornamento con dati da TechnoEssetre7
local sTs3Data = EgtGetStringFromIni( 'Wall', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-PF1500rl.data"
local sDataWall = EgtGetSourceDir().."\\Ts3Data.lua"
local sDataBeam = EgtGetCurrMachineDir()..'\\Beam\\Ts3Data.lua'
if EgtExistsFile( sTs3Data) then
EgtCopyFile( sTs3Data, sDataWall)
EgtCopyFile( sTs3Data, sDataBeam)
local sTs3DataOld = sTs3Data..'.old'
EgtEraseFile( sTs3DataOld)
EgtRenameFile( sTs3Data, sTs3DataOld)
end
if EgtExistsFile( sDataWall) then
local Machine = dofile( sDataWall)
if Machine then
if Machine.Trave then
WallData.MIN_LENGTH = Machine.Trave.YMIN or WallData.MIN_LENGTH
WallData.MIN_WIDTH = Machine.Trave.XMIN or WallData.MIN_WIDTH
WallData.MIN_HEIGHT = Machine.Trave.ZMIN or WallData.MIN_HEIGHT
WallData.MAX_LENGTH = Machine.Trave.YMAX or WallData.MAX_LENGTH
WallData.MAX_WIDTH = Machine.Trave.XMAX or WallData.MAX_WIDTH
WallData.MAX_HEIGHT = Machine.Trave.ZMAX or WallData.MAX_HEIGHT
end
end
end
---------------------------------------------------------------------
return WallData
+9
View File
@@ -0,0 +1,9 @@
-- %TABLE_NAME%.lua by Egaltech s.r.l. %DATE_TIME%
-- Gestione dati lavorazioni per Travi
-- Tabella per definizione modulo
local %TABLE_NAME% = {
}
---------------------------------------------------------------------
return %TABLE_NAME%