EgtMachKernel :

- prime modifiche per tagli inclinati su esterno archi.
This commit is contained in:
Dario Sassi
2020-01-20 06:52:47 +00:00
parent 20d04076b6
commit bff983e12c
31 changed files with 118 additions and 106 deletions
+22 -22
View File
@@ -23,34 +23,34 @@ using namespace std ;
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static int CAM_PARAM_V1 = 10 ; static int CAM_PARAM_V1 = 10 ;
static std::string CAM_CORR = "Corr" ; static string CAM_CORR = "Corr" ;
static std::string CAM_TDIR = "TDir" ; static string CAM_TDIR = "TDir" ;
static std::string CAM_CDIR = "CDir" ; static string CAM_CDIR = "CDir" ;
static std::string CAM_ADIR = "ADir" ; static string CAM_ADIR = "ADir" ;
static std::string CAM_PBAS = "PBas" ; static string CAM_PBAS = "PBas" ;
static std::string CAM_FEED = "Feed" ; static string CAM_FEED = "Feed" ;
static std::string CAM_FLAG = "Flg" ; static string CAM_FLAG = "Flg" ;
static std::string CAM_AXSTS = "AxS" ; static string CAM_AXSTS = "AxS" ;
static std::string CAM_AXMSK = "AxM" ; static string CAM_AXMSK = "AxM" ;
static std::string CAM_AXVAL = "AxV" ; static string CAM_AXVAL = "AxV" ;
static int CAM_PARAM_V2 = 16 ; static int CAM_PARAM_V2 = 16 ;
static std::string CAM_MOVE = "Move" ; static string CAM_MOVE = "Move" ;
static std::string CAM_PCEN = "PCen" ; static string CAM_PCEN = "PCen" ;
static std::string CAM_ACEN = "ACen" ; static string CAM_ACEN = "ACen" ;
static std::string CAM_AXMC = "AxMC" ; static string CAM_AXMC = "AxMC" ;
static std::string CAM_AXMR = "AxMR" ; static string CAM_AXMR = "AxMR" ;
static std::string CAM_AXAC = "AxAC" ; static string CAM_AXAC = "AxAC" ;
static int CAM_PARAM_V3 = 18 ; static int CAM_PARAM_V3 = 18 ;
static std::string CAM_NDIR = "NDir" ; static string CAM_NDIR = "NDir" ;
static std::string CAM_AXND = "AxND" ; static string CAM_AXND = "AxND" ;
static int CAM_PARAM_V4 = 19 ; static int CAM_PARAM_V4 = 19 ;
static std::string CAM_NDLT = "NDlt" ; static string CAM_NDLT = "NDlt" ;
static int CAM_PARAM_V5 = 20 ; static int CAM_PARAM_V5 = 20 ;
static std::string CAM_BDIR = "BDir" ; static string CAM_BDIR = "BDir" ;
static int CAM_PARAM_V6 = 21 ; static int CAM_PARAM_V6 = 21 ;
static std::string CAM_INDEX = "Idx" ; static string CAM_INDEX = "Idx" ;
static int CAM_PARAM_V7 = 22 ; static int CAM_PARAM_V7 = 22 ;
static std::string CAM_ORIGFEED = "OrFeed" ; static string CAM_ORIGFEED = "OrFeed" ;
static int CAM_TOTPARAM =CAM_PARAM_V7 ; static int CAM_TOTPARAM =CAM_PARAM_V7 ;
+2 -2
View File
@@ -50,7 +50,7 @@ enum nChiselingKey {
KEY_WS, KEY_WS,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sChiselingKey = { static const array<string,KEY_ZZZ> sChiselingKey = {
"AB", "AB",
"AI", "AI",
"DH", "DH",
@@ -332,7 +332,7 @@ ChiselingData::VerifyWorkSide( int nVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
ChiselingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const ChiselingData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;
+21 -21
View File
@@ -41,27 +41,27 @@ using namespace std ;
// 2052 = "Warning in Disposition : No shifts" // 2052 = "Warning in Disposition : No shifts"
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static std::string DIS_TABLE = "Tab" ; static string DIS_TABLE = "Tab" ;
static std::string DIS_PHASE = "Ph" ; static string DIS_PHASE = "Ph" ;
static std::string DIS_REF1 = "Ref1" ; static string DIS_REF1 = "Ref1" ;
static std::string DIS_AREA1 = "Area1" ; static string DIS_AREA1 = "Area1" ;
static std::string DIS_FXD_TOT = "FxT" ; static string DIS_FXD_TOT = "FxT" ;
static std::string DIS_FXD_NAME = "FxN" ; static string DIS_FXD_NAME = "FxN" ;
static std::string DIS_FXD_POS = "FxP" ; static string DIS_FXD_POS = "FxP" ;
static std::string DIS_FXD_ANG = "FxA" ; static string DIS_FXD_ANG = "FxA" ;
static std::string DIS_FXD_MOV = "FxM" ; static string DIS_FXD_MOV = "FxM" ;
static std::string DIS_MVD_TOT = "MvT" ; static string DIS_MVD_TOT = "MvT" ;
static std::string DIS_MVD_ID = "MvI" ; static string DIS_MVD_ID = "MvI" ;
static std::string DIS_MVD_TYPE = "MvT" ; static string DIS_MVD_TYPE = "MvT" ;
static std::string DIS_MVD_PNT = "MvP" ; static string DIS_MVD_PNT = "MvP" ;
static std::string DIS_MVD_ANG = "MvA" ; static string DIS_MVD_ANG = "MvA" ;
static std::string DIS_MVD_FLAG = "MvF" ; static string DIS_MVD_FLAG = "MvF" ;
static std::string DIS_NUM = "NUM" ; static string DIS_NUM = "NUM" ;
static std::string DIS_HEAD = "Head" ; static string DIS_HEAD = "Head" ;
static std::string DIS_EXIT = "Exit" ; static string DIS_EXIT = "Exit" ;
static std::string DIS_SOMEBYHAND = "Sbh" ; static string DIS_SOMEBYHAND = "Sbh" ;
static std::string DIS_TCPOS = "TcPos" ; static string DIS_TCPOS = "TcPos" ;
static std::string DIS_AREA1_OFFS = "Area1Offs" ; static string DIS_AREA1_OFFS = "Area1Offs" ;
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static double DISP_BOX_TOL = - 0.5 ; static double DISP_BOX_TOL = - 0.5 ;
+2 -2
View File
@@ -55,7 +55,7 @@ enum nDrillingKey {
KEY_UUID, KEY_UUID,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sDrillingKey = { static const array<string,KEY_ZZZ> sDrillingKey = {
"AB", "AB",
"AI", "AI",
"DH", "DH",
@@ -372,7 +372,7 @@ DrillingData::VerifySolCh( int nVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
DrillingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const DrillingData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;
+1 -1
View File
@@ -43,7 +43,7 @@ Estimator::Init( MachMgr* pMchMgr)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
Estimator::Run( const string& sCncFile, const std::string& sInfo) Estimator::Run( const string& sCncFile, const string& sInfo)
{ {
// emetto info di log // emetto info di log
{ string sOut = "Estimator Run : " + sCncFile ; { string sOut = "Estimator Run : " + sCncFile ;
+2 -2
View File
@@ -49,7 +49,7 @@ enum nGenMachiningKey {
KEY_UUID, KEY_UUID,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sGenMachiningKey = { static const array<string,KEY_ZZZ> sGenMachiningKey = {
"AB", "AB",
"AI", "AI",
"DH", "DH",
@@ -317,7 +317,7 @@ GenMachiningData::VerifySolCh( int nVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
GenMachiningData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const GenMachiningData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;
+1 -1
View File
@@ -43,7 +43,7 @@ Generator::Init( MachMgr* pMchMgr)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
Generator::Run( const string& sCncFile, const std::string& sInfo) Generator::Run( const string& sCncFile, const string& sInfo)
{ {
// emetto info di log // emetto info di log
{ string sOut = "Generator Run : " + sCncFile ; { string sOut = "Generator Run : " + sCncFile ;
+2 -2
View File
@@ -183,7 +183,7 @@ bool
MachMgr::IsMachBase( int nId) const MachMgr::IsMachBase( int nId) const
{ {
int nLevel ; int nLevel ;
std::string sName ; string sName ;
return ( m_pGeomDB != nullptr && return ( m_pGeomDB != nullptr &&
m_pGeomDB->GetLevel( nId, nLevel) && nLevel == GDB_LV_SYSTEM && m_pGeomDB->GetLevel( nId, nLevel) && nLevel == GDB_LV_SYSTEM &&
m_pGeomDB->GetName( nId, sName) && sName == MACH_BASE) ; m_pGeomDB->GetName( nId, sName) && sName == MACH_BASE) ;
@@ -249,7 +249,7 @@ bool
MachMgr::IsMachAux( int nId) const MachMgr::IsMachAux( int nId) const
{ {
int nLevel ; int nLevel ;
std::string sName ; string sName ;
return ( m_pGeomDB != nullptr && return ( m_pGeomDB != nullptr &&
m_pGeomDB->GetLevel( nId, nLevel) && nLevel == GDB_LV_TEMP && m_pGeomDB->GetLevel( nId, nLevel) && nLevel == GDB_LV_TEMP &&
m_pGeomDB->GetName( nId, sName) && sName == MACH_AUX) ; m_pGeomDB->GetName( nId, sName) && sName == MACH_AUX) ;
+1 -1
View File
@@ -662,7 +662,7 @@ MachMgr::ExistProtectedAreas( void) const
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
std::string string
MachMgr::GetOutstrokeInfo( bool bMM) const MachMgr::GetOutstrokeInfo( bool bMM) const
{ {
Machine* pMch = GetCurrMachine() ; Machine* pMch = GetCurrMachine() ;
+1 -1
View File
@@ -27,7 +27,7 @@ MachMgr::SimInit( void)
// alloco o rialloco il simulatore // alloco o rialloco il simulatore
if ( m_pSimul != nullptr) if ( m_pSimul != nullptr)
delete m_pSimul ; delete m_pSimul ;
m_pSimul = new( std::nothrow) Simulator ; m_pSimul = new( nothrow) Simulator ;
if ( m_pSimul == nullptr) if ( m_pSimul == nullptr)
return false ; return false ;
// lo inizializzo // lo inizializzo
+3 -3
View File
@@ -977,7 +977,7 @@ Machine::SetLook( int nFlag)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
Machine::LinkRawPartToGroup( int nRawPartId, const std::string& sGroupName) Machine::LinkRawPartToGroup( int nRawPartId, const string& sGroupName)
{ {
// verifico DB geometrico e gestore lavorazioni // verifico DB geometrico e gestore lavorazioni
if ( m_pGeomDB == nullptr || m_pMchMgr == nullptr) if ( m_pGeomDB == nullptr || m_pMchMgr == nullptr)
@@ -1054,7 +1054,7 @@ Machine::UnlinkAllRawPartsFromGroups( void)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
Machine::LinkFixtureToGroup( int nFxtId, const std::string& sGroupName) Machine::LinkFixtureToGroup( int nFxtId, const string& sGroupName)
{ {
// verifico DB geometrico e gestore lavorazioni // verifico DB geometrico e gestore lavorazioni
if ( m_pGeomDB == nullptr || m_pMchMgr == nullptr) if ( m_pGeomDB == nullptr || m_pMchMgr == nullptr)
@@ -1126,7 +1126,7 @@ const string KEY_ORIG_REF = "OrigRef" ;
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
Machine::LinkPartToGroup( int nPartId, const std::string& sGroupName) Machine::LinkPartToGroup( int nPartId, const string& sGroupName)
{ {
// verifico DB geometrico e gestore lavorazioni // verifico DB geometrico e gestore lavorazioni
if ( m_pGeomDB == nullptr || m_pMchMgr == nullptr) if ( m_pGeomDB == nullptr || m_pMchMgr == nullptr)
+1 -1
View File
@@ -35,7 +35,7 @@ Machine::GetAllHeadsNames( STRVECTOR& vNames) const
vNames.push_back( snGro.first) ; vNames.push_back( snGro.first) ;
} }
// ordino alfabeticamente // ordino alfabeticamente
std::sort( vNames.begin(), vNames.end()) ; sort( vNames.begin(), vNames.end()) ;
return true ; return true ;
} }
+1 -1
View File
@@ -35,7 +35,7 @@ Machine::GetAllTablesNames( STRVECTOR& vNames) const
vNames.push_back( snGro.first) ; vNames.push_back( snGro.first) ;
} }
// ordino alfabeticamente // ordino alfabeticamente
std::sort( vNames.begin(), vNames.end()) ; sort( vNames.begin(), vNames.end()) ;
return true ; return true ;
} }
+2 -2
View File
@@ -889,7 +889,7 @@ MachiningsMgr::EncodeSpecialParams( MachiningData* pMach) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
MachiningsMgr::SetCurrMachiningParam( int nType, const std::string& sVal) MachiningsMgr::SetCurrMachiningParam( int nType, const string& sVal)
{ {
// deve esistere lavorazione corrente // deve esistere lavorazione corrente
if ( m_pCurrMach == nullptr) if ( m_pCurrMach == nullptr)
@@ -995,7 +995,7 @@ MachiningsMgr::GetCurrMachiningParam( int nType, double& dVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
MachiningsMgr::GetCurrMachiningParam( int nType, std::string& sVal) const MachiningsMgr::GetCurrMachiningParam( int nType, string& sVal) const
{ {
return ( ( m_pCurrMach != nullptr) ? m_pCurrMach->GetParam( nType, sVal) : false) ; return ( ( m_pCurrMach != nullptr) ? m_pCurrMach->GetParam( nType, sVal) : false) ;
} }
+2 -2
View File
@@ -75,7 +75,7 @@ enum nMillingKey {
KEY_WS, KEY_WS,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sMillingKey = { static const array<string,KEY_ZZZ> sMillingKey = {
"AB", "AB",
"AI", "AI",
"DH", "DH",
@@ -578,7 +578,7 @@ MillingData::VerifySideAngle( double dVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
MillingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const MillingData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;
+2 -2
View File
@@ -54,7 +54,7 @@ enum nMortisingKey {
KEY_WS, KEY_WS,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sMortisingKey = { static const array<string,KEY_ZZZ> sMortisingKey = {
"AB", "AB",
"AI", "AI",
"DH", "DH",
@@ -379,7 +379,7 @@ MortisingData::VerifyStepType( int nVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
MortisingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const MortisingData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;
+2 -2
View File
@@ -80,7 +80,7 @@ using namespace std ;
// 2458 = "Warning in Pocketing : machining depth (xxx) bigger than MaxMaterial (yyy)" // 2458 = "Warning in Pocketing : machining depth (xxx) bigger than MaxMaterial (yyy)"
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
static std::string KEY_OPEN = "OPEN" ; static string KEY_OPEN = "OPEN" ;
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
USEROBJ_REGISTER( GetOperationClass( OPER_POCKETING), Pocketing) ; USEROBJ_REGISTER( GetOperationClass( OPER_POCKETING), Pocketing) ;
@@ -2169,7 +2169,7 @@ Pocketing::CalcZigZag( const ICurveComposite* pOffs,
double dOe ; double dOe ;
} ; } ;
// raccolta di tratti // raccolta di tratti
typedef std::vector<std::vector<Section>> VECVECSECT ; typedef vector<vector<Section>> VECVECSECT ;
VECVECSECT vvSec ; VECVECSECT vvSec ;
vvSec.resize( nYStep + 1) ; vvSec.resize( nYStep + 1) ;
+2 -2
View File
@@ -57,7 +57,7 @@ enum nPocketingKey {
KEY_UUID, KEY_UUID,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sPocketingKey = { static const array<string,KEY_ZZZ> sPocketingKey = {
"AB", "AB",
"AI", "AI",
"DH", "DH",
@@ -404,7 +404,7 @@ PocketingData::VerifyLeadOutType( int nVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
PocketingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const PocketingData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;
+7 -7
View File
@@ -70,7 +70,7 @@ Processor::Init( MachMgr* pMchMgr)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
Processor::Run( const string& sOutFile, const std::string& sInfo) Processor::Run( const string& sOutFile, const string& sInfo)
{ {
// verifico ci sia una macchinata corrente // verifico ci sia una macchinata corrente
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr || m_pMachine == nullptr || if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr || m_pMachine == nullptr ||
@@ -684,11 +684,11 @@ Processor::ProcessToolData( void)
// altrimenti emetto direttamente gli utensili // altrimenti emetto direttamente gli utensili
else { else {
// ordino l'elenco degli utensili // ordino l'elenco degli utensili
std::sort( vTdata.begin(), vTdata.end(), []( const MyToolData& a, const MyToolData& b) sort( vTdata.begin(), vTdata.end(), []( const MyToolData& a, const MyToolData& b)
{ if ( a.sHead == b.sHead) { if ( a.sHead == b.sHead)
return a.nExit < b.nExit ; return a.nExit < b.nExit ;
else else
return a.sHead < b.sHead ; }) ; return a.sHead < b.sHead ; }) ;
// emetto l'elenco degli utensili // emetto l'elenco degli utensili
string sPrevHead ; int nPrevExit = 0 ; string sPrevTcPos ; string sPrevTool ; string sPrevHead ; int nPrevExit = 0 ; string sPrevTcPos ; string sPrevTool ;
for ( size_t i = 0 ; i < vTdata.size() ; ++ i) { for ( size_t i = 0 ; i < vTdata.size() ; ++ i) {
@@ -826,7 +826,7 @@ Processor::OnToolSelect( const string& sTool, const string& sHead, int nExit, co
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
Processor::OnToolDeselect( const std::string& sNextTool, const string& sNextHead, int nNextExit, const string& sNextTcPos) Processor::OnToolDeselect( const string& sNextTool, const string& sNextHead, int nNextExit, const string& sNextTcPos)
{ {
// assegno il prossimo utensile // assegno il prossimo utensile
bool bOk = m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_NEXTTOOL, sNextTool) ; bool bOk = m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_NEXTTOOL, sNextTool) ;
+4 -4
View File
@@ -57,8 +57,8 @@ using namespace std ;
// 2754 = "Warning in SawFinishing : Tool data changed (xx)" // 2754 = "Warning in SawFinishing : Tool data changed (xx)"
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
const std::string MCH_SECTION = "Sect" ; const string MCH_SECTION = "Sect" ;
const std::string MCH_GUIDE = "Guide" ; const string MCH_GUIDE = "Guide" ;
enum nCrvClass { enum nCrvClass {
CCL_SMALL = 0, CCL_SMALL = 0,
CCL_VERT = 1, CCL_VERT = 1,
@@ -1699,8 +1699,8 @@ SawFinishing::CalculateSection( int nSectGrpId, ICurve*& pSect)
return false ; return false ;
vIAsc.emplace_back( i, ptStart.x) ; vIAsc.emplace_back( i, ptStart.x) ;
} }
std::sort( vIAsc.begin(), vIAsc.end(), []( const INDASC& a, const INDASC& b) sort( vIAsc.begin(), vIAsc.end(), []( const INDASC& a, const INDASC& b)
{ return a.second > b.second ; }) ; { return a.second > b.second ; }) ;
// unisco le diverse curve (ora aperte) in un unico profilo // unisco le diverse curve (ora aperte) in un unico profilo
PtrOwner<ICurveComposite> pCurve( CreateCurveComposite()) ; PtrOwner<ICurveComposite> pCurve( CreateCurveComposite()) ;
+2 -2
View File
@@ -56,7 +56,7 @@ enum nSawFinishingKey {
KEY_UUID, KEY_UUID,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sSawFinishingKey = { static const array<string,KEY_ZZZ> sSawFinishingKey = {
"AB", "AB",
"AI", "AI",
"APPR", "APPR",
@@ -403,7 +403,7 @@ SawFinishingData::VerifyLeadLinkType( int nVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
SawFinishingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const SawFinishingData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;
+4 -4
View File
@@ -57,8 +57,8 @@ using namespace std ;
// 2654 = "Warning in SawRoughing : Tool data changed (xx)" // 2654 = "Warning in SawRoughing : Tool data changed (xx)"
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
const std::string MCH_SECTION = "Sect" ; const string MCH_SECTION = "Sect" ;
const std::string MCH_GUIDE = "Guide" ; const string MCH_GUIDE = "Guide" ;
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
USEROBJ_REGISTER( GetOperationClass( OPER_SAWROUGHING), SawRoughing) ; USEROBJ_REGISTER( GetOperationClass( OPER_SAWROUGHING), SawRoughing) ;
@@ -1371,8 +1371,8 @@ SawRoughing::CalculateSection( int nSectGrpId, ICurve*& pSect)
return false ; return false ;
vIAsc.emplace_back( i, ptStart.x) ; vIAsc.emplace_back( i, ptStart.x) ;
} }
std::sort( vIAsc.begin(), vIAsc.end(), []( const INDASC& a, const INDASC& b) sort( vIAsc.begin(), vIAsc.end(), []( const INDASC& a, const INDASC& b)
{ return a.second > b.second ; }) ; { return a.second > b.second ; }) ;
// unisco le diverse curve (ora aperte) in un unico profilo // unisco le diverse curve (ora aperte) in un unico profilo
PtrOwner<ICurveComposite> pCurve( CreateCurveComposite()) ; PtrOwner<ICurveComposite> pCurve( CreateCurveComposite()) ;
+2 -2
View File
@@ -54,7 +54,7 @@ enum nSawRoughingKey {
KEY_UUID, KEY_UUID,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sSawRoughingKey = { static const array<string,KEY_ZZZ> sSawRoughingKey = {
"AB", "AB",
"AI", "AI",
"APPR", "APPR",
@@ -379,7 +379,7 @@ SawRoughingData::VerifyLeadLinkType( int nVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
SawRoughingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const SawRoughingData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;
+19 -7
View File
@@ -1590,10 +1590,10 @@ Sawing::ProcessEntity( const ICurve* pCrvP, const ICurve* pCrvC, const ICurve* p
else { else {
if ( m_Params.m_nCurveUse == SAW_CRV_KEEP) { if ( m_Params.m_nCurveUse == SAW_CRV_KEEP) {
// verifico che non ci sia angolo di fianco // verifico che non ci sia angolo di fianco
if ( abs( m_Params.m_dSideAngle) > EPS_ANG_SMALL) { //if ( abs( m_Params.m_dSideAngle) > EPS_ANG_SMALL) {
m_pMchMgr->SetLastError( 2207, "Error in Sawing : SideAngle not allowed on Arc") ; // m_pMchMgr->SetLastError( 2207, "Error in Sawing : SideAngle not allowed on Arc") ;
return false ; // return false ;
} //}
// determino la convessità // determino la convessità
int nConv = 0 ; int nConv = 0 ;
for ( int i = 0 ; i < pCompo->GetCurveCount() ; ++ i) { for ( int i = 0 ; i < pCompo->GetCurveCount() ; ++ i) {
@@ -2126,7 +2126,17 @@ Sawing::ProcessExtCurve( const ICurve* pCrvP, const ICurveComposite* pCrvC, cons
return false ; return false ;
} }
// aggiungo affondamento (sempre in Z globale) // aggiungo affondamento (sempre in Z globale)
pCrv->Translate( - Z_AX * dDepth) ; double dDepthZ = dDepth ;
if ( abs( m_Params.m_dSideAngle) > EPS_ANG_SMALL)
dDepthZ *= cos( m_Params.m_dSideAngle * DEGTORAD) ;
pCrv->Translate( - Z_AX * dDepthZ) ;
// offset per taglio inclinato
if ( abs( m_Params.m_dSideAngle) > EPS_ANG_SMALL) {
double dOffs = dDepth * sin( abs( m_Params.m_dSideAngle) * DEGTORAD) ;
if ( m_Params.m_nHeadSide == SAW_HS_LEFT)
dOffs = - dOffs ;
pCrv->SimpleOffset( dOffs) ;
}
// calcolo elevazione (sui due bordi della striscia) // calcolo elevazione (sui due bordi della striscia)
double dElev = 0 ; double dElev = 0 ;
for ( const ICurve* pSmpCrv = pCrv->GetFirstCurve() ; for ( const ICurve* pSmpCrv = pCrv->GetFirstCurve() ;
@@ -2144,8 +2154,8 @@ Sawing::ProcessExtCurve( const ICurve* pCrvP, const ICurveComposite* pCrvC, cons
if ( ! CalculateToolAndCorrVersors( vtStaDir, m_Params.m_nHeadSide, m_Params.m_nWorkSide, m_Params.m_dSideAngle, vtStaTool, vtStaCorr) || if ( ! CalculateToolAndCorrVersors( vtStaDir, m_Params.m_nHeadSide, m_Params.m_nWorkSide, m_Params.m_dSideAngle, vtStaTool, vtStaCorr) ||
! CalculateToolAndCorrVersors( vtMidDir, m_Params.m_nHeadSide, m_Params.m_nWorkSide, m_Params.m_dSideAngle, vtMidTool, vtMidCorr) || ! CalculateToolAndCorrVersors( vtMidDir, m_Params.m_nHeadSide, m_Params.m_nWorkSide, m_Params.m_dSideAngle, vtMidTool, vtMidCorr) ||
! CalculateToolAndCorrVersors( vtEndDir, m_Params.m_nHeadSide, m_Params.m_nWorkSide, m_Params.m_dSideAngle, vtEndTool, vtEndCorr) || ! CalculateToolAndCorrVersors( vtEndDir, m_Params.m_nHeadSide, m_Params.m_nWorkSide, m_Params.m_dSideAngle, vtEndTool, vtEndCorr) ||
! AreSameVectorApprox( vtStaCorr, vtMidCorr) || abs( vtStaCorr.z - vtMidCorr.z) > EPS_SMALL ||
! AreSameVectorApprox( vtStaCorr, vtEndCorr)) { abs( vtStaCorr.z - vtEndCorr.z) > EPS_SMALL) {
m_pMchMgr->SetLastError( 2208, "Error in Sawing : Entity CalculateToolAndCorrVersors") ; m_pMchMgr->SetLastError( 2208, "Error in Sawing : Entity CalculateToolAndCorrVersors") ;
return false ; return false ;
} }
@@ -2580,6 +2590,7 @@ Sawing::GenerateExtCurveCl( const ICurveComposite* pCrv,
if ( m_Params.m_dStepExtArc < EPS_SMALL || ( dElev - dExtraCut) <= m_Params.m_dStepExtArc) { if ( m_Params.m_dStepExtArc < EPS_SMALL || ( dElev - dExtraCut) <= m_Params.m_dStepExtArc) {
// 1 -> approccio // 1 -> approccio
SetToolDir( vtStaTool) ; SetToolDir( vtStaTool) ;
SetCorrAuxDir( vtStaCorr) ;
Point3d ptP1 ; Point3d ptP1 ;
pCrv->GetStartPoint( ptP1) ; pCrv->GetStartPoint( ptP1) ;
if ( ! AddApproach( ptP1, vtStaCorr, dSafeZ, dElev, dAppr)) if ( ! AddApproach( ptP1, vtStaCorr, dSafeZ, dElev, dAppr))
@@ -2601,6 +2612,7 @@ Sawing::GenerateExtCurveCl( const ICurveComposite* pCrv,
Vector3d vtCurrTool, vtCurrCorr ; Vector3d vtCurrTool, vtCurrCorr ;
CalculateToolAndCorrVersors( vtCurrDir, m_Params.m_nHeadSide, m_Params.m_nWorkSide, m_Params.m_dSideAngle, vtCurrTool, vtCurrCorr) ; CalculateToolAndCorrVersors( vtCurrDir, m_Params.m_nHeadSide, m_Params.m_nWorkSide, m_Params.m_dSideAngle, vtCurrTool, vtCurrCorr) ;
SetToolDir( vtCurrTool) ; SetToolDir( vtCurrTool) ;
SetCorrAuxDir( vtCurrCorr) ;
if ( AddCurveMove( pSmpCrv, true) == GDB_ID_NULL) if ( AddCurveMove( pSmpCrv, true) == GDB_ID_NULL)
return false ; return false ;
} }
+2 -2
View File
@@ -65,7 +65,7 @@ enum nSawingKey {
KEY_WS, KEY_WS,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sSawingKey = { static const array<string,KEY_ZZZ> sSawingKey = {
"AB", "AB",
"AI", "AI",
"APPR", "APPR",
@@ -510,7 +510,7 @@ SawingData::VerifySideAngle( double dVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
SawingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const SawingData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;
+1 -1
View File
@@ -1327,7 +1327,7 @@ Simulator::OnToolSelect( const string& sTool, const string& sHead, int nExit, co
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
Simulator::OnToolDeselect( const std::string& sNextTool, const string& sNextHead, int nNextExit, const string& sNextTcPos) Simulator::OnToolDeselect( const string& sNextTool, const string& sNextHead, int nNextExit, const string& sNextTcPos)
{ {
// assegno il prossimo utensile // assegno il prossimo utensile
bool bOk = m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_NEXTTOOL, sNextTool) ; bool bOk = m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_NEXTTOOL, sNextTool) ;
+1 -1
View File
@@ -1447,7 +1447,7 @@ SurfFinishing::CalcZigZag( const ICurveComposite* pOffs,
double dOe ; double dOe ;
} ; } ;
// raccolta di tratti // raccolta di tratti
typedef std::vector<std::vector<Section>> VECVECSECT ; typedef vector<vector<Section>> VECVECSECT ;
VECVECSECT vvSec ; VECVECSECT vvSec ;
vvSec.resize( nYStep + 1) ; vvSec.resize( nYStep + 1) ;
+2 -2
View File
@@ -58,7 +58,7 @@ enum nSurfFinishingKey {
KEY_UUID, KEY_UUID,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sSurfFinishingKey = { static const array<string,KEY_ZZZ> sSurfFinishingKey = {
"AB", "AB",
"AI", "AI",
"APPR", "APPR",
@@ -420,7 +420,7 @@ SurfFinishingData::VerifyLeadOutType( int nVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
SurfFinishingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const SurfFinishingData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;
+1 -1
View File
@@ -57,7 +57,7 @@ enum nToolKey {
TK_UUID, TK_UUID,
TK_ZZZ} ; // rappresenta il numero di elementi TK_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,TK_ZZZ> sToolKey = { static const array<string,TK_ZZZ> sToolKey = {
"ABSMAX", "ABSMAX",
"COOLANT", "COOLANT",
"COR", "COR",
+1 -1
View File
@@ -502,7 +502,7 @@ ToolsMgr::VerifyTool( int nFamily, string& sName, int& nType) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
ToolsMgr::SetCurrTool( const std::string& sName) ToolsMgr::SetCurrTool( const string& sName)
{ {
// se nome vuoto, faccio reset // se nome vuoto, faccio reset
if ( sName.empty()) { if ( sName.empty()) {
+2 -2
View File
@@ -68,7 +68,7 @@ enum nWaterJetting {
KEY_WS, KEY_WS,
KEY_ZZZ} ; // rappresenta il numero di elementi KEY_ZZZ} ; // rappresenta il numero di elementi
static const std::array<std::string,KEY_ZZZ> sWaterJettingKey = { static const array<string,KEY_ZZZ> sWaterJettingKey = {
"AB", "AB",
"AI", "AI",
"CSL", "CSL",
@@ -539,7 +539,7 @@ WaterJettingData::VerifyThickRef( double dVal) const
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
bool bool
WaterJettingData::VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const WaterJettingData::VerifyTool( const ToolsMgr* pToolsMgr, const string& sVal, const ToolData*& pTdata) const
{ {
if ( pToolsMgr == nullptr) if ( pToolsMgr == nullptr)
return false ; return false ;