EgtMachKernel 1.6n1 :

- corretto riconoscimento tipo uscita estesa
- corretto recupero angoli finali lavorazione precedente causa posizione home.
This commit is contained in:
Dario Sassi
2016-02-08 10:50:10 +00:00
parent 5f1f9ae06c
commit 6cfdb4d22b
3 changed files with 19 additions and 5 deletions
BIN
View File
Binary file not shown.
+4
View File
@@ -550,6 +550,10 @@ Machining::CalculateAxesValues( void)
if ( ! m_pMchMgr->SetCalcTool( GetToolData().m_sName, GetToolData().m_sHead, GetToolData().m_nExit))
return false ;
// rimuovo posizionamento home da lavorazione precedente (non può più essere l'ultima)
if ( pPrevMch != nullptr)
pPrevMch->RemoveHome() ;
// recupero il numero di assi lineari e rotanti attivi
int nLinAxes = m_pMchMgr->GetCurrLinAxes() ;
int nRotAxes = m_pMchMgr->GetCurrRotAxes() ;
+15 -5
View File
@@ -1148,16 +1148,26 @@ Sawing::GenerateEntityPv( const ICurveLine* pLine, const Vector3d& vtTool, const
m_pGeomDB->SetName( nId3, MCH_PV_POST_CUT) ;
m_pGeomDB->SetMaterial( nId3, BLUE) ;
// regione di taglio ridotto per nesting (sono escluse le parti iniziale e finale)
int nRrId = ExeCreateSurfFrRectangle3P( nPxId, ptIni, ptCross, ptEnd, RTY_LOC) ;
m_pGeomDB->SetName( nRrId, MCH_PV_RRCUT) ;
m_pGeomDB->SetMaterial( nRrId, INVISIBLE) ;
// regione di taglio completo per nesting
double dExtraL = m_pMchMgr->GetCurrMachiningsMgr()->GetExtraLOnCutRegion() ;
int nRId = ExeCreateSurfFrRectangle3P( nPxId, ptIni - vtDir * ( dDeltaT + dExtraL),
ptCross + vtDir * ( dDeltaT + dExtraL), ptEnd, RTY_LOC) ;
m_pGeomDB->SetName( nRId, MCH_PV_RCUT) ;
m_pGeomDB->SetMaterial( nRId, INVISIBLE) ;
// regione di taglio ridotto per nesting (sono escluse le parti iniziale e finale)
int nRrId = ExeCreateSurfFrRectangle3P( nPxId, ptIni, ptCross, ptEnd, RTY_LOC) ;
m_pGeomDB->SetName( nRrId, MCH_PV_RRCUT) ;
m_pGeomDB->SetMaterial( nRrId, INVISIBLE) ;
// regione di ingresso al taglio (parte iniziale)
int nRsId = ExeCreateSurfFrRectangle3P( nPxId, ptIni - vtDir * ( dDeltaT + dExtraL),
ptIni + vtToolH, ptIni, RTY_LOC) ;
m_pGeomDB->SetName( nRsId, MCH_PV_RLICUT) ;
m_pGeomDB->SetMaterial( nRsId, INVISIBLE) ;
// regione di uscita dal taglio (parte finale)
int nReId = ExeCreateSurfFrRectangle3P( nPxId, ptEnd, ptCross + vtDir * ( dDeltaT + dExtraL),
ptEnd + vtDir * ( dDeltaT + dExtraL) , RTY_LOC) ;
m_pGeomDB->SetName( nReId, MCH_PV_RLOCUT) ;
m_pGeomDB->SetMaterial( nReId, INVISIBLE) ;
// salvo in info del gruppo la larghezza XY del taglio e la distanza XY tra centro e bordo taglio
m_pGeomDB->SetInfo( nPxId, MCH_PV_KEY_WT, vtToolH.LenXY()) ;
@@ -1484,7 +1494,7 @@ Sawing::AdjustForEdges( ICurveLine* pLine, double dElev, const Vector3d& vtThick
else if ( bIsLast) {
if ( m_Params.m_nLeadOutType == SAW_LO_STRICT)
dDeltaF = - dDeltaT ;
else if ( m_Params.m_nLeadInType == SAW_LO_EXT) {
else if ( m_Params.m_nLeadOutType == SAW_LO_EXT) {
// estendo al bordo del grezzo
// calcolo punto di fine e direzione (sono in globale)
Point3d ptP ;