#ifndef __AXISNOPARSER_H #define __AXISNOPARSER_H // 推导轴号类 // sg modify 1007113,导出给tch_anotate工程的主附转换命令使用 // class XAxisNoParser: public XString class TARCH_EXP XAxisNoParser: public XString { public: // sg modify 100530,接收轴号标注对象传来的“变前项”、“变后项”的排列规则 // XAxisNoParser(const TCHAR *pszNo) XAxisNoParser(const TCHAR *pszNo, BOOL bPreNo = FALSE) { *(XString *)this = pszNo; m_bChangePreNo = bPreNo; } BOOL GetDenominator(XString &sDenominator) const; // 求分母 BOOL GetNumerator(XString &sNumerator) const; // 求分子 // sg modify 100706,分子一般都是数字,修改参数接口,减少代码 // BOOL GetSubNo(XString &sSubNo) const; // 求附加轴线号(分子) BOOL GetSubNo(int &nSubNo) const; // 求附加轴线号(分子) BOOL GetRegionNo(XString &sRegion) const; // 求分区号 int GetMajorNo(XString &sMajorNo) const; // 求主轴号 BOOL GetMajorVarNo(XString &sMajorVar) const; // 求主轴号中可变的部分(对于双字母) BOOL GetMajorConstNo(XString &sMajorConst) const; // 求主轴号中不变的部分(对于双字母) // 求下一根轴号 // bNextIsMajor——下一根轴线是否是主轴线 BOOL GetNext(XString &sNextNo, BOOL bNextIsMajor) const; // 覆盖当前 BOOL GetNext(BOOL bNextIsMajor); public: // sg add 100521,根据8.5需求,添加下列函数 // 推算下个字母的内容 TCHAR GetNextAxisAlpha(TCHAR cCur, bool &bChangeOther) const; // sg add 100706,根据8.5新增加的变前项、变后项的规则,由szOld推导出szNew,成功返回true,否则返回false bool GetNext(XString szOld, XString &szNew) const; // sg add 100706,将szNo拆分为前项szFront和后项szBehind // 返回0:出现错误;返回1:正常解析;返回2:单个字母或全部都是数字;返回3:正常解析,但是判断含有分区号 short GetFrontAndBehindNo(XString szNo, XString &szFront, XString &szBehind) const; // nType:表示处理方式,0:如果是字母,到Y时,不再处理;1:针对单个字母类,自动处理到szNew中 bool GetNextNo(XString szOld, XString &szNew, int nType = 0) const; // 求首个轴号之前的一根轴号 // bPreIsMajor——前一根性质是主轴线嘛 BOOL GetPre(XString &sPreNo, BOOL bPreIsMajor) const; // add by xly on 100816 判断主轴号是否含有分区 static bool GetRegion(CString &csMajorAxis); public: // sg add 100530,保存“变前项”、“变后项”的排列规则 BOOL m_bChangePreNo; }; // 把轴线标记: |分解成两部分 BOOL SplitAxisFlag(const TCHAR *pszFullFlag, TCHAR * szHandle, int *nFlag); // 清除附加轴线标记 void ClearAttachFlag(XString &sFullFlag); //#define AXIS_ARC 0x01 //弧形轴网|矩形轴网 //#define AXIS_JS 0x02 //进深|开间 //#define AXIS_ATTACH 0x04 //辅助|正式 #endif