EgtMachKernel 1.6r8 :
- aggiunta gestione SCC (Solution Choice Criterion) nelle lavorazioni - possibilità di calcolo Tip con dimensioni massime anzichè quelle di lavoro - migliorato controllo pezzi prima di inserimento nei grezzi - migliorato caricamento tavola al cambio di gruppo di lavoro - aggiunta prima versione di risalita tra i percorsi di lavorazione in base a controllo collisioni (ora solo box) - in simulazione imposto variabile nome tavola prima di OnDispositionStart.
This commit is contained in:
+55
-2
@@ -17,6 +17,7 @@
|
||||
#include "MachiningDataFactory.h"
|
||||
#include "MachiningConst.h"
|
||||
#include "/EgtDev/Include/EmkToolConst.h"
|
||||
#include "/EgtDev/Include/EmkSimuGenConst.h"
|
||||
#include "/EgtDev/Include/EGnStringUtils.h"
|
||||
#include <array>
|
||||
#include <cassert>
|
||||
@@ -26,6 +27,7 @@ using namespace std ;
|
||||
//----------------------------------------------------------------------------
|
||||
enum nMillingKey {
|
||||
KEY_DH = 0,
|
||||
KEY_EAL,
|
||||
KEY_F,
|
||||
KEY_FE,
|
||||
KEY_FS,
|
||||
@@ -51,6 +53,8 @@ enum nMillingKey {
|
||||
KEY_PS,
|
||||
KEY_S,
|
||||
KEY_SA,
|
||||
KEY_SAL,
|
||||
KEY_SCC,
|
||||
KEY_ST,
|
||||
KEY_STY,
|
||||
KEY_TA,
|
||||
@@ -65,6 +69,7 @@ enum nMillingKey {
|
||||
|
||||
static const std::array<std::string,KEY_ZZZ> sMillingKey = {
|
||||
"DH",
|
||||
"EAL",
|
||||
"F",
|
||||
"FE",
|
||||
"FS",
|
||||
@@ -90,6 +95,8 @@ static const std::array<std::string,KEY_ZZZ> sMillingKey = {
|
||||
"PS",
|
||||
"S",
|
||||
"SA",
|
||||
"SAL",
|
||||
"SCC",
|
||||
"ST",
|
||||
"STY",
|
||||
"TA",
|
||||
@@ -136,6 +143,7 @@ MillingData::CopyFrom( const MachiningData* pMdata)
|
||||
m_sName = pSdata->m_sName ;
|
||||
m_ToolUuid = pSdata->m_ToolUuid ;
|
||||
m_sToolName = pSdata->m_sToolName ;
|
||||
m_nSolCh = pSdata->m_nSolCh ;
|
||||
m_dSpeed = pSdata->m_dSpeed ;
|
||||
m_dFeed = pSdata->m_dFeed ;
|
||||
m_dEndFeed = pSdata->m_dEndFeed ;
|
||||
@@ -151,6 +159,8 @@ MillingData::CopyFrom( const MachiningData* pMdata)
|
||||
m_dStep = pSdata->m_dStep ;
|
||||
m_nStepType = pSdata->m_nStepType ;
|
||||
m_dSideAngle = pSdata->m_dSideAngle ;
|
||||
m_dStartAddLen = pSdata->m_dStartAddLen ;
|
||||
m_dEndAddLen = pSdata->m_dEndAddLen ;
|
||||
m_bLeaveTab = pSdata->m_bLeaveTab ;
|
||||
m_dTabLen = pSdata->m_dTabLen ;
|
||||
m_dTabDist = pSdata->m_dTabDist ;
|
||||
@@ -187,6 +197,7 @@ MillingData::SameAs(const MachiningData* pMdata) const
|
||||
m_sName == pSdata->m_sName &&
|
||||
m_ToolUuid == pSdata->m_ToolUuid &&
|
||||
m_sToolName == pSdata->m_sToolName &&
|
||||
m_nSolCh == pSdata->m_nSolCh &&
|
||||
abs( m_dSpeed - pSdata->m_dSpeed) < EPS_MACH_ANG_PAR &&
|
||||
abs( m_dFeed - pSdata->m_dFeed) < EPS_MACH_LEN_PAR &&
|
||||
abs( m_dEndFeed - pSdata->m_dEndFeed) < EPS_MACH_LEN_PAR &&
|
||||
@@ -202,6 +213,8 @@ MillingData::SameAs(const MachiningData* pMdata) const
|
||||
abs( m_dStep - pSdata->m_dStep) < EPS_MACH_LEN_PAR &&
|
||||
m_nStepType == pSdata->m_nStepType &&
|
||||
abs( m_dSideAngle - pSdata->m_dSideAngle) < EPS_MACH_ANG_PAR &&
|
||||
abs( m_dStartAddLen - pSdata->m_dStartAddLen) < EPS_MACH_LEN_PAR &&
|
||||
abs( m_dEndAddLen - pSdata->m_dEndAddLen) < EPS_MACH_LEN_PAR &&
|
||||
m_bLeaveTab == pSdata->m_bLeaveTab &&
|
||||
abs( m_dTabLen - pSdata->m_dTabLen) < EPS_MACH_LEN_PAR &&
|
||||
abs( m_dTabDist - pSdata->m_dTabDist) < EPS_MACH_LEN_PAR &&
|
||||
@@ -262,6 +275,9 @@ MillingData::FromString( const string& sString, int& nKey)
|
||||
if ( m_sDepth.empty())
|
||||
m_sDepth = "0" ;
|
||||
break ;
|
||||
case KEY_EAL :
|
||||
bOk = ::FromString( sVal, m_dEndAddLen) ;
|
||||
break ;
|
||||
case KEY_F :
|
||||
bOk = ::FromString( sVal, m_dFeed) ;
|
||||
break ;
|
||||
@@ -338,6 +354,12 @@ MillingData::FromString( const string& sString, int& nKey)
|
||||
case KEY_SA :
|
||||
bOk = ::FromString( sVal, m_dSideAngle) ;
|
||||
break ;
|
||||
case KEY_SAL :
|
||||
bOk = ::FromString( sVal, m_dStartAddLen) ;
|
||||
break ;
|
||||
case KEY_SCC :
|
||||
bOk = ::FromString( sVal, m_nSolCh) ;
|
||||
break ;
|
||||
case KEY_ST :
|
||||
bOk = ::FromString( sVal, m_dStep) ;
|
||||
break ;
|
||||
@@ -381,6 +403,7 @@ MillingData::ToString( int nInd) const
|
||||
{
|
||||
switch ( nInd) {
|
||||
case KEY_DH : return ( sMillingKey[KEY_DH] + "=" + m_sDepth) ;
|
||||
case KEY_EAL : return ( sMillingKey[KEY_EAL] + "=" + ::ToString( m_dEndAddLen)) ;
|
||||
case KEY_F : return ( sMillingKey[KEY_F] + "=" + ::ToString( m_dFeed)) ;
|
||||
case KEY_FE : return ( sMillingKey[KEY_FE] + "=" + ::ToString( m_dEndFeed)) ;
|
||||
case KEY_FS : return ( sMillingKey[KEY_FS] + "=" + ::ToString( m_dStartFeed)) ;
|
||||
@@ -406,6 +429,8 @@ MillingData::ToString( int nInd) const
|
||||
case KEY_PS : return ( sMillingKey[KEY_PS] + "=" + ::ToString( m_dStartPos)) ;
|
||||
case KEY_S : return ( sMillingKey[KEY_S] + "=" + ::ToString( m_dSpeed)) ;
|
||||
case KEY_SA : return ( sMillingKey[KEY_SA] + "=" + ::ToString( m_dSideAngle)) ;
|
||||
case KEY_SAL : return ( sMillingKey[KEY_SAL] + "=" + ::ToString( m_dStartAddLen)) ;
|
||||
case KEY_SCC : return ( sMillingKey[KEY_SCC] + "=" + ::ToString( m_nSolCh)) ;
|
||||
case KEY_ST : return ( sMillingKey[KEY_ST] + "=" + ::ToString( m_dStep)) ;
|
||||
case KEY_STY : return ( sMillingKey[KEY_STY] + "=" + ::ToString( m_nStepType)) ;
|
||||
case KEY_TA : return ( sMillingKey[KEY_TA] + "=" + ::ToString( m_dTabAngle)) ;
|
||||
@@ -424,8 +449,16 @@ MillingData::ToString( int nInd) const
|
||||
bool
|
||||
MillingData::IsOptional( int nKey) const
|
||||
{
|
||||
return ( nKey == KEY_F || nKey == KEY_FE || nKey == KEY_FS || nKey == KEY_FT ||
|
||||
nKey == KEY_NNS || nKey == KEY_NNU || nKey == KEY_OL || nKey == KEY_OR || nKey == KEY_S) ;
|
||||
return ( nKey == KEY_EAL || nKey == KEY_F || nKey == KEY_FE || nKey == KEY_FS || nKey == KEY_FT ||
|
||||
nKey == KEY_NNS || nKey == KEY_NNU || nKey == KEY_OL || nKey == KEY_OR || nKey == KEY_S ||
|
||||
nKey == KEY_SAL || nKey == KEY_SCC) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MillingData::VerifySolCh( int nVal) const
|
||||
{
|
||||
return IsValidOperationScc( nVal) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -529,6 +562,11 @@ MillingData::SetParam( int nType, int nVal)
|
||||
return false ;
|
||||
m_nLeadOutType = nVal ;
|
||||
return true ;
|
||||
case MPA_SCC :
|
||||
if ( ! VerifySolCh( nVal))
|
||||
return false ;
|
||||
m_nSolCh = nVal ;
|
||||
return true ;
|
||||
}
|
||||
return false ;
|
||||
}
|
||||
@@ -576,6 +614,12 @@ MillingData::SetParam( int nType, double dVal)
|
||||
return false ;
|
||||
m_dSideAngle = dVal ;
|
||||
return true ;
|
||||
case MPA_STARTADDLEN :
|
||||
m_dStartAddLen = dVal ;
|
||||
return true ;
|
||||
case MPA_ENDADDLEN :
|
||||
m_dEndAddLen = dVal ;
|
||||
return true ;
|
||||
case MPA_TABLEN :
|
||||
m_dTabLen = dVal ;
|
||||
return true ;
|
||||
@@ -688,6 +732,9 @@ MillingData::GetParam( int nType, int& nVal) const
|
||||
case MPA_LEADOUTTYPE :
|
||||
nVal = m_nLeadOutType ;
|
||||
return true ;
|
||||
case MPA_SCC :
|
||||
nVal = m_nSolCh ;
|
||||
return true ;
|
||||
}
|
||||
return false ;
|
||||
}
|
||||
@@ -730,6 +777,12 @@ MillingData::GetParam( int nType, double& dVal) const
|
||||
case MPA_SIDEANGLE :
|
||||
dVal = m_dSideAngle ;
|
||||
return true ;
|
||||
case MPA_STARTADDLEN :
|
||||
dVal = m_dStartAddLen ;
|
||||
return true ;
|
||||
case MPA_ENDADDLEN :
|
||||
dVal = m_dEndAddLen ;
|
||||
return true ;
|
||||
case MPA_TABLEN :
|
||||
dVal = m_dTabLen ;
|
||||
return true ;
|
||||
|
||||
Reference in New Issue
Block a user