//------------------------------------------------------------------------+ // Copyright (C), 1998-2012, Beijing Tangent Software Co. Ltd. // = FileName : TDbStruSymbInsitu.h // = Version : ver1.0 // = Author : zyc // = CreateDate : 2012-07-11 // = Description: 原位标注实体类声明 // = Maintainers: // //------------------------------------------------------------------------+ #ifdef TASD #ifndef _TDBSTRUSYMBINSITU_H_ #define _TDBSTRUSYMBINSITU_H_ #include "TDbStruEntityBase.h" // 纵筋 KEY_VERBAR CString // 箍筋 KEY_STIRRUP CString // 腰筋 KEY_MIDDLEBAR CString // 截面尺寸 KEY_SECSIZE CString // 顶面高差 KEY_HEIGHTDIFF CString // 行间距 KEY_ROWSPACE double // 文本样式 KEY_TS AcDbObjectId // 字高 KEY_TH double // 文本位置点 KEY_POS AcGePoint3d // 文本方向 KEY_DIR AcGeVector3d // 标注线终点 KEY_END AcGePoint3d #define KEY_TEXT _T("Text") // 标注文本 CString #define KEY_DISTRATE _T("DistRate") // 行间距系数 double #define KEY_ALIGNFLAG _T("AlignFlag") // 对齐方式 int 0-左对齐,1-右对齐,2,居中对齐 #define KEY_MASK _T("MaskFlag") // 背景屏蔽 int 0-不屏蔽,1-屏蔽背景 class TARCH_EXP TDbStruSymbInsitu : public TDbStruEntityBase { public: DECLARE_TENTBASE(); ACRX_DECLARE_MEMBERS(TDbStruSymbInsitu); TDbStruSymbInsitu(); ~TDbStruSymbInsitu(); // Overriden function from AcDbEntity virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler* pFiler); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const; virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler* pFiler); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler* pFiler) const; // Overriden function from TEntityBase virtual Acad::ErrorStatus ExplodeOrDraw2d(TGGiExplodeDrawBase &dc) const; virtual Acad::ErrorStatus ExplodeOrDraw3d(TGGiExplodeDrawBase &dc) const; virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus subGetGripPoints( AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subMoveGripPointsAt( const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints) const; virtual Acad::ErrorStatus subMoveStretchPointsAt( const AcDbIntArray& indices, const AcGeVector3d& offset); // 夹点提示 virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; virtual Acad::ErrorStatus subGetOsnapPoints( AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subGetTransformedCopy( const AcGeMatrix3d& xform, AcDbEntity*& pEnt) const; virtual Acad::ErrorStatus copyFrom(const AcRxObject* pSrc); virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const; virtual Acad::ErrorStatus subWblockClone( AcRxObject* pOwner, AcDbObject*& pClonedObject, AcDbIdMapping& idMap, Adesk::Boolean isPrimary) const; virtual Acad::ErrorStatus subDeepClone(AcDbObject* pOwner, AcDbObject*& pClonedObject, AcDbIdMapping& idMap, Adesk::Boolean isPrimary) const; // 获得二维包围盒 virtual Acad::ErrorStatus GetExtents2d(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const; // 获得三维包围盒 virtual Acad::ErrorStatus GetExtents(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const; //取动态属性显示数据 virtual void GetTips(TDPtrList& lstInfo) const; virtual const TCHAR *GetDefaultLayer() const; void SetSubText(long i,CString sText); virtual BOOL IsValid() const; // 支持夹点ctrl功能切换 virtual int GetCtrlToggleIndex()const; // 属性匹配 virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); // 获得标准三维面 virtual bool GetStandardFaceBody(AcDbVoidPtrArray& arFacePtrs) const; // 获得安全保护区 virtual bool GetSafeProtectedSpace(AcDbVoidPtrArray& arFacePtrs) const; // 获得剖面 virtual bool GetSection(const AcDbFace &face, const AcGeVector3d& vtPlaneSecDir, std::vector §ionRecords, AcDbVoidPtrArray& arFillPtrs) const; // 获得XML virtual CString GetXml(const AcGeMatrix3d& mat) const; virtual int GetFirstVersion()const; virtual bool IsModelEntity() const; public: int GetDimRows(); // 标注文本行数 double GetAngle() const; static const Adesk::UInt8 g_nVersion; private: bool DrawDimText(TGGiExplodeDrawBase& dc) const; // 标注文本 bool GetTextDir(AcGeVector3d& vtDir) const; bool GetTextAngle(double& dAngle) const; }; #endif #endif