Trimming 3.1b1 :

- migliorata la gestione dei colori ( rimozione passaggi con esadecimali)
- aggiunta la funzione di Undo per le curve di sincronizzazione per interpolazione.
This commit is contained in:
Riccardo Elitropi
2026-02-23 15:57:20 +01:00
parent 25e8038aa6
commit e5b1b4457f
8 changed files with 120 additions and 81 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

+10 -4
View File
@@ -65,7 +65,7 @@ end
local nFirstId = GDB_ID.NULL local nFirstId = GDB_ID.NULL
local nCount = 0 local nCount = 0
bOk, nFirstId, nCount = EgtTrimmingInterpolateSyncLines( nLayerEditId, nFirstSync, nSecondSync, vnBzCrvId[1], vnBzCrvId[2], dEdgeLinTol, dEdgeAngTol) bOk, nFirstId, nCount = EgtTrimmingInterpolateSyncLines( nLayerEditId, nFirstSync, nSecondSync, vnBzCrvId[1], vnBzCrvId[2], dEdgeLinTol, dEdgeAngTol)
if not bOk or nFirstId == GDB_ID.NULL or nCount == 0 then if not bOk then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Invalid Interpolation', 'Error', 'ERROR', 'OK') EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Invalid Interpolation', 'Error', 'ERROR', 'OK')
return return
end end
@@ -73,9 +73,15 @@ end
-- Cambio il colore alle due Linee di Sincronizzaione selezionate e alle nuove calcolate -- Cambio il colore alle due Linee di Sincronizzaione selezionate e alle nuove calcolate
EgtSetColor( nFirstSync, SYNC_LINE_INTERP_COLOR) EgtSetColor( nFirstSync, SYNC_LINE_INTERP_COLOR)
EgtSetColor( nSecondSync, SYNC_LINE_INTERP_COLOR) EgtSetColor( nSecondSync, SYNC_LINE_INTERP_COLOR)
for i = 0, nCount do if nFirstId ~= GDB_ID.NULL and nCount > 0 then
EgtSetColor( nFirstId + i, SYNC_LINE_INTERP_COLOR) local vNewIds = {}
EgtSetName( nFirstId + i, SYNC_LINE_NAME) for i = 0, nCount do
EgtSetColor( nFirstId + i, SYNC_LINE_INTERP_COLOR)
EgtSetName( nFirstId + i, SYNC_LINE_NAME)
table.insert( vNewIds, nFirstId + i)
end
-- Memorizzo gli Id delle curve inserite
EgtSetInfo( nLayerEditId, KEY_SYNC_LINES_INTERPOLATION_IDS, vNewIds)
end end
-- Metto il Focus sul Layer di Sincronizzazione delle curve -- Metto il Focus sul Layer di Sincronizzazione delle curve
+41
View File
@@ -0,0 +1,41 @@
-- ResetInterpSyncLines.lua by Egalware s.r.l. 2026/02/23
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Carico le costanti di Trimming
EgtAddToPackagePath( EgtGetSourceDir() .. '?.lua')
local GlobVar = require( 'TrimmingLib')
-- Costante di Errore
local ERROR_EDIT_SYNC_CURVES = 'Error in Edit Sync Curves : '
-- Recupero il Part e Layer di Trimming corrente
local nCurrPartId = EgtGetCurrPart()
local nCurrLayerId = EgtGetCurrLayer()
local nTrimmingLayer = GlobVar.GetTrimmingLayerRefId( nCurrLayerId)
if not nTrimmingLayer or nTrimmingLayer == GDB_ID.NULL then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Not a valid Trimming Layer', 'Error', 'ERROR', 'OK')
return
end
-- Recupero il Layer di Edit
local nLayerEditId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId, nTrimmingLayer)
if ( not nLayerEditId or nLayerEditId == GDB_ID.NULL) then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Not a valid Edit mode created', 'Error', 'ERROR', 'OK')
return
end
-- Chiedo all'Utente la conferma dell'operazione
local bRemove = EgtOutBox( 'Do you want to remove the last Interpolated Sync Lines ?', 'Deleting', 'QUESTION', 'YESNO')
if not bRemove then return end
-- Recupero le ultime Linee di Sincronizzazione aggiunte e le elimino
local vLastSurfIds = EgtGetInfo( nLayerEditId, KEY_SYNC_LINES_INTERPOLATION_IDS, 'vi')
if vLastSurfIds ~= nil and #vLastSurfIds ~= 0 then EgtErase( vLastSurfIds) end
-- Metto il focus sul Layer di Edit delle curve di Sincronizzazione
EgtSetCurrPartLayer( nCurrPartId, nLayerEditId)
-- Aggiorno la grafica
EgtDraw()
+1 -1
View File
@@ -45,7 +45,7 @@ EgtErase( vIdToErase)
-- Se Esiste un Layer di Edit o di Stored, lo Rimuovo -- Se Esiste un Layer di Edit o di Stored, lo Rimuovo
-- [NB. La DeSelezione cancella tutti i risultati fatti fino ad adesso] -- [NB. La DeSelezione cancella tutti i risultati fatti fino ad adesso]
local nLayerSynEditId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId, nCurrLayerId) local nLayerSynEditId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId, nTrimmingLayer)
if nLayerSynEditId ~= nil and nLayerSynEditId ~= GDB_ID.NULL then EgtErase( nLayerEditId) end if nLayerSynEditId ~= nil and nLayerSynEditId ~= GDB_ID.NULL then EgtErase( nLayerEditId) end
-- Recupero l'ultima(le ultime) Supercicie(i) aggiunta(e) e la(e) elimino -- Recupero l'ultima(le ultime) Supercicie(i) aggiunta(e) e la(e) elimino
+10 -10
View File
@@ -19,11 +19,11 @@ if not sFileIni then
end end
-- Recupero i Colori in Hex come stringhe -- Recupero i Colori in Hex come stringhe
local sHexSurfSelColor = GlobVar.GetColorFromRGBToHex( SELECTION_SURF_COLOR) local sHexSurfSelColor = GlobVar.GetStringFromColor( SELECTION_SURF_COLOR)
local sHexEdgeColor = GlobVar.GetColorFromRGBToHex( EDGES_COLOR) local sHexEdgeColor = GlobVar.GetStringFromColor( EDGES_COLOR)
local sHexSyncLinesColor = GlobVar.GetColorFromRGBToHex( SYNC_LINE_COLOR) local sHexSyncLinesColor = GlobVar.GetStringFromColor( SYNC_LINE_COLOR)
local sHexSyncInterpLinesColor = GlobVar.GetColorFromRGBToHex( SYNC_LINE_INTERP_COLOR) local sHexSyncInterpLinesColor = GlobVar.GetStringFromColor( SYNC_LINE_INTERP_COLOR)
local sHexRuledBzColor = GlobVar.GetColorFromRGBToHex( RULED_BZ_COLOR) local sHexRuledBzColor = GlobVar.GetStringFromColor( RULED_BZ_COLOR)
if not sHexSurfSelColor or not sHexEdgeColor or not sHexSyncLinesColor or not sHexSyncInterpLinesColor or not sHexRuledBzColor then if not sHexSurfSelColor or not sHexEdgeColor or not sHexSyncLinesColor or not sHexSyncInterpLinesColor or not sHexRuledBzColor then
EgtOutBox( ERROR_SETTINGS .. 'Error in Converting Colors', 'Error', 'ERROR', 'OK') EgtOutBox( ERROR_SETTINGS .. 'Error in Converting Colors', 'Error', 'ERROR', 'OK')
return return
@@ -38,11 +38,11 @@ local vsVal = EgtDialogBox( 'Settings', { 'Surf Selection','CP:'.. sHexSurfSelCo
if not vsVal or #vsVal ~= 5 then return end if not vsVal or #vsVal ~= 5 then return end
-- Memorizzo i nuovi colori per le variabili -- Memorizzo i nuovi colori per le variabili
local SelSurfCol = GlobVar.GetColorFromHexToRGB( vsVal[1]) local SelSurfCol = GlobVar.GetColorFromString( vsVal[1])
local EdgeColor = GlobVar.GetColorFromHexToRGB( vsVal[2]) local EdgeColor = GlobVar.GetColorFromString( vsVal[2])
local SyncLineColor = GlobVar.GetColorFromHexToRGB( vsVal[3]) local SyncLineColor = GlobVar.GetColorFromString( vsVal[3])
local SyncInterpLinesColor = GlobVar.GetColorFromHexToRGB( vsVal[4]) local SyncInterpLinesColor = GlobVar.GetColorFromString( vsVal[4])
local RuledBZColor = GlobVar.GetColorFromHexToRGB( vsVal[5]) local RuledBZColor = GlobVar.GetColorFromString( vsVal[5])
if not SelSurfCol or not EdgeColor or not SyncLineColor or not SyncInterpLinesColor or not RuledBZColor then if not SelSurfCol or not EdgeColor or not SyncLineColor or not SyncInterpLinesColor or not RuledBZColor then
EgtOutBox( ERROR_SETTINGS .. 'Error in Converting Colors', 'Error', 'ERROR', 'OK') EgtOutBox( ERROR_SETTINGS .. 'Error in Converting Colors', 'Error', 'ERROR', 'OK')
return return
+24 -23
View File
@@ -1,28 +1,29 @@
[Trimming] [Trimming]
TrimEnable=1 TrimEnable=1
SurfSelectionColor=255,255,185 SurfSelectionColor=255,255,179
EdgesColor=0,128,255 EdgesColor=0,128,255
SyncLineColor=0,255,0 SyncLineColor=0,255,0
SyncLineInterpColor=255,165,0 SyncLineInterpColor=255,43,149
RuledBzColor=37,37,37 RuledBzColor=81,162,162
BaseDir=C:\EgtData\Trimming BaseDir=C:\EgtData\Trimming
Button1=Settings.lua,Images\Settings.png,Settings Button1=NewTrimming.lua,Images\NewTrimming.png,New Trimming
Button2=Separator Button2=DeleteTrimming.lua,Images\DeleteTrimming.png, Delete Trimming
Button3=NewTrimming.lua,Images\NewTrimming.png,New Trimming Button3=Separator
Button4=DeleteTrimming.lua,Images\DeleteTrimming.png, Delete Trimming Button4=Select.lua,Images\Select.png,Select
Button5=Separator Button5=SelectHoles.lua,Images\SelectHoles.png,Select Holes
Button6=Select.lua,Images\Select.png,Select Button6=ResetSelect.lua,Images\ResetSelect.png, <-- Undo,
Button7=SelectHoles.lua,Images\SelectHoles.png,Select Holes Button7=Separator
Button8=ResetSelect.lua,Images\ResetSelect.png, <-- Undo, Button8=CalcBezierEdges.lua,Images\BezierEdges.png,Get Borders
Button9=Separator Button9=EditBezierBorders.lua,Images\EditBezierEdges.png,Edit Curves
Button10=CalcBezierEdges.lua,Images\BezierEdges.png,Get Borders Button10=ResetEditBezierBorders.lua,Images\ResetEditBezierEdges.png,<-- Undo
Button11=EditBezierBorders.lua,Images\EditBezierEdges.png,Edit Curves Button11=EndEditBezierBorders.lua,Images\EndEditBezierEdges.png,Ok
Button12=ResetEditBezierBorders.lua,Images\ResetEditBezierEdges.png,<-- Undo Button12=Separator
Button13=EndEditBezierBorders.lua,Images\EndEditBezierEdges.png,Ok Button13=EditSyncLines.lua,Images\EditSyncLines.png,Edit SyncLines
Button14=Separator Button14=InterpolateSyncLines.lua,Images\InterpolateSyncLines.png,Interpolate SyncLines
Button15=EditSyncLines.lua,Images\EditSyncLines.png,Edit SyncLines Button15=ResetInterpolateSyncLines.lua,Images\ResetInterpolateSyncLines.png,<-- Undo
Button16=InterpolateSyncLines.lua,Images\InterpolateSyncLines.png,Interpolate SyncLines Button16=ResetSyncLines.lua,Images\ResetSyncLines.png,Reset SyncLines
Button17=ResetSyncLines.lua,Images\ResetSyncLines.png,Reset SyncLines Button17=Separator
Button18=Separator Button18=CalcBezier.lua,Images\BezierSurf.png,Get Surf
Button19=CalcBezier.lua,Images\BezierSurf.png,Get Surf Button19=ResetBezierSurf.lua,Images\ResetBezierSurf.png,<-- Undo
Button20=ResetBezierSurf.lua,Images\ResetBezierSurf.png,<-- Undo Button20=Separator
Button21=Settings.lua,Images\Settings.png,Settings
+32 -41
View File
@@ -25,6 +25,7 @@ KEY_AUTO_TRIMMING = 'AutoTrim' -- AutoTrimming
KEY_SYNC_LINES_NUMBER = 'SkimmingFactor' -- Skimming Sync Lines KEY_SYNC_LINES_NUMBER = 'SkimmingFactor' -- Skimming Sync Lines
KEY_SYNC_LINES_SHOW_ON_CORNERS = 'SyncLineShowOnCorners' -- Skimming Sync Lines Show on Corners KEY_SYNC_LINES_SHOW_ON_CORNERS = 'SyncLineShowOnCorners' -- Skimming Sync Lines Show on Corners
KEY_SYNC_LINES_NUMBER_ANG_TOL = 'SkimmingFactorAngTol' -- Skimming Sync Lines Tol KEY_SYNC_LINES_NUMBER_ANG_TOL = 'SkimmingFactorAngTol' -- Skimming Sync Lines Tol
KEY_SYNC_LINES_INTERPOLATION_IDS = 'SyncLineInterIds' -- Skinning Sync Lines Interpolation Ids
-- Chive per Tipologia di Layer -- Chive per Tipologia di Layer
KEY_LAYER_TYPE = 'Trimming_Layer_Type' KEY_LAYER_TYPE = 'Trimming_Layer_Type'
@@ -265,6 +266,37 @@ function TrimmingVar.GetCurrentEditSyncCurvesLayer( nPartId, nTrimmingLayerId)
return GDB_ID.NULL return GDB_ID.NULL
end end
--======================== Colori ========================
-- Funzione che recupera il colore da una stringa "nR,nG,nB" [0-255],[0-255],[0-255]
function TrimmingVar.GetColorFromString( sColor)
local sVal = EgtSplitString( sColor)
if not sVal then return nil end
if #sVal ~= 3 then return nil end
local nRed = tonumber( sVal[1])
local nGreen = tonumber( sVal[2])
local nBlue = tonumber( sVal[3])
if not nRed or not nGreen or not nBlue then return nil end
if 0 <= nRed and nRed <= 255 and 0 <= nGreen and nGreen <= 255 and 0 <= nBlue and nBlue <= 255 then
return Color3d( nRed, nGreen, nBlue)
end
return nil
end
-----------------------------------------------------------------------------
-- Funzione per convertire un Color3d ad una stringa "nR,nG,nB" [0-255],[0-255],[0-255]
function TrimmingVar.GetStringFromColor( myColor)
if not myColor then return nil end
return ( "".. myColor:getRed().. ",".. myColor:getGreen().. ",".. myColor:getBlue())
end
-----------------------------------------------------------------------------
-- Funzione per convertire Colori da Classe3d a stringa per File.ini
function TrimmingVar.GetColorForIniFile( myColor)
if not myColor then return nil end
return ( myColor:getRed().. ",".. myColor:getGreen().. ",".. myColor:getBlue())
end
--======================== Utility ======================= --======================== Utility =======================
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
@@ -300,47 +332,6 @@ function TrimmingVar.GetGlobBox( vIds)
return BBox3dGlob return BBox3dGlob
end end
-------------------------------------------------------------------------------
-- Funzione che recupera il colore da una stringa "nR,nG,nB" [0-255],[0-255],[0-255]
function TrimmingVar.GetColorFromString( sColor)
local sVal = EgtSplitString( sColor)
if not sVal then return nil end
if #sVal ~= 3 then return nil end
local nRed = tonumber( sVal[1])
local nGreen = tonumber( sVal[2])
local nBlue = tonumber( sVal[3])
if not nRed or not nGreen or not nBlue then return nil end
if 0 <= nRed and nRed <= 255 and 0 <= nGreen and nGreen <= 255 and 0 <= nBlue and nBlue <= 255 then
return Color3d( nRed, nGreen, nBlue)
end
return nil
end
-- Conversione Colori da Hex -> Color3d
function TrimmingVar.GetColorFromHexToRGB( sHex)
if not sHex then return nil end
-- Rimozione eventuale "#" iniziale
sHex = sHex:gsub( "#", "")
-- Estraggo le Coppie
local nR, nG, nB = sHex:match( "(%x%x)(%x%x)(%x%x)")
-- Restituisco il risultato
return Color3d( tonumber( nR, 16), tonumber( nG, 16), tonumber( nB, 16))
end
-- Conversione Colori da classe Color3d a Hex
function TrimmingVar.GetColorFromRGBToHex( myColor)
if not myColor then return nil end
return ( string.format("%02X", myColor:getRed()) ..
string.format("%02X", myColor:getGreen()) ..
string.format("%02X", myColor:getBlue()))
end
-- Conversione Colori da Classe3d a stringa per File.ini
function TrimmingVar.GetColorForIniFile( myColor)
if not myColor then return nil end
return ( myColor:getRed().. ",".. myColor:getGreen().. ",".. myColor:getBlue())
end
-- Inizializzazione per lettura delle variabili -- Inizializzazione per lettura delle variabili
if not TrimmingVar.bInit then if not TrimmingVar.bInit then
local sFileIni = EgtGetIniFile() local sFileIni = EgtGetIniFile()
+2 -2
View File
@@ -2,5 +2,5 @@
-- Gestione della versione di Trimming dei Termoformati -- Gestione della versione di Trimming dei Termoformati
NAME = 'Trimming' NAME = 'Trimming'
VERSION = '3.1a7' VERSION = '3.1b1'
MIN_EXE = '3.1a7' MIN_EXE = '3.1b1'