EgtExecutor :

- gestito l'ordine delle curve di bordo nella TrimmingGetToolOrientationLines.
This commit is contained in:
Daniele Bariletti
2026-05-19 17:31:07 +02:00
parent efe2bba18b
commit a2c8797930
2 changed files with 31 additions and 19 deletions
+17 -7
View File
@@ -874,7 +874,7 @@ ExeTrimmingGetSurfBzSyncPoints( int nParentId, int nEdge1Id, int nEdge2Id, doubl
// ---------------------------------------------------------------------------
bool
ExeTrimmingGetToolOrientationLines( int nParentId, int nMainEdgeId, int nOtherEdgeId, int nSyncLayerId, int nLineSId, int nLineEId,
ExeTrimmingGetToolOrientationLines( int nParentId, int nMainEdgeId, int nOtherEdgeId, bool bMainIsFirstBorder, int nSyncLayerId, int nLineSId, int nLineEId,
double dThetaStart, double dPhiStart, double dThetaEnd, double dPhiEnd, double dInterpLenS,
double dInterpLenE, double dLinTol,
int& nInterpStartId, int& nStartId, int& nEndId, int& nInterpEndId)
@@ -1007,12 +1007,22 @@ ExeTrimmingGetToolOrientationLines( int nParentId, int nMainEdgeId, int nOtherEd
// Recupero la superficie Bezier rigata
PtrOwner<ISurfBezier> pSurfBzRuled ;
if ( bOk) {
// Se non ho linee di sincronizzazione
if ( vSyncPoints.empty())
pSurfBzRuled.Set( GetSurfBezierRuledSmooth( pCrvMainEdge, pCrvOtherEdge, vSyncPoints, ISO_PAR_SAMPLE)) ;
// Se ho linee di sincronizzazione
else
pSurfBzRuled.Set( GetSurfBezierRuledGuided( pCrvMainEdge, pCrvOtherEdge, vSyncPoints, dMyLinTol)) ;
if ( bMainIsFirstBorder) {
// Se non ho linee di sincronizzazione
if ( vSyncPoints.empty())
pSurfBzRuled.Set( GetSurfBezierRuledSmooth( pCrvMainEdge, pCrvOtherEdge, vSyncPoints, ISO_PAR_SAMPLE)) ;
// Se ho linee di sincronizzazione
else
pSurfBzRuled.Set( GetSurfBezierRuledGuided( pCrvMainEdge, pCrvOtherEdge, vSyncPoints, dMyLinTol)) ;
}
else {
// Se non ho linee di sincronizzazione
if ( vSyncPoints.empty())
pSurfBzRuled.Set( GetSurfBezierRuledSmooth( pCrvOtherEdge, pCrvMainEdge, vSyncPoints, ISO_PAR_SAMPLE)) ;
// Se ho linee di sincronizzazione
else
pSurfBzRuled.Set( GetSurfBezierRuledGuided( pCrvOtherEdge, pCrvMainEdge, vSyncPoints, dMyLinTol)) ;
}
bOk = bOk && ( ! IsNull( pSurfBzRuled) && pSurfBzRuled->IsValid()) ;
}
+14 -12
View File
@@ -287,7 +287,7 @@ LuaTrimmingGetSurfBzSyncPoints( lua_State* L)
static int
LuaTrimmingGetToolOrientationLines( lua_State* L)
{
// 13 parametri : nParentId, nMainEdgeId, nOtherEdgeId, nSyncLayerId, nLineSId, nLineEId,
// 14 parametri : nParentId, nMainEdgeId, nOtherEdgeId, bMainIsFirstBorder, nSyncLayerId, nLineSId, nLineEId,
// dThetaStart, dPhiStart, dThetaEnd, dPhiEnd, dInterpLenS, dInterpLenE, dLinTol
int nParentId ;
LuaCheckParam( L, 1, nParentId)
@@ -295,30 +295,32 @@ LuaTrimmingGetToolOrientationLines( lua_State* L)
LuaCheckParam( L, 2, nMainEdgeId)
int nOtherEdgeId ;
LuaCheckParam( L, 3, nOtherEdgeId)
bool bMainIsFirstBorder ;
LuaCheckParam( L, 4, bMainIsFirstBorder)
int nLineSId ;
LuaCheckParam( L, 4, nLineSId)
LuaCheckParam( L, 5, nLineSId)
int nLineEId ;
LuaCheckParam( L, 5, nLineEId)
LuaCheckParam( L, 6, nLineEId)
int nSyncLayerId ;
LuaCheckParam( L, 6, nSyncLayerId)
LuaCheckParam( L, 7, nSyncLayerId)
double dThetaStart ;
LuaCheckParam( L, 7, dThetaStart)
LuaCheckParam( L, 8, dThetaStart)
double dPhiStart ;
LuaCheckParam( L, 8, dPhiStart)
LuaCheckParam( L, 9, dPhiStart)
double dThetaEnd ;
LuaCheckParam( L, 9, dThetaEnd)
LuaCheckParam( L, 10, dThetaEnd)
double dPhiEnd ;
LuaCheckParam( L, 10, dPhiEnd) ;
LuaCheckParam( L, 11, dPhiEnd) ;
double dInterpLenS ;
LuaCheckParam( L, 11, dInterpLenS)
LuaCheckParam( L, 12, dInterpLenS)
double dInterpLenE ;
LuaCheckParam( L, 12, dInterpLenE)
LuaCheckParam( L, 13, dInterpLenE)
double dLinTol ;
LuaCheckParam( L, 13, dLinTol)
LuaCheckParam( L, 14, dLinTol)
LuaClearStack( L) ;
// Inserisco i tratti lineari associati calcolati lungo il percorso
int nInterpStartId = GDB_ID_NULL, nStartId = GDB_ID_NULL, nEndId = GDB_ID_NULL, nInterpEndId = GDB_ID_NULL ;
bool bOk = ExeTrimmingGetToolOrientationLines( nParentId, nMainEdgeId, nOtherEdgeId, nSyncLayerId, nLineSId, nLineEId,
bool bOk = ExeTrimmingGetToolOrientationLines( nParentId, nMainEdgeId, nOtherEdgeId, bMainIsFirstBorder, nSyncLayerId, nLineSId, nLineEId,
dThetaStart, dPhiStart, dThetaEnd, dPhiEnd, dInterpLenS, dInterpLenE, dLinTol,
nInterpStartId, nStartId, nEndId, nInterpEndId) ;
LuaSetParam( L, bOk) ;