EgtExchange 1.6x3 :

- in ImportCnc aggiunta opzione per saltare movimenti in Zero Macchina.
This commit is contained in:
Dario Sassi
2016-12-27 09:05:47 +00:00
parent 76d7b60795
commit 716b861006
3 changed files with 31 additions and 11 deletions
+28 -10
View File
@@ -71,6 +71,9 @@ ImportCnc::Import( const string& sFile, IGeomDB* pGDB, int nIdGroup, int nFlag)
return false ;
}
// imposto le opzioni di importazione
m_nFlag = nFlag ;
// inizializzo lo scanner
Scanner TheScanner ;
if ( ! TheScanner.Init( sFile, "")) {
@@ -91,6 +94,7 @@ ImportCnc::Import( const string& sFile, IGeomDB* pGDB, int nIdGroup, int nFlag)
m_nArcType = NO_ARCTYPE ;
m_nComp = 0 ;
m_nCompSide = NO_COMP ;
m_ptHome = ORIG ;
m_ptLast = ORIG ;
m_ptNext = ORIG ;
m_ptCen = ORIG ;
@@ -110,9 +114,9 @@ ImportCnc::Import( const string& sFile, IGeomDB* pGDB, int nIdGroup, int nFlag)
}
}
// se importazione riuscita e richiesta elaborazione finale
if ( bOk && nFlag != EICFLAG_NONE)
bOk = PostProcess( nFlag) ;
// se importazione riuscita eseguo elaborazione finale
if ( bOk)
bOk = PostProcess() ;
return bOk ;
}
@@ -212,7 +216,8 @@ ImportCnc::ParseRemark( const string& sLine)
if ( iFrom != string::npos) {
Point3d ptHome ;
if ( FromString( sLine.substr( iFrom + 5), ptHome)) {
m_ptLast = ptHome ;
m_ptHome = ptHome ;
m_ptLast = m_ptHome ;
m_ptNext = m_ptLast ;
}
return true ;
@@ -325,7 +330,10 @@ ImportCnc::ParseX( const string& sToken)
m_vtOffs.x = dVal ;
break ;
default :
m_ptNext.x = ( m_bAbsCoord ? m_vtOffs.x + dVal : m_ptLast.x + dVal) ;
if ( m_bZeroMach)
m_ptNext.x = m_ptHome.x + dVal ;
else
m_ptNext.x = ( m_bAbsCoord ? m_vtOffs.x + dVal : m_ptLast.x + dVal) ;
m_bToMove = true ;
break ;
}
@@ -348,7 +356,10 @@ ImportCnc::ParseY( const string& sToken)
m_vtOffs.y = dVal ;
break ;
default :
m_ptNext.y = ( m_bAbsCoord ? m_vtOffs.y + dVal : m_ptLast.y + dVal) ;
if ( m_bZeroMach)
m_ptNext.y = m_ptHome.y + dVal ;
else
m_ptNext.y = ( m_bAbsCoord ? m_vtOffs.y + dVal : m_ptLast.y + dVal) ;
m_bToMove = true ;
break ;
}
@@ -371,7 +382,10 @@ ImportCnc::ParseZ( const string& sToken)
m_vtOffs.z = dVal ;
break ;
default :
m_ptNext.z = ( m_bAbsCoord ? m_vtOffs.z + dVal : m_ptLast.z + dVal) ;
if ( m_bZeroMach)
m_ptNext.z = m_ptHome.z + dVal ;
else
m_ptNext.z = ( m_bAbsCoord ? m_vtOffs.z + dVal : m_ptLast.z + dVal) ;
m_bToMove = true ;
break ;
}
@@ -541,6 +555,10 @@ ImportCnc::ExecSetIPL( void)
bool
ImportCnc::ExecMovement( void)
{
// se richiesto di ignorare i movimenti in Zero Macchina
if ( ( m_nFlag & EICFLAG_SKIP_ZEROMACH) != 0 && m_bZeroMach)
return true ;
// eseguo movimento
switch ( m_nMoveType) {
case RAPID :
return AddLine( L_RAPID) ;
@@ -822,10 +840,10 @@ ImportCnc::GetToolGroup( void)
//----------------------------------------------------------------------------
bool
ImportCnc::PostProcess( int nFlag)
ImportCnc::PostProcess( void)
{
// se richiesto concatenamento dei percorsi
if ( ( nFlag & EICFLAG_CHAIN) != 0) {
if ( ( m_nFlag & EICFLAG_CHAIN) != 0) {
// gestore di curva composita
PtrOwner<ICurveComposite> pCompo ;
// ciclo sui gruppi
@@ -899,7 +917,7 @@ ImportCnc::PostProcess( int nFlag)
}
// se richiesta eliminazione dei movimenti in rapido
if ( ( nFlag & EICFLAG_SKIP_RAPID) != 0) {
if ( ( m_nFlag & EICFLAG_SKIP_RAPID) != 0) {
// ciclo sui gruppi
int nGroupId = m_nFirstGroup ;
while ( nGroupId != GDB_ID_NULL) {