#ifndef AFX_DBSTAKE_H__ #define AFX_DBSTAKE_H__ /*============================================================================* * Copyright(c), 1994-2008, Beijing Tangent Engineering Software Co.Ltd. * 作 者: 谢真 * 创建时间: 2008-12-01 * 描 述: 桩 * 归属项目: 给排水 =============================================================================*/ #if _MSC_VER > 1000 #pragma once #endif namespace TStake { enum StakeType { eVerLine = 0, eCircle = 1, eCross = 2, eLineLeft = 0, eLineRight = 1, eLineCen = 2, }; } #include "dbSymbolAnnotate.h" class PS_EXP TDbStake : public TDbSymbWithText { DECLARE_TENTBASE(); ACRX_DECLARE_MEMBERS(TDbStake); public: TDbStake(); virtual ~TDbStake(); 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 ExplodeOrDraw2d(XExplodeDraw &dc) const; virtual int GetFirstVersion()const{return 8;} virtual TSubText* HitTestText(XPoint pt)const {return NULL;}; private: Acad::ErrorStatus ExplodeOrDraw2dStake(XExplodeDraw &dc) const; Acad::ErrorStatus ExplodeOrDraw2dStakeText(XExplodeDraw &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; //文字角度 }; #endif // !defined(AFX_DBSTAKE_H__E11FD32B_5178_404C_8A84_AB8A041C9B7C__INCLUDED_)