EgtMachKernel 2.1j9 :
- in lavorazione WJ rallentamento su angoli interni allungato opportunamente se angolo di fianco è positivo.
This commit is contained in:
Binary file not shown.
+29
-7
@@ -38,6 +38,7 @@ using namespace std ;
|
||||
// 3201 = "Error in WaterJetting : UpdateToolData failed"
|
||||
// 3202 = "Error in WaterJetting : Offset not computable"
|
||||
// 3203 = "Error in WaterJetting : Empty RawBox"
|
||||
// 3204 = "Error in WaterJetting : entity too small near inside corner"
|
||||
// 3205 = "Error in WaterJetting : machining depth (xx) bigger than MaxMaterial (yy)"
|
||||
// 3207 = "Error in WaterJetting : Approach not computable"
|
||||
// 3208 = "Error in WaterJetting : LeadIn not computable"
|
||||
@@ -60,6 +61,9 @@ using namespace std ;
|
||||
// 3254 = "Warning in WaterJetting : Tool data changed (xx)"
|
||||
// 3255 = "Warning in WaterJetting : skipped Path too short"
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const double EXTRA_ACC_LEN = 0.1 ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
USEROBJ_REGISTER( GetOperationClass( OPER_WATERJETTING), WaterJetting) ;
|
||||
|
||||
@@ -1894,7 +1898,7 @@ WaterJetting::AddStandardWj( const ICurveComposite* pCompo, const Vector3d& vtTo
|
||||
// lunghezza entità
|
||||
double dLen ; pCrvC->GetLength( dLen) ;
|
||||
// lunghezza di accelerazione
|
||||
double dAccLen = min( m_Params.m_dCornerSlowLen, dLen / 2 - 0.1) ;
|
||||
double dAccLen = min( m_Params.m_dCornerSlowLen, dLen / 2 - EXTRA_ACC_LEN) ;
|
||||
// Feed ridotta
|
||||
double dMinFeed = GetActualReducedFeed() ;
|
||||
// ciclo sui punti di accelerazione
|
||||
@@ -1913,7 +1917,16 @@ WaterJetting::AddStandardWj( const ICurveComposite* pCompo, const Vector3d& vtTo
|
||||
// lunghezza entità
|
||||
double dLen ; pCrvC->GetLength( dLen) ;
|
||||
// lunghezza di accelerazione
|
||||
double dAccLen = min( m_Params.m_dCornerSlowLen, dLen / 2 - 0.1) ;
|
||||
double dAccLen = min( m_Params.m_dCornerSlowLen, dLen / 2 - EXTRA_ACC_LEN) ;
|
||||
if ( m_Params.m_dSideAngle > 0) {
|
||||
double dW = m_dElev * sin( m_Params.m_dSideAngle * DEGTORAD) ;
|
||||
double dSlowLen = dW / tan( ( 180 - abs( dAng)) / 2 * DEGTORAD) ;
|
||||
if ( dSlowLen > dLen / 2 - EXTRA_ACC_LEN) {
|
||||
m_pMchMgr->SetLastError( 3204, "Error in WaterJetting : entity too small near inside corner") ;
|
||||
return false ;
|
||||
}
|
||||
dAccLen = min( dSlowLen + m_Params.m_dCornerSlowLen, dLen / 2 - EXTRA_ACC_LEN) ;
|
||||
}
|
||||
// Feed ridotta
|
||||
double dMinFeed = GetActualReducedFeed() ;
|
||||
// Direzioni utensile nell'angolo e finale
|
||||
@@ -1954,8 +1967,8 @@ WaterJetting::AddStandardWj( const ICurveComposite* pCompo, const Vector3d& vtTo
|
||||
if ( m_Params.m_nExtCornerType == WJET_EC_SLOW && IsExternalAngle( dAng)) {
|
||||
// lunghezza entità
|
||||
double dLen ; pCrvC->GetLength( dLen) ;
|
||||
// lunghezza di accelerazione
|
||||
double dAccLen = min( m_Params.m_dCornerSlowLen, dLen / 2 - 0.1) ;
|
||||
// lunghezza di decelerazione
|
||||
double dAccLen = min( m_Params.m_dCornerSlowLen, dLen / 2 - EXTRA_ACC_LEN) ;
|
||||
// Feed ridotta
|
||||
double dMinFeed = GetActualReducedFeed() ;
|
||||
// ciclo sui punti di decelerazione
|
||||
@@ -1974,8 +1987,17 @@ WaterJetting::AddStandardWj( const ICurveComposite* pCompo, const Vector3d& vtTo
|
||||
if ( m_Params.m_nIntCornerType == WJET_IC_SLOW && IsInternalAngle( dAng)) {
|
||||
// lunghezza entità
|
||||
double dLen ; pCrvC->GetLength( dLen) ;
|
||||
// lunghezza di accelerazione
|
||||
double dAccLen = min( m_Params.m_dCornerSlowLen, dLen / 2 - 0.1) ;
|
||||
// lunghezza di deccelerazione
|
||||
double dAccLen = min( m_Params.m_dCornerSlowLen, dLen / 2 - EXTRA_ACC_LEN) ;
|
||||
if ( m_Params.m_dSideAngle > 0) {
|
||||
double dW = m_dElev * sin( m_Params.m_dSideAngle * DEGTORAD) ;
|
||||
double dSlowLen = dW / tan( ( 180 - abs( dAng)) / 2 * DEGTORAD) ;
|
||||
if ( dSlowLen > dLen / 2 - EXTRA_ACC_LEN) {
|
||||
m_pMchMgr->SetLastError( 3204, "Error in WaterJetting : entity too small near inside corner") ;
|
||||
return false ;
|
||||
}
|
||||
dAccLen = min( dSlowLen + m_Params.m_dCornerSlowLen, dLen / 2 - EXTRA_ACC_LEN) ;
|
||||
}
|
||||
// Feed ridotta
|
||||
double dMinFeed = GetActualReducedFeed() ;
|
||||
// Direzioni utensile iniziale e nell'angolo
|
||||
@@ -2502,7 +2524,7 @@ WaterJetting::CalcOffset( ICurveComposite* pCompo, double dSignOffs)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Valore limite angolo per corner
|
||||
const double ANG_CORNER = 30 ;
|
||||
const double ANG_CORNER = 10 ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
|
||||
Reference in New Issue
Block a user