EgtExecutor :
- aggiunto check per la scelta del lato a cui appliare l'interpolazione delle direzioni di lavorazione - corretta gestione delle direzioni rispetto al bordo scelto per l'operazione di interpolazione.
This commit is contained in:
+10
-3
@@ -874,7 +874,8 @@ ExeTrimmingGetSurfBzSyncPoints( int nParentId, int nEdge1Id, int nEdge2Id, doubl
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
bool
|
||||
ExeTrimmingGetToolOrientationLines( int nParentId, int nMainEdgeId, int nOtherEdgeId, bool bMainIsFirstBorder, int nSyncLayerId, int nLineSId, int nLineEId,
|
||||
ExeTrimmingGetToolOrientationLines( int nParentId, int nMainEdgeId, int nOtherEdgeId, bool bMainIsFirstBorder, int nSyncLayerId,
|
||||
int nLineSId, int nLineEId, bool bShorterSide,
|
||||
double dThetaStart, double dPhiStart, double dThetaEnd, double dPhiEnd, double dInterpLenS,
|
||||
double dInterpLenE, double dLinTol,
|
||||
int& nInterpStartId, int& nStartId, int& nEndId, int& nInterpEndId)
|
||||
@@ -890,7 +891,7 @@ ExeTrimmingGetToolOrientationLines( int nParentId, int nMainEdgeId, int nOtherEd
|
||||
double dMyLinTol = Clamp( dLinTol, EPS_SMALL, 1e5 * EPS_SMALL) ;
|
||||
const double TOL = dMyLinTol ;
|
||||
// Definisco costanti per interpolazione
|
||||
const double INTERPOLATION_DIST = 0.5 ; // alzare
|
||||
const double INTERPOLATION_DIST = 2 ;
|
||||
const double ISO_PAR_SAMPLE = 20.0 ;
|
||||
|
||||
// Recupero il riferimento del gruppo di destinazione
|
||||
@@ -950,9 +951,11 @@ ExeTrimmingGetToolOrientationLines( int nParentId, int nMainEdgeId, int nOtherEd
|
||||
double dLenE = 0., dLenMain = 0. ;
|
||||
bOk = ( pCompoMainCL->GetLengthAtPoint( Line2.first, dLenE, TOL) &&
|
||||
pCompoMainCL->GetLength( dLenMain)) ;
|
||||
if ( dLenE > dLenMain / 2. + EPS_SMALL) {
|
||||
if ( dLenE > dLenMain / 2. + EPS_SMALL && bShorterSide) {
|
||||
swap( Line1, Line2) ;
|
||||
swap( pCrvSyncS, pCrvSyncE) ;
|
||||
swap( dThetaStart, dThetaEnd) ;
|
||||
swap( dPhiStart, dPhiEnd) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1063,6 +1066,8 @@ ExeTrimmingGetToolOrientationLines( int nParentId, int nMainEdgeId, int nOtherEd
|
||||
pCompoIso->IsValid() &&
|
||||
pCompoIso->GetStartPoint( LineInterpS.first) &&
|
||||
pCompoIso->GetEndPoint( LineInterpS.second)) ;
|
||||
if ( ! bMainIsFirstBorder)
|
||||
swap( LineInterpS.first, LineInterpS.second) ;
|
||||
if ( bOk) {
|
||||
bool bFirst = true ;
|
||||
// Interpolo
|
||||
@@ -1179,6 +1184,8 @@ ExeTrimmingGetToolOrientationLines( int nParentId, int nMainEdgeId, int nOtherEd
|
||||
pCompoIso->IsValid() &&
|
||||
pCompoIso->GetStartPoint( LineInterpE.first) &&
|
||||
pCompoIso->GetEndPoint( LineInterpE.second)) ;
|
||||
if ( ! bMainIsFirstBorder)
|
||||
swap( LineInterpE.first, LineInterpE.second) ;
|
||||
if ( bOk) {
|
||||
// Interpolo
|
||||
double dLenLineInterpE = Dist( LineInterpE.first, LineInterpE.second) ;
|
||||
|
||||
Reference in New Issue
Block a user