EgtGeomKernel 1.6x2 :
- modifiche a Zmap per tridexel.
This commit is contained in:
+45
-24
@@ -2610,8 +2610,8 @@ GdbExecutor::ExecuteVolZmap(const string& sCmd2, const STRVECTOR& vsParams)
|
||||
bool
|
||||
GdbExecutor::VolZmapCreate( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : Id, IdParent, ptO, dPrec, dLengthX, dLengthY, dLengthZ
|
||||
if ( vsParams.size() != 7)
|
||||
// parametri : Id, IdParent, ptO, dLengthX, dLengthY, dLengthZ, dPrec [, bTriDexel]
|
||||
if ( vsParams.size() < 7)
|
||||
return false ;
|
||||
// recupero il riferimento in cui è immerso
|
||||
Frame3d frRef ;
|
||||
@@ -2621,27 +2621,32 @@ GdbExecutor::VolZmapCreate( const STRVECTOR& vsParams)
|
||||
Point3d ptO ;
|
||||
if ( ! GetPointParam( vsParams[2], frRef, ptO))
|
||||
return false ;
|
||||
// recupero precisione
|
||||
double dPrec ;
|
||||
if ( ! FromString( vsParams[3], dPrec))
|
||||
return false ;
|
||||
// recupero LunghezzaX
|
||||
double dLengthX ;
|
||||
if ( ! FromString( vsParams[4], dLengthX))
|
||||
if ( ! FromString( vsParams[3], dLengthX))
|
||||
return false ;
|
||||
// recupero LunghezzaY
|
||||
double dLengthY ;
|
||||
if ( ! FromString( vsParams[5], dLengthY))
|
||||
if ( ! FromString( vsParams[4], dLengthY))
|
||||
return false ;
|
||||
// recupero LunghezzaZ
|
||||
double dLengthZ ;
|
||||
if ( ! FromString( vsParams[6], dLengthZ))
|
||||
if ( ! FromString( vsParams[5], dLengthZ))
|
||||
return false ;
|
||||
// recupero precisione
|
||||
double dPrec ;
|
||||
if ( ! FromString( vsParams[6], dPrec))
|
||||
return false ;
|
||||
// recupero flag tipo Zmap
|
||||
bool bTriDexel = false ;
|
||||
if ( vsParams.size() >= 8 && vsParams[7] != "0")
|
||||
bTriDexel = true ;
|
||||
|
||||
// creo Zmap
|
||||
PtrOwner<VolZmap> pZprova( new VolZmap) ;
|
||||
pZprova->Create( ptO, dLengthX, dLengthY, dLengthZ, dPrec);
|
||||
pZprova->Create( ptO, dLengthX, dLengthY, dLengthZ, dPrec, bTriDexel) ;
|
||||
|
||||
// inserisco nel DB
|
||||
// inserisco nel DB
|
||||
return AddGeoObj(vsParams[0], vsParams[1], Release( pZprova)) ;
|
||||
}
|
||||
|
||||
@@ -2649,8 +2654,8 @@ GdbExecutor::VolZmapCreate( const STRVECTOR& vsParams)
|
||||
bool
|
||||
GdbExecutor::VolZmapCreateFromFlatRegion( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : Id, IdParent, idCurv, dPrec, dLengthZ
|
||||
if ( vsParams.size() != 5)
|
||||
// parametri : Id, IdParent, idCurv, dPrec, dLengthZ [, bTriDexel]
|
||||
if ( vsParams.size() < 5)
|
||||
return false ;
|
||||
// recupero il riferimento in cui è immerso
|
||||
Frame3d frRef ;
|
||||
@@ -2658,21 +2663,26 @@ GdbExecutor::VolZmapCreateFromFlatRegion( const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
// recupero id flatregion
|
||||
int nIdFlat = GetIdParam( vsParams[2]) ;
|
||||
// recupero precisione
|
||||
double dPrec ;
|
||||
if ( ! FromString( vsParams[4], dPrec))
|
||||
return false ;
|
||||
// recupero dimensioneZ
|
||||
double dLengthZ ;
|
||||
if ( ! FromString( vsParams[3], dLengthZ))
|
||||
return false ;
|
||||
// recupero precisione
|
||||
double dPrec ;
|
||||
if ( ! FromString( vsParams[4], dPrec))
|
||||
return false ;
|
||||
// recupero puntatore a FlatRegion
|
||||
ISurfFlatRegion* pRegion = GetSurfFlatRegion( m_pGDB->GetGeoObj( nIdFlat)) ;
|
||||
if ( pRegion == nullptr)
|
||||
return false ;
|
||||
// Flag tipo di mappa
|
||||
bool bTriDexel = false ;
|
||||
if ( vsParams.size() >= 6 && vsParams[5] != "0")
|
||||
bTriDexel = true ;
|
||||
|
||||
// creo Zmap
|
||||
PtrOwner<VolZmap> pZprova( new VolZmap) ;
|
||||
pZprova->CreateFromFlatRegion( *pRegion, dLengthZ, dPrec);
|
||||
pZprova->CreateFromFlatRegion( *pRegion, dLengthZ, dPrec, bTriDexel) ;
|
||||
|
||||
// inserisco nel DB
|
||||
return AddGeoObj(vsParams[0], vsParams[1], Release( pZprova)) ;
|
||||
@@ -2682,8 +2692,8 @@ GdbExecutor::VolZmapCreateFromFlatRegion( const STRVECTOR& vsParams)
|
||||
bool
|
||||
GdbExecutor::VolZmapCreateFromTriMesh( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : Id, IdParent, idSurf, dPrec
|
||||
if ( vsParams.size() != 4)
|
||||
// parametri : Id, IdParent, idSurf, dPrec, bFlag
|
||||
if ( vsParams.size() != 5)
|
||||
return false ;
|
||||
// recupero il riferimento in cui è immerso
|
||||
Frame3d frRef ;
|
||||
@@ -2695,13 +2705,17 @@ GdbExecutor::VolZmapCreateFromTriMesh( const STRVECTOR& vsParams)
|
||||
double dPrec ;
|
||||
if ( ! FromString( vsParams[3], dPrec))
|
||||
return false ;
|
||||
// Flag tipo di mappa
|
||||
bool bType= false ;
|
||||
if ( vsParams.size() >= 5 && vsParams[4] != "0")
|
||||
bType = true ;
|
||||
// recupero puntatore a Trimesh
|
||||
SurfTriMesh* pSurf = GetBasicSurfTriMesh( m_pGDB->GetGeoObj( nIdSurf)) ;
|
||||
if ( pSurf == nullptr)
|
||||
return false ;
|
||||
// creo Zmap
|
||||
PtrOwner<VolZmap> pZprova( new VolZmap) ;
|
||||
pZprova->CreateFromTriMesh( * pSurf, dPrec);
|
||||
pZprova->CreateFromTriMesh( * pSurf, dPrec, bType) ;
|
||||
|
||||
// inserisco nel DB
|
||||
return AddGeoObj(vsParams[0], vsParams[1], Release( pZprova)) ;
|
||||
@@ -2711,8 +2725,8 @@ GdbExecutor::VolZmapCreateFromTriMesh( const STRVECTOR& vsParams)
|
||||
bool
|
||||
GdbExecutor::VolZmapMilling( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : Id, IdParent, ptPs, ptPe, vtVs, vtVe, dLinTol, dAngTolDeg (gli ultimi due servono per lavorazione con utensile generico)
|
||||
if ( vsParams.size() != 8)
|
||||
// parametri : Id, IdParent, ptPs, ptPe, vtVs, vtVe, dLinTol, dAngTolDeg (dLinTol e dAngTol sono per lavo con gen tool), bType
|
||||
if ( vsParams.size() != 9)
|
||||
return false ;
|
||||
// recupero il riferimento in cui è immerso
|
||||
Frame3d frRef ;
|
||||
@@ -2741,6 +2755,10 @@ GdbExecutor::VolZmapMilling( const STRVECTOR& vsParams)
|
||||
double dAngTolDeg ;
|
||||
if ( ! FromString( vsParams[7], dAngTolDeg))
|
||||
return false ;
|
||||
bool bType = false ;
|
||||
if ( vsParams.size() >= 9 && vsParams[2] != "0")
|
||||
bType = true ;
|
||||
|
||||
// recupero lo Zmap
|
||||
int nIdZmap = GetIdParam( vsParams[0]) ;
|
||||
VolZmap* pZmap = GetBasicVolZmap( m_pGDB->GetGeoObj( nIdZmap)) ;
|
||||
@@ -2748,7 +2766,10 @@ GdbExecutor::VolZmapMilling( const STRVECTOR& vsParams)
|
||||
return false ;
|
||||
// eseguo la lavorazione
|
||||
pZmap->SetTolerances( dLinTol, dAngTolDeg) ;
|
||||
return pZmap->MillingStep( ptPs, vtDs, ptPe, vtDe) ;
|
||||
//if ( bType)
|
||||
return pZmap->MillingStep( ptPs, vtDs, ptPe, vtDe) ;
|
||||
//else
|
||||
// return pZmap->MillingStep( ptPs, vtDs, ptPe, vtDe) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user