2026-10-04 00:04:20 +08:00
|
|
|
//------------------------------------------------------------------------+
|
2026-09-28 15:28:50 +08:00
|
|
|
// Copyright (C), 1998-2012, Beijing Tangent Software Co. Ltd.
|
|
|
|
|
// = FileName : TDbStruSelfBase.h
|
|
|
|
|
// = Version : ver1.0
|
|
|
|
|
// = Author : zyc
|
|
|
|
|
// = CreateDate : 2012-11-05
|
2026-10-04 00:04:20 +08:00
|
|
|
// = Description: 独立基础平面图类声明
|
2026-09-28 15:28:50 +08:00
|
|
|
// = Maintainers:
|
|
|
|
|
//
|
|
|
|
|
//------------------------------------------------------------------------+
|
|
|
|
|
|
|
|
|
|
#ifdef TASD
|
|
|
|
|
#ifndef _TDBSTRUSELFBASE_H_
|
|
|
|
|
#define _TDBSTRUSELFBASE_H_
|
|
|
|
|
|
|
|
|
|
#ifndef _TDBSTRUENTITYBASE_H_
|
|
|
|
|
#include "TDbStruEntityBase.h"
|
|
|
|
|
#endif
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// KEY_SECTYP int 轮廓线类型
|
|
|
|
|
// KEY_B double 独基宽
|
|
|
|
|
// KEY_H double 独基高
|
|
|
|
|
// KEY_POS AcGePoint3d 插入点
|
|
|
|
|
// KEY_AXANG double 轴转角
|
|
|
|
|
// KEY_H2 double 独基z方向高度
|
|
|
|
|
// KEY_CLAB CString 构件编号
|
|
|
|
|
#define KEY_INSPTX _T("InsPtX") // double 偏心距X
|
|
|
|
|
#define KEY_INSPTY _T("InsPtY") // double 偏心距Y
|
2026-09-28 15:28:50 +08:00
|
|
|
|
|
|
|
|
class TARCH_EXP TDbStruSelfBase : public TDbStruEntityBase
|
|
|
|
|
{
|
|
|
|
|
DECLARE_TENTBASE();
|
|
|
|
|
ACRX_DECLARE_MEMBERS(TDbStruSelfBase);
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
TDbStruSelfBase();
|
|
|
|
|
virtual ~TDbStruSelfBase();
|
|
|
|
|
|
|
|
|
|
// AcDbEntity
|
|
|
|
|
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler* pFiler);
|
|
|
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const;
|
|
|
|
|
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
|
|
|
|
|
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 subGetClassID(CLSID* pClsid) const;
|
|
|
|
|
|
|
|
|
|
// TEntityBase
|
|
|
|
|
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
|
|
|
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(TGGiExplodeDrawBase &dc) const;
|
|
|
|
|
virtual Acad::ErrorStatus GetExtents2d(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const;
|
|
|
|
|
virtual Acad::ErrorStatus GetExtents(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const;
|
|
|
|
|
virtual const TCHAR *GetDefaultLayer() const;
|
|
|
|
|
virtual BOOL IsValid() const;
|
2026-10-04 00:04:20 +08:00
|
|
|
// 支持夹点ctrl功能切换
|
2026-09-28 15:28:50 +08:00
|
|
|
virtual int GetCtrlToggleIndex()const;
|
|
|
|
|
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);
|
|
|
|
|
virtual TEntityBase::DrawType GetDrawType() const;
|
|
|
|
|
virtual bool GetStandardFaceBody(AcDbVoidPtrArray& arFacePtrs) const;
|
|
|
|
|
virtual bool GetSafeProtectedSpace(AcDbVoidPtrArray& arFacePtrs) const;
|
|
|
|
|
virtual bool GetSection(
|
|
|
|
|
const AcDbFace &face,
|
|
|
|
|
const AcGeVector3d &vtPlaneSecDir,
|
|
|
|
|
std::vector<TObjSectionRecord> §ionRecords,
|
|
|
|
|
AcDbVoidPtrArray &arFillPtrs) const;
|
|
|
|
|
virtual CString GetXml(const AcGeMatrix3d& mat) const;
|
|
|
|
|
|
|
|
|
|
virtual int GetFirstVersion()const;
|
|
|
|
|
virtual bool IsModelEntity() const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
void GenerateOutline(); // 生成轮廓线
|
|
|
|
|
const TGGePoly2D& GetOutline(); // 获取轮廓线
|
2026-09-28 15:28:50 +08:00
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 裁剪关系数组操作
|
2026-09-28 15:28:50 +08:00
|
|
|
void SetAssocIds(const AcDbObjectIdArray& ids);
|
|
|
|
|
void GetAssocIds(AcDbObjectIdArray& ids);
|
|
|
|
|
void RemoveAssocIds(const AcDbObjectId& id);
|
|
|
|
|
|
|
|
|
|
private:
|
2026-10-04 00:04:20 +08:00
|
|
|
void UpdateInfoFromOutlineRect(); // 根据轮廓线获取实体数据:插入点、宽、高,矩形
|
|
|
|
|
void UpdateInfoToOutlineRect(); // 根据实体数据生成轮廓线,矩形
|
2026-09-28 15:28:50 +08:00
|
|
|
static const Adesk::UInt8 g_nVersion;
|
|
|
|
|
TGGePoly2D m_polyOutline;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
AcDbObjectIdArray m_arAssocBeamIds; //裁剪独基的梁对象数组
|
2026-09-28 15:28:50 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|