EgtGeomKernel 1.6l10 :
- migliorie a Zmap.
This commit is contained in:
+161
-8
@@ -2571,30 +2571,55 @@ GdbExecutor::SurfTriMeshDoSewing( const STRVECTOR& vsParams)
|
||||
bool
|
||||
GdbExecutor::ExecuteVolZmap(const string& sCmd2, const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : Id, IdParent, ptO, dPrec, dLengthX, dLengthY, dLengthZ
|
||||
// se creazione
|
||||
if ( sCmd2 == "") {
|
||||
return VolZmapCreate( vsParams) ;
|
||||
}
|
||||
// se sottrazione intervalli
|
||||
else if ( sCmd2 == "SUB") {
|
||||
return VolZmapIntervalsSubtraction( vsParams) ;
|
||||
}
|
||||
// se addizione intervalli
|
||||
else if ( sCmd2 == "ADD") {
|
||||
return VolZmapIntervalsAddiction( vsParams) ;
|
||||
}
|
||||
else if ( sCmd2 == "MIL") {
|
||||
return VolZmapMilling( vsParams) ;
|
||||
}
|
||||
else if ( sCmd2 == "SET") {
|
||||
return VolZmapSetTool( vsParams) ;
|
||||
}
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbExecutor::VolZmapCreate( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : Id, IdParent, ptO, dPrec, dLengthX, dLengthY, dLengthZ
|
||||
if ( vsParams.size() != 7)
|
||||
return false ;
|
||||
// recupero il riferimento in cui è immerso
|
||||
// recupero il riferimento in cui è immerso
|
||||
Frame3d frRef ;
|
||||
if ( ! m_pGDB->GetGroupGlobFrame( GetIdParam( vsParams[1]), frRef))
|
||||
return false ;
|
||||
// recupero punto iniziale
|
||||
// recupero punto iniziale
|
||||
Point3d ptO ;
|
||||
if ( ! GetPointParam( vsParams[2], frRef, ptO))
|
||||
return false ;
|
||||
// recupero precisione
|
||||
// recupero precisione
|
||||
double dPrec ;
|
||||
if ( ! FromString( vsParams[3], dPrec))
|
||||
return false ;
|
||||
// recupero LunghezzaX
|
||||
// recupero LunghezzaX
|
||||
double dLengthX ;
|
||||
if ( ! FromString( vsParams[4], dLengthX))
|
||||
return false ;
|
||||
// recupero LunghezzaY
|
||||
// recupero LunghezzaY
|
||||
double dLengthY ;
|
||||
if ( ! FromString( vsParams[5], dLengthY))
|
||||
return false ;
|
||||
// recupero LunghezzaZ
|
||||
// recupero LunghezzaZ
|
||||
double dLengthZ ;
|
||||
if ( ! FromString( vsParams[6], dLengthZ))
|
||||
return false ;
|
||||
@@ -2603,7 +2628,135 @@ GdbExecutor::ExecuteVolZmap(const string& sCmd2, const STRVECTOR& vsParams)
|
||||
pZprova->CreateMap( ptO, dPrec, dLengthX, dLengthY, dLengthZ);
|
||||
|
||||
// inserisco nel DB
|
||||
return AddGeoObj(vsParams[0], vsParams[1], Release( pZprova)) ;
|
||||
return AddGeoObj(vsParams[0], vsParams[1], Release( pZprova)) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbExecutor::VolZmapIntervalsSubtraction( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : Id, IdParent, ptP, dMin, dMax
|
||||
if ( vsParams.size() != 5)
|
||||
return false ;
|
||||
// recupero il riferimento in cui è immerso
|
||||
Frame3d frRef ;
|
||||
if ( ! m_pGDB->GetGroupGlobFrame( GetIdParam( vsParams[1]), frRef))
|
||||
return false ;
|
||||
// recupero punto
|
||||
Point3d ptP ;
|
||||
if ( ! GetPointParam( vsParams[2], frRef, ptP))
|
||||
return false ;
|
||||
// recupero minimo
|
||||
double dMin ;
|
||||
if ( ! FromString( vsParams[3], dMin))
|
||||
return false ;
|
||||
// recupero massimo
|
||||
double dMax ;
|
||||
if ( ! FromString( vsParams[4], dMax))
|
||||
return false ;
|
||||
// recupero lo Zmap
|
||||
int nIdZmap = GetIdParam( vsParams[0]) ;
|
||||
VolZmap* pZmap = GetBasicVolZmap( m_pGDB->GetGeoObj( nIdZmap)) ;
|
||||
if ( pZmap == nullptr)
|
||||
return false ;
|
||||
// eseguo la sottrazione
|
||||
return pZmap->SubtractIntervals( ptP, dMin, dMax) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbExecutor::VolZmapIntervalsAddiction( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : Id, IdParent, ptP, dMin, dMax
|
||||
if ( vsParams.size() != 5)
|
||||
return false ;
|
||||
// recupero il riferimento in cui è immerso
|
||||
Frame3d frRef ;
|
||||
if ( ! m_pGDB->GetGroupGlobFrame( GetIdParam( vsParams[1]), frRef))
|
||||
return false ;
|
||||
// recupero punto
|
||||
Point3d ptP ;
|
||||
if ( ! GetPointParam( vsParams[2], frRef, ptP))
|
||||
return false ;
|
||||
// recupero minimo
|
||||
double dMin ;
|
||||
if ( ! FromString( vsParams[3], dMin))
|
||||
return false ;
|
||||
// recupero massimo
|
||||
double dMax ;
|
||||
if ( ! FromString( vsParams[4], dMax))
|
||||
return false ;
|
||||
// recupero lo Zmap
|
||||
int nIdZmap = GetIdParam( vsParams[0]) ;
|
||||
VolZmap* pZmap = GetBasicVolZmap( m_pGDB->GetGeoObj( nIdZmap)) ;
|
||||
if ( pZmap == nullptr)
|
||||
return false ;
|
||||
// eseguo l'addizione
|
||||
return pZmap->AddIntervals( ptP, dMin, dMax) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbExecutor::VolZmapMilling( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : Id, IdParent, ptPs, ptPe, vtVs, vtVe
|
||||
if ( vsParams.size() != 6)
|
||||
return false ;
|
||||
// recupero il riferimento in cui è immerso
|
||||
Frame3d frRef ;
|
||||
if ( ! m_pGDB->GetGroupGlobFrame( GetIdParam( vsParams[1]), frRef))
|
||||
return false ;
|
||||
// recupero punto iniziale
|
||||
Point3d ptPs ;
|
||||
if ( ! GetPointParam( vsParams[2], frRef, ptPs))
|
||||
return false ;
|
||||
// recupero punto finale
|
||||
Point3d ptPe ;
|
||||
if ( ! GetPointParam( vsParams[3], frRef, ptPe))
|
||||
return false ;
|
||||
// recupero il vettore direzione iniziale
|
||||
Vector3d vtDs ;
|
||||
if ( ! GetVectorParam( vsParams[4], frRef, vtDs))
|
||||
return false ;
|
||||
// recupero il vettore direzione iniziale
|
||||
Vector3d vtDe ;
|
||||
if ( ! GetVectorParam( vsParams[5], frRef, vtDe))
|
||||
return false ;
|
||||
// recupero lo Zmap
|
||||
int nIdZmap = GetIdParam( vsParams[0]) ;
|
||||
VolZmap* pZmap = GetBasicVolZmap( m_pGDB->GetGeoObj( nIdZmap)) ;
|
||||
if ( pZmap == nullptr)
|
||||
return false ;
|
||||
// eseguo la lavorazione
|
||||
return pZmap->MillingStep( ptPs, ptPe, vtDs, vtDe) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbExecutor::VolZmapSetTool( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : ZmapId, CrvId, nToolType, sToolName
|
||||
if ( vsParams.size() != 4)
|
||||
return false ;
|
||||
// recupero lo Zmap
|
||||
int nZmapId = GetIdParam( vsParams[0]) ;
|
||||
VolZmap* pZmap = GetBasicVolZmap( m_pGDB->GetGeoObj( nZmapId)) ;
|
||||
if ( pZmap == nullptr)
|
||||
return false ;
|
||||
// recupero il profilo utensile
|
||||
int nCrvId = GetIdParam( vsParams[1]) ;
|
||||
CurveComposite* pToolOutline = GetBasicCurveComposite( m_pGDB->GetGeoObj( nCrvId)) ;
|
||||
if ( pToolOutline == nullptr)
|
||||
return false ;
|
||||
// recupero tipo utensile
|
||||
int nToolType ;
|
||||
if ( ! FromString( vsParams[2], nToolType))
|
||||
return false ;
|
||||
// recupero la stringa nome dell'utensile
|
||||
string sToolName ;
|
||||
sToolName = vsParams[3] ;
|
||||
// assegno utensile
|
||||
return pZmap->SetTool( sToolName, nToolType, pToolOutline) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user