PlotterHMI/datafile/dxf/dxflib/ReadDxfFile.h

197 lines
5.1 KiB
C
Raw Permalink Normal View History

#if !defined (READDXFFILE_H)
#define READDXFFILE_H
#include "PDSMath/StdAfx.h"
#include <iostream>
//#include <afxtempl.h>
#include "ReadAutoCAD.h"
#include "ReadASTM.h"
#include "ReadTIIP.h"
//////////////////////////////////////////////////////////////////////////
//<2F><>ʽ<EFBFBD><CABD>Ϣ
class CStyleInfo : public CObject
{
public:
CString m_strStyleName;
CString m_strBaseSizeName;
CList<CString, CString> m_listAllSize;
int m_iUnit; //0 mm;=1 Inch
CString m_strAuthor;
CString m_strVersion; //20180127 <20><EFBFBD><E6B1BE>
CStyleInfo(void);
CStyleInfo(CStyleInfo& a);
~CStyleInfo(void);
void operator=(CStyleInfo& a);
void Initial(void);
};
class CReadDxfData : public CObject
{
public:
int m_iDPMM;
//<2F><>ʽ<EFBFBD><CABD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
CStyleInfo m_StyleInfo;
BOOL m_bPattern; //=true ֽ<><D6BD><EFBFBD><EFBFBD>=false<73><EFBFBD><E1B9B9>
//<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>Ϣ
CCurveNotchInforList m_listCurveOfFile; //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>Ϣ
CTextDataList m_listTextOfFile; //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>Ϣ
CLayerInforList m_listLayer;
//ֽ<><D6BD><EFBFBD><EFBFBD>Ϣ
CPatternBlockList m_listPattern; //ֽ<><D6BD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ñ<EFBFBD><C3B1><EFBFBD>ֻ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD>rul<75>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
int m_iGradeCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int m_iSizeCount; //<2F><><EFBFBD>͸<EFBFBD><CDB8><EFBFBD>
//m_iSizeCount, m_iGradeCountֻ<74><D6BB>m_RulData<74><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CPointData **m_pRulData; //m_RulData[iSizeIndex][iGradeIndex]
public:
CReadDxfData(void);
CReadDxfData(CReadDxfData& a);
~CReadDxfData(void);
void operator=(CReadDxfData& a);
void Initial(void);
CRect GetRect();
//<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
void CalcuateActualPoint(int iDPMM);
//20200219 XQ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
//[<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>] pPatternBlock ֽ<><D6BD>
void CalcuateActualPoint(int iDPMM, CPatternBlock *pPatternBlock);
//<2F><><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//dScale <20>Ŵ<EFBFBD><C5B4><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
//˵<><CBB5><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ҫƫ<D2AA>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SetScale(double dScale);
//<2F><>ɫ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// strLayer <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
//<2F><>ɫ
COLORREF GetColor(CString strLayer);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>(Auto CAD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ɫ)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// strColor <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
COLORREF FinColorTable(CString strColor);
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
// iFileType = 0 ASTM/AAMA;=1 TIIP;=2 AutoCAD
// strCurveViewType <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֵ:
// ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>PS_SOLID...
int GetCurveType(int iFileType, CString strCurveViewType);
private:
void DeleteElta();
void CopyData(CReadDxfData &a);
//TIIP<49>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// iValue <20>ļ<EFBFBD><C4BC>е<EFBFBD>ֵ
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
// ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int CurveType_TIIP(int iValue);
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
// strFilePath<74>ļ<EFBFBD>·<EFBFBD><C2B7>
// bPattern =true<75><65>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>false <20><EFBFBD><E1B9B9>
// bReadSolid = true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD>ߣ<EFBFBD>=false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20210902 XQ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
// AutoCADDxfData <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֵ:
// =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>=false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL ReadAutoCADFile(CString strFilePath, BOOL bPattern, BOOL bReadSolid, CReadDxfData &AutoCADDxfData);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//[<5B><><EFBFBD><EFBFBD>] EntitiesInfor <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//[<5B><><EFBFBD><EFBFBD>] bPattern =true<75><65>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>false <20><EFBFBD><E1B9B9>
//[<5B><><EFBFBD><EFBFBD>] AutoCADDxfData <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void GetAutoCADDxfData(CAutoCADFileInfo FileInfo, BOOL bPattern, CReadDxfData &AutoCADDxfData);
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//[<5B><><EFBFBD><EFBFBD>] BlockInfor <20><><EFBFBD><EFBFBD>Ϣ
//[<5B><><EFBFBD><EFBFBD>] listBlockInfor <20><><EFBFBD>п<EFBFBD><D0BF><EFBFBD>Ϣ
//[<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>] listCurveOfFile <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//[<5B><><EFBFBD><EFBFBD>][<5B><><EFBFBD><EFBFBD>] listTextOfFile <20>ı<EFBFBD><C4B1><EFBFBD>Ϣ
//[<5B><><EFBFBD><EFBFBD>] dOffsetX/dOffsetY<74><59><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
//[<5B><><EFBFBD><EFBFBD>] dSin, dCos <20><>ת<EFBFBD>Ƕ<EFBFBD>
//[<5B><><EFBFBD><EFBFBD>] dScaleX/dScaleY <20>Ŵ<EFBFBD><C5B4><EFBFBD>С 20220408 XQ
void GetAutoCADDxfData(CAuBlockInfor BlockInfor, CAuBlockInfoList &listBlockInfor, CCurveNotchInforList &listCurveOfFile, CTextDataList &listTextOfFile, double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// strFilePath <20>ļ<EFBFBD>·<EFBFBD><C2B7>
// bPattern =true ֽ<><D6BD><EFBFBD><EFBFBD> false <20><EFBFBD>ߣ<EFBFBD> <20><EFBFBD>߲<EFBFBD><DFB2>ö<EFBFBD>rul
// bOnlyReadBaseSize =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>Ч
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ASTMDxfData <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֵ:
// = 0 <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
// = 1 <20>ļ<EFBFBD><C4BC>򲻿<EFBFBD>
// = 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AutoCAD<41>ļ<EFBFBD>
// = 3 <20><><EFBFBD><EFBFBD>TIIP<49>ļ<EFBFBD>
int ReadASTMFile(CString strFilePath, BOOL bPattern, BOOL bOnlyReadBaseSize, CReadDxfData &ASTMDxfData);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// FileInfo <20>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
// bPattern =true ֽ<><D6BD><EFBFBD><EFBFBD> false <20><EFBFBD>ߣ<EFBFBD> <20><EFBFBD>߲<EFBFBD><DFB2>ö<EFBFBD>rul
// bOnlyReadBaseSize =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>Ч
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ASTMDxfData <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void GetASTMData(CASTMFileInfor FileInfo, BOOL bPattern, BOOL bOnlyReadBaseSize, CReadDxfData &ASTMDxfData);
//<2F><>CAMBlockInforתCPatternBlock<63><6B><EFBFBD><EFBFBD>
BOOL TrantsAMPatternBlock(CString strAuthor, CAMBlockInfor BlockInfor, CPatternBlock &PatternBlock);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// strFilePath <20>ļ<EFBFBD>·<EFBFBD><C2B7>
// bPattern =true ֽ<><D6BD><EFBFBD><EFBFBD> false <20><EFBFBD>ߣ<EFBFBD> <20><EFBFBD>߲<EFBFBD><DFB2>ö<EFBFBD>rul
// bOnlyReadBaseSize =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>Ч
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//AutoCADDxfData <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֵ:
// = 0 <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
// = 1 <20>ļ<EFBFBD><C4BC>򲻿<EFBFBD>
// = 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AutoCAD<41>ļ<EFBFBD>
// = 3 <20><><EFBFBD><EFBFBD>ASTM/AAMA<4D>ļ<EFBFBD>
int ReadTIIPFile(CString strFilePath, BOOL bPattern, BOOL bOnlyReadBaseSize, CReadDxfData &AutoCADDxfData);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// FileInfo <20>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
// bPattern =true ֽ<><D6BD><EFBFBD><EFBFBD> false <20><EFBFBD>ߣ<EFBFBD> <20><EFBFBD>߲<EFBFBD><DFB2>ö<EFBFBD>rul
// bOnlyReadBaseSize =true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>Ч
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//AutoCADDxfData <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void GetTIIPData(CTIIPFileInfor FileInfo, BOOL bPattern, BOOL bOnlyReadBaseSize, CReadDxfData &AutoCADDxfData);
//<2F><>CTPBlockInforתCPatternBlock<63><6B><EFBFBD><EFBFBD>
BOOL TrantsTPPatternBlock(CTPBlockInfor BlockInfor, CPatternBlock &PatternBlock);
#endif