EgtExecutor 1.6h1 :
- CurveCompoByChain salva in info elenco id curve originali se non deve cancellarle - ExeCreateSurfTmByRegion e ExeCreateSurfTmByExtrusion accettano anche curve da selezione - ExeApproxCurve sostituisce in-place la curva originale - su Part e Layer ora si può iterare all'indietro dalla fine(GetLast e GetPrev) - aggiunta prima versione di import pezzi per nesting.
This commit is contained in:
+8
-10
@@ -874,7 +874,7 @@ ExeMergeCurvesInCurveCompo( int nId, double dLinTol)
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
int
|
||||
bool
|
||||
ExeApproxCurve( int nId, int nApprType, double dLinTol)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
@@ -896,6 +896,9 @@ ExeApproxCurve( int nId, int nApprType, double dLinTol)
|
||||
else { // con bi-archi
|
||||
PolyArc PA ;
|
||||
bOk = bOk && pCurve->ApproxWithArcsEx( dLinTol, ANG_TOL_MAX_DEG, LIN_FEA_LEN_STD, PA) && pCC->FromPolyArc( PA) ;
|
||||
// merge di archi identici di biarchi
|
||||
const double ANG_TOL_STD_DEG = 15 ;
|
||||
bOk = bOk && pCC->MergeCurves( 0.5 * dLinTol, ANG_TOL_STD_DEG) ;
|
||||
}
|
||||
// copio estrusione e spessore
|
||||
Vector3d vtExtr ;
|
||||
@@ -904,22 +907,17 @@ ExeApproxCurve( int nId, int nApprType, double dLinTol)
|
||||
double dThick ;
|
||||
if ( bOk && pCurve->GetThickness( dThick))
|
||||
pCC->SetThickness(dThick) ;
|
||||
// inserisco la curva composita nello stesso posto del GeomDB
|
||||
int nCrvId = ( bOk ? pGeomDB->InsertGeoObj( GDB_ID_NULL, nId, GDB_BEFORE, Release( pCC)) : GDB_ID_NULL) ;
|
||||
bOk = bOk && ( nCrvId != GDB_ID_NULL) ;
|
||||
// copio gli attributi
|
||||
bOk = bOk && pGeomDB->CopyAttributes( nId, nCrvId) ;
|
||||
// elimino la curva originale
|
||||
bOk = bOk && pGeomDB->Erase( nId) ;
|
||||
// sostituisco la vecchia curva con la nuova
|
||||
bOk = bOk && pGeomDB->ReplaceGeoObj( nId, Release( pCC)) ;
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
string sLua = "EgtApproxCurve(" + ToString( nId) + "," +
|
||||
ApproxTypeToString( nApprType) + "," +
|
||||
ToString( dLinTol) + ")" +
|
||||
" -- Id=" + ToString( nCrvId) ;
|
||||
" -- Ok=" + ToString( bOk) ;
|
||||
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
||||
}
|
||||
// restituisco risultato
|
||||
return nCrvId ;
|
||||
return bOk ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user