EgtMachKernel 1.9k2 :
- aggiunta gestione massimo affondamento di utensile TdbGetCurrToolMaxDepth - for each (.. in ..) sostituito da for ( .. : ..) vero costrutto C++.
This commit is contained in:
+86
-7
@@ -17,11 +17,14 @@
|
||||
#include "stdafx.h"
|
||||
#include "ToolsMgr.h"
|
||||
#include "DllMain.h"
|
||||
#include "MachConst.h"
|
||||
#include "/EgtDev/Include/EGkGeomDB.h"
|
||||
#include "/EgtDEv/Include/EmkToolConst.h"
|
||||
#include "/EgtDEv/Include/EGnStringKeyVal.h"
|
||||
#include "/EgtDEv/Include/EGnFileUtils.h"
|
||||
#include "/EgtDEv/Include/EGnScanner.h"
|
||||
#include "/EgtDEv/Include/EGnWriter.h"
|
||||
#include "/EgtDev/Include/EgtPointerOwner.h"
|
||||
#include <cassert>
|
||||
#include <bitset>
|
||||
|
||||
@@ -58,11 +61,12 @@ ToolsMgr::Clear( void)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::Load( const string& sToolsFile)
|
||||
ToolsMgr::Load( const string& sToolsDir, const string& sToolsFile)
|
||||
{
|
||||
// salvo la path del file con i dati
|
||||
m_sToolsFile = sToolsFile ;
|
||||
string sOut = "ToolsMgr Init : " + m_sToolsFile ;
|
||||
m_sToolsDir = sToolsDir ;
|
||||
m_sToolsPath = m_sToolsDir + "\\" + sToolsFile ;
|
||||
string sOut = "ToolsMgr Init : " + m_sToolsPath ;
|
||||
LOG_INFO( GetEMkLogger(), sOut.c_str())
|
||||
|
||||
// carico
|
||||
@@ -78,7 +82,7 @@ ToolsMgr::Reload( void)
|
||||
|
||||
// inizializzo lo scanner
|
||||
Scanner TheScanner ;
|
||||
if ( ! TheScanner.Init( m_sToolsFile, ";")) {
|
||||
if ( ! TheScanner.Init( m_sToolsPath, ";")) {
|
||||
LOG_ERROR( GetEMkLogger(), "ReloadTools : Error on Init")
|
||||
return false ;
|
||||
}
|
||||
@@ -223,17 +227,17 @@ ToolsMgr::Save( bool bCompressed) const
|
||||
return true ;
|
||||
|
||||
// faccio copia di backup del file originale
|
||||
CopyFileEgt( m_sToolsFile, m_sToolsFile + ".bak") ;
|
||||
CopyFileEgt( m_sToolsPath, m_sToolsPath + ".bak") ;
|
||||
|
||||
// inizializzo il writer
|
||||
Writer TheWriter ;
|
||||
if ( ! TheWriter.Init( m_sToolsFile, bCompressed)) {
|
||||
if ( ! TheWriter.Init( m_sToolsPath, bCompressed)) {
|
||||
LOG_ERROR( GetEMkLogger(), "SaveTools : Error on Init")
|
||||
return false ;
|
||||
}
|
||||
|
||||
// scrivo linea di inizio file
|
||||
string sOut = "; --- " + m_sToolsFile + " " + CurrDateTime() + " ---" ;
|
||||
string sOut = "; --- " + m_sToolsPath + " " + CurrDateTime() + " ---" ;
|
||||
if ( ! TheWriter.OutText( sOut)) {
|
||||
LOG_ERROR( GetEMkLogger(), "SaveTools : Error on Start")
|
||||
return false ;
|
||||
@@ -527,12 +531,34 @@ ToolsMgr::SaveCurrTool( void)
|
||||
m_suData.emplace( m_tdCurrTool.m_sName, m_tdCurrTool.m_Uuid) ;
|
||||
}
|
||||
}
|
||||
// aggiorno dati portautensile
|
||||
UpdateCurrToolHolderData() ;
|
||||
// eseguo salvataggio
|
||||
m_bModified = true ;
|
||||
iIter->second = m_tdCurrTool ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::UpdateCurrToolHolderData( void)
|
||||
{
|
||||
// Leggo i dati del portautensile dal disegno dell'utensile
|
||||
PtrOwner<IGeomDB> pGeomDB( CreateGeomDB()) ;
|
||||
pGeomDB->Init() ;
|
||||
string sDrawPath = m_sToolsDir + "\\" + m_tdCurrTool.m_sDraw ;
|
||||
pGeomDB->Load( sDrawPath) ;
|
||||
int nToolId = pGeomDB->GetFirstGroupInGroup( GDB_ID_ROOT) ;
|
||||
double dTHoldLen = 0 ;
|
||||
pGeomDB->GetInfo( nToolId, TTH_LEN, dTHoldLen) ;
|
||||
double dTHoldDiam = 0 ;
|
||||
pGeomDB->GetInfo( nToolId, TTH_DIAM, dTHoldDiam) ;
|
||||
// Aggiorno i dati nelle note di sistema
|
||||
SetValInNotes( TSI_THLEN, dTHoldLen, m_tdCurrTool.m_sSysNotes) ;
|
||||
SetValInNotes( TSI_THDIAM, dTHoldDiam, m_tdCurrTool.m_sSysNotes) ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::IsCurrToolModified( void) const
|
||||
@@ -618,3 +644,56 @@ ToolsMgr::GetCurrToolParam( int nType, string& sVal) const
|
||||
{
|
||||
return ( m_bCurrTool ? m_tdCurrTool.GetParam( nType, sVal) : false) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::GetCurrToolMaxDepth( double& dMaxDepth) const
|
||||
{
|
||||
// verifico esistenza utensile corrente
|
||||
if ( ! m_bCurrTool)
|
||||
return false ;
|
||||
|
||||
// se punta a forare
|
||||
if ( ( m_tdCurrTool.m_nType & TF_DRILLBIT) != 0) {
|
||||
dMaxDepth = m_tdCurrTool.m_dMaxMat ;
|
||||
return true ;
|
||||
}
|
||||
// se lama
|
||||
else if ( ( m_tdCurrTool.m_nType & TF_SAWBLADE) != 0) {
|
||||
dMaxDepth = m_tdCurrTool.m_dMaxMat ;
|
||||
return true ;
|
||||
}
|
||||
// se fresa
|
||||
else if ( ( m_tdCurrTool.m_nType & TF_MILL) != 0) {
|
||||
// recupero le dimensioni del porta utensili
|
||||
double dTHoldLen = 0 ;
|
||||
double dTHoldDiam = 0 ;
|
||||
if ( ! GetValInNotes( m_tdCurrTool.m_sSysNotes, TSI_THLEN, dTHoldLen) ||
|
||||
! GetValInNotes( m_tdCurrTool.m_sSysNotes, TSI_THDIAM, dTHoldDiam)) {
|
||||
(const_cast<ToolsMgr*>(this))->SaveCurrTool() ;
|
||||
Save() ;
|
||||
GetValInNotes( m_tdCurrTool.m_sSysNotes, TSI_THLEN, dTHoldLen) ;
|
||||
GetValInNotes( m_tdCurrTool.m_sSysNotes, TSI_THDIAM, dTHoldDiam) ;
|
||||
}
|
||||
// calcolo il massimo affondamento
|
||||
dMaxDepth = m_tdCurrTool.m_dLen - ( m_tdCurrTool.m_dDiam > dTHoldDiam ? 0 : dTHoldLen) - MAX_DEPTH_SAFE ;
|
||||
return true ;
|
||||
}
|
||||
// se mortasatrice o sega a catena
|
||||
else if ( ( m_tdCurrTool.m_nType & TF_MORTISE) != 0) {
|
||||
dMaxDepth = m_tdCurrTool.m_dMaxMat ;
|
||||
return true ;
|
||||
}
|
||||
// se scalpello
|
||||
else if ( ( m_tdCurrTool.m_nType & TF_CHISEL) != 0) {
|
||||
dMaxDepth = m_tdCurrTool.m_dMaxMat ;
|
||||
return true ;
|
||||
}
|
||||
// utensile composito
|
||||
else if ( ( m_tdCurrTool.m_nType & TF_COMPO) != 0) {
|
||||
// non ancora gestito
|
||||
return false ;
|
||||
}
|
||||
|
||||
return false ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user