|
|
|
|
#pragma once
|
|
|
|
|
#include "module.h"
|
|
|
|
|
|
|
|
|
|
typedef struct tag3DPOS//<2F><>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
float x;//X<><58><EFBFBD><EFBFBD>
|
|
|
|
|
float y;//Y<><59><EFBFBD><EFBFBD>
|
|
|
|
|
float z;//Z<><5A><EFBFBD><EFBFBD>
|
|
|
|
|
}POS;
|
|
|
|
|
|
|
|
|
|
class CPos : public tag3DPOS
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
CPos();
|
|
|
|
|
CPos(float tx, float ty, float tz);
|
|
|
|
|
CPos(POS pos);
|
|
|
|
|
CPos(CPoint pot);
|
|
|
|
|
~CPos();
|
|
|
|
|
float Clear();
|
|
|
|
|
CPos operator=(CPos pos);
|
|
|
|
|
CPos operator=(int pos);
|
|
|
|
|
CPos operator+(CPos pos);
|
|
|
|
|
CPos operator-(CPos pos);
|
|
|
|
|
bool operator==(CPos pos);
|
|
|
|
|
public:
|
|
|
|
|
friend CPoint Point(CPos pos);//<2F><>ʽ<EFBFBD><CABD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CDxfReadMgr :public CModule
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
CDxfReadMgr(void);
|
|
|
|
|
~CDxfReadMgr(void);
|
|
|
|
|
public:
|
|
|
|
|
bool ReadDxfFile(CString FilePath);
|
|
|
|
|
bool OpenDxfFileDlg(double Angle);
|
|
|
|
|
void SetDxfFileName(CString name) { m_dxfFileName = name; };
|
|
|
|
|
private:
|
|
|
|
|
bool ReadEntitiesSec(FILE* fp);
|
|
|
|
|
void LoadSynWord(CString strSynWord, vector<CString> &strArrayKeyWords);//<2F><><EFBFBD>عؼ<D8B9><D8BC><EFBFBD>
|
|
|
|
|
bool LoadLineData(FILE* fp);//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool LoadCircleData(FILE* fp);//<2F><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>
|
|
|
|
|
bool LoadPolyLineData(FILE* fp);//<2F><><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool LoadArcData(FILE* fp);//<2F><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool LoadMtextData(FILE* fp);//<2F><><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool LoadTextData(FILE* fp);//<2F><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool LoadDimensionData(FILE* fp);//<2F><><EFBFBD>ر<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
|
|
|
|
void LoadEllipseData(FILE* fp);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>
|
|
|
|
|
void SetVal(CPos &tagpos);
|
|
|
|
|
|
|
|
|
|
void CreatArcData(Dbxy Pt1, Dbxy Pt2, double Convexity, vector<Dbxy> &PtVec);
|
|
|
|
|
double GetCenterPtByConvexity(Dbxy BeginPoint, Dbxy EndPoint, double u, Dbxy &CenterPoint);
|
|
|
|
|
private:
|
|
|
|
|
CObArray m_DLineArray;//
|
|
|
|
|
CObArray m_CurveArray;//
|
|
|
|
|
CObArray m_RectangleArray;//
|
|
|
|
|
CObArray m_RoundRectangleArray;//
|
|
|
|
|
CObArray m_EllipseArray;//
|
|
|
|
|
CObArray m_RoundArray;//
|
|
|
|
|
CObArray m_PolygonArray;//
|
|
|
|
|
CPos m_pos;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
|
|
|
|
|
|
|
|
|
FILE* fp;
|
|
|
|
|
HICON m_hIcon;
|
|
|
|
|
char m_str[40];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
|
|
|
|
char m_strcont[255];//<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>**
|
|
|
|
|
float m_val;//<2F><><EFBFBD><EFBFBD>ֵ**
|
|
|
|
|
|
|
|
|
|
bool b_ShowArcRadius;//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>뾶(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ʾһ<CABE><D2BB>)
|
|
|
|
|
public:
|
|
|
|
|
CString m_dxfFileName;
|
|
|
|
|
private:
|
|
|
|
|
CString m_LINE;
|
|
|
|
|
CString m_CIRCLE;
|
|
|
|
|
CString m_POLYLINE;
|
|
|
|
|
CString m_ARC;
|
|
|
|
|
CString m_TEXT;
|
|
|
|
|
CString m_MTEXT;
|
|
|
|
|
CString m_DIMENSION;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern CDxfReadMgr *gDxfReadMgr;
|