EgtMachKernel 1.8j5 :

- modifiche a drilling per invertire fori e impostare max profondità
- aggiunta possibilità di MachiningApply e MachiningUpdate senza PostApply.
This commit is contained in:
Dario Sassi
2017-10-24 18:16:57 +00:00
parent 8d501a639f
commit 0796deb027
20 changed files with 78 additions and 72 deletions
+4 -4
View File
@@ -429,7 +429,7 @@ Chiseling::Preview( bool bRecalc)
//----------------------------------------------------------------------------
bool
Chiseling::Apply( bool bRecalc)
Chiseling::Apply( bool bRecalc, bool bPostApply)
{
// reset numero scalpellature generate
m_nChisels = 0 ;
@@ -490,12 +490,12 @@ Chiseling::Apply( bool bRecalc)
}
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
return Update() ;
return Update( bPostApply) ;
}
//----------------------------------------------------------------------------
bool
Chiseling::Update( void)
Chiseling::Update( bool bPostApply)
{
// verifico validità gestore DB geometrico e Id del gruppo
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
@@ -541,7 +541,7 @@ Chiseling::Update( void)
}
// esecuzione eventuali personalizzazioni
if ( ! PostApply()) {
if ( bPostApply && ! PostApply()) {
m_pMchMgr->SetLastError( 2912, "Error in Chiseling : post apply not calculable") ;
return false ;
}
+2 -2
View File
@@ -52,8 +52,8 @@ class Chiseling : public Machining
bool SetParam( int nType, const std::string& sVal) override ;
bool SetGeometry( const SELVECTOR& vIds) override ;
bool Preview( bool bRecalc) override ;
bool Apply( bool bRecalc) override ;
bool Update( void) override ;
bool Apply( bool bRecalc, bool bPostApply) override ;
bool Update( bool bPostApply) override ;
bool GetParam( int nType, bool& bVal) const override ;
bool GetParam( int nType, int& nVal) const override ;
bool GetParam( int nType, double& dVal) const override ;
+24 -18
View File
@@ -48,15 +48,16 @@ using namespace std ;
//----------------------------------------------------------------------------
struct Hole
{
int nOriId ; // identificativo della geometria di origine
Point3d ptIni ; // punto iniziale
Vector3d vtDir ; // direzione di riferimento (dal fondo verso l'inizio)
double dDiam ; // diametro
double dLen ; // lunghezza dell'asse
bool bBlind ; // flag per cieco/passante
// eventuale tipo ( standard, ribassato, svasato)
int nOriId ; // identificativo della geometria di origine
Point3d ptIni ; // punto iniziale
Vector3d vtDir ; // direzione di riferimento (dal fondo verso l'inizio)
double dDiam ; // diametro
double dThick ; // lunghezza della geometria originale
double dLen ; // lunghezza dell'asse
bool bBlind ; // flag per cieco/passante
// eventuale tipo ( standard, ribassato, svasato) ?
Hole( void)
: nOriId( GDB_ID_NULL), ptIni(), vtDir(), dDiam( 0), dLen( 0), bBlind( true) {}
: nOriId( GDB_ID_NULL), ptIni(), vtDir(), dDiam( 0), dThick( 0), dLen( 0), bBlind( true) {}
} ;
//----------------------------------------------------------------------------
@@ -443,7 +444,7 @@ Drilling::Preview( bool bRecalc)
//----------------------------------------------------------------------------
bool
Drilling::Apply( bool bRecalc)
Drilling::Apply( bool bRecalc, bool bPostApply)
{
// reset numero forature nella lavorazione
m_nDrillings = 0 ;
@@ -486,12 +487,12 @@ Drilling::Apply( bool bRecalc)
return false ;
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
return Update() ;
return Update( bPostApply) ;
}
//----------------------------------------------------------------------------
bool
Drilling::Update( void)
Drilling::Update( bool bPostApply)
{
// verifico validità gestore DB geometrico e Id del gruppo
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
@@ -537,7 +538,7 @@ Drilling::Update( void)
}
// esecuzione eventuali personalizzazioni
if ( ! PostApply()) {
if ( bPostApply && ! PostApply()) {
m_pMchMgr->SetLastError( 2113, "Error in Drilling : post apply not calculable") ;
return false ;
}
@@ -901,12 +902,17 @@ Drilling::GenerateHoleCl( int nInd, const SelData& nCircId, const string& sPName
}
// se richiesta inversione e foro passante, provvedo
if ( m_Params.m_bInvert && ! hole.bBlind) {
hole.ptIni -= hole.vtDir * hole.dLen ;
hole.ptIni -= hole.vtDir * hole.dThick ;
hole.vtDir.Invert() ;
}
// se lavorazione del foro non arriva al suo fondo, lo considero cieco
if ( hole.dLen < hole.dThick - 10 * EPS_SMALL)
hole.bBlind = true ;
// limito lunghezza foro a massima lavorazione della punta
if ( hole.dLen > m_TParams.m_dMaxMat + EPS_SMALL) {
double dAddLen = ( hole.bBlind ? 0 : m_Params.m_dThroughAddLen) ;
if ( ( hole.dLen + dAddLen) > m_TParams.m_dMaxMat + EPS_SMALL) {
hole.dLen = m_TParams.m_dMaxMat ;
hole.bBlind = true ;
string sOut = "Drill bit too short for Hole " + ToString( nCircId) ;
LOG_INFO( GetEMkLogger(), sOut.c_str()) ;
}
@@ -1250,21 +1256,21 @@ Drilling::GetHoleData( SelData Id, Hole& hole)
// ne recupero il centro
hole.ptIni = pArc->GetCenter() + ( dThick > 0 ? vtExtr * dThick : V_NULL) ;
hole.ptIni.ToGlob( frGlob) ;
// ne recupero versore direzione e lunghezza
// ne recupero versore direzione e lunghezze
hole.vtDir = vtExtr ;
hole.vtDir.ToGlob( frGlob) ;
hole.vtDir.Normalize() ;
hole.dThick = abs( dThick) ;
hole.dLen = abs( dDepth) ;
// per default è cieco
hole.bBlind = true ;
// se verticale ed arriva fino al fondo grezzo, allora passante
if ( hole.vtDir.IsZplus() && hole.dLen > dRbDist - EPS_SMALL)
if ( hole.vtDir.IsZplus() && hole.dThick > dRbDist - EPS_SMALL)
hole.bBlind = false ;
// altrimenti determino la distanza del fondo del foro dal bordo del grezzo
else {
Point3d ptEnd = hole.ptIni - hole.vtDir * hole.dLen ;
double dElev ;
if ( GetElevation( m_nPhase, hole.ptIni, - hole.vtDir, dElev) && dElev <= hole.dLen + 10)
if ( GetElevation( m_nPhase, hole.ptIni, - hole.vtDir, dElev) && dElev <= hole.dThick + 10)
hole.bBlind = false ;
}
return true ;
+2 -2
View File
@@ -52,8 +52,8 @@ class Drilling : public Machining
bool SetParam( int nType, const std::string& sVal) override ;
bool SetGeometry( const SELVECTOR& vIds) override ;
bool Preview( bool bRecalc) override ;
bool Apply( bool bRecalc) override ;
bool Update( void) override ;
bool Apply( bool bRecalc, bool bPostApply) override ;
bool Update( bool bPostApply) override ;
bool GetParam( int nType, bool& bVal) const override ;
bool GetParam( int nType, int& nVal) const override ;
bool GetParam( int nType, double& dVal) const override ;
BIN
View File
Binary file not shown.
+4 -4
View File
@@ -457,7 +457,7 @@ GenMachining::Preview( bool bRecalc)
//----------------------------------------------------------------------------
bool
GenMachining::Apply( bool bRecalc)
GenMachining::Apply( bool bRecalc, bool bPostApply)
{
// reset numero percorsi di lavoro generati
m_nMills = 0 ;
@@ -539,12 +539,12 @@ GenMachining::Apply( bool bRecalc)
}
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
return Update() ;
return Update( bPostApply) ;
}
//----------------------------------------------------------------------------
bool
GenMachining::Update( void)
GenMachining::Update( bool bPostApply)
{
// verifico validità gestore DB geometrico e Id del gruppo
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
@@ -592,7 +592,7 @@ GenMachining::Update( void)
}
// esecuzione eventuali personalizzazioni
if ( ! PostApply()) {
if ( bPostApply && ! PostApply()) {
m_pMchMgr->SetLastError( 2808, "Error in GenMachining : post apply not calculable") ;
return false ;
}
+2 -2
View File
@@ -51,8 +51,8 @@ class GenMachining : public Machining
bool SetParam( int nType, const std::string& sVal) override ;
bool SetGeometry( const SELVECTOR& vIds) override ;
bool Preview( bool bRecalc) override ;
bool Apply( bool bRecalc) override ;
bool Update( void) override ;
bool Apply( bool bRecalc, bool bPostApply) override ;
bool Update( bool bPostApply) override ;
bool GetParam( int nType, bool& bVal) const override ;
bool GetParam( int nType, int& nVal) const override ;
bool GetParam( int nType, double& dVal) const override ;
+2 -2
View File
@@ -247,8 +247,8 @@ class MachMgr : public IMachMgr
bool MachiningPreview( bool bRecalc) override ;
bool ExistsMachiningPreview( void) override ;
bool RemoveMachiningPreview( void) override ;
bool MachiningApply( bool bRecalc) override ;
bool MachiningUpdate( void) override ;
bool MachiningApply( bool bRecalc, bool bPostApply = true) override ;
bool MachiningUpdate( bool bPostApply = true) override ;
bool GetMachiningParam( int nType, bool& bVal) const override ;
bool GetMachiningParam( int nType, int& dVal) const override ;
bool GetMachiningParam( int nType, double& dVal) const override ;
+4 -4
View File
@@ -870,7 +870,7 @@ MachMgr::RemoveMachiningPreview( void)
//----------------------------------------------------------------------------
bool
MachMgr::MachiningApply( bool bRecalc)
MachMgr::MachiningApply( bool bRecalc, bool bPostApply)
{
ResetLastError() ;
if ( GetCurrMachine() != nullptr)
@@ -894,12 +894,12 @@ MachMgr::MachiningApply( bool bRecalc)
// imposto visualizzazione completa della macchina come temporaneamente corrente
SetTempMachLook TmpMachLook( this, MCH_LOOK_ALL) ;
// calcolo la lavorazione
return pMch->Apply( bRecalc) ;
return pMch->Apply( bRecalc, bPostApply) ;
}
//----------------------------------------------------------------------------
bool
MachMgr::MachiningUpdate( void)
MachMgr::MachiningUpdate( bool bPostApply)
{
ResetLastError() ;
// recupero la lavorazione corrente
@@ -921,7 +921,7 @@ MachMgr::MachiningUpdate( void)
// imposto visualizzazione completa della macchina come temporaneamente corrente
SetTempMachLook TmpMachLook( this, MCH_LOOK_ALL) ;
// aggiorno valori assi macchina e collegamento con operazione precedente
return pMch->Update() ;
return pMch->Update( bPostApply) ;
}
//----------------------------------------------------------------------------
+2 -2
View File
@@ -34,8 +34,8 @@ class Machining : public Operation
virtual bool SetParam( int nType, const std::string& sVal) = 0 ;
virtual bool SetGeometry( const SELVECTOR& vIds) = 0 ;
virtual bool Preview( bool bRecalc) = 0 ;
virtual bool Apply( bool bRecalc) = 0 ;
virtual bool Update( void) = 0 ;
virtual bool Apply( bool bRecalc, bool bPostApply) = 0 ;
virtual bool Update( bool bPostApply) = 0 ;
virtual bool GetParam( int nType, bool& bVal) const = 0 ;
virtual bool GetParam( int nType, int& nVal) const = 0 ;
virtual bool GetParam( int nType, double& dVal) const = 0 ;
+4 -4
View File
@@ -490,7 +490,7 @@ Milling::Preview( bool bRecalc)
//----------------------------------------------------------------------------
bool
Milling::Apply( bool bRecalc)
Milling::Apply( bool bRecalc, bool bPostApply)
{
// reset numero percorsi di lavoro generati
m_nMills = 0 ;
@@ -551,7 +551,7 @@ Milling::Apply( bool bRecalc)
}
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
if ( ! Update())
if ( ! Update( bPostApply))
return false ;
//// imposto l'utensile per l'anteprima !!! provvisorio per test !!!
@@ -564,7 +564,7 @@ Milling::Apply( bool bRecalc)
//----------------------------------------------------------------------------
bool
Milling::Update( void)
Milling::Update( bool bPostApply)
{
// verifico validità gestore DB geometrico e Id del gruppo
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
@@ -610,7 +610,7 @@ Milling::Update( void)
}
// esecuzione eventuali personalizzazioni
if ( ! PostApply()) {
if ( bPostApply && ! PostApply()) {
m_pMchMgr->SetLastError( 2321, "Error in Milling : post apply not calculable") ;
return false ;
}
+2 -2
View File
@@ -51,8 +51,8 @@ class Milling : public Machining
bool SetParam( int nType, const std::string& sVal) override ;
bool SetGeometry( const SELVECTOR& vIds) override ;
bool Preview( bool bRecalc) override ;
bool Apply( bool bRecalc) override ;
bool Update( void) override ;
bool Apply( bool bRecalc, bool bPostApply) override ;
bool Update( bool bPostApply) override ;
bool GetParam( int nType, bool& bVal) const override ;
bool GetParam( int nType, int& nVal) const override ;
bool GetParam( int nType, double& dVal) const override ;
+4 -4
View File
@@ -464,7 +464,7 @@ Pocketing::Preview( bool bRecalc)
//----------------------------------------------------------------------------
bool
Pocketing::Apply( bool bRecalc)
Pocketing::Apply( bool bRecalc, bool bPostApply)
{
// reset numero percorsi di svuotatura generati
m_nPockets = 0 ;
@@ -528,7 +528,7 @@ Pocketing::Apply( bool bRecalc)
return false ;
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
if ( ! Update())
if ( ! Update( bPostApply))
return false ;
//// imposto l'utensile per l'anteprima !!! provvisorio per test !!!
@@ -541,7 +541,7 @@ Pocketing::Apply( bool bRecalc)
//----------------------------------------------------------------------------
bool
Pocketing::Update( void)
Pocketing::Update( bool bPostApply)
{
// verifico validità gestore DB geometrico e Id del gruppo
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
@@ -587,7 +587,7 @@ Pocketing::Update( void)
}
// esecuzione eventuali personalizzazioni
if ( ! PostApply()) {
if ( bPostApply && ! PostApply()) {
m_pMchMgr->SetLastError( 2427, "Error in Pocketing : post apply not calculable") ;
return false ;
}
+2 -2
View File
@@ -52,8 +52,8 @@ class Pocketing : public Machining
bool SetParam( int nType, const std::string& sVal) override ;
bool SetGeometry( const SELVECTOR& vIds) override ;
bool Preview( bool bRecalc) override ;
bool Apply( bool bRecalc) override ;
bool Update( void) override ;
bool Apply( bool bRecalc, bool bPostApply) override ;
bool Update( bool bPostApply) override ;
bool GetParam( int nType, bool& bVal) const override ;
bool GetParam( int nType, int& nVal) const override ;
bool GetParam( int nType, double& dVal) const override ;
+5 -5
View File
@@ -399,12 +399,12 @@ bool
SawFinishing::Preview( bool bRecalc)
{
// non esiste preview, si fa apply
return Apply( bRecalc) ;
return Apply( bRecalc, false) ;
}
//----------------------------------------------------------------------------
bool
SawFinishing::Apply( bool bRecalc)
SawFinishing::Apply( bool bRecalc, bool bPostApply)
{
// reset numero tagli nella lavorazione
m_nCuts = 0 ;
@@ -467,12 +467,12 @@ SawFinishing::Apply( bool bRecalc)
}
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
return Update() ;
return Update( bPostApply) ;
}
//----------------------------------------------------------------------------
bool
SawFinishing::Update( void)
SawFinishing::Update( bool bPostApply)
{
// verifico validità gestore DB geometrico e Id del gruppo
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
@@ -518,7 +518,7 @@ SawFinishing::Update( void)
}
// esecuzione eventuali personalizzazioni
if ( ! PostApply()) {
if ( bPostApply && ! PostApply()) {
m_pMchMgr->SetLastError( 2714, "Error in SawFinishing : post apply not calculable") ;
return false ;
}
+2 -2
View File
@@ -54,8 +54,8 @@ class SawFinishing : public Machining
bool SetParam( int nType, const std::string& sVal) override ;
bool SetGeometry( const SELVECTOR& vIds) override ;
bool Preview( bool bRecalc) override ;
bool Apply( bool bRecalc) override ;
bool Update( void) override ;
bool Apply( bool bRecalc, bool bPostApply) override ;
bool Update( bool bPostApply) override ;
bool GetParam( int nType, bool& bVal) const override ;
bool GetParam( int nType, int& nVal) const override ;
bool GetParam( int nType, double& dVal) const override ;
+5 -5
View File
@@ -384,12 +384,12 @@ bool
SawRoughing::Preview( bool bRecalc)
{
// non esiste preview, si fa apply
return Apply( bRecalc) ;
return Apply( bRecalc, false) ;
}
//----------------------------------------------------------------------------
bool
SawRoughing::Apply( bool bRecalc)
SawRoughing::Apply( bool bRecalc, bool bPostApply)
{
// reset numero tagli nella lavorazione
m_nCuts = 0 ;
@@ -443,12 +443,12 @@ SawRoughing::Apply( bool bRecalc)
m_nCuts = 1 ;
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
return Update() ;
return Update( bPostApply) ;
}
//----------------------------------------------------------------------------
bool
SawRoughing::Update( void)
SawRoughing::Update( bool bPostApply)
{
// verifico validità gestore DB geometrico e Id del gruppo
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
@@ -494,7 +494,7 @@ SawRoughing::Update( void)
}
// esecuzione eventuali personalizzazioni
if ( ! PostApply()) {
if ( bPostApply && ! PostApply()) {
m_pMchMgr->SetLastError( 2614, "Error in SawRoughing : post apply not calculable") ;
return false ;
}
+2 -2
View File
@@ -54,8 +54,8 @@ class SawRoughing : public Machining
bool SetParam( int nType, const std::string& sVal) override ;
bool SetGeometry( const SELVECTOR& vIds) override ;
bool Preview( bool bRecalc) override ;
bool Apply( bool bRecalc) override ;
bool Update( void) override ;
bool Apply( bool bRecalc, bool bPostApply) override ;
bool Update( bool bPostApply) override ;
bool GetParam( int nType, bool& bVal) const override ;
bool GetParam( int nType, int& nVal) const override ;
bool GetParam( int nType, double& dVal) const override ;
+4 -4
View File
@@ -492,7 +492,7 @@ Sawing::Preview( bool bRecalc)
//----------------------------------------------------------------------------
bool
Sawing::Apply( bool bRecalc)
Sawing::Apply( bool bRecalc, bool bPostApply)
{
// reset numero tagli nella lavorazione
m_nCuts = 0 ;
@@ -557,12 +557,12 @@ Sawing::Apply( bool bRecalc)
}
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
return Update() ;
return Update( bPostApply) ;
}
//----------------------------------------------------------------------------
bool
Sawing::Update( void)
Sawing::Update( bool bPostApply)
{
// verifico validità gestore DB geometrico e Id del gruppo
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
@@ -608,7 +608,7 @@ Sawing::Update( void)
}
// esecuzione eventuali personalizzazioni
if ( ! PostApply()) {
if ( bPostApply && ! PostApply()) {
m_pMchMgr->SetLastError( 2219, "Error in Sawing : post apply not calculable") ;
return false ;
}
+2 -2
View File
@@ -54,8 +54,8 @@ class Sawing : public Machining
bool SetParam( int nType, const std::string& sVal) override ;
bool SetGeometry( const SELVECTOR& vIds) override ;
bool Preview( bool bRecalc) override ;
bool Apply( bool bRecalc) override ;
bool Update( void) override ;
bool Apply( bool bRecalc, bool bPostApply) override ;
bool Update( bool bPostApply) override ;
bool GetParam( int nType, bool& bVal) const override ;
bool GetParam( int nType, int& nVal) const override ;
bool GetParam( int nType, double& dVal) const override ;