Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
941adc39b4 | ||
|
|
ff38d9dead | ||
|
|
4eaf6c04bf | ||
|
|
4c012bc21a | ||
|
|
f2ee5cd0d2 | ||
|
|
a5ed84b7d3 | ||
|
|
99a3f1e2a3 | ||
|
|
770de517ec | ||
|
|
6a4e2d4a6d | ||
|
|
7c3fcfb200 | ||
|
|
d12737352b | ||
|
|
0b52596d95 | ||
|
|
252b10f020 | ||
|
|
fe4317aaf8 | ||
|
|
29fb7cbb47 | ||
|
|
236a37221a | ||
|
|
51d569fd71 | ||
|
|
d67511bb9a | ||
|
|
a5cf7fb695 | ||
|
|
f74c145826 | ||
|
|
91d2886cb3 | ||
|
|
c25e625825 | ||
|
|
5cdfe16858 | ||
|
|
d4b5e54f6d | ||
|
|
e187ac8ced | ||
|
|
385b540c35 | ||
|
|
52761188c0 | ||
|
|
27dd05b3c6 | ||
|
|
e0735a224b | ||
|
|
3a80013691 | ||
|
|
bec18b1cc3 | ||
|
|
2e46fc36c7 | ||
|
|
36e00ae91f | ||
|
|
7bc7528556 | ||
|
|
db65fb14ac | ||
|
|
bdc919e0ec | ||
|
|
3711fe72d5 | ||
|
|
02a14eec85 | ||
|
|
5777faf99e | ||
|
|
2f14c825e4 | ||
|
|
709e433d19 | ||
|
|
8010cf2c24 | ||
|
|
aa7bef4252 | ||
|
|
7bf2ecbef5 | ||
|
|
1b2cbd3a5f | ||
|
|
5368d72f88 | ||
|
|
a135950056 | ||
|
|
2c984eb276 | ||
|
|
4048d52280 | ||
|
|
4ccdf8a231 | ||
|
|
484141cbcd | ||
|
|
9a9bee2869 | ||
|
|
2e291e2011 | ||
|
|
859c08b456 | ||
|
|
d4bb6af5db | ||
|
|
843b98a0fa | ||
|
|
1add97b879 | ||
|
|
ba6726a594 | ||
|
|
535291ea33 | ||
|
|
06ad954b81 | ||
|
|
85bee7987d | ||
|
|
0e87d1b2a9 | ||
|
|
c3cb86a40e | ||
|
|
c34706379c | ||
|
|
d42dcabf04 | ||
|
|
f0797bdb0d | ||
|
|
6c1fb39bac | ||
|
|
d4565a71a5 | ||
|
|
01abf991d4 | ||
|
|
351a0ef884 | ||
|
|
df16690de9 | ||
|
|
4759ea6d05 | ||
|
|
d4e4635019 | ||
|
|
e47192e710 | ||
|
|
dabdbc6dfc | ||
|
|
1d4b28ab21 | ||
|
|
a45e6f9c40 | ||
|
|
a8d2f08c46 | ||
|
|
44afb5b26e | ||
|
|
74795bcf36 | ||
|
|
ee534d648c | ||
|
|
c112919e87 | ||
|
|
714392ece5 | ||
|
|
bbaff1119d | ||
|
|
406a91fa64 | ||
|
|
7c3bb2ce81 | ||
|
|
930819d007 | ||
|
|
5311301eab | ||
|
|
33b4e4861d | ||
|
|
833bfe2dca | ||
|
|
fb69b0bec3 | ||
|
|
2d4c1afd56 | ||
|
|
dc959734f4 | ||
|
|
9f183dabb7 | ||
|
|
e838ea6e31 | ||
|
|
dba32792e2 | ||
|
|
5e930151f4 | ||
|
|
5b201e1f8c | ||
|
|
1b315af794 | ||
|
|
a37d193656 | ||
|
|
2898dc1059 | ||
|
|
29eb98eb99 | ||
|
|
c5a5d2553b | ||
|
|
703cfbd4a0 | ||
|
|
ba5dd2cdce | ||
|
|
43ac6207b5 | ||
|
|
517247d739 | ||
|
|
afedcc1daa | ||
|
|
97efea9cac | ||
|
|
01408ddaed | ||
|
|
4069a834ec | ||
|
|
826341d694 | ||
|
|
88c329fa4b | ||
|
|
2638f8b309 | ||
|
|
49d34f1baa | ||
|
|
27ddccbda4 | ||
|
|
580d6c61ce | ||
|
|
461a3455e4 |
@@ -15,4 +15,3 @@
|
|||||||
/Wall/PocketingData.lua
|
/Wall/PocketingData.lua
|
||||||
/Wall/SawingData.lua
|
/Wall/SawingData.lua
|
||||||
/Wall/Ts3Data.lua
|
/Wall/Ts3Data.lua
|
||||||
.vscode/settings.json
|
|
||||||
|
|||||||
+318
@@ -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
|
||||||
|
|
||||||
+88
-5
@@ -12,7 +12,8 @@ local BeamData = {
|
|||||||
MAX_WIDTH = 1300, -- larghezza massima del grezzo
|
MAX_WIDTH = 1300, -- larghezza massima del grezzo
|
||||||
MAX_HEIGHT = 600, -- altezza massima del grezzo
|
MAX_HEIGHT = 600, -- altezza massima del grezzo
|
||||||
LEN_SHORT_PART = 1200, -- lunghezza massima pezzo piccolo
|
LEN_SHORT_PART = 1200, -- lunghezza massima pezzo piccolo
|
||||||
MAX_RAW = 20000, -- massima lunghezza grezzo (deve essere minore di LenTable - RAW_OFFSET)
|
LEN_VERY_SHORT_PART = 800, -- lunghezza massima pezzo molto corto (molto probabile lo scarico a caduta)
|
||||||
|
MAX_RAW = 26000, -- massima lunghezza grezzo (deve essere minore di LenTable - RAW_OFFSET)
|
||||||
STD_RAW = 14000, -- lunghezza standard della barra di grezzo
|
STD_RAW = 14000, -- lunghezza standard della barra di grezzo
|
||||||
OVM_HEAD = 10, -- sovramateriale testa
|
OVM_HEAD = 10, -- sovramateriale testa
|
||||||
OVM_MID = 5.4, -- sovramateriale intermedio (spessore lama)
|
OVM_MID = 5.4, -- sovramateriale intermedio (spessore lama)
|
||||||
@@ -40,6 +41,7 @@ local BeamData = {
|
|||||||
DRILL_TOL = 0.2, -- tolleranza tra diametro foro e diametro punta
|
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_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_VX_MAX = 0.867, -- componente limite in X del versore di un foro sulle facce laterali
|
||||||
|
MAX_ANGLE_DRILL_CUT = 15, -- delta angolo massimo tra foro e taglio che lo attraversa
|
||||||
DRILL_OVERLAP = 5, -- sovrapposizione tra due mezze forature
|
DRILL_OVERLAP = 5, -- sovrapposizione tra due mezze forature
|
||||||
MILL_OVERLAP = 5, -- sovrapposizione tra due mezze fresature
|
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_DIST_HTFEA = 50.0, -- massima distanza di feature da testa o coda per essere considerata tale
|
||||||
@@ -67,12 +69,15 @@ local BeamData = {
|
|||||||
DH_MAX_TOP = 370, -- quota massima raggiungibile dalla testa da sotto dal sotto del pezzo
|
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
|
KIOTP = 2, -- coefficiente moltiplicativo per attacco/uscita lama tangente anzichè perpendicolare
|
||||||
MAXDIAM_POCK_CORNER = 30, -- diametro massimo utensile ammesso per tasche con angoli interni
|
MAXDIAM_POCK_CORNER = 30, -- diametro massimo utensile ammesso per tasche con angoli interni
|
||||||
USE_LONGCUT = false, -- per i tagli longitudinali usare solo la lavorazione di lama LongCut
|
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_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)
|
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_DOVETAIL = true, -- flag abilitazione lavorazione mortase a coda di rondine in doppio
|
||||||
DOUBLE_HEAD_MORTISE = true, -- flag abilitazione lavorazione mortase in doppio
|
DOUBLE_HEAD_MORTISE = true, -- flag abilitazione lavorazione mortase in doppio
|
||||||
DOUBLE_HEAD_DRILLING = true -- flag abilitazione forature in doppio
|
DOUBLE_HEAD_DRILLING = true, -- flag abilitazione forature in doppio
|
||||||
|
PRECUT_HEAD = true, -- flag abilitazione pretaglio grezzo a zero in testa
|
||||||
|
PRECUT_TAIL = true, -- flag abilitazione pretaglio grezzo a zero in coda
|
||||||
|
MIN_HEIGHT_ADDED_CUTS = 400, -- altezza minima pezzo per effettuare tagli orizzontali aggiuntivi in testa e coda
|
||||||
}
|
}
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
@@ -92,6 +97,9 @@ if EgtExistsFile( sDataBeam) then
|
|||||||
if Machine.Offsets.DOUBLE_HEAD_DOVETAIL then BeamData.DOUBLE_HEAD_DOVETAIL = ( Machine.Offsets.DOUBLE_HEAD_DOVETAIL == 1) end
|
if Machine.Offsets.DOUBLE_HEAD_DOVETAIL then BeamData.DOUBLE_HEAD_DOVETAIL = ( Machine.Offsets.DOUBLE_HEAD_DOVETAIL == 1) end
|
||||||
if Machine.Offsets.DOUBLE_HEAD_POCKET then BeamData.DOUBLE_HEAD_MORTISE = ( Machine.Offsets.DOUBLE_HEAD_POCKET == 1) end
|
if Machine.Offsets.DOUBLE_HEAD_POCKET then BeamData.DOUBLE_HEAD_MORTISE = ( Machine.Offsets.DOUBLE_HEAD_POCKET == 1) end
|
||||||
if Machine.Offsets.DOUBLE_HEAD_DRILLING then BeamData.DOUBLE_HEAD_DRILLING = ( Machine.Offsets.DOUBLE_HEAD_DRILLING == 1) end
|
if Machine.Offsets.DOUBLE_HEAD_DRILLING then BeamData.DOUBLE_HEAD_DRILLING = ( Machine.Offsets.DOUBLE_HEAD_DRILLING == 1) end
|
||||||
|
if Machine.Offsets.PRECUT_HEAD_DISABLE then BeamData.PRECUT_HEAD = ( Machine.Offsets.PRECUT_HEAD_DISABLE == 0) end
|
||||||
|
if Machine.Offsets.PRECUT_TAIL_DISABLE then BeamData.PRECUT_TAIL = ( Machine.Offsets.PRECUT_TAIL_DISABLE == 0) end
|
||||||
|
if Machine.Offsets.MIN_HEIGHT_ADDED_CUTS then BeamData.MIN_HEIGHT_ADDED_CUTS = min( Machine.Offsets.MIN_HEIGHT_ADDED_CUTS, BeamData.MIN_HEIGHT_ADDED_CUTS) 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
|
||||||
@@ -99,6 +107,16 @@ if EgtExistsFile( sDataBeam) then
|
|||||||
BeamData.DIM_STRIP_SMALL = Machine.Offsets.DIM_STRIP_SMALL or BeamData.DIM_STRIP_SMALL
|
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.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
|
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
|
||||||
|
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
|
||||||
|
BeamData.OVM_MID = Machine.Offsets.OVM_MID or BeamData.OVM_MID
|
||||||
|
if Machine.Offsets.MAX_ANGLE_DRILL_CUT then BeamData.MAX_ANGLE_DRILL_CUT = EgtClamp( Machine.Offsets.MAX_ANGLE_DRILL_CUT, 1, 89) end
|
||||||
|
if Machine.Offsets.CUT_SIC then BeamData.CUT_SIC = EgtClamp( Machine.Offsets.CUT_SIC, 15, 50) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_S then BeamData.MIN_JOIN_S = EgtClamp( Machine.Offsets.MIN_JOIN_S, 80, 150) end
|
||||||
|
if Machine.Offsets.MIN_JOIN_L then BeamData.MIN_JOIN_L = EgtClamp( Machine.Offsets.MIN_JOIN_L, 300, 450) 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
|
||||||
@@ -210,6 +228,71 @@ local function GetBlockedAxis( sHead, nToolType, sBlockedAxis)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
BeamData.GetBlockedAxis = GetBlockedAxis
|
BeamData.GetBlockedAxis = GetBlockedAxis
|
||||||
---------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function GetMinNzTopBladeDownUp( b3Raw, vtNFace, vtToolDirection)
|
||||||
|
return -0.484
|
||||||
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function GetSetupInfo( sHead)
|
||||||
|
local SetupInfo = {}
|
||||||
|
|
||||||
|
-- dati comuni
|
||||||
|
SetupInfo.bIsCSymmetrical = true
|
||||||
|
SetupInfo.dCAxisEncumbrance = 180
|
||||||
|
SetupInfo.bToolOnAggregate = false
|
||||||
|
|
||||||
|
-- testa 5 assi da sopra
|
||||||
|
if sHead == 'H11' then
|
||||||
|
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||||
|
SetupInfo.PreferredSide = {}
|
||||||
|
SetupInfo.GetMinNz = function() return sin( -35) end
|
||||||
|
-- lama su aggregato testa 5 assi da sopra
|
||||||
|
elseif sHead == 'H12' then
|
||||||
|
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||||
|
SetupInfo.PreferredSide = {}
|
||||||
|
SetupInfo.GetMinNz = function() return sin( -35) end
|
||||||
|
-- se con aggregato si considera non simmetrico
|
||||||
|
SetupInfo.bIsCSymmetrical = false
|
||||||
|
-- riduzione massimo materiale se usato in tagli orizzontali con affondamento verticale
|
||||||
|
SetupInfo.dMaxMatDecrease = 25
|
||||||
|
SetupInfo.GetMinNzDownUp = GetMinNzTopBladeDownUp
|
||||||
|
-- seconda lama su aggregato testa 5 assi da sopra
|
||||||
|
elseif sHead == 'H16' then
|
||||||
|
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||||
|
SetupInfo.PreferredSide = {}
|
||||||
|
SetupInfo.GetMinNz = function() return sin( -35) end
|
||||||
|
-- se con aggregato si considera non simmetrico
|
||||||
|
SetupInfo.bIsCSymmetrical = false
|
||||||
|
-- riduzione massimo materiale se usato in tagli orizzontali con affondamento verticale
|
||||||
|
SetupInfo.dMaxMatDecrease = 25
|
||||||
|
SetupInfo.GetMinNzDownUp = GetMinNzTopBladeDownUp
|
||||||
|
-- motosega
|
||||||
|
elseif sHead == 'H13' then
|
||||||
|
SetupInfo.HeadType = { bTop = true, bBottom = false}
|
||||||
|
SetupInfo.PreferredSide = {}
|
||||||
|
SetupInfo.GetMinNz = function() return 0 end
|
||||||
|
SetupInfo.dZSafeDelta = 60
|
||||||
|
-- testa 5 assi da sotto
|
||||||
|
elseif sHead == 'H21' then
|
||||||
|
SetupInfo.HeadType = { bTop = false, bBottom = true}
|
||||||
|
SetupInfo.PreferredSide = {}
|
||||||
|
SetupInfo.GetMaxNz = function() return sin( 25) end
|
||||||
|
-- lama su aggregato testa 5 assi da sotto
|
||||||
|
elseif sHead == 'H22' then
|
||||||
|
SetupInfo.HeadType = { bTop = false, bBottom = true}
|
||||||
|
SetupInfo.PreferredSide = {}
|
||||||
|
SetupInfo.GetMaxNz = function() return sin( 25) end
|
||||||
|
-- se con aggregato si considera non simmetrico
|
||||||
|
SetupInfo.bIsCSymmetrical = false
|
||||||
|
-- riduzione massimo materiale se usato in tagli orizzontali con affondamento verticale
|
||||||
|
SetupInfo.dMaxMatDecrease = 25
|
||||||
|
end
|
||||||
|
|
||||||
|
return SetupInfo
|
||||||
|
end
|
||||||
|
BeamData.GetSetupInfo = GetSetupInfo
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
return BeamData
|
return BeamData
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
4=Pocket_H2
|
4=Pocket_H2
|
||||||
5=Predrill
|
5=Predrill
|
||||||
6=Predrill_H2
|
6=Predrill_H2
|
||||||
|
7=AngleDrill
|
||||||
|
8=AngleDrill_H2
|
||||||
|
|
||||||
[Milling]
|
[Milling]
|
||||||
1=Prof
|
1=Prof
|
||||||
@@ -49,6 +51,7 @@
|
|||||||
33=AntiSplintMillCut_H2
|
33=AntiSplintMillCut_H2
|
||||||
34=SideMillAsBlade
|
34=SideMillAsBlade
|
||||||
35=SideMillAsBlade_H2
|
35=SideMillAsBlade_H2
|
||||||
|
36=Prof_end
|
||||||
|
|
||||||
[Pocketing]
|
[Pocketing]
|
||||||
1=Pocket
|
1=Pocket
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[BEAM]
|
||||||
|
StartOffset=0
|
||||||
|
Offset=0
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
|||||||
-- Special Operations macchina Essetre-PF1250 by Egalware s.r.l. 2024/01/22
|
-- Special Operations macchina Essetre-PF1250 by Egalware s.r.l. 2024/04/09
|
||||||
-- Intestazioni
|
-- Intestazioni
|
||||||
|
|
||||||
require( 'EmtGenerator')
|
require( 'EmtGenerator')
|
||||||
@@ -7,6 +7,66 @@ EgtEnableDebug( false)
|
|||||||
-- Carico libreria
|
-- Carico libreria
|
||||||
local BD = require( 'BeamData')
|
local BD = require( 'BeamData')
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
-- *** Generic Machinings ***
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
require( 'EmtGenMachining')
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
-- *** Special GetPrevMachiningOffset ***
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
-----------------------------------------------------------------------------------------
|
||||||
|
function OnSpecialGetPrevMachiningOffset()
|
||||||
|
-- Aggiorno posizione della testa della trave a seguito di movimenti delle pinze non previsti tra le fasi
|
||||||
|
local function TPosUpdate()
|
||||||
|
local nClId = EgtGetFirstNameInGroup( EMC.CURRMCHID, 'CL') -- recupero Id del gruppo CL della lavorazione corrente
|
||||||
|
local nPathId = EgtGetFirstInGroup( nClId or GDB_ID.NULL) -- Id del primo gruppo nella lavorazione (P1)
|
||||||
|
if not nPathId then
|
||||||
|
EMC.ERR = 12
|
||||||
|
EMC.MSG = ' Error : CL group path not found'
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local dAuxMoveCount = EgtGetInfo( nPathId, 'AS#', 'd') or 0 -- numero di movimenti ausiliari
|
||||||
|
local dTRepos = nil
|
||||||
|
-- controlla ogni gruppo di movimenti ausiliari
|
||||||
|
for i = 1, dAuxMoveCount do
|
||||||
|
local aAuxMove = EgtGetInfo( nPathId, 'AS' .. tostring( i), 'vs') or {} -- array contenete i parametri di ogni gruppo
|
||||||
|
-- controlla solo i movimenti della testa trave e salva l'ultimo
|
||||||
|
if aAuxMove[1] == '2' or aAuxMove[1] == '3' then
|
||||||
|
for j = 2, #aAuxMove do
|
||||||
|
if aAuxMove[j] == 'T' then
|
||||||
|
dTRepos = aAuxMove[j+1]
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return dTRepos
|
||||||
|
end
|
||||||
|
|
||||||
|
-- default
|
||||||
|
EMC.ERR = 0
|
||||||
|
EMC.PREVOFFSX = 0
|
||||||
|
|
||||||
|
-- se c'è cambio di fase tra le lavorazioni (quindi la precedente è l'ultima della sua fase e la corrente la prima)
|
||||||
|
if EMC.PREVPHASE ~= EMC.CURRPHASE then
|
||||||
|
-- se la fase corrente è di inizio lavorazione di nuova trave
|
||||||
|
if IsStartOrRestPhase( EMC.CURRPHASE) then
|
||||||
|
-- recupero la posizione finale della lavorazione precedente
|
||||||
|
local vPrevAx = EmtGetFinalAxesPos( EMC.PREVMCHID)
|
||||||
|
-- ricava se e quanto la trave viene spostata tra le due fasi dai movimenti ausiliari e corregge l'offset di fine fase
|
||||||
|
local dNewTPos = TPosUpdate()
|
||||||
|
-- se ci sono dei movimenti della testa trave tra le due fasi ricava il delta tra la vecchia e la nuova posizione
|
||||||
|
if dNewTPos then
|
||||||
|
EMC.PREVOFFSX = dNewTPos - vPrevAx[1]
|
||||||
|
-- oppure la X (L1) di questa corrisponde alla posizione iniziale della nuova trave, se ne deduce l'offset
|
||||||
|
else
|
||||||
|
EMC.PREVOFFSX = ParkV1 - vPrevAx[1]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- *** Special Z moves ***
|
-- *** Special Z moves ***
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
@@ -54,6 +114,9 @@ function OnSpecialGetMaxZ()
|
|||||||
elseif nSetHead == 2 then
|
elseif nSetHead == 2 then
|
||||||
EMC.R1p = ParkC2
|
EMC.R1p = ParkC2
|
||||||
EMC.R2p = ParkB2
|
EMC.R2p = ParkB2
|
||||||
|
elseif nSetHead == 3 then
|
||||||
|
EMC.R1p = ParkC3
|
||||||
|
EMC.R2p = ParkB3
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local vtT = Vector3d( EMC.TDIR)
|
local vtT = Vector3d( EMC.TDIR)
|
||||||
@@ -71,37 +134,41 @@ function OnSpecialGetMaxZ()
|
|||||||
elseif EMC.HEAD == 'H12' then
|
elseif EMC.HEAD == 'H12' then
|
||||||
if vtTp:getX() > 0.3 and vtT:getX() > 0.3 then
|
if vtTp:getX() > 0.3 and vtT:getX() > 0.3 then
|
||||||
if bBSameSign and abs( EMC.R1 - EMC.R1p) < 165 then
|
if bBSameSign and abs( EMC.R1 - EMC.R1p) < 165 then
|
||||||
EMC.MAXZ = MaxZ1 - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
EMC.MAXZ = MaxZ1Blade - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
||||||
elseif vtTp:getZ() > 0.707 or vtT:getZ() > 0.707 then
|
elseif vtTp:getZ() > 0.707 or vtT:getZ() > 0.707 then
|
||||||
EMC.MAXZ = ParkZ1 + 200
|
EMC.MAXZ = ParkZ1 + 200
|
||||||
|
elseif vtTp:getZ() > 0.5 or vtT:getZ() > 0.5 then
|
||||||
|
EMC.MAXZ = ParkZ1 + 100
|
||||||
else
|
else
|
||||||
EMC.MAXZ = ParkZ1 + 1
|
EMC.MAXZ = ParkZ1 + 1
|
||||||
end
|
end
|
||||||
elseif bBSameSign and EMC.R1p > 29.9 and EMC.R1p < 180.1 and EMC.R1 > 29.9 and EMC.R1 < 180.1 and EMC.R2p > -10 and EMC.R2 > -10 then
|
elseif bBSameSign and EMC.R1p > 29.9 and EMC.R1p < 180.1 and EMC.R1 > 29.9 and EMC.R1 < 180.1 and EMC.R2p > -10 and EMC.R2 > -10 then
|
||||||
EMC.MAXZ = MaxZ1 - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
EMC.MAXZ = MaxZ1Blade - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
||||||
elseif bBSameSign and EMC.R1p > -0.1 and EMC.R1p < 180.1 and EMC.R1 > -0.1 and EMC.R1 < 180.1 and EMC.R2p > -10 and EMC.R2 > -10 then
|
elseif bBSameSign and EMC.R1p > -0.1 and EMC.R1p < 180.1 and EMC.R1 > -0.1 and EMC.R1 < 180.1 and EMC.R2p > -10 and EMC.R2 > -10 then
|
||||||
local vMZ = {{ Tz=0.85, Ez=440}, { Tz=0.5, Ez=200}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
local vMZ = {{ Tz=0.85, Ez=440}, { Tz=0.5, Ez=200}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
||||||
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||||
else
|
else
|
||||||
local vMZ = {{ Tz=0.85, Ez=400}, { Tz=0.7, Ez=300}, { Tz=0.5, Ez=195}, { Tz=0.15, Ez=70}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
local vMZ = {{ Tz=0.85, Ez=400}, { Tz=0.7, Ez=300}, { Tz=0.5, Ez=195}, { Tz=0.15, Ez=60}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
||||||
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||||
end
|
end
|
||||||
elseif EMC.HEAD == 'H16' then
|
elseif EMC.HEAD == 'H16' then
|
||||||
if vtTp:getX() > 0.3 and vtT:getX() > 0.3 then
|
if vtTp:getX() > 0.3 and vtT:getX() > 0.3 then
|
||||||
if bBSameSign and abs( EMC.R1 - EMC.R1p) < 165 then
|
if bBSameSign and abs( EMC.R1 - EMC.R1p) < 165 then
|
||||||
EMC.MAXZ = MaxZ1 - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
EMC.MAXZ = MaxZ1Blade - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
||||||
elseif vtTp:getZ() > 0.707 or vtT:getZ() > 0.707 then
|
elseif vtTp:getZ() > 0.707 or vtT:getZ() > 0.707 then
|
||||||
EMC.MAXZ = ParkZ1 + 200
|
EMC.MAXZ = ParkZ1 + 200
|
||||||
|
elseif vtTp:getZ() > 0.5 or vtT:getZ() > 0.5 then
|
||||||
|
EMC.MAXZ = ParkZ1 + 100
|
||||||
else
|
else
|
||||||
EMC.MAXZ = ParkZ1 + 1
|
EMC.MAXZ = ParkZ1 + 1
|
||||||
end
|
end
|
||||||
elseif bBSameSign and EMC.R1p > 29.9 and EMC.R1p < 180.1 and EMC.R1 > 29.9 and EMC.R1 < 180.1 and EMC.R2p > -10 and EMC.R2 > -10 then
|
elseif bBSameSign and EMC.R1p > 29.9 and EMC.R1p < 180.1 and EMC.R1 > 29.9 and EMC.R1 < 180.1 and EMC.R2p > -10 and EMC.R2 > -10 then
|
||||||
EMC.MAXZ = MaxZ1 - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
EMC.MAXZ = MaxZ1Blade - EgtIf( abs( EMC.R2) < 90.1 and abs( EMC.R2p) < 90.1, 0, 130)
|
||||||
elseif bBSameSign and EMC.R1p > -0.1 and EMC.R1p < 180.1 and EMC.R1 > -0.1 and EMC.R1 < 180.1 and EMC.R2p > -10 and EMC.R2 > -10 then
|
elseif bBSameSign and EMC.R1p > -0.1 and EMC.R1p < 180.1 and EMC.R1 > -0.1 and EMC.R1 < 180.1 and EMC.R2p > -10 and EMC.R2 > -10 then
|
||||||
local vMZ = {{ Tz=0.85, Ez=440}, { Tz=0.5, Ez=200}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
local vMZ = {{ Tz=0.85, Ez=440}, { Tz=0.5, Ez=200}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
||||||
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||||
else
|
else
|
||||||
local vMZ = {{ Tz=0.85, Ez=400}, { Tz=0.7, Ez=300}, { Tz=0.5, Ez=195}, { Tz=0.15, Ez=70}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
local vMZ = {{ Tz=0.85, Ez=400}, { Tz=0.7, Ez=300}, { Tz=0.5, Ez=195}, { Tz=0.15, Ez=60}, { Tz=-0.01, Ez=5}, { Tz=-0.5, Ez=1}}
|
||||||
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
EMC.MAXZ = ParkZ1 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||||
end
|
end
|
||||||
elseif EMC.HEAD == 'H21' then
|
elseif EMC.HEAD == 'H21' then
|
||||||
@@ -111,14 +178,16 @@ function OnSpecialGetMaxZ()
|
|||||||
local vMZ = {{ Tz=0.85, Ez=390}, { Tz=0.5, Ez=280}, { Tz=-0.01, Ez=160}}
|
local vMZ = {{ Tz=0.85, Ez=390}, { Tz=0.5, Ez=280}, { Tz=-0.01, Ez=160}}
|
||||||
EMC.MAXZ = ParkZ2 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
EMC.MAXZ = ParkZ2 + CalcExtraZ( vtTpZm, vtT, vMZ)
|
||||||
end
|
end
|
||||||
|
elseif EMC.HEAD == 'H38' then
|
||||||
|
EMC.MAXZ = SafeZ3RotAxis
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
---------------------- OnSpecialMoveZup -----------------------------
|
---------------------- OnSpecialMoveZup -----------------------------
|
||||||
function OnSpecialMoveZup()
|
function OnSpecialMoveZup()
|
||||||
|
|
||||||
--EgtOutLog( 'OnSpecialMoveZup : ' .. EMC.HEAD .. '.' .. tostring( EMC.EXIT))
|
--EgtOutLog( 'OnSpecialMoveZup : ' .. EMC.HEAD .. '.' .. tostring( EMC.EXIT))
|
||||||
|
|
||||||
-- Inizializzazioni
|
-- Inizializzazioni
|
||||||
EMC.ERR = 0
|
EMC.ERR = 0
|
||||||
EMC.MODIF = false
|
EMC.MODIF = false
|
||||||
@@ -135,7 +204,7 @@ function OnSpecialMoveZup()
|
|||||||
if EMC.HEAD == 'H11' or EMC.HEAD == 'H21' or EMC.HEAD == 'H22' then
|
if EMC.HEAD == 'H11' or EMC.HEAD == 'H21' or EMC.HEAD == 'H22' then
|
||||||
;
|
;
|
||||||
-- se lama
|
-- se lama
|
||||||
else
|
elseif EMC.HEAD == 'H12' or EMC.HEAD == 'H16' then
|
||||||
-- riporto i valori tra -179 e + 180
|
-- riporto i valori tra -179 e + 180
|
||||||
local dCheckAxR1 = EMC.R1
|
local dCheckAxR1 = EMC.R1
|
||||||
if dCheckAxR1 < -180 then
|
if dCheckAxR1 < -180 then
|
||||||
@@ -180,6 +249,12 @@ function OnSpecialMoveZup()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
elseif EMC.HEAD == 'H38' then
|
||||||
|
EMC.L3 = SafeZ3RotAxis
|
||||||
|
-- dichiaro modificato
|
||||||
|
EMC.MODIF = true
|
||||||
|
else
|
||||||
|
; -- non si fa nulla
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -194,7 +269,7 @@ local SIC_V = 50 -- sicurezza da testa
|
|||||||
local MIN_ENG_V = 115 -- ingombro asse Z
|
local MIN_ENG_V = 115 -- ingombro asse Z
|
||||||
local MIN_ENG_RACK_V = 161 -- ingombro asse Z con cremagliera
|
local MIN_ENG_RACK_V = 161 -- ingombro asse Z con cremagliera
|
||||||
local MIN_ENG_XZ2_V = 180 -- ingombro assi XZ sotto
|
local MIN_ENG_XZ2_V = 180 -- ingombro assi XZ sotto
|
||||||
local MIN_Z2_FOR_ENG_XZ2_V = 270 -- quota Z2 da cui considerare ingombro assi XZ sotto
|
local MIN_Z2_FOR_ENG_XZ2_V = 250 -- quota Z2 da cui considerare ingombro assi XZ sotto
|
||||||
local AGG_V = MinDeltaYV -- ingombro rulli pressori + sicurezza
|
local AGG_V = MinDeltaYV -- ingombro rulli pressori + sicurezza
|
||||||
local MaxLenSmT = 1500 -- massima lunghezza pezzo scaricato con nastri verdi
|
local MaxLenSmT = 1500 -- massima lunghezza pezzo scaricato con nastri verdi
|
||||||
local DIST_Y1MAX_LOAD = 100 -- distanza carrello Y1 da massimo asse al carico
|
local DIST_Y1MAX_LOAD = 100 -- distanza carrello Y1 da massimo asse al carico
|
||||||
@@ -502,6 +577,24 @@ end
|
|||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function OnPostApplyMachining()
|
function OnPostApplyMachining()
|
||||||
|
-- Inizializzo codice di errore
|
||||||
|
EMC.ERR = 0
|
||||||
|
-- Verifico se ultima lavorazione della fase
|
||||||
|
local nNextOpeId = EgtGetNextActiveOperation( EMC.MCHID)
|
||||||
|
local bMchLast = ( not nNextOpeId or EgtGetOperationPhase( nNextOpeId) ~= EMC.PHASE) -- Agisco sui diversi percorsi della lavorazione
|
||||||
|
local nPathId = EgtGetFirstInGroup( EgtGetFirstNameInGroup( EMC.MCHID, 'CL') or GDB_ID.NULL)
|
||||||
|
while nPathId do
|
||||||
|
-- recupero id del successivo
|
||||||
|
nPathId = EgtGetNext( nPathId)
|
||||||
|
-- verifico se ultimo percorso di ultima lavorazione della fase
|
||||||
|
local bLast = ( bMchLast and ( not nPathId))
|
||||||
|
-- se ultimo, elimino ritorno in home
|
||||||
|
if bLast then EgtRemoveOperationHome( EMC.MCHID) end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
function OnSpecialApplyMachining()
|
||||||
|
|
||||||
EgtOutLog( ' Lavorazione : ' .. EgtGetName( EMC.MCHID) .. ' (' .. tostring( EMC.MCHID) .. ')')
|
EgtOutLog( ' Lavorazione : ' .. EgtGetName( EMC.MCHID) .. ' (' .. tostring( EMC.MCHID) .. ')')
|
||||||
|
|
||||||
@@ -574,7 +667,11 @@ function OnPostApplyMachining()
|
|||||||
|
|
||||||
-- Verifico flag di separazione e fase di scarico
|
-- Verifico flag di separazione e fase di scarico
|
||||||
local sNotes = EgtGetMachiningParam( MCH_MP.USERNOTES)
|
local sNotes = EgtGetMachiningParam( MCH_MP.USERNOTES)
|
||||||
local bPreSplit = ( false and sNotes:find( 'Presplit', 1, true) ~= nil)
|
|
||||||
|
-- bPreSplit sempre a falso per obbligare a pinzare il pezzo con 1 morsa anche se iniziato il taglio che dividerà grezzo e finito (in genere per sezioni grandi con 2 tagli di lama)
|
||||||
|
-- Tra un taglio e l'altro infatti c'e' inversione del braccio e quindi un'apertura delle rulliere. Se pinzano entrambe le pinze, potrebbero esserci problemi di collisone rulli-morse
|
||||||
|
local bPreSplit = false --( sNotes:find( 'Presplit', 1, true) ~= nil)
|
||||||
|
|
||||||
local bSplitting = ( sNotes:find( 'Split', 1, true) ~= nil)
|
local bSplitting = ( sNotes:find( 'Split', 1, true) ~= nil)
|
||||||
local bPreCut = ( sNotes:find( 'Precut', 1, true) ~= nil)
|
local bPreCut = ( sNotes:find( 'Precut', 1, true) ~= nil)
|
||||||
local bCutting = ( sNotes:find( 'Cut', 1, true) ~= nil)
|
local bCutting = ( sNotes:find( 'Cut', 1, true) ~= nil)
|
||||||
@@ -590,7 +687,7 @@ function OnPostApplyMachining()
|
|||||||
-- verifico se ultimo percorso di ultima lavorazione della fase
|
-- verifico se ultimo percorso di ultima lavorazione della fase
|
||||||
local bLast = ( bMchLast and ( not nPathId))
|
local bLast = ( bMchLast and ( not nPathId))
|
||||||
-- se ultimo, elimino ritorno in home
|
-- se ultimo, elimino ritorno in home
|
||||||
if bLast then EgtRemoveOperationHome( EMC.MCHID) end
|
-- if bLast then EgtRemoveOperationHome( EMC.MCHID) end
|
||||||
-- salvo lo stato dei carrelli
|
-- salvo lo stato dei carrelli
|
||||||
local OriTPos = EMC.TPOS
|
local OriTPos = EMC.TPOS
|
||||||
local OriY1Delta = EMC.Y1DELTA
|
local OriY1Delta = EMC.Y1DELTA
|
||||||
@@ -655,6 +752,14 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload)
|
|||||||
-- Verifico se lavorazione pareti
|
-- Verifico se lavorazione pareti
|
||||||
local bWall = ( EgtGetInfo( EgtGetCurrMachGroup() or GDB_ID.NULL, 'Wall', 'd') == 1)
|
local bWall = ( EgtGetInfo( EgtGetCurrMachGroup() or GDB_ID.NULL, 'Wall', 'd') == 1)
|
||||||
|
|
||||||
|
-- mi salvo info lavorazione su una lista
|
||||||
|
local AuxInfoMach = {}
|
||||||
|
AuxInfoMach.bPreSplit = bPreSplit
|
||||||
|
AuxInfoMach.bSplitting = bSplitting
|
||||||
|
AuxInfoMach.bPreCut = bPreCut
|
||||||
|
AuxInfoMach.bCutting = bCutting
|
||||||
|
AuxInfoMach.bUnload = bUnload
|
||||||
|
|
||||||
-- Assegno flag di pezzo separato dal resto del grezzo
|
-- Assegno flag di pezzo separato dal resto del grezzo
|
||||||
SPLIT = IsEndPhase( EMC.PHASE)
|
SPLIT = IsEndPhase( EMC.PHASE)
|
||||||
|
|
||||||
@@ -741,7 +846,7 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload)
|
|||||||
local dPosT = LoadT
|
local dPosT = LoadT
|
||||||
local vCmd = SpecCalcLoad( dPosT, dDistFront, max( dDistBack, MinJoin, EMC.LB - ( MaxY1 - MinY1) + 6))
|
local vCmd = SpecCalcLoad( dPosT, dDistFront, max( dDistBack, MinJoin, EMC.LB - ( MaxY1 - MinY1) + 6))
|
||||||
EMC.LOAD = true
|
EMC.LOAD = true
|
||||||
local vCmd2 = SpecCalcCarriages( dDistFront, dDistBack, dRollFront, dRollBack, dY1DeltaMaxSP, dY2DeltaMinUL, nChar)
|
local vCmd2 = SpecCalcCarriages( dDistFront, dDistBack, dRollFront, dRollBack, dY1DeltaMaxSP, dY2DeltaMinUL, nChar, AuxInfoMach)
|
||||||
EMC.LOAD = nil
|
EMC.LOAD = nil
|
||||||
if bSplitting and EMC.ERR == 18 then
|
if bSplitting and EMC.ERR == 18 then
|
||||||
table.insert( vCmd, { 22, dRollBack, -dRollFront})
|
table.insert( vCmd, { 22, dRollBack, -dRollFront})
|
||||||
@@ -754,7 +859,7 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload)
|
|||||||
|
|
||||||
-- Se altrimenti non eseguito SPLIT, eseguo calcoli per carrelli
|
-- Se altrimenti non eseguito SPLIT, eseguo calcoli per carrelli
|
||||||
elseif not SPLIT then
|
elseif not SPLIT then
|
||||||
local vCmd = SpecCalcCarriages( dDistFront, dDistBack, dRollFront, dRollBack, dY1DeltaMaxSP, dY2DeltaMinUL, nChar)
|
local vCmd = SpecCalcCarriages( dDistFront, dDistBack, dRollFront, dRollBack, dY1DeltaMaxSP, dY2DeltaMinUL, nChar, AuxInfoMach)
|
||||||
-- Se non ci sono spostamenti, confermo i parametri di aggancio e di posizione roller
|
-- Se non ci sono spostamenti, confermo i parametri di aggancio e di posizione roller
|
||||||
if SpecTestOnlyRemarkInCmds( vCmd) then
|
if SpecTestOnlyRemarkInCmds( vCmd) then
|
||||||
table.insert( vCmd, { 21, EgtIf( EMC.Y1DELTA, EMC.Y1DELTA, 0), EgtIf( EMC.Y2DELTA, EMC.Y2DELTA, 0)})
|
table.insert( vCmd, { 21, EgtIf( EMC.Y1DELTA, EMC.Y1DELTA, 0), EgtIf( EMC.Y2DELTA, EMC.Y2DELTA, 0)})
|
||||||
@@ -781,6 +886,12 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload)
|
|||||||
if not EMC.Y2DELTA then
|
if not EMC.Y2DELTA then
|
||||||
EgtOutLog( ' Warning SPLITTING -> separazione con caduta pezzo')
|
EgtOutLog( ' Warning SPLITTING -> separazione con caduta pezzo')
|
||||||
SpecOutputCNT()
|
SpecOutputCNT()
|
||||||
|
-- non funziona ma servirebbe un controllo simile, di modo che non possa avvenire la presenza di un pezzo "FALL" più grande di LEN_VERY_SHORT_PART
|
||||||
|
--if EMC.LT > LEN_VERY_SHORT_PART then
|
||||||
|
-- EMC.ERR = 19
|
||||||
|
-- EMC.MSG = ' Error SPLIT : Y1 or Y2 not clamped'
|
||||||
|
-- return false
|
||||||
|
--end
|
||||||
if IsEndPhase( EMC.PHASE + 1) then
|
if IsEndPhase( EMC.PHASE + 1) then
|
||||||
EgtSetInfo( NextDispId, 'SKIP', '1')
|
EgtSetInfo( NextDispId, 'SKIP', '1')
|
||||||
local NextOpeId = EgtGetNextOperation( NextDispId)
|
local NextOpeId = EgtGetNextOperation( NextDispId)
|
||||||
@@ -883,15 +994,19 @@ function SpecialCalcMachiningEncumbrance( nMchId, bPreCut)
|
|||||||
EgtSetAxisPos( 'A2', vAxMid[6])
|
EgtSetAxisPos( 'A2', vAxMid[6])
|
||||||
end
|
end
|
||||||
b3Enc = EgtGetBBoxGlob( EgtGetAxisId( 'C2'), GDB_BB.ONLY_VISIBLE)
|
b3Enc = EgtGetBBoxGlob( EgtGetAxisId( 'C2'), GDB_BB.ONLY_VISIBLE)
|
||||||
else -- 'H31'
|
else -- testa 3
|
||||||
EgtSetAxisPos( 'C3', vAxMid[4])
|
EgtSetAxisPos( 'C3', vAxMid[4])
|
||||||
EgtSetAxisPos( 'B3', vAxMid[5])
|
EgtSetAxisPos( 'B3', vAxMid[5])
|
||||||
b3Enc = EgtGetBBoxGlob( EgtGetAxisId( 'C3'), GDB_BB.ONLY_VISIBLE)
|
b3Enc = EgtGetBBoxGlob( EgtGetAxisId( 'C3'), GDB_BB.ONLY_VISIBLE)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Forzo la distanza di sicurezza da utensile
|
||||||
|
local nSecRollerDist = EgtGetValInNotes( EgtTdbGetCurrToolParam( MCH_TP.USERNOTES), 'SECDIST', 'i') or SIC_V
|
||||||
|
|
||||||
local dMinFrontEng = EgtIf( nSetHead ~= 2, MIN_ENG_RACK_V, EgtIf( vAxMax[3] < MIN_Z2_FOR_ENG_XZ2_V, MIN_ENG_V, MIN_ENG_XZ2_V))
|
local dMinFrontEng = EgtIf( nSetHead ~= 2, MIN_ENG_RACK_V, EgtIf( vAxMax[3] < MIN_Z2_FOR_ENG_XZ2_V, MIN_ENG_V, MIN_ENG_XZ2_V))
|
||||||
local dRollFront = max( b3Enc:getMax():getX(), dMinFrontEng) + SIC_V
|
local dRollFront = max( b3Enc:getMax():getX(), dMinFrontEng) + nSecRollerDist
|
||||||
local dMinBackEng = EgtIf( nSetHead ~= 2, MIN_ENG_V, EgtIf( vAxMax[3] < MIN_Z2_FOR_ENG_XZ2_V, MIN_ENG_V, MIN_ENG_XZ2_V))
|
local dMinBackEng = EgtIf( nSetHead ~= 2, MIN_ENG_V, EgtIf( vAxMax[3] < MIN_Z2_FOR_ENG_XZ2_V, MIN_ENG_V, MIN_ENG_XZ2_V))
|
||||||
local dRollBack = max( -b3Enc:getMin():getX(), dMinBackEng) + SIC_V
|
local dRollBack = max( -b3Enc:getMin():getX(), dMinBackEng) + nSecRollerDist
|
||||||
EgtOutLog( ' RollFront = ' .. EgtNumToString( dRollFront, 1) .. ' RollBack = ' .. EgtNumToString( dRollBack, 1), 3)
|
EgtOutLog( ' RollFront = ' .. EgtNumToString( dRollFront, 1) .. ' RollBack = ' .. EgtNumToString( dRollBack, 1), 3)
|
||||||
-- Calcolo della posizione della Punta Utensile rispetto allo Zero Macchina
|
-- Calcolo della posizione della Punta Utensile rispetto allo Zero Macchina
|
||||||
local ptTip
|
local ptTip
|
||||||
@@ -987,7 +1102,11 @@ function SpecCalcLoad( dPosT, dDistFront, dDistBack)
|
|||||||
local dNewY1min = max( EMC.LB - dDistBack, MinOther + AggLoad + EMC.HCING + EMC.HOVM)
|
local dNewY1min = max( EMC.LB - dDistBack, MinOther + AggLoad + EMC.HCING + EMC.HOVM)
|
||||||
local dNewY1max = min( ( MaxY1 - MinY1) - 5, EMC.LB - MinJoin)
|
local dNewY1max = min( ( MaxY1 - MinY1) - 5, EMC.LB - MinJoin)
|
||||||
if dNewY1min > dNewY1max then return nil end
|
if dNewY1min > dNewY1max then return nil end
|
||||||
local dNewY1Delta = EgtClamp( BD.CHAR_LOAD_DIST or 3000, 0.75 * dNewY1min + 0.25 * dNewY1max, 0.25 * dNewY1min + 0.75 * dNewY1max)
|
-- minimo posizionamento pinza 1 per permettere scarico del restante
|
||||||
|
local dMinLengthRestToUnload = abs( MinY1) + abs( MinV1) + abs( MaxV2) + abs( MaxY2) + MinJoin + AggLoad + EMC.LT + 10
|
||||||
|
-- calcolo posizionamento con i coefficienti, ma verifico che sia tra il minimo e il massimo pinzabile
|
||||||
|
local dNewY1DeltaMax = EgtClamp( 0.25 * dNewY1min + 0.75 * dNewY1max, dMinLengthRestToUnload, dNewY1max)
|
||||||
|
local dNewY1Delta = EgtClamp( BD.CHAR_LOAD_DIST or 3000, 0.75 * dNewY1min + 0.25 * dNewY1max, dNewY1DeltaMax)
|
||||||
local dNewY2Delta = nil
|
local dNewY2Delta = nil
|
||||||
local dNewY1 = dPosT + dNewY1Delta
|
local dNewY1 = dPosT + dNewY1Delta
|
||||||
local vCmd = {}
|
local vCmd = {}
|
||||||
@@ -1031,7 +1150,7 @@ function SpecCalcLoad( dPosT, dDistFront, dDistBack)
|
|||||||
end -- SpecAdjustLoad [L]
|
end -- SpecAdjustLoad [L]
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function SpecCalcCarriages( dDistFront, dDistBack, dRollFront, dRollBack, dY1DeltaMaxSP, dY2DeltaMinUL, nChar)
|
function SpecCalcCarriages( dDistFront, dDistBack, dRollFront, dRollBack, dY1DeltaMaxSP, dY2DeltaMinUL, nChar, AuxInfoMach)
|
||||||
|
|
||||||
local MinFrontJoin = MinJoin + EMC.HCING + EMC.HOVM
|
local MinFrontJoin = MinJoin + EMC.HCING + EMC.HOVM
|
||||||
local MyMinOther = MinOther + EgtIf( EMC.CNT == 1, AggLoad, 0)
|
local MyMinOther = MinOther + EgtIf( EMC.CNT == 1, AggLoad, 0)
|
||||||
@@ -1065,11 +1184,19 @@ function SpecCalcCarriages( dDistFront, dDistBack, dRollFront, dRollBack, dY1Del
|
|||||||
WorkTab.dY1DeltaMaxF = min( EMC.LB - MinJoin, MaxY1 + dDistFront + dRollFront + AGG_V)
|
WorkTab.dY1DeltaMaxF = min( EMC.LB - MinJoin, MaxY1 + dDistFront + dRollFront + AGG_V)
|
||||||
WorkTab.dY2DeltaMinF = nil
|
WorkTab.dY2DeltaMinF = nil
|
||||||
WorkTab.dY2DeltaMaxF = nil
|
WorkTab.dY2DeltaMaxF = nil
|
||||||
|
if dY1DeltaMaxSP then WorkTab.dY1DeltaMaxF = min( WorkTab.dY1DeltaMaxF, dY1DeltaMaxSP) end
|
||||||
WorkTab.dV1PosF = dRollBack
|
WorkTab.dV1PosF = dRollBack
|
||||||
WorkTab.bV1CloseF = false
|
WorkTab.bV1CloseF = false
|
||||||
WorkTab.dV2PosF = -dRollFront
|
WorkTab.dV2PosF = -dRollFront
|
||||||
WorkTab.bV2CloseF = false
|
WorkTab.bV2CloseF = false
|
||||||
|
|
||||||
|
-- dopo che si è calcolato il minimo e massimo dell'intervallo, verifico che in testa rimanga almeno il minimo per poter fare passaggio pinze e scaricare
|
||||||
|
if AuxInfoMach and ( AuxInfoMach.bSplitting or AuxInfoMach.bCutting) then
|
||||||
|
if WorkTab.dY1DeltaMaxF - WorkTab.dY1DeltaMinF > 1.5 * BD.CHAR_EXTRA_DIST and WorkTab.dY1DeltaMaxF > EMC.LT + BD.MINRAW_S + BD.CHAR_EXTRA_DIST then
|
||||||
|
WorkTab.dY1DeltaMinF = max( min( EMC.LT + BD.MINRAW_S, WorkTab.dY1DeltaMaxF - 1), WorkTab.dY1DeltaMinF + EMC.LT)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- verifico validità intervallo ammesso per Y1
|
-- verifico validità intervallo ammesso per Y1
|
||||||
if WorkTab.dY1DeltaMinF > WorkTab.dY1DeltaMaxF + 10 * GEO.EPS_SMALL then
|
if WorkTab.dY1DeltaMinF > WorkTab.dY1DeltaMaxF + 10 * GEO.EPS_SMALL then
|
||||||
EMC.ERR = 18
|
EMC.ERR = 18
|
||||||
@@ -1099,13 +1226,22 @@ function SpecCalcCarriages( dDistFront, dDistBack, dRollFront, dRollBack, dY1Del
|
|||||||
WorkTab.dY1DeltaMaxF = min( EMC.LB - MinJoin, MaxY1 + dDistFront + dRollFront + AGG_V)
|
WorkTab.dY1DeltaMaxF = min( EMC.LB - MinJoin, MaxY1 + dDistFront + dRollFront + AGG_V)
|
||||||
WorkTab.dY2DeltaMinF = max( MinJoin + EMC.HCING + EMC.HOVM, EMC.LB + MinY2 - dMyDistBack - AGG_V - dRollBack)
|
WorkTab.dY2DeltaMinF = max( MinJoin + EMC.HCING + EMC.HOVM, EMC.LB + MinY2 - dMyDistBack - AGG_V - dRollBack)
|
||||||
WorkTab.dY2DeltaMaxF = min( dDistFront, EMC.LB - MyMinOther) -- - EMC.TCING
|
WorkTab.dY2DeltaMaxF = min( dDistFront, EMC.LB - MyMinOther) -- - EMC.TCING
|
||||||
if dY1DeltaMaxSP then WorkTab.dY1DeltaMaxF = min( WorkTab.dY1DeltaMaxF, dY1DeltaMaxSP) end
|
if dY1DeltaMaxSP and dY1DeltaMaxSP > WorkTab.dY1DeltaMinF then
|
||||||
|
WorkTab.dY1DeltaMaxF = min( WorkTab.dY1DeltaMaxF, dY1DeltaMaxSP)
|
||||||
|
end
|
||||||
if dY2DeltaMinUL then WorkTab.dY2DeltaMinF = max( WorkTab.dY2DeltaMinF, dY2DeltaMinUL) end
|
if dY2DeltaMinUL then WorkTab.dY2DeltaMinF = max( WorkTab.dY2DeltaMinF, dY2DeltaMinUL) end
|
||||||
WorkTab.dV1PosF = dRollBack
|
WorkTab.dV1PosF = dRollBack
|
||||||
WorkTab.bV1CloseF = false
|
WorkTab.bV1CloseF = false
|
||||||
WorkTab.dV2PosF = -dRollFront
|
WorkTab.dV2PosF = -dRollFront
|
||||||
WorkTab.bV2CloseF = false
|
WorkTab.bV2CloseF = false
|
||||||
|
|
||||||
|
-- dopo che si è calcolato il minimo e massimo dell'intervallo, verifico che in testa rimanga almeno il minimo per poter fare passaggio pinze e scaricare
|
||||||
|
if AuxInfoMach and ( AuxInfoMach.bSplitting or AuxInfoMach.bCutting) then
|
||||||
|
if WorkTab.dY1DeltaMaxF - WorkTab.dY1DeltaMinF > 1.5 * BD.CHAR_EXTRA_DIST and WorkTab.dY1DeltaMaxF > EMC.LT + BD.MINRAW_S + BD.CHAR_EXTRA_DIST then
|
||||||
|
WorkTab.dY1DeltaMinF = max( min( EMC.LT + BD.MINRAW_S, WorkTab.dY1DeltaMaxF - 1), WorkTab.dY1DeltaMinF)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- verifico validità intervallo ammesso per Y1
|
-- verifico validità intervallo ammesso per Y1
|
||||||
if WorkTab.dY1DeltaMinF > WorkTab.dY1DeltaMaxF + 10 * GEO.EPS_SMALL then
|
if WorkTab.dY1DeltaMinF > WorkTab.dY1DeltaMaxF + 10 * GEO.EPS_SMALL then
|
||||||
EMC.ERR = 18
|
EMC.ERR = 18
|
||||||
@@ -1251,8 +1387,11 @@ function SpecCalcUnload()
|
|||||||
EgtOutLog( ' *[U1]', 1)
|
EgtOutLog( ' *[U1]', 1)
|
||||||
end
|
end
|
||||||
local vCmd = {}
|
local vCmd = {}
|
||||||
|
-- Tipo di scarico
|
||||||
|
local bStdUl = ( not MaxUnloadLen or MaxUnloadLen < 1 or EMC.LB - EMC.HOVM < MaxUnloadLen + 1)
|
||||||
|
|
||||||
-- Commento
|
-- Commento
|
||||||
table.insert( vCmd, { 0, 'Unloading'})
|
table.insert( vCmd, { 0, 'Unloading', EgtIf( bStdUl, 'Unloading', 'Manual Unloading')})
|
||||||
-- posizionamento sicuro teste e rulli (non serve ?)
|
-- posizionamento sicuro teste e rulli (non serve ?)
|
||||||
--table.insert( vCmd, { 4, 0})
|
--table.insert( vCmd, { 4, 0})
|
||||||
-- Se pinza Y chiusa, la apro
|
-- Se pinza Y chiusa, la apro
|
||||||
@@ -1260,11 +1399,15 @@ function SpecCalcUnload()
|
|||||||
table.insert( vCmd, { 11, 0})
|
table.insert( vCmd, { 11, 0})
|
||||||
EMC.CNT = nil
|
EMC.CNT = nil
|
||||||
end
|
end
|
||||||
-- Sposto il pezzo in posizione di scarico
|
-- Se non supero la lunghezza massima di scarico, sposto il pezzo in posizione di scarico
|
||||||
local dFinT = EgtIf( EMC.LB < MaxLenSmT, UnloadSmT, UnloadT) - EMC.LB
|
if bStdUl then
|
||||||
local dFinY2 = dFinT + EMC.Y2DELTA
|
local dFinT = EgtIf( EMC.LB < MaxLenSmT, UnloadSmT, UnloadT) - EMC.LB
|
||||||
table.insert( vCmd, { 2, 'T', dFinT, 'Y2', dFinY2})
|
local dFinY2 = dFinT + EMC.Y2DELTA
|
||||||
EgtOutLog( ' Y2PosF=' .. EgtNumToString( dFinY2), 1)
|
table.insert( vCmd, { 2, 'T', dFinT, 'Y2', dFinY2})
|
||||||
|
EgtOutLog( ' Y2PosF=' .. EgtNumToString( dFinY2), 1)
|
||||||
|
else
|
||||||
|
table.insert( vCmd, { 1, 'Y2', MaxY2, 'Manual Unloading'})
|
||||||
|
end
|
||||||
-- apro la morsa
|
-- apro la morsa
|
||||||
table.insert( vCmd, { 12, 0})
|
table.insert( vCmd, { 12, 0})
|
||||||
-- riporto il carrello in home
|
-- riporto il carrello in home
|
||||||
@@ -1323,20 +1466,24 @@ function SpecAdjustCarriages( WorkTab)
|
|||||||
if WorkTab.dY1DeltaI then
|
if WorkTab.dY1DeltaI then
|
||||||
local dY1DeltaLim = MinJoin + WorkTab.dV1PosI - WorkTab.dV2PosI + 2 * AGG_V + EMC.HCING + EMC.HOVM + EgtIf( EMC.CNT == 1, AggLoad, 0)
|
local dY1DeltaLim = MinJoin + WorkTab.dV1PosI - WorkTab.dV2PosI + 2 * AGG_V + EMC.HCING + EMC.HOVM + EgtIf( EMC.CNT == 1, AggLoad, 0)
|
||||||
if WorkTab.dY1DeltaI <= dY1DeltaLim or ( WorkTab.dY1DeltaMaxF and WorkTab.dY1DeltaMaxF <= dY1DeltaLim) then
|
if WorkTab.dY1DeltaI <= dY1DeltaLim or ( WorkTab.dY1DeltaMaxF and WorkTab.dY1DeltaMaxF <= dY1DeltaLim) then
|
||||||
bCloseV = true
|
bCloseV = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if WorkTab.dY2DeltaI then
|
if WorkTab.dY2DeltaI then
|
||||||
local dY2DeltaLim = MinJoin + WorkTab.dV1PosI - WorkTab.dV2PosI + 2 * AGG_V
|
local dY2DeltaLim = MinJoin + WorkTab.dV1PosI - WorkTab.dV2PosI + 2 * AGG_V
|
||||||
if EMC.LB - WorkTab.dY2DeltaI <= dY2DeltaLim or ( WorkTab.dY2DeltaMinF and EMC.LB - WorkTab.dY2DeltaMinF <= dY2DeltaLim) then
|
if EMC.LB - WorkTab.dY2DeltaI <= dY2DeltaLim or ( WorkTab.dY2DeltaMinF and EMC.LB - WorkTab.dY2DeltaMinF <= dY2DeltaLim) then
|
||||||
bCloseV = true
|
bCloseV = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- se ho cambiato modo di prendere utensile, forzo chiusura
|
-- se ho cambiato modo di prendere utensile, forzo chiusura
|
||||||
if bChangedTool == 2 then
|
if bChangedTool == 2 then
|
||||||
bCloseV = true
|
bCloseV = true
|
||||||
end
|
end
|
||||||
|
-- se i pezzi del cliente sono molto storti, si forza la chiusura per evitare che vada a sbattere. Se parametro non presente, si chiude solo se necessario
|
||||||
|
if ForceToCloseRollersGate then
|
||||||
|
bCloseV = true
|
||||||
|
end
|
||||||
|
|
||||||
WorkTab.bCloseV = bCloseV
|
WorkTab.bCloseV = bCloseV
|
||||||
|
|
||||||
-- |POSIZIONO Y1| **[A]**
|
-- |POSIZIONO Y1| **[A]**
|
||||||
@@ -1849,7 +1996,7 @@ local function PosY1Y2B( TabI, vCmd)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
nCnt = nCnt + 1
|
nCnt = nCnt + 1
|
||||||
if nCnt > 5 then return end
|
if nCnt > 10 then return end
|
||||||
until ( not bXW)
|
until ( not bXW)
|
||||||
-- chiusura/parcheggio dei trascinatori in funzioni chiamanti
|
-- chiusura/parcheggio dei trascinatori in funzioni chiamanti
|
||||||
local dY1Delta = TabI.dY1PosI - TabI.dTPosI
|
local dY1Delta = TabI.dY1PosI - TabI.dTPosI
|
||||||
@@ -1913,7 +2060,6 @@ local function PosY2Y1A( TabI, vCmd)
|
|||||||
MaxDispl( TabI, vCmd, 'M1')
|
MaxDispl( TabI, vCmd, 'M1')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
until ( not bXW)
|
until ( not bXW)
|
||||||
-- chiusura/parcheggio dei trascinatori in funzioni chiamanti
|
-- chiusura/parcheggio dei trascinatori in funzioni chiamanti
|
||||||
local dY1Delta = TabI.dY1PosI - TabI.dTPosI
|
local dY1Delta = TabI.dY1PosI - TabI.dTPosI
|
||||||
@@ -1981,14 +2127,14 @@ local function PosY2Y1B( TabI, vCmd)
|
|||||||
if TabI.dY2PosI > MinY2 and
|
if TabI.dY2PosI > MinY2 and
|
||||||
TabI.dY2PosI > TabI.dTPosI + MinJoin + EMC.HOVM + EMC.HCING - 10 * GEO.EPS_SMALL then
|
TabI.dY2PosI > TabI.dTPosI + MinJoin + EMC.HOVM + EMC.HCING - 10 * GEO.EPS_SMALL then
|
||||||
-- allontanamento morse, trascinamento trave con Y2
|
-- allontanamento morse, trascinamento trave con Y2
|
||||||
MaxDispl( TabI, vCmd, 'M2')
|
MaxDispl( TabI, vCmd, 'M2')
|
||||||
else
|
else
|
||||||
-- accentramento morse, trascinamento trave con Y1
|
-- accentramento morse, trascinamento trave con Y1
|
||||||
MaxDispl( TabI, vCmd, 'M3')
|
MaxDispl( TabI, vCmd, 'M3')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
nCnt = nCnt + 1
|
nCnt = nCnt + 1
|
||||||
if nCnt > 5 then return end
|
if nCnt > 10 then return end
|
||||||
until ( not bXW)
|
until ( not bXW)
|
||||||
-- la chiusura delle morse è fatta sopra
|
-- la chiusura delle morse è fatta sopra
|
||||||
local dY1Delta = TabI.dY1PosI - TabI.dTPosI
|
local dY1Delta = TabI.dY1PosI - TabI.dTPosI
|
||||||
@@ -2390,11 +2536,11 @@ function SpecOutputCmds( vCmd, bEnd)
|
|||||||
EgtSetInfo( EMC.PATHID, sKey, sInfo)
|
EgtSetInfo( EMC.PATHID, sKey, sInfo)
|
||||||
-- movimento di 1 asse
|
-- movimento di 1 asse
|
||||||
elseif Cmd[1] == 1 then
|
elseif Cmd[1] == 1 then
|
||||||
local sInfo = '1,'..Cmd[2]..','..EgtNumToString( Cmd[3],3)..EgtIf( Cmd[4], ',*', '')
|
local sInfo = '1,'..Cmd[2]..','..EgtNumToString( Cmd[3],3)..EgtIf( Cmd[4], ','..tostring(Cmd[4]), '')
|
||||||
EgtSetInfo( EMC.PATHID, sKey, sInfo)
|
EgtSetInfo( EMC.PATHID, sKey, sInfo)
|
||||||
-- movimento di 2 assi
|
-- movimento di 2 assi
|
||||||
elseif Cmd[1] == 2 then
|
elseif Cmd[1] == 2 then
|
||||||
local sInfo = '2,'..Cmd[2]..','..EgtNumToString( Cmd[3],3)..','..Cmd[4]..','..EgtNumToString( Cmd[5],3)..EgtIf( Cmd[6], ',*', '')
|
local sInfo = '2,'..Cmd[2]..','..EgtNumToString( Cmd[3],3)..','..Cmd[4]..','..EgtNumToString( Cmd[5],3)..EgtIf( Cmd[6], ','..tostring(Cmd[6]), '')
|
||||||
EgtSetInfo( EMC.PATHID, sKey, sInfo)
|
EgtSetInfo( EMC.PATHID, sKey, sInfo)
|
||||||
-- movimento di 3 assi
|
-- movimento di 3 assi
|
||||||
elseif Cmd[1] == 3 then
|
elseif Cmd[1] == 3 then
|
||||||
+4
-4
@@ -22,12 +22,12 @@ rmdir /s /Q %fullPathZip%
|
|||||||
REM copio i sorgenti nel percorso di destinazione
|
REM copio i sorgenti nel percorso di destinazione
|
||||||
ROBOCOPY . %fullPathSource%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt"
|
ROBOCOPY . %fullPathSource%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt"
|
||||||
REM copio i sorgenti nel percorso temporaneo per i compilati
|
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"
|
ROBOCOPY . %fullPathSource%\bin\%machineName%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
|
||||||
|
|
||||||
REM copio i file compilati nel percorso temporaneo per i compilati
|
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.mlpe -s 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.mlse -s Common_PF1250.mlse
|
||||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-PF1250.TPA.mlpe Common-PF1250.TPA.mlpe
|
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common_PF1250.TPA.mlpe -s Common_PF1250.TPA.mlpe
|
||||||
|
|
||||||
REM comprimo i file compilati in uno zip pronto per essere distribuito
|
REM comprimo i file compilati in uno zip pronto per essere distribuito
|
||||||
tar.exe acvf %fullPathZip%\%machineName%.zip -C %fullPathSource%\bin\ %machineName%\*.*
|
tar.exe acvf %fullPathZip%\%machineName%.zip -C %fullPathSource%\bin\ %machineName%\*.*
|
||||||
|
|||||||
Binary file not shown.
+131
-62
@@ -1,44 +1,17 @@
|
|||||||
-- Descrizione macchina Essetre-PF1250MAX by EgalWare s.r.l. 2024/02/20
|
-- Descrizione macchina Essetre-PF1250MAX by EgalWare s.r.l. 2024/03/28
|
||||||
-- 2023/12/07 ver 2.5l1 Prima versione. Derivata da PF1250 ver 2.5l4
|
-- 2023/12/07 ver 2.5l1 Prima versione. Derivata da PF1250 ver 2.5l4
|
||||||
-- 2023/12/15 ver 2.5l2 Corretti vari offset in simulazione
|
-------------------------------------
|
||||||
-- 2023/12/18 ver 2.5l3 Ultimata gestione aggregato lama da sotto
|
-- NOTE VERSIONI SUCCESSIVE IN GIT --
|
||||||
-- Spostato alcune funzioni proprie del C.U. nel MLDE (per post-proc common)
|
-------------------------------------
|
||||||
-- Spostato magazzini sotto traversa ( di 200mm) come da modifica meccanica
|
|
||||||
-- 2023/12/20 ver 2.6a1 Prima versione con post Common-PF1250
|
|
||||||
-- Invertiti magazzini mortasatrice-truciolatore e adeguati solidi di collisione
|
|
||||||
-- Abbassata testa 2 di 300mm
|
|
||||||
-- Parcheggio motosega portato a -1700mm
|
|
||||||
-- In BeamData aggiunta GetSawBlockedAxis per fissare asse bloccato per aggregato lama sotto.
|
|
||||||
-- Costanti MinForzaPinze e MaxForzaPinze portati in mlde/Ts3data (erano hardcoded - Common)
|
|
||||||
-- Aggiunto variabile 'WriteAllCoordsOnFirstM101' e allineamento con 2.6a1 common
|
|
||||||
-- 2023/12/20 ver 2.6a2 Allineamento con Common-PF1250 v.2.6a2
|
|
||||||
-- 2024/01/22 ver 2.6a3 Migliorata preselezione utensile
|
|
||||||
-- Rimosse funzioni ribaltamento pezzo
|
|
||||||
-- Allineamento con Common-PF1250 v.2.6a3
|
|
||||||
-- In BeamData aggiunta la funzione GetBlockedAxis che sostituisce le altre (GetChainSawBlockedAxis e GetSawBlockedAxis)
|
|
||||||
-- 2024/01/25 ver 2.6a4 Allineamento con Common 2.6a4
|
|
||||||
-- 2024/02/09 ver 2.6b1 Corretto errore in definizione testa H22
|
|
||||||
-- In BeamData migliorata funzione GetBlockedAxis
|
|
||||||
-- 2024/02/12 ver 2.6b2 Allineamento con common 2.6b2
|
|
||||||
-- 2024/02/20 ver 2.6b3 Allineamento con common 2.6b3
|
|
||||||
-- 2024/02/26 ver 2.6b4 Allineamento con common ver. 2.6b4; in mlde aggiunte chiamate EgtAddToPackagePath
|
|
||||||
-- 2024/02/29 ver 2.6c1 Allineamento con common ver. 2.6c1
|
|
||||||
-- 2024/03/04 ver 2.6c2 Modificato log con nome macchina
|
|
||||||
-- Allineamento con common ver. 2.6c2
|
|
||||||
-- 2024/03/05 ver 2.6c3 Corretto portautensile Standard_LC_108.
|
|
||||||
-- 2024/03/12 ver 2.6c4 Allineamento con common ver. 2.6c3
|
|
||||||
-- 2024/03/14 ver 2.6c5 Allineamento con common ver. 2.6c4
|
|
||||||
-- Aggiunto nuovo tipo di lavorazione: Predrill
|
|
||||||
-- 2024/03/14 ver 2.6c6 Predrill: aggiunta lavorazione tipo 'Predrill_H2' per testa sotto
|
|
||||||
|
|
||||||
|
|
||||||
-- Intestazioni
|
-- Intestazioni
|
||||||
require( 'EmtGenerator')
|
require( 'EmtGenerator')
|
||||||
EgtEnableDebug( false)
|
EgtEnableDebug( false)
|
||||||
|
|
||||||
PP_VER = '2.6c6'
|
PP_VER = '3.1e1'
|
||||||
MIN_MACH_VER = '2.5k1'
|
PP_NVER = '3.1.5.1'
|
||||||
MACH_NAME = 'Essetre-PF1250MAX'
|
MIN_MACH_VER = '2.7d2'
|
||||||
|
MACH_NAME = EgtGetCurrMachineName()
|
||||||
|
|
||||||
-- Carico i dati globali
|
-- Carico i dati globali
|
||||||
local sMachDir = EgtGetCurrMachineDir()
|
local sMachDir = EgtGetCurrMachineDir()
|
||||||
@@ -106,7 +79,8 @@ SawB2Offs = 0
|
|||||||
MinX1 = 0
|
MinX1 = 0
|
||||||
MaxX1 = 3300
|
MaxX1 = 3300
|
||||||
MinZ1 = -1850
|
MinZ1 = -1850
|
||||||
MaxZ1 = -100
|
MaxZ1 = 0
|
||||||
|
MaxZ1Blade = -100
|
||||||
MinC1 = -275
|
MinC1 = -275
|
||||||
MaxC1 = 275
|
MaxC1 = 275
|
||||||
MinB1 = -127
|
MinB1 = -127
|
||||||
@@ -114,6 +88,7 @@ MaxB1 = 127
|
|||||||
MinB1b = -119
|
MinB1b = -119
|
||||||
MaxB1b = 119
|
MaxB1b = 119
|
||||||
ParkX1 = 250
|
ParkX1 = 250
|
||||||
|
ParkTc1X1 = 250
|
||||||
ParkTc2X1 = 3100
|
ParkTc2X1 = 3100
|
||||||
ParkZ1 = -525
|
ParkZ1 = -525
|
||||||
ParkC1 = -90
|
ParkC1 = -90
|
||||||
@@ -128,9 +103,10 @@ MinLengthLongCSaw = 580 -- gestione speciale per motosega molto lunga. Lung
|
|||||||
ParkLongCSawZ1 = -50 -- gestione speciale per motosega molto lunga. Parcheggio asse Z
|
ParkLongCSawZ1 = -50 -- gestione speciale per motosega molto lunga. Parcheggio asse Z
|
||||||
ParkLongCSawC1 = 0 -- gestione speciale per motosega molto lunga. Parcheggio asse C
|
ParkLongCSawC1 = 0 -- gestione speciale per motosega molto lunga. Parcheggio asse C
|
||||||
ParkLongCSawB1 = -90 -- gestione speciale per motosega molto lunga. Parcheggio asse B
|
ParkLongCSawB1 = -90 -- gestione speciale per motosega molto lunga. Parcheggio asse B
|
||||||
LongTool = 400
|
LongTool = 390
|
||||||
ParkLongTc1C1 = 0
|
ParkLongTc1C1 = 0
|
||||||
ParkLongTc2C1 = -180
|
ParkLongTc2C1 = -180
|
||||||
|
ParkLongB1 = 0
|
||||||
MinZ1ToChangeH2 = -1400
|
MinZ1ToChangeH2 = -1400
|
||||||
MinX2 = -2760
|
MinX2 = -2760
|
||||||
MaxX2 = 0
|
MaxX2 = 0
|
||||||
@@ -143,7 +119,8 @@ MaxB2 = 127
|
|||||||
MinB2b = -119
|
MinB2b = -119
|
||||||
MaxB2b = 119
|
MaxB2b = 119
|
||||||
ParkX2 = -100
|
ParkX2 = -100
|
||||||
SafeX2 = -400
|
SafeX2 = -200
|
||||||
|
SafeX2RotAxis = -1000
|
||||||
ParkZ2 = 0
|
ParkZ2 = 0
|
||||||
ParkC2 = -90
|
ParkC2 = -90
|
||||||
ParkB2 = -90
|
ParkB2 = -90
|
||||||
@@ -160,7 +137,7 @@ DeltaTabY = 2550
|
|||||||
DeltaTabZ = -1428 + MillOffs -- per TPA : -1128.0 + MillOffs -- per NUM : -1258
|
DeltaTabZ = -1428 + MillOffs -- per TPA : -1128.0 + MillOffs -- per NUM : -1258
|
||||||
DeltaRulliTraveZ = -1203
|
DeltaRulliTraveZ = -1203
|
||||||
DimTabY = 1400
|
DimTabY = 1400
|
||||||
DimTabX = 24000
|
DimTabX = 34000
|
||||||
Delta2TabY = -1185.9
|
Delta2TabY = -1185.9
|
||||||
Delta2TabZ = 693 - Mill2Offs -- per TPA : 378.0 - Mill2Offs -- per NUM : 223
|
Delta2TabZ = 693 - Mill2Offs -- per TPA : 378.0 - Mill2Offs -- per NUM : 223
|
||||||
Head2X = 0
|
Head2X = 0
|
||||||
@@ -174,10 +151,15 @@ MaxForzaPinze = 1000 -- [Kgf]
|
|||||||
Tc2Active = true -- magazzino prima sega a catena
|
Tc2Active = true -- magazzino prima sega a catena
|
||||||
SecondSaw = true -- seconda lama su aggregato su TC3 presente
|
SecondSaw = true -- seconda lama su aggregato su TC3 presente
|
||||||
SecondChain = true -- magazzino seconda sega a catena
|
SecondChain = true -- magazzino seconda sega a catena
|
||||||
TcSpecialTools = true -- magarzzino per utensili speciali. In genere truciolatore
|
TcSpecialTools = true -- magazzino per utensili speciali. In genere truciolatore
|
||||||
TcAggreBladeUnder = true -- lama su aggregato per testa da sotto
|
TcAggreBladeUnder = true -- lama su aggregato per testa da sotto
|
||||||
EmitAccClamps = true
|
EmitAccClamps = true
|
||||||
WriteAllCoordsOnFirstM101 = true
|
WriteAllCoordsOnFirstM101 = true
|
||||||
|
ForceToCloseRollersGate = false
|
||||||
|
Motors23KW = false
|
||||||
|
EstimationRapidMultiplier = 1
|
||||||
|
DistZClampToTable = 5 -- distanza tra la tavola e il punto più basso della morsa
|
||||||
|
ClampingCoeffMin = nil -- coefficiente di fissaggio, se 0 o nil non fa controllo, per il momento da inizializzare da Ts3Data
|
||||||
|
|
||||||
-- Aggiornamento con dati da TechnoEssetre7
|
-- Aggiornamento con dati da TechnoEssetre7
|
||||||
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-PF1250MAX.data"
|
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-PF1250MAX.data"
|
||||||
@@ -200,6 +182,7 @@ if EgtExistsFile( sDataBeam) then
|
|||||||
if Machine.Offsets.PARK_X1 then ParkX1 = Machine.Offsets.PARK_X1 end
|
if Machine.Offsets.PARK_X1 then ParkX1 = Machine.Offsets.PARK_X1 end
|
||||||
if Machine.Offsets.Z1_NEG then MinZ1 = Machine.Offsets.Z1_NEG end
|
if Machine.Offsets.Z1_NEG then MinZ1 = Machine.Offsets.Z1_NEG end
|
||||||
if Machine.Offsets.Z1_POS then MaxZ1 = min( MaxZ1, Machine.Offsets.Z1_POS) end
|
if Machine.Offsets.Z1_POS then MaxZ1 = min( MaxZ1, Machine.Offsets.Z1_POS) end
|
||||||
|
if Machine.Offsets.Z1_POS_LAMA then MaxZ1Blade = min( MaxZ1Blade, Machine.Offsets.Z1_POS_LAMA) end
|
||||||
if Machine.Offsets.PARK_Z1 then ParkZ1 = Machine.Offsets.PARK_Z1 end
|
if Machine.Offsets.PARK_Z1 then ParkZ1 = Machine.Offsets.PARK_Z1 end
|
||||||
if Machine.Offsets.C1_NEG then MinC1 = Machine.Offsets.C1_NEG end
|
if Machine.Offsets.C1_NEG then MinC1 = Machine.Offsets.C1_NEG end
|
||||||
if Machine.Offsets.C1_POS then MaxC1 = Machine.Offsets.C1_POS end
|
if Machine.Offsets.C1_POS then MaxC1 = Machine.Offsets.C1_POS end
|
||||||
@@ -218,6 +201,8 @@ if EgtExistsFile( sDataBeam) then
|
|||||||
if Machine.Offsets.C2_POS then MaxC2 = Machine.Offsets.C2_POS end
|
if Machine.Offsets.C2_POS then MaxC2 = Machine.Offsets.C2_POS end
|
||||||
if Machine.Offsets.B2_NEG then MinB2 = Machine.Offsets.B2_NEG end
|
if Machine.Offsets.B2_NEG then MinB2 = Machine.Offsets.B2_NEG end
|
||||||
if Machine.Offsets.B2_POS then MaxB2 = Machine.Offsets.B2_POS end
|
if Machine.Offsets.B2_POS then MaxB2 = Machine.Offsets.B2_POS end
|
||||||
|
if Machine.Offsets.B2_NEG1 then MinB2b = Machine.Offsets.B2_NEG1 end
|
||||||
|
if Machine.Offsets.B2_POS1 then MaxB2b = Machine.Offsets.B2_POS1 end
|
||||||
if Machine.Offsets.MIN_Y1 then MinMchY1 = Machine.Offsets.MIN_Y1 end
|
if Machine.Offsets.MIN_Y1 then MinMchY1 = Machine.Offsets.MIN_Y1 end
|
||||||
if Machine.Offsets.MAX_Y1 then MaxMchY1 = Machine.Offsets.MAX_Y1 end
|
if Machine.Offsets.MAX_Y1 then MaxMchY1 = Machine.Offsets.MAX_Y1 end
|
||||||
if Machine.Offsets.PARK_Y1 then ParkMchY1 = Machine.Offsets.PARK_Y1 end
|
if Machine.Offsets.PARK_Y1 then ParkMchY1 = Machine.Offsets.PARK_Y1 end
|
||||||
@@ -238,6 +223,8 @@ if EgtExistsFile( sDataBeam) then
|
|||||||
if Machine.Offsets.OFFSETBLAMAT1 then SawB1Offs= Machine.Offsets.OFFSETBLAMAT1 end
|
if Machine.Offsets.OFFSETBLAMAT1 then SawB1Offs= Machine.Offsets.OFFSETBLAMAT1 end
|
||||||
if Machine.Offsets.OFFSETCLAMAT2 then Saw2C1Offs= Machine.Offsets.OFFSETCLAMAT2 end
|
if Machine.Offsets.OFFSETCLAMAT2 then Saw2C1Offs= Machine.Offsets.OFFSETCLAMAT2 end
|
||||||
if Machine.Offsets.OFFSETBLAMAT2 then Saw2B1Offs= Machine.Offsets.OFFSETBLAMAT2 end
|
if Machine.Offsets.OFFSETBLAMAT2 then Saw2B1Offs= Machine.Offsets.OFFSETBLAMAT2 end
|
||||||
|
if Machine.Offsets.OFFSETCLAMAUNDER then SawUnderC2Offs= Machine.Offsets.OFFSETCLAMAUNDER end
|
||||||
|
if Machine.Offsets.OFFSETBLAMAUNDER then SawUnderB2Offs= Machine.Offsets.OFFSETBLAMAUNDER end
|
||||||
if Machine.Offsets.OFFSETXT1 then DeltaTabY = -Machine.Offsets.OFFSETXT1 end
|
if Machine.Offsets.OFFSETXT1 then DeltaTabY = -Machine.Offsets.OFFSETXT1 end
|
||||||
if Machine.Offsets.OFFSETZT1 then DeltaTabZ = Machine.Offsets.OFFSETZT1 + MillOffs end
|
if Machine.Offsets.OFFSETZT1 then DeltaTabZ = Machine.Offsets.OFFSETZT1 + MillOffs end
|
||||||
if Machine.Offsets.OFFSETXT2 then Delta2TabY = Machine.Offsets.OFFSETXT2 end
|
if Machine.Offsets.OFFSETXT2 then Delta2TabY = Machine.Offsets.OFFSETXT2 end
|
||||||
@@ -248,10 +235,22 @@ if EgtExistsFile( sDataBeam) then
|
|||||||
if Machine.Offsets.SAWOFFSZ then SawOffsZ = Machine.Offsets.SAWOFFSZ end
|
if Machine.Offsets.SAWOFFSZ then SawOffsZ = Machine.Offsets.SAWOFFSZ end
|
||||||
if Machine.Offsets.SAW2OFFSX then Saw2OffsX = Machine.Offsets.SAW2OFFSX end
|
if Machine.Offsets.SAW2OFFSX then Saw2OffsX = Machine.Offsets.SAW2OFFSX end
|
||||||
if Machine.Offsets.SAW2OFFSZ then Saw2OffsZ = Machine.Offsets.SAW2OFFSZ end
|
if Machine.Offsets.SAW2OFFSZ then Saw2OffsZ = Machine.Offsets.SAW2OFFSZ end
|
||||||
|
if Machine.Offsets.SAWUNDEROFFSY then SawUnderOffsY = Machine.Offsets.SAWUNDEROFFSY end
|
||||||
|
if Machine.Offsets.SAWUNDEROFFSZ then SawUnderOffsZ = Machine.Offsets.SAWUNDEROFFSZ end
|
||||||
if Machine.Offsets.DEFTCPOS1 then DefTcPos1 = ( 'T' .. Machine.Offsets.DEFTCPOS1) end
|
if Machine.Offsets.DEFTCPOS1 then DefTcPos1 = ( 'T' .. Machine.Offsets.DEFTCPOS1) end
|
||||||
if Machine.Offsets.DEFTCPOS2 then DefTcPos2 = ( 'T' .. Machine.Offsets.DEFTCPOS2) end
|
if Machine.Offsets.DEFTCPOS2 then DefTcPos2 = ( 'T' .. Machine.Offsets.DEFTCPOS2) end
|
||||||
if Machine.Offsets.MINPRESS then MinForzaPinze = Machine.Offsets.MINPRESS end
|
if Machine.Offsets.MINPRESS then MinForzaPinze = Machine.Offsets.MINPRESS end
|
||||||
if Machine.Offsets.MAXPRESS then MaxForzaPinze = Machine.Offsets.MAXPRESS end
|
if Machine.Offsets.MAXPRESS then MaxForzaPinze = Machine.Offsets.MAXPRESS end
|
||||||
|
if Machine.Offsets.NOULOAD then MaxUnloadLen = Machine.Offsets.NOULOAD end
|
||||||
|
if Machine.Offsets.MAXFEEDPINZE then MaxFeedPinze = Machine.Offsets.MAXFEEDPINZE end
|
||||||
|
if Machine.Offsets.MAXACC then MaxAcc = Machine.Offsets.MAXACC end
|
||||||
|
if Machine.Offsets.MINACC then MinAcc = Machine.Offsets.MINACC end
|
||||||
|
if Machine.Offsets.COEFF_STIMATEMPI and Machine.Offsets.COEFF_STIMATEMPI > 0 then EstimationRapidMultiplier = Machine.Offsets.COEFF_STIMATEMPI end
|
||||||
|
if Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO then ForceToCloseRollersGate = Machine.Offsets.CHIUDI_PINZE_2_3_SCAMBIO == 1 end
|
||||||
|
if Machine.Offsets.WOOD_DENSITY then WoodDensity = Machine.Offsets.WOOD_DENSITY end
|
||||||
|
if Machine.Offsets.MOTORS23KW then Motors23KW = Machine.Offsets.MOTORS23KW == 1 end
|
||||||
|
if Machine.Offsets.COEFF_CLAMP_CHECK then ClampingCoeffMin = Machine.Offsets.COEFF_CLAMP_CHECK end
|
||||||
|
|
||||||
-- aggiustamenti
|
-- aggiustamenti
|
||||||
MinY1 = MinV1 + MinDeltaYV
|
MinY1 = MinV1 + MinDeltaYV
|
||||||
MaxY1 = MaxMchY1
|
MaxY1 = MaxMchY1
|
||||||
@@ -262,6 +261,7 @@ if EgtExistsFile( sDataBeam) then
|
|||||||
ParkV2 = MinV2
|
ParkV2 = MinV2
|
||||||
ParkY2 = ParkV2 - MinDeltaYV
|
ParkY2 = ParkV2 - MinDeltaYV
|
||||||
UnloadSmT = UnloadT - 300
|
UnloadSmT = UnloadT - 300
|
||||||
|
MaxZ1Blade = min( MaxZ1Blade, -100)
|
||||||
Head2Y = DeltaTabY - Delta2TabY
|
Head2Y = DeltaTabY - Delta2TabY
|
||||||
Head2Z = DeltaTabZ - Delta2TabZ
|
Head2Z = DeltaTabZ - Delta2TabZ
|
||||||
ParkCSawZ1 = min( ParkCSawZ1, MaxZ1)
|
ParkCSawZ1 = min( ParkCSawZ1, MaxZ1)
|
||||||
@@ -269,6 +269,7 @@ if EgtExistsFile( sDataBeam) then
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
SecondSaw = ( SecondSaw and Tc2Active)
|
SecondSaw = ( SecondSaw and Tc2Active)
|
||||||
|
local vtOffset23KW = Vector3d( 0, 0, EgtIf( Motors23KW, 37, 0))
|
||||||
|
|
||||||
EmtGeneral {
|
EmtGeneral {
|
||||||
File='Essetre-PF1250.nge',
|
File='Essetre-PF1250.nge',
|
||||||
@@ -278,9 +279,12 @@ EmtGeneral {
|
|||||||
ExitMaxAdjust = 300,
|
ExitMaxAdjust = 300,
|
||||||
ExitMaxRotAdj = 0.5,
|
ExitMaxRotAdj = 0.5,
|
||||||
AngDeltaMinForHome = 80,
|
AngDeltaMinForHome = 80,
|
||||||
Special = 'Common-PF1250.mlse',
|
LinkAxesMoveOrder = MCH_LKAMO.HEAD_BEFORE_IF_SAME_ANG,
|
||||||
Processor = 'Common-PF1250.mlpe'}
|
Special = 'Common_PF1250.mlse',
|
||||||
local sBaseAux = {'BASE/SOLID', 'BASE/CONVOYER', 'BASE/COLLISION', 'BASE/TC1', 'BASE/TCR', 'BASE/TC3'}
|
Processor = 'Common_PF1250.mlpe'}
|
||||||
|
-- in base alla corsa macchina, si carica la rulliera di carico/scarico appropriata
|
||||||
|
local sGeomConvoyer = EgtIf( MaxY1 > 6500, '_8M', '_5M')
|
||||||
|
local sBaseAux = {'BASE/SOLID', 'BASE/CONVOYER'..sGeomConvoyer, 'BASE/COLLISION', 'BASE/TC1', 'BASE/TCR', 'BASE/TC3'}
|
||||||
if Tc2Active then table.insert( sBaseAux, 5, 'BASE/TC2') end
|
if Tc2Active then table.insert( sBaseAux, 5, 'BASE/TC2') end
|
||||||
if TcSpecialTools then table.insert( sBaseAux, 'BASE/TC4') end
|
if TcSpecialTools then table.insert( sBaseAux, 'BASE/TC4') end
|
||||||
if SecondChain then table.insert( sBaseAux, 'BASE/TC5') end
|
if SecondChain then table.insert( sBaseAux, 'BASE/TC5') end
|
||||||
@@ -300,9 +304,9 @@ local X1Id = EmtAxis {
|
|||||||
Home = ParkX1,
|
Home = ParkX1,
|
||||||
Invert = true,
|
Invert = true,
|
||||||
Geo = 'X1_AXIS/GEO',
|
Geo = 'X1_AXIS/GEO',
|
||||||
Aux = 'X1_AXIS/SOLID'}
|
Aux = {'X1_AXIS/SOLID', 'X1_AXIS/COLLISION'}}
|
||||||
-- *** Testa 1 ***
|
-- *** Testa 1 ***
|
||||||
EmtAxis {
|
local Z1Id = EmtAxis {
|
||||||
Name = 'Z1',
|
Name = 'Z1',
|
||||||
Parent = 'X1',
|
Parent = 'X1',
|
||||||
Token = 'Z',
|
Token = 'Z',
|
||||||
@@ -322,8 +326,8 @@ EmtAxis {
|
|||||||
Pos = Point3d(0.0,0.0,503.0),
|
Pos = Point3d(0.0,0.0,503.0),
|
||||||
Stroke = {MinC1, MaxC1},
|
Stroke = {MinC1, MaxC1},
|
||||||
Home = ParkC1,
|
Home = ParkC1,
|
||||||
Geo = 'C1_AXIS/GEO',
|
Geo = EgtIf( Motors23KW, 'C1_AXIS_23KW/GEO', 'C1_AXIS/GEO'),
|
||||||
Aux = {'C1_AXIS/SOLID', 'C1_AXIS/COLLISION'}}
|
Aux = {EgtIf( Motors23KW, 'C1_AXIS_23KW/SOLID', 'C1_AXIS/SOLID'), EgtIf( Motors23KW, 'C1_AXIS_23KW/COLLISION', 'C1_AXIS/COLLISION')}}
|
||||||
EmtAxis {
|
EmtAxis {
|
||||||
Name = 'B1',
|
Name = 'B1',
|
||||||
Parent = 'C1',
|
Parent = 'C1',
|
||||||
@@ -333,8 +337,8 @@ EmtAxis {
|
|||||||
Pos = Point3d(-108.4,0.0,MillOffs),
|
Pos = Point3d(-108.4,0.0,MillOffs),
|
||||||
Stroke = {MinB1, MaxB1},
|
Stroke = {MinB1, MaxB1},
|
||||||
Home = ParkB1,
|
Home = ParkB1,
|
||||||
Geo = 'B1_AXIS/GEO',
|
Geo = EgtIf( Motors23KW, 'B1_AXIS_23KW/GEO', 'B1_AXIS/GEO'),
|
||||||
Aux = {'B1_AXIS/SOLID', 'B1_AXIS/COLLISION'}}
|
Aux = {EgtIf( Motors23KW, 'B1_AXIS_23KW/SOLID', 'B1_AXIS/SOLID'), EgtIf( Motors23KW, 'B1_AXIS_23KW/COLLISION', 'B1_AXIS/COLLISION')}}
|
||||||
-- Frese
|
-- Frese
|
||||||
local H11Id = EmtHead {
|
local H11Id = EmtHead {
|
||||||
Name = 'H11',
|
Name = 'H11',
|
||||||
@@ -441,8 +445,8 @@ local C2Id = EmtAxis {
|
|||||||
Pos = Point3d( Head2X, Head2Y, Head2Z-485),
|
Pos = Point3d( Head2X, Head2Y, Head2Z-485),
|
||||||
Stroke = {MinC2, MaxC2},
|
Stroke = {MinC2, MaxC2},
|
||||||
Home = ParkC2,
|
Home = ParkC2,
|
||||||
Geo = 'C2_AXIS/GEO',
|
Geo = EgtIf( Motors23KW, 'C2_AXIS_23KW/GEO', 'C2_AXIS/GEO'),
|
||||||
Aux = {'C2_AXIS/SOLID', 'C2_AXIS/COLLISION'}}
|
Aux = {EgtIf( Motors23KW, 'C2_AXIS_23KW/SOLID', 'C2_AXIS/SOLID'), EgtIf( Motors23KW, 'C2_AXIS_23KW/COLLISION', 'C2_AXIS/COLLISION')}}
|
||||||
local B2Id = EmtAxis {
|
local B2Id = EmtAxis {
|
||||||
Name = 'B2',
|
Name = 'B2',
|
||||||
Parent = 'C2',
|
Parent = 'C2',
|
||||||
@@ -452,8 +456,8 @@ local B2Id = EmtAxis {
|
|||||||
Pos = Point3d( Head2X, Head2Y, Head2Z-Mill2Offs),
|
Pos = Point3d( Head2X, Head2Y, Head2Z-Mill2Offs),
|
||||||
Stroke = {MinB2, MaxB2},
|
Stroke = {MinB2, MaxB2},
|
||||||
Home = ParkB2,
|
Home = ParkB2,
|
||||||
Geo = 'B2_AXIS/GEO',
|
Geo = EgtIf( Motors23KW, 'B2_AXIS_23KW/GEO', 'B2_AXIS/GEO'),
|
||||||
Aux = {'B2_AXIS/SOLID', 'B2_AXIS/COLLISION'}}
|
Aux = {EgtIf( Motors23KW, 'B2_AXIS_23KW/SOLID', 'B2_AXIS/SOLID'), EgtIf( Motors23KW, 'B2_AXIS_23KW/COLLISION', 'B2_AXIS/COLLISION')}}
|
||||||
EmtAxis {
|
EmtAxis {
|
||||||
Name = 'A2',
|
Name = 'A2',
|
||||||
Parent = 'B2',
|
Parent = 'B2',
|
||||||
@@ -466,11 +470,11 @@ EmtAxis {
|
|||||||
Geo = 'A2_AXIS/GEO'}
|
Geo = 'A2_AXIS/GEO'}
|
||||||
|
|
||||||
local vtMoveZ2 = Vector3d( 0, 0, Head2Z + 1781.0)
|
local vtMoveZ2 = Vector3d( 0, 0, Head2Z + 1781.0)
|
||||||
EgtMove( EgtGetFirstNameInGroup( Z2Id, 'SOLID'), vtMoveZ2, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( Z2Id, 'SOLID'), vtMoveZ2 - vtOffset23KW, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( Z2Id, 'COLLISION'), vtMoveZ2, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( Z2Id, 'COLLISION'), vtMoveZ2 - vtOffset23KW, GDB_RT.GLOB)
|
||||||
local vtMoveX2 = Vector3d( 0, Head2Y - 3735.9, Head2Z + 1781.0)
|
local vtMoveX2 = Vector3d( 0, Head2Y - 3735.9, Head2Z + 1781.0)
|
||||||
EgtMove( EgtGetFirstNameInGroup( X2Id, 'SOLID'), vtMoveX2, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( X2Id, 'SOLID'), vtMoveX2 - vtOffset23KW, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( X2Id, 'COLLISION'), vtMoveX2, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( X2Id, 'COLLISION'), vtMoveX2 - vtOffset23KW, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( C2Id, 'SOLID'), vtMoveX2, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( C2Id, 'SOLID'), vtMoveX2, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( C2Id, 'COLLISION'), vtMoveX2, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( C2Id, 'COLLISION'), vtMoveX2, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( B2Id, 'SOLID'), vtMoveX2, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( B2Id, 'SOLID'), vtMoveX2, GDB_RT.GLOB)
|
||||||
@@ -527,7 +531,7 @@ local PY1Id = EmtAxis {
|
|||||||
Stroke = {0, MaxHoOpen},
|
Stroke = {0, MaxHoOpen},
|
||||||
Home = MaxHoOpen,
|
Home = MaxHoOpen,
|
||||||
Geo = 'PY1_AXIS/GEO',
|
Geo = 'PY1_AXIS/GEO',
|
||||||
Aux = 'PY1_AXIS/SOLID'}
|
Aux = {'PY1_AXIS/SOLID', 'PY1_AXIS/CLAMP_CHECK'}}
|
||||||
local Y2Id = EmtAxis {
|
local Y2Id = EmtAxis {
|
||||||
Name = 'Y2',
|
Name = 'Y2',
|
||||||
Parent = 'Base',
|
Parent = 'Base',
|
||||||
@@ -547,7 +551,7 @@ local PY2Id = EmtAxis {
|
|||||||
Stroke = {0, MaxHoOpen},
|
Stroke = {0, MaxHoOpen},
|
||||||
Home = MaxHoOpen,
|
Home = MaxHoOpen,
|
||||||
Geo = 'PY2_AXIS/GEO',
|
Geo = 'PY2_AXIS/GEO',
|
||||||
Aux = 'PY2_AXIS/SOLID'}
|
Aux = {'PY2_AXIS/SOLID', 'PY2_AXIS/CLAMP_CHECK'}}
|
||||||
-- Rulli
|
-- Rulli
|
||||||
local V1Id = EmtAxis {
|
local V1Id = EmtAxis {
|
||||||
Name = 'V1',
|
Name = 'V1',
|
||||||
@@ -617,7 +621,7 @@ EmtAxis {
|
|||||||
Type = MCH_AT.LINEAR,
|
Type = MCH_AT.LINEAR,
|
||||||
Dir = - X_AX(),
|
Dir = - X_AX(),
|
||||||
Pos = Point3d(0.0,2450.0,-958.0),
|
Pos = Point3d(0.0,2450.0,-958.0),
|
||||||
Stroke = {-20000, 20000},
|
Stroke = {-30000, 30000},
|
||||||
Home = LoadT,
|
Home = LoadT,
|
||||||
Geo = 'T_AXIS/GEO'}
|
Geo = 'T_AXIS/GEO'}
|
||||||
EmtTable {
|
EmtTable {
|
||||||
@@ -920,12 +924,17 @@ if SecondChain then EgtMove( EgtGetFirstNameInGroup( BaseId, 'TC5') or GDB_ID.NU
|
|||||||
EgtMove( EgtGetFirstNameInGroup( BaseId, 'TCR') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( BaseId, 'TCR') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB)
|
||||||
if TcSpecialTools then EgtMove( EgtGetFirstNameInGroup( BaseId, 'TCS') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB) end
|
if TcSpecialTools then EgtMove( EgtGetFirstNameInGroup( BaseId, 'TCS') or GDB_ID.NULL, vtMovB, GDB_RT.GLOB) end
|
||||||
EgtMove( EgtGetFirstNameInGroup( X1Id, 'SOLID'), vtMovB, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( X1Id, 'SOLID'), vtMovB, GDB_RT.GLOB)
|
||||||
|
EgtMove( EgtGetFirstNameInGroup( X1Id, 'COLLISION'), vtMovB, GDB_RT.GLOB)
|
||||||
|
EgtMove( EgtGetFirstNameInGroup( Z1Id, 'SOLID'), vtOffset23KW, GDB_RT.GLOB)
|
||||||
|
EgtMove( EgtGetFirstNameInGroup( Z1Id, 'COLLISION'), vtOffset23KW, GDB_RT.GLOB)
|
||||||
local vtMove = Vector3d( 0, ( DeltaTabY - 2550.0), ( DeltaTabZ + 1258.0))
|
local vtMove = Vector3d( 0, ( DeltaTabY - 2550.0), ( DeltaTabZ + 1258.0))
|
||||||
EgtMove( EgtGetFirstNameInGroup( BaseId, 'CONVOYER'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( BaseId, 'CONVOYER'..sGeomConvoyer), vtMove, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( Y1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( Y1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( PY1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( PY1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||||
|
EgtMove( EgtGetFirstNameInGroup( PY1Id, 'CLAMP_CHECK'), vtMove + Vector3d(0,0,DistZClampToTable), GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( Y2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( Y2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( PY2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( PY2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||||
|
EgtMove( EgtGetFirstNameInGroup( PY2Id, 'CLAMP_CHECK'), vtMove + Vector3d(0,0,DistZClampToTable), GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( V1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( V1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( V1Id, 'COLLISION'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( V1Id, 'COLLISION'), vtMove, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( PV1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( PV1Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||||
@@ -934,6 +943,8 @@ EgtMove( EgtGetFirstNameInGroup( V2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
|||||||
EgtMove( EgtGetFirstNameInGroup( V2Id, 'COLLISION'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( V2Id, 'COLLISION'), vtMove, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( PV2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( PV2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||||
EgtMove( EgtGetFirstNameInGroup( QV2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
EgtMove( EgtGetFirstNameInGroup( QV2Id, 'SOLID'), vtMove, GDB_RT.GLOB)
|
||||||
|
local vtMoveColl = Vector3d( 0, 0, MaxZ1Blade)
|
||||||
|
EgtMove( EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( BaseId, 'COLLISION'), 'CEIL'), vtMoveColl, GDB_RT.GLOB)
|
||||||
|
|
||||||
-- Assegno identificativi alle spie delle morse
|
-- Assegno identificativi alle spie delle morse
|
||||||
PY1LightId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( Y1Id, 'SOLID') or GDB_ID.NULL, 'Light')
|
PY1LightId = EgtGetFirstNameInGroup( EgtGetFirstNameInGroup( Y1Id, 'SOLID') or GDB_ID.NULL, 'Light')
|
||||||
@@ -954,6 +965,7 @@ function OnSetHead()
|
|||||||
else
|
else
|
||||||
EmtModifyAxisHome( 'X1', ParkTc2X1)
|
EmtModifyAxisHome( 'X1', ParkTc2X1)
|
||||||
end
|
end
|
||||||
|
EmtModifyAxisStroke( 'Z1', {MinZ1, MaxZ1})
|
||||||
if EMC.TOTLEN < LongTool then
|
if EMC.TOTLEN < LongTool then
|
||||||
EmtModifyAxisHome( 'Z1', ParkZ1)
|
EmtModifyAxisHome( 'Z1', ParkZ1)
|
||||||
EmtModifyAxisStroke( 'C1', {MinC1, MaxC1})
|
EmtModifyAxisStroke( 'C1', {MinC1, MaxC1})
|
||||||
@@ -968,13 +980,14 @@ function OnSetHead()
|
|||||||
EmtModifyAxisStroke( 'C1', { ParkLongTc2C1 - 20, ParkLongTc2C1 + 20})
|
EmtModifyAxisStroke( 'C1', { ParkLongTc2C1 - 20, ParkLongTc2C1 + 20})
|
||||||
EmtModifyAxisHome( 'C1', ParkLongTc2C1)
|
EmtModifyAxisHome( 'C1', ParkLongTc2C1)
|
||||||
end
|
end
|
||||||
EmtModifyAxisHome( 'B1', ParkB1)
|
EmtModifyAxisHome( 'B1', ParkLongB1)
|
||||||
end
|
end
|
||||||
EmtModifyAxisDirection( 'B1', X_AX())
|
EmtModifyAxisDirection( 'B1', X_AX())
|
||||||
-- se testa H12 (lama)
|
-- se testa H12 (lama)
|
||||||
elseif EMC.HEAD == 'H12' then
|
elseif EMC.HEAD == 'H12' then
|
||||||
EmtModifyAxisHome( 'X1', ParkX1)
|
EmtModifyAxisHome( 'X1', ParkX1)
|
||||||
EmtModifyAxisHome( 'Z1', ParkZ1)
|
EmtModifyAxisHome( 'Z1', ParkZ1)
|
||||||
|
EmtModifyAxisStroke( 'Z1', {MinZ1, MaxZ1Blade})
|
||||||
EmtModifyAxisStroke( 'C1', {MinC1, MaxC1})
|
EmtModifyAxisStroke( 'C1', {MinC1, MaxC1})
|
||||||
EmtModifyAxisHome( 'C1', ParkC1)
|
EmtModifyAxisHome( 'C1', ParkC1)
|
||||||
EmtModifyAxisHome( 'B1', ParkB1)
|
EmtModifyAxisHome( 'B1', ParkB1)
|
||||||
@@ -988,6 +1001,7 @@ function OnSetHead()
|
|||||||
local CSawPosA = GetCurrChainSawingVirtualAxis()
|
local CSawPosA = GetCurrChainSawingVirtualAxis()
|
||||||
EmtModifyAxisHome( 'X1', ParkCSawX1)
|
EmtModifyAxisHome( 'X1', ParkCSawX1)
|
||||||
EmtModifyAxisHome( 'Z1', GetChainSawZHomeFromVirtualAxis( CSawPosA))
|
EmtModifyAxisHome( 'Z1', GetChainSawZHomeFromVirtualAxis( CSawPosA))
|
||||||
|
EmtModifyAxisStroke( 'Z1', {MinZ1, MaxZ1})
|
||||||
EmtModifyAxisStroke( 'C1', {MinC1, MaxC1})
|
EmtModifyAxisStroke( 'C1', {MinC1, MaxC1})
|
||||||
EmtModifyAxisHome( 'C1', GetChainSawCHomeFromVirtualAxis( CSawPosA))
|
EmtModifyAxisHome( 'C1', GetChainSawCHomeFromVirtualAxis( CSawPosA))
|
||||||
EmtModifyAxisHome( 'B1', ParkCSawB1)
|
EmtModifyAxisHome( 'B1', ParkCSawB1)
|
||||||
@@ -996,12 +1010,18 @@ function OnSetHead()
|
|||||||
elseif EMC.HEAD == 'H16' then
|
elseif EMC.HEAD == 'H16' then
|
||||||
EmtModifyAxisHome( 'X1', ParkTc2X1)
|
EmtModifyAxisHome( 'X1', ParkTc2X1)
|
||||||
EmtModifyAxisHome( 'Z1', ParkZ1)
|
EmtModifyAxisHome( 'Z1', ParkZ1)
|
||||||
|
EmtModifyAxisStroke( 'Z1', {MinZ1, MaxZ1Blade})
|
||||||
EmtModifyAxisStroke( 'C1', {MinC1, MaxC1})
|
EmtModifyAxisStroke( 'C1', {MinC1, MaxC1})
|
||||||
EmtModifyAxisHome( 'C1', ParkC1)
|
EmtModifyAxisHome( 'C1', ParkC1)
|
||||||
EmtModifyAxisHome( 'B1', ParkB1)
|
EmtModifyAxisHome( 'B1', ParkB1)
|
||||||
EmtModifyAxisDirection( 'B1', Vector3d( cos( Saw2C1Offs), sin( Saw2C1Offs), 0))
|
EmtModifyAxisDirection( 'B1', Vector3d( cos( Saw2C1Offs), sin( Saw2C1Offs), 0))
|
||||||
-- se testa H21 (fresa sotto)
|
-- se testa H21 (fresa sotto)
|
||||||
elseif EMC.HEAD == 'H21' then
|
elseif EMC.HEAD == 'H21' then
|
||||||
|
if not EMC.TOTDIAM or EMC.TOTDIAM > 300 then
|
||||||
|
EmtModifyAxisStroke( 'B2', {MinB2b, MaxB2b})
|
||||||
|
else
|
||||||
|
EmtModifyAxisStroke( 'B2', {MinB2, MaxB2})
|
||||||
|
end
|
||||||
EmtModifyAxisHome( 'C2', ParkC2)
|
EmtModifyAxisHome( 'C2', ParkC2)
|
||||||
EmtModifyAxisDirection( 'B2', X_AX())
|
EmtModifyAxisDirection( 'B2', X_AX())
|
||||||
-- se testa H22 (lama su aggregato sotto)
|
-- se testa H22 (lama su aggregato sotto)
|
||||||
@@ -1066,6 +1086,20 @@ function GetHeadSetFromTcPos( sTcPos)
|
|||||||
return 0, 0
|
return 0, 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
-- Funzione che ritorna bool per dire se esiste o meno al testa richiesta
|
||||||
|
function IsHeadExisting( nHeadSet)
|
||||||
|
if nHeadSet == 1 then
|
||||||
|
return H11Id ~= nil
|
||||||
|
elseif nHeadSet == 2 then
|
||||||
|
return H21Id ~= nil
|
||||||
|
elseif nHeadSet == 3 then
|
||||||
|
return H31Id ~= nil
|
||||||
|
else
|
||||||
|
return ''
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- Funzione che ritorna il nome della testa in base alla posizione utensile (ATT: deve rispecchiare il setup)
|
-- Funzione che ritorna il nome della testa in base alla posizione utensile (ATT: deve rispecchiare il setup)
|
||||||
function GetAdjHeadFromTcPos( nHeadSet, sTcPos)
|
function GetAdjHeadFromTcPos( nHeadSet, sTcPos)
|
||||||
@@ -1216,6 +1250,38 @@ function GetCurrChainSawingVirtualAxis()
|
|||||||
return dPosA
|
return dPosA
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
-- Funzione per impostare la posizione del rinvio flottante
|
||||||
|
function SetFloatPos( sHead, dPos)
|
||||||
|
-- recupero Id testa
|
||||||
|
local nHeadId = EgtGetHeadId( sHead)
|
||||||
|
if not nHeadId then return false end
|
||||||
|
-- se ci sono entità flottanti nel ToolHolder
|
||||||
|
local nRefId = EgtGetFirstNameInGroup( nHeadId, '_T1')
|
||||||
|
local vtTool = EgtFR( nRefId, GDB_ID.ROOT):getVersZ()
|
||||||
|
local nObjId = EgtGetFirstGroupInGroup( EgtGetFirstNameInGroup( nHeadId, 'T1'))
|
||||||
|
local FloatEntities = EgtGetInfoInGroup( nObjId, 'Float')
|
||||||
|
if FloatEntities and #FloatEntities > 0 then
|
||||||
|
-- il porta-utensile flottante non può comprimersi più di 10mm
|
||||||
|
if dPos > 10 then
|
||||||
|
local sErr = 'Floating Ring compressed more than 10mm'
|
||||||
|
EmtSetLastError( 1222, sErr)
|
||||||
|
EgtOutLog( 'Error : ' .. sErr, 1)
|
||||||
|
end
|
||||||
|
local dFloat = EgtGetInfo( FloatEntities[1], 'Float', 'd')
|
||||||
|
if abs( dPos - dFloat) > 10 * GEO.EPS_SMALL then
|
||||||
|
local vtMove = ( dPos - dFloat) * vtTool
|
||||||
|
-- sposto tutte le entità flottanti
|
||||||
|
for i = 1, #FloatEntities do
|
||||||
|
EgtMove( FloatEntities[i], vtMove, GDB_RT.GLOB)
|
||||||
|
EgtSetInfo( FloatEntities[i], 'Float', dPos)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- Funzione per resettare tutte le attivazioni della macchina
|
-- Funzione per resettare tutte le attivazioni della macchina
|
||||||
function OnResetMachine()
|
function OnResetMachine()
|
||||||
@@ -1223,6 +1289,9 @@ function OnResetMachine()
|
|||||||
EmtUnlinkAllFixturesFromGroups()
|
EmtUnlinkAllFixturesFromGroups()
|
||||||
SetPY1Light( false)
|
SetPY1Light( false)
|
||||||
SetPY2Light( false)
|
SetPY2Light( false)
|
||||||
|
--resetto eventuale flottante
|
||||||
|
SetFloatPos( 'H11', 0)
|
||||||
|
SetFloatPos( 'H21', 0)
|
||||||
-- nascondo Vmill
|
-- nascondo Vmill
|
||||||
local nRawId = EgtGetFirstRawPart()
|
local nRawId = EgtGetFirstRawPart()
|
||||||
while nRawId do
|
while nRawId do
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
; 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=l,MaxElev,0
|
||||||
|
1=d,OutRaw,0
|
||||||
|
2=l,SideElev,0
|
||||||
|
3=d,TrimExt,0
|
||||||
|
4=s,VtFaceUse,0,0,0
|
||||||
|
5=s,EdgesFaceUse,0
|
||||||
|
|
||||||
|
[Pocketing]
|
||||||
|
0=l,MaxElev,0
|
||||||
|
1=b,Open,0
|
||||||
|
2=d,OpenMinSafe,0
|
||||||
|
3=d,OpenOutRaw,0
|
||||||
|
4=l,MaxOptSize,0
|
||||||
|
5=b,AdjustFeed,1
|
||||||
|
|
||||||
|
[Mortising]
|
||||||
|
0=d,MaxElev,0
|
||||||
|
|
||||||
|
[Chiseling]
|
||||||
|
|
||||||
|
[SawRoughing]
|
||||||
|
|
||||||
|
[SawFinishing]
|
||||||
|
|
||||||
|
[GenMachining]
|
||||||
|
|
||||||
|
[SurfRoughing]
|
||||||
|
0=l,MaxElev,1000
|
||||||
|
1=b,PlaneZ,0
|
||||||
|
|
||||||
|
[SurfFinishing]
|
||||||
|
0=b,SkipMaxDown,1
|
||||||
|
|
||||||
|
[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
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,43 @@
|
|||||||
|
; 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
|
||||||
|
5=dr,TOOL_OVERHANG
|
||||||
|
|
||||||
|
[MILL_NOTIP]
|
||||||
|
0=th,TH,
|
||||||
|
1=d,STEP
|
||||||
|
2=d,SIDESTEP
|
||||||
|
3=d,SIDEDEPTH
|
||||||
|
4=s,DOUBLE
|
||||||
|
5=dr,TOOL_OVERHANG
|
||||||
|
|
||||||
|
[MORTISE_STD]
|
||||||
|
0=b,MORTISE
|
||||||
|
1=d,STEP
|
||||||
|
2=d,SIDESTEP
|
||||||
+230
@@ -1,5 +1,235 @@
|
|||||||
==== Common_PF1250 Update Log ====
|
==== Common_PF1250 Update Log ====
|
||||||
|
|
||||||
|
Versione 3.1e1 (12/05/2026)
|
||||||
|
- (SIM-GEN) Corretta SIM (muoveva Y2 a MaxY2 senza aprire pinza) e GEN (non chiudeva rulliere e dava extracorsa e non generava P7=-85) di pezzi lunghi che necessitano lo scarico manuale. Ticket#2971
|
||||||
|
|
||||||
|
Versione 3.1c1
|
||||||
|
- (SIM-GEN) Corretto calcolo rimanenza durante ParkRoller. Ticket#2832
|
||||||
|
- (SIM) Corretto caricamento geometrie di collisioni. Modificato indice di collisione per una migliore gestione. ATT: MIN_MACH -> 3.1b2
|
||||||
|
- (SIM-GEN) Aggiunta OnSpecialApplyMachining per calcolare i carrelli da subito
|
||||||
|
- Aggiungendo OnSpecialApplyMachining, ora la OnSpecialGetPrevMachiningOffset lavora correttamente. Ticket#2798
|
||||||
|
- (SIM-GEN) Solo se dY1DeltaMaxSP > WorkTab.dY1DeltaMinF lo prende in considerazione per il valore di WorkTab.dY1DeltaMaxF Ticket#2798
|
||||||
|
|
||||||
|
Versione 3.1b1 (17/02/2026)
|
||||||
|
- (GEN) Generazione non allineata a simulazione. Ticket#2819
|
||||||
|
|
||||||
|
Versione 3.1a2 (30/01/2026)
|
||||||
|
- (SIM) Allineato approccio simulazione a generazione in caso di lavorazione in doppio verticale. Ticket#2781
|
||||||
|
- (GEN) Simulazione non allineata a generazione. Mancava reset flag di pezzo a caduta. Ticket#2798
|
||||||
|
|
||||||
|
Versione 3.1a1 (16/01/2026)
|
||||||
|
- (SIM-GEN) Corretto movimento di approccio con sega a catena e allineati Simulazione e Generazione. Ticket#2771
|
||||||
|
|
||||||
|
Versione 2.7l1 (18/12/2025)
|
||||||
|
- (SIM-GEN) Aggiunto controllo post movimenti ausiliari dell' EMC.PREVOFFSX nella funzione OnSpecialGetPrevMachiningOffset() come su ONE-PF. Ticket#2727
|
||||||
|
- (SIM-GEN) Cambiato delta di correzione Z per lama con inclinazione >= 81° da 70 a 60 mm. Risoluzione Ticket#2210
|
||||||
|
- (SIM-GEN) Divisione movimento B in approccio se > 90°.
|
||||||
|
|
||||||
|
Versione 2.7k5 (26/11/2025)
|
||||||
|
- (SIM) Migliorata funzione CheckClamping, ora il controllo di warning si basa sulla somma delle lunghezze delle aree pinzate
|
||||||
|
|
||||||
|
Versione 2.7k4 (25/11/2025)
|
||||||
|
- (SIM) Migliorata funzione CheckClamping, ora la sezione rientra di 3 mm
|
||||||
|
|
||||||
|
Versione 2.7k3 (21/11/2025)
|
||||||
|
- (SIM-GEN) Corretto problema riposizionamento carrelli. Ticket#2704
|
||||||
|
- (SIM) Aggiornata risoluzione VMillTol in funzione dello spessore lama
|
||||||
|
|
||||||
|
Versione 2.7k2 (19/11/2025)
|
||||||
|
- (SIM-GEN) Con testa H38 si va in home quando testa viene comandata a Zmassima. Ticket#2703_b
|
||||||
|
|
||||||
|
Versione 2.7k1 (19/11/2025)
|
||||||
|
- (GEN) Preselzione testa 1 spostata prima della selezione testa 3. Ticket#2513
|
||||||
|
- (SIM-GEN) Corretto calcolo per decidere se serve aprire i rulli
|
||||||
|
- (SIM) Aggiunto controllo Extra-Corsa testa 2 in caso di lavorazione in doppio. Ticket#2201
|
||||||
|
- (SIM) Prima versione controllo pinzaggio su VMILL. Per attivarlo serve modifica della macchina a MLDE e NGE.
|
||||||
|
- (GEN) Simulazione non allineata a generazione. Se testa H38 e si chiudono i rulli, si deve andare in home. Ticket#2703
|
||||||
|
|
||||||
|
Versione 2.7i1 (08/09/2025)
|
||||||
|
- (GEN) Se fase start o restart, si aggiorna la posizione in X dell'asse per calcolare il link corretto. Serve CAM5 2.7h1 (facoltativo)
|
||||||
|
- (EST) La stima tempi considera ora le accelerazoni degli assi
|
||||||
|
- (SIM) Corretto controllo ultimo utensile utilizzato su testa 1, prima si controllava il precedente, ma poteva essere la testa 2
|
||||||
|
- (SIM-GEN) Se testa 3 deve salire a ZMAX, sale alla X dove si trova e non torna in home
|
||||||
|
|
||||||
|
Versione 2.7h2 (21/08/2025)
|
||||||
|
- (GEN) Se la testa rimane bassa, corretto caso di reset del piano generico a fine lavorazione
|
||||||
|
- (GEN) Corretto movimento in Z massima dopo scarico pezzo
|
||||||
|
|
||||||
|
Versione 2.7h1 (20/08/2025)
|
||||||
|
- (GEN) Per posizione T111 e T121, se non è presente asse rotante per presa aggregato (es. se si mette una fresa normale) viene settato a zero.
|
||||||
|
- (MLDE-SIM) Aggiunta variabile FACOLTATIVA 'EstimationRapidMultiplier' in mlde per regolare il tempo stimato di rapido su macchine vecchie. Se non presente default 1.
|
||||||
|
|
||||||
|
Versione 2.7g1 (01/07/2025)
|
||||||
|
- (GEN) Lettura parametri accelerazioni da TS3. Ticket#2052
|
||||||
|
- (SIM-GEN) Aggiunta gestione massima lunghezza scarico
|
||||||
|
|
||||||
|
Versione 2.7d2 (24/04/2025)
|
||||||
|
- (SIM) Modifica qualità VMILL. Da ora si può impostare da impostazioni CAM5
|
||||||
|
|
||||||
|
Versione 2.7d1 (01/04/2025)
|
||||||
|
- (GEN) Aggiunta commenti HEADER e FOOTER per comunicazione con linea o altre macchine, da parte di Essetre.
|
||||||
|
|
||||||
|
Versione 2.7b5 (26/02/2025)
|
||||||
|
- (MLDE-GEN) Gestione lettura feed massima pinze da Ts3.
|
||||||
|
|
||||||
|
Versione 2.7b4 (21/02/2025)
|
||||||
|
- (SIM-GEN) Ripristinato comportamento precedente calcolo posizione dei rulli di pinzaggio fatto con 2.7b2.
|
||||||
|
- (MLDE-SIM) Gestione aggregato flottante. Serve modifica MLDE. Ticket#2297
|
||||||
|
|
||||||
|
Versione 2.7b3 (06/02/2025)
|
||||||
|
- (SIM) Dopo aver scaricato utensile, si setta nota "HIDDEN" per dichiarare utensile non più sulla testa e non considerare le collisioni.
|
||||||
|
|
||||||
|
Versione 2.7b2 (04/02/2025)
|
||||||
|
- (SIM-GEN) Piccola modifica nel calcolo posizione dei rulli di pinzaggio.
|
||||||
|
|
||||||
|
Versione 2.7b1 (03/02/2025)
|
||||||
|
- (SIM) Corretta simulazione che non mandava testa in home in caso di utensile lungo. Generazione era già ok. Ticket#2280
|
||||||
|
|
||||||
|
Versione 2.7a2 (28/01/2025)
|
||||||
|
- (SIM-GEN) In MLSE aggiunta piccola correzione quota Z in caso di direzione Z tra 0.5 e 0.707.
|
||||||
|
|
||||||
|
Versione 2.7a1 (17/01/2025)
|
||||||
|
- (GEN) Piccola correzione posizione X in preselezione utensile
|
||||||
|
- (GEN) Corretto primo punto X preselezione utensile. Ticket#2183 e #2250
|
||||||
|
|
||||||
|
Versione 2.6l7 (19/12/2024)
|
||||||
|
- (SIM) HOTFIX : corretto posizione Z zero alla selezione dell'utensile in caso di motosega. Ticket#2235
|
||||||
|
|
||||||
|
Versione 2.6l6 (18/12/2024)
|
||||||
|
- (MLDE-SIM-GEN) Aggiunta variabile 'SafeX2RotAxis' in sostituzione della 'ParkMchY2' che era usata impropriamente
|
||||||
|
|
||||||
|
Versione 2.6l5 (17/12/2024)
|
||||||
|
- (SIM) Corretta posizione iniziale testa 2. Ticket#2228
|
||||||
|
|
||||||
|
Versione 2.6l4 (16/12/2024)
|
||||||
|
- (SIM-GEN) In MLSE ripristinati vecchi valori indici calcolo Z massima. In alcuni casi peggioravano la situazione.
|
||||||
|
|
||||||
|
Versione 2.6l3 (16/12/2024)
|
||||||
|
- (SIM) Corretto scarico utensile se aggregato. Se non presente utensile di default, non seleziona nulla.
|
||||||
|
- (SIM-GEN) In MLSE ritoccati indici calcolo Z massima. Ticket#2210
|
||||||
|
|
||||||
|
Versione 2.6l2 (13/12/2024)
|
||||||
|
- (SIM) Corretta chiamata calcolo asse virtuale
|
||||||
|
|
||||||
|
Versione 2.6l1 (13/12/2024)
|
||||||
|
- (SIM) Gestione caricamento utensili in caso di testa con uscita multipla.
|
||||||
|
- (SIM) Corretto errore di collisione per errata simulazione cambio utensile da lama a motosega.
|
||||||
|
- (SIM-GEN) Corretta gestione in caso di prima lavorazione con motosega.
|
||||||
|
- (GEN) Non si fa preselezione della testa 3
|
||||||
|
- (GEN) Corretta emissione coordinata rotazione testa 3 in zona sicura
|
||||||
|
- (SIM-GEN) A fine barra, testa 3 sempre in home
|
||||||
|
- (GEN) Controllo esistenza terzo asse ausiliario
|
||||||
|
- (GEN) Corretto primo movimento in X quando si parte con testa 3. Ticket#2216
|
||||||
|
- (GEN) Se su testa 1 c'è un aggregato e si utilizzerà la testa 3, si scarica aggregato e si prende utensile di default. Ticket#2222
|
||||||
|
- (GEN) Durante utilizzo della testa 3, non si preselezionano altre teste. Ticket#2220
|
||||||
|
- (SIM-GEN) Se lavorazione con testa dedicata lama e su testa 1 c'era aggregato, viene scaricato. Ticket#2216
|
||||||
|
|
||||||
|
Versione 2.6k3 (26/11/2024)
|
||||||
|
- (GEN) Corretta modifica fatta in versione 2.6k2. Ticket#2183
|
||||||
|
|
||||||
|
Versione 2.6k2 (25/11/2024)
|
||||||
|
- (GEN) Se si preseleziona su testa 1 un utensile lungo, non si va alla X successiva di lavoro ma si resta in home. Infatti potrebbe toccare le paratie in caso di scambio pezzo. Ticket#2183
|
||||||
|
|
||||||
|
Versione 2.6k1 (04/11/2024)
|
||||||
|
- (SIM-GEN) Gestione terza testa 5 assi dedicata lama (H38)
|
||||||
|
|
||||||
|
Versione 2.6j3 (25/10/2024)
|
||||||
|
- (GEN) Piccola correzione per capire se testa 3 presente
|
||||||
|
- (SIM-GEN) In caso di lavorazione successiva alla prima, rivisto primo posizionamento alla quota Z di lavoro se precedentemente spostati a quota rotazione assi rotanti.
|
||||||
|
|
||||||
|
Versione 2.6j2 (23/10/2024)
|
||||||
|
- (MLDE-SIM) Aggiunto parametro ParkTc1X1 in MLDE per simulazione quota parcheggio Testa 1 su TC1.
|
||||||
|
- (SIM-GEN) Per movimento a ZMAX si considera utensile attuale o precedente
|
||||||
|
- (SIM-GEN) Prima versione con gestione testa 3 dedicata lama
|
||||||
|
|
||||||
|
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)
|
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
|
- (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) Modifica controlli a preselezione utensile. Margine ridotto da 400m a 200mm.
|
||||||
|
|||||||
+2
-2
@@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
local InfoCommon_STD_PP = {
|
local InfoCommon_STD_PP = {
|
||||||
NAME = 'Common_PF1250', -- nome script PP standard
|
NAME = 'Common_PF1250', -- nome script PP standard
|
||||||
VERSION = '2.6c4', -- versione script
|
VERSION = '3.1e1', -- versione script
|
||||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
MIN_MACH_VER_PP_COMMON = '3.1b2' -- versione minima kernel
|
||||||
}
|
}
|
||||||
|
|
||||||
return InfoCommon_STD_PP
|
return InfoCommon_STD_PP
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[WALL]
|
||||||
|
Kerf=10
|
||||||
|
Offset=25
|
||||||
Reference in New Issue
Block a user