diff --git a/Chiseling.cpp b/Chiseling.cpp index c3630b9..757dd99 100644 --- a/Chiseling.cpp +++ b/Chiseling.cpp @@ -1227,8 +1227,9 @@ Chiseling::ProcessPath( int nPathId, int nPvId, int nClId) // assegno il vettore estrazione al gruppo del percorso m_pGeomDB->SetInfo( nPxId, KEY_EXTR, vtTool) ; - // assegno il punto di inizio al gruppo del percorso + // assegno i punti di inizio e fine al gruppo del percorso m_pGeomDB->SetInfo( nPxId, KEY_START, vSqHole[i].ptIni) ; + m_pGeomDB->SetInfo( nPxId, KEY_END, vSqHole[i].ptIni) ; // assegno l'elevazione massima m_pGeomDB->SetInfo( nPxId, KEY_ELEV, dElev) ; // assegno al gruppo l'ingombro del percorso di scalpellatura diff --git a/Drilling.cpp b/Drilling.cpp index 0389aae..643f7a0 100644 --- a/Drilling.cpp +++ b/Drilling.cpp @@ -922,8 +922,9 @@ Drilling::GenerateHoleCl( int nInd, const SelData& nCircId, const string& sPName return false ; // assegno il vettore estrazione al gruppo del percorso m_pGeomDB->SetInfo( nPathId, KEY_EXTR, hole.vtDir) ; - // assegno il punto di inizio al gruppo del percorso + // assegno i punti di inizio e fine al gruppo del percorso m_pGeomDB->SetInfo( nPathId, KEY_START, hole.ptIni) ; + m_pGeomDB->SetInfo( nPathId, KEY_END, hole.ptIni) ; // assegno l'elevazione massima m_pGeomDB->SetInfo( nPathId, KEY_ELEV, hole.dLen) ; // foro normale diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index d32dccb..0a9e3ae 100644 Binary files a/EgtMachKernel.rc and b/EgtMachKernel.rc differ diff --git a/Generator.cpp b/Generator.cpp index a3cb4f7..4ea5467 100644 --- a/Generator.cpp +++ b/Generator.cpp @@ -364,9 +364,11 @@ Generator::ProcessMachining( int nOpId, int nOpInd) bool Generator::ProcessClPath( int nClPathId, int nClPathInd, int nOpId, int nOpInd) { - // Recupero punto di inizio del percorso + // Recupero punti di inizio e fine del percorso Point3d ptStart ; m_pGeomDB->GetInfo( nClPathId, KEY_START, ptStart) ; + Point3d ptEnd ; + m_pGeomDB->GetInfo( nClPathId, KEY_END, ptEnd) ; // Recupero versore estrusione associato al percorso (normale al piano di interpolazione) Vector3d vtExtr ; m_pGeomDB->GetInfo( nClPathId, KEY_EXTR, vtExtr) ; @@ -381,7 +383,7 @@ Generator::ProcessClPath( int nClPathId, int nClPathInd, int nOpId, int nOpInd) int nAS = 0 ; m_pGeomDB->GetInfo( nClPathId, KEY_AS_TOT, nAS) ; // Emetto inizio percorso di lavoro - if ( ! OnPathStart( nClPathId, nClPathInd, nAS, ptStart, vtExtr, ptMin, ptMax, dElev)) + if ( ! OnPathStart( nClPathId, nClPathInd, nAS, ptStart, ptEnd, vtExtr, ptMin, ptMax, dElev)) return false ; // Emissione eventuali dati ausiliari di inizio @@ -861,7 +863,7 @@ Generator::OnMachiningEnd( void) //---------------------------------------------------------------------------- bool -Generator::OnPathStart( int nClPathId, int nClPathInd, int nAS, const Point3d& ptStart, +Generator::OnPathStart( int nClPathId, int nClPathInd, int nAS, const Point3d& ptStart, const Point3d& ptEnd, const Vector3d& vtExtr, const Point3d& ptMin, const Point3d& ptMax, double dElev) { // assegno identificativo e indice percorso di lavorazione @@ -869,8 +871,9 @@ Generator::OnPathStart( int nClPathId, int nClPathInd, int nAS, const Point3d& p bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_PATHIND, nClPathInd) ; // assegno numero di dati ausiliari iniziali bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_AUXTOT, nAS) ; - // assegno punto iniziale e versore estrusione + // assegno punti iniziale e finale e versore estrusione del percorso originale bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_START, ptStart) ; + bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_END, ptEnd) ; bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_EXTR, vtExtr) ; // assegno punti estremi dell'ingombro del percorso di lavorazione bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_PMIN, ptMin) ; diff --git a/Generator.h b/Generator.h index fc1b6ef..fa97314 100644 --- a/Generator.h +++ b/Generator.h @@ -52,7 +52,7 @@ class Generator bool OnRawMoveData( int nRawId, int RawMoveInd, int nType, const Point3d& ptPos, int nFlag) ; bool OnMachiningStart( int nOpId, int nOpInd, double dSpeed) ; bool OnMachiningEnd( void) ; - bool OnPathStart( int nClPathId, int nClPathInd, int nAS, const Point3d& ptStart, + bool OnPathStart( int nClPathId, int nClPathInd, int nAS, const Point3d& ptStart, const Point3d& ptEnd, const Vector3d& vtExtr, const Point3d& ptMin, const Point3d& ptMax, double dElev) ; bool OnPathEnd( int nAE) ; bool OnPathStartAux( int nInd, const std::string& sAS) ; diff --git a/Milling.cpp b/Milling.cpp index 3890e19..500991f 100644 --- a/Milling.cpp +++ b/Milling.cpp @@ -1377,9 +1377,9 @@ Milling::ProcessPath( int nPathId, int nPvId, int nClId) if ( ! pCompo->MergeCurves( 10 * EPS_SMALL, 10 * EPS_ANG_SMALL, false)) return false ; - // recupero il punto di inizio (per poi salvarlo nelle info di CL path) - Point3d ptStart ; - pCompo->GetStartPoint( ptStart) ; + // recupero i punti di inizio e fine (per poi salvarlo nelle info di CL path) + Point3d ptStart ; pCompo->GetStartPoint( ptStart) ; + Point3d ptEnd ; pCompo->GetEndPoint( ptEnd) ; // recupero il box del grezzo in globale BBox3d b3Raw ; @@ -1519,8 +1519,9 @@ Milling::ProcessPath( int nPathId, int nPvId, int nClId) // assegno il vettore estrazione al gruppo del percorso m_pGeomDB->SetInfo( nPxId, KEY_EXTR, vtTool) ; - // assegno il punto di inizio al gruppo del percorso + // assegno i punti di inizio e fine al gruppo del percorso m_pGeomDB->SetInfo( nPxId, KEY_START, ptStart) ; + m_pGeomDB->SetInfo( nPxId, KEY_END, ptEnd) ; // assegno l'elevazione massima m_pGeomDB->SetInfo( nPxId, KEY_ELEV, dElev) ; diff --git a/OutputConst.h b/OutputConst.h index ddd2bb9..bb6a53b 100644 --- a/OutputConst.h +++ b/OutputConst.h @@ -72,6 +72,7 @@ static const std::string GVAR_MCHIND = ".MCHIND" ; // (int) indice lav static const std::string GVAR_PATHID = ".PATHID" ; // (int) identificativo percorso di lavorazione static const std::string GVAR_PATHIND = ".PATHIND" ; // (int) indice percorso di lavorazione static const std::string GVAR_START = ".START" ; // (Point3d) punto iniziale del percorso originale +static const std::string GVAR_END = ".END" ; // (Point3d) punto finale del percorso originale static const std::string GVAR_EXTR = ".EXTR" ; // (Vector3d)versore estrusione static const std::string GVAR_PMIN = ".PMIN" ; // (Point3d) punto minimo di ingombro del percorso di lavorazione static const std::string GVAR_PMAX = ".PMAX" ; // (Point3d) punto massimo di ingombro del percorso di lavorazione diff --git a/Pocketing.cpp b/Pocketing.cpp index 7667c20..6158cc1 100644 --- a/Pocketing.cpp +++ b/Pocketing.cpp @@ -1108,8 +1108,7 @@ Pocketing::ProcessPath( int nPathId, int nPvId, int nClId) return false ; // recupero il punto di inizio (per poi salvarlo nelle info di CL path) - Point3d ptStart ; - pCompo->GetStartPoint( ptStart) ; + Point3d ptStart ; pCompo->GetStartPoint( ptStart) ; // recupero il box del grezzo in globale BBox3d b3Raw ; @@ -1241,8 +1240,9 @@ Pocketing::ProcessPath( int nPathId, int nPvId, int nClId) // assegno il vettore estrazione al gruppo del percorso m_pGeomDB->SetInfo( nPxId, KEY_EXTR, vtTool) ; - // assegno il punto di inizio al gruppo del percorso + // assegno i punti di inizio e fine al gruppo del percorso m_pGeomDB->SetInfo( nPxId, KEY_START, ptStart) ; + m_pGeomDB->SetInfo( nPxId, KEY_END, ptStart) ; // assegno l'elevazione massima m_pGeomDB->SetInfo( nPxId, KEY_ELEV, dElev) ; diff --git a/Sawing.cpp b/Sawing.cpp index 1ec7ab2..2b601aa 100644 --- a/Sawing.cpp +++ b/Sawing.cpp @@ -1561,8 +1561,9 @@ Sawing::GenerateLineCl( const ICurveLine* pLine, const Vector3d& vtTool, const V m_pGeomDB->SetMaterial( nPxId, BLUE) ; // assegno il vettore estrazione al gruppo del percorso m_pGeomDB->SetInfo( nPxId, KEY_EXTR, Vector3d( 0, 0, 1)) ; - // assegno il punto di inizio al gruppo del percorso + // assegno i punti di inizio e fine al gruppo del percorso m_pGeomDB->SetInfo( nPxId, KEY_START, pLine->GetStart()) ; + m_pGeomDB->SetInfo( nPxId, KEY_END, pLine->GetEnd()) ; // assegno l'elevazione massima m_pGeomDB->SetInfo( nPxId, KEY_ELEV, dElev) ; // assegno delta per taglio esteso al bordo grezzo @@ -2174,9 +2175,11 @@ Sawing::GenerateExtCurveCl( const ICurveComposite* pCrv, // assegno il vettore estrusione al gruppo del percorso m_pGeomDB->SetInfo( nPxId, KEY_EXTR, Z_AX) ; - // assegno il punto di inizio al gruppo del percorso + // assegno i punti di inizio e fine al gruppo del percorso Point3d ptStart ; pCrv->GetStartPoint( ptStart) ; m_pGeomDB->SetInfo( nPxId, KEY_START, ptStart) ; + Point3d ptEnd ; pCrv->GetEndPoint( ptEnd) ; + m_pGeomDB->SetInfo( nPxId, KEY_END, ptEnd) ; // assegno l'elevazione massima m_pGeomDB->SetInfo( nPxId, KEY_ELEV, dElev) ; // Imposto dati comuni @@ -2840,9 +2843,11 @@ Sawing::GenerateIntArcCl( const ICurveArc* pArc, m_pGeomDB->SetMaterial( nPxId, BLUE) ; // assegno il vettore estrazione al gruppo del percorso m_pGeomDB->SetInfo( nPxId, KEY_EXTR, Z_AX) ; - // assegno il punto di inizio al gruppo del percorso + // assegno i punti di inizio e fine al gruppo del percorso Point3d ptStart ; pArc->GetStartPoint( ptStart) ; m_pGeomDB->SetInfo( nPxId, KEY_START, ptStart) ; + Point3d ptEnd ; pArc->GetEndPoint( ptEnd) ; + m_pGeomDB->SetInfo( nPxId, KEY_END, ptEnd) ; // assegno l'elevazione massima m_pGeomDB->SetInfo( nPxId, KEY_ELEV, dElev) ; // Imposto dati comuni