Merge commit '6ccfaa76519a02735f715df8390d7c8b6a22be5a' into Sgrossature
This commit is contained in:
+2
-2
@@ -1010,7 +1010,7 @@ Chiseling::GetCurves( SelData Id, ICURVEPLIST& lstPC)
|
||||
// la porto in globale
|
||||
pCrvCompo->ToGlob( frGlob) ;
|
||||
// sistemazioni varie
|
||||
AdjustCurveFromSurf( pCrvCompo, TOOL_ORTHO, FACE_CONT, 0) ;
|
||||
AdjustCurveFromSurf( pCrvCompo, TOOL_ORTHO, FACE_CONT, V_NULL, 0) ;
|
||||
// la restituisco
|
||||
lstPC.emplace_back( Release( pCrvCompo)) ;
|
||||
return true ;
|
||||
@@ -1046,7 +1046,7 @@ Chiseling::GetCurves( SelData Id, ICURVEPLIST& lstPC)
|
||||
// la porto in globale
|
||||
pCrvCompo->ToGlob( frGlob) ;
|
||||
// sistemazioni varie
|
||||
AdjustCurveFromSurf( pCrvCompo, TOOL_ORTHO, FACE_CONT, 0) ;
|
||||
AdjustCurveFromSurf( pCrvCompo, TOOL_ORTHO, FACE_CONT, V_NULL, 0) ;
|
||||
// la restituisco
|
||||
lstPC.emplace_back( Release( pCrvCompo)) ;
|
||||
}
|
||||
|
||||
Binary file not shown.
+9
-2
@@ -35,6 +35,7 @@
|
||||
#include "/EgtDev/Include/EGkDistPointCurve.h"
|
||||
#include "/EgtDev/Include/EGkIntersCurveSurfTm.h"
|
||||
#include "/EgtDev/Include/EGkIntervals.h"
|
||||
#include "/EgtDev/Include/EGkStringUtils3d.h"
|
||||
#include "/EgtDev/Include/EGkUserObjFactory.h"
|
||||
#include "/EgtDev/Include/EGnStringKeyVal.h"
|
||||
#include "/EgtDev/Include/EgtNumUtils.h"
|
||||
@@ -1364,8 +1365,11 @@ Milling::GetCurves( SelData Id, ICURVEPLIST& lstPC)
|
||||
else
|
||||
nToolDir = TOOL_PARAL ;
|
||||
int nFaceUse = ( m_Params.m_nFaceUse & 31) ;
|
||||
Vector3d vtFaceUse ;
|
||||
if ( FromString( ExtractInfo( m_Params.m_sUserNotes, "VtFaceUse="), vtFaceUse) && ! vtFaceUse.IsSmall())
|
||||
nFaceUse = FACE_VERSOR ;
|
||||
double dSawThick = ( ( m_TParams.m_nType & TF_SAWBLADE) != 0 ? m_TParams.m_dThick : 0) ;
|
||||
AdjustCurveFromSurf( pCrvCompo, nToolDir, nFaceUse, dSawThick) ;
|
||||
AdjustCurveFromSurf( pCrvCompo, nToolDir, nFaceUse, vtFaceUse, dSawThick) ;
|
||||
// la restituisco
|
||||
lstPC.emplace_back( Release( pCrvCompo)) ;
|
||||
return true ;
|
||||
@@ -1389,6 +1393,9 @@ Milling::GetCurves( SelData Id, ICURVEPLIST& lstPC)
|
||||
else
|
||||
nToolDir = TOOL_PARAL ;
|
||||
int nFaceUse = ( m_Params.m_nFaceUse & 31) ;
|
||||
Vector3d vtFaceUse ;
|
||||
if ( FromString( ExtractInfo( m_Params.m_sUserNotes, "VtFaceUse="), vtFaceUse) && ! vtFaceUse.IsSmall())
|
||||
nFaceUse = FACE_VERSOR ;
|
||||
double dSawThick = ( ( m_TParams.m_nType & TF_SAWBLADE) != 0 ? m_TParams.m_dThick : 0) ;
|
||||
// determino intervallo di chunk
|
||||
int nCstart = 0 ;
|
||||
@@ -1411,7 +1418,7 @@ Milling::GetCurves( SelData Id, ICURVEPLIST& lstPC)
|
||||
// la porto in globale
|
||||
pCrvCompo->ToGlob( frGlob) ;
|
||||
// sistemazioni varie
|
||||
AdjustCurveFromSurf( pCrvCompo, nToolDir, nFaceUse, dSawThick) ;
|
||||
AdjustCurveFromSurf( pCrvCompo, nToolDir, nFaceUse, vtFaceUse, dSawThick) ;
|
||||
// la restituisco
|
||||
lstPC.emplace_back( Release( pCrvCompo)) ;
|
||||
}
|
||||
|
||||
+1
-1
@@ -1016,7 +1016,7 @@ Mortising::GetCurve( SelData Id)
|
||||
else
|
||||
nToolDir = TOOL_PAR_SLANT ;
|
||||
int nFaceUse = ( m_Params.m_nFaceUse & 31) ;
|
||||
AdjustCurveFromSurf( pCrvCompo, nToolDir, nFaceUse, m_TParams.m_dThick, 2) ;
|
||||
AdjustCurveFromSurf( pCrvCompo, nToolDir, nFaceUse, V_NULL, m_TParams.m_dThick, 2) ;
|
||||
// la restituisco
|
||||
return Release( pCrvCompo) ;
|
||||
}
|
||||
|
||||
+5
-3
@@ -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) ;
|
||||
|
||||
+4
-3
@@ -153,7 +153,8 @@ class Operation : public IUserObj
|
||||
bool GetRawGlobBox( int nPhase, const BBox3d& b3Test, double dToler, BBox3d& b3Raw) const ;
|
||||
bool GetCurrRawsGlobBox( BBox3d& b3Raw) const ;
|
||||
|
||||
bool AdjustCurveFromSurf( ICurveComposite* pCrvCompo, int nToolDir, int nFaceUse, double dToolThick, int nGrade = 3) ;
|
||||
bool AdjustCurveFromSurf( ICurveComposite* pCrvCompo, int nToolDir, int nFaceUse, const Vector3d& vtFaceUse,
|
||||
double dToolThick, int nGrade = 3) ;
|
||||
bool ApproxWithArcsIfUseful( ICurveComposite* pCompo, bool bCareTempProp = false) const ;
|
||||
bool ApproxWithLines( ICurveComposite* pCompo, bool bFeed = true) const ;
|
||||
bool VerifyArcs( ICurveComposite* pCompo, double dMaxAngCen = MAX_ANG_CEN) const ;
|
||||
@@ -299,6 +300,6 @@ inline Operation* GetOperation( IUserObj* pUserObj)
|
||||
// tipo posizione utensile
|
||||
enum { TOOL_PARAL = 1, TOOL_ORTHO = 2, TOOL_ORTUP = 3, TOOL_PAR_SLANT= 4} ;
|
||||
// tipo di utilizzo contorno faccia
|
||||
enum { FACE_DOWN = 1, FACE_TOP = 2, FACE_FRONT = 3, FACE_BACK = 4, FACE_LEFT = 5, FACE_RIGHT = 6, FACE_CONT = 7} ;
|
||||
enum { FACE_DOWN = 1, FACE_TOP = 2, FACE_FRONT = 3, FACE_BACK = 4, FACE_LEFT = 5, FACE_RIGHT = 6, FACE_CONT = 7, FACE_VERSOR = 8} ;
|
||||
// risultato di SpecialTestCollisionAvoid
|
||||
enum { SCAV_ERROR = -1, SCAV_COLLIDE = 0, SCAV_AVOID = 1, SCAV_TOTEST = 2};
|
||||
enum { SCAV_ERROR = -1, SCAV_COLLIDE = 0, SCAV_AVOID = 1, SCAV_TOTEST = 2} ;
|
||||
|
||||
+2
-2
@@ -1221,7 +1221,7 @@ Pocketing::GetCurves( SelData Id, ICURVEPLIST& lstPC)
|
||||
// la porto in globale
|
||||
pCrvCompo->ToGlob( frGlob) ;
|
||||
// sistemazioni varie
|
||||
AdjustCurveFromSurf( pCrvCompo, TOOL_ORTHO, FACE_CONT, 0) ;
|
||||
AdjustCurveFromSurf( pCrvCompo, TOOL_ORTHO, FACE_CONT, V_NULL, 0) ;
|
||||
// la restituisco
|
||||
lstPC.emplace_back( Release( pCrvCompo)) ;
|
||||
return true ;
|
||||
@@ -1259,7 +1259,7 @@ Pocketing::GetCurves( SelData Id, ICURVEPLIST& lstPC)
|
||||
// la porto in globale
|
||||
pCrvCompo->ToGlob( frGlob) ;
|
||||
// sistemazioni varie
|
||||
AdjustCurveFromSurf( pCrvCompo, TOOL_ORTHO, FACE_CONT, 0) ;
|
||||
AdjustCurveFromSurf( pCrvCompo, TOOL_ORTHO, FACE_CONT, V_NULL, 0) ;
|
||||
// la restituisco
|
||||
lstPC.emplace_back( Release( pCrvCompo)) ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user