EgtGeomKernel 1.8l1 :

- aggiunta classe Tool e modificato VolZmap per utilizzarla.
This commit is contained in:
Dario Sassi
2017-12-04 08:46:54 +00:00
parent 4252497bb3
commit 0944038bc8
11 changed files with 534 additions and 431 deletions
BIN
View File
Binary file not shown.
+6 -5
View File
@@ -338,6 +338,7 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
<ClCompile Include="CDSimpleSurfFrMove.cpp" />
<ClCompile Include="SurfFlatRegionOffset.cpp" />
<ClCompile Include="TextureData.cpp" />
<ClCompile Include="Tool.cpp" />
<ClCompile Include="UserObjDefault.cpp" />
<ClCompile Include="UserObjFactory.cpp" />
<ClCompile Include="OutTsc.cpp" />
@@ -363,12 +364,11 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
<ClCompile Include="Triangulate.cpp" />
<ClCompile Include="Vector3d.cpp" />
<ClCompile Include="NgeWriter.cpp" />
<ClCompile Include="VolTriZmapCalculus.cpp" />
<ClCompile Include="VolTriZmapCreation.cpp" />
<ClCompile Include="VolTriZmapGraphics.cpp" />
<ClCompile Include="VolTriZmapVolume.cpp" />
<ClCompile Include="VolZmapCalculus.cpp" />
<ClCompile Include="VolZmapCreation.cpp" />
<ClCompile Include="VolZmapGraphics.cpp" />
<ClCompile Include="VolZmapVolume.cpp" />
<ClCompile Include="VolZmap.cpp" />
<ClCompile Include="VolZmapTool.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\Include\EGkAngle.h" />
@@ -514,6 +514,7 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
<ClInclude Include="RemoveCurveSpikes.h" />
<ClInclude Include="SurfFlatRegion.h" />
<ClInclude Include="TextureData.h" />
<ClInclude Include="Tool.h" />
<ClInclude Include="UserObjDefault.h" />
<ClInclude Include="OutTsc.h" />
<ClInclude Include="PointsPCA.h" />
+18 -15
View File
@@ -339,21 +339,6 @@
<ClCompile Include="CDBoxTria.cpp">
<Filter>File di origine\GeoCollision</Filter>
</ClCompile>
<ClCompile Include="VolZmapTool.cpp">
<Filter>File di origine\Geo</Filter>
</ClCompile>
<ClCompile Include="VolTriZmapCalculus.cpp">
<Filter>File di origine\Geo</Filter>
</ClCompile>
<ClCompile Include="VolTriZmapCreation.cpp">
<Filter>File di origine\Geo</Filter>
</ClCompile>
<ClCompile Include="VolTriZmapGraphics.cpp">
<Filter>File di origine\Geo</Filter>
</ClCompile>
<ClCompile Include="VolTriZmapVolume.cpp">
<Filter>File di origine\Geo</Filter>
</ClCompile>
<ClCompile Include="RemoveCurveSpikes.cpp">
<Filter>File di origine\GeoInters</Filter>
</ClCompile>
@@ -372,6 +357,21 @@
<ClCompile Include="DistPointTria.cpp">
<Filter>File di origine\GeoDist</Filter>
</ClCompile>
<ClCompile Include="VolZmapCalculus.cpp">
<Filter>File di origine\Geo</Filter>
</ClCompile>
<ClCompile Include="VolZmapCreation.cpp">
<Filter>File di origine\Geo</Filter>
</ClCompile>
<ClCompile Include="VolZmapGraphics.cpp">
<Filter>File di origine\Geo</Filter>
</ClCompile>
<ClCompile Include="VolZmapVolume.cpp">
<Filter>File di origine\Geo</Filter>
</ClCompile>
<ClCompile Include="Tool.cpp">
<Filter>File di origine\Base</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
@@ -842,6 +842,9 @@
<ClInclude Include="..\Include\EGkUiUnits.h">
<Filter>File di intestazione\Include</Filter>
</ClInclude>
<ClInclude Include="Tool.h">
<Filter>File di intestazione</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="EgtGeomKernel.rc">
+108 -90
View File
@@ -2,7 +2,7 @@
// EgalTech 2015-2016
//----------------------------------------------------------------------------
// File : VolZmap.cpp Data : 22.01.15 Versione : 1.6a4
// Contenuto : Implementazione della classe Volume Zmap (utensili)
// Contenuto : Implementazione della classe Tool
//
//
//
@@ -15,18 +15,31 @@
#include "stdafx.h"
#include "CurveLine.h"
#include "CurveArc.h"
#include "VolZmap.h"
#include "Tool.h"
#include "GeoConst.h"
#include "/EgtDev/Include/EGKLinePntTgCurve.h"
#include "/EgtDev/Include/EGKFilletChamfer.h"
#include "/EgtDev/Include/EGkDistPointCurve.h"
#include <algorithm>
using namespace std ;
//----------------------------------------------------------------------------
Tool::Tool( void)
: m_dLinTol( LIN_TOL_STD), m_dAngTolDeg( ANG_TOL_APPROX_DEG), m_nType( UNDEF), m_nCurrentNum( 0), m_dHeigth( 0),
m_dTipHeigth( 0), m_dRadius( 0), m_dRCorner( 0), m_dTipRadius( 0), m_dMrtChsWidth( 0), m_dMrtChsThickness( 0)
{
}
//----------------------------------------------------------------------------
Tool::~Tool( void)
{
}
//---------- Tolleranza nell'approssimazione di curve profilo ----------------
//----------------------------------------------------------------------------
bool
VolZmap::SetTolerances( double dLinTol, double dAngTolDeg)
Tool::SetTolerances( double dLinTol, double dAngTolDeg)
{
m_dLinTol = max( dLinTol, LIN_TOL_MIN) ;
m_dAngTolDeg = max( dAngTolDeg, ANG_TOL_MIN_DEG) ;
@@ -35,72 +48,73 @@ VolZmap::SetTolerances( double dLinTol, double dAngTolDeg)
//----------------------------------------------------------------------------
bool
VolZmap::SetStdTool( const string& sToolName, double dH, double dR, double dCornR)
Tool::SetStdTool( const string& sToolName, double dH, double dR, double dCornR, int nToolNum)
{
// reset nome
m_sToolName.clear() ;
// verifica minime dimensioni globali
// assegno il nome
m_sName = sToolName ;
// Aggiorno il numero dell'utensile corrente
m_nCurrentNum = nToolNum ;
// Imposto il tipo di utensile a indefinito
m_nType = UNDEF ;
// verifica sulle minime dimensioni globali
if ( dH < EPS_SMALL || dR < EPS_SMALL)
return false ;
// utensile cilindrico
if ( dCornR < EPS_SMALL) {
m_nToolType = CYLMILL ;
m_dHeight = dH ;
m_nType = CYLMILL ;
m_dHeigth = dH ;
m_dRadius = dR ;
m_dTipHeight = 0 ;
m_dTipHeigth = 0 ;
m_dTipRadius = m_dRadius ;
m_dRCorner = 0 ;
}
// utensile naso di toro
else if ( dCornR < dR - EPS_SMALL) {
m_nToolType = BULLNOSEMILL ;
m_dHeight = dH ;
else if ( dCornR < dR - EPS_SMALL) {
m_dHeigth = dH ;
m_dRadius = dR ;
m_dTipHeight = dCornR ;
m_dTipHeigth = dCornR ;
m_dTipRadius = dR - dCornR ;
m_dRCorner = dCornR ;
// come profilo
m_nToolType = GENTOOL ;
// come profilo
Point3d pt0( 0, 0, 0) ;
Point3d pt1( m_dRadius, 0, 0) ;
Point3d pt2( m_dRadius, - m_dHeight + m_dTipHeight, 0) ;
Point3d pt3( m_dTipRadius, - m_dHeight, 0) ;
Point3d pt4( 0, - m_dHeight, 0) ;
m_ToolOutline.Clear() ;
Point3d pt2( m_dRadius, - m_dHeigth + m_dTipHeigth, 0) ;
Point3d pt3( m_dTipRadius, - m_dHeigth, 0) ;
Point3d pt4( 0, - m_dHeigth, 0) ;
m_Outline.Clear() ;
CurveLine Line ;
Line.Set( pt0, pt1) ;
m_ToolOutline.AddCurve( Line) ;
m_ToolOutline.AddLine( pt2);
m_ToolOutline.AddArcTg( pt3) ;
m_ToolOutline.AddLine( pt4) ;
return SetGenTool( sToolName, &m_ToolOutline) ;
m_Outline.AddCurve( Line) ;
m_Outline.AddLine( pt2);
m_Outline.AddArcTg( pt3) ;
m_Outline.AddLine( pt4) ;
return SetGenTool( sToolName, & m_Outline, nToolNum) ;
}
// utensile sferico
else if ( dCornR < dR + EPS_SMALL) {
m_nToolType = BALLMILL ;
m_dHeight = dH ;
m_nType = BALLMILL ;
m_dHeigth = dH ;
m_dRadius = dR ;
m_dTipHeight = m_dRadius ;
m_dTipHeigth = m_dRadius ;
m_dTipRadius = 0 ;
m_dRCorner = m_dRadius ;
}
// impossibile
else
return false ;
// assegno il nome
m_sToolName = sToolName ;
// Aggiorno il numero dell'utensile corrente
m_nCurrentToolNum = 0 ;
return true ;
}
//----------------------------------------------------------------------------
bool
VolZmap::SetAdvTool( const string& sToolName, double dH, double dR,
double dTipH, double dTipR, double dCornR)
Tool::SetAdvTool( const string& sToolName, double dH, double dR,
double dTipH, double dTipR, double dCornR, int nToolNum)
{
// Reset nome
m_sToolName.clear() ;
// Setto il nome
m_sName = sToolName ;
m_nCurrentNum = nToolNum ;
m_nType = UNDEF ;
// Verifica dimensioni globali
if ( dH < EPS_SMALL || dR < EPS_SMALL)
@@ -108,33 +122,29 @@ VolZmap::SetAdvTool( const string& sToolName, double dH, double dR,
// Se altezza punta nulla, ricado nel caso standard
if ( dTipH < EPS_SMALL || abs( dTipR - dR) < EPS_SMALL)
return SetStdTool( sToolName, dH, dR, dCornR) ;
return SetStdTool( sToolName, dH, dR, dCornR, nToolNum) ;
// Caso avanzato
m_dHeight = dH ;
m_dHeigth = dH ;
m_dRadius = dR ;
m_dTipHeight = dTipH ;
m_dTipHeigth = dTipH ;
m_dTipRadius = max( dTipR, 0.) ;
// Se raggio corner nullo, allora utensile conico
if ( dCornR < EPS_SMALL) {
m_nToolType = CONUSMILL ;
m_dRCorner = 0 ;
// assegno nome e identificativo
m_sToolName = sToolName ;
m_nCurrentToolNum = 0 ;
m_nType = CONUSMILL ;
m_dRCorner = 0 ;
return true ;
}
// Altrimenti utensile generico.
m_nToolType = GENTOOL ;
m_dRCorner = dCornR ;
m_ToolOutline.Clear() ;
m_Outline.Clear() ;
// Definisco il profilo
Point3d pt0( 0, 0, 0) ;
Point3d pt1( m_dRadius, 0, 0) ;
Point3d pt2( m_dRadius, - m_dHeight + m_dTipHeight, 0) ;
Point3d pt2( m_dRadius, - m_dHeigth + m_dTipHeigth, 0) ;
if ( m_dTipRadius < m_dRadius) {
@@ -168,11 +178,11 @@ VolZmap::SetAdvTool( const string& sToolName, double dH, double dR,
CurveArc cvArc ;
cvArc.SetC2P( ptC, pt3, pt4) ;
m_ToolOutline.AddCurve( LineSt) ;
m_ToolOutline.AddLine( pt2);
m_ToolOutline.AddLine( pt3);
m_ToolOutline.AddCurve( cvArc) ;
m_ToolOutline.AddLine( ptLast) ;
m_Outline.AddCurve( LineSt) ;
m_Outline.AddLine( pt2);
m_Outline.AddLine( pt3);
m_Outline.AddCurve( cvArc) ;
m_Outline.AddLine( ptLast) ;
}
else {
@@ -203,35 +213,35 @@ VolZmap::SetAdvTool( const string& sToolName, double dH, double dR,
Point3d pt5( 0, - dH, 0) ;
m_ToolOutline.AddCurve( LineSt) ;
m_ToolOutline.AddLine( pt2);
m_ToolOutline.AddLine( pt3);
m_ToolOutline.AddCurve( cvArc) ;
m_ToolOutline.AddLine( pt5) ;
m_Outline.AddCurve( LineSt) ;
m_Outline.AddLine( pt2);
m_Outline.AddLine( pt3);
m_Outline.AddCurve( cvArc) ;
m_Outline.AddLine( pt5) ;
}
return SetGenTool( sToolName, &m_ToolOutline) ;
return SetGenTool( sToolName, &m_Outline, nToolNum) ;
}
//----------------------------------------------------------------------------
bool
VolZmap::SetGenTool( const string& sToolName, const ICurveComposite* pToolOutline)
Tool::SetGenTool( const string& sToolName, const ICurveComposite* pToolOutline, int nToolNum)
{
// Assegno nome, tipo e id dell'utensile
m_sToolName = sToolName ;
m_nToolType = GENTOOL ;
m_nCurrentToolNum = 0 ;
m_sName = sToolName ;
m_nType = UNDEF ;
m_nCurrentNum = nToolNum ;
// Copio il profilo e garantisco sia di soli archi e rette (converto eventuali curve di Bezier)
if ( ! m_ToolOutline.CopyFrom( pToolOutline) ||
! m_ToolOutline.ArcsBezierCurvesToArcsPerpExtr( m_dLinTol, m_dAngTolDeg))
if ( ! m_Outline.CopyFrom( pToolOutline) ||
! m_Outline.ArcsBezierCurvesToArcsPerpExtr( m_dLinTol, m_dAngTolDeg))
return false ;
// Flag di avvenuta approssimazione
bool bApprox = false ;
// Ciclo sulle curve componenti
const ICurve* pCurve = m_ToolOutline.GetFirstCurve() ;
const ICurve* pCurve = m_Outline.GetFirstCurve() ;
while ( pCurve != nullptr) {
// Se la curva è un arco verifico se approssimarlo
@@ -245,8 +255,8 @@ VolZmap::SetGenTool( const string& sToolName, const ICurveComposite* pToolOutlin
bool bCurrApprox = ( abs( ptO.x) > EPS_SMALL) ;
// Se una delle altre curve dista dal centro meno del raggio, devo approssimare
for ( int nI = 0 ; ! bCurrApprox && nI < m_ToolOutline.GetCurveCount() ; ++ nI) {
const ICurve* pOtherCrv = m_ToolOutline.GetCurve( nI) ;
for ( int nI = 0 ; ! bCurrApprox && nI < m_Outline.GetCurveCount() ; ++ nI) {
const ICurve* pOtherCrv = m_Outline.GetCurve( nI) ;
if ( pOtherCrv != pCurve) {
DistPointCurve CalcDist( ptO, *pOtherCrv) ;
double dCurrDist ;
@@ -259,33 +269,36 @@ VolZmap::SetGenTool( const string& sToolName, const ICurveComposite* pToolOutlin
if ( bCurrApprox) {
// Creo la polyline approssimante
PolyLine plyApprox ;
pCurve->ApproxWithLines( m_dLinTol, m_dAngTolDeg, ICurve::APL_SPECIAL, plyApprox) ;
if ( ! pCurve->ApproxWithLines( m_dLinTol, m_dAngTolDeg, ICurve::APL_SPECIAL, plyApprox))
return false ;
// Aggiungo i segmenti di retta alla approssimazione
Point3d ptEnd ;
plyApprox.GetFirstPoint( ptEnd) ;
while ( plyApprox.GetNextPoint( ptEnd)) {
m_ToolArcLineApprox.AddLine( ptEnd) ;
m_ArcLineApprox.AddLine( ptEnd) ;
}
bApprox = true ;
}
// altrimenti lo aggiungo semplicemente
else
m_ToolArcLineApprox.AddCurve( *pCurve, true) ;
m_ArcLineApprox.AddCurve( *pCurve, true) ;
}
// altrimenti è segmento e lo aggiungo semplicemente
else
m_ToolArcLineApprox.AddCurve( *pCurve, true) ;
m_ArcLineApprox.AddCurve( *pCurve, true) ;
pCurve = m_ToolOutline.GetNextCurve() ;
pCurve = m_Outline.GetNextCurve() ;
}
// Se non ci sono state approssimazioni, cancello la curva approssimante
if ( ! bApprox)
m_ToolArcLineApprox.Clear() ;
m_ArcLineApprox.Clear() ;
m_nType = GEN ;
// Dimensioni dell'utensile
BBox3d Bounding ;
m_ToolOutline.GetLocalBBox( Bounding) ;
m_Outline.GetLocalBBox( Bounding) ;
double m_dHeight = Bounding.GetMax().y - Bounding.GetMin().y ;
double m_dRadius = Bounding.GetMax().x - Bounding.GetMin().x ;
@@ -294,44 +307,49 @@ VolZmap::SetGenTool( const string& sToolName, const ICurveComposite* pToolOutlin
//----------------------------------------------------------------------------
bool
VolZmap::SetMortiserTool( const std::string& sToolName, double dH, double dW, double dTh, double dRc)
Tool::SetMortiserTool( const std::string& sToolName, double dH, double dW, double dTh, double dRc, int nToolNum)
{
// Reset nome
m_sToolName.clear() ;
// Setto il nome e il numero dell'utensile
m_sName = sToolName ;
m_nCurrentNum = nToolNum ;
// Imposto a indefinito il tipo
m_nType = UNDEF ;
if ( dH < EPS_SMALL || dW < EPS_SMALL ||
dTh < EPS_SMALL || dRc < 0 || dW - 2 * dRc < 0)
return false ;
m_dHeight = dH ;
m_dHeigth = dH ;
m_dRCorner = dRc ;
m_dMrtChsWidth = dW ;
m_dMrtChsThickness = dTh ;
m_sToolName = sToolName ;
m_nToolType = MORTISER ;
m_nCurrentToolNum = 0 ;
// Imposto il tipo
m_nType = MORTISER ;
return true ;
}
//----------------------------------------------------------------------------
bool
VolZmap::SetChiselTool( const string& sToolName, double dH, double dW, double dTh) {
Tool::SetChiselTool( const string& sToolName, double dH, double dW, double dTh, int nToolNum)
{
// Reset nome
m_sToolName.clear() ;
// Setto il nome e il numero dell'utensile
m_sName = sToolName ;
m_nCurrentNum = nToolNum ;
// Imposto a indefinito il tipo
m_nType = UNDEF ;
if ( dH < EPS_SMALL || dW < EPS_SMALL || dTh < 0)
return false ;
m_dHeight = dH ;
m_dHeigth = dH ;
m_dMrtChsWidth = dW ;
m_dMrtChsThickness = dTh ;
m_sToolName = sToolName ;
m_nToolType = CHISEL ;
m_nCurrentToolNum = 0 ;
// Imposto il tipo
m_nType = CHISEL ;
return true ;
}
}
+86
View File
@@ -0,0 +1,86 @@
//----------------------------------------------------------------------------
// EgalTech 2017-2017
//----------------------------------------------------------------------------
// File : Tool.h Data : 28.11.17 Versione : 1.8l1
// Contenuto : Dichiarazione della classe Tool.
//
//
//
// Modifiche : 22.01.15 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "CurveComposite.h"
//----------------------------------------------------------------------------
class Tool
{
public :
Tool( void) ;
~Tool( void) ;
public :
bool SetTolerances( double dLinTol, double dAngTolDeg = 90) ;
bool SetStdTool( const std::string& sToolName, double dH, double dR, double dCornR, int nToolNum) ;
bool SetAdvTool( const std::string& sToolName,
double dH, double dR, double dTipH, double dTipR, double dCornR, int nToolNum) ;
bool SetGenTool( const std::string& sToolName, const ICurveComposite* pToolOutline, int nToolNum) ;
bool SetMortiserTool( const std::string& sToolName, double dH, double dW, double dTh, double dRc, int nToolNum) ;
bool SetChiselTool( const std::string& sToolName, double dH, double dW, double dTh, int nToolNum) ;
int GetType() const
{ return m_nType ; }
int GetCurrentToolNum() const
{ return m_nCurrentNum ; }
double GetHeigth() const
{ return m_dHeigth ; }
double GetTipHeigth() const
{ return m_dTipHeigth ; }
double GetRadius() const
{ return m_dRadius ; }
double GetTipRadius() const
{ return m_dTipRadius ; }
double GetCornRadius() const
{ return m_dRCorner ; }
double GetMrtChsWidth() const
{ return m_dMrtChsWidth ; }
double GetMrtChsThickness() const
{ return m_dMrtChsThickness ; }
const CurveComposite * GetOutline()
{
// Se l'utensile non è stato approssimato uso l'originale
if ( m_ArcLineApprox.GetCurveCount() == 0)
return ( & m_Outline) ;
// altrimenti uso l'approssimazione
else
return ( & m_ArcLineApprox) ;
}
public :
enum ToolType { UNDEF = 0, // Utensile indefinito
GEN = 1, // Generico da profilo -> usare SetTool
CYLMILL = 2, // Cilindrica
BALLMILL = 3, // Sferica
BULLNOSEMILL = 4, // Naso di toro
CONUSMILL = 5, // Con parte terminale conica
MORTISER = 6, // Mortasatrice
CHISEL = 7} ; // Scalpello
private :
double m_dLinTol ; // Dati per utensile
double m_dAngTolDeg ;
std::string m_sName ;
int m_nType ;
int m_nCurrentNum ;
CurveComposite m_Outline ;
CurveComposite m_ArcLineApprox ;
double m_dHeigth ;
double m_dTipHeigth ;
double m_dRadius ;
double m_dRCorner ;
double m_dTipRadius ;
double m_dMrtChsWidth ;
double m_dMrtChsThickness ;
} ;
+44 -5
View File
@@ -29,8 +29,7 @@ GEOOBJ_REGISTER( VOL_ZMAP, NGE_V_ZMP, VolZmap) ;
//----------------------------------------------------------------------------
VolZmap::VolZmap(void)
: m_nStatus( TO_VERIFY), m_dStep( EPS_SMALL), m_nTempProp( 0), m_dLinTol( LIN_TOL_STD), m_dAngTolDeg( ANG_TOL_APPROX_DEG),
m_nVoxNumPerBlock( N_VOXBLOCK)
: m_nStatus( TO_VERIFY), m_dStep( EPS_SMALL), m_nTempProp( 0), m_nVoxNumPerBlock( N_VOXBLOCK)
{
m_nMapNum = 0 ;
m_nNumBlock = 0 ;
@@ -68,9 +67,7 @@ VolZmap::Clear( void)
m_Values[i].clear() ;
}
m_dStep = EPS_SMALL ;
m_dLinTol = LIN_TOL_STD ;
m_dAngTolDeg = ANG_TOL_APPROX_DEG;
m_nTempProp = 0 ;
// imposto ricalcolo della grafica
@@ -1142,3 +1139,45 @@ VolZmap::RemovePart( int nPart)
return true ;
}
//----------------------------------------------------------------------------
bool
VolZmap::SetTolerances( double dLinTol, double dAngTolDeg)
{
return m_Tool.SetTolerances( dLinTol, dAngTolDeg) ;
}
//----------------------------------------------------------------------------
bool
VolZmap::SetStdTool( const std::string& sToolName, double dH, double dR, double dCornR)
{
return m_Tool.SetStdTool( sToolName, dH, dR, dCornR, 1) ;
}
//----------------------------------------------------------------------------
bool
VolZmap::SetAdvTool( const std::string& sToolName,
double dH, double dR, double dTipH, double dTipR, double dCornR)
{
return m_Tool.SetAdvTool( sToolName, dH, dR, dTipH, dTipR, dCornR, 1) ;
}
//----------------------------------------------------------------------------
bool
VolZmap::SetGenTool( const std::string& sToolName, const ICurveComposite* pToolOutline)
{
return m_Tool.SetGenTool( sToolName, pToolOutline, 1) ;
}
//----------------------------------------------------------------------------
bool
VolZmap::SetMortiserTool( const std::string& sToolName, double dH, double dW, double dTh, double dRc)
{
return m_Tool.SetMortiserTool( sToolName, dH, dW, dTh, dRc, 1) ;
}
//----------------------------------------------------------------------------
bool
VolZmap::SetChiselTool( const std::string& sToolName, double dH, double dW, double dTh)
{
return m_Tool.SetChiselTool( sToolName, dH, dW, dTh, 1) ;
}
+5 -24
View File
@@ -18,6 +18,7 @@
#include "CurveComposite.h"
#include "SurfFlatRegion.h"
#include "CurveLine.h"
#include "Tool.h"
#include "/EgtDev/Include/EGkVolZmap.h"
#include "/EgtDev/Include/EGkPoint3d.h"
#include "/EgtDev/Include/EGkVector3d.h"
@@ -126,14 +127,7 @@ class VolZmap : public IVolZmap, public IGeoObjRW
LOG_ERROR( GetEGkLogger(), "VolZmap : copy error")
return *this ; }
private :
enum ToolType { GENTOOL = 0, // generico da profilo -> usare SetTool
CYLMILL = 1, // cilindrica
BALLMILL = 2, // sferica
BULLNOSEMILL = 3, // naso di toro
CONUSMILL = 4, // con parte terminale conica
MORTISER = 5, // mortasatrice
CHISEL = 6} ; // scalpello
private :
enum CubeType { VOX_EXTERN = 1,
VOX_ON_BOUNDARY = 0,
VOX_INNER = -1} ;
@@ -355,23 +349,10 @@ class VolZmap : public IVolZmap, public IGeoObjRW
int m_nConnectedCompoCount ; // Se == - 1 il numero di componenti non è noto
// Se >= 0 è il numero di componenti connesse
double m_dLinTol ; // Dati per utensile
double m_dAngTolDeg ;
std::string m_sToolName ;
unsigned int m_nToolType ;
unsigned int m_nCurrentToolNum ;
CurveComposite m_ToolOutline ;
CurveComposite m_ToolArcLineApprox ;
double m_dHeight ;
double m_dTipHeight ;
double m_dRadius ;
double m_dRCorner ;
double m_dTipRadius ;
double m_dMrtChsWidth ;
double m_dMrtChsThickness ;
mutable TriaMatrix m_InterBlockTria ;
mutable TriaMatrix m_InterBlockTria ;
Tool m_Tool ;
} ;
File diff suppressed because it is too large Load Diff