Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 29d330a8fc | |||
| 02bea83d38 | |||
| 25817a8911 | |||
| 6b59d709f6 | |||
| bb9f7b5fba | |||
| 06d074869d | |||
| fd7873a501 | |||
| 106c053a09 | |||
| d44f31af7f | |||
| 08ddbc9291 | |||
| d213cd0cd6 | |||
| 034cff8431 | |||
| 6a70d13cd9 | |||
| 8fc265c399 | |||
| b311f9f343 | |||
| 229eef8d19 | |||
| eb09b797a0 | |||
| ee9bff2fe9 | |||
| 7cc55217f8 | |||
| dacf041b67 | |||
| 1d43a09141 | |||
| 1655127475 | |||
| 45c642e51a | |||
| 4f79b63f80 |
@@ -15,6 +15,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "/EgtDev/Include/EGkPoint3d.h"
|
||||
#include "/EgtDev/Include/EGkFrame3d.h"
|
||||
#include <vector>
|
||||
|
||||
//----------------------- Macro per import/export ----------------------------
|
||||
@@ -163,3 +164,9 @@ GetLocToLoc( const BBox3d& b3Box, const Frame3d& frOri, const Frame3d& frDest)
|
||||
b3New.LocToLoc( frOri, frDest) ;
|
||||
return b3New ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
inline bool Overlaps( const BBox3d& bbA, const Frame3d& frA, const BBox3d& bbB, const Frame3d& frB)
|
||||
{
|
||||
return bbA.Overlaps( GetToLoc( frB, frA), bbB) ;
|
||||
}
|
||||
+6
-2
@@ -1,13 +1,14 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2013-2019
|
||||
// EgalTech 2013-2025
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EGkGeoConst.h Data : 23.11.19 Versione : 2.1k5
|
||||
// File : EGkGeoConst.h Data : 22.11.25 Versione : 2.7k4
|
||||
// Contenuto : Costanti generali per calcoli geometrici.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 04.01.12 DS Creazione modulo.
|
||||
// 23.11.19 DS Aggiunta costante EPS_TRIA_H.
|
||||
// 22.11.25 DS Aggiunta costante PREC_SCALE_COEFF.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -59,3 +60,6 @@ const double SQRT2 = 1.41421356237309504880 ;
|
||||
const double SQRT1_2 = 1 / SQRT2 ;
|
||||
const double SQRT3 = 1.73205080756887729353 ;
|
||||
const double SQRT1_3 = 1 / SQRT3 ;
|
||||
|
||||
// coefficiente di scalatura per aumentare precisione dei calcoli
|
||||
const double PREC_SCALE_COEFF = 1024 ;
|
||||
|
||||
@@ -86,7 +86,7 @@ class IntersCurvePlane
|
||||
EGK_EXPORT int GetIntersCount( void) ;
|
||||
//! Restituisce informazioni sull'intersezione di indice nInd ( 0 based)
|
||||
EGK_EXPORT bool GetIntCrvPlnInfo( int nInd, IntCrvPlnInfo& aInfo) ;
|
||||
//! Restituisce il punto di intersezione più vicino al punto passato
|
||||
//! Restituisce il punto di intersezione più vicino al punto passato
|
||||
EGK_EXPORT bool GetIntersPointNearTo( const Point3d& ptNear, Point3d& ptI, double& dParam) ;
|
||||
//! Restituisce la classificazione di una curva rispetto al piano
|
||||
EGK_EXPORT bool GetCurveClassification( double dLenMin, CRVPLNCVECTOR& ccClass) ;
|
||||
@@ -106,4 +106,4 @@ class IntersCurvePlane
|
||||
ICPIVECTOR m_Info ;
|
||||
const ICurve* m_pCurve ; // puntatore alla curva
|
||||
Plane3d m_plPlane ;
|
||||
} ;
|
||||
} ;
|
||||
|
||||
@@ -115,12 +115,16 @@ class IntersCurveCurve
|
||||
EGK_EXPORT bool GetOverlaps( void) ;
|
||||
//! Restituisce il numero di intersezioni (intersezioni doppie coincidenti e sovrapposte contano uno)
|
||||
EGK_EXPORT int GetIntersCount( void) ;
|
||||
//! Restituisce il numero di intersezioni in 3D ( filtrando le intersezioni)
|
||||
EGK_EXPORT int GetInters3DCount( void) ;
|
||||
//! Restituisce il numero di intersezioni in cui la curva si attraversa
|
||||
EGK_EXPORT int GetCrossIntersCount( void) ;
|
||||
//! Restituisce il numero di intersezioni in cui la curva si attraversa o si sovrappone
|
||||
EGK_EXPORT int GetCrossOrOverlapIntersCount( void) ;
|
||||
//! Restituisce informazioni sull'intersezione di indice nInd ( 0 based)
|
||||
EGK_EXPORT bool GetIntCrvCrvInfo( int nInd, IntCrvCrvInfo& aInfo) ;
|
||||
//! Restituisce informazioni sulla i-esima intersezione 3D ( 0 based)
|
||||
EGK_EXPORT bool GetInt3DCrvCrvInfo( int nInd, IntCrvCrvInfo& aInfo) ;
|
||||
//! Restituisce il punto di intersezione più vicino al punto passato
|
||||
EGK_EXPORT bool GetIntersPointNearTo( int nCrv, const Point3d& ptNear, Point3d& ptI) ;
|
||||
//! Restituisce la classificazione di una curva rispetto all'altra ( nCrv=0 -> CurvaA, nCrv=1 -> CurvaB)
|
||||
|
||||
+4
-2
@@ -32,9 +32,11 @@ EGK_EXPORT bool IntersLineBox( const Point3d& ptL, const Vector3d& vtL, double d
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Tipo di intersezione linea-box
|
||||
enum IntLineBoxType { ILBT_NONE = 0, // non è intersezione
|
||||
enum IntLineBoxType { ILBT_NONE = 0, // non è intersezione
|
||||
ILBT_IN = 1, // ingresso nel box
|
||||
ILBT_OUT = 2, // uscita dal box
|
||||
ILBT_TG_INI = 3, // ingresso tangente in una faccia del box
|
||||
ILBT_TG_FIN = 4, // uscita tangente da una faccia del box
|
||||
ILBT_TOUCH = 5} ; // contatto su uno spigolo o su un vertice del box
|
||||
ILBT_TOUCH = 5, // contatto su uno spigolo o su un vertice del box
|
||||
ILBT_INSIDE = 6, // contenimento nel box
|
||||
ILBT_TG_INSIDE = 7} ; // contenimento su faccia del box
|
||||
|
||||
+1
-2
@@ -174,9 +174,8 @@ AreSamePlaneApprox( const Plane3d& plPlaneA, const Plane3d& plPlaneB)
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
inline bool
|
||||
AreSamePlaneExact( const Plane3d plPlaneA, const Plane3d& plPlaneB)
|
||||
AreSamePlaneExact( const Plane3d& plPlaneA, const Plane3d& plPlaneB)
|
||||
{
|
||||
return ( AreSameVectorExact( plPlaneA.GetVersN(), plPlaneB.GetVersN()) &&
|
||||
PointInPlaneExact( plPlaneA.GetPoint(), plPlaneB)) ;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -124,8 +124,8 @@ class PolyLine
|
||||
{ return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; }
|
||||
EGK_EXPORT bool FromPointVector( const PNTVECTOR& vPnt)
|
||||
{ Clear() ;
|
||||
for( int i = 0 ; i < int( vPnt.size()) ; ++i)
|
||||
{ AddUPoint( i, vPnt[i]) ; }
|
||||
for ( int i = 0 ; i < std::ssize( vPnt) ; ++i)
|
||||
AddUPoint( i, vPnt[i]) ;
|
||||
return GetPointNbr() > 0 ; }
|
||||
|
||||
private :
|
||||
|
||||
@@ -42,6 +42,9 @@ struct Point5ax {
|
||||
typedef std::vector<Point5ax> PNT5AXVECTOR ; // vettore di Punti 5assi
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Proiezione di una curva su una o più superfici a distanza minima
|
||||
EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf,
|
||||
double dLinTol, double dMaxSegmLen, bool bSharpEdges, PNT5AXVECTOR& vPt5ax) ;
|
||||
// Proiezione di una curva su una o più superfici lungo la direzione data
|
||||
EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf, const Vector3d& vtDir,
|
||||
double dLinTol, double dMaxSegmLen, bool bSharpEdges, PNT5AXVECTOR& vPt5ax) ;
|
||||
|
||||
+2
-1
@@ -101,10 +101,11 @@ class __declspec( novtable) ISurfBezier : public ISurf
|
||||
virtual bool CreateByPointCurve( const Point3d& pt, const ICurve* pCurve) = 0 ;
|
||||
virtual bool CreateByTwoCurves( const ICurve* pCurve1, const ICurve* pCurve2, int nType) = 0 ;
|
||||
virtual bool CreateBySetOfCurves( const ICURVEPOVECTOR& vCrvBez, bool bReduceToDeg3 = true) = 0 ;
|
||||
virtual bool RemoveCollapsedSpans() = 0 ;
|
||||
} ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
static const double SBZ_TREG_COEFF = 1024 ;
|
||||
static const double SBZ_TREG_COEFF = PREC_SCALE_COEFF ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
inline ISurfBezier* CreateSurfBezier( void)
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2025-2025
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EGkSurfBzRuledFromStmFaces.h Data : 15.09.25 Versione : 2.7j1
|
||||
// Contenuto : Calcolo di una superficie di Bezier Ruled definita da un sottoinsieme
|
||||
// di facce di una superficie TriMesh
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 15.09.25 RE Creazione modulo.
|
||||
//
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "EGkSelection.h"
|
||||
#include "EGkCurveLine.h"
|
||||
#include "/EgtDev/Include/EGkSurfBezier.h"
|
||||
#include "/EgtDev/Include/EGkSurfTriMesh.h"
|
||||
|
||||
//----------------------- Macro per import/export ----------------------------
|
||||
#undef EGK_EXPORT
|
||||
#if defined( I_AM_EGK) // da definirsi solo nella DLL
|
||||
#define EGK_EXPORT __declspec( dllexport)
|
||||
#else
|
||||
#define EGK_EXPORT __declspec( dllimport)
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
EGK_EXPORT bool GetBezierEdgeCurvesFromSurfs( const CISURFPVECTOR& vSurf, const SELVECTOR& vSurfFace,
|
||||
double dLinTol, double dAngTol, const BIPNTVECTOR& vBreakingPts,
|
||||
ICRVCOMPOPOVECTOR& vBezierEdges) ;
|
||||
EGK_EXPORT bool GetSyncPointsFromBezierCurves( const ICurveComposite* pEdge0, const ICurveComposite* pEdge1,
|
||||
ICRVLINEPOVECTOR& vLines) ;
|
||||
EGK_EXPORT bool GetAdjStmFacesInTol( const ISurfTriMesh* pStm, const INTVECTOR& vFaceRef, double dAngTol,
|
||||
INTVECTOR& vOtherFaces, double dCurvature) ;
|
||||
+3
-1
@@ -25,6 +25,8 @@ static int STMOFF_EXTEND = 2 ;
|
||||
// Funzioni per Offset di singola superficie
|
||||
EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshOffset( const ISurfTriMesh* pStm, double dOffs, double dPrec, int nType = STMOFF_FILLET) ;
|
||||
EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshThickeningOffset( const ISurfTriMesh* pStm, double dOffs, double dPrec, int nType = STMOFF_FILLET) ;
|
||||
// Funzioni per Offset di più superfici
|
||||
// Funzioni per Offset di più superfici
|
||||
EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshesOffset( const CISURFTMPVECTOR& vStm, double dOffs, double dPrec, int nType = STMOFF_FILLET) ;
|
||||
EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshesThickeningOffset( const CISURFTMPVECTOR& vStm, double dOffs, double dPrec, int nType = STMOFF_FILLET) ;
|
||||
// Funzione per Creazione superficie Shell
|
||||
EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshShell( const ISurfTriMesh* pStm, double dThick, double dLinTol) ;
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2025-2025
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EgkTrimming.h Data : 15.09.25 Versione : 2.7j1
|
||||
// Contenuto : Calcolo di una superficie di Bezier Ruled definita da un sottoinsieme
|
||||
// di facce di una superficie TriMesh
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 15.09.25 RE Creazione modulo.
|
||||
//
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "EGkSelection.h"
|
||||
#include "EGkCurveLine.h"
|
||||
#include "/EgtDev/Include/EGkSurfBezier.h"
|
||||
#include "/EgtDev/Include/EGkSurfTriMesh.h"
|
||||
|
||||
//----------------------- Macro per import/export ----------------------------
|
||||
#undef EGK_EXPORT
|
||||
#if defined( I_AM_EGK) // da definirsi solo nella DLL
|
||||
#define EGK_EXPORT __declspec( dllexport)
|
||||
#else
|
||||
#define EGK_EXPORT __declspec( dllimport)
|
||||
#endif
|
||||
|
||||
typedef std::vector<ISURFPOVECTOR> ISURFPOMATRIX ;
|
||||
typedef std::vector<ICRVCOMPOPOVECTOR> ICRVCOMPOPOMATRIX ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
EGK_EXPORT bool GetTrimmingStmAdjTria( const ISurfTriMesh* pStm, const INTVECTOR& vTria, const PNTVECTOR& vPts,
|
||||
double dAngTol, double dSize, double dSizeTol, INTVECTOR& vOtherTria) ;
|
||||
EGK_EXPORT bool GetTrimmingAdjSurfs( const CISURFPVECTOR& vSurf, const CISURFPVECTOR& vOtherSurf, double dLinTol,
|
||||
double dAngTol, double dFaceAngTol,
|
||||
INTVECTOR& vIndOtherSurf) ;
|
||||
EGK_EXPORT bool GetTrimmingRawEdges( const CISURFPVECTOR& vSurf, const SELVECTOR& vSurfFace,
|
||||
double dLinTol, double dAngTol,
|
||||
ICRVCOMPOPOVECTOR& vBezierEdges) ;
|
||||
EGK_EXPORT bool GetTrimmingBezierEdges( ICRVCOMPOPOVECTOR& vCompoRawEdges, double dLinTol, double dAngTol,
|
||||
ICRVCOMPOPOVECTOR& vCompoEdges) ;
|
||||
EGK_EXPORT bool GetTrimmingFinalBorders( ICRVCOMPOPOVECTOR& vCompoBezierEdges, double dLinTol,
|
||||
double dAngTol, BIPNTVECTOR& vBreakingPts, double dThick, double dThickTol) ;
|
||||
EGK_EXPORT bool GetTrimmingFinalBorders( CISURFPVECTOR& vpSurf, const SELVECTOR& vSurfFaces, double dLinTol, double dAngTol, double dThick,
|
||||
ICRVCOMPOPOVECTOR& vCompoBezierEdges) ;
|
||||
EGK_EXPORT ISurfBezier* GetTrimmingRuledBezier( const CISURFPVECTOR& vSurf, const ICurve* pCrvEdge1, const ICurve* pCrvEdge2,
|
||||
double dLinTol, const BIPNTVECTOR& vSyncPoints,
|
||||
const INTVECTOR& vIndPriority, const INTVECTOR& vIndVisible) ;
|
||||
EGK_EXPORT bool GetTrimmingSurfBzSyncPoints( const ICurve* pCrvEdge1, const ICurve* pCrvEdge2,
|
||||
double dLinTol, BIPNTVECTOR& vSyncPoints) ;
|
||||
EGK_EXPORT bool GetTrimmingAutoEntities( const CISURFPVECTOR& vSurf, double dShapeLinTol, double dShapeAngTol,
|
||||
double dLinTol, double dEdgeLinTol, double dAngTol, double dAngFaceTol,
|
||||
const STRVECTOR& vsShapes, ISURFPOMATRIX& matSelSurfMatrix,
|
||||
ICRVCOMPOPOMATRIX& matCompoBorders, ISURFBEZPOVECTOR& vSurfBz) ;
|
||||
+10
-5
@@ -176,10 +176,11 @@ class __declspec( novtable) IMachMgr
|
||||
virtual int GetCurrSetup( void) const = 0 ;
|
||||
virtual bool GetDefaultSetupName( std::string& sName) const = 0 ;
|
||||
virtual bool ImportSetup( const std::string& sName) = 0 ;
|
||||
virtual bool ExistsCurrSetup( void) const = 0 ;
|
||||
virtual bool VerifyCurrSetup( STRVECTOR& vsErrors) = 0 ;
|
||||
virtual bool FindToolInCurrSetup( const std::string& sTool) = 0 ;
|
||||
virtual bool GetToolSetupPosInCurrSetup( const std::string& sTool, std::string& sTcPos) = 0 ;
|
||||
virtual bool GetToolsInCurrSetupPos( const std::string& sTcPos, STRVECTOR& vsTools) = 0 ;
|
||||
virtual bool FindToolInCurrSetup( const std::string& sTool) const = 0 ;
|
||||
virtual bool GetToolSetupPosInCurrSetup( const std::string& sTool, std::string& sTcPos) const = 0 ;
|
||||
virtual bool GetToolsInCurrSetupPos( const std::string& sTcPos, STRVECTOR& vsTools) const = 0 ;
|
||||
virtual bool UpdateCurrSetup( void) = 0 ;
|
||||
virtual bool EraseCurrSetup( void) = 0 ;
|
||||
// Machinings DataBase
|
||||
@@ -278,6 +279,8 @@ class __declspec( novtable) IMachMgr
|
||||
virtual bool IsMachiningEmpty( int nEmptyType = 0) const = 0 ;
|
||||
virtual bool GetMachiningStartPoint( Point3d& ptStart) const = 0 ;
|
||||
virtual bool GetMachiningEndPoint( Point3d& ptEnd) const = 0 ;
|
||||
virtual bool GetMachiningStartAxes( bool bSkipClimb, DBLVECTOR& vAxVal) const = 0 ;
|
||||
virtual bool GetMachiningEndAxes( bool bSkipRise, DBLVECTOR& vAxVal) const = 0 ;
|
||||
// CL Entities Interrogations
|
||||
virtual bool GetClEntMove( int nEntId, int& nMove) const = 0 ;
|
||||
virtual bool GetClEntFlag( int nEntId, int& nFlag, int& nFlag2) const = 0 ;
|
||||
@@ -304,13 +307,15 @@ class __declspec( novtable) IMachMgr
|
||||
// Machine Calc
|
||||
virtual bool SetCalcTable( const std::string& sTable) = 0 ;
|
||||
virtual bool SetCalcTool( const std::string& sTool, const std::string& sHead, int nExit) = 0 ;
|
||||
virtual bool GetAllCurrAxesNames( STRVECTOR& vAxName) const = 0 ;
|
||||
virtual bool SetCalcSolCh( int nScc, bool bExact) = 0 ;
|
||||
virtual bool SetRotAxisBlock( const std::string& sAxis, double dVal) = 0 ;
|
||||
virtual bool GetRotAxisBlocked( int nInd, std::string& sAxis, double& dVal) const = 0 ;
|
||||
virtual bool GetCalcTable( std::string& sTable) const = 0 ;
|
||||
virtual bool GetCalcTool( std::string& sTool) const = 0 ;
|
||||
virtual bool GetCalcHead( std::string& sHead) const = 0 ;
|
||||
virtual bool GetCalcExit( int& nExit) const = 0 ;
|
||||
virtual bool GetCalcSolCh( int& nScc, bool& bExact) const = 0 ;
|
||||
virtual bool GetAllCurrAxesNames( STRVECTOR& vAxName) const = 0 ;
|
||||
virtual bool GetRotAxisBlocked( int nInd, std::string& sAxis, double& dVal) const = 0 ;
|
||||
virtual bool GetCalcAngles( const Vector3d& vtDirT, const Vector3d& vtDirA,
|
||||
int& nStat, double& dAngA1, double& dAngB1, double& dAngA2, double& dAngB2) const = 0 ;
|
||||
virtual bool GetCalcAngles( const Vector3d& vtDirT, const Vector3d& vtDirA,
|
||||
|
||||
@@ -116,6 +116,9 @@ static std::string KEY_MAXMAX = "MAXMAX" ;
|
||||
static std::string KEY_DRACEX = "DRACEX" ;
|
||||
// Chiave info in sottogruppo di testa per abilitarne visualizzazione in Preview (0/1 default)
|
||||
static std::string KEY_PREVIEWSHOW = "PreviewShow" ;
|
||||
// Chiavi info in entità di CL e DBL per riferimenti reciproci
|
||||
static std::string KEY_DBL_MAIN = "Main" ;
|
||||
static std::string KEY_CL_DOUBLE = "Double" ;
|
||||
|
||||
//----------------- Costanti posizione per preview utensile in lavorazione ------
|
||||
enum MchToolShow { MCH_TPM_CURR = 0,
|
||||
|
||||
+26
-4
@@ -51,7 +51,6 @@ struct ToolOptm {
|
||||
bTCX( bX), bTCY( bY), bTCZ( bZ), bTCA( bA), bTCB( bB), bTCC( bC), dTLoad( dTL), dTUnLoad( dTUL) {}
|
||||
} ;
|
||||
typedef std::vector<ToolOptm> TOOLOPTMVECTOR ;
|
||||
typedef std::list<ToolOptm> TOOLOPTMLIST ;
|
||||
|
||||
// Definizione strutta per singola lavorazione
|
||||
struct MachOptm {
|
||||
@@ -81,9 +80,29 @@ struct MachOptm {
|
||||
dA_Start( dA_Start) , dB_Start( dB_Start), dC_Start( dC_Start),
|
||||
dX_End( dX_End), dY_End( dY_End), dZ_End( dZ_End),
|
||||
dA_End( dA_End), dB_End( dB_End), dC_End( dC_End) {}
|
||||
MachOptm()
|
||||
: nId( -1), nIdTool( -1), nGroup( -1),
|
||||
dX_Start( 0.), dY_Start( 0.), dZ_Start( 0.),
|
||||
dA_Start( 0.) , dB_Start( 0.), dC_Start( 0.),
|
||||
dX_End( 0.), dY_End( 0.), dZ_End( 0.),
|
||||
dA_End( 0.), dB_End( 0.), dC_End( 0.) {} ;
|
||||
} ;
|
||||
typedef std::vector<MachOptm> MACHOPTMVECTOR ;
|
||||
typedef std::list<MachOptm> MACHOPTMLIST ;
|
||||
typedef std::vector<MACHOPTMVECTOR> MACHOPTMMATRIX ;
|
||||
|
||||
// Definizione struttura per OpenBounds
|
||||
struct OpenBoundOptm {
|
||||
int nGroup ;
|
||||
bool bStartVsEnd ;
|
||||
int nFlag ;
|
||||
double dX ;
|
||||
double dY ;
|
||||
double dZ ;
|
||||
|
||||
OpenBoundOptm( int nOBGroup, bool bOBStartVsEnd, int nOBFlag, double dOBX, double dOBY, double dOBZ )
|
||||
: nGroup( nOBGroup), bStartVsEnd( bOBStartVsEnd), nFlag( nOBFlag), dX( dOBX), dY( dOBY), dZ( dOBZ) {}
|
||||
} ;
|
||||
typedef std::vector<OpenBoundOptm> MACHOPTOPENBOUNDVECTOR ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
class __declspec( novtable) IMachOptimization
|
||||
@@ -104,8 +123,11 @@ class __declspec( novtable) IMachOptimization
|
||||
virtual bool SetLastMachining( int nId) = 0 ;
|
||||
virtual bool SetFeeds( double dFeedL, double dFeedA) = 0 ;
|
||||
virtual bool SetAllGroupsAsMandatory( bool bAllMandatory = false) = 0 ;
|
||||
virtual bool GetResult( INTVECTOR& vIds) = 0 ;
|
||||
virtual bool SetOptimizationForGroups( bool bOptForGroups = false) = 0 ;
|
||||
virtual bool SetOpenBound( bool bStartVsEnd, int nFlag, double dX, double dY, double dZ) = 0 ;
|
||||
virtual bool SetOpenBoundForGroups( int nGroup, bool bStartVsEnd, int nFlag, double dX, double dY, double dZ) = 0 ;
|
||||
virtual bool Calculate( INTVECTOR& vIds) = 0 ;
|
||||
} ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
ENK_EXPORT IMachOptimization* CreateMachOptimization( void) ;
|
||||
ENK_EXPORT IMachOptimization* CreateMachOptimization( void) ;
|
||||
|
||||
+41
-4
@@ -233,7 +233,10 @@ EXE_EXPORT bool ExeOptMachSetFeeds( double dFeedL, double dFeedA) ;
|
||||
EXE_EXPORT bool ExeOptMachAddDependence( int nIdPrec, int nIdNext) ;
|
||||
EXE_EXPORT bool ExeOptMachAddSuggestedDependence( int nIdPrec, int nIdNext) ;
|
||||
EXE_EXPORT bool ExeOptMachSetAllGroupDependencesAsMandatory( bool bAllMandatory) ;
|
||||
EXE_EXPORT bool ExeOptMachGetResult( INTVECTOR& vIds) ;
|
||||
EXE_EXPORT bool ExeOptMachSetOptimizationForGroups( bool bOptForGroups) ;
|
||||
EXE_EXPORT bool ExeOptMachSetOpenBound( bool bStartVsEnd, int nFlag, double dX, double dY, double dZ) ;
|
||||
EXE_EXPORT bool ExeOptMachSetOpenBoundForGroups( int nGroup, bool bStartVsEnd, int nFlag, double dX, double dY, double dZ) ;
|
||||
EXE_EXPORT bool ExeOptMachCalculate( INTVECTOR& vIds) ;
|
||||
|
||||
// GeomDB Create
|
||||
EXE_EXPORT int ExeCreateGroup( int nParentId, const Frame3d& frFrame, int nRefType) ;
|
||||
@@ -399,6 +402,7 @@ EXE_EXPORT int ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrC
|
||||
EXE_EXPORT int ExeCreateSurfTmByTriangles( int nParentId, const INTVECTOR& vIds, bool bErase) ;
|
||||
EXE_EXPORT int ExeCreateSurfTmBySewing( int nParentId, const INTVECTOR& vIds, bool bErase) ;
|
||||
EXE_EXPORT int ExeCreateSurfTmByVolZmap( int nParentId, int nZmapId, int nPart) ;
|
||||
EXE_EXPORT int ExeCreateSurfShell( int nParentId, int nSurfId, double dThick, double dLinTol) ;
|
||||
EXE_EXPORT int ExeSurfTmOffset( int nParentId, const INTVECTOR& vIds, double dOffs, double dLinTol, int nType) ;
|
||||
EXE_EXPORT int ExeSurfTmThickeningOffset( int nParentId, const INTVECTOR& vIds, double dOffs, double dLinTol, int nType) ;
|
||||
EXE_EXPORT int ExeCreateSurfBezier( int nParentId, int nDegU, int nDegV, int nSpanU, int nSpanV, const PNTVECTOR& vPnt, int nRefType) ;
|
||||
@@ -663,8 +667,10 @@ EXE_EXPORT bool ExeCurveCompoSetTempProp( int nId, int nCrv, int nProp, int nPro
|
||||
EXE_EXPORT bool ExeCurveCompoSetTempParam( int nId, int nCrv, double dParam, int nParamInd = 0) ;
|
||||
EXE_EXPORT bool ExeChainCurvesInGroup( int nGroupId, const Point3d& ptNear, int nRefType) ;
|
||||
EXE_EXPORT bool ExeReorderCurvesInGroup( int nGroupId, const Point3d& ptNear, int nRefType) ;
|
||||
EXE_EXPORT bool ExeProjectCurveOnSurf( int nCurveId, const INTVECTOR& vnSurfId, const Vector3d& vtProj, int nDestGrpId,
|
||||
double dLinTol, double dMaxSegmLen, bool bDirFromProj, int nRefType) ;
|
||||
EXE_EXPORT bool ExeProjectCurveOnSurf( int nCurveId, const INTVECTOR& vnSurfId, int nDestGrpId,
|
||||
double dLinTol, double dMaxSegmLen) ;
|
||||
EXE_EXPORT bool ExeProjectCurveOnSurfDir( int nCurveId, const INTVECTOR& vnSurfId, const Vector3d& vtProj, int nDestGrpId,
|
||||
double dLinTol, double dMaxSegmLen, bool bDirFromProj, int nRefType) ;
|
||||
EXE_EXPORT bool ExeProjectCurveOnSurfExt( int nCurveId, const INTVECTOR& vnSurfId, int nGuideId, int nDestGrpId,
|
||||
double dLinTol, double dMaxSegmLen, bool bDirFromGuide) ;
|
||||
EXE_EXPORT int ExeCurveGetVoronoi( const INTVECTOR& vIds, int nDestGrpId, int nBound, int* pnCount) ;
|
||||
@@ -934,11 +940,12 @@ EXE_EXPORT int ExeParPlanesSurfTmInters( const Point3d& ptOn, const Vector3d& v
|
||||
EXE_EXPORT int ExePlaneVolZmapInters( const Point3d& ptOn, const Vector3d& vtN, int nId, int nDestGrpId, int nRefType,
|
||||
int* pnCount) ;
|
||||
EXE_EXPORT int ExeCurveCurveInters( const int nId1, const int nId2, const int nDestGrpId,
|
||||
int* pnPntCount, int* pnCrvCount) ;
|
||||
int* pnPntCount, int* pnCrvCount, bool bOnly3D = false) ;
|
||||
EXE_EXPORT int ExeCurveSurfTmInters( const int nCrvId, const int nStmId, const int nDestGrpId,
|
||||
int* pnPntCount, int* pnCrvCount) ;
|
||||
EXE_EXPORT int ExeSurfTmSurfTmInters( int nId1, int nId2, int nDestGrpId, double dToler,
|
||||
int* pnPntCount, int* pnCrvCount, int* pnSrfCount) ;
|
||||
EXE_EXPORT bool ExeBBoxOverlap( const BBox3d& bboxA, const Frame3d& frA, const BBox3d& bboxB, const Frame3d& frB) ;
|
||||
|
||||
// Collision Detection
|
||||
EXE_EXPORT int ExeCDeBoxSolid( const Frame3d& frBox, const Vector3d& vtDiag, int nSolidId, double dSafeDist, int nRefType) ;
|
||||
@@ -1174,6 +1181,7 @@ EXE_EXPORT bool ExeTdbImport( const std::string& sFile, const STRVECTOR& vsTools
|
||||
EXE_EXPORT int ExeGetCurrSetup( void) ;
|
||||
EXE_EXPORT bool ExeGetDefaultSetupName( std::string& sName) ;
|
||||
EXE_EXPORT bool ExeImportSetup( const std::string& sName) ;
|
||||
EXE_EXPORT bool ExeExistsCurrSetup( void) ;
|
||||
EXE_EXPORT bool ExeVerifyCurrSetup( STRVECTOR& vsErrors) ;
|
||||
EXE_EXPORT bool ExeFindToolInCurrSetup( const std::string& sTool) ;
|
||||
EXE_EXPORT bool ExeGetToolSetupPosInCurrSetup( const std::string& sTool, std::string& sTcPos) ;
|
||||
@@ -1272,6 +1280,8 @@ EXE_EXPORT bool ExeGetMachiningSkippedGeometry( SELVECTOR& vIds) ;
|
||||
EXE_EXPORT bool ExeIsMachiningEmpty( int nEmptyType) ;
|
||||
EXE_EXPORT bool ExeGetMachiningStartPoint( Point3d& ptStart) ;
|
||||
EXE_EXPORT bool ExeGetMachiningEndPoint( Point3d& ptEnd) ;
|
||||
EXE_EXPORT bool ExeGetMachiningStartAxes( bool bSkipClimb, DBLVECTOR& vAxVal) ;
|
||||
EXE_EXPORT bool ExeGetMachiningEndAxes( bool bSkipRise, DBLVECTOR& vAxVal) ;
|
||||
EXE_EXPORT bool ExeApplyAllMachinings( bool bRecalc, bool bStopOnFirstErr, std::string& sErrList) ;
|
||||
EXE_EXPORT bool ExeApplyAllMachiningsEx( bool bRecalc, bool bStopOnFirstErr, std::string& sErrList, std::string& sWarnList) ;
|
||||
EXE_EXPORT bool ExeUpdateAllMachinings( bool bStopOnFirstErr, std::string& sErrList) ;
|
||||
@@ -1321,9 +1331,11 @@ EXE_EXPORT bool ExeGetAllTcPosNames( STRVECTOR& vNames) ;
|
||||
// Machine Calc
|
||||
EXE_EXPORT bool ExeSetCalcTable( const std::string& sTable) ;
|
||||
EXE_EXPORT bool ExeSetCalcTool( const std::string& sTool, const std::string& sHead, int nExit) ;
|
||||
EXE_EXPORT bool ExeSetCalcSolCh( int nScc, bool bExact) ;
|
||||
EXE_EXPORT bool ExeSetRotAxisBlock( const std::string& sAxis, double dVal) ;
|
||||
EXE_EXPORT bool ExeGetCalcTable( std::string& sTable) ;
|
||||
EXE_EXPORT bool ExeGetCalcTool( std::string& sTool, std::string& sHead, int& nExit) ;
|
||||
EXE_EXPORT bool ExeGetCalcSolCh( int& nScc, bool& bExact) ;
|
||||
EXE_EXPORT bool ExeGetAllCurrAxesNames( STRVECTOR& vAxName) ;
|
||||
EXE_EXPORT bool ExeGetRotAxisBlocked( int nInd, std::string& sAxis, double& dVal) ;
|
||||
EXE_EXPORT bool ExeGetCalcAngles( const Vector3d& vtDirT, const Vector3d& vtDirA,
|
||||
@@ -1480,7 +1492,32 @@ EXE_EXPORT bool ExeRedisAsyncPublish( int nIdConnection, const std::string& sCha
|
||||
EXE_EXPORT bool ExeRedisAsyncSubscribe( int nIdConnection, const std::string& sChannel) ;
|
||||
EXE_EXPORT bool ExeRedisAsyncUnsubscribe( int nIdConnection, const std::string& sChannel) ;
|
||||
EXE_EXPORT bool ExeRedisAsyncSubscribeOneMessage( int nIdConnection, const std::string& sChannel, double dMaxTimeOut, std::string& sMessage) ;
|
||||
EXE_EXPORT bool ExeRedisAsyncGetMessage( int nIdConnection, const std::string& sChannel, int& nCount, std::string& sMessage) ;
|
||||
|
||||
// Base64
|
||||
EXE_EXPORT bool ExeBase64Encode( const std::string& sFile, std::string& sB64Dest) ;
|
||||
EXE_EXPORT bool ExeBase64Decode( const std::string& sB64Sou, const std::string& sFile) ;
|
||||
|
||||
// Trimming
|
||||
EXE_EXPORT bool ExeTrimmingGetSurfTmFaceAdj( int nSurfId, const INTVECTOR& vTria, const PNTVECTOR& vPts,
|
||||
double dAngTol, double dSize, double dSizeTol, INTVECTOR& vOtherFaces) ;
|
||||
EXE_EXPORT int ExeTrimmingGetSurfTmFromStmFaces( int nParentId, int nSurfId, const INTVECTOR& vFaces) ;
|
||||
EXE_EXPORT bool ExeTrimmingGetAdjSurfs( const INTVECTOR& vSurfId, const INTVECTOR& vOtherSurfId, double dLinTol,
|
||||
double dAngTol, double dAngFaceTol, INTVECTOR& vResId) ;
|
||||
EXE_EXPORT bool ExeTrimmingGetBorders( int nParentId, const SELVECTOR& vIds, double dLinTol, double dAngTol,
|
||||
int& nCount, int& nFirstId) ;
|
||||
EXE_EXPORT bool ExeTrimmingGetBordersByNormals( int nParentId, const SELVECTOR& vIds, double dLinTol,
|
||||
double dAngTol, double dThick, Point3d& ptNear, int& nCount, int& nFirstId) ;
|
||||
EXE_EXPORT bool ExeTrimmingGetFinalBorders( int nParentId, const INTVECTOR& vCrvBezierId, double dLinTol, double dAngTol,
|
||||
const PNTVECTOR& vBreakingPts, double dThick, double dThickTol,
|
||||
int& nFirstId, int& nCount) ;
|
||||
EXE_EXPORT int ExeTrimmingGetRuledBezier( int nParentId, const INTVECTOR& vIds, int nEdge1Id, int nEdge2Id, double dLinTol,
|
||||
const INTVECTOR& vnLineIds) ;
|
||||
EXE_EXPORT bool ExeTrimmingGetSurfBzSyncPoints( int nParentId, int nEdge1Id, int nEdge2Id, double dLinTol,
|
||||
int& nFirstId, int& nCount) ;
|
||||
EXE_EXPORT bool ExeTrimmingSkimSyncPoints( int nEdge1Id, int nEdge2Id, const INTVECTOR& vnLineId, double dLinTol,
|
||||
double dAngTol, int nMaxInvLine) ;
|
||||
EXE_EXPORT bool ExeTrimmingAutoSearch( int nParentId, int nSurfLayerId, double dShapeLinTol, double dShapeAngTol,
|
||||
double dLinTol, double dEdgeLinTol, double dAngTol, double dAngFaceTol,
|
||||
const STRVECTOR& vsShapes) ;
|
||||
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const int KEY_BASELIB_PROD = 207 ;
|
||||
const int KEY_BASELIB_VER = 2711 ;
|
||||
const int KEY_BASELIB_VER = 2712 ;
|
||||
const int KEY_BASELIB_LEV = 1 ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user