142 lines
4.9 KiB
C++
142 lines
4.9 KiB
C++
#ifndef __THIMPHVACEGROUP_H__
|
|
#define __THIMPHVACEGROUP_H__
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "TImpSpecEquipment.h"
|
|
|
|
// 空气机组实现类
|
|
class TDbHvacEquipment;
|
|
class THImpHvacEGroup : public TImpSpecEquipment
|
|
{
|
|
public:
|
|
THImpHvacEGroup();
|
|
virtual ~THImpHvacEGroup();
|
|
|
|
public:
|
|
|
|
virtual void GetKindName(CString& sName);
|
|
virtual BOOL SetInterfaceRelation(const AcGePoint3d& ptConnect,const AcDbObjectId& idConnect);
|
|
virtual BOOL RemoveInterfaceRelation(const AcGePoint3d& ptConnect,const AcDbObjectId& idConnect);
|
|
virtual BOOL GetInterface(int nIndex,TInterface& pipeInterface) const;
|
|
virtual BOOL GetInterface(const AcGePoint3d& ptCon,TInterface& pipeInterface) const;
|
|
virtual BOOL HasInterface(const AcGePoint3d& ptCon,const AcGeVector3d& vtDir);
|
|
virtual int GetInterfaceCount() const;
|
|
|
|
virtual void list() const;
|
|
virtual TDb::Position ExplainGripIndex(int nIndex) const;
|
|
virtual Acad::ErrorStatus getClassID(CLSID* pClsid) const;
|
|
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &mode) const;
|
|
virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &mode) const;
|
|
virtual Acad::ErrorStatus transformBy(const AcGeMatrix3d& xform);
|
|
virtual Acad::ErrorStatus moveGripPointsAt(const AcDbIntArray& indices,
|
|
const AcGeVector3d& offset);
|
|
virtual Acad::ErrorStatus getOsnapPoints(AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const;
|
|
virtual Acad::ErrorStatus getGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes,
|
|
AcDbIntArray& geomIds) const;
|
|
// 接口更改通知
|
|
virtual BOOL NotifyInterfaceToModify(const TInterfaceModifyMsg& iModiMsg,TInterfaceModifyMsgs& iModiMsgs);
|
|
|
|
// 夹点移动消息处理
|
|
BOOL OnMoveGripPointMsgNotify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs);
|
|
|
|
//获取三维的壳对象
|
|
virtual int GetXBaseShell(TXShell& xShell);
|
|
|
|
//获取体的范围方块
|
|
virtual int GetBodyBox(AcDbExtents& ext) const;
|
|
|
|
// 根据参数名称获得实体的OPM信息,pszName:参数名称(XMap key值)
|
|
virtual BOOL OPMInfo(LPCTSTR pszName, TDb::OPMInfo* pInfo);
|
|
|
|
// 目前技术问题,暂不支持
|
|
// virtual void SetSubText(long i,CString sText);
|
|
|
|
// add by hh 2010-12-27 导出XML
|
|
// virtual CString GetXml() const;
|
|
virtual CString GetXml(const AcGeMatrix3d& mat) const;
|
|
|
|
private:
|
|
|
|
BOOL GetSeg2DId(int iIdx, AcDbObjectId &id) const;
|
|
|
|
double GetTotalWidth() const;
|
|
|
|
double GetTotalThick() const;
|
|
|
|
BOOL GetInterFaceLocal(int nIndex, AcGeVector3d &vt) const;
|
|
|
|
// 通过接口索引获得夹点命令码
|
|
int GetCmdType(int iIdx) const;
|
|
|
|
// 将接口索引拆分成子箱体的索引及子箱体接口索引
|
|
// 参数输入接口索引也输出子箱体接口索引, 返回值为子箱体索引
|
|
int ConvertToEquIndex(int &iIdx) const;
|
|
|
|
// 通过接口位置点来获得接口索引值
|
|
BOOL GetIFIndexFormPt(int &nIndex, const AcGePoint3d &pt) const;
|
|
|
|
// 通过接口索引来获得接口位置点
|
|
BOOL GetIFPoint(int iIdx, AcGePoint3d &pt) const;
|
|
|
|
// 通过子箱体索引,获得子箱体的基点
|
|
BOOL GetEquBasePoint(int iIndex, AcGePoint3d &ptBase) const;
|
|
|
|
// 绘制侧视图标注
|
|
void MakeSideViewDim(XExplodeDraw &mode) const;
|
|
|
|
// 将一段汉字拆分成单字,填充到CString数组中(用于竖向显示箱体段名称)
|
|
BOOL GetSubText(CString &sText, CStringArray &arText) const;
|
|
|
|
// 绘制模板文字,目前模版文字分离实体,单独布置为多行文字
|
|
void MakeTemplateText(XExplodeDraw &mode) const;
|
|
|
|
// 绘制俯视图
|
|
void MakePlanform2D(XExplodeDraw &mode) const;
|
|
|
|
// 绘制侧视图的简图画法中的 箱体外框
|
|
void MakeDiagramCurve(XExplodeDraw &mode) const;
|
|
|
|
// 绘制侧视图的简图画法中的 箱体名称
|
|
void MakeDiagramText(XExplodeDraw &mode) const;
|
|
|
|
// 获取简图画法中箱体外框的关键点:arPts为输出参数,pMap为输入参数(子箱体的map数据)
|
|
// dOffset输入参数(用于绘制立式底层被遮挡的子箱体外框),bNor输入参数(用于通知子箱体是否被遮挡)
|
|
void GetBoxPts(AcGePoint3dArray &arPts, TDbXDataMap *pMap, double dOffset = 0.0, BOOL bNor = TRUE) const;
|
|
|
|
// 获取子箱体外框的线段数据
|
|
void MakeBoxCurve(TComplexCurve &cplCurve, AcGePoint3dArray &arPts) const;
|
|
|
|
// 绘制子箱体:pMap为输入参数(子箱体的map数据)
|
|
// dOffset输入参数(用于绘制立式底层被遮挡的子箱体外框),bNor输入参数(用于通知子箱体是否被遮挡)
|
|
void DrawBox(XExplodeDraw &mode, TDbXDataMap *pMap, double dOffset = 0.0, BOOL bNor = TRUE) const;
|
|
|
|
// 获得机组总长
|
|
double GetTotalLen() const;
|
|
|
|
// 创建绘制用的TDbMText
|
|
TDbMText* CreateMText(TDbXDataMap *pMap) const;
|
|
|
|
// 创建绘制用的标注实体
|
|
AcDbAlignedDimension* CreateDimension(AcGePoint3d xLinePt1, AcGePoint3d xLinePt2, AcGePoint3d dimLinePt) const;
|
|
|
|
//为移动设备接口,获取其他控制接口
|
|
void GetOtherCtrlGrip(AcGePoint3dArray &arrPt ) const;
|
|
|
|
// 获取角点吸附点
|
|
void GetConerOsnapPt(AcGePoint3dArray &arrPt) const;
|
|
|
|
private:
|
|
|
|
// 用于子箱体的侧面绘制及其他部分功能
|
|
TDbHvacEquipment *m_pHvacEquipment;
|
|
};
|
|
|
|
|
|
#endif // !defined(__THIMPHVACEGROUP_H__)
|