Files
envi-code/SourceCode/Code2026/tg_shs/inc/TArch/TDbStruSymbInsitu.h
T
2026-09-28 15:28:50 +08:00

137 lines
4.7 KiB
C++

//------------------------------------------------------------------------+
// 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<TObjInfoUnit>& 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<TObjSectionRecord> &sectionRecords,
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