78 lines
2.5 KiB
C++
78 lines
2.5 KiB
C++
#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;
|
|
};
|
|
|
|
|
|
// 把轴线标记: <Handle>|<Flag>分解成两部分
|
|
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 |