EgtMachKernel 2.3a6 :
- corretta lavorazione mortasature inclinate.
This commit is contained in:
+18
-13
@@ -1184,9 +1184,14 @@ Mortising::ProcessPath( int nPathId, int nPvId, int nClId)
|
||||
|
||||
// eventuali allungamenti/accorciamenti
|
||||
{
|
||||
// inclinazione della direzione utensile rispetto al movimento
|
||||
Vector3d vtTg ; pCompo->GetMidDir( vtTg) ;
|
||||
double dSinAng = max( ( vtTg ^ vtExtr).Len(), sin( 45 * DEGTORAD)) ;
|
||||
double dStartAddLen = m_Params.m_dStartAddLen / dSinAng ;
|
||||
double dEndAddLen = m_Params.m_dEndAddLen / dSinAng ;
|
||||
// verifico che il percorso sia abbastanza lungo
|
||||
double dLen ; pCompo->GetLength( dLen) ;
|
||||
if ( dLen + m_Params.m_dStartAddLen + m_Params.m_dEndAddLen < 10 * EPS_SMALL) {
|
||||
if ( dLen + dStartAddLen + dEndAddLen < 10 * EPS_SMALL) {
|
||||
m_pMchMgr->SetWarning( 2555, "Warning in Mortising : skipped Path too short") ;
|
||||
return true ;
|
||||
}
|
||||
@@ -1194,26 +1199,26 @@ Mortising::ProcessPath( int nPathId, int nPvId, int nClId)
|
||||
if ( pCompo->GetCurveCount() == 1 && pCompo->IsClosed())
|
||||
pCompo->AddJoint( 0.5) ;
|
||||
// eventuali allungamenti
|
||||
if ( m_Params.m_dStartAddLen > EPS_SMALL) {
|
||||
if ( ! pCompo->ExtendStartByLen( m_Params.m_dStartAddLen))
|
||||
if ( dStartAddLen > EPS_SMALL) {
|
||||
if ( ! pCompo->ExtendStartByLen( dStartAddLen))
|
||||
return false ;
|
||||
dLen += m_Params.m_dStartAddLen ;
|
||||
dLen += dStartAddLen ;
|
||||
}
|
||||
if ( m_Params.m_dEndAddLen > EPS_SMALL) {
|
||||
if ( ! pCompo->ExtendEndByLen( m_Params.m_dEndAddLen))
|
||||
if (dEndAddLen > EPS_SMALL) {
|
||||
if ( ! pCompo->ExtendEndByLen( dEndAddLen))
|
||||
return false ;
|
||||
dLen += m_Params.m_dEndAddLen ;
|
||||
dLen += dEndAddLen ;
|
||||
}
|
||||
// eventuale accorciamenti (da fare dopo tutti gli allungamenti)
|
||||
if ( m_Params.m_dStartAddLen < - EPS_SMALL) {
|
||||
if ( ! pCompo->TrimStartAtLen( - m_Params.m_dStartAddLen))
|
||||
if ( dStartAddLen < - EPS_SMALL) {
|
||||
if ( ! pCompo->TrimStartAtLen( -dStartAddLen))
|
||||
return false ;
|
||||
dLen += m_Params.m_dStartAddLen ;
|
||||
dLen += dStartAddLen ;
|
||||
}
|
||||
if ( m_Params.m_dEndAddLen < - EPS_SMALL) {
|
||||
if ( ! pCompo->TrimEndAtLen( dLen + m_Params.m_dEndAddLen))
|
||||
if ( dEndAddLen < - EPS_SMALL) {
|
||||
if ( ! pCompo->TrimEndAtLen( dLen + dEndAddLen))
|
||||
return false ;
|
||||
dLen += m_Params.m_dEndAddLen ;
|
||||
dLen += dEndAddLen ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user