Files
trimming/Params.lua
Daniele Bariletti 03434ce575 Trimming :
- aggiornato file NewTrimming che ora sarà IL BOTTONE. Chiamando quello inizia il workflow e si viene guidati fino alla fine.
- aggiunto il file Params, che verrà chiamato dal bottone Options.
2026-09-09 10:19:42 +02:00

138 lines
6.7 KiB
Lua

-- Params.lua by Egalware s.r.l. 2026/09/01
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Carico le costanti di Trimming
EgtAddToPackagePath( EgtGetSourceDir() .. '?.lua')
local GlobVar = require( 'TrimmingLib')
-- Costante di Errore
local ERROR_SETTINGS = 'Error in Settings : '
local nCurrPartId, nCurrLayerId = ...
-- Recupero il File Ini
local sFileIni = EgtGetIniFile()
if not sFileIni then
EgtOutBox( ERROR_SETTINGS .. '.ini File not Found', 'Error', 'ERROR', 'OK')
return
end
---- parametri di inserimento superficie
local sSurfTypeSel = 'CB:'..SURF_SEL_LABEL[1]..',*'..SURF_SEL_LABEL[2]
local dStripSize = STRIP_SIZE
local dStripTol = STRIP_SIZE_TOL
----- parametri di creazione edge
local sEdgeCreationType = 'CB:'.. EDGE_CREATION_LABEL[1]..',*'..EDGE_CREATION_LABEL[2]
local dLinTolForEdges = LIN_TOL
local dAngTolForEdges = ANG_TOL
-- Recupero i Colori in Hex come stringhe
local sHexSurfSelColor = GlobVar.GetStringFromColor( SELECTION_SURF_COLOR)
local sHexEdgeColor = GlobVar.GetStringFromColor( EDGES_COLOR)
local sHexSyncLinesColor = GlobVar.GetStringFromColor( SYNC_LINE_COLOR)
local sHexSyncInterpLinesColor = GlobVar.GetStringFromColor( SYNC_LINE_INTERP_COLOR)
local sHexOrientationLinesColor = GlobVar.GetStringFromColor( ORIENTATION_LINE_COLOR)
local sHexRuledBzColor = GlobVar.GetStringFromColor( RULED_BZ_COLOR)
if not sHexSurfSelColor or not sHexEdgeColor or not sHexSyncLinesColor or not sHexSyncInterpLinesColor or not sHexOrientationLinesColor or not sHexRuledBzColor then
EgtOutBox( ERROR_SETTINGS .. 'Error in Converting Colors', 'Error', 'ERROR', 'OK')
return
end
-- apro la finestra con tutti i parametri del pre-processing della geometria per la lavorazione di trimming
local vsVal = EgtDialogBox( 'Parameters and Settings',
-- tolleranze generali
{ 'Surf Linear Tolerance', tostring( LIN_TOL)},
{ 'Surf Angular Tolerance', tostring( ANG_TOL)},
{ 'Surf Norm Angular Tolerance', tostring( ANG_FACE_TOL)},
{ 'For Holes','CK:0'},
{ 'Surf Selection Type', sSurfTypeSel},
{ 'Strip Size', tostring( dStripSize)},
{ 'Strip Size Tolerance', tostring( dStripTol)},
{ 'Surf Type', sEdgeCreationType},
{ 'Edges Linear Tolerance', tostring( LIN_TOL)},
{ 'Edges Angular Tolerance', tostring( ANG_TOL)},
{ 'Surf Selection','CP:'.. sHexSurfSelColor},
{ 'Edges', 'CP:'.. sHexEdgeColor},
{ 'SyncLines', 'CP:'.. sHexSyncLinesColor},
{ 'SyncLines Interpolation', 'CP:'.. sHexSyncInterpLinesColor},
{ 'Orientation Line', 'CP:'.. sHexOrientationLinesColor},
{ 'Surf Ruled Bezier', 'CP:'.. sHexRuledBzColor})
if not vsVal or #vsVal ~= 16 then return end
-- Creo il Layer di Trimming all'interno del Part corrente e lo rendo corrente
local nAuxLay
if not nCurrLayerId then
nCurrLayerId, nAuxLay = GlobVar.CreateTrimmingLayer( nCurrPartId, ( tonumber( vsVal[4]) == 1))
if nCurrLayerId == GDB_ID.NULL then
EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Defining Layer failed', 'Error', 'ERROR', 'OK')
return
end
EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId)
end
------------- gestione parametri generali di superficie
local dLinTol = tonumber( vsVal[1])
local dAngTol = tonumber( vsVal[2])
local dAngFaceTol = tonumber( vsVal[3])
local bOk = EgtSetInfo( nCurrLayerId, MCH_TRIMMING.KEY_LIN_TOL, dLinTol) and
EgtSetInfo( nCurrLayerId, MCH_TRIMMING.KEY_ANG_TOL, dAngTol) and
EgtSetInfo( nCurrLayerId, MCH_TRIMMING.KEY_SURF_ANG_TOL, dAngFaceTol)
if not bOk then
EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Saving Tolerances failed', 'Error', 'ERROR', 'OK')
EgtErase( nCurrLayerId)
return
end
--------- parametri di inserimento superfici
STRIP_SIZE = tonumber( vsVal[6])
STRIP_SIZE_TOL = tonumber( vsVal[7])
EgtSetInfo( nCurrLayerId, MCH_TRIMMING.KEY_SURF_BORDER_SIZE, STRIP_SIZE)
EgtSetInfo( nCurrLayerId, MCH_TRIMMING.KEY_SURF_BORDER_SIZE_TOL, STRIP_SIZE_TOL)
EgtSetInfo( nCurrLayerId, MCH_TRIMMING.KEY_SELECTION_LAST_SELECTION_TYPE, SURF_SEL_LABEL[vsVal[5]])
--------- parametri di creazione degli edges
EgtSetInfo( nCurrLayerId, MCH_TRIMMING.KEY_EDGES_CREATION_TYPE, EDGE_CREATION_LABEL[vsVal[8]])
dLinTolForEdges = tonumber( vsVal[9])
dAngTolForEdges = tonumber( vsVal[10])
-- Salvo le Tolleranze nel Layer di Trimming
EgtSetInfo( nCurrLayerId, MCH_TRIMMING.KEY_LIN_TOL_EDGES, dLinTolForEdges)
EgtSetInfo( nCurrLayerId, MCH_TRIMMING.KEY_ANG_TOL_EDGES, dAngTolForEdges)
------------------GESTIONE COLORI
-- Memorizzo i nuovi colori per le variabili
local SelSurfCol = GlobVar.GetColorFromString( vsVal[11])
local EdgeColor = GlobVar.GetColorFromString( vsVal[12])
local SyncLineColor = GlobVar.GetColorFromString( vsVal[13])
local SyncInterpLinesColor = GlobVar.GetColorFromString( vsVal[14])
local OrientationLinesColor = GlobVar.GetColorFromString( vsVal[15])
local RuledBZColor = GlobVar.GetColorFromString( vsVal[16])
if not SelSurfCol or not EdgeColor or not SyncLineColor or not SyncInterpLinesColor or not OrientationLinesColor or not RuledBZColor then
EgtOutBox( ERROR_SETTINGS .. 'Error in Converting Colors', 'Error', 'ERROR', 'OK')
return
end
-- Le nuove variabili di colore vengono aggiornate
SELECTION_SURF_COLOR = GlobVar.SetColorSurfSelection( SelSurfCol)
EDGES_COLOR = GlobVar.SetColorEdges( EdgeColor)
SYNC_LINE_COLOR = GlobVar.SetColorSyncLines( SyncLineColor)
SYNC_LINE_INTERP_COLOR = GlobVar.SetColorSyncInterpLines( SyncInterpLinesColor)
ORIENTATION_LINE_COLOR = GlobVar.SetColorOrientationLines( OrientationLinesColor)
RULED_BZ_COLOR = GlobVar.SetColorRuledBz( RuledBZColor)
-- Aggiorno i Valori Memorizzati all'interno del File .ini
EgtWriteStringToIni( KEY_SECTION_NAME, KEY_INI_SELECTION_SURF_COLOR, GlobVar.GetColorForIniFile( SELECTION_SURF_COLOR), sFileIni)
EgtWriteStringToIni( KEY_SECTION_NAME, KEY_INI_EDGES_COLOR, GlobVar.GetColorForIniFile( EDGES_COLOR), sFileIni)
EgtWriteStringToIni( KEY_SECTION_NAME, KEY_INI_SYNC_LINE_COLOR, GlobVar.GetColorForIniFile( SYNC_LINE_COLOR), sFileIni)
EgtWriteStringToIni( KEY_SECTION_NAME, KEY_INI_SYNC_INTERP_COLOR, GlobVar.GetColorForIniFile( SYNC_LINE_INTERP_COLOR), sFileIni)
EgtWriteStringToIni( KEY_SECTION_NAME, KEY_INI_ORIENTATION_COLOR, GlobVar.GetColorForIniFile( ORIENTATION_LINE_COLOR), sFileIni)
EgtWriteStringToIni( KEY_SECTION_NAME, KEY_INI_RULED_BZ_COLOR, GlobVar.GetColorForIniFile( RULED_BZ_COLOR), sFileIni)
return nCurrLayerId