Trimming 3.1a4 :

- aggiunta memorizzazione dell'ulltimo tipo selezionato nella modalità selezione
- se le superfici di selezione generano più di 2 curve di bordo allora vengono definiti degli altri layer di trimming
- semplificazione gestione dei layer di sincronizzazione delle curve
- aggiunta funzionalità di rimozione delle superfici di Bezier in un layer di trimmatura
- miglioramento nella selezione delle curve di sincronizzazione nel caso di curve di bordo chiuse o aperte.
This commit is contained in:
Riccardo Elitropi
2026-01-22 19:21:28 +01:00
parent 068124cd30
commit dfa187838b
16 changed files with 230 additions and 245 deletions
+2 -1
View File
@@ -40,7 +40,7 @@ EgtErase( vIdToErase)
-- ( ed eventuali Punti di Sincronizzazione se presenti nel Layer di Salvataggio ) -- ( ed eventuali Punti di Sincronizzazione se presenti nel Layer di Salvataggio )
local vIdEdges = {} local vIdEdges = {}
local vIdSyncLines = {} local vIdSyncLines = {}
local nLayerStoredSyncId = GlobVar.GetCurrentStoredCurvesLayer( nCurrPartId) local nLayerStoredSyncId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId, nCurrLayerId)
if nLayerStoredSyncId and nLayerStoredSyncId ~= GDB_ID.NULL then if nLayerStoredSyncId and nLayerStoredSyncId ~= GDB_ID.NULL then
-- Recupero gli Id delle Linee di sincronizzazione -- Recupero gli Id delle Linee di sincronizzazione
nId = EgtGetFirstInGroup( nLayerStoredSyncId) nId = EgtGetFirstInGroup( nLayerStoredSyncId)
@@ -107,4 +107,5 @@ end
EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId) EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId)
EgtSetStatus( nCurrLayerId, GDB_ST.ON) EgtSetStatus( nCurrLayerId, GDB_ST.ON)
-- Aggiorno la Grafica
EgtDraw() EgtDraw()
+41 -45
View File
@@ -46,12 +46,12 @@ EgtSetStatus( nCurrLayerId, GDB_ST.ON)
nId = EgtGetFirstInGroup( nCurrPartId) nId = EgtGetFirstInGroup( nCurrPartId)
while nId do while nId do
if nId ~= nCurrLayerId and if nId ~= nCurrLayerId and
( GlobVar.IsTrimmingLayer( nId) or GlobVar.IsEditOrStoredLayer( nId)) then EgtSetStatus( nId, GDB_ST.OFF) end ( GlobVar.IsTrimmingLayer( nId) or GlobVar.IsEditSyncCurvesLayer( nId)) then EgtSetStatus( nId, GDB_ST.OFF) end
nId = EgtGetNext( nId) nId = EgtGetNext( nId)
end end
-- Rimuovo Tutte le Entità ad Eccezione delle Superfici Selezionate ( nel caso Le rendo Visibili) -- Rimuovo Tutte le Entità ad Eccezione delle Superfici Selezionate ( nel caso Le rendo Visibili)
-- [NB. La Selezione cancella tutti i risutati fatti fino ad adesso] -- [NB. La Creazione deli Edges cancella tutti i risutati fatti fino ad adesso]
local vIdToErase = {} local vIdToErase = {}
local nId = EgtGetFirstInGroup( nCurrLayerId) local nId = EgtGetFirstInGroup( nCurrLayerId)
while nId do while nId do
@@ -62,10 +62,6 @@ while nId do
end end
EgtErase( vIdToErase) EgtErase( vIdToErase)
-- Se Esiste un Layer di Edit o di Stored, lo Rimuovo
local vEditOrStoredLayerIds = GlobVar.GetAllEditOrStoredLayer( nCurrPartId, nCurrLayerId)
if vEditOrStoredLayerIds ~= nil and #vEditOrStoredLayerIds ~= 0 then EgtErase( nLayerEditId) end
-- Scorro le superfici di Selezione presenti e recupero il vettore di Selezione {nSurf, nFace} -- Scorro le superfici di Selezione presenti e recupero il vettore di Selezione {nSurf, nFace}
local vSel = {} local vSel = {}
local nSelSurfId = EgtGetFirstNameInGroup( nCurrLayerId, SELECTION_SURF_NAME) local nSelSurfId = EgtGetFirstNameInGroup( nCurrLayerId, SELECTION_SURF_NAME)
@@ -84,8 +80,8 @@ if #vSel == 0 then
EgtOutBox( ERROR_RAW_EDGE_CREATION .. 'No Selected Surf', 'Error', 'ERROR', 'OK') EgtOutBox( ERROR_RAW_EDGE_CREATION .. 'No Selected Surf', 'Error', 'ERROR', 'OK')
return return
end end
local nFirstId, nCount
local nFirstId, nCount
--------------------------------- Estrazione degli Edges --------------------------------- --------------------------------- Estrazione degli Edges ---------------------------------
if vsVal[1] == 'Extract Edges' then if vsVal[1] == 'Extract Edges' then
-- Recupero la tolleranza lineare per l'estrazione degli Edges -- Recupero la tolleranza lineare per l'estrazione degli Edges
@@ -107,7 +103,6 @@ if vsVal[1] == 'Extract Edges' then
return return
end end
end end
--------------------------------- Calcolo Edges per normali --------------------------------- --------------------------------- Calcolo Edges per normali ---------------------------------
else else
-- Recupero la tolleranza lineare per l'estrazione degli Edges e la Thickness -- Recupero la tolleranza lineare per l'estrazione degli Edges e la Thickness
@@ -122,46 +117,47 @@ else
EgtOutBox( ERROR_EDGE_CREATION .. 'Error in Computing Edges', 'Error', 'ERROR', 'OK') EgtOutBox( ERROR_EDGE_CREATION .. 'Error in Computing Edges', 'Error', 'ERROR', 'OK')
return return
end end
-- Assegno Colore e Name end
for i = 0, nCount - 1 do
bOk = EgtSetColor( nFirstId + i, EDGES_COLOR) and -- Assegno Colore e Name
EgtSetName( nFirstId + i, EDGES_NAME) for i = 0, nCount - 1 do
if not bOk then bOk = EgtSetColor( nFirstId + i, EDGES_COLOR) and
EgtOutBox( ERROR_EDGE_CREATION .. 'Assign Raw Edges Properties failed', 'Error', 'ERROR', 'OK') EgtSetName( nFirstId + i, EDGES_NAME)
if not bOk then
EgtOutBox( ERROR_EDGE_CREATION .. 'Assign Raw Edges Properties failed', 'Error', 'ERROR', 'OK')
return
end
end
-- Se più di due curve, definisco dei nuovi Layer di Trimming
if nCount > 2 then
for i = 2, nCount - 1, 2 do
-- Definisco un nuovo Layer di trimming
local nNewTrimmingLayer = GlobVar.CreateTrimmingLayer( nCurrPartId)
if nCurrLayerId == GDB_ID.NULL then
EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Defining Layer failed', 'Error', 'ERROR', 'OK')
return return
end end
end -- Copio proprietà
-- Se più di due curve, definisco dei nuovi Layer di Trimming bOk = EgtSetInfo( nNewTrimmingLayer, KEY_LIN_TOL, dLinTol) and
if nCount > 2 then EgtSetInfo( nNewTrimmingLayer, KEY_ANG_TOL, dAngTol) and
for i = 2, nCount - 1, 2 do EgtSetInfo( nNewTrimmingLayer, KEY_SURF_ANG_TOL, dAngFaceTol) and
-- Definisco un nuovo Layer di trimming EgtSetInfo( nNewTrimmingLayer, KEY_LIN_TOL_EDGES, dEdgeLinTol)
local nNewTrimmingLayer = GlobVar.CreateTrimmingLayer( nCurrPartId) if not bOk then
if nCurrLayerId == GDB_ID.NULL then EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Saving Tolerances failed', 'Error', 'ERROR', 'OK')
EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Defining Layer failed', 'Error', 'ERROR', 'OK') EgtErase( nNewTrimmingLayer)
return return
end
-- Copio proprietà
bOk = EgtSetInfo( nNewTrimmingLayer, KEY_LIN_TOL, dLinTol) and
EgtSetInfo( nNewTrimmingLayer, KEY_ANG_TOL, dAngTol) and
EgtSetInfo( nNewTrimmingLayer, KEY_SURF_ANG_TOL, dAngFaceTol) and
EgtSetInfo( nNewTrimmingLayer, KEY_LIN_TOL_EDGES, dEdgeLinTol)
if not bOk then
EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Saving Tolerances failed', 'Error', 'ERROR', 'OK')
EgtErase( nNewTrimmingLayer)
return
end
-- Copio tutte le entità di tale gruppo ( ad eccezzione delle curve)
local nOldId = EgtGetFirstInGroup( nCurrLayerId)
while nOldId do
local sName = EgtGetName( nOldId)
if sName ~= EDGES_NAME then
local nNewId = EgtCopyGlob( nOldId, nNewTrimmingLayer)
end
nOldId = EgtGetNext( nOldId)
end
EgtRelocate( nFirstId + i, nNewTrimmingLayer)
EgtRelocate( nFirstId + i + 1, nNewTrimmingLayer)
end end
-- Copio tutte le entità di tale gruppo ( ad eccezzione delle curve)
local nOldId = EgtGetFirstInGroup( nCurrLayerId)
while nOldId do
local sName = EgtGetName( nOldId)
if sName ~= EDGES_NAME then
local nNewId = EgtCopyGlob( nOldId, nNewTrimmingLayer)
end
nOldId = EgtGetNext( nOldId)
end
EgtRelocate( nFirstId + i, nNewTrimmingLayer)
EgtRelocate( nFirstId + i + 1, nNewTrimmingLayer)
end end
end end
+6 -8
View File
@@ -10,10 +10,6 @@ local GlobVar = require( 'TrimmingLib')
-- Costante di Errore -- Costante di Errore
local ERROR_DELETING_TRIMMING = 'Error in Deleting New Trimming : ' local ERROR_DELETING_TRIMMING = 'Error in Deleting New Trimming : '
-- Chiedo all'Utente la conferma per eliminare il Layer di Trimming corrente ed eventuali gruppi temporanei
local bDelete = EgtOutBox( 'Do you want to delete the current Trimming machining ?', 'Deleting', 'QUESTION', 'YESNO')
if not bDelete then return end
-- Recupero il Part e il Layer corrente di Trimming -- Recupero il Part e il Layer corrente di Trimming
local nCurrPartId = EgtGetCurrPart() local nCurrPartId = EgtGetCurrPart()
local nCurrLayerId = EgtGetCurrLayer() local nCurrLayerId = EgtGetCurrLayer()
@@ -28,12 +24,14 @@ if nTrimmingLayerId == nil or nTrimmingLayerId == GDB_ID.NULL then
return return
end end
-- Recupero tutti i layer di Edit e di Stored associati a tale Layer di Trimmatura -- Chiedo all'Utente la conferma per eliminare il Layer di Trimming corrente ed eventuali gruppi temporanei
local vLayerIdToErase = GlobVar.GetAllEditOrStoredLayer( nCurrPartId, nTrimmingLayerId) local bDelete = EgtOutBox( 'Do you want to delete the current Trimming machining ?', 'Deleting', 'QUESTION', 'YESNO')
if not bDelete then return end
-- Elimino tutti i Layer ricavati -- Recupero ed eventualmente elimino il Layer delle curve di Sincronizzazione associato
local nLayerSynEditId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId, nCurrLayerId)
if nLayerSynEditId ~= nil and nLayerSynEditId ~= GDB_ID.NULL then EgtErase( nLayerSynEditId) end
EgtErase( nTrimmingLayerId) EgtErase( nTrimmingLayerId)
EgtErase( vLayerIdToErase)
-- Aggiorno la Grafica -- Aggiorno la Grafica
EgtDraw() EgtDraw()
-1
View File
@@ -83,7 +83,6 @@ if #vnBzCrvId == 0 then
EgtErase( nLayerEditId) EgtErase( nLayerEditId)
return return
end end
-- ??? EgtSetStatus( nCurrLayerId, GDB_ST.OFF)
-- Imposto come Layer corrente quello di Edit -- Imposto come Layer corrente quello di Edit
EgtSetCurrPartLayer( nCurrPartId, nLayerEditId) EgtSetCurrPartLayer( nCurrPartId, nLayerEditId)
+66 -80
View File
@@ -27,20 +27,18 @@ if not bOk then
return return
end end
-- Creo un Layer di Edit per le curve di Sincronizzazione ( o recupero quello corrente) -- Creo/Recupero il Layer di Edit per le curve di Sincronizzazione
local nLayerEditSyncId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId) local nLayerEditSyncId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId, nCurrLayerId)
if not nLayerEditSyncId or nLayerEditSyncId == GDB_ID.NULL then if nLayerEditSyncId ~= nil and nLayerEditSyncId ~= GDB_ID.NULL then
nLayerEditSyncId = GlobVar.CreateEditSyncCurvesLayer( nCurrPartId, nCurrLayerId)
else
local bClear = EgtOutBox( 'Do you want to delete the edit Layer ?', 'Edit', 'QUESTION', 'YESNO') local bClear = EgtOutBox( 'Do you want to delete the edit Layer ?', 'Edit', 'QUESTION', 'YESNO')
if bClear then if bClear then EgtErase( nLayerEditSyncId)
EgtErase( nLayerEditSyncId) else
EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId) EgtSetCurrPartLayer( nCurrPartId, nLayerEditSyncId)
EgtSetStatus( nCurrLayerId, GDB_ST.ON)
EgtDraw() EgtDraw()
return
end end
return
end end
nLayerEditSyncId = GlobVar.CreateEditSyncCurvesLayer( nCurrPartId, nCurrLayerId)
if not nLayerEditSyncId or nLayerEditSyncId == GDB_ID.NULL then if not nLayerEditSyncId or nLayerEditSyncId == GDB_ID.NULL then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Error in creating Edit Layer', 'Error', 'ERROR', 'OK') EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Error in creating Edit Layer', 'Error', 'ERROR', 'OK')
return return
@@ -53,82 +51,70 @@ while nId do
nId = EgtGetNext( nId) nId = EgtGetNext( nId)
end end
-- Se Esiste il Layer di Sistema con le Curve di Sincronizzazione già salvate, allora le rialloco local vIdEdges = {}
local nLayerSaveSyncId = GlobVar.GetCurrentStoredCurvesLayer( nCurrPartId) nId = EgtGetFirstInGroup( nCurrLayerId)
if nLayerSaveSyncId and nLayerSaveSyncId ~= GDB_ID.NULL then while nId do
local nId = EgtGetFirstInGroup( nLayerSaveSyncId) -- verifico che sia una Curva e che sia di Bordo
while nId do if EgtGetName( nId) == EDGES_NAME then
EgtRelocateGlob( nId, nLayerEditSyncId) -- Verifico che sia una Curva
nId = EgtGetNext( nId) local nType = EgtGetType( nId)
end if nType ~= GDB_TY.CRV_LINE and nType ~= GDB_TY.CRV_ARC and nType ~= GDB_TY.CRV_BEZ and nType ~= GDB_TY.CRV_COMPO then
-- In Caso contrario Le Calcolo EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Invalid Curve Selected', 'Error', 'ERROR', 'OK')
else return
-- Recupero le Curve di Bordo correnti e da esse estraggo quelle di Sincronizzazione
local vIdEdges = {}
nId = EgtGetFirstInGroup( nCurrLayerId)
while nId do
-- verifico che sia una Curva e che sia di Bordo
if EgtGetName( nId) == EDGES_NAME then
-- Verifico che sia una Curva
local nType = EgtGetType( nId)
if nType ~= GDB_TY.CRV_LINE and nType ~= GDB_TY.CRV_ARC and nType ~= GDB_TY.CRV_BEZ and nType ~= GDB_TY.CRV_COMPO then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Invalid Curve Selected', 'Error', 'ERROR', 'OK')
return
end
table.insert( vIdEdges, nId)
end end
nId = EgtGetNext( nId) table.insert( vIdEdges, nId)
end
-- Se nel gruppo di Edit delle curve non ne ho esattamente 2 di bordo, errore
if #vIdEdges ~= 2 then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Not 2 Border Curves detected', 'Error', 'ERROR', 'OK')
EgtSetStatus( nCurrLayerId, GDB_ST.ON)
EgtErase( nLayerEditSyncId)
return
end end
nId = EgtGetNext( nId)
end
-- Se nel gruppo di Edit delle curve non ne ho esattamente 2 di bordo, errore
if #vIdEdges ~= 2 then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Not 2 Border Curves detected', 'Error', 'ERROR', 'OK')
EgtSetStatus( nCurrLayerId, GDB_ST.ON)
EgtErase( nLayerEditSyncId)
return
end
-- Chiedo i Parametri all'Utente -- Chiedo i Parametri all'Utente
local nSyncLinesNumber = EgtGetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER, 'i') local nSyncLinesNumber = EgtGetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER, 'i')
local bShowOnCorners = EgtGetInfo( nCurrLayerId, KEY_SYNC_LINES_SHOW_ON_CORNERS, 'b') local bShowOnCorners = EgtGetInfo( nCurrLayerId, KEY_SYNC_LINES_SHOW_ON_CORNERS, 'b')
local dSyncLinesAngTol = EgtGetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER_ANG_TOL, 'd') local dSyncLinesAngTol = EgtGetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER_ANG_TOL, 'd')
if not nSyncLinesNumber or nSyncLinesNumber < 0. then nSyncLinesNumber = SYNC_LINES_NUMBER end if not nSyncLinesNumber or nSyncLinesNumber < 0. then nSyncLinesNumber = SYNC_LINES_NUMBER end
if bShowOnCorners == nil then bShowOnCorners = true end if bShowOnCorners == nil then bShowOnCorners = true end
if bShowAllLines == nil then bShowAllLines = false end if bShowAllLines == nil then bShowAllLines = false end
if not dSyncLinesAngTol or dSyncLinesAngTol < 0. then dSyncLinesAngTol = SYNC_LINES_ANG_TOL end if not dSyncLinesAngTol or dSyncLinesAngTol < 0. then dSyncLinesAngTol = SYNC_LINES_ANG_TOL end
local vsVal = EgtDialogBox( 'Seletion', { 'Show on Corners', 'CK:' .. ( bShowOnCorners and '1' or '0')}, local vsVal = EgtDialogBox( 'Seletion', { 'Show on Corners', 'CK:' .. ( bShowOnCorners and '1' or '0')},
{ 'Angular Tolerance', tostring( dSyncLinesAngTol)}, { 'Angular Tolerance', tostring( dSyncLinesAngTol)},
{ 'Line Number', tostring( nSyncLinesNumber)}) { 'Line Number', tostring( nSyncLinesNumber)})
if not vsVal or #vsVal ~= 3 then if not vsVal or #vsVal ~= 3 then
EgtErase( nLayerEditSyncId) EgtErase( nLayerEditSyncId)
EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId) EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId)
return return
end end
bShowOnCorners = ( vsVal[1] == '1') bShowOnCorners = ( vsVal[1] == '1')
dSyncLinesAngTol = tonumber( vsVal[2]) dSyncLinesAngTol = tonumber( vsVal[2])
nSyncLinesNumber = tonumber( vsVal[3]) nSyncLinesNumber = tonumber( vsVal[3])
EgtSetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER, nSyncLinesNumber) EgtSetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER, nSyncLinesNumber)
EgtSetInfo( nCurrLayerId, KEY_SYNC_LINES_SHOW_ON_CORNERS, bShowOnCorners) EgtSetInfo( nCurrLayerId, KEY_SYNC_LINES_SHOW_ON_CORNERS, bShowOnCorners)
EgtSetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER_ANG_TOL, dSyncLinesAngTol) EgtSetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER_ANG_TOL, dSyncLinesAngTol)
-- Recupero le Curve di Sincronizzazione -- Recupero le Curve di Sincronizzazione
local nFirstId, nCount local nFirstId, nCount
bOk, nFirstId, nCount = EgtTrimmingGetSurfBzSyncPoints( nLayerEditSyncId, vIdEdges[1], vIdEdges[2], dLinTol, dSyncLinesAngTol, nSyncLinesNumber, bShowOnCorners) bOk, nFirstId, nCount = EgtTrimmingGetSurfBzSyncPoints( nLayerEditSyncId, vIdEdges[1], vIdEdges[2], dLinTol, dSyncLinesAngTol, nSyncLinesNumber, bShowOnCorners)
if not bOk then if not bOk then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Error in Computing Sync Lines', 'Error', 'ERROR', 'OK') EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Error in Computing Sync Lines', 'Error', 'ERROR', 'OK')
EgtErase( nLayerEditSyncId) EgtErase( nLayerEditSyncId)
EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId) EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId)
return return
end end
-- Assegno Colore e Name -- Assegno Colore e Name
nId = EgtGetFirstInGroup( nLayerEditSyncId) nId = EgtGetFirstInGroup( nLayerEditSyncId)
while nId do while nId do
if nId >= nFirstId then if nId >= nFirstId then
EgtSetColor( nId, SYNC_LINE_COLOR) EgtSetColor( nId, SYNC_LINE_COLOR)
EgtSetName( nId, SYNC_LINE_NAME) EgtSetName( nId, SYNC_LINE_NAME)
end
nId = EgtGetNext( nId)
end end
nId = EgtGetNext( nId)
end end
-- Imposto il gruppo di Edit Corrente -- Imposto il gruppo di Edit Corrente
+4 -1
View File
@@ -53,7 +53,10 @@ while nId do
table.insert( vIdToRelocate, nId) table.insert( vIdToRelocate, nId)
nId = EgtGetNext( nId) nId = EgtGetNext( nId)
end end
for i = 1, #vIdToRelocate do EgtRelocate( vIdToRelocate[i], nCurrLayerId) end for i = 1, #vIdToRelocate do
EgtRelocate( vIdToRelocate[i], nCurrLayerId)
EgtSetStatus( vIdToRelocate[i], GDB_ST.ON)
end
-- Cancello il Layer di Edit e rendo quello di Trimming come corrente -- Cancello il Layer di Edit e rendo quello di Trimming come corrente
EgtErase( nLayerEditId) EgtErase( nLayerEditId)
Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

