EgtMachKernel :

- a fresatura aggiunta gestione lista di curve per FaceUse tramite "EdgesFaceUse" con valori a vettore di interi in UserNotes
- in tutte le lavorazioni sistemato ricalcolo con stato con bit MCH_ST_GEO_MODIF impostato
- in tutte le lavorazioni SetGeometry imposta bit MCH_ST_GEO_MODIF solo se gli Id e i SubId delle geometrie sono effettivamente variati.
This commit is contained in:
Dario Sassi
2025-04-07 11:54:28 +02:00
parent c944dd9893
commit ef28db40e1
16 changed files with 210 additions and 80 deletions
+13 -1
View File
@@ -990,7 +990,7 @@ GetDirInFacePerpSide( int nFaceUse, const Vector3d& vtFaceUse, const Vector3d& v
//----------------------------------------------------------------------------
bool
Operation::AdjustCurveFromSurf( ICurveComposite* pCrvCompo, int nToolDir, int nFaceUse, const Vector3d& vtFaceUse,
double dToolThick, int nGrade)
const INTVECTOR& vnEdgesFaceUse, double dToolThick, int nGrade)
{
// copia della curva originale
PtrOwner<ICurveComposite> pCopy( pCrvCompo->Clone()) ;
@@ -1023,6 +1023,18 @@ Operation::AdjustCurveFromSurf( ICurveComposite* pCrvCompo, int nToolDir, int nF
if ( dUmax != 0)
pCrvCompo->ChangeStartPoint( dUmax) ;
}
// se altrimenti richiesta una parte del contorno
else if ( nFaceUse == FACE_EDGES) {
// verifico che il vettore degli indici dei lati non sia vuoto
if ( vnEdgesFaceUse.empty())
return false ;
// parametri di trim
double dUStart = vnEdgesFaceUse.front() ;
double dUEnd = vnEdgesFaceUse.back() + 1 ;
// taglio le parti che non interessano
if ( ! pCrvCompo->TrimStartEndAtParam( dUStart, dUEnd))
return false ;
}
// altrimenti
else {
// determino la direzione di riferimento