//------------------------------------------------------------------------+ // Copyright (C), 1998-2011, Beijing Tangent Software Co. Ltd. // = FileName : TDbStruSlabHole类 // = Version : ver1.0 // = Author : xlc // = CreateDate : 2011-06-10 // = Description: 结构板洞类声明 // = Maintainers: // //------------------------------------------------------------------------+ #ifdef TASD #ifndef _TDBSTRUSLABHOLE_H_ #define _TDBSTRUSLABHOLE_H_ #ifndef _TDBSTRUHOLE_H_ #include "TDbStruHole.h" #endif #ifndef _TASSOCMSG_H_ #include "TAssocMsg.h" #endif //板洞字典数据 //插入点 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 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 // 夹点:位置点,柱子各顶点 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 // 夹点提示 virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;//ok // 绘制3D virtual Acad::ErrorStatus ExplodeOrDraw3d(TGGiExplodeDrawBase &dc) const;//ok // 绘制2D virtual Acad::ErrorStatus ExplodeOrDraw2d(TGGiExplodeDrawBase &dc) const;//ok // 获得二维包围盒 virtual Acad::ErrorStatus GetExtents2d(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const;//ok // 获得三维包围盒 virtual Acad::ErrorStatus GetExtents(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const;//ok // 统一标高 virtual bool UnifyElevation(double dElevation); //ok //取动态属性显示数据 virtual void GetTips(TDPtrList &) const; virtual const TCHAR *GetDefaultLayer() const; virtual BOOL IsValid() const; // 属性匹配 virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);//ok // 获得标准三维面 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; //TDbStruHole // 对象修改发出关联更改消息 virtual void PostAssocMsg(TAssocMsg assocMsg)const; // 对象接收到更改消息 virtual void ReceiveAssocMsg(TAssocMsg assocMsg);//ok // 建立关联关系 virtual void MakeAssocRelation(AcDbObject& ids);//ok virtual void MakeAssocRelation(AcDbObjectIdArray& ids); // 移除关联关系 virtual void RemoveAssocRelation(AcDbObjectId& id);//ok // 获取关联对象句柄 virtual void GetAssocRelation(AcDbObjectId& idAssoc)const;//ok // 获取关联关系,nType:关联类型;ar:关联对象句柄数组 virtual void GetAssocRelation(int nType, AcDbObjectIdArray& ar)const;//ok // x--宽度, y--宽度, z--转角 virtual TADSGePoint3d GetParameters() const; // 洞截面轮廓 virtual void GetOutline(TGGePoly2D &poly) const; //ok virtual const TGGePoly2D& GetOutlinePoly() const; //ok virtual void SetOutlinePoly(const TGGePoly2D &poly); //ok // 底标高 virtual double GetBottomElev() const; //ok virtual void SetBottomElev(double dElev); //ok private: void CopyData(TDbStruSlabHole *pHole); // 绘制折线 Acad::ErrorStatus DrawZX(TGGiExplodeDrawBase &dc) const; //板洞尺寸 void DrawBH(TGGiExplodeDrawBase &dc) const; // add by wjx得到左下角点和右上角的点 void GetLRPoint(TGGePoly2D poly, XPoint &ptL, XPoint &ptR)const; }; #endif #endif