EgtMachKernel :

- prima versione della lavorazione di finitura superficie.
This commit is contained in:
Dario Sassi
2019-06-03 11:12:34 +00:00
parent 3ab2a89595
commit 1e5962420e
5 changed files with 1798 additions and 4 deletions
+2
View File
@@ -282,6 +282,7 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="Head.cpp" />
<ClCompile Include="SurfFinishing.cpp" />
<ClCompile Include="SurfFinishingData.cpp" />
<ClCompile Include="Table.cpp" />
<ClCompile Include="ToolData.cpp" />
@@ -423,6 +424,7 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
<ClInclude Include="Simulator.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="Head.h" />
<ClInclude Include="SurfFinishing.h" />
<ClInclude Include="SurfFinishingData.h" />
<ClInclude Include="Table.h" />
<ClInclude Include="ToolData.h" />
+6
View File
@@ -219,6 +219,9 @@
<ClCompile Include="SurfFinishingData.cpp">
<Filter>Source Files\Machinings</Filter>
</ClCompile>
<ClCompile Include="SurfFinishing.cpp">
<Filter>Source Files\Operations</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="DllMain.h">
@@ -638,6 +641,9 @@
<ClInclude Include="SurfFinishingData.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SurfFinishing.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="EgtMachKernel.rc">
+12 -4
View File
@@ -1,13 +1,13 @@
//----------------------------------------------------------------------------
// EgalTech 2017-2017
// EgalTech 2017-2019
//----------------------------------------------------------------------------
// File : OperationConst.h Data : 17.08.17 Versione : 1.8h1
// File : OperationConst.h Data : 28.05.19 Versione : 2.1e5
// Contenuto : Costanti per le operazioni.
//
//
//
// Modifiche : 17.08.17 DS Creazione modulo.
//
// 25.05.19 DS Aggiunte SurfRoughing e SurfFinishing.
//
//----------------------------------------------------------------------------
@@ -28,7 +28,9 @@ static const std::string s_OpeClass[] = {"",
"EMkSawRoughing",
"EMkSawFinishing",
"EMkGenMachining",
"EMkChiseling"} ;
"EMkChiseling",
"EMkSurfRoughing",
"EMkSurfFinishing"} ;
//----------------------------------------------------------------------------
// Dal tipo numerico restituisce la classe della operazione
@@ -46,6 +48,8 @@ GetOperationClass( int nOpeType)
case OPER_SAWFINISHING : return s_OpeClass[8] ;
case OPER_GENMACHINING : return s_OpeClass[9] ;
case OPER_CHISELING : return s_OpeClass[10] ;
case OPER_SURFROUGHING : return s_OpeClass[11] ;
case OPER_SURFFINISHING : return s_OpeClass[12] ;
}
return s_OpeClass[0] ;
}
@@ -75,6 +79,10 @@ GetOperationType( const std::string& sOpeClass)
return OPER_GENMACHINING ;
else if ( sOpeClass == s_OpeClass[10])
return OPER_CHISELING ;
else if ( sOpeClass == s_OpeClass[11])
return OPER_SURFROUGHING ;
else if ( sOpeClass == s_OpeClass[12])
return OPER_SURFFINISHING ;
else
return OPER_NULL ;
}
+1669
View File
File diff suppressed because it is too large Load Diff
+109
View File
@@ -0,0 +1,109 @@
//----------------------------------------------------------------------------
// EgalTech 2019-2019
//----------------------------------------------------------------------------
// File : SurfFinishing.h Data : 28.05.19 Versione : 2.1e5
// Contenuto : Dichiarazione della classe SurfFinishing.
//
//
//
// Modifiche : 28.05.19 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "Machining.h"
#include "SurfFinishingData.h"
#include "ToolData.h"
#include "MachiningConst.h"
#include "/EgtDev/Include/EGkCurveComposite.h"
#include "/EgtDev/Include/EgtNumUtils.h"
//----------------------------------------------------------------------------
class SurfFinishing : public Machining
{
public : // IUserObj
SurfFinishing* 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 ToSave( void) const override
{ return true ; }
bool Save( int nBaseId, STRVECTOR& vString) const override ;
bool Load( const STRVECTOR& vString, int nBaseGdbId) override ;
public : // Operation
int GetType( void) const override
{ return OPER_SAWFINISHING ; }
bool IsEmpty( void) const override
{ return ( m_nPaths == 0) ; }
bool UpdateStatus( int nModif) override
{ m_nStatus |= nModif ; return true ; }
protected : // Operation
int GetSolCh( void) const override
{ return m_Params.m_nSolCh ; }
bool AdjustEndPointForAxesCalc( const CamData* pCamData, Point3d& ptP) const override ;
public : // Machining
bool Prepare( const std::string& sSawName) override ;
bool SetParam( int nType, bool bVal) override ;
bool SetParam( int nType, int nVal) override ;
bool SetParam( int nType, double dVal) override ;
bool SetParam( int nType, const std::string& sVal) override ;
bool SetGeometry( const SELVECTOR& vIds) override ;
bool Preview( bool bRecalc) 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 ;
bool GetParam( int nType, std::string& sVal) const override ;
bool UpdateToolData( bool* pbChanged = nullptr) override ;
const ToolData& GetToolData( void) const override ;
bool GetGeometry( SELVECTOR& vIds) const override ;
public :
SurfFinishing( void) ;
private :
bool VerifyGeometry( SelData Id, int& nSubs) ;
bool GetCurves( SelData Id, ICURVEPLIST& lstPC) ;
bool Chain( int nGrpDestId) ;
bool ProcessPath( int nPathId, int nPvId, int nClId) ;
bool AddZigZag( const ICurveComposite* pCompo, const Vector3d& vtTool, const Vector3d& vtExtr,
double dDepth, double dElev, bool bSplitArcs) ;
bool CalcZigZag( const ICurveComposite* pOffs, ICRVCOMPOPOVECTOR& vpCrvs) ;
bool AddApproach( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ, double dElev, double dAppr) ;
bool AddLinkApproach( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ, double dElev, double dAppr) ;
bool AddLinkRetract( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ, double dElev, double dAppr) ;
bool AddRetract( const Point3d& ptP, const Vector3d& vtTool, double dSafeZ, double dElev, double dAppr) ;
bool CalcLeadInStart( const Point3d& ptStart, const Vector3d& vtStart, const Vector3d& vtN, Point3d& ptP1) ;
bool AddLeadIn( const Point3d& ptP1, const Point3d& ptStart, const Vector3d& vtStart, const Vector3d& vtN) ;
bool AddLeadOut( const Point3d& ptEnd, const Vector3d& vtEnd, const Vector3d& vtN, Point3d& ptP1) ;
private :
double GetSpeed() const
{ return ( IsNullAngValue( m_Params.m_dSpeed) ? m_TParams.m_dSpeed : m_Params.m_dSpeed) ; }
double GetFeed() const
{ return ( IsNullLenValue( m_Params.m_dFeed) ? m_TParams.m_dFeed : m_Params.m_dFeed) ; }
double GetStartFeed() const
{ return ( IsNullLenValue( m_Params.m_dStartFeed) ? m_TParams.m_dStartFeed : m_Params.m_dStartFeed) ; }
double GetEndFeed() const
{ return ( IsNullLenValue( m_Params.m_dEndFeed) ? m_TParams.m_dEndFeed : m_Params.m_dEndFeed) ; }
double GetTipFeed() const
{ return ( IsNullLenValue( m_Params.m_dTipFeed) ? m_TParams.m_dTipFeed : m_Params.m_dTipFeed) ; }
double GetOffsR() const
{ return ( IsUnknownValue( m_Params.m_dOffsR) ? m_TParams.m_dOffsR : m_Params.m_dOffsR) ; }
double GetSideStep( void) const
{ return Clamp( m_Params.m_dSideStep, std::min( 0.1 * m_TParams.m_dDiam, 1.0), m_TParams.m_dDiam) ; }
private :
SELVECTOR m_vId ; // identificativi entità geometriche da lavorare
SurfFinishingData m_Params ; // parametri lavorazione
ToolData m_TParams ; // parametri utensile
double m_dTHoldLen ; // lunghezza del porta-utensile
double m_dTHoldDiam ; // diametro del porta-utensile
int m_nStatus ; // stato di aggiornamento della lavorazione
int m_nPaths ; // numero di percorsi di lavoro generati
} ;