EgtMachKernel 2.6f4 :

- in fresatura aggiunta possibilità in FaceUse di dare direzione di riferimento con un vettore di chiave VtFaceUse nelle note utente.
This commit is contained in:
Dario Sassi
2024-06-24 16:20:20 +02:00
parent e379c216b8
commit 6ccfaa7651
7 changed files with 23 additions and 13 deletions
+5 -3
View File
@@ -935,7 +935,7 @@ Operation::GetCurrRawsGlobBox( BBox3d& b3Raw) const
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
inline Vector3d
GetDirInFacePerpSide( int nFaceUse, const Vector3d& vtN, ICurveComposite* pCrvCompo)
GetDirInFacePerpSide( int nFaceUse, const Vector3d& vtFaceUse, const Vector3d& vtN, ICurveComposite* pCrvCompo)
{
// determino la direzione di riferimento proiettata nella faccia
Vector3d vtRef ;
@@ -946,6 +946,7 @@ GetDirInFacePerpSide( int nFaceUse, const Vector3d& vtN, ICurveComposite* pCrvCo
case FACE_BACK : vtRef = -Y_AX ; break ;
case FACE_LEFT : vtRef = X_AX ; break ;
case FACE_RIGHT : vtRef = -X_AX ; break ;
case FACE_VERSOR : vtRef = vtFaceUse ; break ;
}
vtRef -= vtRef * vtN * vtN ;
if ( ! vtRef.Normalize())
@@ -972,7 +973,8 @@ GetDirInFacePerpSide( int nFaceUse, const Vector3d& vtN, ICurveComposite* pCrvCo
//----------------------------------------------------------------------------
bool
Operation::AdjustCurveFromSurf( ICurveComposite* pCrvCompo, int nToolDir, int nFaceUse, double dToolThick, int nGrade)
Operation::AdjustCurveFromSurf( ICurveComposite* pCrvCompo, int nToolDir, int nFaceUse, const Vector3d& vtFaceUse,
double dToolThick, int nGrade)
{
// copia della curva originale
PtrOwner<ICurveComposite> pCopy( pCrvCompo->Clone()) ;
@@ -1008,7 +1010,7 @@ Operation::AdjustCurveFromSurf( ICurveComposite* pCrvCompo, int nToolDir, int nF
// altrimenti
else {
// determino la direzione di riferimento
vtRef = GetDirInFacePerpSide( nFaceUse, vtN, pCrvCompo) ;
vtRef = GetDirInFacePerpSide( nFaceUse, vtFaceUse, vtN, pCrvCompo) ;
// la curva gira in senso antiorario attorno al contorno faccia vista dalla normale uscente
// elimino i segmenti che hanno la direzione di riferimento a destra o quasi (16 deg o 31 deg o 46deg)
nGrade = Clamp( nGrade, 1, 3) ;