dfa187838b
- 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.
50 lines
1.8 KiB
Lua
50 lines
1.8 KiB
Lua
-- NewTrimming.lua by Egalware s.r.l. 2026/01/05
|
|
|
|
require( 'EgtBase')
|
|
_ENV = EgtProtectGlobal()
|
|
EgtEnableDebug( false)
|
|
|
|
-- Carico le costanti di Trimming
|
|
EgtAddToPackagePath( EgtGetSourceDir() .. '?.lua')
|
|
local GlobVar = require( 'TrimmingLib')
|
|
-- Costante di Errore
|
|
local ERROR_CREATING_NEW_TRIMMING = 'Error in Creating New Trimming : '
|
|
|
|
-- Recupero il Part corrente
|
|
local nCurrPartId = EgtGetCurrPart()
|
|
if nCurrPartId == nil then
|
|
EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Current Part not Found', 'Error', 'ERROR', 'OK')
|
|
return
|
|
end
|
|
|
|
-- Chiedo all'utente le Tolleranze e le Salvo come Info nel Layer di Trimming
|
|
local vsVal = EgtDialogBox( 'New Trimming', { 'Linear Tolerance', tostring( LIN_TOL)},
|
|
{ 'Angular Tolerance', tostring( ANG_TOL)},
|
|
{ 'Surface Angular Tolerance', tostring( ANG_FACE_TOL)})
|
|
if not vsVal or #vsVal ~= 3 then return end
|
|
|
|
-- Creo il Layer di Trimming all'interno del Part corrente e lo rendo corrente
|
|
local nCurrLayerId = GlobVar.CreateTrimmingLayer( nCurrPartId)
|
|
if nCurrLayerId == GDB_ID.NULL then
|
|
EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Defining Layer failed', 'Error', 'ERROR', 'OK')
|
|
return
|
|
end
|
|
EgtSetCurrPartLayer( nCurrPartId, nCurrLayerId)
|
|
|
|
local dLinTol = tonumber( vsVal[1])
|
|
local dAngTol = tonumber( vsVal[2])
|
|
local dAngFaceTol = tonumber( vsVal[3])
|
|
KEY_LIN_TOL = 'LinTol'
|
|
KEY_ANG_TOL = 'AngTol'
|
|
KEY_SURF_ANG_TOL = 'SurfAngTol'
|
|
bOk = EgtSetInfo( nCurrLayerId, KEY_LIN_TOL, dLinTol) and
|
|
EgtSetInfo( nCurrLayerId, KEY_ANG_TOL, dAngTol) and
|
|
EgtSetInfo( nCurrLayerId, KEY_SURF_ANG_TOL, dAngFaceTol)
|
|
if not bOk then
|
|
EgtOutBox( ERROR_CREATING_NEW_TRIMMING .. 'Saving Tolerances failed', 'Error', 'ERROR', 'OK')
|
|
EgtErase( nCurrLayerId)
|
|
return
|
|
end
|
|
|
|
-- Aggiorno la Grafica
|
|
EgtDraw() |