//---------------------------------------------------------------------------- // EgalTech 2015-2016 //---------------------------------------------------------------------------- // File : EXE_ModifyVol.cpp Data : 27.10.16 Versione : 1.6v7 // Contenuto : Funzioni di modifica dei solidi per EXE. // // // // Modifiche : 27.10.16 DS Creazione modulo. // // //---------------------------------------------------------------------------- //--------------------------- Include ---------------------------------------- #include "stdafx.h" #include "EXE.h" #include "EXE_Macro.h" #include "AuxTools.h" #include "GeoTools.h" #include "/EgtDev/Include/EXeExecutor.h" #include "/EgtDev/Include/EXeConst.h" #include "/EgtDev/Include/EGkVolZmap.h" #include "/EgtDev/Include/EGkStringUtils3d.h" using namespace std ; //---------------------------------------------------------------------------- bool ExeVolZmapSetStdTool( int nId, const string& sToolName, double dLen, double dDiam, double dCornR) { IGeomDB* pGeomDB = GetCurrGeomDB() ; VERIFY_GEOMDB( pGeomDB, false) // recupero lo Zmap e assegno i dati dell'utensile IVolZmap* pVZM = GetVolZmap( pGeomDB->GetGeoObj( nId)) ; bool bOk = ( pVZM != nullptr && pVZM->SetStdTool( sToolName, dLen, 0.5 * dDiam, dCornR)) ; ExeSetModified() ; // se richiesto, salvo il comando Lua equivalente if ( IsCmdLog()) { string sLua = "EgtVolZmapSetStdTool(" + IdToString( nId) + "," + sToolName + "," + ToString( dLen) + "," + ToString( dDiam) + "," + ToString( dCornR) + ")" + " -- Ok=" + ToString( bOk) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } // restituisco risultato return bOk ; } //---------------------------------------------------------------------------- bool ExeVolZmapMillingStep( int nId, const Point3d& ptPs, const Vector3d& vtDs, const Point3d& ptPe, const Vector3d& vtDe, int nRefType) { IGeomDB* pGeomDB = GetCurrGeomDB() ; VERIFY_GEOMDB( pGeomDB, false) // recupero il riferimento locale Frame3d frLoc ; bool bOk = pGeomDB->GetGlobFrame( nId, frLoc) ; // porto in locale i punti e i vettori Point3d ptPsL = GetPointLocal( pGeomDB, ptPs, nRefType, frLoc) ; Vector3d vtDsL = GetVectorLocal( pGeomDB, vtDs, nRefType, frLoc) ; Point3d ptPeL = GetPointLocal( pGeomDB, ptPe, nRefType, frLoc) ; Vector3d vtDeL = GetVectorLocal( pGeomDB, vtDe, nRefType, frLoc) ; // recupero lo Zmap e eseguo movimento di fresatura con l'utensile già associato IVolZmap* pVZM = GetVolZmap( pGeomDB->GetGeoObj( nId)) ; bOk = bOk && ( pVZM != nullptr && pVZM->MillingStep( ptPsL, vtDsL, ptPeL, vtDeL)) ; ExeSetModified() ; // se richiesto, salvo il comando Lua equivalente if ( IsCmdLog()) { string sLua = "EgtVolZmapMillingStep(" + IdToString( nId) + ",{" + ToString( ptPs) + "},{" + ToString( vtDs) + "},{" + ToString( ptPe) + "},{" + ToString( vtDe) + "}," + RefTypeToString( nRefType) + ")" + " -- Ok=" + ToString( bOk) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } // restituisco risultato return bOk ; }