EgtGeomKernel 1.6v5 :
- inseriti aggiornamenti per Zmap.
This commit is contained in:
Binary file not shown.
+92
-2
@@ -2592,6 +2592,12 @@ GdbExecutor::ExecuteVolZmap(const string& sCmd2, const STRVECTOR& vsParams)
|
||||
else if ( sCmd2 == "SETSTD") {
|
||||
return VolZmapSetStdTool( vsParams) ;
|
||||
}
|
||||
else if ( sCmd2 == "MEASURE") {
|
||||
return VolZmapDeepnessMeasure( vsParams) ;
|
||||
}
|
||||
else if ( sCmd2 == "ZBOXINT") {
|
||||
return VolZmapBBoxZmapIntersection( vsParams) ;
|
||||
}
|
||||
return false ;
|
||||
}
|
||||
|
||||
@@ -2702,8 +2708,8 @@ GdbExecutor::VolZmapIntervalsAddiction( const STRVECTOR& vsParams)
|
||||
bool
|
||||
GdbExecutor::VolZmapMilling( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : Id, IdParent, ptPs, ptPe, vtVs, vtVe
|
||||
if ( vsParams.size() != 6)
|
||||
// parametri : Id, IdParent, ptPs, ptPe, vtVs, vtVe, dLinTol, dAngTolDeg (gli ultimi due servono per lavorazione con utensile generico)
|
||||
if ( vsParams.size() != 8)
|
||||
return false ;
|
||||
// recupero il riferimento in cui è immerso
|
||||
Frame3d frRef ;
|
||||
@@ -2725,12 +2731,20 @@ GdbExecutor::VolZmapMilling( const STRVECTOR& vsParams)
|
||||
Vector3d vtDe ;
|
||||
if ( ! GetVectorParam( vsParams[5], frRef, vtDe))
|
||||
return false ;
|
||||
// recupero la tolleranza lineare
|
||||
double dLinTol ;
|
||||
if ( ! FromString( vsParams[6], dLinTol))
|
||||
return false ;
|
||||
double dAngTolDeg ;
|
||||
if ( ! FromString( vsParams[7], dAngTolDeg))
|
||||
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
|
||||
pZmap->SetTolerances( dLinTol, dAngTolDeg) ;
|
||||
return pZmap->MillingStep( ptPs, ptPe, vtDs, vtDe) ;
|
||||
}
|
||||
|
||||
@@ -2802,6 +2816,82 @@ GdbExecutor::VolZmapSetStdTool( const STRVECTOR& vsParams)
|
||||
return pZmap->SetStdTool( sToolName, nToolType, dH, dTH, dR, dTR, dRc) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool GdbExecutor::VolZmapDeepnessMeasure( const STRVECTOR& vsParams) {
|
||||
|
||||
// parametri : ZmapId, frRef, ptP, vtV
|
||||
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 riferimento in cui è immerso lo Zmap
|
||||
Frame3d frRef ;
|
||||
if ( ! m_pGDB->GetGroupGlobFrame( GetIdParam( vsParams[1]), frRef))
|
||||
return false ;
|
||||
// recupero punto iniziale
|
||||
Point3d ptP ;
|
||||
if ( ! GetPointParam( vsParams[2], frRef, ptP))
|
||||
return false ;
|
||||
// recupero il vettore direzione
|
||||
Vector3d vtDir ;
|
||||
if ( ! GetVectorParam( vsParams[3], frRef, vtDir))
|
||||
return false ;
|
||||
|
||||
double dIn, dOut ;
|
||||
|
||||
pZmap -> Deepness( ptP, vtDir, dIn, dOut) ;
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbExecutor::VolZmapBBoxZmapIntersection( const STRVECTOR& vsParams)
|
||||
{
|
||||
// parametri : ZmapId, frRef, BBoxOrig, vtV1, vtV2, ptEnd
|
||||
if ( vsParams.size() != 6)
|
||||
return false ;
|
||||
// recupero lo Zmap
|
||||
int nZmapId = GetIdParam( vsParams[0]) ;
|
||||
VolZmap* pZmap = GetBasicVolZmap( m_pGDB->GetGeoObj( nZmapId)) ;
|
||||
if ( pZmap == nullptr)
|
||||
return false ;
|
||||
// recupero il riferimento in cui è immerso lo Zmap
|
||||
Frame3d frRef ;
|
||||
if ( ! m_pGDB->GetGroupGlobFrame( GetIdParam( vsParams[1]), frRef))
|
||||
return false ;
|
||||
// definisco il riferimento del bbox
|
||||
Point3d pt0 ;
|
||||
if ( ! GetPointParam( vsParams[2], frRef, pt0))
|
||||
return false ;
|
||||
// primo vettore frBBoxFrame
|
||||
Vector3d vtV1 ;
|
||||
if ( ! GetVectorParam( vsParams[3], frRef, vtV1))
|
||||
return false ;
|
||||
vtV1.Normalize() ;
|
||||
// secondo vettore frBBoxFrame
|
||||
Vector3d vtV2 ;
|
||||
if ( ! GetVectorParam( vsParams[4], frRef, vtV2))
|
||||
return false ;
|
||||
vtV2.Normalize() ;
|
||||
// Determino il terzo vettore della terna destrorsa
|
||||
Vector3d vtV3 = vtV1 ^ vtV2 ;
|
||||
// Definisco il sistema di riferimento del BBox
|
||||
Frame3d frBBoxFrame ; frBBoxFrame.Set( pt0, vtV1, vtV2, vtV3) ;
|
||||
// recupero il punto estremo
|
||||
Point3d ptEnd ;
|
||||
if ( ! GetPointParam( vsParams[5], frBBoxFrame, ptEnd))
|
||||
return false ;
|
||||
bool bInt ;
|
||||
|
||||
bInt = pZmap -> BBoxZmapIntersection( frBBoxFrame, ptEnd) ;
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbExecutor::ExecuteText( const string& sCmd2, const STRVECTOR& vsParams)
|
||||
|
||||
@@ -120,6 +120,8 @@ class GdbExecutor : public IGdbExecutor
|
||||
bool VolZmapMilling( const STRVECTOR& vsParams) ;
|
||||
bool VolZmapSetTool( const STRVECTOR& vsParams) ;
|
||||
bool VolZmapSetStdTool( const STRVECTOR& vsParams) ;
|
||||
bool VolZmapDeepnessMeasure( const STRVECTOR& vsParams) ;
|
||||
bool VolZmapBBoxZmapIntersection( const STRVECTOR& vsParams) ;
|
||||
bool ExecuteText( const std::string& sCmd2, const STRVECTOR& vsParams) ;
|
||||
bool TextSimple( const STRVECTOR& vsParams) ;
|
||||
bool TextComplete( const STRVECTOR& vsParams) ;
|
||||
|
||||
+8829
-2602
File diff suppressed because it is too large
Load Diff
@@ -16,17 +16,13 @@
|
||||
#include "ObjGraphicsMgr.h"
|
||||
#include "DllMain.h"
|
||||
#include "GeoObjRW.h"
|
||||
#include "CurveLine.h"
|
||||
#include "CurveArc.h"
|
||||
#include "CurveComposite.h"
|
||||
#include "/EgtDev/Include/EGkVolZmap.h"
|
||||
#include "/EgtDev/Include/EGkPoint3d.h"
|
||||
#include "/EgtDev/Include/EGkVector3d.h"
|
||||
#include "CurveComposite.h"
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
|
||||
// Tipi utensile
|
||||
enum ToolType { GenericTool = 0, CylindricalMill = 1, BallEndMill = 2, BullNoseMill = 3, ConusMill = 4} ;
|
||||
#include "/EgtDev/Include/ENkPolynomialRoots.h"
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
class VolZmap : public IVolZmap, public IGeoObjRW
|
||||
@@ -64,17 +60,27 @@ class VolZmap : public IVolZmap, public IGeoObjRW
|
||||
{ return m_nTempProp ; }
|
||||
|
||||
public : // IVolZmap
|
||||
virtual bool CopyFrom( const IGeoObj* pGObjSrc) ;
|
||||
virtual bool GetAllTriangles( TRIA3DLIST& lstTria) const ;
|
||||
virtual bool GetDexelLines( int nDir, int nPos1, int nPos2, POLYLINELIST& lstPL) const ;
|
||||
bool CopyFrom( const IGeoObj* pGObjSrc) override ;
|
||||
bool CreateMap( const Point3d& ptO, double dPrec, double dLengthX, double dLengthY, double dLengthZ) ;
|
||||
bool GetAllTriangles( TRIA3DLIST& lstTria) const override ;
|
||||
bool GetDexelLines( int nDir, int nPos1, int nPos2, POLYLINELIST& lstPL) const override ;
|
||||
bool SetTolerances( double dLinTol, double dAngTolDeg = 90) override ;
|
||||
bool SetTool( const std::string& pToolName, const ICurveComposite* pToolOutline) override ;
|
||||
bool SetStdTool( const std::string& pToolName, unsigned int nToolType,
|
||||
double dH, double dTipH, double dR, double dTipR, double dRc = 0) override ;
|
||||
bool MillingStep( const Point3d& ptPs, const Point3d& ptPe, Vector3d& vtDs, Vector3d& vtDe) override ;
|
||||
bool Deepness( const Point3d& ptP, const Vector3d& vtDir, double& dInLength, double& dOutLength) override ;
|
||||
bool BBoxZmapIntersection( const Frame3d& frBBox, const Point3d& ptMax) override ;
|
||||
|
||||
bool CreateTriMap( const Point3d& ptO, double dPrec, double dLengthX, double dLengthY, double dLengthZ) ;
|
||||
bool SubtractIntervals( unsigned int nI, unsigned int nJ, double dMin, double dMax) ;
|
||||
bool SubtractIntervals2( unsigned int nI, unsigned int nJ, double dMin, double dMax) ;
|
||||
bool SubtractIntervals3( unsigned int nI, unsigned int nJ, double dMin, double dMax) ;
|
||||
bool SubtractIntervals( const Point3d& ptP, double dMin, double dMax) ;
|
||||
bool AddIntervals( unsigned int nI, unsigned int nJ, double dMin, double dMax) ;
|
||||
bool AddIntervals( const Point3d& ptP, double dMin, double dMax) ;
|
||||
bool SetTool( const std::string& pToolName, const CurveComposite* pToolOutline) ;
|
||||
bool SetStdTool( const std::string& pToolName, unsigned int nToolType, double dH, double dTH, double dR, double dTR, double dRc = 0) ;
|
||||
bool MillingStep( const Point3d& ptPs, const Point3d& ptPe, Vector3d& vtDs, Vector3d& vtDe) ;
|
||||
bool TriMillingStep( const Point3d& ptPs, const Point3d& ptPe, Vector3d& vtDs, Vector3d& vtDe, double dLinTol, double dAngTolDeg = 90) ;
|
||||
bool Deepness( const Point3d& ptPGlob, const Vector3d& vtDir, const double& dRadius, double& dInLength, double& dOutLength) ;
|
||||
|
||||
public : // IGeoObjRW
|
||||
virtual int GetNgeId( void) const ;
|
||||
@@ -99,43 +105,143 @@ class VolZmap : public IVolZmap, public IGeoObjRW
|
||||
bool AddDexelSideFace( int nPos, int nPosAdj, const Point3d& ptP, const Point3d& ptQ,
|
||||
const Vector3d& vtZ, const Vector3d& vtNorm, TRIA3DLIST& lstTria) const ;
|
||||
|
||||
// frese: cylindrical, ball-end e bull-nose
|
||||
// Versore utensile parallelo all'asse Z
|
||||
bool MillingDrillZ( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingPerpZ( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingZ( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
// frese: cylindrical, ball-end, bull-nose e conus
|
||||
// Versore utensile parallelo all'asse Z
|
||||
// Fori
|
||||
bool DrillingZ( const Point3d & ptLs, const Point3d & ptLe, const Vector3d & vtToolDir) ;
|
||||
|
||||
bool CBTDrillZ( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool ConusDrillingZ( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
|
||||
// Tagli orizzontali
|
||||
bool MillingPerpZ( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
bool CBTMillingPerpZ( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool ConusPerpZ( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
|
||||
inline bool GetMinMaxZSw( const Point3d ptO, unsigned int nStartI, unsigned int nEndI, unsigned int nStartJ, unsigned int nEndJ, double dMinZ, double dMaxZ, double dMinRad, double dMaxRad, double dDir, double dDeltaZ) ;
|
||||
inline bool GetMinMaxZDr( const Point3d ptO, unsigned int nStartI, unsigned int nEndI, unsigned int nStartJ, unsigned int nEndJ, double dMinZ, double dMaxZ, double dMinRad, double dMaxRad, double dDir, double dDeltaZ) ;
|
||||
inline bool GetMinMaxZ( unsigned int nI, unsigned int nJ, double dZCutBase, double dDeltaZ, double dSqDist, const Vector3d& vtToolDir) ;
|
||||
|
||||
// generico 3 assi
|
||||
bool MillingZ( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
bool CBMillingZ( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool ConusMillingZDr( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
bool ConusMillingZSw( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
|
||||
inline bool GetMinMaxZGen( unsigned int nI, unsigned int nJ, double dProj, double dSqd, double dLenPath, double dZheight, double dDelta, const Vector3d& vtToolDir) ;
|
||||
// Versore utensile nel piano XY
|
||||
bool MillingDrillXY( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
|
||||
// Versore utensile nel piano XY
|
||||
// DeltaZ = 0
|
||||
bool DrillingXY( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
bool CBTDrillXY( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool ConusDrillingXY( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
|
||||
bool MillingPerpXY( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingXYPlaneGen( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingXYCyl( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingXYBall( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingXYPlusCyl( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingXYPlusBall( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingXYLongVert( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
bool CBTPerpXY( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool ConusPerpXY( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
|
||||
bool MillingXYPlaneGen( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool PlaneGenCylBall( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool ConusPlaneGen( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
inline bool GetMinMaxXY( unsigned int nI, unsigned int nJ, double dProj, double dZheight, double dSqD, double dPathPerp, double dPathPar, double dScProd) ;
|
||||
inline bool GetMMPlaneGenCyl( unsigned int i, unsigned int j, double dZ, double dLen1, double dLen2, double dProj1, double dProj2) ;
|
||||
inline bool GetMMPlaneGenBall( unsigned int i, unsigned int j, double dZ, double dLen1, double dLen2, Point3d ptIxy, Vector3d vtMove, Vector3d vtV1, Vector3d vtV2) ;
|
||||
|
||||
// frese: conus
|
||||
// Versore utensile parallelo all'asse Z
|
||||
bool ConusDrillingZ( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
bool ConusPerpZ( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
//bool ConusMillingZDr( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
//bool ConusMillingZDrP( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
//bool ConusMillingZDrPnew( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
//bool ConusMillingZDrPnew2( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
bool ConusMillingZDr( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
bool ConusMillingZSw( const Point3d ptLs, const Point3d ptLe, const Vector3d vtToolDir) ;
|
||||
inline bool GetMinMaxZSw( const Point3d ptO, unsigned int nStartI, unsigned int nEndI, unsigned int nStartJ, unsigned int nEndJ, double dMinZ, double dMaxZ, double dMinRad, double dMaxRad, double dDir, double dDeltaZ) ;
|
||||
inline bool GetMinMaxZDr( const Point3d ptO, unsigned int nStartI, unsigned int nEndI, unsigned int nStartJ, unsigned int nEndJ, double dMinZ, double dMaxZ, double dMinRad, double dMaxRad, double dDir, double dDeltaZ) ;
|
||||
|
||||
// DeltaZ != 0
|
||||
bool MillingXYVert( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
// utensile generico
|
||||
bool MillingXYLongVert( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
bool XYLongVertCylBall( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool XYLongVertConus( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
bool MillingXY( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
bool MillingXYCyl( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingXYBall( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingXYConus( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
bool MillingXYPlus( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
bool MillingXYPlusCyl( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingXYPlusBall( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingXYPlusConus( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
|
||||
// Virtual milling per componenti elementari
|
||||
|
||||
// Versore utensile parallelo all'asse Z
|
||||
// Movimento parallelo al versore utensile
|
||||
bool DrillZ( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dLinTol, double dAngTolDeg) ;
|
||||
|
||||
// Componenti
|
||||
bool LongCylV( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dHei, double dRad) ;
|
||||
bool LongConusV( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dHei, double dMaxRad, double dMinRad) ;
|
||||
|
||||
// Angolo generico fra movimento e versore utensile
|
||||
bool MillZ( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dLinTol, double dAngTolDeg) ;
|
||||
|
||||
// Componenti
|
||||
bool MillCylV( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dHei, double dRad) ;
|
||||
bool MillConusV( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dHei, double dMaxRad, double dMinRad) ;
|
||||
|
||||
// Direzione generica del versore utensile
|
||||
// Movimento parallelo al versore utensile
|
||||
bool Drilling( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool DrillingGT( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dLinTol, double dAngTolDeg) ;
|
||||
|
||||
// Componenti elementari degli untensili
|
||||
bool LongBall( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dRad) ;
|
||||
bool LongCyl( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dHei, double dRad) ;
|
||||
bool LongConus( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dHei, double dMaxRad, double dMinRad) ;
|
||||
|
||||
// Angolo generico fra movimento e versore utensile
|
||||
bool Milling( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir) ;
|
||||
bool MillingGT( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dLinTol, double dAngTolDeg) ;
|
||||
|
||||
// Componenti elementari degli utensili
|
||||
bool MillCyl( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dHei, double dRad) ;
|
||||
bool MillCyl2( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dHei, double dRad) ;
|
||||
bool MillBall( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dRad) ;
|
||||
bool MillConus( const Point3d& ptLs, const Point3d& ptLe, const Vector3d& vtToolDir, double dHei, double dMaxRad, double dMinRad) ;
|
||||
bool MillConusAux( const Point3d& ptI, const Point3d& ptF, const Vector3d& vtV1, const Vector3d& vtV2, const Vector3d& vtV3,
|
||||
unsigned int & nStI, unsigned int & nStJ, unsigned int & nEnI, unsigned int & nEnJ,
|
||||
double dHei, double dMaxRad, double dMinRad, double dCoef) ;
|
||||
|
||||
// Traslazioni
|
||||
bool Ball( const Point3d& ptLs, const Point3d& ptLe, const double& dRad) ;
|
||||
|
||||
// Utensile generico
|
||||
inline bool GetMinMaxZGenTool( unsigned int nI, unsigned int nJ, double dZCutBase, double dDeltaZ, double dSqDist, const Vector3d& vtToolDir) ;
|
||||
|
||||
|
||||
// Sottrazione per tridexel
|
||||
bool ZDrillingCB( unsigned int nGrid, const Point3d & ptS, const Point3d & ptE, const Vector3d & vtToolDir) ;
|
||||
|
||||
// Bounding Box
|
||||
inline bool BoundingBox( const Point3d& ptP1, const Point3d& ptP2, const Vector3d& vtV1, const Vector3d& vtV2, unsigned int & nStI, unsigned int & nStJ, unsigned int & nEnI, unsigned int & nEnJ) ;
|
||||
inline bool BoundingBox( unsigned int nGrid, const Point3d& ptP1, const Point3d& ptP2, const Vector3d& vtV1, const Vector3d& vtV2, unsigned int & nStI, unsigned int & nStJ, unsigned int & nEnI, unsigned int & nEnJ) ;
|
||||
inline bool BoundingBox( const Point3d& ptP1, const Point3d& ptP2, const Vector3d& vtV1, const Vector3d& vtV2) ;
|
||||
inline bool BBoxComponent( const Point3d& ptP1, const Point3d& ptP2, const Vector3d& vtV1, const Vector3d& vtV2,
|
||||
unsigned int & nStI, unsigned int & nStJ, unsigned int & nEnI, unsigned int & nEnJ,
|
||||
double dRad, double dTipRad, double dHei) ;
|
||||
inline bool BBoxComponent( unsigned int nGrid, const Point3d& ptP1, const Point3d& ptP2, const Vector3d& vtV1, const Vector3d& vtV2,
|
||||
unsigned int & nStI, unsigned int & nStJ, unsigned int & nEnI, unsigned int & nEnJ,
|
||||
double dRad, double dTipRad, double dHei) ;
|
||||
|
||||
|
||||
bool IsAPointInside( const Point3d& ptP) ;
|
||||
bool IsThereMat( unsigned int nI, unsigned int nJ, double dZ) ;
|
||||
bool LineParallelepipedIntersection( const Point3d& ptP, const Vector3d& vtV, const Point3d& ptE1, const Point3d& ptE2, double& dt1, double& dt2) ;
|
||||
bool LineParallelepipedIntersection( const Point3d& ptP, const Vector3d& vtV, const Point3d& ptEnd, double& dt1, double& dt2) ;
|
||||
bool IntersectALineZMapBBox( const Point3d& ptP, const Vector3d& vtV, Point3d& ptFirst, Point3d& ptLast) ;
|
||||
bool LineDexelIntersection( const Point3d& ptP, const Vector3d& vtV, unsigned int nI, unsigned int nJ, double& dOutMatFirst, double& dInMat, double& dOutMatLast) ;
|
||||
bool BBoxZmapIntersection( const Frame3d& frBBoxFrame, const BBox3d& bbBox) ;
|
||||
|
||||
|
||||
private :
|
||||
enum Status { ERR = 0, OK = 1, TO_VERIFY = 2} ;
|
||||
@@ -145,15 +251,36 @@ class VolZmap : public IVolZmap, public IGeoObjRW
|
||||
Status m_nStatus ; // stato
|
||||
int m_nTempProp ; // proprietà temporanea
|
||||
|
||||
Frame3d m_LocalFrame ;//////FORSE E' MEGLIO CHIAMARLO INTRINSECO? E IN VISTA DEGLI ALTRI FORSE E' BENE AGGIUNGERE UN IDENTIFICATIVO?
|
||||
Frame3d m_LocalFrame ;
|
||||
Frame3d m_LocalFrame2 ;
|
||||
Frame3d m_LocalFrame3 ;
|
||||
double m_dStep ;
|
||||
|
||||
unsigned int m_nNx ; // i = 0, 1, ..., m_nNx - 1
|
||||
unsigned int m_nNy ; // j = 0, 1, ..., m_nNy - 1
|
||||
unsigned int m_nNx2 ;
|
||||
unsigned int m_nNy2 ;
|
||||
unsigned int m_nNx3 ;
|
||||
unsigned int m_nNy3 ;
|
||||
unsigned int m_nDim ;
|
||||
unsigned int m_nDim2 ;
|
||||
unsigned int m_nDim3 ;
|
||||
|
||||
double m_dMinZ ;
|
||||
double m_dMaxZ ;
|
||||
std::vector <std::vector<double>> m_ZValues ;
|
||||
|
||||
double m_dMinZ2 ;
|
||||
double m_dMaxZ2 ;
|
||||
|
||||
double m_dMinZ3 ;
|
||||
double m_dMaxZ3 ;
|
||||
|
||||
std::vector <std::vector<double>> m_ZValues ;
|
||||
std::vector <std::vector<double>> m_ZValues2 ;
|
||||
std::vector <std::vector<double>> m_ZValues3 ;
|
||||
|
||||
double m_dLinTol ;
|
||||
double m_dAngTolDeg ;
|
||||
std::string m_sToolName ;
|
||||
unsigned int m_nToolType ;
|
||||
CurveComposite m_ToolOutline ;
|
||||
|
||||
Reference in New Issue
Block a user