EgtMachKernel :
- prime modifiche per gestione TipTrace in simulazione.
This commit is contained in:
@@ -88,7 +88,9 @@ SimulatorSP::SimulatorSP( void)
|
||||
m_nAuxEInd = 0 ;
|
||||
m_nExit = 0 ;
|
||||
m_dTDiam = 0 ;
|
||||
m_dTLen = 0 ;
|
||||
m_bCutOnTip = false ;
|
||||
m_nCurrTrace = GDB_ID_NULL ;
|
||||
m_bEnableVm = false ;
|
||||
m_dSafeDist = SAFEDIST_STD ;
|
||||
m_nAxesMask = 0 ;
|
||||
@@ -207,7 +209,9 @@ SimulatorSP::Start( bool bFirst)
|
||||
m_sHead.clear() ;
|
||||
m_nExit = 0 ;
|
||||
m_dTDiam = 0 ;
|
||||
m_dTLen = 0 ;
|
||||
m_bCutOnTip = false ;
|
||||
m_nCurrTrace = GDB_ID_NULL ;
|
||||
ResetInterpolation() ;
|
||||
ResetAxes() ;
|
||||
ResetAuxAxes() ;
|
||||
@@ -573,6 +577,7 @@ SimulatorSP::UpdateTool( bool bFirst, int& nErr)
|
||||
m_sHead = sHead ;
|
||||
m_nExit = nExit ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_DIAM, m_dTDiam) ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_LEN, m_dTLen) ;
|
||||
double dTipFeed = 0 ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_TIPFEED, dTipFeed) ;
|
||||
m_bCutOnTip = ( dTipFeed > EPS_MACH_LEN_PAR) ;
|
||||
@@ -616,6 +621,7 @@ SimulatorSP::UpdateTool( bool bFirst, int& nErr)
|
||||
m_sHead = sHead ;
|
||||
m_nExit = nExit ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_DIAM, m_dTDiam) ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_LEN, m_dTLen) ;
|
||||
double dTipFeed = 0 ;
|
||||
m_pMchMgr->TdbGetCurrToolParam( TPA_TIPFEED, dTipFeed) ;
|
||||
m_bCutOnTip = ( dTipFeed > EPS_MACH_LEN_PAR) ;
|
||||
@@ -888,6 +894,8 @@ SimulatorSP::FindAndManagePathStart( int& nStatus)
|
||||
m_dCoeff = 0 ;
|
||||
}
|
||||
}
|
||||
// reset eventuale curva di TipTrace
|
||||
m_nCurrTrace = GDB_ID_NULL ;
|
||||
// se trovato nuovo CLpath con entità, gestisco inizio percorso di lavoro
|
||||
if ( m_nEntId != GDB_ID_NULL) {
|
||||
++ m_nCLPathInd ;
|
||||
@@ -955,6 +963,8 @@ SimulatorSP::ManagePathEnd( int& nStatus)
|
||||
// gestione stato
|
||||
if ( ! bOk)
|
||||
nStatus = CalcStatusOnError( 0) ;
|
||||
// reset eventuale curva di TipTrace
|
||||
m_nCurrTrace = GDB_ID_NULL ;
|
||||
return bOk ;
|
||||
}
|
||||
|
||||
@@ -1195,6 +1205,26 @@ SimulatorSP::ManageSingleMove( int& nStatus, double& dMove)
|
||||
// eseguo eventuale collision check
|
||||
bCollCheck = bCollCheck && ExecCollisionCheck( nCdInd, nObjInd, nMoveType) ;
|
||||
}
|
||||
// eventuale salvataggio punto tip utensile
|
||||
if ( nMoveType == 1) {
|
||||
int nTipTraceId ;
|
||||
if ( m_pMachine->LuaGetGlobVar( GLOB_VAR + ".TIPTRACE", nTipTraceId)) {
|
||||
int nHeadId = m_pMachine->GetHeadId( m_sHead) ;
|
||||
int nExitId = m_pMachine->GetExitId( m_sHead, m_nExit) ;
|
||||
Frame3d frExit ;
|
||||
if ( m_pGeomDB->GetGroupGlobFrame( nExitId, frExit)) {
|
||||
Point3d ptTip = frExit.Orig() - m_dTLen * frExit.VersZ() ;
|
||||
if ( m_nCurrTrace == GDB_ID_NULL) {
|
||||
PolyLine PL ;
|
||||
PL.AddUPoint( -1, ptTip + 10 * EPS_SMALL * frExit.VersZ()) ;
|
||||
PL.AddUPoint( 0, ptTip) ;
|
||||
m_nCurrTrace = ExeCreateCurveCompoFromPoints( nTipTraceId, PL, GDB_ID_ROOT) ;
|
||||
}
|
||||
else
|
||||
ExeAddCurveCompoLine( m_nCurrTrace, ptTip, true, GDB_ID_ROOT) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Eseguo movimento su arco
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user