You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.0 KiB
C

#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;