EgtMachKernel 2.7k2 :
- correzioni a lav. waterjet per angoli esterni.
This commit is contained in:
Binary file not shown.
+8
-7
@@ -2160,10 +2160,10 @@ WaterJetting::AddLoopsPreview( const ICurveComposite* pCompo, ISurfFlatRegion* p
|
||||
if ( IsNull( pLoop))
|
||||
return false ;
|
||||
// lunghezza tratti lineari e loro punti estremi
|
||||
double dTgLen = 0.5 * m_TParams.m_dDiam * tan( 0.5 * dAng * DEGTORAD) ;
|
||||
double dTgLen = 0.5 * m_TParams.m_dDiam * tan( 0.5 * abs( dAng) * DEGTORAD) ;
|
||||
if ( m_Params.m_dSideAngle > EPS_ANG_SMALL) {
|
||||
double dW = m_dElev * sin( m_Params.m_dSideAngle * DEGTORAD) ;
|
||||
double dExtraLen = dW / tan( ( 180 - abs( dAng)) / 2 * DEGTORAD) ;
|
||||
double dExtraLen = dW / tan( 0.5 * ( 180 - abs( dAng)) * DEGTORAD) ;
|
||||
dTgLen += dExtraLen ;
|
||||
}
|
||||
Point3d ptP ; pCrvC->GetStartPoint( ptP) ;
|
||||
@@ -2372,11 +2372,11 @@ WaterJetting::AddStandardWj( const ICurveComposite* pCompo, const Vector3d& vtTo
|
||||
// Se angolo esterno e richiesto anello esterno
|
||||
if ( IsExternalAngle( dAng) && m_Params.m_nExtCornerType == WJET_EC_LOOP) {
|
||||
// lunghezza tratti lineari
|
||||
double dTgLen = 0.5 * m_TParams.m_dDiam * tan( 0.5 * dAng * DEGTORAD) ;
|
||||
double dTgLen = 0.5 * m_TParams.m_dDiam * tan( 0.5 * abs( dAng) * DEGTORAD) ;
|
||||
if ( m_Params.m_dSideAngle > EPS_ANG_SMALL) {
|
||||
// se inclinazione positiva calcolo di quanto deve uscire per non rovinare lo spigolo
|
||||
double dW = m_dElev * sin( m_Params.m_dSideAngle * DEGTORAD) ;
|
||||
double dExtraLen = dW / tan( ( 180 - abs( dAng)) / 2 * DEGTORAD) ;
|
||||
double dExtraLen = dW / tan( 0.5 * ( 180 - abs( dAng)) * DEGTORAD) ;
|
||||
dTgLen += dExtraLen ;
|
||||
}
|
||||
// calcolo punti estremi
|
||||
@@ -2404,11 +2404,11 @@ WaterJetting::AddStandardWj( const ICurveComposite* pCompo, const Vector3d& vtTo
|
||||
// aggiungo il primo tratto
|
||||
Vector3d vtCorr = CalcCorrDir( pCompoArc, 1) ;
|
||||
SetToolCorrAuxDir( Z_AX, vtCorr) ;
|
||||
if ( AddCurveMove( pCompoArc->GetCurve(0), bSplitArcs) == GDB_ID_NULL)
|
||||
if ( AddCurveMove( pCompoArc->GetCurve( 0), bSplitArcs) == GDB_ID_NULL)
|
||||
return false ;
|
||||
// aggiungo secondo tratto
|
||||
CalcAndSetToolCorrAuxDir( pCompo, i + 0.5) ;
|
||||
if ( AddCurveMove( pCompoArc->GetCurve(1), bSplitArcs) == GDB_ID_NULL)
|
||||
if ( AddCurveMove( pCompoArc->GetCurve( 1), bSplitArcs) == GDB_ID_NULL)
|
||||
return false ;
|
||||
}
|
||||
else {
|
||||
@@ -3103,7 +3103,8 @@ WaterJetting::CalcOffset( ICurveComposite* pCompo, double dSignOffs)
|
||||
}
|
||||
}
|
||||
// eseguo offset semplice
|
||||
if ( pCompo->SimpleOffset( dSignOffs, nFlag))
|
||||
constexpr double MAX_ANG_EXT = 135 ;
|
||||
if ( pCompo->SimpleOffset( dSignOffs, nFlag, MAX_ANG_EXT))
|
||||
return true ;
|
||||
// se curva piatta, provo con offset avanzato
|
||||
bool bOk = false ;
|
||||
|
||||
Reference in New Issue
Block a user