#if !defined (READDXFFILE_H) #define READDXFFILE_H #include "PDSMath/StdAfx.h" #include //#include #include "ReadAutoCAD.h" #include "ReadASTM.h" #include "ReadTIIP.h" ////////////////////////////////////////////////////////////////////////// //款式信息 class CStyleInfo : public CObject { public: CString m_strStyleName; CString m_strBaseSizeName; CList m_listAllSize; int m_iUnit; //0 mm;=1 Inch CString m_strAuthor; CString m_strVersion; //20180127 版本号 CStyleInfo(void); CStyleInfo(CStyleInfo& a); ~CStyleInfo(void); void operator=(CStyleInfo& a); void Initial(void); }; class CReadDxfData : public CObject { public: int m_iDPMM; //款式信息,款式号型信息 CStyleInfo m_StyleInfo; BOOL m_bPattern; //=true 纸样;=false结构线 //结构线信息 CCurveNotchInforList m_listCurveOfFile; //文件中所有点线信息 CTextDataList m_listTextOfFile; //文件中所有字符信息 CLayerInforList m_listLayer; //纸样信息 CPatternBlockList m_listPattern; //纸样 //放码量 该变量只有读入rul文件有用 int m_iGradeCount; //放码量个数 int m_iSizeCount; //号型个数 //m_iSizeCount, m_iGradeCount只对m_RulData起作用 CPointData **m_pRulData; //m_RulData[iSizeIndex][iGradeIndex] public: CReadDxfData(void); CReadDxfData(CReadDxfData& a); ~CReadDxfData(void); void operator=(CReadDxfData& a); void Initial(void); CRect GetRect(); //计算实际点链 void CalcuateActualPoint(int iDPMM); //20200219 XQ 计算给定纸样的实际点链 //[输入][输出] pPatternBlock 纸样 void CalcuateActualPoint(int iDPMM, CPatternBlock *pPatternBlock); //放缩 //输入参数: //dScale 放大缩小比例 //说明: // 不需要偏移,放码量本身是相对量 void SetScale(double dScale); //颜色 //输入参数: // strLayer 颜色所有在层 //返回值: //颜色 COLORREF GetColor(CString strLayer); //查找颜色表(Auto CAD 根据索引对应颜色) //输入参数: // strColor 颜色索引 COLORREF FinColorTable(CString strColor); //得到线形 //输入参数: // iFileType = 0 ASTM/AAMA;=1 TIIP;=2 AutoCAD // strCurveViewType 文件读入的线形 //返回值: // 系统线形PS_SOLID... int GetCurveType(int iFileType, CString strCurveViewType); private: void DeleteElta(); void CopyData(CReadDxfData &a); //TIIP文件线形转换 //输入参数: // iValue 文件中的值 //返回值: // 系统的线类型 int CurveType_TIIP(int iValue); }; //读入文件 //输入参数: // strFilePath文件路径 // bPattern =true读纸样;false 结构线 // bReadSolid = true读入填充标识线;=false不读入 20210902 XQ //输出参数: // AutoCADDxfData 读入数据 //返回值: // =true 读入正确;=false读入错误 BOOL ReadAutoCADFile(CString strFilePath, BOOL bPattern, BOOL bReadSolid, CReadDxfData &AutoCADDxfData); //将读入的数据转成输出的数据 //[输入] EntitiesInfor 读入数据 //[输入] bPattern =true读纸样;false 结构线 //[输出] AutoCADDxfData 输出数据 void GetAutoCADDxfData(CAutoCADFileInfo FileInfo, BOOL bPattern, CReadDxfData &AutoCADDxfData); //得到输出数据 //[输入] BlockInfor 块信息 //[输入] listBlockInfor 所有块信息 //[输入][输出] listCurveOfFile 线条信息 //[输入][输出] listTextOfFile 文本信息 //[输入] dOffsetX/dOffsetY插入位置 //[输入] dSin, dCos 旋转角度 //[输入] dScaleX/dScaleY 放大缩小 20220408 XQ void GetAutoCADDxfData(CAuBlockInfor BlockInfor, CAuBlockInfoList &listBlockInfor, CCurveNotchInforList &listCurveOfFile, CTextDataList &listTextOfFile, double dOffsetX, double dOffsetY, double dSin, double dCos, double dScaleX, double dScaleY); //将读入的数据转成输出的数据 //输入参数: // strFilePath 文件路径 // bPattern =true 纸样, false 结构线, 结构线不用读rul // bOnlyReadBaseSize =true 仅读基码, 读纸样有效 //输出参数: //ASTMDxfData 输出数据 //返回值: // = 0 读入成功 // = 1 文件打不开 // = 2 可能是AutoCAD文件 // = 3 可能TIIP文件 int ReadASTMFile(CString strFilePath, BOOL bPattern, BOOL bOnlyReadBaseSize, CReadDxfData &ASTMDxfData); //将读入的数据转成输出的数据 //输入参数: // FileInfo 文件信息 // bPattern =true 纸样, false 结构线, 结构线不用读rul // bOnlyReadBaseSize =true 仅读基码, 读纸样有效 //输出参数: //ASTMDxfData 输出数据 void GetASTMData(CASTMFileInfor FileInfo, BOOL bPattern, BOOL bOnlyReadBaseSize, CReadDxfData &ASTMDxfData); //将CAMBlockInfor转CPatternBlock类型 BOOL TrantsAMPatternBlock(CString strAuthor, CAMBlockInfor BlockInfor, CPatternBlock &PatternBlock); //将读入的数据转成输出的数据 //输入参数: // strFilePath 文件路径 // bPattern =true 纸样, false 结构线, 结构线不用读rul // bOnlyReadBaseSize =true 仅读基码, 读纸样有效 //输出参数: //AutoCADDxfData 输出数据 //返回值: // = 0 读入成功 // = 1 文件打不开 // = 2 可能是AutoCAD文件 // = 3 可能ASTM/AAMA文件 int ReadTIIPFile(CString strFilePath, BOOL bPattern, BOOL bOnlyReadBaseSize, CReadDxfData &AutoCADDxfData); //将读入的数据转成输出的数据 //输入参数: // FileInfo 文件信息 // bPattern =true 纸样, false 结构线, 结构线不用读rul // bOnlyReadBaseSize =true 仅读基码, 读纸样有效 //输出参数: //AutoCADDxfData 输出数据 void GetTIIPData(CTIIPFileInfor FileInfo, BOOL bPattern, BOOL bOnlyReadBaseSize, CReadDxfData &AutoCADDxfData); //将CTPBlockInfor转CPatternBlock类型 BOOL TrantsTPPatternBlock(CTPBlockInfor BlockInfor, CPatternBlock &PatternBlock); #endif