EgtMachKernel 2.2d4 :
- aggiunta gestione TcPos (posizioni di cambio utensile) da configurazione macchina - aggiunte funzioni GetToolsInCurrSetupPos, GetTcPosId e GetAllTcPosNames.
This commit is contained in:
Binary file not shown.
@@ -286,6 +286,7 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
|
||||
<ClCompile Include="SurfFinishing.cpp" />
|
||||
<ClCompile Include="SurfFinishingData.cpp" />
|
||||
<ClCompile Include="Table.cpp" />
|
||||
<ClCompile Include="TcPos.cpp" />
|
||||
<ClCompile Include="ToolData.cpp" />
|
||||
<ClCompile Include="ToolsMgr.cpp" />
|
||||
<ClCompile Include="WaterJetting.cpp" />
|
||||
@@ -430,6 +431,7 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
|
||||
<ClInclude Include="SurfFinishing.h" />
|
||||
<ClInclude Include="SurfFinishingData.h" />
|
||||
<ClInclude Include="Table.h" />
|
||||
<ClInclude Include="TcPos.h" />
|
||||
<ClInclude Include="ToolData.h" />
|
||||
<ClInclude Include="ToolsMgr.h" />
|
||||
<ClInclude Include="WaterJetting.h" />
|
||||
|
||||
@@ -231,6 +231,9 @@
|
||||
<ClCompile Include="MachMgrClEntities.cpp">
|
||||
<Filter>Source Files\MachMgr</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="TcPos.cpp">
|
||||
<Filter>Source Files\Machine</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="DllMain.h">
|
||||
@@ -659,6 +662,9 @@
|
||||
<ClInclude Include="WaterJetting.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="TcPos.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="EgtMachKernel.rc">
|
||||
|
||||
@@ -192,6 +192,7 @@ class MachMgr : public IMachMgr
|
||||
bool ImportSetup( const std::string& sName) override ;
|
||||
bool VerifyCurrSetup( STRVECTOR& vsErrors) override ;
|
||||
bool FindToolInCurrSetup( const std::string& sTool) override ;
|
||||
bool GetToolsInCurrSetupPos( const std::string& sTcPos, STRVECTOR& vsTools) override ;
|
||||
bool UpdateCurrSetup( void) override ;
|
||||
bool EraseCurrSetup( void) override ;
|
||||
// Machinings DataBase
|
||||
@@ -331,6 +332,7 @@ class MachMgr : public IMachMgr
|
||||
int GetAxisId( const std::string& sAxis) const override ;
|
||||
int GetHeadId( const std::string& sHead) const override ;
|
||||
int GetHeadExitCount( const std::string& sHead) const override ;
|
||||
int GetTcPosId( const std::string& sTcPos) const override ;
|
||||
bool GetAxisToken( const std::string& sAxis, std::string& sToken) const override ;
|
||||
bool GetAxisType( const std::string& sAxis, bool& bLinear) const override ;
|
||||
bool GetAxisInvert( const std::string& sAxis, bool& bInvert) const override ;
|
||||
@@ -339,8 +341,9 @@ class MachMgr : public IMachMgr
|
||||
bool GetAxisHomePos( const std::string& sAxis, double& dHomeVal) const override ;
|
||||
bool ResetAxisPos( const std::string& sAxis) override ;
|
||||
bool ResetAllAxesPos( void) override ;
|
||||
bool GetAllHeadsNames( STRVECTOR& vNames) const override ;
|
||||
bool GetAllTablesNames( STRVECTOR& vNames) const override ;
|
||||
bool GetAllHeadsNames( STRVECTOR& vNames) const override ;
|
||||
bool GetAllTcPosNames( STRVECTOR& vNames) const override ;
|
||||
bool LoadTool( const std::string& sHead, int nExit, const std::string& sTool) override ;
|
||||
bool GetLoadedTool( const std::string& sHead, int nExit, std::string& sTool) const override ;
|
||||
bool UnloadTool( const std::string& sHead, int nExit) override ;
|
||||
|
||||
+1
-1
@@ -568,7 +568,7 @@ MachMgr::UpdateToolDraw( const EgtUUID& UuidTool) const
|
||||
}
|
||||
// Salvo il disegno
|
||||
ExeSetCurrentContext( nToolCtx) ;
|
||||
bOk = bOk && ExeSaveFile( sDrawPath, GDB_SV_CMPTXT) ;
|
||||
bOk = bOk && ExeSaveFile( sDrawPath, GDB_SV_BIN) ;
|
||||
// Ripristino il contesto originale
|
||||
ExeSetCurrentContext( nGenCtx) ;
|
||||
ExeDeleteContext( nToolCtx) ;
|
||||
|
||||
+26
-3
@@ -233,6 +233,15 @@ MachMgr::GetHeadExitCount( const string& sHead) const
|
||||
return ( ( pMch != nullptr) ? pMch->GetHeadExitCount( sHead) : 0) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
MachMgr::GetTcPosId( const string& sTcPos) const
|
||||
{
|
||||
Machine* pMch = GetCurrMachine() ;
|
||||
// restituisco identificativo della posizione cambio utensile indicata nella macchina corrente
|
||||
return ( ( pMch != nullptr) ? pMch->GetTcPosId( sTcPos) : GDB_ID_NULL) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::GetHeadAbove( const string& sHead) const
|
||||
@@ -470,6 +479,20 @@ MachMgr::GetCalcRot1W( void) const
|
||||
return ( ( pMch != nullptr) ? pMch->GetCurrRot1W() : false) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::GetAllTablesNames( STRVECTOR& vNames) const
|
||||
{
|
||||
// pulisco il vettore
|
||||
vNames.clear() ;
|
||||
// recupero la macchina corrente
|
||||
Machine* pMch = GetCurrMachine() ;
|
||||
if ( pMch == nullptr)
|
||||
return false ;
|
||||
// richiedo elenco tavole alla macchina
|
||||
return pMch->GetAllTablesNames( vNames) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::GetAllHeadsNames( STRVECTOR& vNames) const
|
||||
@@ -486,7 +509,7 @@ MachMgr::GetAllHeadsNames( STRVECTOR& vNames) const
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::GetAllTablesNames( STRVECTOR& vNames) const
|
||||
MachMgr::GetAllTcPosNames( STRVECTOR& vNames) const
|
||||
{
|
||||
// pulisco il vettore
|
||||
vNames.clear() ;
|
||||
@@ -494,8 +517,8 @@ MachMgr::GetAllTablesNames( STRVECTOR& vNames) const
|
||||
Machine* pMch = GetCurrMachine() ;
|
||||
if ( pMch == nullptr)
|
||||
return false ;
|
||||
// richiedo elenco tavole alla macchina
|
||||
return pMch->GetAllTablesNames( vNames) ;
|
||||
// richiedo elenco posizioni cambio utensile alla macchina
|
||||
return pMch->GetAllTcPosNames( vNames) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -119,6 +119,13 @@ MachMgr::FindToolInCurrSetup( const string& sTool)
|
||||
return m_stuMgr.FindTool( sTool) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::GetToolsInCurrSetupPos( const string& sTcPos, STRVECTOR& vsTools)
|
||||
{
|
||||
return m_stuMgr.GetToolsInSetupPos( sTcPos, vsTools) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::UpdateCurrSetup( void)
|
||||
|
||||
+52
@@ -18,6 +18,7 @@
|
||||
#include "Table.h"
|
||||
#include "Axis.h"
|
||||
#include "Head.h"
|
||||
#include "TcPos.h"
|
||||
#include "Exit.h"
|
||||
#include "/EgtDev/Include/EGkGeomDB.h"
|
||||
#include "/EgtDev/Include/EGkGeoVector3d.h"
|
||||
@@ -633,6 +634,50 @@ Machine::LoadMachineSpecialHead( const string& sName, const string& sParent, con
|
||||
return m_mapGroups.emplace( sName, nLay).second ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::LoadMachineTcPos( const string& sName, const string& sParent,
|
||||
const Point3d& ptPos, const Vector3d& vtTDir, const Vector3d& vtADir,
|
||||
const string& sGeo, const STRVECTOR& vsAux)
|
||||
{
|
||||
// recupero pezzo e layer della geometria originale della posizione nel cambio utensile
|
||||
string sPart, sLay ;
|
||||
Split( sGeo, "/", true, sPart, sLay) ;
|
||||
// cerco il gruppo nella geometria originale
|
||||
int nPart = m_pGeomDB->GetFirstNameInGroup( m_nTempGroupId, sPart) ;
|
||||
int nLay = m_pGeomDB->GetFirstNameInGroup( nPart, sLay) ;
|
||||
if ( nLay == GDB_ID_NULL)
|
||||
return false ;
|
||||
// cerco il gruppo padre per spostarvelo
|
||||
int nParentId = GetGroup( sParent) ;
|
||||
if ( nParentId == GDB_ID_NULL ||
|
||||
! m_pGeomDB->RelocateGlob( nLay, nParentId, GDB_LAST_SON))
|
||||
return false ;
|
||||
// sistemo lo stato di visualizzazione
|
||||
m_pGeomDB->SetStatus( nLay, GDB_ST_ON) ;
|
||||
// gli assegno il nome
|
||||
m_pGeomDB->SetName( nLay, sName) ;
|
||||
// sistemo la geometria ausiliaria
|
||||
if ( ! AdjustAuxGeometry( vsAux, nLay))
|
||||
return false ;
|
||||
// installo e inizializzo il gestore della posizione nel cambio utensile
|
||||
TcPos* pTcPos = new(nothrow) TcPos ;
|
||||
if ( pTcPos == nullptr)
|
||||
return false ;
|
||||
pTcPos->Set( sName, vtADir) ;
|
||||
m_pGeomDB->SetUserObj( nLay, pTcPos) ;
|
||||
// sistemo il riferimento dell'uscita rispetto alla direzione ausiliaria
|
||||
MUEXITVECTOR vMuExit ;
|
||||
vMuExit.emplace_back( ptPos, vtTDir) ;
|
||||
if ( ! AdjustExitFrames( nLay, vMuExit, vtADir))
|
||||
return false ;
|
||||
// trasformazione del riferimento di uscita in gruppo di uscita
|
||||
if ( ! CreateExitGroups( nLay, vMuExit))
|
||||
return false ;
|
||||
// lo inserisco nel dizionario dei gruppi della macchina
|
||||
return m_mapGroups.emplace( sName, nLay).second ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
Machine::GetGroup( const string& sGroup) const
|
||||
@@ -688,6 +733,13 @@ Machine::GetHead( int nGroup) const
|
||||
return ( dynamic_cast<Head*>( m_pGeomDB->GetUserObj( nGroup))) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
TcPos*
|
||||
Machine::GetTcPos( int nGroup) const
|
||||
{
|
||||
return ( dynamic_cast<TcPos*>( m_pGeomDB->GetUserObj( nGroup))) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
Exit*
|
||||
Machine::GetExit( int nGroup) const
|
||||
|
||||
@@ -25,6 +25,7 @@ class MachMgr ;
|
||||
class Axis ;
|
||||
class Table ;
|
||||
class Head ;
|
||||
class TcPos ;
|
||||
class Exit ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -52,8 +53,12 @@ class Machine
|
||||
int GetHeadId( const std::string& sHead) const
|
||||
{ int nId = GetGroup( sHead) ;
|
||||
return ( IsHeadGroup( nId) ? nId : GDB_ID_NULL) ; }
|
||||
bool GetAllHeadsNames( STRVECTOR& vNames) const ;
|
||||
int GetTcPosId( const std::string& sTcPos) const
|
||||
{ int nId = GetGroup( sTcPos) ;
|
||||
return ( IsTcPosGroup( nId) ? nId : GDB_ID_NULL) ; }
|
||||
bool GetAllTablesNames( STRVECTOR& vNames) const ;
|
||||
bool GetAllHeadsNames( STRVECTOR& vNames) const ;
|
||||
bool GetAllTcPosNames( STRVECTOR& vNames) const ;
|
||||
int GetFirstTable( void) const ;
|
||||
int GetHeadExitCount( const std::string& sHead) const ;
|
||||
int GetHeadExitPosDirAux( const std::string& sHead, int nExit, Point3d& ptPos, Vector3d& vtDir, Vector3d& vtAux) const ;
|
||||
@@ -194,6 +199,9 @@ class Machine
|
||||
const Point3d& ptPos, const Vector3d& vtTDir, const Vector3d& vtADir,
|
||||
double dRot1W, const STROKE& Rot2Stroke, int nSolCh, const STRVECTOR& vsOthColl,
|
||||
const std::string& sGeo, const STRVECTOR& vsAux) ;
|
||||
bool LoadMachineTcPos( const std::string& sName, const std::string& sParent,
|
||||
const Point3d& ptPos, const Vector3d& vtTDir, const Vector3d& vtADir,
|
||||
const std::string& sGeo, const STRVECTOR& vsAux) ;
|
||||
int GetGroup( const std::string& sGroup) const ;
|
||||
bool IsBaseGroup( int nGroup) const ;
|
||||
Axis* GetAxis( int nGroup) const ;
|
||||
@@ -207,6 +215,9 @@ class Machine
|
||||
Head* GetHead( int nGroup) const ;
|
||||
bool IsHeadGroup( int nGroup) const
|
||||
{ return ( GetHead( nGroup) != nullptr) ; }
|
||||
TcPos* GetTcPos( int nGroup) const ;
|
||||
bool IsTcPosGroup( int nGroup) const
|
||||
{ return ( GetTcPos( nGroup) != nullptr) ; }
|
||||
Exit* GetExit( int nGroup) const ;
|
||||
bool IsExitGroup( int nGroup) const
|
||||
{ return ( GetExit( nGroup) != nullptr) ; }
|
||||
@@ -288,6 +299,7 @@ class Machine
|
||||
static int LuaEmtStdHead( lua_State* L) ;
|
||||
static int LuaEmtMultiHead( lua_State* L) ;
|
||||
static int LuaEmtSpecialHead( lua_State* L) ;
|
||||
static int LuaEmtTcPos( lua_State* L) ;
|
||||
static int LuaEmtModifyAxisPosition( lua_State* L) ;
|
||||
static int LuaEmtModifyAxisDirection( lua_State* L) ;
|
||||
static int LuaEmtModifyAxisStroke( lua_State* L) ;
|
||||
|
||||
+48
-15
@@ -39,6 +39,22 @@ Machine::GetAllHeadsNames( STRVECTOR& vNames) const
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::GetAllTcPosNames( STRVECTOR& vNames) const
|
||||
{
|
||||
// reset lista nomi
|
||||
vNames.clear() ;
|
||||
// ricerca delle posizioni di cambio utensile
|
||||
for ( const auto& snGro : m_mapGroups) {
|
||||
if ( IsTcPosGroup( snGro.second))
|
||||
vNames.push_back( snGro.first) ;
|
||||
}
|
||||
// ordino alfabeticamente
|
||||
sort( vNames.begin(), vNames.end()) ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
Machine::GetHeadExitCount( const string& sHead) const
|
||||
@@ -89,21 +105,38 @@ Machine::LoadTool( const string& sHead, int nExit, const string& sTool)
|
||||
// controllo GeomDB
|
||||
if ( m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
// recupero il gruppo della testa
|
||||
// recupero il gruppo dell' oggetto
|
||||
int nHdGrp = GetGroup( sHead) ;
|
||||
if ( ! IsHeadGroup( nHdGrp))
|
||||
// se testa
|
||||
if ( IsHeadGroup( nHdGrp)) {
|
||||
// cerco il gruppo dell'uscita in quello della testa
|
||||
string sExit = MCH_EXIT + ToString( nExit) ;
|
||||
int nExGrp = m_pGeomDB->GetFirstNameInGroup( nHdGrp, sExit) ;
|
||||
Exit* pExit = GetExit( nExGrp) ;
|
||||
if ( pExit == nullptr)
|
||||
return false ;
|
||||
// inserisco l'utensile nell'uscita
|
||||
if ( ! LoadTool( pExit, sTool))
|
||||
return false ;
|
||||
// abilito la testa
|
||||
return EnableHeadInSet( sHead) ;
|
||||
}
|
||||
// se posizione cambio utensile
|
||||
else if ( IsTcPosGroup( nHdGrp)) {
|
||||
// cerco il gruppo dell'uscita in quello della posizione cambio utensile
|
||||
string sExit = MCH_EXIT + ToString( nExit) ;
|
||||
int nExGrp = m_pGeomDB->GetFirstNameInGroup( nHdGrp, sExit) ;
|
||||
Exit* pExit = GetExit( nExGrp) ;
|
||||
if ( pExit == nullptr)
|
||||
return false ;
|
||||
// inserisco l'utensile nell'uscita
|
||||
if ( ! LoadTool( pExit, sTool))
|
||||
return false ;
|
||||
// abilito la posizione cambio utensile
|
||||
return m_pGeomDB->SetStatus( nHdGrp, GDB_ST_ON) ;
|
||||
}
|
||||
// altrimenti errore
|
||||
return false ;
|
||||
// cerco il gruppo dell'uscita in quello della testa
|
||||
string sExit = MCH_EXIT + ToString( nExit) ;
|
||||
int nExGrp = m_pGeomDB->GetFirstNameInGroup( nHdGrp, sExit) ;
|
||||
Exit* pExit = GetExit( nExGrp) ;
|
||||
if ( pExit == nullptr)
|
||||
return false ;
|
||||
// inserisco l'utensile nell'uscita
|
||||
if ( ! LoadTool( pExit, sTool))
|
||||
return false ;
|
||||
// abilito la testa
|
||||
return EnableHeadInSet( sHead) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -192,9 +225,9 @@ Machine::UnloadTool( const string& sHead, int nExit)
|
||||
// controllo GeomDB
|
||||
if ( m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
// recupero il gruppo della testa
|
||||
// recupero il gruppo della testa o della posizione nel cambio utensili
|
||||
int nHdGrp = GetGroup( sHead) ;
|
||||
if ( ! IsHeadGroup( nHdGrp))
|
||||
if ( ! IsHeadGroup( nHdGrp) && ! IsTcPosGroup( nHdGrp))
|
||||
return false ;
|
||||
// cerco il gruppo dell'uscita in quello della testa
|
||||
string sExit = MCH_EXIT + ToString( nExit) ;
|
||||
|
||||
+55
-3
@@ -1,13 +1,13 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2015-2015
|
||||
// EgalTech 2015-2020
|
||||
//----------------------------------------------------------------------------
|
||||
// File : MachineLua.cpp Data : 06.05.15 Versione : 1.6e3
|
||||
// File : MachineLua.cpp Data : 26.04.20 Versione : 2.2d4
|
||||
// Contenuto : Implementazione gestione macchina : funzioni Lua.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 06.05.15 DS Creazione modulo.
|
||||
//
|
||||
// 26.04.20 DS Aggiunta gestione TcPos.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -87,6 +87,7 @@ Machine::LuaInit( const string& sMachineName)
|
||||
m_LuaMgr.RegisterFunction( "EmtTable", Machine::LuaEmtTable) ;
|
||||
m_LuaMgr.RegisterFunction( "EmtAxis", Machine::LuaEmtAxis) ;
|
||||
m_LuaMgr.RegisterFunction( "EmtHead", Machine::LuaEmtHead) ;
|
||||
m_LuaMgr.RegisterFunction( "EmtTcPos", Machine::LuaEmtTcPos) ;
|
||||
// registro le funzioni di modifica macchina per lua
|
||||
m_LuaMgr.RegisterFunction( "EmtModifyAxisPosition", Machine::LuaEmtModifyAxisPosition) ;
|
||||
m_LuaMgr.RegisterFunction( "EmtModifyAxisDirection", Machine::LuaEmtModifyAxisDirection) ;
|
||||
@@ -763,6 +764,57 @@ Machine::LuaEmtSpecialHead( lua_State* L)
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
Machine::LuaEmtTcPos( lua_State* L)
|
||||
{
|
||||
// Il parametro 1 deve essere una tabella
|
||||
if ( ! lua_istable( L, 1))
|
||||
return luaL_error( L, " Invalid Parameter, required a table") ;
|
||||
// lettura campo 'Name' dalla tabella
|
||||
string sName ;
|
||||
LuaCheckTabFieldParam( L, 1, FLD_NAME, sName)
|
||||
// lettura campo 'Parent' dalla tabella
|
||||
string sParent ;
|
||||
LuaCheckTabFieldParam( L, 1, FLD_PARENT, sParent)
|
||||
// lettura campo 'Pos' dalla tabella
|
||||
Point3d ptPos ;
|
||||
LuaCheckTabFieldParam( L, 1, FLD_POS, ptPos)
|
||||
// lettura campo 'TDir' dalla tabella
|
||||
Vector3d vtTDir ;
|
||||
LuaCheckTabFieldParam( L, 1, FLD_TDIR, vtTDir)
|
||||
// lettura eventuale campo 'ADir' dalla tabella
|
||||
Vector3d vtADir ;
|
||||
LuaGetTabFieldParam( L, 1, FLD_ADIR, vtADir) ;
|
||||
// lettura campo 'Geo' dalla tabella
|
||||
string sGeo ;
|
||||
LuaCheckTabFieldParam( L, 1, FLD_GEO, sGeo)
|
||||
// lettura eventuale campo 'Aux' dalla tabella
|
||||
STRVECTOR vsAux ;
|
||||
LuaGetTabFieldParam( L, 1, FLD_AUX, vsAux) ;
|
||||
LuaClearStack( L) ;
|
||||
|
||||
// info
|
||||
string sOut = "LuaEmtTcPos : " + sName ;
|
||||
LOG_DBG_INFO( GetEMkLogger(), sOut.c_str())
|
||||
|
||||
// verifico ci sia una macchina attiva
|
||||
if ( m_pMchLua == nullptr)
|
||||
return luaL_error( L, " Unknown Machine") ;
|
||||
|
||||
// carico i dati della posizione cambio utensile
|
||||
if ( ! m_pMchLua->LoadMachineTcPos( sName, sParent, ptPos, vtTDir, vtADir, sGeo, vsAux))
|
||||
return luaL_error( L, " Load Machine Standard Head failed") ;
|
||||
|
||||
// restituisco l'indice della posizione cambio utensile
|
||||
int nTcPosId = m_pMchLua->GetTcPosId( sName) ;
|
||||
if ( nTcPosId != GDB_ID_NULL)
|
||||
LuaSetParam( L, nTcPosId) ;
|
||||
else
|
||||
LuaSetParam( L) ;
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
Machine::LuaEmtModifyAxisPosition( lua_State* L)
|
||||
|
||||
@@ -313,3 +313,17 @@ SetupMgr::GetToolName( const string& sHead, int nExit, string& sName) const
|
||||
sName.clear() ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
SetupMgr::GetToolsInSetupPos( const string& sTcPos, STRVECTOR& vsTools) const
|
||||
{
|
||||
vsTools.clear() ;
|
||||
// eseguo ricerca
|
||||
for ( int i = 0 ; i < int( m_vStuData.size()) ; ++ i) {
|
||||
if ( EqualNoCase( sTcPos, m_vStuData[i].m_sTcPos)) {
|
||||
vsTools.emplace_back( m_vStuData[i].m_sName) ;
|
||||
}
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
|
||||
+2
-2
@@ -13,8 +13,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "/EgtDev/Include/EgtStringBase.h"
|
||||
|
||||
class MachMgr ;
|
||||
class IGeomDB ;
|
||||
@@ -51,6 +50,7 @@ class SetupMgr
|
||||
bool GetPosData( int nPos, std::string& sTcPos, std::string& sHead, int& nExit, std::string& sName) const ;
|
||||
bool GetToolData( const std::string& sName, std::string& sTcPos, std::string& sHead, int& nExit, int* pnPos = nullptr) const ;
|
||||
bool GetToolName( const std::string& sHead, int nExit, std::string& sName) const ;
|
||||
bool GetToolsInSetupPos( const std::string& sTcPos, STRVECTOR& vsTools) const ;
|
||||
|
||||
private :
|
||||
typedef std::vector< SetupData> STUDVECTOR ;
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2020-2020
|
||||
//----------------------------------------------------------------------------
|
||||
// File : TcPos.cpp Data : 26.04.20 Versione : 2.2d4
|
||||
// Contenuto : Oggetto testa per gruppo posizione cambio utensile di macchina.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 26.04.20 DS Creazione modulo.
|
||||
//
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//--------------------------- Include ----------------------------------------
|
||||
#include "stdafx.h"
|
||||
#include "TcPos.h"
|
||||
#include "MachConst.h"
|
||||
#include "/EgtDev/Include/EMkMachiningConst.h"
|
||||
#include "/EgtDev/Include/EGkGdbConst.h"
|
||||
#include "/EgtDev/Include/EGkUserObjFactory.h"
|
||||
#include "/EgtDev/Include/EGkStringUtils3d.h"
|
||||
#include "/EgtDev/Include/EGkUiUnits.h"
|
||||
|
||||
using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
USEROBJ_REGISTER( "EMkTcPos", TcPos) ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const string&
|
||||
TcPos::GetClassName( void) const
|
||||
{
|
||||
return USEROBJ_GETNAME( TcPos) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
TcPos*
|
||||
TcPos::Clone( void) const
|
||||
{
|
||||
// alloco oggetto
|
||||
TcPos* pHead = new(nothrow) TcPos ;
|
||||
// eseguo copia dei dati
|
||||
if ( pHead != nullptr) {
|
||||
try { pHead->m_nOwnerId = GDB_ID_NULL ;
|
||||
pHead->m_pGeomDB = nullptr ;
|
||||
pHead->m_sName = m_sName ;
|
||||
pHead->m_vtADir = m_vtADir ;
|
||||
}
|
||||
catch( ...) {
|
||||
delete pHead ;
|
||||
return nullptr ;
|
||||
}
|
||||
}
|
||||
// ritorno l'oggetto
|
||||
return pHead ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
TcPos::Dump( string& sOut, bool bMM, const char* szNewLine) const
|
||||
{
|
||||
sOut += GetClassName() + szNewLine ;
|
||||
sOut += "Id=" + ToString( m_nOwnerId) + szNewLine ;
|
||||
sOut += "Name=" + m_sName + szNewLine ;
|
||||
sOut += "ADir=" + ToString( m_vtADir) + szNewLine ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
TcPos::SetOwner( int nId, IGeomDB* pGDB)
|
||||
{
|
||||
m_nOwnerId = nId ;
|
||||
m_pGeomDB = pGDB ;
|
||||
return ( m_nOwnerId != GDB_ID_NULL && m_pGeomDB != nullptr) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
TcPos::GetOwner( void) const
|
||||
{
|
||||
return m_nOwnerId ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
IGeomDB*
|
||||
TcPos::GetGeomDB( void) const
|
||||
{
|
||||
return m_pGeomDB ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------------
|
||||
TcPos::TcPos( void)
|
||||
: m_nOwnerId( GDB_ID_NULL), m_pGeomDB( nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
TcPos::Set( const string& sName, const Vector3d& vtADir)
|
||||
{
|
||||
m_sName = sName ;
|
||||
m_vtADir = vtADir ;
|
||||
return true ;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2020-2020
|
||||
//----------------------------------------------------------------------------
|
||||
// File : TcPos.h Data : 26.04.20 Versione : 2.2d4
|
||||
// Contenuto : Dichiarazione della classe TcPos.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 26.04.20 DS Creazione modulo.
|
||||
//
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Machine.h"
|
||||
#include "/EgtDev/Include/EGkUserObj.h"
|
||||
#include "/EgtDev/Include/EGkPoint3d.h"
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
class TcPos : public IUserObj
|
||||
{
|
||||
public : // IUserObj
|
||||
TcPos* Clone( void) const override ;
|
||||
const std::string& GetClassName( void) const override ;
|
||||
bool Dump( std::string& sOut, bool bMM = true, const char* szNewLine = "\n") const override ;
|
||||
bool SetOwner( int nId, IGeomDB* pGDB) override ;
|
||||
int GetOwner( void) const override ;
|
||||
IGeomDB* GetGeomDB( void) const override ;
|
||||
|
||||
public :
|
||||
TcPos( void) ;
|
||||
bool Set( const std::string& sName, const Vector3d& vtADir) ;
|
||||
const std::string& GetName( void) const
|
||||
{ return m_sName ; }
|
||||
const Vector3d& GetADir( void) const
|
||||
{ return m_vtADir ; }
|
||||
|
||||
private :
|
||||
int m_nOwnerId ;
|
||||
IGeomDB* m_pGeomDB ;
|
||||
std::string m_sName ;
|
||||
Vector3d m_vtADir ;
|
||||
} ;
|
||||
Reference in New Issue
Block a user