Trimming 3.1a5 :
- aggiunte tolleranze a livello interfaccia per le curve di bordo.
This commit is contained in:
@@ -36,6 +36,16 @@ while nId do
|
|||||||
end
|
end
|
||||||
EgtErase( vIdToErase)
|
EgtErase( vIdToErase)
|
||||||
|
|
||||||
|
-- Recupero la Tolleranza Lineare ed Angolare con cui sono stati approssimati gli Edges
|
||||||
|
local dEdgeLinTol = EgtGetInfo( nCurrLayerId, KEY_LIN_TOL_EDGES, 'd')
|
||||||
|
local dEdgeAngTol = EgtGetInfo( nCurrLayerId, KEY_ANG_TOL_EDGES, 'd')
|
||||||
|
if dEdgeLinTol == nil or dEdgeAngTol == nil then
|
||||||
|
EgtOutBox( ERROR_BEZIER_CREATION .. 'Edge Approx tollerance not found', 'Error', 'ERROR', 'OK')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
dLinTol = dEdgeLinTol
|
||||||
|
dAngTol = dEdgeAngTol
|
||||||
|
|
||||||
-- Recupero gli Edges per la creazione della Superficie di Bezier Ruled
|
-- Recupero gli Edges per la creazione della Superficie di Bezier Ruled
|
||||||
-- ( 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 = {}
|
||||||
|
|||||||
+22
-17
@@ -28,17 +28,24 @@ if not bOk then
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
local dEdgeLinTol = EgtGetInfo( nCurrLayerId, KEY_LIN_TOL_EDGES, 'd')
|
local dEdgeLinTol = EgtGetInfo( nCurrLayerId, KEY_LIN_TOL_EDGES, 'd')
|
||||||
|
local dEdgeAngTol = EgtGetInfo( nCurrLayerId, KEY_ANG_TOL_EDGES, 'd')
|
||||||
local dEdgeThick = EgtGetInfo( nCurrLayerId, KEY_THICK_EDGES, 'd')
|
local dEdgeThick = EgtGetInfo( nCurrLayerId, KEY_THICK_EDGES, 'd')
|
||||||
|
|
||||||
-- Determino il Tipo di Estrazione degli Edges
|
-- Determino il Tipo di Estrazione degli Edges
|
||||||
local dLinTolForEdges = dLinTol
|
local dLinTolForEdges = dLinTol
|
||||||
local dThickForEdges = 5.0
|
local dAngTolForEdges = dAngTol
|
||||||
|
local dThickForEdges = EDGE_THICK
|
||||||
if dEdgeLinTol then dLinTolForEdges = dEdgeLinTol end
|
if dEdgeLinTol then dLinTolForEdges = dEdgeLinTol end
|
||||||
|
if dEdgeAngTol then dAngTolForEdges = dEdgeAngTol end
|
||||||
if dEdgeThick then dThickForEdges = dEdgeThick end
|
if dEdgeThick then dThickForEdges = dEdgeThick end
|
||||||
local vsVal = EgtDialogBox( 'Edge Extraction', { 'Type', 'CB:*Extract Edges,Edges from Normals'},
|
local vsVal = EgtDialogBox( 'Edge Extraction', { 'Type', 'CB:*Extract Edges,Edges from Normals'},
|
||||||
{ 'Linear Tolerance', tostring( dLinTolForEdges)},
|
{ 'Linear Tolerance', tostring( dLinTolForEdges)},
|
||||||
|
{ 'Angular Tolerance', tostring( dAngTolForEdges)},
|
||||||
{ 'Thickness', tostring( dThickForEdges)})
|
{ 'Thickness', tostring( dThickForEdges)})
|
||||||
if not vsVal or #vsVal ~= 3 then return end
|
if not vsVal or #vsVal ~= 4 then return end
|
||||||
|
dEdgeLinTol = tonumber( vsVal[2])
|
||||||
|
dEdgeAngTol = tonumber( vsVal[3])
|
||||||
|
dEdgeThick = tonumber( vsVal[4])
|
||||||
|
|
||||||
-- Rendo invisibili gli altri Layer di Trimmatura e tutti i Layer Temporanei
|
-- Rendo invisibili gli altri Layer di Trimmatura e tutti i Layer Temporanei
|
||||||
-- NB. Il focus va sul Layer corrente
|
-- NB. Il focus va sul Layer corrente
|
||||||
@@ -84,12 +91,8 @@ 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
|
|
||||||
dEdgeLinTol = tonumber( vsVal[2])
|
|
||||||
-- La memorizzo come Info per recuperla successivamente
|
|
||||||
EgtSetInfo( nCurrLayerId, KEY_LIN_TOL_EDGES, dEdgeLinTol)
|
|
||||||
-- Recupero i Bordi
|
-- Recupero i Bordi
|
||||||
bOk, nFirstId, nCount = EgtTrimmingGetBorders( nCurrLayerId, vSel, dEdgeLinTol, dAngTol)
|
bOk, nFirstId, nCount = EgtTrimmingGetBorders( nCurrLayerId, vSel, dEdgeLinTol, dEdgeAngTol)
|
||||||
if not bOk then
|
if not bOk then
|
||||||
EgtOutBox( ERROR_EDGE_CREATION .. 'Error in Computing Edges', 'Error', 'ERROR', 'OK')
|
EgtOutBox( ERROR_EDGE_CREATION .. 'Error in Computing Edges', 'Error', 'ERROR', 'OK')
|
||||||
return
|
return
|
||||||
@@ -105,14 +108,8 @@ if vsVal[1] == 'Extract Edges' then
|
|||||||
end
|
end
|
||||||
--------------------------------- Calcolo Edges per normali ---------------------------------
|
--------------------------------- Calcolo Edges per normali ---------------------------------
|
||||||
else
|
else
|
||||||
-- Recupero la tolleranza lineare per l'estrazione degli Edges e la Thickness
|
|
||||||
dEdgeLinTol = tonumber( vsVal[2])
|
|
||||||
local dThickness = tonumber( vsVal[3])
|
|
||||||
-- Le Memorizzo per recuperale successivamente
|
|
||||||
EgtSetInfo( nCurrLayerId, KEY_LIN_TOL_EDGES, dEdgeLinTol)
|
|
||||||
EgtSetInfo( nCurrLayerId, KEY_THICK_EDGES, dEdgeThick)
|
|
||||||
-- Calcolo i Bordi
|
-- Calcolo i Bordi
|
||||||
bOk, nFirstId, nCount = EgtTrimmingGetBordersByNormals( nCurrLayerId, vSel, dEdgeLinTol, dAngTol, dThickness)
|
bOk, nFirstId, nCount = EgtTrimmingGetBordersByNormals( nCurrLayerId, vSel, dEdgeLinTol, dEdgeAngTol, dEdgeThick)
|
||||||
if not bOk then
|
if not bOk then
|
||||||
EgtOutBox( ERROR_EDGE_CREATION .. 'Error in Computing Edges', 'Error', 'ERROR', 'OK')
|
EgtOutBox( ERROR_EDGE_CREATION .. 'Error in Computing Edges', 'Error', 'ERROR', 'OK')
|
||||||
return
|
return
|
||||||
@@ -128,22 +125,30 @@ for i = 0, nCount - 1 do
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Salvo le Tolleranze nel Layer di Trimming
|
||||||
|
EgtSetInfo( nCurrLayerId, KEY_LIN_TOL_EDGES, dEdgeLinTol)
|
||||||
|
EgtSetInfo( nCurrLayerId, KEY_ANG_TOL_EDGES, dEdgeAngTol)
|
||||||
|
EgtSetInfo( nCurrLayerId, KEY_THICK_EDGES, dEdgeThick)
|
||||||
|
|
||||||
-- Se più di due curve, definisco dei nuovi Layer di Trimming
|
-- Se più di due curve, definisco dei nuovi Layer di Trimming
|
||||||
if nCount > 2 then
|
if nCount > 2 then
|
||||||
for i = 2, nCount - 1, 2 do
|
for i = 2, nCount - 1, 2 do
|
||||||
-- Definisco un nuovo Layer di trimming
|
-- Definisco un nuovo Layer di trimming
|
||||||
local nNewTrimmingLayer = GlobVar.CreateTrimmingLayer( nCurrPartId)
|
local nNewTrimmingLayer = GlobVar.CreateTrimmingLayer( nCurrPartId)
|
||||||
if nCurrLayerId == GDB_ID.NULL then
|
if nCurrLayerId == GDB_ID.NULL then
|
||||||
EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Defining Layer failed', 'Error', 'ERROR', 'OK')
|
EgtOutBox( ERROR_EDGE_CREATION .. 'Defining Layer failed', 'Error', 'ERROR', 'OK')
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
-- Copio proprietà
|
-- Copio proprietà
|
||||||
bOk = EgtSetInfo( nNewTrimmingLayer, KEY_LIN_TOL, dLinTol) and
|
bOk = EgtSetInfo( nNewTrimmingLayer, KEY_LIN_TOL, dLinTol) and
|
||||||
EgtSetInfo( nNewTrimmingLayer, KEY_ANG_TOL, dAngTol) and
|
EgtSetInfo( nNewTrimmingLayer, KEY_ANG_TOL, dAngTol) and
|
||||||
EgtSetInfo( nNewTrimmingLayer, KEY_SURF_ANG_TOL, dAngFaceTol) and
|
EgtSetInfo( nNewTrimmingLayer, KEY_SURF_ANG_TOL, dAngFaceTol) and
|
||||||
EgtSetInfo( nNewTrimmingLayer, KEY_LIN_TOL_EDGES, dEdgeLinTol)
|
EgtSetInfo( nNewTrimmingLayer, KEY_LIN_TOL_EDGES, dEdgeLinTol) and
|
||||||
|
EgtSetInfo( nNewTrimmingLayer, KEY_ANG_TOL_EDGES, dEdgeAngTol) and
|
||||||
|
EgtSetInfo( nNewTrimmingLayer, KEY_THICK_EDGES, dEdgeThick)
|
||||||
if not bOk then
|
if not bOk then
|
||||||
EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Saving Tolerances failed', 'Error', 'ERROR', 'OK')
|
EgtOutBox( ERROR_EDGE_CREATION .. 'Saving Tolerances failed', 'Error', 'ERROR', 'OK')
|
||||||
EgtErase( nNewTrimmingLayer)
|
EgtErase( nNewTrimmingLayer)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -44,13 +44,6 @@ if not nLayerEditSyncId or nLayerEditSyncId == GDB_ID.NULL then
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Rendo Invisibili gli altri Layer di Trimming
|
|
||||||
nId = EgtGetFirstInGroup( nCurrPartId)
|
|
||||||
while nId do
|
|
||||||
if GlobVar.IsTrimmingLayer( nId) and nId ~= nCurrLayerId then EgtSetStatus( nId, GDB_ST.OFF) end
|
|
||||||
nId = EgtGetNext( nId)
|
|
||||||
end
|
|
||||||
|
|
||||||
local vIdEdges = {}
|
local vIdEdges = {}
|
||||||
nId = EgtGetFirstInGroup( nCurrLayerId)
|
nId = EgtGetFirstInGroup( nCurrLayerId)
|
||||||
while nId do
|
while nId do
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ local TrimmingVar = {
|
|||||||
-- Chiavi Info Part/Layers
|
-- Chiavi Info Part/Layers
|
||||||
KEY_LIN_TOL = 'LinTol'
|
KEY_LIN_TOL = 'LinTol'
|
||||||
KEY_LIN_TOL_EDGES = 'LinTolEdges' -- Edges Extraction (modify)
|
KEY_LIN_TOL_EDGES = 'LinTolEdges' -- Edges Extraction (modify)
|
||||||
|
KEY_ANG_TOL_EDGES = 'AngTolEdges' -- Edges Extraction (modify)
|
||||||
KEY_THICK_EDGES = 'ThickEdges' -- Edges Extraction (modify)
|
KEY_THICK_EDGES = 'ThickEdges' -- Edges Extraction (modify)
|
||||||
KEY_ANG_TOL = 'AngTol'
|
KEY_ANG_TOL = 'AngTol'
|
||||||
KEY_SURF_ANG_TOL = 'SurfAngTol'
|
KEY_SURF_ANG_TOL = 'SurfAngTol'
|
||||||
@@ -40,6 +41,7 @@ LAYER_NAME_SYNC_STORED_CURVES = 'SyncStoredCurves'
|
|||||||
ANG_FACE_TOL = 30.
|
ANG_FACE_TOL = 30.
|
||||||
ANG_TOL = 15.
|
ANG_TOL = 15.
|
||||||
LIN_TOL = 0.2
|
LIN_TOL = 0.2
|
||||||
|
EDGE_THICK = 5.0
|
||||||
SYNC_LINES_NUMBER = 0
|
SYNC_LINES_NUMBER = 0
|
||||||
SYNC_LINES_ANG_TOL = 15.0
|
SYNC_LINES_ANG_TOL = 15.0
|
||||||
|
|
||||||
|
|||||||
+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.1a4'
|
VERSION = '3.1a5'
|
||||||
MIN_EXE = '3.1a4'
|
MIN_EXE = '3.1a5'
|
||||||
|
|||||||
Reference in New Issue
Block a user