26 Commits

Author SHA1 Message Date
andrea.villa 6f59081ecb Merge branch 'main' into develop 2025-09-24 11:59:51 +02:00
andrea.villa aab05a8610 Merge remote-tracking branch 'origin/main' into develop 2025-09-24 11:58:33 +02:00
luca.mazzoleni dbd8e588c7 - in mlde modificata posizione home sega a catena 2025-08-07 10:25:18 +02:00
andrea.villa 590e6cffb9 Merge branch 'main' of https://gitlab.steamware.net/egalware-machines/essetre/essetre-90580012 2025-03-07 10:31:09 +01:00
andrea.villa eda1e55e87 - Aggiornamento ToolHolder con macchina cliente
- Corretta direzione motosega
2025-03-07 10:30:33 +01:00
luca.mazzoleni 932e4efc60 - in mlde corretto numero versione 2025-01-20 15:55:58 +01:00
andrea.villa 67ac2fd53b - Aggiunta gestione squadratura
- Nuova funzione RemoveScraps
2025-01-16 15:50:23 +01:00
luca.mazzoleni e7230c6234 - in WallData aggiunto CUT_VZ_MIN = -0.866 2024-11-28 18:32:31 +01:00
luca.mazzoleni 9a1d17f926 - In WallData aggiunto parametro MIN_Z_SAW 2024-11-28 18:09:09 +01:00
andrea.villa c52ca62da9 Modificato controllo collisione tavola. Ora permessi 10mm 2024-10-04 11:30:16 +02:00
luca.mazzoleni 8d0c623775 update gitignore e YAML 2024-09-25 13:04:13 +02:00
luca.mazzoleni dea5a74124 update gitignore e YAML 2024-09-24 14:43:49 +02:00
luca.mazzoleni aceb0ae605 - aggiunto YAML per compilazione e comunicazione versioni a LiMan
- in mlde aggiunta PP_NVER, versione in formato numerico
- tutte le chiamate a EgtGetSourceDir() sostituite con EgtGetCurrMachineDir()
2024-09-23 12:40:02 +02:00
andrea.villa fd39ae71b5 Tolto debug 2024-02-15 09:27:51 +01:00
andrea.villa 9e785751f0 - Cambiato id motosega EU101->104 (Prima era EU41)
- Corretta posizione parcheggio in base al nuovo lato di carico
2024-02-15 09:24:08 +01:00
luca.mazzoleni a5f5fd08f0 aggiornato parametro TAB_EXTRA_XP in WallData 2024-02-12 17:44:13 +01:00
andrea.villa a268623d2a Merge branch 'develop' 2024-02-12 09:03:37 +01:00
andrea.villa 84ab70721e - Sistemazione estremi assi Y
- Aumentato interasse tra le tavole quando accoppiate
2024-02-12 09:03:06 +01:00
luca.mazzoleni 0e4032afe0 Merge branch 'main' into develop 2024-02-09 11:27:22 +01:00
luca.mazzoleni 187771b31a Merge branch 'develop' 2024-02-09 11:26:47 +01:00
luca.mazzoleni 93a22aad8b - corretta versione 2024-02-09 11:24:19 +01:00
andrea.villa a6342df47f - Forzato posizionamento pezzo sempre in origine 1
- Aggiunto magazzino per trucioaltore 600x20mm
- Tavole azzerate a X negativo (per Essetre Y positivo)
2024-02-09 10:47:29 +01:00
andrea.villa c3bbee0acc Modello macchina con nuovo magazzino 2024-02-08 10:49:18 +01:00
luca.mazzoleni 9643aa5cae Merge branch 'main' into develop 2024-02-05 16:28:47 +01:00
luca.mazzoleni 47ff743061 Merge branch 'develop' 2024-02-05 16:28:28 +01:00
luca.mazzoleni ac3178aa44 - update gitignore
- eliminato readme
2024-02-05 16:27:49 +01:00
15 changed files with 592 additions and 221 deletions
+318
View File
@@ -0,0 +1,318 @@
variables:
VERS_MAIN: '1.0'
MACH_NAME: ''
MACH_NAME_TEST: ''
MANUFACTURER: ''
NEW_REL: ''
NET_SHARE_X: '\\10.74.82.201\EgwTech'
NET_SHARE_Z: '\\10.74.82.201\Artifacts'
NET_SHARE_S: '\\10.74.82.201\Scambio'
NET_SHARE_R: '\\10.74.82.201\EgwTech'
NET_SHARE_H: '\\10.74.82.252\team drives'
NET_USERQ: 'steamw\egalware'
NET_USER_SERVICES: 'steamw\services'
MACH_VERS: '0.0.0.0'
TEMP_PATH: 'C:\MachinesDeploy'
MACHINES_PATH_R: 'R:\EgtData\Machines_GIT'
DEST_MACHINES_PATH_H: 'H:'
SRC_PATH: ''
BASE_PATH: ''
TEST_PATH: ''
URL_VERSIONS_LOG: "https://liman.egalware.com/ELM.API/api/release/save"
MACH_VERS_NUM: '0.0.0.0'
CRITICAL_STRING: "#critical#"
TOOLS_MACHINE_PATH: ""
#Note compilazione LUA:
# lua54 -o bin\$FileName -s $FileName: -o = output, -s = NON include i debug symbols
# helper copia script verso cartella di rete S:\ delle cartelle bin
.ReplicaS: &ReplicaS
- |
net use S: /delete
SLEEP 2
net use S: $env:NET_SHARE_S /u:$env:NET_USERQ $SDRIVE_PASSWD
ROBOCOPY /MIR $env:BASE_PATH S:\LucaM\MachinesDeploy\$env:MACH_NAME\$env:MACH_VERS\ /XD "bin" /XD "$env:MACH_NAME_TEST"
SLEEP 2
net use S: /delete
# helper copia script verso cartella di rete R:\
.ReplicaR: &ReplicaR
- |
net use R: /delete
SLEEP 2
net use R: $env:NET_SHARE_R /u:$env:NET_USERQ $ZDRIVE_PASSWD
echo "-----------------------"
echo " Copia macchina su R"
echo "-----------------------"
$customerPathR = $env:MACHINES_PATH_R + "\" + $env:MANUFACTURER
ROBOCOPY /MIR "$env:SRC_PATH" "$customerPathR\$env:MACH_NAME\" /XD "bin"
ROBOCOPY "$env:TEST_PATH" "$customerPathR\_TestMachines\$env:MACH_NAME_TEST\" /E /XD "bin"
ROBOCOPY /MIR "$env:BASE_PATH" "$customerPathR\_Deploy\$env:MACH_NAME\$env:MACH_VERS\" /XD "bin" /XD "$env:MACH_NAME_TEST"
SLEEP 2
net use R: /delete
# helper copia script verso drive condiviso
.ReplicaStor01: &ReplicaStor01
- |
net use H: /delete
SLEEP 2
net use H: $env:NET_SHARE_H /u:$env:NET_USER_SERVICES $SRVCS_PASSWD
echo "-----------------------"
echo " Copia macchina su stor01"
echo "-----------------------"
SLEEP 2
$customerPathH = $env:DEST_MACHINES_PATH_H + "\" + $env:MANUFACTURER + "\test"
$destinationPath = "$customerPathH\$env:MACH_NAME" + "\"
ROBOCOPY "$env:BASE_PATH" "$destinationPath\" *.zip
SLEEP 2
net use H: /delete
# helper copia script verso cartella di rete R:\ per develop
.ReplicaR_DEV: &ReplicaR_DEV
- |
net use R: /delete
SLEEP 2
net use R: $env:NET_SHARE_R /u:$env:NET_USERQ $ZDRIVE_PASSWD
echo "-----------------------"
echo " Copia macchina su R - DEV"
echo "-----------------------"
$customerPathR = $env:MACHINES_PATH_R + "\" + $env:MANUFACTURER
ROBOCOPY /MIR "$env:BASE_PATH" "$customerPathR\_Deploy\$env:MACH_NAME\_DEV\$env:MACH_VERS\" /XD "bin" /XD "$env:MACH_NAME_TEST"
SLEEP 2
net use R: /delete
#helper copia sorgenti da R a percorso temporaneo
.CreateBaseFolder: &CreateBaseFolder
- |
net use R: /delete
SLEEP 2
net use R: $env:NET_SHARE_R /u:$env:NET_USERQ $ZDRIVE_PASSWD
echo "-----------------------"
echo " Recupero file non git da R e copia su macchina virtuale"
echo "-----------------------"
# test se la cartella con gli utensili esiste per questa macchina
if (!(Test-Path -Path $env:TOOLS_MACHINE_PATH)) {
echo "-----------------------"
echo "CANNOT FIND TOOLS FOR THIS MACHINE!!"
echo "-----------------------"
Exit 1}
ROBOCOPY "$env:TOOLS_MACHINE_PATH" "$env:SRC_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
ROBOCOPY "$env:TOOLS_MACHINE_PATH" "$env:TEST_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
ROBOCOPY "$env:TOOLS_MACHINE_PATH" "$env:SRC_PATH\bin\$env:MACH_NAME\" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
SLEEP 2
net use R: /delete
# helper compilazione LUA a 32 e 64 bit
.LuaCompile: &LuaCompile
- |
Set-Alias lua54 C:\Tools\Lua32\luac54
echo "-----------------------"
echo " Copia file su macchina virtuale"
echo "-----------------------"
ROBOCOPY . "$env:SRC_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
ROBOCOPY . "$env:TEST_PATH" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
Rename-Item -Path "$env:TEST_PATH\$env:MACH_NAME.mlde" -NewName "$env:MACH_NAME_TEST.mlde"
Rename-Item -Path "$env:TEST_PATH\$env:MACH_NAME.ini" -NewName "$env:MACH_NAME_TEST.ini"
ROBOCOPY . "$env:SRC_PATH\bin\$env:MACH_NAME\" /E /XF "*.bat" /XF "*.yml" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt" /XD ".vscode"
echo "-----------------------"
echo " Compilazione file *.lua 32/64bit"
echo "-----------------------"
$FileList = Get-ChildItem * -Include( "*.mlpe", "*.mlse")
ForEach ($File in $FileList) {
$FileName = Split-Path $File -leaf
lua54 -o $env:SRC_PATH\bin\$env:MACH_NAME\$FileName -s $FileName
echo "lua54 -o bin\$FileName -s $FileName"
}
# helper recupero nome macchina e costruttore
.machName-fix: &machName-fix
- |
echo "-----------------------"
echo " Recupero nome macchina e costruttore"
echo "-----------------------"
$fileName = dir *.mlde
$env:MACH_NAME = $fileName.BaseName
$env:MACH_NAME_TEST = $env:MACH_NAME + ".TEST"
$comp = $fileName.BaseName -split "-"
$env:MANUFACTURER = $comp[0]
Write-Output $env:MANUFACTURER
# helper calcolo versione
.version-fix: &version-fix
- |
echo "-----------------------"
echo " Calcolo versione"
echo "-----------------------"
# calcolo versione formato stringa
$fPath = "$env:MACH_NAME.mlde";
$vLine = Select-String -path $fPath -Pattern '^PP_VER';
$comp = $vLine -split "=";
$env:MACH_VERS = $comp[1].Replace("'","").Trim()
# display versione formato stringa
Write-Output $env:MACH_VERS
# calcolo versione formato numerico
$fPath = "$env:MACH_NAME.mlde";
$vLine = Select-String -path $fPath -Pattern '^PP_NVER';
$comp = $vLine -split "=";
$env:MACH_VERS_NUM = $comp[1].Replace("'","").Trim()
# display versione formato numerico
Write-Output $env:MACH_VERS_NUM
# helper calcolo versione se develop
.version-fix_DEV: &version-fix_DEV
- |
echo "-----------------------"
echo " Calcolo versione - DEV"
echo "-----------------------"
$commitAuthor = $CI_COMMIT_AUTHOR -split " "
$commitAuthor = $commitAuthor[0].Trim()
$env:MACH_VERS = $commitAuthor
# display versione
Write-Output $env:MACH_VERS
# helper creazione folders
.folder-fix: &folder-fix
- |
echo "-----------------------"
echo " Creazione cartelle su macchina virtuale"
echo "-----------------------"
$env:TOOLS_MACHINE_PATH = "$env:MACHINES_PATH_R\$env:MANUFACTURER\_DefaultMachineSetup\$env:MACH_NAME"
Write-Output $env:TOOLS_MACHINE_PATH
$env:SRC_PATH = "$env:TEMP_PATH\$env:MACH_NAME\$env:MACH_VERS\$env:MACH_NAME";
$env:BASE_PATH = "$env:TEMP_PATH\$env:MACH_NAME\$env:MACH_VERS";
$env:TEST_PATH = "$env:TEMP_PATH\$env:MACH_NAME\$env:MACH_VERS\$env:MACH_NAME_TEST";
Write-Output $env:BASE_PATH;
if (Test-Path $env:BASE_PATH) { Remove-Item -Path "$env:BASE_PATH\*" -R -Force };
Write-Output $env:TEST_PATH;
# helper compressione e pulizia folders
.ZipClean: &ZipClean
- |
" Compressione file su macchina virtuale"
$7zipPath = $env:ProgramFiles+"\7-Zip\7z.exe";
if (-not (Test-Path -Path $7zipPath -PathType Leaf)) {
throw "7 zip file '$7zipPath' not found"
}
Set-Alias 7zip $7zipPath
$Target = "$env:BASE_PATH\$env:MACH_NAME.zip"
cd "$env:SRC_PATH\bin\"
$Source = "*"
7zip a -tzip $Target $Source
Write-Output "called ZIP $Source --> $Target"
# helper invio notifica a log versioni online (LiMan)
.SendToVersionsLog: &SendToVersionsLog
- |
echo "-----------------------"
echo " Invio versione a log online"
echo "-----------------------"
$tags = ""
$date = ""
# se critico scrive tag
if ( $CI_COMMIT_MESSAGE | Select-String -Pattern $env:CRITICAL_STRING) {
$tags = "CRITICAL"
$date = (Get-Date).AddDays(1).toString("yyyy-MM-ddTHH:mm:ss.fffZ")
}
else
{
$date = (Get-Date).AddDays(3).toString("yyyy-MM-ddTHH:mm:ss.fffZ")
}
$body =
@{
codInst = "EgalWare"
codApp = $env:MACH_NAME
uplAppId = "UpdateManager"
masterKey = $LiMan_Key
tipo = "Machine"
versNum = $env:MACH_VERS_NUM
versText = $env:MACH_VERS
releaseDate = $date
relTags = $tags
}
$jsonBody = ConvertTo-Json -InputObject $body
echo $jsonBody
Invoke-WebRequest -Method Post -URI $env:URL_VERSIONS_LOG -ContentType "application/json" -Body $jsonBody -UseBasicParsing
# helper esecuzione test
.RunTest: &RunTest
- |
Write-Output "Test done!"
stages:
- build
# - test
# - deploy
LuaCompile:build:
stage: build
only:
- main
- master
tags:
- win
before_script:
- *machName-fix
- *version-fix
- *folder-fix
script:
- *CreateBaseFolder
- *LuaCompile
- *ZipClean
- *ReplicaR
- *ReplicaStor01
- *SendToVersionsLog
LuaCompileDev:build:
stage: build
only:
- develop
tags:
- win
before_script:
- *machName-fix
- *version-fix_DEV
- *folder-fix
script:
- *CreateBaseFolder
- *LuaCompile
- *ZipClean
- *ReplicaR_DEV
# LuaCompile:test:
# stage: test
# needs: ["LuaCompile:build"]
# only:
# - main
# - master
# - develop
# tags:
# - win
# before_script:
# - *version-fix
# - *folder-fix
# script:
# - *LuaCompile
# - *RunTest
# LuaCompile:deploy:
# stage: deploy
# needs: ["LuaCompile:test"]
# only:
# - main
# - master
# tags:
# - win
# before_script:
# - *version-fix
# - *folder-fix
# script:
# - *LuaCompile
# - *ZipClean
# - *ReplicaR
+38 -18
View File
@@ -1,4 +1,4 @@
-- Descrizione macchina Essetre-90580012 by EgalTech s.r.l. 2023/09/20
-- Descrizione macchina Essetre-90580012 by EgalTech s.r.l. 2024/09/23
-- Macchina Progress (parte Wall).
-- 2023/09/01 DS ver 2.5i1 Primo rilascio partendo da 90580017.
-- 2023/09/05 DS ver 2.5i2 Sistemazioni varie. Sottratto circa 30 da G1xx.
@@ -6,18 +6,28 @@
-- 2023/09/18 DS ver 2.5i4 Aggiunta gestione due tavole accoppiate.
-- 2023/09/20 DS ver 2.5i5 Grezzi larghi fino a 3520. Rifatta lavorazione lama in DB per eliminare problema ultimo step.
-- 2023/09/20 DS ver 2.5i6 Corretta gestione posizione seconda tavola. Corretto spostamento solidi collisione testa lama.
-- 2024/02/09 AV ver 2.6b1 Forzato posizionamento pezzo sempre in origine 1
-- Aggiunto magazzino per trucioaltore 600x20mm
-- Tavole azzerate a X negativo (per Essetre Y positivo)
-- 2024/02/10 DS ver 2.6b2 Sistemazione estremi assi Y.
-- Aumentato interasse tra le tavole quando accoppiate
-- 2024/02/15 AV ver 2.6b3 Cambiato id motosega EU101->104 (Prima era EU41)
-- Corretta posizione parcheggio in base al nuovo lato di carico
-- 2024/10/04 AV ver 2.6j1 Modificato controllo collisione tavola. Ora permessi 10mm
-- 2024/11/28 LM ver 2.6k1 In WallData aggiunto parametri MIN_Z_SAW e CUT_VZ_MIN
require( 'EmtGenerator')
EgtEnableDebug( false)
PP_VER = '2.5i6'
PP_VER = '2.7h1'
PP_NVER = '2.7.8.1'
-- Parametri macchina
NumericalControl = 'NUM' -- NUM o TPA
MinY = 0.0
MaxY = 25500.0
MinY2 = 10000.0
MaxY2 = 35500.0
MinY = 10000.0
MaxY = 35500.0
MinY2 = 0.0
MaxY2 = 25500.0
MinX1 = -5440.0
MaxX1 = -690.0
MinZ1 = -1345.0
@@ -30,7 +40,7 @@ MaxC1 = 275.0
MillOffs = 170.0
ChSawLen = 91.0
ParkChSawX1 = ( MinX1 + MaxX1) / 2
ParkChSawZ1 = -250
ParkChSawZ1 = -400 -- OLD: -250
ParkChSawC1 = 90
MinX2 = -4750.0
MaxX2 = 0.0
@@ -46,21 +56,21 @@ SawDeltaZ = -253.0
SawOffs = 154.0
DimTabX = 10000.0
DimTabY = 3500.0
DeltaTabX = 12034.96
DeltaTabX = 12207.5
DeltaTabY = -4789.3
DeltaTabZ = -1150.0
DimTab2X = 10000.0
DimTab2Y = 3500.0
DeltaTab2X = 12034.96
DeltaTab2X = 12207.5
DeltaTab2Y = -4789.3
DeltaTab2Z = -1150.0
GantryTabs = 11000.0
OffsetTabs = 50
OffsetTabs = 332
CoeffVM = 0.75
-- Aggiornamento con dati da TechnoEssetre7
local sTs3Data = EgtGetStringFromIni( 'Wall', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-90580012.data"
local sData = EgtGetSourceDir().."\\Wall\\Ts3Data.lua"
local sData = EgtGetCurrMachineDir().."\\Wall\\Ts3Data.lua"
if EgtExistsFile( sTs3Data) then
EgtCopyFile( sTs3Data, sData)
local sTs3DataOld = sTs3Data..'.old'
@@ -75,6 +85,8 @@ if EgtExistsFile( sData) then
NumericalControl = EgtIf( MchOffs.TIPO_CN ~= 1, 'NUM', 'TPA')
if MchOffs.MAX_Y then MinY = -MchOffs.MAX_Y end
if MchOffs.MIN_Y then MaxY = -MchOffs.MIN_Y end
if MchOffs.MAX_Y2 then MinY2 = -MchOffs.MAX_Y2 end
if MchOffs.MIN_Y2 then MaxY2 = -MchOffs.MIN_Y2 end
MinX1 = MchOffs.MIN_X or MinX1
MaxX1 = MchOffs.MAX_X or MaxX1
MinZ1 = MchOffs.MIN_Z or MinZ1
@@ -121,8 +133,8 @@ EmtGeneral {
local BaseId = EmtBase {
Name = 'Base',
Geo='BASE/GEO',
Aux={'BASE/TRAVERSA', 'BASE/SUBTABLE', 'BASE/COLLISION', 'BASE/TC', 'BASE/TCR'}}
local vtMove = Vector3d( DeltaTabX - 12034.96, DeltaTabY + 4789.3, DeltaTabZ + 1150)
Aux={'BASE/TRAVERSA', 'BASE/SUBTABLE', 'BASE/COLLISION', 'BASE/TC', 'BASE/TCR', 'BASE/TCR2'}}
local vtMove = Vector3d( DeltaTabX - 12207.5, DeltaTabY + 4789.3, DeltaTabZ + 1150)
EgtMove( EgtGetFirstNameInGroup( BaseId, 'SUBTABLE'), vtMove, GDB_RT.GLOB)
-- Tavola 1
local YId = EmtAxis {
@@ -133,7 +145,7 @@ local YId = EmtAxis {
Dir = -X_AX(),
Pos = Point3d( 0, 0, 0),
Stroke = {MinY, MaxY},
Home = MinY,
Home = MaxY,
Geo = 'Y_AXIS/GEO',
Aux = {'Y_AXIS/SOLID'}}
EgtMove( YId, vtMove, GDB_RT.GLOB)
@@ -153,7 +165,7 @@ local Y2Id = EmtAxis {
Dir = -X_AX(),
Pos = Point3d( 0, 0, 0),
Stroke = {MinY2, MaxY2},
Home = MaxY2,
Home = MinY2,
Geo = 'Y2_AXIS/GEO',
Aux = {'Y2_AXIS/SOLID'}}
EgtMove( Y2Id, vtMove, GDB_RT.GLOB)
@@ -221,6 +233,7 @@ EmtHead {
OthColl = {'B1/SOLID', 'C1/SOLID'},
Geo = 'H1_HEAD/GEO'}
-- Sega a catena
-- attenzione: gestita solo la home per la posizione 104, unica abilitata. Se si aggiungono altre posizioni, la home sarà da modificare nella OnSetHead
EmtAxis {
Name = 'A1',
Parent = 'B1',
@@ -229,7 +242,7 @@ EmtAxis {
Dir = Z_AX(),
Pos = Point3d( 0, 0, 0),
Stroke = { -90, 180},
Home = 0,
Home = 90,
Geo = 'A1_AXIS/GEO'}
local H3Id = EmtHead {
Name = 'H3',
@@ -237,7 +250,7 @@ local H3Id = EmtHead {
HSet = 'H1',
Type = MCH_HT.STD,
Pos = Point3d( 0, 0, -ChSawLen),
TDir = -Y_AX(),
TDir = X_AX(),
ADir = Z_AX(),
Rot1W = 0.1,
SolCh = MCH_SCC.ADIR_NEAR,
@@ -379,7 +392,14 @@ EmtTcPos {
TDir = X_AX(),
ADir = Z_AX(),
Geo = 'BASE/T101'}
local ptTCR2 = Point3d( -901.3,-4392.7,-79)
EmtTcPos {
Name = 'T201',
Parent = 'Base',
Pos = ptTCR2,
TDir = Z_AX(),
ADir = X_AX(),
Geo = 'BASE/T201'}
---------------------------------------------------------------------
-- Funzioni richiamate per modificare i dati macchina in casi particolari
--function OnSetTable()
Binary file not shown.
+25 -19
View File
@@ -9,16 +9,16 @@ local TEST_USE = false
-- *** GENERATION ***
---------------------------------------------------------------------
function OnStart()
EMT.USETO1 = false -- abilitazione uso origine tavola
EMT.MODAL = true -- abilitazione emissione modale
EMT.INCHES = false -- unità di misura mm/inches
EMT.NUM = false -- abilitazione numerazione linee
EMT.USETO1 = false -- abilitazione uso origine tavola
EMT.MODAL = true -- abilitazione emissione modale
EMT.INCHES = false -- unità di misura mm/inches
EMT.NUM = false -- abilitazione numerazione linee
--EMT.Nt = 'N' -- token per la numerazione di linea
--EMT.LINENBR = 0 -- numero di linea
--EMT.LINEINC = 1 -- incremento numerazione linee
--EMT.Ft = 'F' -- token per feed
--EMT.St = 'S' -- token per speed
EMT.FMAXPINZE = 154000 -- feed massima pinze
EMT.FMAXPINZE = 154000 -- feed massima pinze
end
---------------------------------------------------------------------
@@ -32,8 +32,8 @@ function OnProgramStart()
-- Flag
local BtlInfoId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'BtlInfo') or GDB_ID.NULL
EMT.LOAD90 = EgtGetInfo( BtlInfoId, 'LOAD90', 'i') or 0
-- Imposto uso origine 3
EMT.ORIG = 3
-- Imposto uso origine 1
EMT.ORIG = 1
-- Intestazioni
if not TEST_USE then
EMT.PRODID = EgtGetInfo( BtlInfoId, 'PRODID', 'i') or 0
@@ -181,6 +181,7 @@ function OnMachiningStart()
--EMT.MCHLIBNAME = EgtGetMachiningParam( MCH_MP.NAME)
EMT.MCHNAME = EgtGetOperationName( EMT.MCHID)
EMT.MCHTYPE = EgtGetMachiningParam(MCH_MP.TYPE)
EMT.MCHUSERNOTES = EgtGetMachiningParam( MCH_MP.USERNOTES)
-- non ancora iniziata la lavorazione
EMT.MCHFIRST = true
-- primo posizionamento sempre in globale
@@ -219,10 +220,13 @@ function OnRapid()
-- se prima lavorazione sui fianchi con sega a catena
if EMT.CSAWFIRST and string.sub( EMT.MCHNAME, 1, 5) == 'Csaw_' then
EMT.CSAWFIRST = false
-- pausa per rimozione sfridi
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
local ParkY = min( -( b3Raw:getMin():getX() - 2000), -MinY)
EmtOutput( 'G104 Y' .. EmtLenToString( ParkY, 3) .. ' ET1' .. GetEF())
-- eventuale pausa per rimozione sfridi
if EMT.SCRAPFIRST then
EMT.SCRAPFIRST = false
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
local ParkY = max( -( MaxY + b3Raw:getMin():getX() + b3Raw:getDimX() + 3000), -MaxY)
EmtOutput( 'G104 Y' .. EmtLenToString( ParkY, 3) .. ' ET1' .. GetEF())
end
-- pre-posizionamento
EmitCount()
EmtResetPrev()
@@ -240,11 +244,13 @@ function OnRapid()
end
-- altrimenti verifico se necessaria pausa
else
if EMT.SCRAPFIRST and EgtExistsInfo( EMT.MCHID, 'MOVE_AFTER') then
EMT.SCRAPFIRST = false
local bSystemSR = ( EMT.SCRAPFIRST and EgtExistsInfo( EMT.MCHID, 'MOVE_AFTER'))
local bUserSR = ( EgtGetValInNotes( EMT.MCHUSERNOTES, 'ScrapRemove', 'i') == 1)
if bSystemSR or bUserSR then
if bSystemSR then EMT.SCRAPFIRST = false end
-- pausa per rimozione sfridi
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
local ParkY = min( -( b3Raw:getMin():getX() - 2000), -MinY)
local ParkY = max( -( MaxY + b3Raw:getMin():getX() + b3Raw:getDimX() + 3000), -MaxY)
EmtOutput( 'G104 Y' .. EmtLenToString( ParkY, 3) .. ' ET1' .. GetEF())
end
end
@@ -492,7 +498,7 @@ end
---------------------------------------------------------------------
function CalcInterpPlane()
-- origine del piano
local xS = EMT.START[1]
local xS = EMT.START[1] + EgtGetAxisHomePos( 'Y')
local yS = EMT.START[2]
local zS = DeltaTabZ
local ptS = Point3d( xS, yS, zS)
@@ -555,10 +561,10 @@ function GetEU()
elseif EMT.HEAD == 'H2' then
sEU = ' EU0'
elseif EMT.HEAD == 'H3' then
if abs( EMT.R3 - 0) < 0.1 then
sEU = ' EU41'
elseif abs( EMT.R3 - 90) < 0.1 then
sEU = ' EU40'
--if abs( EMT.R3 - 0) < 0.1 then
-- sEU = ' EU101'
if abs( EMT.R3 - 90) < 0.1 then
sEU = ' EU104'
else
EmtSetLastError( 1210, 'Chain saw orientation not allowed')
end
+187 -80
View File
@@ -9,9 +9,9 @@ EgtEnableDebug( false)
---------------------------------------------------------------------
-- *** GENERATION ***
---------------------------------------------------------------------
local sBaseDir = EgtGetSourceDir()
local sBaseDir = EgtGetCurrMachineDir()
if NumericalControl == 'NUM' then
dofile( sBaseDir .. 'Essetre-WALL.NUM.mlpe')
dofile( sBaseDir .. '\\Essetre-WALL.NUM.mlpe')
elseif NumericalControl == 'TPA' then
error( 'Numerical Control error : TPA not yet managed')
--dofile( sBaseDir .. 'Essetre-WALL.TPA.mlpe')
@@ -69,7 +69,8 @@ function OnSimulStart()
{ Grp = 'Base', Sub = 'COLLISION', Name = 'COL1'},
{ Grp = 'Base', Sub = 'COLLISION', Name = 'COL2'},
{ Grp = 'Base', Sub = 'COLLISION', Name = 'TC'},
{ Grp = 'Base', Sub = 'COLLISION', Name = 'CSAW'}}
{ Grp = 'Base', Sub = 'COLLISION', Name = 'CSAW'},
{ Grp = 'Base', Sub = 'COLLISION', Name = 'TRUC'}}
EgtOutLog( 'MCODET Objects :', 4)
local nMcdNullCnt = 0
for i = 1, #McdData do
@@ -131,7 +132,7 @@ function OnSimulDispositionStart()
EMT.TAB2 = nil
if EMT.LB > GantryTabs then
EMT.TAB2 = true
EgtSetAxisPos( 'Y2', EgtGetAxisPos( 'Y') + DimTabX + OffsetTabs)
EgtSetAxisPos( 'Y2', EgtGetAxisPos( 'Y') - DimTabX - OffsetTabs)
end
-- Carico primo utensile sulla testa 1
local sTool = FindFirstToolOnHead( 'H1')
@@ -322,6 +323,7 @@ function OnSimulMachiningStart()
EMT.MCHNAME = EgtGetOperationName( EMT.MCHID)
EMT.MCHTYPE = EgtGetMachiningParam( MCH_MP.TYPE)
local sNotes = EgtGetMachiningParam( MCH_MP.USERNOTES)
EMT.MCHUSERNOTES = EgtGetMachiningParam( MCH_MP.USERNOTES)
EMT.VMRS = false
-- recupero CUTID e TASKID della feature lavorata
local vId = EgtGetMachiningGeometry()
@@ -334,15 +336,15 @@ function OnSimulMachiningStart()
EMT.TASKID = 0
end
-- eventuale pausa per rimozione sfridi
if EMT.SCRAPFIRST then
if ( EMT.HEAD == 'H3' and string.sub( EMT.MCHNAME, 1, 5) == 'Csaw_') or EgtExistsInfo( EMT.MCHID, 'MOVE_AFTER') then
EMT.SCRAPFIRST = false
EgtOutText( 'Pause for Scrap Remove')
ParkForScrapRemove()
ExecScrapRemove()
EgtPause( 500)
EgtOutText( '')
end
local bSystemSR = ( EMT.SCRAPFIRST and (( EMT.HEAD == 'H3' and string.sub( EMT.MCHNAME, 1, 5) == 'Csaw_') or EgtExistsInfo( EMT.MCHID, 'MOVE_AFTER')))
local bUserSR = ( EgtGetValInNotes( EMT.MCHUSERNOTES, 'ScrapRemove', 'i') == 1)
if bSystemSR or bUserSR then
if bSystemSR then EMT.SCRAPFIRST = false end
EgtOutText( 'Pause for Scrap Remove')
ParkForScrapRemove()
ExecScrapRemove()
EgtPause( 500)
EgtOutText( '')
end
-- non ancora iniziata la lavorazione
EMT.MCHFIRST = true
@@ -412,7 +414,7 @@ end
function OnSimulMoveStart()
-- se lunghezza pezzo oltre il limite, aggancio le tavole
if EMT.TAB2 then
EgtSetAxisPos( 'Y2', EgtGetAxisPos( 'Y') + DimTabX + OffsetTabs)
EgtSetAxisPos( 'Y2', EgtGetAxisPos( 'Y') - DimTabX - OffsetTabs)
EMT.AuxAxes = 1
EMT.A1n = 'Y2'
EMT.A1m = 'Y'
@@ -451,10 +453,10 @@ end
---------------------------------------------------------------------
function ParkForScrapRemove()
local b3Raw = EgtGetRawPartBBox( EMT.RAWID)
local ParkY = min( -( b3Raw:getMin():getX() - 2000), -MinY)
local ParkY = min( ( MaxY + b3Raw:getMin():getX() + b3Raw:getDimX() + 3000), MaxY)
SimulMoveAxis( 'Z1', EgtGetAxisHomePos( 'Z1'), MCH_SIM_STEP.RAPID)
if EMT.TAB2 then
SimulMoveAxes( 'Y', ParkY, MCH_SIM_STEP.RAPID, 'Y2', ParkY + DimTabX + OffsetTabs, MCH_SIM_STEP.RAPID)
SimulMoveAxes( 'Y', ParkY, MCH_SIM_STEP.RAPID, 'Y2', ParkY - DimTabX - OffsetTabs, MCH_SIM_STEP.RAPID)
else
SimulMoveAxis( 'Y', ParkY, MCH_SIM_STEP.RAPID)
end
@@ -462,76 +464,181 @@ end
---------------------------------------------------------------------
function ExecScrapRemove()
if EMT.VMILL then
local nPart = EgtVolZmapPartCount( EMT.VMILL)
if nPart > 1 then
-- recupero i box dei pezzi
local vPrtBox = {}
local nPartId = EgtGetFirstPartInRawPart( EMT.RAWID)
while nPartId do
local b3Part = EgtGetBBoxGlob( EgtGetFirstNameInGroup( nPartId, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD)
table.insert( vPrtBox, b3Part)
nPartId = EgtGetNextPartInRawPart( nPartId)
-- Se non c'è virtual milling attivo, esco
if not EMT.VMILL then return end
-- Se non ci sono almeno due parti nel virtual milling, esco
local nVmPart = EgtVolZmapPartCount( EMT.VMILL)
if nVmPart < 2 then return end
-- Recupero box e area dei pezzi
local vPart = {}
local nPartId = EgtGetFirstPartInRawPart( EMT.RAWID)
while nPartId do
-- box e area
local b3Part = EgtGetBBoxGlob( EgtGetFirstNameInGroup( nPartId, 'Box') or GDB_ID.NULL, GDB_BB.STANDARD)
local dPartArea = b3Part:getDimX() * b3Part:getDimY()
local nOlEntId = EgtGetFirstInGroup( EgtGetFirstNameInGroup( nPartId, 'Outline') or GDB_ID.NULL)
while nOlEntId do
if EgtGetType( nOlEntId) == GDB_TY.SRF_FRGN and EgtSurfFrNormVersor( nOlEntId, GDB_ID.ROOT):getZ() > 0.8 then
dPartArea = EgtSurfArea( nOlEntId)
break
end
-- tengo solo le parti del Vmill che contengono almeno un box di un pezzo
for i = nPart, 1, -1 do
-- recupero il box della parte
local b3VmPart = EgtVolZmapGetPartBBoxGlob( EMT.VMILL, i - 1, GDB_BB.STANDARD)
-- lo ingrandisco per sicurezza
b3VmPart:expand( 100)
-- verifiche per parte da eliminare
local bToRemove = true
-- se box abbastanza grande, allora da verificare
local dVol = b3VmPart:getDimX() * b3VmPart:getDimY() * b3VmPart:getDimZ()
if dVol > 1e6 then
for j = 1, #vPrtBox do
local b3Part = vPrtBox[j]
if EnclosesXY( b3VmPart, b3Part) then
bToRemove = false
nOlEntId = EgtGetNext( nOlEntId)
end
-- box espanso
local b3PartExp = BBox3d( b3Part)
b3PartExp:Add( b3PartExp:getMin() - Vector3d( 10, 10, 0))
b3PartExp:Add( b3PartExp:getMax() + Vector3d( 10, 10, 0))
-- salvo i dati
table.insert( vPart, { Box = b3Part, BoxExp = b3PartExp, Area = dPartArea, Outline = nOlEntId})
-- passo al successivo
nPartId = EgtGetNextPartInRawPart( nPartId)
end
-- Recupero box e area delle parti di Vmill
local vVmPart = {}
for i = 1, nVmPart do
-- recupero il box e calcolo l'area della parte come Vmill
local b3VmPart = EgtVolZmapGetPartBBoxGlob( EMT.VMILL, i - 1, GDB_BB.STANDARD)
local dVmPartArea = EgtVolZmapPartVolume( EMT.VMILL, i - 1) / b3VmPart:getDimZ()
-- box espanso
local b3VmPartExp = BBox3d( b3VmPart)
b3VmPartExp:Add( b3VmPart:getMin() - Vector3d( 100, 100, 0))
b3VmPartExp:Add( b3VmPart:getMax() + Vector3d( 100, 100, 0))
-- salvo i dati
table.insert( vVmPart, { Box = b3VmPart, BoxExp = b3VmPartExp, Area = dVmPartArea})
end
-- se presente squadratura, tengo tutti i pezzi all'interno
local nRawId = EgtGetFirstRawPart()
local SquaringEntities = {}
SquaringEntities = EgtGetNameInGroup( nRawId, 'SquaringGeometry')
local b3SquaringBox = nil
if SquaringEntities then
for i = 1, #SquaringEntities do
if i == 1 then
b3SquaringBox = EgtGetBBoxGlob( SquaringEntities[i], GDB_BB.STANDARD)
else
if b3SquaringBox then
b3SquaringBox:Add( EgtGetBBoxGlob( SquaringEntities[i], GDB_BB.STANDARD))
end
end
end
if b3SquaringBox then
b3SquaringBox:expand( 50)
end
end
-- Tengo solo le parti del Vmill che contengono almeno un box di un pezzo o che interferiscono e sono abbastanza grandi
local nValidCnt = 0
for i = #vVmPart, 1, -1 do
-- verifiche per parte da eliminare
local bToRemove = true
-- se area abbastanza grande, allora da verificare
if vVmPart[i].Area > 1e4 then
-- se presente squadratura, verifico che il VMILL sia all'interno del BOX squadratura
if not b3SquaringBox or EnclosesXY( b3SquaringBox, vVmPart[i].Box) then
-- verifico se sono sicuramente valide (i due box si equivalgono entro la tolleranza)
for j = 1, #vPart do
if ( vPart[j].Outline and vVmPart[i].Area > 0.95 * vPart[j].Area and vVmPart[i].Area < 1.05 * vPart[j].Area) or
( EnclosesXY( vVmPart[i].BoxExp, vPart[j].Box) and EnclosesXY( vPart[j].BoxExp, vVmPart[i].Box)) then
bToRemove = false
vVmPart[i].Part = j
nValidCnt = nValidCnt + 1
break
end
end
-- verifico se sono molto probabilmente valide
for j = 1, #vPart do
if bToRemove and ( OverlapsXY( vVmPart[i].Box, vPart[j].Box) and vVmPart[i].Area > 0.25 * vPart[j].Area) then
bToRemove = false
break
end
end
end
end
-- se richiesta eliminazione, la eseguo
if bToRemove then
EgtRemoveVolZmapPart( EMT.VMILL, i - 1)
table.remove( vVmPart, i)
end
end
-- Se il numero delle parti sicuramente valide uguaglia il numero dei pezzi, elimino le altre ed ho finito
if nValidCnt == #vPart then
for i = #vVmPart, 1, -1 do
if not vVmPart[i].Part then
EgtRemoveVolZmapPart( EMT.VMILL, i - 1)
table.remove( vVmPart, i)
end
end
return
end
-- Calcolo punti interni alle parti di Vmill non già dichiarate valide
for i = 1, #vVmPart do
if not vVmPart[i].Part then
local vtDir = VectorFromRotated( X_AX(), Z_AX(), 45)
local ptP = vVmPart[i].Box:getCenter() - vtDir * ( vVmPart[i].Box:getRadius() + 10)
local bOk, vIntType, vIntDist = EgtLineVolZmapInters( ptP, vtDir, EMT.VMILL, GDB_RT.GLOB)
if bOk then
for j = 1, #vIntType do
-- se la corrente entra ed esiste la successiva che esce
if vIntType[j] == GDB_SLT.IN and j + 1 <= #vIntType and vIntType[j + 1] == GDB_SLT.OUT then
local ptC = ptP + vtDir * (( vIntDist[j] + vIntDist[j + 1]) / 2)
local nPart = EgtVolZmapGetPartMinDist( EMT.VMILL, ptC, GDB_RT.GLOB)
if nPart == i - 1 then
if not vVmPart[i].Cen then
vVmPart[i].Cen = ptC
elseif not vVmPart[i].Cen2 then
vVmPart[i].Cen2 = ptC
else
vVmPart[i].Cen3 = ptC
break
end
end
end
end
end
end
end
-- Verifico le parti di Vmill non già dichiarate valide
for i = #vVmPart, 1, -1 do
if not vVmPart[i].Part then
local bToRemove = true
if vVmPart[i].Cen then
for j = 1, #vPart do
if EnclosesPointXY( vPart[j].Box, vVmPart[i].Cen) then
bToRemove = false
break
elseif vVmPart[i].Cen2 and EnclosesPointXY( vPart[j].Box, vVmPart[i].Cen2) then
bToRemove = false
break
elseif vVmPart[i].Cen3 and EnclosesPointXY( vPart[j].Box, vVmPart[i].Cen3) then
bToRemove = false
break
end
-- controllo per gestire squadratura inserita manualmente da operatore
-- verifico se il box del part è completamente incluso nel box del VM, allora non posso cancellarlo
if Encloses( vVmPart[i].BoxExp, vPart[j].Box) then
bToRemove = false
break
end
end
for k = 1, #vVmPart do
if k ~= i then
local vExpBox = BBox3d( vVmPart[k].Box)
-- lo espando in XY per sicurezza
vExpBox:Add( vExpBox:getMin() - Vector3d( 100, 100, 0))
vExpBox:Add( vExpBox:getMax() + Vector3d( 100, 100, 0))
-- verifico contenimento
if EnclosesXY( vExpBox, vVmPart[i].Box) then
bToRemove = true
break
end
end
end
-- se richiesta eliminazione, la eseguo
if bToRemove then
EgtRemoveVolZmapPart( EMT.VMILL, i - 1)
end
end
-- se sono rimaste più parti del numero di pezzi, devo fare ulteriori verifiche
local nRest = EgtVolZmapPartCount( EMT.VMILL)
if nRest > #vPrtBox then
-- recupero tutti i box delle parti
local vVmpBox = {}
for i = 1, nRest do
local b3VmPart = EgtVolZmapGetPartBBoxGlob( EMT.VMILL, i - 1, GDB_BB.STANDARD)
table.insert( vVmpBox, b3VmPart)
end
--
local vVmpFlag = {}
for i = 1, #vPrtBox do
local b3Part = vPrtBox[i]
local nVmp
local dErr = 400
for j = 1, nRest do
local b3VmPart = vVmpBox[j]
local dCurrErr = ( b3Part:getCenter() - b3VmPart:getCenter()):len() +
abs( b3Part:getDimX() - b3VmPart:getDimX()) +
abs( b3Part:getDimY() - b3VmPart:getDimY()) +
abs( b3Part:getDimZ() - b3VmPart:getDimZ())
if dCurrErr < dErr then
nVmp = j
dErr = dCurrErr
end
end
if nVmp then
vVmpFlag[nVmp] = i
end
end
for i = nRest, 1, -1 do
if not vVmpFlag[i] then
EgtRemoveVolZmapPart( EMT.VMILL, i - 1)
end
end
-- se richiesta eliminazione, la eseguo
if bToRemove then
EgtRemoveVolZmapPart( EMT.VMILL, i - 1)
table.remove( vVmPart, i)
end
end
end
-93
View File
@@ -1,93 +0,0 @@
# Essetre-90580012
## Getting started
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
## Add your files
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
```
cd existing_repo
git remote add origin https://gitlab.steamware.net/egalware-machines/essetre/essetre-90580012.git
git branch -M main
git push -uf origin main
```
## Integrate with your tools
- [ ] [Set up project integrations](https://gitlab.steamware.net/egalware-machines/essetre/essetre-90580012/-/settings/integrations)
## Collaborate with your team
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
## Test and Deploy
Use the built-in continuous integration in GitLab.
- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
***
# Editing this README
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
## Suggestions for a good README
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
## Name
Choose a self-explaining name for your project.
## Description
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
## Badges
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
## Visuals
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
## Installation
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
## Usage
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
## Support
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
## Roadmap
If you have ideas for releases in the future, it is a good idea to list them in the README.
## Contributing
State if you are open to contributions and what your requirements are for accepting them.
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
## Authors and acknowledgment
Show your appreciation to those who have contributed to the project.
## License
For open source projects, say how it is licensed.
## Project status
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
+2 -1
View File
@@ -38,7 +38,8 @@ local PositionTable={{Pos = "Pos1", TcPos = "T1", Head = "H1", Group = "G1"},
{Pos = "Pos8", TcPos = "T8", Head = "H1", Group = "G1"},
{Pos = "Pos9", TcPos = "T9", Head = "H1", Group = "G1"},
{Pos = "Pos10", TcPos = "T101", Head = "H3", Group = "G1"},
{Pos = "Pos11", TcPos = "T42", Head = "H2", Group = "G2"}}
{Pos = "Pos11", TcPos = "T201", Head = "H1", Group = "G1"},
{Pos = "Pos12", TcPos = "T42", Head = "H2", Group = "G2"}}
local UsePositionHead = true
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
[WALL]
Kerf=10
Offset=25
+19 -10
View File
@@ -19,9 +19,11 @@ local WallData = {
CUT_SIC = 20, -- distanza di sicurezza per tagli
CUT_EXTRA = 0, -- affondamento extra standard per tagli di lama e fresature
CUT_EXTRA_MIN = 0, -- affondamento extra ridotto per tagli di lama e fresature
CUT_VZ_MIN = -0.866, -- componente limite in Z del versore di un taglio (-60deg)
MIN_Z_SAW = -6, -- quota minima rispetto alla tavola (default 0)
NZ_MINA = 0.5, -- componente limite in Z normale di una faccia (-30deg)
NZ_MINB = -0.4, -- componente limite in Z normale di un insieme di facce (-23deg)
DRILL_TOL = 0.5, -- tolleranza tra diametro foro e diametro punta
DRILL_TOL = 0.2, -- tolleranza tra diametro foro e diametro punta
DRILL_VZ_MIN = 0.5, -- componente limite in Z del versore di un foro
DRILL_VX_MAX = 0.866, -- componente limite in X del versore di un foro sulle facce laterali
DRILL_OVERLAP = 5, -- sovrapposizione tra due mezze forature
@@ -33,30 +35,37 @@ local WallData = {
MAXDIAM_POCK_CORNER= 70, -- diametro massimo utensile ammesso per tasche con angoli interni
RAWCOL = { 255, 160, 32, 30}, -- colore del grezzo
SIMUL_VIEW_DIR = 3, -- direzione di vista predefinita per la simulazione (1=NW, 2=SW, 3=NE, 4=SE)
ORIG_CORNER = 'TR', -- angolo tavola per origine di battuta (BR (default), TR, BL, TL)
ORIG_CORNER = 'TL', -- angolo tavola per origine di battuta (BR (default), TR, BL, TL)
RAWPART_ROT = 180, -- rotazione del pannello grezzo rispetto alla descrizione BTL
CUT_WITH_OUTLINE = false, -- taglio delle feature con l'outline del pezzo
TAB_EXTRA_XP = 0, -- extra spazio su tavola per grezzo in X più
TAB_EXTRA_XM = 10050, -- extra spazio su tavola per grezzo in X meno
CUT_WITH_OUTLINE = false, -- taglio delle feature con l'outline del pezzo
TAB_EXTRA_XP = 10500, -- extra spazio su tavola per grezzo in X più
TAB_EXTRA_XM = 0, -- extra spazio su tavola per grezzo in X meno
TAB_EXTRA_YP = 0, -- extra spazio su tavola per grezzo in Y più
TAB_EXTRA_YM = 20, -- extra spazio su tavola per grezzo in Y meno
DELTA_X = 0, -- allontanamento in X dai riferimenti
DELTA_Y = 0, -- allontanamento in Y dai riferimenti
DELTA_Z = 0, -- sollevamento dalla tavola
SQUARING_TYPE = 0, -- master panel squaring: 0 = disabled, 1 = on rawpart, 2 = shrink to parts
SQUARING_TOOL = 5, -- 0 = auto, 1 = double diskmill, 2 = double diskmill+blade, 3 = double blade, 4 = diskmill, 5 = blade, 6 = double mill, 7 = mill
SQUARING_USE_ZIGZAG = true, -- false = oneway, true = zigzag. For mill only
SQUARING_STARTS_ON_REFERENCE = true, -- false = squaring starts near machine parking, true = squaring starts on reference edge
SQUARING_OFFSET_XY = 0, -- > 0 = larger rectangle, < 0 = smaller rectangle. Only with squaring on rawpart
SQUARING_EXTEND_Z = 0, -- > 0 = squaring extends below Z0, < 0 = squaring stops above Z0
SQUARING_MAX_OVERMATERIAL = 40, -- max overmaterial before squaring
}
local function GetChainSawBlockedAxis( nInd)
if nInd == 1 then
return 'A1=0'
else
return 'A1=90'
else
return 'A1=0'
end
end
WallData.GetChainSawBlockedAxis = GetChainSawBlockedAxis
-- Aggiornamento con dati da TechnoEssetre7
local sTs3Data = EgtGetStringFromIni( 'Wall', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-90580012.data"
local sData = EgtGetSourceDir().."\\Ts3Data.lua"
local sData = EgtGetCurrMachineDir().."\\Wall\\Ts3Data.lua"
if EgtExistsFile( sTs3Data) then
EgtCopyFile( sTs3Data, sData)
local sTs3DataOld = sTs3Data..'.old'
@@ -84,8 +93,8 @@ end
-------------------------------------------------------------------------------------------------------------
local function GetOrigCorner( RefPos)
-- sempre origine macchina 3
return 'TR'
-- sempre origine macchina 1
return 'TL'
end
WallData.GetOrigCorner = GetOrigCorner