Trimming 3.1a3 :

- modficata l'analisi e il recupero delle linee di sincronizzazione.
This commit is contained in:
Riccardo Elitropi
2026-01-21 18:25:07 +01:00
parent 335b0658dd
commit 068124cd30
16 changed files with 36 additions and 38 deletions
+24 -31
View File
@@ -86,16 +86,33 @@ else
EgtErase( nLayerEditSyncId)
return
end
-- Le inserisco nel Leyer di Edit Sync
local nEdge1Id = EgtCopyGlob( vIdEdges[1], nLayerEditSyncId)
local nEdge2Id = EgtCopyGlob( vIdEdges[2], nLayerEditSyncId)
if not nEdge1Id or not nEdge2Id then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Not 2 Border Curves detected', 'Error', 'ERROR', 'OK')
-- Chiedo i Parametri all'Utente
local nSyncLinesNumber = EgtGetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER, 'i')
local bShowOnCorners = EgtGetInfo( nCurrLayerId, KEY_SYNC_LINES_SHOW_ON_CORNERS, 'b')
local dSyncLinesAngTol = EgtGetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER_ANG_TOL, 'd')
if not nSyncLinesNumber or nSyncLinesNumber < 0. then nSyncLinesNumber = SYNC_LINES_NUMBER end
if bShowOnCorners == nil then bShowOnCorners = true end
if bShowAllLines == nil then bShowAllLines = false 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')},
{ 'Angular Tolerance', tostring( dSyncLinesAngTol)},
{ 'Line Number', tostring( nSyncLinesNumber)})
if not vsVal or #vsVal ~= 3 then
EgtErase( nLayerEditSyncId)
EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId)
return
end
-- Calcolo le Curve di Sincronizzazione
bShowOnCorners = ( vsVal[1] == '1')
dSyncLinesAngTol = tonumber( vsVal[2])
nSyncLinesNumber = tonumber( vsVal[3])
EgtSetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER, nSyncLinesNumber)
EgtSetInfo( nCurrLayerId, KEY_SYNC_LINES_SHOW_ON_CORNERS, bShowOnCorners)
EgtSetInfo( nCurrLayerId, KEY_SYNC_LINES_NUMBER_ANG_TOL, dSyncLinesAngTol)
-- Recupero le Curve di Sincronizzazione
local nFirstId, nCount
bOk, nFirstId, nCount = EgtTrimmingGetSurfBzSyncPoints( nLayerEditSyncId, nEdge1Id, nEdge2Id, dLinTol)
bOk, nFirstId, nCount = EgtTrimmingGetSurfBzSyncPoints( nLayerEditSyncId, vIdEdges[1], vIdEdges[2], dLinTol, dSyncLinesAngTol, nSyncLinesNumber, bShowOnCorners)
if not bOk then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Error in Computing Sync Lines', 'Error', 'ERROR', 'OK')
EgtErase( nLayerEditSyncId)
@@ -103,30 +120,6 @@ else
return
end
-- Chiedo quanti valori di Curve di Sincronizzazione devo Visualizzare e le Tolleranze
local nSkimmingFactor = EgtGetInfo( nCurrLayerId, KEY_SKIMMING_FACTOR, 'i')
local dSkimAngTol = EgtGetInfo( nCurrLayerId, KEY_SKIMMING_FACTOR_ANG_TOL, 'd')
if not nSkimmingFactor or nSkimmingFactor < 0. then nSkimmingFactor = SKIMMING_FACTOR end
if not dSkimAngTol or dSkimAngTol < 0. then dSkimAngTol = SKIMMING_ANG_TOL end
local vsVal = EgtDialogBox( 'Seletion', { 'Skimming Factor', tostring( nSkimmingFactor)},
{ 'Angular Tolerance', tostring( dSkimAngTol)})
if not vsVal or #vsVal ~= 2 then
EgtErase( nLayerEditSyncId)
EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId)
return
end
nSkimmingFactor = tonumber( vsVal[1])
dSkimAngTol = tonumber( vsVal[2])
EgtSetInfo( nCurrLayerId, KEY_SKIMMING_FACTOR, nSkimmingFactor)
EgtSetInfo( nCurrLayerId, KEY_SKIMMING_FACTOR_ANG_TOL, dSkimAngTol)
local vIdSyncLines = {}
for i = 0, nCount - 1 do table.insert( vIdSyncLines, nFirstId + i) end
if not EgtTrimmingSkimSyncPoints( nEdge1Id, nEdge2Id, vIdSyncLines, dLinTol, dSkimAngTol, nSkimmingFactor) then
EgtOutBox( ERROR_EDIT_SYNC_CURVES .. 'Error in Computing Sync Lines', 'Error', 'ERROR', 'OK')
EgtErase( nLayerEditSyncId)
EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId)
end
-- Assegno Colore e Name
nId = EgtGetFirstInGroup( nLayerEditSyncId)
while nId do
Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

