112 lines
3.2 KiB
C++
112 lines
3.2 KiB
C++
#pragma once
|
|
|
|
namespace TStake
|
|
{
|
|
enum StakeType
|
|
{
|
|
eVerLine = 0,
|
|
eCircle = 1,
|
|
eCross = 2,
|
|
|
|
eLineLeft = 0,
|
|
eLineRight = 1,
|
|
eLineCen = 2,
|
|
};
|
|
}
|
|
|
|
#include "AecDbSymbWithText.h"
|
|
|
|
class CDbStake : public AecXDbSymbWithText
|
|
{
|
|
public:
|
|
ACRX_DECLARE_MEMBERS(CDbStake);
|
|
public:
|
|
CDbStake();
|
|
virtual ~CDbStake();
|
|
|
|
public:
|
|
//设置桩位置
|
|
void SetPositon(const AcGePoint3d &pt);
|
|
//设置文字
|
|
void SetText(LPCTSTR lpChar, double dValue);
|
|
//设置引线长度
|
|
void SetDerviLineLen(double dLen);
|
|
//设置引出距离
|
|
void SetDerviDis(double dDis);
|
|
//设置桩标注类型
|
|
void SetStakeType(int nType);
|
|
//设置桩放置类型
|
|
void SetStakeLablePlace(int nType);
|
|
//设置桩放置方向
|
|
void SetStakeDir(const AcGeVector3d &vt);
|
|
//设置桩比例系数
|
|
void SetStakeScale(double dScale = 1.0);
|
|
//修改桩前缀
|
|
void ChangeStakeBeforeChar(LPCTSTR lpChar);
|
|
//设置小数点位数
|
|
void SetTextDecimal(int nNum);
|
|
//设置文字旋转角度
|
|
void SetTextAng(double dAng);
|
|
|
|
//得到插入点
|
|
AcGePoint3d GetLocation();
|
|
//得到当前文字
|
|
void GetText(CString &sText);
|
|
//得到引线长度
|
|
double GetDerviLineLen();
|
|
//得到引出距离
|
|
double GetDerviDis();
|
|
//得到标注类型
|
|
int GetStakeType();
|
|
//得到桩放置类型
|
|
int GetStakeLablePlace();
|
|
//得到桩的值
|
|
double GetStakeValue();
|
|
//得到桩号前缀
|
|
void GetStakeBeforeChar(CString &sValue);
|
|
//得到小数点位数
|
|
int GetDecimalNum();
|
|
//得到文字旋转角度
|
|
double GetTextAng();
|
|
//从ENTITY派生
|
|
public:
|
|
//virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const;
|
|
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler*);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
|
|
virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler*);
|
|
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;
|
|
virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints,
|
|
AcDbIntArray& osnapModes,
|
|
AcDbIntArray& geomIds) const;
|
|
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray & stretchPoints) const;
|
|
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,
|
|
const AcGeVector3d& offset);
|
|
virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,
|
|
const AcGeVector3d& offset);
|
|
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
|
|
//tangent 派生
|
|
virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const;
|
|
virtual int GetFirstVersion()const { return 8; }
|
|
virtual SubText* HitTestText(XPoint pt)const { return NULL; };
|
|
|
|
private:
|
|
Acad::ErrorStatus ExplodeOrDraw2dStake(AcGiDraw &dc) const;
|
|
Acad::ErrorStatus ExplodeOrDraw2dStakeText(AcGiDraw &dc) const;
|
|
private:
|
|
const static Adesk::UInt8 g_nVersion; //版本控制
|
|
int m_nStakeType; //桩类型 竖条 圆点 十字叉
|
|
int m_nLablePosion; //标注位置 居左,右,中
|
|
AcGePoint3d m_ptPositon; //桩所在位置
|
|
AcGeVector3d m_vtDir; //标注的方向
|
|
double m_dLineLen; //引线长度
|
|
double m_dDerviDis; //引出距离
|
|
CString m_sText; //文字
|
|
double m_dScale; //桩的比例系数
|
|
|
|
CString m_sJoinChar; //连接字符
|
|
double m_dValue; //值
|
|
int m_nDecimal; //小数点位数
|
|
double m_dTextAng; //文字角度
|
|
};
|
|
|