diff --git a/EGkFrame3d.h b/EGkFrame3d.h index 2cbec60..b8be319 100644 --- a/EGkFrame3d.h +++ b/EGkFrame3d.h @@ -44,7 +44,8 @@ class EGK_EXPORT Frame3d bool Set( const Point3d& ptOrig, Type nType) ; bool Set( const Point3d& ptOrig, double dAngCDeg, double dAngADeg, double dAngC1Deg) ; bool Reset( void) ; - void Translate( const Vector3d& vtMove) ; + bool ChangeOrig( const Point3d& ptOrig) ; + bool Translate( const Vector3d& vtMove) ; bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg) ; bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ; bool PseudoScale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ) ; diff --git a/EGkOffsetCurve.h b/EGkOffsetCurve.h index 4ad9d72..59802f6 100644 --- a/EGkOffsetCurve.h +++ b/EGkOffsetCurve.h @@ -31,6 +31,7 @@ class OffsetCurve public : EGK_EXPORT bool Make( const ICurve* pCrv, double dDist, int nType) ; EGK_EXPORT ICurve* GetCurve( void) ; + EGK_EXPORT ICurve* GetLongerCurve( void) ; private : ICURVEPLIST m_CrvLst ; diff --git a/EGkSelection.h b/EGkSelection.h index 057f2d9..9680db3 100644 --- a/EGkSelection.h +++ b/EGkSelection.h @@ -64,5 +64,6 @@ inline const std::string ToString( const SELVECTOR& vVal, int nPrec = 1) { std::string sDest ; sDest.reserve( 2 * 8 * vVal.size()) ; for ( const auto& Val : vVal) sDest += ToString( Val.nId, nPrec) + "," + ToString( Val.nSub, nPrec) + "," ; - sDest.pop_back() ; + if ( ! sDest.empty()) + sDest.pop_back() ; return sDest ; } diff --git a/EGkSurfTriMesh.h b/EGkSurfTriMesh.h index 2bbbbc6..d7f4f68 100644 --- a/EGkSurfTriMesh.h +++ b/EGkSurfTriMesh.h @@ -32,6 +32,7 @@ class __declspec( novtable) ISurfTriMesh : public ISurf virtual void SetSmoothAngle( double dSmoothAngDeg) = 0 ; virtual int AddVertex( const Point3d& ptVert) = 0 ; virtual int AddTriangle( const int nIdVert[3]) = 0 ; + virtual bool RemoveTriangle( int nId) = 0 ; virtual bool AdjustTopology( void) = 0 ; virtual bool CreateByFlatContour( const PolyLine& PL) = 0 ; virtual bool CreateByRegion( const POLYLINEVECTOR& vPL) = 0 ; @@ -64,6 +65,7 @@ class __declspec( novtable) ISurfTriMesh : public ISurf virtual bool GetTriangleBoundaryEdges( int nId, TriFlags3d& TFlags) const = 0 ; virtual bool GetTriangleSmoothNormals( int nId, TriNormals3d& TNrms) const = 0 ; virtual bool GetLoops( POLYLINEVECTOR& vPL) const = 0 ; + virtual bool GetSilhouette( const Vector3d& vtDir, POLYLINEVECTOR& vPL) const = 0 ; virtual int GetFacetCount( void) const = 0 ; virtual int GetFacetSize( void) const = 0 ; virtual int GetFacetFromTria( int nT) const = 0 ; diff --git a/EInAPI.h b/EInAPI.h index d9073bd..3a0e473 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -481,6 +481,8 @@ EIN_EXPORT int __stdcall EgtGetFirstRawPart( void) ; EIN_EXPORT int __stdcall EgtGetNextRawPart( int nRawId) ; EIN_EXPORT int __stdcall EgtAddRawPart( const double ptOrig[3], double dLength, double dWidth, double dHeight, const int vCol[4]) ; +EIN_EXPORT BOOL __stdcall EgtModifyRawPart( int nRawId, const double ptOrig[3], + double dLength, double dWidth, double dHeight, const int vCol[4]) ; EIN_EXPORT BOOL __stdcall EgtModifyRawPartSize( int nRawId, double dLength, double dWidth, double dHeight) ; EIN_EXPORT BOOL __stdcall EgtModifyRawPartHeight( int nRawId, double dHeight) ; EIN_EXPORT BOOL __stdcall EgtRemoveRawPart( int nRawId) ; @@ -532,6 +534,8 @@ EIN_EXPORT BOOL __stdcall EgtMdbGetCurrMachiningParamBool( int nType, BOOL* pbVa EIN_EXPORT BOOL __stdcall EgtMdbGetCurrMachiningParamInt( int nType, int* pnVal) ; EIN_EXPORT BOOL __stdcall EgtMdbGetCurrMachiningParamDouble( int nType, double* pdVal) ; EIN_EXPORT BOOL __stdcall EgtMdbGetCurrMachiningParamString( int nType, wchar_t*& wsVal) ; +EIN_EXPORT BOOL __stdcall EgtMdbSetSafeZ( double dSafeZ) ; +EIN_EXPORT BOOL __stdcall EgtMdbGetSafeZ( double* pdSafeZ) ; EIN_EXPORT BOOL __stdcall EgtMdbSave( void) ; EIN_EXPORT BOOL __stdcall EgtMdbGetMachiningDir( wchar_t*& wsMchDir) ; // Operations @@ -541,11 +545,14 @@ EIN_EXPORT BOOL __stdcall EgtSimStart( void) ; EIN_EXPORT BOOL __stdcall EgtSimMove( int* pnStatus) ; EIN_EXPORT BOOL __stdcall EgtSimHome( void) ; EIN_EXPORT BOOL __stdcall EgtSimGetAxisInfoPos( int nI, wchar_t*& wsName, double* pdVal) ; +EIN_EXPORT BOOL __stdcall EgtSimGetToolInfo( wchar_t*& wsTool, double* pdSpeed) ; +EIN_EXPORT BOOL __stdcall EgtSimGetMoveInfo( int* pnGmove, double* pdFeed) ; EIN_EXPORT BOOL __stdcall EgtSimSetStep( double dStep) ; EIN_EXPORT BOOL __stdcall EgtSimStop( void) ; // Generation EIN_EXPORT BOOL __stdcall EgtGenerate( const wchar_t* wsCncFile, const wchar_t* wsInfo) ; // Machine Calc +EIN_EXPORT BOOL __stdcall EgtSetCalcTool( const wchar_t* wsTool, const wchar_t* wsHead, int nExit) ; EIN_EXPORT BOOL __stdcall EgtGetCalcTipFromPositions( double dX, double dY, double dZ, double dAngA, double dAngB, BOOL bBottom, double ptTip[3]) ; diff --git a/EMkMachMgr.h b/EMkMachMgr.h index f612da5..0b98860 100644 --- a/EMkMachMgr.h +++ b/EMkMachMgr.h @@ -55,6 +55,7 @@ class __declspec( novtable) IMachMgr virtual int GetNextRawPart( int nId) const = 0 ; virtual int AddRawPart( const Point3d& ptOrig, double dLen, double dWidth, double dHeight, Color cCol) = 0 ; virtual int AddRawPartWithPart( int nPartId, int nCrvSrfId, double dOverMat, Color cCol) = 0 ; + virtual bool ModifyRawPart( int nRawId, const Point3d& ptOrig, double dLen, double dWidth, double dHeight, Color cCol) = 0 ; virtual bool ModifyRawPartSize( int nRawId, double dLength, double dWidth, double dHeight) = 0 ; virtual bool ModifyRawPartHeight( int nRawId, double dHeight) = 0 ; virtual bool RemoveRawPart( int nRawId) = 0 ; @@ -115,6 +116,8 @@ class __declspec( novtable) IMachMgr virtual bool MdbGetCurrMachiningParam( int nType, int& nVal) const = 0 ; virtual bool MdbGetCurrMachiningParam( int nType, double& dVal) const = 0 ; virtual bool MdbGetCurrMachiningParam( int nType, std::string& sVal) const = 0 ; + virtual bool MdbSetSafeZ( double dSafeZ) = 0 ; + virtual bool MdbGetSafeZ( double& dSafeZ) const = 0 ; virtual bool MdbSave( void) const = 0 ; virtual bool MdbGetMachiningDir( std::string& sMchDir) const = 0 ; // Operations : general @@ -149,6 +152,8 @@ class __declspec( novtable) IMachMgr virtual bool SimStart( void) = 0 ; virtual bool SimMove( int& nStatus) = 0 ; virtual bool SimGetAxisInfoPos( int nI, std::string& sName, double& dVal) = 0 ; + virtual bool SimGetToolInfo( std::string& sName, double& dSpeed) = 0 ; + virtual bool SimGetMoveInfo( int& nGmove, double& dFeed) = 0 ; virtual bool SimSetStep( double dStep) = 0 ; virtual bool SimStop( void) = 0 ; // Generation diff --git a/EMkMachiningConst.h b/EMkMachiningConst.h index 4b8a5dc..0ce5958 100644 --- a/EMkMachiningConst.h +++ b/EMkMachiningConst.h @@ -33,18 +33,18 @@ const int MPA_BOOL = 0x1000 ; const int MPA_INT = 0x2000 ; const int MPA_DOU = 0x4000 ; const int MPA_STR = 0x8000 ; -// Costanti tipo parametri modificabili direttamente nelle lavorazioni +// Costanti tipo parametri delle lavorazioni enum MpaType { MPA_NONE = 0, MPA_INVERT = ( MPA_BOOL+ 0), - MPA_TOANDFROM = ( MPA_BOOL+ 1), - MPA_LEAVETAB = ( MPA_BOOL+ 2), - MPA_WORKSIDE = ( MPA_INT + 0), - MPA_HEADSIDE = ( MPA_INT + 1), - MPA_LEADINTYPE = ( MPA_INT + 2), - MPA_EXTLINKTYPE = ( MPA_INT + 3), - MPA_LEADOUTTYPE = ( MPA_INT + 4), - MPA_CURVEUSE = ( MPA_INT + 5), - MPA_STEPTYPE = ( MPA_INT + 6), + MPA_LEAVETAB = ( MPA_BOOL+ 1), + MPA_TYPE = ( MPA_INT + 0), // solo get + MPA_WORKSIDE = ( MPA_INT + 1), + MPA_HEADSIDE = ( MPA_INT + 2), + MPA_LEADINTYPE = ( MPA_INT + 3), + MPA_EXTLINKTYPE = ( MPA_INT + 4), + MPA_LEADOUTTYPE = ( MPA_INT + 5), + MPA_CURVEUSE = ( MPA_INT + 6), + MPA_STEPTYPE = ( MPA_INT + 7), MPA_TOOLSPEED = ( MPA_DOU + 0), MPA_TOOLFEED = ( MPA_DOU + 1), MPA_TOOLSTARTFEED = ( MPA_DOU + 2), @@ -89,6 +89,10 @@ enum { SAW_WS_CENTER = 0, // Lato di posizionamento della testa enum { SAW_HS_LEFT = 1, SAW_HS_RIGHT = 2 } ; +// Tipo di lavorazione a step +enum { SAW_ST_ZIGZAG = 0, + SAW_ST_ONEWAY = 1, + SAW_ST_TOANDFROM = 2 } ; // Tipo di attacco enum { SAW_LI_CENT = 0, SAW_LI_STRICT = 1, @@ -116,7 +120,7 @@ enum { MILL_WS_CENTER = 0, MILL_WS_LEFT = 1, MILL_WS_RIGHT = 2 } ; // Tipo di lavorazione a step -enum { MILL_ST_STEP = 0, +enum { MILL_ST_ZIGZAG = 0, MILL_ST_ONEWAY = 1, MILL_ST_SPIRAL = 2 } ; // Tipo di attacco diff --git a/EXeExecutor.h b/EXeExecutor.h index 7531832..2b1628a 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -391,6 +391,7 @@ EXE_EXPORT bool ExeSurfFrIntersect( int nId1, int nId2) ; EXE_EXPORT bool ExeSurfFrOffset( int nId, double dDist, int nType) ; EXE_EXPORT int ExeExtractSurfFrChunkLoops( int nId, int nChunk, int nDestGrpId, int* pnCount) ; EXE_EXPORT int ExeExtractSurfTmLoops( int nId, int nDestGrpId, int* pnCount) ; +EXE_EXPORT int ExeGetSurfTmSilhouette( int nId, const Vector3d& vtDir, int nDestGrpId, int nRefType, int* pnCount) ; EXE_EXPORT int ExeExtractSurfTmFacetLoops( int nId, int nFacet, int nDestGrpId, int* pnCount) ; // Geo Snap Vector/Point/Frame @@ -488,6 +489,7 @@ EXE_EXPORT int ExeGetFirstRawPart( void) ; EXE_EXPORT int ExeGetNextRawPart( int nRawId) ; EXE_EXPORT int ExeAddRawPart( Point3d ptOrig, double dLength, double dWidth, double dHeight, Color cCol) ; EXE_EXPORT int ExeAddRawPartWithPart( int nPartId, int nCrvId, double dOverMat, Color cCol) ; +EXE_EXPORT bool ExeModifyRawPart( int nRawId, Point3d ptOrig, double dLength, double dWidth, double dHeight, Color cCol) ; EXE_EXPORT bool ExeModifyRawPartSize( int nRawId, double dLength, double dWidth, double dHeight) ; EXE_EXPORT bool ExeModifyRawPartHeight( int nRawId, double dHeight) ; EXE_EXPORT bool ExeRemoveRawPart( int nRawId) ; @@ -547,12 +549,15 @@ EXE_EXPORT bool ExeMdbGetCurrMachiningParam( int nType, bool& nVal) ; EXE_EXPORT bool ExeMdbGetCurrMachiningParam( int nType, int& nVal) ; EXE_EXPORT bool ExeMdbGetCurrMachiningParam( int nType, double& dVal) ; EXE_EXPORT bool ExeMdbGetCurrMachiningParam( int nType, std::string& sVal) ; +EXE_EXPORT bool ExeMdbSetSafeZ( double dSafeZ) ; +EXE_EXPORT bool ExeMdbGetSafeZ( double& dSafeZ) ; EXE_EXPORT bool ExeMdbSave( void) ; EXE_EXPORT bool ExeMdbGetMachiningDir( std::string& sMchDir) ; // Operations EXE_EXPORT int ExeGetFirstOperation( void) ; EXE_EXPORT int ExeGetNextOperation( int nId) ; EXE_EXPORT int ExeGetOperationType( int nId) ; +EXE_EXPORT bool ExeRemoveOperation( int nId) ; EXE_EXPORT bool ExeRemoveAllOperations( void) ; // Machinings EXE_EXPORT int ExeAddMachining( const std::string& sName, const std::string& sMachining) ; @@ -572,6 +577,8 @@ EXE_EXPORT bool ExeSimStart( void) ; EXE_EXPORT bool ExeSimMove( int& nStatus) ; EXE_EXPORT bool ExeSimHome( void) ; EXE_EXPORT bool ExeSimGetAxisInfoPos( int nI, std::string& sName, double& dVal) ; +EXE_EXPORT bool ExeSimGetToolInfo( std::string& sName, double& dSpeed) ; +EXE_EXPORT bool ExeSimGetMoveInfo( int& nGmove, double& dFeed) ; EXE_EXPORT bool ExeSimSetStep( double dStep) ; EXE_EXPORT bool ExeSimStop( void) ; // Generation