+4
View File
@@ -26,6 +26,10 @@ if ( not nLayerEditId or nLayerEditId == GDB_ID.NULL) and ( not nLayerStoreId or
return
end
-- Chiedo Conferma dell'Operazione
local bDelete = EgtOutBox( 'Do you want erase all the Sync Lines ?', 'Confirm', 'QUESTION', 'YESNO')
if not bDelete then EgtSetCurrPartLayer( nCurrPartId, nLayerEditId) return end
-- Cancello ( se esistono) i rispettivi Gruppi
if nLayerEditId then EgtErase( nLayerEditId) end
if nLayerStoreId then EgtErase( nLayerStoreId) end
+6 -5
View File
@@ -19,8 +19,9 @@ KEY_SELECTION_REF_SURF = 'nRefSurf' -- Selection
KEY_SELECTION_LAST_IDS = 'vSelLastIds' -- Undo Selection
KEY_REF_TRIMMING_LAYER = 'nRefTrimmingLayer' -- Trimming Layer Ref
KEY_AUTO_TRIMMING = 'AutoTrim' -- AutoTrimming
KEY_SKIMMING_FACTOR = 'SkimmingFactor' -- Skimming Sync Lines
KEY_SKIMMING_FACTOR_ANG_TOL = 'SkimmingFactorAngTol' -- Skimming Sync Lines Tol
KEY_SYNC_LINES_NUMBER = 'SkimmingFactor' -- Skimming Sync Lines
KEY_SYNC_LINES_SHOW_ON_CORNERS = 'SyncLineShowOnCorners' -- Skimming Sync Lines Show on Corners
KEY_SYNC_LINES_NUMBER_ANG_TOL = 'SkimmingFactorAngTol' -- Skimming Sync Lines Tol
-- Chive per Tipologia di Layer
KEY_LAYER_TYPE = 'Trimming_Layer_Type'
@@ -29,7 +30,7 @@ KEY_LAYER_EDIT_CURVES = 'Trimming_EditCurves_Layer'
KEY_LAYER_SYNC_CURVES = 'Trimming_SyncCurves_Layer'
KEY_LAYER_SYNC_STORE_CURVES = 'Trimming_SyncStoredCurves_Layer'
-- Generali --
-- Generali
PART_NAME = 'Trimming'
LAYER_NAME_SELECTION = 'Trimming'
LAYER_NAME_EDIT_CURVES = 'EditCurves'
@@ -38,8 +39,8 @@ LAYER_NAME_SYNC_STORED_CURVES = 'SyncStoredCurves'
ANG_FACE_TOL = 30.
ANG_TOL = 15.
LIN_TOL = 0.05
SKIMMING_FACTOR = 4
SKIMMING_ANG_TOL = 10.0
SYNC_LINES_NUMBER = 0
SYNC_LINES_ANG_TOL = 15.0
-- Selezione delle superfici --
SELECTION_SURF_NAME = 'Selected_Surf'
+2 -2
View File
@@ -2,5 +2,5 @@
-- Gestione della versione di Trimming dei Termoformati
NAME = 'Trimming'
VERSION = '3.1a2'
MIN_EXE = '3.1a2'
VERSION = '3.1a3'
MIN_EXE = '3.1a3'