EgtMachKernel 1.8f5 :
- corretto Update lavorazioni.
This commit is contained in:
+34
-17
@@ -1178,6 +1178,9 @@ Operation::AdjustStartEndMovements( void)
|
||||
bMaxZ = true ;
|
||||
}
|
||||
|
||||
// elimino vecchie risalite alla fine della lavorazione
|
||||
RemoveRise() ;
|
||||
|
||||
// aggiusto l'inizio di ogni percorso di lavoro
|
||||
bool bOk = true ;
|
||||
int nClPathId = m_pGeomDB->GetFirstGroupInGroup( nClId) ;
|
||||
@@ -1211,6 +1214,8 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
|
||||
{
|
||||
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
// elimino eventuali CLIMB già presenti
|
||||
RemoveClimb( nClPathId) ;
|
||||
// recupero la prima entità di questo percorso
|
||||
int nEntId = m_pGeomDB->GetFirstInGroup( nClPathId) ;
|
||||
// recupero i dati Cam dell'entità
|
||||
@@ -1226,7 +1231,7 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
|
||||
if ( m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_AFTER) == GDB_ID_NULL)
|
||||
return false ;
|
||||
// modifico quella originale (è la prima del percorso)
|
||||
m_pGeomDB->RemoveName( nEntId) ;
|
||||
m_pGeomDB->SetName( nEntId, MCH_CL_CLIMB) ;
|
||||
DBLVECTOR vAxNew = vAxCurr ;
|
||||
vAxNew[2] = vAxPrev[2] ;
|
||||
// eventuale aggiustamenti speciali dipendenti dalla macchina
|
||||
@@ -1269,18 +1274,18 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
|
||||
if ( pNew1CamData == nullptr)
|
||||
return false ;
|
||||
// modifico questa entità
|
||||
m_pGeomDB->RemoveName( nNew1Id) ;
|
||||
m_pGeomDB->SetName( nNew1Id, MCH_CL_CLIMB) ;
|
||||
DBLVECTOR vAxNew1 = vAxPrev ;
|
||||
vAxNew1[2] = ( bSafeOk ? dSafeZ : dHomeZ) ;
|
||||
int nMask = CamData::MSK_L3 ;
|
||||
// eventuali aggiustamenti speciali dipendenti dalla macchina
|
||||
Vector3d vtTool = pCamData->GetToolDir() ;
|
||||
Vector3d vtTool = pNew1CamData->GetToolDir() ;
|
||||
DBLVECTOR vAxTmp = vAxNew1 ;
|
||||
bool bModif ;
|
||||
if ( ! SpecialMoveZup( vtTool, vAxTmp, bModif))
|
||||
return false ;
|
||||
if ( bModif) {
|
||||
pCamData->SetToolDir( vtTool) ;
|
||||
pNew1CamData->SetToolDir( vtTool) ;
|
||||
if ( vAxNew1.size() >= 4 && abs( vAxTmp[3] - vAxNew1[3]) > EPS_ANG_SMALL) {
|
||||
vAxCurr[3] = vAxNew1[3] ;
|
||||
nMask |= CamData::MSK_R1 ;
|
||||
@@ -1305,8 +1310,8 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
|
||||
CamData* pNew2CamData = GetCamData( m_pGeomDB->GetUserObj( nNew2Id)) ;
|
||||
if ( pNew2CamData == nullptr)
|
||||
return false ;
|
||||
// modifico quella originale (è la prima del percorso)
|
||||
m_pGeomDB->RemoveName( nNew2Id) ;
|
||||
// la modifico
|
||||
m_pGeomDB->SetName( nNew2Id, MCH_CL_CLIMB) ;
|
||||
DBLVECTOR vAxNew2 = vAxCurr ;
|
||||
vAxNew2[2] = ( bSafeOk ? dSafeZ : dHomeZ) ;
|
||||
pNew2CamData->SetAxes( CamData::AS_OK, vAxNew2) ;
|
||||
@@ -1324,7 +1329,7 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
|
||||
if ( m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_AFTER) == GDB_ID_NULL)
|
||||
return false ;
|
||||
// modifico quella originale (è la prima del percorso)
|
||||
m_pGeomDB->RemoveName( nEntId) ;
|
||||
m_pGeomDB->SetName( nEntId, MCH_CL_CLIMB) ;
|
||||
DBLVECTOR vAxNew = vAxPrev ;
|
||||
vAxNew[2] = vAxCurr[2] ;
|
||||
pCamData->SetAxes( CamData::AS_OK, vAxNew) ;
|
||||
@@ -1337,7 +1342,7 @@ Operation::AdjustOneStartMovement( int nClPathId, const DBLVECTOR& vAxPrev, bool
|
||||
if ( m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_AFTER) == GDB_ID_NULL)
|
||||
return false ;
|
||||
// modifico quella originale (è la prima del percorso)
|
||||
m_pGeomDB->RemoveName( nEntId) ;
|
||||
m_pGeomDB->SetName( nEntId, MCH_CL_CLIMB) ;
|
||||
DBLVECTOR vAxNew = vAxCurr ;
|
||||
vAxNew[2] = vAxPrev[2] ;
|
||||
// eventuali aggiustamenti speciali dipendenti dalla macchina
|
||||
@@ -1380,6 +1385,22 @@ Operation::ToolChangeNeeded( const Operation& Op1, const Operation& Op2)
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Operation::RemoveClimb( int nClPathId)
|
||||
{
|
||||
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
// elimino tutte le entità CLIMB all'inizio del percorso
|
||||
int nId = m_pGeomDB->GetFirstNameInGroup( nClPathId, MCH_CL_CLIMB) ;
|
||||
while ( nId != GDB_ID_NULL) {
|
||||
m_pGeomDB->Erase( nId) ;
|
||||
nId = m_pGeomDB->GetFirstNameInGroup( nClPathId, MCH_CL_CLIMB) ;
|
||||
}
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Operation::AddRise( DBLVECTOR& vAxVal, double dDelta)
|
||||
@@ -1411,7 +1432,7 @@ Operation::AddRise( DBLVECTOR& vAxVal, double dDelta)
|
||||
if ( nId == GDB_ID_NULL)
|
||||
return false ;
|
||||
m_pGeomDB->SetName( nId, MCH_CL_RISE) ;
|
||||
// creo oggetto dati Cam
|
||||
// creo oggetto dati Cam da associare al punto
|
||||
PtrOwner<CamData> pCam( pCamData->Clone()) ;
|
||||
if ( IsNull( pCam))
|
||||
return false ;
|
||||
@@ -1435,13 +1456,13 @@ Operation::AddRise( DBLVECTOR& vAxVal, double dDelta)
|
||||
nFlag = 3 ; // movimento a Zmax
|
||||
}
|
||||
// eventuale aggiustamenti speciali dipendenti dalla macchina
|
||||
Vector3d vtTool = pCamData->GetToolDir() ;
|
||||
Vector3d vtTool = pCam->GetToolDir() ;
|
||||
DBLVECTOR vAxTmp = vAxVal ;
|
||||
bool bModif ;
|
||||
if ( ! SpecialMoveZup( vtTool, vAxTmp, bModif))
|
||||
return false ;
|
||||
if ( bModif) {
|
||||
pCamData->SetToolDir( vtTool) ;
|
||||
pCam->SetToolDir( vtTool) ;
|
||||
vAxVal = vAxTmp ;
|
||||
}
|
||||
// verifico extra-corsa dell'asse Z
|
||||
@@ -1788,12 +1809,8 @@ Operation::SpecialMoveZup( Vector3d& vtTool, DBLVECTOR& vAx, bool& bModif)
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + GVAR_TDIR, vtTool) ;
|
||||
// valore degli assi
|
||||
int nNumAxes = int( vAx.size()) ;
|
||||
for ( int i = 1 ; i <= MAX_AXES ; ++ i) {
|
||||
if ( i <= nNumAxes)
|
||||
bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisValue( i, EMC_VAR), vAx[i-1]) ;
|
||||
else
|
||||
bOk = bOk && pMch->LuaResetGlobVar( GetGlobVarAxisValue( i, EMC_VAR)) ;
|
||||
}
|
||||
for ( int i = 1 ; i <= nNumAxes ; ++ i)
|
||||
bOk = bOk && pMch->LuaSetGlobVar( GetGlobVarAxisValue( i, EMC_VAR), vAx[i-1]) ;
|
||||
// eseguo
|
||||
bOk = bOk && pMch->LuaCallFunction( ON_SPECIAL_MOVEZUP, false) ;
|
||||
// recupero valori parametri obbligatori
|
||||
|
||||
Reference in New Issue
Block a user