+3 -7
View File
@@ -18,9 +18,9 @@ if nCurrPartId == nil then
end end
-- Chiedo all'utente le Tolleranze e le Salvo come Info nel Layer di Trimming -- Chiedo all'utente le Tolleranze e le Salvo come Info nel Layer di Trimming
local vsVal = EgtDialogBox( 'New Trimming', { 'Linear Tolerance', '0.05'}, local vsVal = EgtDialogBox( 'New Trimming', { 'Linear Tolerance', tostring( LIN_TOL)},
{ 'Angular Tolerance', '15.0'}, { 'Angular Tolerance', tostring( ANG_TOL)},
{ 'Surface Angular Tolerance', '30.0'}) { 'Surface Angular Tolerance', tostring( ANG_FACE_TOL)})
if not vsVal or #vsVal ~= 3 then return end if not vsVal or #vsVal ~= 3 then return end
-- Creo il Layer di Trimming all'interno del Part corrente e lo rendo corrente -- Creo il Layer di Trimming all'interno del Part corrente e lo rendo corrente
@@ -46,9 +46,5 @@ if not bOk then
return return
end end
-- Cancello tutti i Layer Temporanei ( Quindi di Stored o di Edit)
local vIdToErase = GlobVar.GetAllEditOrStoredLayer( nCurrPartId, nCurrLayerId)
if vIdToErase ~= nil and #vIdToErase ~= 1 then EgtErase( vIdToErase) end
-- Aggiorno la Grafica -- Aggiorno la Grafica
EgtDraw() EgtDraw()
+36
View File
@@ -0,0 +1,36 @@
-- CalcBezier.lua by Egalware s.r.l. 2026/01/22
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Carico le costanti di Trimming
EgtAddToPackagePath( EgtGetSourceDir() .. '?.lua')
local GlobVar = require( 'TrimmingLib')
-- Costante di Errore
local ERROR_BEZIER_CREATION = 'Error in Ruled Bezier Creation : '
-- Recupero il Part e il Layer di Trimming con le relative Info
local nCurrPartId = EgtGetCurrPart()
local nCurrLayerId = GlobVar.GetTrimmingLayerRefId( EgtGetCurrLayer())
if not GlobVar.IsTrimmingLayer( nCurrLayerId) then
EgtOutBox( ERROR_BEZIER_CREATION .. 'Not a valid Trimming Layer', 'Error', 'ERROR', 'OK')
return
end
-- Chiedo Conferma dell'Operazione
local bDelete = EgtOutBox( 'Do you want erase the Bezier Surface ?', 'Confirm', 'QUESTION', 'YESNO')
if not bDelete then EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId) return end
-- Rimuovo tutte le entità che sono Superfici di Bezier Ruled nel Layer corrente
local vIdToErase = {}
local nId = EgtGetFirstInGroup( nCurrLayerId)
while nId do
local sName = EgtGetName( nId)
if sName == RULED_BZ_NAME then table.insert( vIdToErase, nId) end
nId = EgtGetNext( nId)
end
EgtErase( vIdToErase)
-- Aggiorno la Grafica
EgtDraw()
+7
View File
@@ -41,5 +41,12 @@ EgtErase( nLayerEditId)
EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId) EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId)
EgtSetStatus( nCurrLayerId, GDB_ST.ON) EgtSetStatus( nCurrLayerId, GDB_ST.ON)
-- Imposto le Curve di Bordo come visibili
local nId = EgtGetFirstInGroup( nCurrLayerId)
while nId do
if EgtGetName( nId) == EDGES_NAME then EgtSetStatus( nId, GDB_ST.ON) end
nId = EgtGetNext( nId)
end
-- Aggiorno la Grafica -- Aggiorno la Grafica
EgtDraw() EgtDraw()
+4 -3
View File
@@ -43,9 +43,10 @@ while nId do
end end
EgtErase( vIdToErase) EgtErase( vIdToErase)
-- Se Esiste un Layer di Edit o di Store, lo Rimuovo -- Se Esiste un Layer di Edit o di Stored, lo Rimuovo
local vEditOrStoreLayerIds = GlobVar.GetAllEditOrStoredLayer( nTrimmingLayer) -- [NB. La DeSelezione cancella tutti i risultati fatti fino ad adesso]
if vEditOrStoreLayerIds ~= nil and #vEditOrStoreLayerIds ~= 0 then EgtErase( vEditOrStoreLayerIds) end local nLayerSynEditId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId, nCurrLayerId)
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
local vLastSurfIds = EgtGetInfo( nTrimmingLayer, KEY_SELECTION_LAST_IDS, 'vi') local vLastSurfIds = EgtGetInfo( nTrimmingLayer, KEY_SELECTION_LAST_IDS, 'vi')
+3 -5
View File
@@ -18,10 +18,9 @@ if not GlobVar.IsTrimmingLayer( nCurrLayerId) then
return return
end end
-- Recupero il Layer di Edit e di Store delle Curve di Sync -- Recupero il Layer di Edit
local nLayerEditId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId) local nLayerEditId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId, nCurrLayerId)
local nLayerStoreId = GlobVar.GetCurrentStoredCurvesLayer( nCurrPartId) if ( not nLayerEditId or nLayerEditId == GDB_ID.NULL) then
if ( not nLayerEditId or nLayerEditId == GDB_ID.NULL) and ( not nLayerStoreId or nLayerStoreId == GDB_ID.NULL) then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Not a valid Edit mode created', 'Error', 'ERROR', 'OK') EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Not a valid Edit mode created', 'Error', 'ERROR', 'OK')
return return
end end
@@ -32,7 +31,6 @@ if not bDelete then EgtSetCurrPartLayer( nCurrPartId, nLayerEditId) return end
-- Cancello ( se esistono) i rispettivi Gruppi -- Cancello ( se esistono) i rispettivi Gruppi
if nLayerEditId then EgtErase( nLayerEditId) end if nLayerEditId then EgtErase( nLayerEditId) end
if nLayerStoreId then EgtErase( nLayerStoreId) end
-- Metto il Focus sul Layer di Trimming -- Metto il Focus sul Layer di Trimming
EgtSetStatus( nCurrLayerId, GDB_ST.ON) EgtSetStatus( nCurrLayerId, GDB_ST.ON)
+20 -4
View File
@@ -37,7 +37,20 @@ if dStoredSize ~= nil then dSize = dStoredSize end
local dSizeTol = 0.75 local dSizeTol = 0.75
local dStoredSizeTol = EgtGetInfo( nCurrLayerId, KEY_SURF_BORDER_SIZE_TOL, 'd') local dStoredSizeTol = EgtGetInfo( nCurrLayerId, KEY_SURF_BORDER_SIZE_TOL, 'd')
if dStoredSizeTol ~= nil then dSizeTol = dStoredSizeTol end if dStoredSizeTol ~= nil then dSizeTol = dStoredSizeTol end
local vsVal = EgtDialogBox( 'Seletion', { 'Type', 'CB:*Insert Surface,Face Search,Surf Search'}, local nLastSelType = EgtGetInfo( nCurrLayerId, KEY_SELECTION_LAST_SELECTION_TYPE, 'i')
local sLabels = { 'Insert Surface', 'Face Search', 'Surf Search'}
local sTypeDBSel
if nLastSelType ~= nil then
local sParts = {}
for i, sLabel in ipairs( sLabels) do
if i == nLastSelType then sParts[i] = '*' .. sLabel
else sParts[i] = sLabel end
end
sTypeDBSel = 'CB:' .. table.concat( sParts, ',')
else
sTypeDBSel = 'CB:' .. table.concat( sLabels, ',')
end
local vsVal = EgtDialogBox( 'Seletion', { 'Type', sTypeDBSel},
{ 'Size', tostring( dSize)}, { 'Size', tostring( dSize)},
{ 'Size Tolerance', tostring( dSizeTol)}) { 'Size Tolerance', tostring( dSizeTol)})
if not vsVal or #vsVal ~= 3 then return end if not vsVal or #vsVal ~= 3 then return end
@@ -45,6 +58,9 @@ dSize = tonumber( vsVal[2])
dSizeTol = tonumber( vsVal[3]) dSizeTol = tonumber( vsVal[3])
EgtSetInfo( nCurrLayerId, KEY_SURF_BORDER_SIZE, dSize) EgtSetInfo( nCurrLayerId, KEY_SURF_BORDER_SIZE, dSize)
EgtSetInfo( nCurrLayerId, KEY_SURF_BORDER_SIZE_TOL, dSizeTol) EgtSetInfo( nCurrLayerId, KEY_SURF_BORDER_SIZE_TOL, dSizeTol)
for i, sLabel in ipairs( sLabels) do
if sLabel == vsVal[1] then EgtSetInfo( nCurrLayerId, KEY_SELECTION_LAST_SELECTION_TYPE, i) break end
end
-- Recupero le tolleranze impostate alla creazione del Layer di Trimming corrente -- Recupero le tolleranze impostate alla creazione del Layer di Trimming corrente
local dLinTol = EgtGetInfo( nCurrLayerId, KEY_LIN_TOL, 'd') local dLinTol = EgtGetInfo( nCurrLayerId, KEY_LIN_TOL, 'd')
@@ -62,7 +78,7 @@ EgtSetStatus( nCurrLayerId, GDB_ST.ON)
nId = EgtGetFirstInGroup( nCurrPartId) nId = EgtGetFirstInGroup( nCurrPartId)
while nId do while nId do
if nId ~= nCurrLayerId and if nId ~= nCurrLayerId and
( GlobVar.IsTrimmingLayer( nId) or GlobVar.IsEditOrStoredLayer( nId)) then EgtSetStatus( nId, GDB_ST.OFF) end ( GlobVar.IsTrimmingLayer( nId) or GlobVar.IsEditSyncCurvesLayer( nId)) then EgtSetStatus( nId, GDB_ST.OFF) end
nId = EgtGetNext( nId) nId = EgtGetNext( nId)
end end
@@ -80,8 +96,8 @@ 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 Selezione cancella tutti i risultati fatti fino ad adesso] -- [NB. La Selezione cancella tutti i risultati fatti fino ad adesso]
local vEditOrStoredLayerIds = GlobVar.GetAllEditOrStoredLayer( nCurrPartId, nCurrLayerId) local nLayerSynEditId = GlobVar.GetCurrentEditSyncCurvesLayer( nCurrPartId, nCurrLayerId)
if vEditOrStoredLayerIds ~= nil and #vEditOrStoredLayerIds ~= 0 then EgtErase( nLayerEditId) end if nLayerSynEditId ~= nil and nLayerSynEditId ~= GDB_ID.NULL then EgtErase( nLayerEditId) end
--------------------------------- Inserimento della Superficie --------------------------------- --------------------------------- Inserimento della Superficie ---------------------------------
-- [Nessuna Tolleranza] -- [Nessuna Tolleranza]
+6 -6
View File
@@ -1,4 +1,3 @@
[Trimming] [Trimming]
TrimEnable=1 TrimEnable=1
BaseDir=C:\EgtData\Trimming BaseDir=C:\EgtData\Trimming
@@ -14,8 +13,9 @@ Button9=EditBezierBorders.lua,Images\EditBezierEdges.png,Edit Curves
Button10=ResetEditBezierBorders.lua,Images\ResetEditBezierEdges.png,<-- Undo Button10=ResetEditBezierBorders.lua,Images\ResetEditBezierEdges.png,<-- Undo
Button11=EndEditBezierBorders.lua,Images\EndEditBezierEdges.png,Ok Button11=EndEditBezierBorders.lua,Images\EndEditBezierEdges.png,Ok
Button12=Separator Button12=Separator
Button13=CalcBezier.lua,Images\BezierSurf.png,Get Surf Button13=EditSyncLines.lua,Images\EditSyncLines.png,Edit SyncLines
Button14=EditSyncLines.lua,Images\EditSyncLines.png,Edit SyncLines Button14=ResetSyncLines.lua,Images\ResetSyncLines.png,Reset SyncLines
Button15=ResetSyncLines.lua,Images\ResetSyncLines.png,Reset SyncLines ;Button15=EndEditSyncLines.lua,Images\EndSyncLines.png,Ok
Button16=EndEditSyncLines.lua,Images\EndSyncLines.png,Ok Button15=Separator
Button16=CalcBezier.lua,Images\BezierSurf.png,Get Surf
Button17=ResetBezierSurf.lua,Images\ResetBezierSurf.png,<-- Undo
+29 -81
View File
@@ -16,6 +16,7 @@ KEY_SURF_ANG_TOL = 'SurfAngTol'
KEY_SURF_BORDER_SIZE = 'BorderSize' -- Selection KEY_SURF_BORDER_SIZE = 'BorderSize' -- Selection
KEY_SURF_BORDER_SIZE_TOL = 'BorderSizeTol' -- Selection KEY_SURF_BORDER_SIZE_TOL = 'BorderSizeTol' -- Selection
KEY_SELECTION_REF_SURF = 'nRefSurf' -- Selection KEY_SELECTION_REF_SURF = 'nRefSurf' -- Selection
KEY_SELECTION_LAST_SELECTION_TYPE = 'LastSelType' -- Selection (type)
KEY_SELECTION_LAST_IDS = 'vSelLastIds' -- Undo Selection KEY_SELECTION_LAST_IDS = 'vSelLastIds' -- Undo Selection
KEY_REF_TRIMMING_LAYER = 'nRefTrimmingLayer' -- Trimming Layer Ref KEY_REF_TRIMMING_LAYER = 'nRefTrimmingLayer' -- Trimming Layer Ref
KEY_AUTO_TRIMMING = 'AutoTrim' -- AutoTrimming KEY_AUTO_TRIMMING = 'AutoTrim' -- AutoTrimming
@@ -38,7 +39,7 @@ LAYER_NAME_SYNC_CURVES = 'SyncCurves'
LAYER_NAME_SYNC_STORED_CURVES = 'SyncStoredCurves' LAYER_NAME_SYNC_STORED_CURVES = 'SyncStoredCurves'
ANG_FACE_TOL = 30. ANG_FACE_TOL = 30.
ANG_TOL = 15. ANG_TOL = 15.
LIN_TOL = 0.05 LIN_TOL = 0.2
SYNC_LINES_NUMBER = 0 SYNC_LINES_NUMBER = 0
SYNC_LINES_ANG_TOL = 15.0 SYNC_LINES_ANG_TOL = 15.0
@@ -70,7 +71,6 @@ SYNC_LINE_COLOR = Color3d( 0, 255, 0)
RULED_BZ_NAME = 'SurfBz' RULED_BZ_NAME = 'SurfBz'
RULED_BZ_COLOR = Color3d( 37, 37, 37) RULED_BZ_COLOR = Color3d( 37, 37, 37)
-- ***============================== FUNZIONI ==============================*** -- ***============================== FUNZIONI ==============================***
--======================== Contatore Incrementale ======================= --======================== Contatore Incrementale =======================
@@ -108,8 +108,22 @@ function TrimmingVar.IsTrimmingLayer( nId)
return ( sLayerType ~= nil and sLayerType == KEY_LAYER_SELECTION) return ( sLayerType ~= nil and sLayerType == KEY_LAYER_SELECTION)
end end
---------------------------------------------------------------------------
-- Funzione per ottenere il Layer di Trimmatura di riferimento dato un generico Layer
function TrimmingVar.GetTrimmingLayerRefId( nId)
if nId == nil or nId == GDB_ID.NULL then return GDB_ID.NULL end
-- Se Layer di Trimmatura allora è lui stesso
if TrimmingVar.IsTrimmingLayer( nId) then return nId end
if TrimmingVar.IsEditCurvesLayer( nId) or TrimmingVar.IsEditSyncCurvesLayer( nId) then
local nTrimmingLayerRef = EgtGetInfo( nId, KEY_REF_TRIMMING_LAYER, 'i')
if nTrimmingLayerRef ~= nil and TrimmingVar.IsTrimmingLayer( nTrimmingLayerRef) then return nTrimmingLayerRef end
end
return GDB_ID.NULL
end
--============================ Layer Edit Bordi =========================== --============================ Layer Edit Bordi ===========================
---------------------------------------------------------------------------
-- Funzione per creare un Layer di Edit dei bordi -- Funzione per creare un Layer di Edit dei bordi
function TrimmingVar.CreateEditCurvesLayer( nCurrPartId, nCurrLayerId) function TrimmingVar.CreateEditCurvesLayer( nCurrPartId, nCurrLayerId)
local nEditLayerId = EgtGroup( nCurrPartId) local nEditLayerId = EgtGroup( nCurrPartId)
@@ -126,6 +140,7 @@ function TrimmingVar.CreateEditCurvesLayer( nCurrPartId, nCurrLayerId)
return nEditLayerId return nEditLayerId
end end
---------------------------------------------------------------------------
-- Funzione per verificare se un Layer è un Layer di Edit dei bordi -- Funzione per verificare se un Layer è un Layer di Edit dei bordi
function TrimmingVar.IsEditCurvesLayer( nId) function TrimmingVar.IsEditCurvesLayer( nId)
if nId == nil or nId == GDB_ID.NULL then return false end if nId == nil or nId == GDB_ID.NULL then return false end
@@ -134,6 +149,7 @@ function TrimmingVar.IsEditCurvesLayer( nId)
return ( sLayerType ~= nil and sLayerType == KEY_LAYER_EDIT_CURVES) return ( sLayerType ~= nil and sLayerType == KEY_LAYER_EDIT_CURVES)
end end
---------------------------------------------------------------------------
-- Funzione per ottenere il Layer di Edit dei bordi corrente -- Funzione per ottenere il Layer di Edit dei bordi corrente
function TrimmingVar.GetCurrentEditLayer( nPartId) function TrimmingVar.GetCurrentEditLayer( nPartId)
if nPartId == nil or nPartId == GDB_ID.NULL then return false end if nPartId == nil or nPartId == GDB_ID.NULL then return false end
@@ -148,6 +164,7 @@ end
--======================== Layer Edit Sync Curve ======================= --======================== Layer Edit Sync Curve =======================
---------------------------------------------------------------------------
-- Funzione per creare un Layer di Edit delle curve di Sincornizzazione -- Funzione per creare un Layer di Edit delle curve di Sincornizzazione
function TrimmingVar.CreateEditSyncCurvesLayer( nCurrPartId, nCurrLayerId) function TrimmingVar.CreateEditSyncCurvesLayer( nCurrPartId, nCurrLayerId)
local nEditSyncLayerId = EgtGroup( nCurrPartId) local nEditSyncLayerId = EgtGroup( nCurrPartId)
@@ -165,6 +182,7 @@ function TrimmingVar.CreateEditSyncCurvesLayer( nCurrPartId, nCurrLayerId)
return nEditSyncLayerId return nEditSyncLayerId
end end
---------------------------------------------------------------------------
-- Funzione per verificare se un Layer è un Layer di Edit delle curve di Sincronizzazione -- Funzione per verificare se un Layer è un Layer di Edit delle curve di Sincronizzazione
function TrimmingVar.IsEditSyncCurvesLayer( nId) function TrimmingVar.IsEditSyncCurvesLayer( nId)
if nId == nil or nId == GDB_ID.NULL then return false end if nId == nil or nId == GDB_ID.NULL then return false end
@@ -173,53 +191,19 @@ function TrimmingVar.IsEditSyncCurvesLayer( nId)
return ( sLayerType ~= nil and sLayerType == KEY_LAYER_SYNC_CURVES) return ( sLayerType ~= nil and sLayerType == KEY_LAYER_SYNC_CURVES)
end end
-- Funzione che ritorna il Layer di Stored delle curve di sincronizzazione corrente ---------------------------------------------------------------------------
function TrimmingVar.GetCurrentEditSyncCurvesLayer( nPartId) -- Funzione che ritorna il Layer di Edit delle curve di sincronizzazione riferito al Layer di Trimming
function TrimmingVar.GetCurrentEditSyncCurvesLayer( nPartId, nTrimmingLayerId)
if nPartId == nil or nPartId == GDB_ID.NULL then return false end if nPartId == nil or nPartId == GDB_ID.NULL then return false end
local nEditSyncLayerId local nEditSyncLayerId
local nLayerId = EgtGetFirstInGroup( nPartId) local nLayerId = EgtGetFirstInGroup( nPartId)
while nLayerId do while nLayerId do
if TrimmingVar.IsEditSyncCurvesLayer( nLayerId) then return nLayerId end if TrimmingVar.IsEditSyncCurvesLayer( nLayerId) then
nLayerId = EgtGetNext( nLayerId) local nRefTrimmingLayer = TrimmingVar.GetTrimmingLayerRefId( nLayerId)
end if nRefTrimmingLayer ~= nil and nRefTrimmingLayer ~= GDB_ID.NULL and nRefTrimmingLayer == nTrimmingLayerId then
return GDB_ID.NULL return nLayerId
end end
end
--======================== Layer Store Sync Curve =======================
-- Funzione per creare un Layer di Stored delle curve di Sincronizzazione
function TrimmingVar.CreateSyncStoredCurvesLayer( nCurrPartId, nCurrLayerId)
local nEditSyncStoredLayerId = EgtGroup( nCurrPartId)
local bOk = ( nEditSyncStoredLayerId ~= nil)
if bOk then
bOk = ( EgtSetName( nEditSyncStoredLayerId, LAYER_NAME_SYNC_STORED_CURVES) and
EgtSetInfo( nEditSyncStoredLayerId, KEY_LAYER_TYPE, KEY_LAYER_SYNC_STORE_CURVES) and
EgtSetInfo( nEditSyncStoredLayerId, KEY_REF_TRIMMING_LAYER, nCurrLayerId) and
EgtSetColor( nEditSyncStoredLayerId, SYNC_LINE_COLOR) and
EgtSetLevel( nEditSyncStoredLayerId, GDB_LV.SYSTEM))
end
if not bOk then
EgtErase( nEditSyncStoredLayerId)
return GDB_ID.NULL
end
return nEditSyncStoredLayerId
end
-- Funzione per verificare se un Layer è un Layer di Stored delle curve di Sincronizzazione
function TrimmingVar.IsSyncStoredCurvesLayer( nId)
if nId == nil or nId == GDB_ID.NULL then return false end
-- Verifico che la chiave del gruppo sia coerente
local sLayerType = EgtGetInfo( nId, KEY_LAYER_TYPE, 's')
return ( sLayerType ~= nil and sLayerType == KEY_LAYER_SYNC_STORE_CURVES)
end
-- Funzione che ritorna il Layer di Stored delle curve di sincronizzazione corrente
function TrimmingVar.GetCurrentStoredCurvesLayer( nPartId)
if nPartId == nil or nPartId == GDB_ID.NULL then return false end
local nStoredEditLayerId
local nLayerId = EgtGetFirstInGroup( nPartId)
while nLayerId do
if TrimmingVar.IsSyncStoredCurvesLayer( nLayerId) then return nLayerId end
nLayerId = EgtGetNext( nLayerId) nLayerId = EgtGetNext( nLayerId)
end end
return GDB_ID.NULL return GDB_ID.NULL
@@ -227,40 +211,4 @@ end
--======================== Utility ======================= --======================== Utility =======================
-- Funzione per verificare se un Layer è un Layer di Edit o di Stored
function TrimmingVar.IsEditOrStoredLayer( nId)
if nId == nil or nId == GDB_ID.NULL then return false end
return ( TrimmingVar.IsEditCurvesLayer( nId) or
TrimmingVar.IsEditSyncCurvesLayer( nId) or
TrimmingVar.IsSyncStoredCurvesLayer( nId))
end
-- Funzione per ottenere il Layer di Trimmatura di riferimento dato un generico Layer
function TrimmingVar.GetTrimmingLayerRefId( nId)
if nId == nil or nId == GDB_ID.NULL then return GDB_ID.NULL end
-- Se Layer di Trimmatura allora è lui stesso
if TrimmingVar.IsTrimmingLayer( nId) then return nId end
if TrimmingVar.IsEditOrStoredLayer( nId) then
local nTrimmingLayerRef = EgtGetInfo( nId, KEY_REF_TRIMMING_LAYER, 'i')
if nTrimmingLayerRef ~= nil and TrimmingVar.IsTrimmingLayer( nTrimmingLayerRef) then return nTrimmingLayerRef end
end
return GDB_ID.NULL
end
-- Funzione che dato un Layer di Trimmatura, ritorna tutti i Layer di Edit o Store associati
function TrimmingVar.GetAllEditOrStoredLayer( nPartId, nLayerId)
local vLayerIds = {}
if nLayerId == nil or nLayerId == GDB_ID.NULL then return vLayerIds end
if not TrimmingVar.IsTrimmingLayer( nLayerId) then return vLayerIds end
local nId = EgtGetFirstGroupInGroup( nPartId)
while nId ~= nil do
if TrimmingVar.IsEditOrStoredLayer( nId) then
local nLayerRefId = TrimmingVar.GetTrimmingLayerRefId( nId)
if nLayerRefId ~= nil and nLayerRefId ~= GDB_ID.NULL and nLayerRefId ~= nLayerId then table.insert( vLayerIds, nId) end
end
nId = EgtGetNextGroup( nId)
end
return vLayerIds
end
return TrimmingVar return TrimmingVar
+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.1a3' VERSION = '3.1a4'
MIN_EXE = '3.1a3' MIN_EXE = '3.1a4'