EgtExecutor 1.9e1 :
- aggiunte funzioni Exe e Lua CAvToolStmPosition.
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2018-2018
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EXE_CAvTool.cpp Data : 28.04.18 Versione : 1.9e1
|
||||
// Contenuto : Funzioni per evitare coolisioni dell'utensile.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 28.04.18 DS Creazione modulo.
|
||||
//
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//--------------------------- Include ----------------------------------------
|
||||
#include "stdafx.h"
|
||||
#include "EXE.h"
|
||||
#include "EXE_Macro.h"
|
||||
#include "EXE_Const.h"
|
||||
#include "AuxTools.h"
|
||||
#include "GeoTools.h"
|
||||
#include "/EgtDev/Include/EXeExecutor.h"
|
||||
#include "/EgtDev/Include/EXeConst.h"
|
||||
#include "/EgtDev/Include/EGkCAvToolSurfTm.h"
|
||||
#include "/EgtDev/Include/EgtPointerOwner.h"
|
||||
|
||||
using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
double
|
||||
ExeCAvToolStmPosition( double dToolLen, double dToolDiam, double dToolCornR, int nSurfTmId,
|
||||
const Point3d& ptP, const Vector3d& vtAx, const Vector3d& vtMove, int nRefType)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, false)
|
||||
// recupero la superficie TriMesh
|
||||
const ISurfTriMesh* pStm = GetSurfTriMesh( pGeomDB->GetGeoObj( nSurfTmId)) ;
|
||||
if ( pStm == nullptr)
|
||||
return -1 ;
|
||||
// recupero il riferimento della superficie
|
||||
Frame3d frSurf ;
|
||||
if ( ! pGeomDB->GetGlobFrame( nSurfTmId, frSurf))
|
||||
return -1 ;
|
||||
// definizione oggetto per evitare collisioni
|
||||
PtrOwner<ICAvToolSurfTm> pCAvTlStm( CreateCAvToolSurfTm()) ;
|
||||
if ( IsNull( pCAvTlStm))
|
||||
return -1 ;
|
||||
// porto i dati geometrici in locale
|
||||
Point3d ptPL = GetPointLocal( pGeomDB, ptP, nRefType, frSurf) ;
|
||||
Vector3d vtAxL = GetVectorLocal( pGeomDB, vtAx, nRefType, frSurf) ;
|
||||
Vector3d vtMoveL = GetVectorLocal( pGeomDB, vtMove, nRefType, frSurf) ;
|
||||
// imposto dati
|
||||
if ( ! pCAvTlStm->SetStdTool( dToolLen, dToolDiam / 2, dToolCornR))
|
||||
return -1 ;
|
||||
pCAvTlStm->SetSurfTm( *pStm) ;
|
||||
pCAvTlStm->SetMoveDir( vtMoveL) ;
|
||||
return pCAvTlStm->TestPosition( ptPL, vtAxL) ;
|
||||
}
|
||||
Reference in New Issue
Block a user