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:
+2
-1
@@ -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
@@ -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
@@ -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()
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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()
|
||||||
@@ -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()
|
||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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'
|
||||||
|
|||||||
Reference in New Issue
Block a user