EgtGeomKernel 1.6x2 :

- modifiche a Zmap per tridexel.
This commit is contained in:
Dario Sassi
2016-12-19 14:35:10 +00:00
parent 3c555f6beb
commit 7ee899b0a2
15 changed files with 9168 additions and 9647 deletions
+45 -24
View File
@@ -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) ;
}
//----------------------------------------------------------------------------