105 lines
4.5 KiB
C++
105 lines
4.5 KiB
C++
#ifndef _DB_BAND_WIN_H
|
|
#define _DB_BAND_WIN_H
|
|
|
|
#include "DbCornerWin.h"
|
|
|
|
#ifndef _TDBWALL_H_
|
|
#include "TDbWall.h"
|
|
#endif
|
|
|
|
//带形窗
|
|
class TARCH_EXP TDbBandWin:public TDbCornerWin
|
|
{
|
|
DECLARE_TENTBASE();
|
|
ACRX_DECLARE_MEMBERS(TDbBandWin);
|
|
private:
|
|
const static Adesk::UInt8 g_nVersion;
|
|
protected:
|
|
//TArch7数据
|
|
DList<AcDbSoftPointerId> m_idMidWalls;//中间墙
|
|
AcGePoint3d m_ptStart,m_ptEnd;//起点和终点
|
|
|
|
//导出参数
|
|
XPoly2D m_polyFirst;//墙中路径
|
|
XPoly2D m_polyFirstBase;//墙基线路径
|
|
public:
|
|
TDbBandWin();
|
|
|
|
void SetMidWallIds(const DList<AcDbObjectId>&idWalls);
|
|
void SetStartPoint(XPoint pt){assertWriteEnabled();m_ptStart=pt;}//ok
|
|
void SetEndPoint(XPoint pt){assertWriteEnabled();m_ptEnd=pt;}//ok
|
|
double GetWidth()const{return m_polyFirstBase.Distance2d();}//ok
|
|
XPoly2D GetPolyBase()const{return m_polyFirstBase;}//ok
|
|
TDbOpening* GetOpening(long iWall)const;
|
|
|
|
// sg add 120511,获取带形窗的形心线长度,含保温
|
|
double GetGeomCenterWidth() const;
|
|
|
|
//override TDbCornerWin
|
|
virtual const TCHAR* GetKindString()const{return _T("带形窗");}//ok
|
|
virtual long GetWallNum()const{return 2+m_idMidWalls.Length();}//ok
|
|
virtual AcDbObjectId GetWallId(long i)const;
|
|
virtual void SetWallId(long i,const AcDbObjectId&id);
|
|
virtual BOOL GetKeyCurves(XPoly2D &polyInside, XPoly2D &polyGlass1, XPoly2D &polyGlass2, XPoly2D &polyOutSide) const;
|
|
virtual TDbOpening *AsOpening(const TDbWall *pWall) const{return GetOpening(FindWallId(pWall->objectId()));}//ok
|
|
virtual BOOL UpdateParameters();
|
|
virtual void ValidateContainership(DList<AcDbObjectId> &lstWalls);
|
|
|
|
// sg add 101115,根据8.5需求调整默认标注位置,返回默认标注墙ID编号
|
|
virtual long GetDefaultLabelWallNum() const;
|
|
|
|
// sg add 110224,增加自动编号
|
|
virtual CString GetAutoLabel(bool &bAddNum)const;
|
|
|
|
// sg add 101129,支持导出XML
|
|
virtual CString GetXml(const AcGeMatrix3d& mat) const;
|
|
|
|
// Override from AcDbEntity
|
|
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
|
|
virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler*);
|
|
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;
|
|
virtual Acad::ErrorStatus subGetOsnapPoints(
|
|
AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& ptPick,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const
|
|
{return TDbEntity::GetOsnapPoints(osnapMode,gsSelectionMark,ptPick,lastPoint,viewXform,snapPoints,geomIds);}
|
|
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 subTransformBy(const AcGeMatrix3d&xform);
|
|
|
|
// Override form TEntityBase
|
|
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);
|
|
virtual int GetFirstVersion()const{return 7;}//ok
|
|
virtual Acad::ErrorStatus DownGradeSave(int nDrawMode, AcDbVoidPtrArray &entSet, BOOL *bErase)
|
|
{return TDbEntity::DownGradeSave(nDrawMode,entSet,bErase);}//ok
|
|
virtual void GetTips(DList<TObjInfoUnit> &) const; //取动态属性显示数据
|
|
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw&dc)const;
|
|
virtual BOOL IsValid()const;
|
|
virtual Acad::ErrorStatus GetPathPoly(XPoly2D&poly,AcGeVector3d &vt)const
|
|
{assertReadEnabled();poly=m_polyFirst;vt=AcGeVector3d::kZAxis;return Acad::eOk;}//ok
|
|
#if ADS>15
|
|
virtual void CreateGrip();
|
|
virtual Acad::ErrorStatus EntityToDim(long iGrip,long iDim,const AcDbEntity*pEnt);
|
|
virtual Acad::ErrorStatus DimToEntity(long iGrip,long iDim,double newValue,const AcGeVector3d& offset);
|
|
#endif
|
|
|
|
// add by gjm 三维剖切
|
|
virtual bool GetSection(const AcDbFace &face, const AcGeVector3d& vtPlaneSecDir,
|
|
std::vector<TObjSectionRecord> §ionRecords,
|
|
AcDbVoidPtrArray& arFillPtrs) const;
|
|
};
|
|
|
|
|
|
#endif |