Files
envi-code/SourceCode/Code2026/tg_shs/inc/TArch/TDbStruSlabHole.h
T

170 lines
5.5 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
//------------------------------------------------------------------------+
2026-09-28 15:28:50 +08:00
// Copyright (C), 1998-2011, Beijing Tangent Software Co. Ltd.
2026-10-04 00:04:20 +08:00
// = FileName : TDbStruSlabHole类
2026-09-28 15:28:50 +08:00
// = Version : ver1.0
// = Author : xlc
// = CreateDate : 2011-06-10
2026-10-04 00:04:20 +08:00
// = Description: 结构板洞类声明
2026-09-28 15:28:50 +08:00
// = Maintainers:
//
//------------------------------------------------------------------------+
#ifdef TASD
#ifndef _TDBSTRUSLABHOLE_H_
#define _TDBSTRUSLABHOLE_H_
#ifndef _TDBSTRUHOLE_H_
#include "TDbStruHole.h"
#endif
#ifndef _TASSOCMSG_H_
#include "TAssocMsg.h"
#endif
2026-10-04 00:04:20 +08:00
//板洞字典数据
//插入点 KEY_POS AcGePoint3d
//洞口法向 KEY_NORMAL AcGeVector3d
//关联对象ID KEY_ASSOC AcDbObjectId
//洞口轮廓线类型 KEY_SECTYP int
//洞口厚度 KEY_THICK double
//洞口线型ID KEY_LTID AcDbObjectId
//板洞折线点 KEY_ZXPTS AcGePoint3dArray
//矩形洞宽或圆洞直径 KEY_B double
//矩形洞高 KEY_H double
//洞总宽 KEY_SUMB double
//洞总高 KEY_SUMH double
2026-09-28 15:28:50 +08:00
class TARCH_EXP TDbStruSlabHole : public TDbStruHole
{
DECLARE_TENTBASE();
ACRX_DECLARE_MEMBERS(TDbStruSlabHole);
public:
TDbStruSlabHole();
virtual ~TDbStruSlabHole();
// Overriden function from AcDbEntity
virtual Acad::ErrorStatus subGetOsnapPoints(
AcDb::OsnapMode osnapMode,
INT_PTR gsSelectionMark,
const AcGePoint3d& pickPoint,
const AcGePoint3d& lastPoint,
const AcGeMatrix3d& viewXform,
AcGePoint3dArray& snapPoints,
AcDbIntArray& geomIds) const;//ok
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);//ok
virtual Acad::ErrorStatus subGetTransformedCopy(
const AcGeMatrix3d& xform,
AcDbEntity*& pEnt) const;
virtual Acad::ErrorStatus copyFrom(const AcRxObject* pSrc); //ok
2026-10-04 00:04:20 +08:00
// 夹点:位置点,柱子各顶点
2026-09-28 15:28:50 +08:00
virtual Acad::ErrorStatus subGetGripPoints(
AcGePoint3dArray& gripPoints,
AcDbIntArray& osnapModes,
AcDbIntArray& geomIds)const;//ok
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints) const;
virtual Acad::ErrorStatus subMoveGripPointsAt(
const AcDbIntArray& indices,
const AcGeVector3d& offset);//ok
virtual Acad::ErrorStatus subMoveStretchPointsAt(
const AcDbIntArray& indices,
const AcGeVector3d& offset);
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;
// Overriden function from TEntityBase
2026-10-04 00:04:20 +08:00
// 夹点提示
2026-09-28 15:28:50 +08:00
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;//ok
2026-10-04 00:04:20 +08:00
// 绘制3D
2026-09-28 15:28:50 +08:00
virtual Acad::ErrorStatus ExplodeOrDraw3d(TGGiExplodeDrawBase &dc) const;//ok
2026-10-04 00:04:20 +08:00
// 绘制2D
2026-09-28 15:28:50 +08:00
virtual Acad::ErrorStatus ExplodeOrDraw2d(TGGiExplodeDrawBase &dc) const;//ok
2026-10-04 00:04:20 +08:00
// 获得二维包围盒
2026-09-28 15:28:50 +08:00
virtual Acad::ErrorStatus GetExtents2d(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const;//ok
2026-10-04 00:04:20 +08:00
// 获得三维包围盒
2026-09-28 15:28:50 +08:00
virtual Acad::ErrorStatus GetExtents(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const;//ok
2026-10-04 00:04:20 +08:00
// 统一标高
2026-09-28 15:28:50 +08:00
virtual bool UnifyElevation(double dElevation); //ok
2026-10-04 00:04:20 +08:00
//取动态属性显示数据
2026-09-28 15:28:50 +08:00
virtual void GetTips(TDPtrList<TObjInfoUnit> &) const;
virtual const TCHAR *GetDefaultLayer() const;
virtual BOOL IsValid() const;
2026-10-04 00:04:20 +08:00
// 属性匹配
2026-09-28 15:28:50 +08:00
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);//ok
2026-10-04 00:04:20 +08:00
// 获得标准三维面
2026-09-28 15:28:50 +08:00
virtual bool GetStandardFaceBody(AcDbVoidPtrArray& arFacePtrs) const;
2026-10-04 00:04:20 +08:00
// 获得安全保护区
2026-09-28 15:28:50 +08:00
virtual bool GetSafeProtectedSpace(AcDbVoidPtrArray& arFacePtrs) const;
2026-10-04 00:04:20 +08:00
// 获得剖面
2026-09-28 15:28:50 +08:00
virtual bool GetSection(const AcDbFace &face, const AcGeVector3d& vtPlaneSecDir,
std::vector<TObjSectionRecord> &sectionRecords,
AcDbVoidPtrArray& arFillPtrs) const;
2026-10-04 00:04:20 +08:00
// 获得XML
2026-09-28 15:28:50 +08:00
virtual CString GetXml(const AcGeMatrix3d& mat) const;
virtual int GetFirstVersion()const;
virtual bool IsModelEntity() const;
//TDbStruHole
2026-10-04 00:04:20 +08:00
// 对象修改发出关联更改消息
2026-09-28 15:28:50 +08:00
virtual void PostAssocMsg(TAssocMsg assocMsg)const;
2026-10-04 00:04:20 +08:00
// 对象接收到更改消息
2026-09-28 15:28:50 +08:00
virtual void ReceiveAssocMsg(TAssocMsg assocMsg);//ok
2026-10-04 00:04:20 +08:00
// 建立关联关系
2026-09-28 15:28:50 +08:00
virtual void MakeAssocRelation(AcDbObject& ids);//ok
virtual void MakeAssocRelation(AcDbObjectIdArray& ids);
2026-10-04 00:04:20 +08:00
// 移除关联关系
2026-09-28 15:28:50 +08:00
virtual void RemoveAssocRelation(AcDbObjectId& id);//ok
2026-10-04 00:04:20 +08:00
// 获取关联对象句柄
2026-09-28 15:28:50 +08:00
virtual void GetAssocRelation(AcDbObjectId& idAssoc)const;//ok
2026-10-04 00:04:20 +08:00
// 获取关联关系,nType:关联类型;ar:关联对象句柄数组
2026-09-28 15:28:50 +08:00
virtual void GetAssocRelation(int nType, AcDbObjectIdArray& ar)const;//ok
2026-10-04 00:04:20 +08:00
// x--宽度, y--宽度, z--转角
2026-09-28 15:28:50 +08:00
virtual TADSGePoint3d GetParameters() const;
2026-10-04 00:04:20 +08:00
// 洞截面轮廓
2026-09-28 15:28:50 +08:00
virtual void GetOutline(TGGePoly2D &poly) const; //ok
virtual const TGGePoly2D& GetOutlinePoly() const; //ok
virtual void SetOutlinePoly(const TGGePoly2D &poly); //ok
2026-10-04 00:04:20 +08:00
// 底标高
2026-09-28 15:28:50 +08:00
virtual double GetBottomElev() const; //ok
virtual void SetBottomElev(double dElev); //ok
private:
void CopyData(TDbStruSlabHole *pHole);
2026-10-04 00:04:20 +08:00
// 绘制折线
2026-09-28 15:28:50 +08:00
Acad::ErrorStatus DrawZX(TGGiExplodeDrawBase &dc) const;
2026-10-04 00:04:20 +08:00
//板洞尺寸
2026-09-28 15:28:50 +08:00
void DrawBH(TGGiExplodeDrawBase &dc) const;
2026-10-04 00:04:20 +08:00
// add by wjx得到左下角点和右上角的点
2026-09-28 15:28:50 +08:00
void GetLRPoint(TGGePoly2D poly, XPoint &ptL, XPoint &ptR)const;
};
#endif
#endif