EgtMachKernel :
- in Milling modificata GetPointOutOfRaw per teste da sotto - in TestCollisionAvoid di Operation adattato richiamo di CDeCylClosedSurfTm per nuovo ordine parametri - in Simulator corretta gestione lame con gambo per Virtual Milling - in Simulator dopo OnSimulMoveStart con movimento in rapido aggiorno quote degli assi disabilitati dal mask.
This commit is contained in:
+4
-3
@@ -4909,11 +4909,12 @@ Milling::GetPointOutOfRaw( const Point3d& ptP, const Vector3d& vtTool, double dE
|
||||
}
|
||||
// per lame
|
||||
else {
|
||||
// determino se l'inizio dell'attacco è fuori dal grezzo (considero movimento lama in Z)
|
||||
// determino se l'inizio dell'attacco è fuori dal grezzo (considero movimento lama in +/- Z)
|
||||
double dTemp ;
|
||||
if ( ! GetElevation( m_nPhase, ptP, vtTool, 0.5 * m_TParams.m_dDiam, Z_AX, dTemp) || dTemp > 10 * EPS_SMALL)
|
||||
Vector3d vtMove = ( m_bAboveHead ? Z_AX : -Z_AX) ;
|
||||
if ( ! GetElevation( m_nPhase, ptP, vtTool, 0.5 * m_TParams.m_dDiam, vtMove, dTemp) || dTemp > 10 * EPS_SMALL)
|
||||
return false ;
|
||||
if ( ! GetElevation( m_nPhase, ptP + vtTool * m_TParams.m_dThick, vtTool, 0.5 * m_TParams.m_dDiam, Z_AX, dTemp) || dTemp > 10 * EPS_SMALL)
|
||||
if ( ! GetElevation( m_nPhase, ptP + vtTool * m_TParams.m_dThick, vtTool, 0.5 * m_TParams.m_dDiam, vtMove, dTemp) || dTemp > 10 * EPS_SMALL)
|
||||
return false ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
+1
-1
@@ -2570,7 +2570,7 @@ Operation::TestCollisionAvoid( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEn
|
||||
// traslo il riferimento per avere il cilindro centrato sull'asse Y in positivo
|
||||
frHsol.Translate( frHsol.VersZ() * ptMin.z) ;
|
||||
// verifica di collisione tra cilindro e solido
|
||||
if ( pStm == nullptr || CDeCylClosedSurfTm( frHsol, vtDiag.z, max( vtDiag.x, vtDiag.y) / 2, dSafeDist, *pStm)) {
|
||||
if ( pStm == nullptr || CDeCylClosedSurfTm( frHsol, max( vtDiag.x, vtDiag.y) / 2, vtDiag.z, dSafeDist, *pStm)) {
|
||||
bCollide = true ;
|
||||
break ;
|
||||
}
|
||||
|
||||
+8
-1
@@ -462,7 +462,7 @@ Simulator::UpdateTool( bool bFirst)
|
||||
else if ( nToolType == TT_SAW_STD || nToolType == TT_SAW_FLAT) {
|
||||
double dLen ; m_pMchMgr->TdbGetCurrToolParam( TPA_LEN, dLen) ;
|
||||
double dThick ; m_pMchMgr->TdbGetCurrToolParam( TPA_THICK, dThick) ;
|
||||
m_dVmTdOffs = - dLen + dThick ;
|
||||
m_dVmTdOffs = ( ( dLen <= dThick) ? -dLen + dThick : 0) ;
|
||||
m_dVmAdOffs = 0 ;
|
||||
}
|
||||
else {
|
||||
@@ -924,6 +924,13 @@ Simulator::ManageSingleMove( int& nStatus, double& dMove)
|
||||
nStatus = ( Stopped() ? MCH_SIM_STOP : ( nErr == 1 ? MCH_SIM_OUTSTROKE : MCH_SIM_ERR)) ;
|
||||
return false ;
|
||||
}
|
||||
// Se movimento in rapido aggiorno quote degli assi disabilitati dal mask
|
||||
if ( nMoveType == 0) {
|
||||
for ( size_t i = 0 ; i < m_AxesName.size() ; ++ i) {
|
||||
if ( ( pCamData->GetAxesMask() & 1 << i) == 0)
|
||||
AxesEnd[i] = m_AxesVal[i] ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dati per eventuale verifica di collisione
|
||||
|
||||
Reference in New Issue
Block a user