17 Commits

Author SHA1 Message Date
Dario Sassi 9a3274b56c DataBeamWall :
- introduzione chiamata nuove funzioni multithread per calcolo solidi.
2025-10-13 08:53:35 +02:00
Dario Sassi 18832d75c8 DataBeamWall :
- aggiornate modalità di compilazione per rete.
2025-10-11 10:00:06 +02:00
Dario Sassi e6b0c4c5b4 DataBeamWall 2.7j1 :
- modifiche per nuova gestione assemblaggi
- aggiunto file versione.
2025-10-11 09:57:04 +02:00
Dario Sassi a506499151 DataBeamWall :
- piccolo aggiustamento.
2025-07-24 12:39:01 +02:00
Dario Sassi 731759bcf3 DataBeamWall :
- aggiunto comando ShowNesting.
2025-07-24 12:36:18 +02:00
Dario Sassi 77a3681439 DataBeamWall :
- nella trasformazione di Trimesh in oggetti BTL ora si può scegliere di spostare tutte le entità del layer della Trimesh.
2025-03-16 15:46:10 +01:00
Dario Sassi d568808608 DataBeamWall :
- piccole migliorie a trasformazione di TriMesh in oggetti BTL.
2025-01-20 15:24:59 +01:00
Dario Sassi 01cdf7396c DataBeamWall :
- piccolo aggiustamento.
2024-12-30 13:16:32 +01:00
Dario Sassi 355b375f47 BeamWall :
- reinserito script per convertire superfici TriMesh in Pezzi come da BTL.
2024-12-30 13:12:02 +01:00
Dario Sassi b5fe2461bc DataBeamWall :
- eliminato modulo SolidProcess pechè già da tempo le sue funzioni sono svolte nel programma
- in ShowSolid aggiunta gestione modalità tutti i pezzi mediante riconoscimento pressione tasto Shift.
2024-05-03 11:34:17 +02:00
Dario Sassi be4ce0b4b0 BeamWall :
- miglioria nel calcolo del posizionamento ottimale del solido come trave.
2023-08-24 18:29:30 +02:00
Samuele Locatelli 90e1ea7f93 Merge branch 'develop' 2023-03-21 15:50:53 +01:00
DarioS beaad06ecc DataBeamWall :
- aggiunto .placeholder in bin/Images.
2023-01-12 15:01:29 +01:00
DarioS ce7a88cb40 DataBeamWall :
- sistemazioni per git.
2023-01-12 14:52:03 +01:00
DarioS 39fbe01684 DataBeamWall :
- corretta configurazione gitignore.
2023-01-12 13:12:53 +01:00
DarioS 69e0dca89e DataBeamWall :
- ricompilazione.
2023-01-12 13:09:17 +01:00
DarioS eda6cde853 DataBeamWall :
- aggiornamento compilazione per lua54
- unificazione binari 32 e 64 bit in bin.
2023-01-12 12:50:10 +01:00
16 changed files with 373 additions and 162 deletions
+4 -7
View File
@@ -13,12 +13,9 @@
/Debug64
/Release64
/ipch
/bin
/obj
/.vs
/32/*.lua
/32/LuaLibs/*.lua
/32/Images/*.png
/64/*.lua
/64/LuaLibs/*.lua
/64/Images/*.png
/bin/*.lua
/bin/*.ini
/bin/LuaLibs/*.lua
/bin/Images/*.png
+4 -14
View File
@@ -24,18 +24,9 @@ variables:
$FileList = Get-ChildItem("*.lua")
ForEach ($File in $FileList) {
$FileName = Split-Path $File -leaf
lua54 -o bin\$FileName $FileName
echo "lua54 -o bin\$FileName $FileName"
lua54 -o bin\$FileName -s $FileName
echo "lua54 -o bin\$FileName -s $FileName"
}
$FileList = Get-ChildItem("LuaLibs\*.lua")
ForEach ($File in $FileList) {
$FileName = Split-Path $File -leaf
lua54 -o bin\LuaLibs\$FileName LuaLibs\$FileName
echo "lua54 -o bin\LuaLibs\$FileName LuaLibs\$FileName"
}
# Copy-Item -Path $FileName -Destination 64\$FileName
# echo "Copy-Item -Path $FileName -Destination 64\$FileName"
# helper copia SORGENTI verso cartella di rete R:\ dei SORGENTI
.CodeReplicaR: &CodeReplicaR
- |
@@ -46,7 +37,7 @@ variables:
SLEEP 2
net use X: /delete
# helper copia script verso cartella di rete R:\ delle cartelle 32 e 64
# helper copia script verso cartella di rete R:\ delle cartelle bin
.ReplicaR: &ReplicaR
- |
net use X: /delete
@@ -57,7 +48,7 @@ variables:
SLEEP 2
net use X: /delete
# helper copia script verso cartella di rete R:\ delle cartelle 32 e 64
# helper copia script verso cartella di rete R:\ delle cartelle bin
.ReplicaZ: &ReplicaZ
- |
net use Z: /delete
@@ -83,4 +74,3 @@ LuaCompile:build:
- *CodeReplicaR
- *ReplicaR
- *ReplicaZ
View File
View File
View File
+8 -6
View File
@@ -2,9 +2,11 @@
BtlEnable=1
BaseDir=C:\EgtData\BeamWall
Button1=ClearProcess.lua,Images\ClearProcess.png,Cancella Lavorazioni Pezzo
Button2=DisableFeatures.lua,Images\DisableFeatures.png,Disabilita Lavorazioni
Button3=EnableFeatures.lua,Images\EnableFeatures.png,Abilita Lavorazioni
Button4=HideAll.lua,Images\HideAll.png,Nascondi i Pezzi non selezionati
Button5=ShowAll.lua,Images\ShowAll.png,Visualizza tutti i Pezzi
Button6=ShowSolid.lua,Images\ShowSolid.png,Visualizza/Nascondi Solido
Button7=ShowBuilding.lua,Images\ShowBuilding.png,Visualizza Struttura/Visualizza Pezzi
Button2=SolidProcess.lua,Images\SolidProcess.png,Trasforma Solidi in Pezzi
Button3=DisableFeatures.lua,Images\DisableFeatures.png,Disabilita Lavorazioni
Button4=EnableFeatures.lua,Images\EnableFeatures.png,Abilita Lavorazioni
Button5=HideAll.lua,Images\HideAll.png,Nascondi i Pezzi non selezionati
Button6=ShowAll.lua,Images\ShowAll.png,Visualizza tutti i Pezzi
Button7=ShowSolid.lua,Images\ShowSolid.png,Visualizza/Nascondi Solido
Button8=ShowBuilding.lua,Images\ShowBuilding.png,Visualizza Struttura/Visualizza Pezzi
Button9=ShowNesting.lua,Images\ShowNesting.png,Visualizza Nesting/Visualizza Pezzi
+18
View File
@@ -0,0 +1,18 @@
REM Compilazione degli script BeamWall Egaltech 2025.10.11
REM Per togliere info di debug aggiungere flag -s prima del nome del file di input
REM Compilazione 32 e 64 bit
erase bin\*.lua
\EgtProg\Dll32\luac54 -o bin\ClearProcess.lua -s ClearProcess.lua
\EgtProg\Dll32\luac54 -o bin\DisableFeatures.lua -s DisableFeatures.lua
\EgtProg\Dll32\luac54 -o bin\EnableFeatures.lua -s EnableFeatures.lua
\EgtProg\Dll32\luac54 -o bin\HideAll.lua -s HideAll.lua
\EgtProg\Dll32\luac54 -o bin\ShowAll.lua -s ShowAll.lua
\EgtProg\Dll32\luac54 -o bin\ShowBuilding.lua -s ShowBuilding.lua
\EgtProg\Dll32\luac54 -o bin\ShowNesting.lua -s ShowNesting.lua
\EgtProg\Dll32\luac54 -o bin\ShowSolid.lua -s ShowSolid.lua
\EgtProg\Dll32\luac54 -o bin\SolidProcess.lua -s SolidProcess.lua
\EgtProg\Dll32\luac54 -o bin\Version.lua -s Version.lua
Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

+48 -5
View File
@@ -1,4 +1,4 @@
-- ShowBuilding.lua by Egaltech s.r.l. 2020/12/12
-- ShowBuilding.lua by Egaltech s.r.l. 2025/10/11
-- Gestione visualizzazione travi come struttura
-- Intestazioni
@@ -6,11 +6,54 @@ require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Recupero l'attivazione dell'assemblaggio
local bOn = EgtBeamGetBuildingIsOn()
-- Recupero elenco assemblaggi presenti
local AsseBaseId = EgtGetNameInGroup( GDB_ID.ROOT, 'AsseBase')
for i = #AsseBaseId, 1, -1 do
if EgtGetGroupObjs( AsseBaseId[i]) == 0 then
table.remove( AsseBaseId, i)
end
end
-- Modifico lo stato dell'assemblaggio
EgtBeamShowBuilding( not bOn)
-- Se nessun assemblaggio, esco con avvertimento
if #AsseBaseId == 0 then
EgtOutBox( "There are no assemblies", 'ShowBuilding', 'WARNING', 'OK')
return
end
-- Se un solo assemblaggio
if #AsseBaseId == 1 then
-- Recupero l'attivazione dell'assemblaggio
local bOn = EgtBeamGetBuildingIsOn()
-- Modifico lo stato dell'assemblaggio
EgtBeamShowBuilding( not bOn)
-- altrimenti più assemblaggi
else
-- Recupero gli assemblaggi attivi
local On = {}
for i = 1, #AsseBaseId do
if EgtBeamGetBuildingIsOn( AsseBaseId[i]) then
table.insert( On, i)
end
end
-- Se almeno uno attivo, li spengo tutti
if #On > 0 then
for j = 1, #On do
EgtBeamShowBuilding( AsseBaseId[On[j]], false)
end
-- altrimenti chiedo quale attivare
else
local sCombo = 'CB:1'
for i = 2, #AsseBaseId do
sCombo = sCombo .. ',' .. tostring( i)
end
local Res = EgtDialogBox( 'Choose Assembly', { 'To Activate', sCombo})
if Res then
local nId = tonumber( Res[1])
EgtBeamShowBuilding( AsseBaseId[nId], true)
end
end
end
EgtZoom( SCE_ZM.ALL)
+106
View File
@@ -0,0 +1,106 @@
-- ShowNesting.lua by Egaltech s.r.l. 2025/07/24
-- Gestione visualizzazione pareti come nesting
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-----------------------------------------------------------------------------------------
local function IsNestAux( ObjId)
local sName = EgtGetName( ObjId)
return ( sName == 'Part' or
sName == 'Box' or
sName == 'Outline' or
sName == 'Processings' or
sName == 'Solid')
end
-----------------------------------------------------------------------------------------
local function GetFirstNestPart( GroupId)
local PartId = EgtGetFirstInGroup( GroupId)
while PartId and IsNestAux( PartId) do
PartId = EgtGetNext( PartId)
end
return PartId
end
-----------------------------------------------------------------------------------------
local function GetNextNestPart( PartId)
PartId = EgtGetNext( PartId)
while PartId and IsNestAux( PartId) do
PartId = EgtGetNext( PartId)
end
return PartId
end
-----------------------------------------------------------------------------------------
-- recupero l'eventuale gruppo di nesting
local RawPartsId = EgtGetFirstNameInGroup( GDB_ID.ROOT, 'RawParts')
if not RawPartsId then
EgtOutBox( "There is no nesting", 'ShowNesting', 'WARNING', 'OK')
return
end
-- ciclo sui grezzi del nesting
local RawId = EgtGetFirstInGroup( RawPartsId)
while RawId do
-- recupero il primo oggetto nel gruppo e verifico se devo assemblare o disassemblare
local AsseId = GetFirstNestPart( RawId)
if not AsseId then return end
local bMake = ( EgtGetGroupObjs( AsseId) == 0)
-- sistemo stato di visualizzazione del grezzo
EgtSetStatus( RawId, EgtIf( bMake, GDB_ST.ON, GDB_ST.OFF))
-- ciclo sul gruppo di assemblaggio
while AsseId do
-- recupero il successivo nel gruppo dell'assemblato
local NextId = GetNextNestPart( AsseId)
-- costruisco l'assemblato
if bMake then
-- recupero il pezzo sorgente
local SouId = EgtGetInfo( AsseId, GDB_SI.SOURCE, 'i')
if SouId then
EgtSetMode( SouId, GDB_MD.STD)
EgtSetStatus( SouId, GDB_ST.ON)
-- se già utilizzato, ne faccio una copia
if not EgtIsPart( SouId) then
local CopyId = EgtCopy( SouId, GDB_ID.ROOT)
if CopyId then
EgtRemoveInfo( CopyId, GDB_SI.BASE)
EgtRemoveInfo( CopyId, GDB_SI.LIST)
EgtSetInfo( CopyId, GDB_SI.COPY, SouId)
SouId = CopyId
EgtSetInfo( AsseId, GDB_SI.SOURCE, SouId)
end
end
EgtSetStatus( EgtGetFirstNameInGroup( SouId, 'Box') or GDB_ID.NULL, GDB_ST.OFF)
EgtGroupSwap( SouId, AsseId, true, true)
end
-- ritorno ai pezzi
else
local BasId = EgtGetInfo( AsseId, GDB_SI.BASE, 'i')
if BasId then
EgtGroupSwap( AsseId, BasId, true, true)
local CopId = EgtGetInfo( AsseId, GDB_SI.COPY, 'i')
if CopId then
EgtErase( AsseId)
EgtSetInfo( BasId, GDB_SI.SOURCE, CopId)
else
EgtSetStatus( EgtGetFirstNameInGroup( AsseId, 'Box') or GDB_ID.NULL, GDB_ST.ON)
end
end
end
-- passo al successivo
AsseId = NextId
end
-- passo al successivo
RawId = EgtGetNext( RawId)
end
EgtZoom( SCE_ZM.ALL)
-- end
+32 -20
View File
@@ -1,4 +1,4 @@
-- ShowSolid.lua by Egaltech s.r.l. 2020/12/12
-- ShowSolid.lua by Egaltech s.r.l. 2025/10/12
-- Gestione calcolo solido di una Trave
require( 'EgtBase')
@@ -6,26 +6,38 @@ _ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Recupero il pezzo del primo oggetto selezionato
local ObjId = EgtGetFirstSelectedObj()
local PartId = EgtGetParent( EgtGetParent( ObjId or GDB_ID.NULL) or GDB_ID.NULL)
if not PartId or not EgtIsPart( PartId) then
EgtOutBox( 'Nessuna trave selezionata', 'Show Solid', 'ERROR')
return
end
EgtDeselectAll()
-- Se il solido già esiste, ne aggiorno lo stato di visualizzazione
local SolidId = EgtBeamGetSolid( PartId)
if SolidId and EgtGetInfo( SolidId, 'VALID') then
EgtBeamShowSolid( PartId, ( EgtGetCalcStatus( SolidId) == GDB_ST.OFF))
-- Se premuto Shift devo processare tutti i pezzi del progetto
if EgtGetKeyPressed( GEN_VK.SHIFT) then
-- dal primo pezzo riconosco se da visualizzare o nascondere
local SolidId = EgtBeamGetSolid( EgtGetFirstPart() or GDB_ID.NULL)
local bShow = not ( SolidId and EgtGetInfo( SolidId, 'VALID') and EgtGetCalcStatus( SolidId) ~= GDB_ST.OFF)
if bShow then
EgtBeamCalcAllSolids( true)
else
EgtBeamShowAllSolids( false)
end
-- altrimenti solo il pezzo selezionato
else
-- Recupero il pezzo del primo oggetto selezionato
local ObjId = EgtGetFirstSelectedObj()
local PartId = EgtGetParent( EgtGetParent( ObjId or GDB_ID.NULL) or GDB_ID.NULL)
if not PartId or not EgtIsPart( PartId) then
EgtOutBox( 'Nessuna trave selezionata', 'Show Solid', 'ERROR')
return
end
EgtDeselectAll()
-- Se il solido già esiste, ne aggiorno lo stato di visualizzazione
local SolidId = EgtBeamGetSolid( PartId)
if SolidId and EgtGetInfo( SolidId, 'VALID') then
EgtBeamShowSolid( PartId, ( EgtGetCalcStatus( SolidId) == GDB_ST.OFF))
EgtDraw()
return
end
-- Creazione e visualizzazione del solido
EgtBeamCalcSolid( PartId, true)
EgtBeamShowSolid( PartId, true)
-- Aggiorno visulaizzazione
EgtDraw()
return
end
-- Creazione e visualizzazione del solido
EgtBeamCalcSolid( PartId, true)
EgtBeamShowSolid( PartId, true)
EgtDraw()
-- end
+135 -110
View File
@@ -1,110 +1,135 @@
-- 2021/03/18
-- Parti solide gestite come travi BTL
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- calcolo del riferimento del minimo box
local function SolidMinBox( nId)
-- ciclo sulle facce della superficie
local nFacCnt = EgtSurfTmFacetCount( nId)
local dVolMin
local refMin
local b3Min
for i = 1, nFacCnt do
local refFace = EgtSurfTmFacetMinAreaRectangle( nId, i - 1, GDB_ID.ROOT)
if refFace then
local b3Box = EgtGetBBoxRef( nId, GDB_BB.STANDARD, refFace)
if b3Box then
local dVol = b3Box:getDimX() * b3Box:getDimY() * b3Box:getDimZ()
if not dVolMin or dVol < dVolMin then
dVolMin = dVol
refMin = refFace
b3Min = b3Box
end
end
end
end
return refMin, b3Min
end
-- Trasformazione di un oggetto solido
local function ProcessOneSolid( nId1, ptPos)
-- Calcolo il riferimento del suo box minimo
local refMin, b3Min = SolidMinBox( nId1)
if not refMin then
EgtOutText( 'Errore nel calcolo del box minimo della superficie')
EgtPause( 1000)
return
end
-- Modifico il riferimento in modo che X sia sul più lungo, quindi Z e poi Y
local dDimX = b3Min:getDimX()
local dDimY = b3Min:getDimY()
local dDimZ = b3Min:getDimZ()
if dDimX < dDimY then
refMin:rotate( refMin:getOrigin(), refMin:getVersZ(), 90)
dDimX, dDimY = dDimY, dDimX
end
if dDimX < dDimZ then
refMin:rotate( refMin:getOrigin(), refMin:getVersY(), 90)
dDimX, dDimZ = dDimZ, dDimX
end
if dDimZ < dDimY then
refMin:rotate( refMin:getOrigin(), refMin:getVersX(), 90)
dDimZ, dDimY = dDimY, dDimZ
end
-- Porto il solido nell'origine
refMin:invert()
EgtTransform( nId1, refMin, GDB_RT.GLOB)
local b3Box = EgtGetBBoxGlob( nId1, GDB_BB.STANDARD)
local vtMove = ORIG() - b3Box:getMin()
EgtMove( nId1, vtMove, GDB_RT.GLOB)
b3Box:move( vtMove)
-- Creo un nuovo pezzo
local PzId = EgtGroup( GDB_ID.ROOT)
local PartId = EgtGroup( PzId)
EgtSetName( PartId or GDB_ID.NULL, 'Part')
local BoxId = EgtGroup( PzId)
EgtSetName( BoxId or GDB_ID.NULL, 'Box')
local ProcId = EgtGroup( PzId)
EgtSetName( ProcId or GDB_ID.NULL, 'Proc')
-- Sposto il solido nel pezzo
EgtRelocate( nId1, ProcId)
-- Calcolo il box
local SboxId = EgtSurfTmBBox( BoxId, b3Box)
EgtSetColor( SboxId or GDB_ID.NULL, {206,199,113,30})
-- Assegno il nome
local sText = string.format( 'Part%d %.0f x %.0f x %.0f', PzId, dDimX, dDimY, dDimZ)
local ptText = b3Box:getCenter() + Vector3d( 0, 0, dDimZ / 2)
local TxtId = EgtTextAdv( PartId, ptText, 0, sText, '', 100, 'S', dDimY / 4, 1, 0, GDB_TI.MC)
EgtSetColor( TxtId or GDB_ID.NULL, {0,0,0,100})
EgtSetName( PzId or GDB_ID.NULL, sText)
-- Sposto il pezzo
if ptPos then
EgtMove( PzId, ptPos - ORIG())
end
EgtDraw()
end
-------------------------------------------------------------------
local ptIns = ORIG()
local nId = EgtGetFirstSelectedObj()
while nId do
EgtDeselectObj( nId)
ProcessOneSolid( nId, ptIns)
ptIns = ptIns + Vector3d( 0, 300, 0)
nId = EgtGetFirstSelectedObj()
end
-- 2025/03/16
-- Parti solide gestite come travi BTL
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- calcolo del riferimento del minimo box
local function SolidMinBox( nId, dMinFaceArea)
-- parto con orientamento corrente
local refMin = Frame3d()
local b3Min = EgtGetBBoxRef( nId, GDB_BB.STANDARD, refMin)
local dVolMin = 0.98 * b3Min:getDimX() * b3Min:getDimY() * b3Min:getDimZ()
-- ciclo sulle facce della superficie
local nFacCnt = EgtSurfTmFacetCount( nId)
for i = 1, nFacCnt do
local refFace, dL, dW = EgtSurfTmFacetMinAreaRectangle( nId, i - 1, GDB_ID.ROOT)
if refFace and ( not dMinFaceArea or dL * dW > dMinFaceArea) then
local b3Box = EgtGetBBoxRef( nId, GDB_BB.STANDARD, refFace)
if b3Box then
local dVol = b3Box:getDimX() * b3Box:getDimY() * b3Box:getDimZ()
if not dVolMin or dVol < dVolMin then
dVolMin = dVol
refMin = refFace
b3Min = b3Box
end
end
end
end
return refMin, b3Min
end
-- Trasformazione di un oggetto solido
local function ProcessOneSolid( nId, ptPos, bFullLayer)
-- Calcolo il riferimento del suo box minimo
local refMin, b3Min = SolidMinBox( nId, 100)
if not refMin then
refMin, b3Min = SolidMinBox( nId)
end
if not refMin then
EgtOutText( 'Errore nel calcolo del box minimo della superficie (' .. tostring( nId) .. ')')
EgtPause( 1000)
return false, 0
end
-- Se tutto il layer ricalcolo il box minimo sul layer e determino tutti i suoi oggetti
local LayId
local vAllId = { nId}
if bFullLayer then
LayId = EgtGetParent( nId)
vAllId = EgtGetAllInGroup( LayId)
b3Min = EgtGetBBoxRef( LayId, GDB_BB.STANDARD, refMin)
end
-- Modifico il riferimento in modo che X sia sul più lungo
local dDimX = b3Min:getDimX()
local dDimY = b3Min:getDimY()
local dDimZ = b3Min:getDimZ()
if dDimX < dDimY then
refMin:rotate( refMin:getOrigin(), refMin:getVersZ(), 90)
dDimX, dDimY = dDimY, dDimX
end
if dDimX < dDimZ then
refMin:rotate( refMin:getOrigin(), refMin:getVersY(), 90)
dDimX, dDimZ = dDimZ, dDimX
end
-- Porto il solido nell'origine
refMin:invert()
EgtTransform( vAllId, refMin, GDB_RT.GLOB)
local b3Box = EgtGetBBoxGlob( LayId or nId, GDB_BB.STANDARD)
local vtMove = ORIG() - b3Box:getMin()
EgtMove( vAllId, vtMove, GDB_RT.GLOB)
b3Box:move( vtMove)
-- Creo un nuovo pezzo
local PzId = EgtGroup( GDB_ID.ROOT)
local PartId = EgtGroup( PzId)
EgtSetName( PartId or GDB_ID.NULL, 'Part')
local BoxId = EgtGroup( PzId)
EgtSetName( BoxId or GDB_ID.NULL, 'Box')
local ProcId = EgtGroup( PzId)
EgtSetName( ProcId or GDB_ID.NULL, 'Proc')
-- Sposto il solido nel pezzo
for i = 1, #vAllId do
EgtRelocate( vAllId[i], ProcId)
end
-- Calcolo il box
local SboxId = EgtSurfTmBBox( BoxId, b3Box)
EgtSetColor( SboxId or GDB_ID.NULL, {206,199,113,30})
-- Assegno il nome
local sText = string.format( '%.0f x %.0f x %.0f', dDimX, dDimY, dDimZ)
local ptText = b3Box:getCenter() + Vector3d( 0, 0, dDimZ / 2)
local TxtId = EgtTextAdv( PartId, ptText, 0, sText, '', 100, 'S', dDimY / 4, 1, 0, GDB_TI.MC)
EgtSetColor( TxtId or GDB_ID.NULL, {0,0,0,100})
-- Sposto il pezzo
if ptPos then
EgtMove( PzId, ptPos - ORIG())
end
return true, dDimY
end
-------------------------------------------------------------------
-- Chiedo se spostare tutti gli oggetti del layer degli oggetti
local vsVal = EgtDialogBox( 'SolidProcess',
{ 'Full Layer', ' CB:*true,false'})
if not vsVal then
return
end
local bFullLayer = ( vsVal[1] == 'true')
-- Eseguo
local ptIns = ORIG()
local bOk = true
local nId = EgtGetFirstSelectedObj()
while nId do
EgtDeselectObj( nId)
local bOneOk, dDimY = ProcessOneSolid( nId, ptIns, bFullLayer)
EgtDraw()
bOk = bOk and bOneOk
ptIns = ptIns + Vector3d( 0, dDimY + 200, 0)
nId = EgtGetFirstSelectedObj()
end
if not bOk then
EgtOutBox( 'Una o più entità selezionate non sono superfici', 'SolidProcess', 'WARNING', 'OK')
end
+6
View File
@@ -0,0 +1,6 @@
-- Version.lua by Egaltech s.r.l. 2025/10/11
-- Gestione della versione di Beam
NAME = 'BeamWall'
VERSION = '2.7j1'
MIN_EXE = '2.7j1'
+12
View File
@@ -0,0 +1,12 @@
[BeamWall]
BtlEnable=1
BaseDir=C:\EgtData\BeamWall
Button1=ClearProcess.lua,Images\ClearProcess.png,Cancella Lavorazioni Pezzo
Button2=SolidProcess.lua,Images\SolidProcess.png,Trasforma Solidi in Pezzi
Button3=DisableFeatures.lua,Images\DisableFeatures.png,Disabilita Lavorazioni
Button4=EnableFeatures.lua,Images\EnableFeatures.png,Abilita Lavorazioni
Button5=HideAll.lua,Images\HideAll.png,Nascondi i Pezzi non selezionati
Button6=ShowAll.lua,Images\ShowAll.png,Visualizza tutti i Pezzi
Button7=ShowSolid.lua,Images\ShowSolid.png,Visualizza/Nascondi Solido
Button8=ShowBuilding.lua,Images\ShowBuilding.png,Visualizza Struttura/Visualizza Pezzi
Button9=ShowNesting.lua,Images\ShowNesting.png,Visualizza Nesting/Visualizza Pezzi