378 lines
15 KiB
C++
378 lines
15 KiB
C++
// 暖通风管实现类
|
||||
|
|
//
|
|||
|
|
// 直风管示意图:
|
|||
|
|
// 水平管: ⑩━━⑾ 垂直矩形/扁圆管: 垂直圆管:
|
|||
|
|
// / ⑤
|
|||
|
|
// ┏━━━━/ ━━⑨━━━━━━┓ ┏━━⑥━━┓ /~~~~~\
|
|||
|
|
// ┃ / ──→ ┃ ┃ ② ┃ / ②\
|
|||
|
|
// ⑥②━━━④━━━①━━━━━━③⑦ ④ ① ③ | ① ③
|
|||
|
|
// ┃ ┃ ┃ ┃ \ /
|
|||
|
|
// ┗━━━━━━━⑧━━━━━━┛ ┗━━⑤━━┛ \_____/
|
|||
|
|
//
|
|||
|
|
// 单线: ⑧━━⑨ 垂直矩形/扁圆管/垂直圆管:
|
|||
|
|
// /
|
|||
|
|
// / ⑤ ②
|
|||
|
|
// ⑥②━━━④━━━①━━━━━━③⑦ ①
|
|||
|
|
//
|
|||
|
|
//
|
|||
|
|
// 软风管示意图:
|
|||
|
|
// 水平管: ⑩━━⑾ 垂直矩形/扁圆管: 垂直圆管:
|
|||
|
|
// /
|
|||
|
|
// ┏━━━━/ ━━⑨━━━━━━┓ ┏━━⑥━━┓ /~~~~~\
|
|||
|
|
// ┃ / ──→ ┃ ┃ ② ┃ / ②\
|
|||
|
|
// ⑥②━━━④━⑤━①━━━━━━③⑦ ④ ① ③ | ① ③
|
|||
|
|
// ┃ ┃ ┃ ┃ \ /
|
|||
|
|
// ┗━━━━━━━⑧━━━━━━┛ ┗━━⑤━━┛ \_____/
|
|||
|
|
//
|
|||
|
|
// 单线: ⑧━━⑨ 垂直矩形/扁圆管/垂直圆管:
|
|||
|
|
// /
|
|||
|
|
// / ②
|
|||
|
|
// ⑥②━━━④━⑤━①━━━━━━③⑦ ①
|
|||
|
|
//
|
|||
|
|
//
|
|||
|
|
// 水平管夹点说明:
|
|||
|
|
// ①: 风管中心移动点
|
|||
|
|
// ②: 风管长度延伸点
|
|||
|
|
// ③: 风管长度延伸点
|
|||
|
|
// ④: 标注位置点
|
|||
|
|
// ⑤: 直风管中间命令激活点/软风管中间曲率调整点
|
|||
|
|
// ⑥: 左端命令激活点
|
|||
|
|
// ⑦: 右端命令激活点
|
|||
|
|
// ⑧: 管径尺寸调整点/单线管标注引线位置点
|
|||
|
|
// ⑨: 管径尺寸调整点/单线标注引线方向点
|
|||
|
|
// ⑩: 双线标注引线位置点
|
|||
|
|
// ⑾: 双线标注引线方向点
|
|||
|
|
//
|
|||
|
|
// 垂直管夹点说明:
|
|||
|
|
// ①: 风管中心移动点
|
|||
|
|
// ②: 命令激活点
|
|||
|
|
// ③: 管径尺寸调整点
|
|||
|
|
// ④: 管径尺寸调整点
|
|||
|
|
// ⑤: 管径尺寸调整点
|
|||
|
|
// ⑥: 管径尺寸调整点
|
|||
|
|
|
|||
|
|
|
|||
|
|
#if !defined(__THIMPHVACDUCT_H__)
|
|||
|
|
#define __THIMPHVACDUCT_H__
|
|||
|
|
|
|||
|
|
#if _MSC_VER > 1000
|
|||
|
|
#pragma once
|
|||
|
|
#endif // _MSC_VER > 1000
|
|||
|
|
|
|||
|
|
#include "TDbImpPipeBase.h"
|
|||
|
|
|
|||
|
|
class TDbPipeBase;
|
|||
|
|
|
|||
|
|
class THImpHvacDuct : public TDbImpPipeBase
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
THImpHvacDuct();
|
|||
|
|
THImpHvacDuct(TDbPipeBase* pOwner);
|
|||
|
|
virtual ~THImpHvacDuct();
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
//{{AFX_ARX_METHODS(TDbPipeBase)
|
|||
|
|
virtual BOOL IsValid(TDbXDataMap* pXMap);
|
|||
|
|
virtual BOOL GetInterface(int nIndex, TInterface& pipeInterface) const;
|
|||
|
|
virtual BOOL GetInterface(const AcGePoint3d& ptConnect, TInterface& pipeInterface) const;
|
|||
|
|
virtual BOOL HasInterface(const AcGePoint3d& ptConnect, const AcGeVector3d& vtDir);
|
|||
|
|
virtual BOOL NotifyInterfaceToModify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs);
|
|||
|
|
Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &mode) const;
|
|||
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &mode) const;
|
|||
|
|
virtual BOOL MakeCurves(TComplexCurve& cplCurve) const;
|
|||
|
|
virtual BOOL GetCurvesInSide(TComplexCurve& compCurve) const;
|
|||
|
|
virtual AcDbPolyline* MakePolyCurve() const;
|
|||
|
|
virtual BOOL MakePolyCurveFaces(AcDbVoidPtrArray& arFaces);
|
|||
|
|
virtual Acad::ErrorStatus transformBy(const AcGeMatrix3d& xform);
|
|||
|
|
virtual Acad::ErrorStatus getStretchPoints(AcGePoint3dArray& stretchPoints) const;
|
|||
|
|
virtual Acad::ErrorStatus getGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const;
|
|||
|
|
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 TDb::Position ExplainGripIndex(int nIndex) const;
|
|||
|
|
virtual Acad::ErrorStatus moveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset);
|
|||
|
|
|
|||
|
|
virtual Acad::ErrorStatus moveStretchPointsAt(const AcDbIntArray& indices,
|
|||
|
|
const AcGeVector3d& offset);
|
|||
|
|
virtual Acad::ErrorStatus getStartPoint(AcGePoint3d& x0) const;
|
|||
|
|
virtual Acad::ErrorStatus getStartParam(double& x0) const;
|
|||
|
|
virtual Acad::ErrorStatus getEndPoint(AcGePoint3d& x0) const;
|
|||
|
|
virtual Acad::ErrorStatus getEndParam(double& x0) const;
|
|||
|
|
|
|||
|
|
virtual Acad::ErrorStatus getParamAtDist(double dist,double& param) const;
|
|||
|
|
virtual Acad::ErrorStatus getParamAtPoint(const AcGePoint3d& x0,double& x1)const;
|
|||
|
|
virtual Acad::ErrorStatus getPointAtDist(double x0,AcGePoint3d& x1) const;
|
|||
|
|
virtual Acad::ErrorStatus getPointAtParam(double x0,AcGePoint3d& x1) const;
|
|||
|
|
virtual Acad::ErrorStatus getDistAtPoint(const AcGePoint3d& x0,
|
|||
|
|
double& x1)const;
|
|||
|
|
virtual Acad::ErrorStatus getDistAtParam(double param, double& dist) const;
|
|||
|
|
|
|||
|
|
virtual Acad::ErrorStatus intersectWith(const AcDbEntity* pEnt,
|
|||
|
|
AcDb::Intersect intType,
|
|||
|
|
const AcGePlane& projPlane,
|
|||
|
|
AcGePoint3dArray& points,
|
|||
|
|
INT_PTR thisGsMarker = 0,
|
|||
|
|
INT_PTR otherGsMarker = 0) const;
|
|||
|
|
virtual Acad::ErrorStatus intersectWith(const AcDbEntity* pEnt,
|
|||
|
|
AcDb::Intersect intType,
|
|||
|
|
AcGePoint3dArray& points,
|
|||
|
|
INT_PTR thisGsMarker = 0,
|
|||
|
|
INT_PTR otherGsMarker = 0) const;
|
|||
|
|
|
|||
|
|
virtual Acad::ErrorStatus getSplitCurves(const AcGePoint3dArray& points,
|
|||
|
|
AcDbVoidPtrArray& curveSegments) const;
|
|||
|
|
virtual Acad::ErrorStatus getSplitCurves(const AcGeDoubleArray& params,
|
|||
|
|
AcDbVoidPtrArray& curveSegments) const;
|
|||
|
|
virtual Acad::ErrorStatus getClosestPointTo( const AcGePoint3d& givenPnt, const AcGeVector3d& direction,
|
|||
|
|
AcGePoint3d& pointOnCurve, Adesk::Boolean extend) const;
|
|||
|
|
virtual Acad::ErrorStatus getClosestPointTo(const AcGePoint3d& givenPnt,
|
|||
|
|
AcGePoint3d& pointOnCurve,
|
|||
|
|
Adesk::Boolean extend = Adesk::kFalse) const;
|
|||
|
|
|
|||
|
|
virtual Acad::ErrorStatus extend(double newParam);
|
|||
|
|
virtual Acad::ErrorStatus extend(Adesk::Boolean extendStart,
|
|||
|
|
const AcGePoint3d& toPoint);
|
|||
|
|
virtual Acad::ErrorStatus getClassID(CLSID* pClsid) const;
|
|||
|
|
virtual BOOL OPMInfo(LPCTSTR pszName, TDb::OPMInfo* pInfo);
|
|||
|
|
virtual void GetTips(CMapStringToString& mapLable2Tip) const;
|
|||
|
|
virtual void list() const;
|
|||
|
|
virtual void CopyPropertiesTo(AcDbObjectId& idTgr,unsigned gMatchFlag);
|
|||
|
|
virtual void CopyPropertiesTo(AcDbObjectIdArray& arIds,unsigned gMatchFlag);
|
|||
|
|
//}}AFX_ARX_METHODS
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
//获取三维的壳对象
|
|||
|
|
virtual int GetXBaseShell(TXShell& xShell);
|
|||
|
|
|
|||
|
|
//获取体的范围方块
|
|||
|
|
virtual int GetBodyBox(AcDbExtents& ext);
|
|||
|
|
|
|||
|
|
// 导出XML mcl add 2010.12.20
|
|||
|
|
// virtual CString GetXml() const;
|
|||
|
|
virtual CString GetXml(const AcGeMatrix3d& mat) const;
|
|||
|
|
|
|||
|
|
// mcl add 2011.1.17 剖切功能。 注意 GetSection内不应将std::vector<TObjSectionRecord>参数清空
|
|||
|
|
virtual bool GetSection(const AcDbFace &face, const AcGeVector3d &vtPlaneSecDir,
|
|||
|
|
std::vector<TObjSectionRecord> §ionRecord, AcDbVoidPtrArray& arFillPtrs) const;
|
|||
|
|
|
|||
|
|
// 剖切用,返回Z坐标最高、最低点
|
|||
|
|
virtual Acad::ErrorStatus GetExtents(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const;
|
|||
|
|
|
|||
|
|
virtual Acad::ErrorStatus GetClipBoundary(TGGePoly2D& poly) const;
|
|||
|
|
|
|||
|
|
virtual bool IsMeClip() const;
|
|||
|
|
|
|||
|
|
virtual bool IsClipMe(const TEntityBase* pEnt=NULL)const;//ok是否被裁剪
|
|||
|
|
|
|||
|
|
// 以下4个函数,开放给TDbHbacDuct使用Lixl modify 2012-3-10
|
|||
|
|
// 得到软管圆心,如果不是软管,则返回0点
|
|||
|
|
AcGePoint3d GetCirCenter() const;
|
|||
|
|
|
|||
|
|
// 获得风管中点和两端方向向量
|
|||
|
|
AcGePoint3d GetDirect(AcGeVector3d& vtStart, AcGeVector3d& vtEnd) const;
|
|||
|
|
|
|||
|
|
// 是否是弧管
|
|||
|
|
BOOL IsArcDuct() const;
|
|||
|
|
|
|||
|
|
// 初始化为弧(仅仅针对弧管)
|
|||
|
|
BOOL InitArc(AcDbArc &arc) const;
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
// 风管是否水平放置
|
|||
|
|
BOOL IsHorzAlignment() const;
|
|||
|
|
|
|||
|
|
// 风管是否垂直放置
|
|||
|
|
BOOL IsVertAlignment() const;
|
|||
|
|
|
|||
|
|
// 是否是单线风管
|
|||
|
|
BOOL IsSingleLine() const;
|
|||
|
|
|
|||
|
|
// 获取系统类型
|
|||
|
|
HvacModelType GetModeType() const;
|
|||
|
|
|
|||
|
|
// 判断软风管是否能正确绘制
|
|||
|
|
BOOL IsCanDrawSoft() const;
|
|||
|
|
|
|||
|
|
// 复原标注点
|
|||
|
|
// void ReSetDimPoint() const;
|
|||
|
|
|
|||
|
|
// 获取接口尺寸数据type,size,size1
|
|||
|
|
BOOL GetInterfaceSizeData(int nIndex, TInterface& pipeInterface) const;
|
|||
|
|
|
|||
|
|
// 求出软管调节点
|
|||
|
|
AcGePoint3d GetAdjustPt() const;
|
|||
|
|
|
|||
|
|
// 求出圆立管尺寸点
|
|||
|
|
AcGePoint3d GetAVertCirSizePt() const;
|
|||
|
|
|
|||
|
|
// 得到半个椭圆多段线 各个关键弧点, polyLine必须为顺序添加的4个Vertext点
|
|||
|
|
void GetArcPoint(AcDbPolyline &polyLine, AcGePoint3dArray &ptArcArr) const;
|
|||
|
|
|
|||
|
|
// 得到软管半径,如果不是软管,则返回0
|
|||
|
|
double GetRadius() const;
|
|||
|
|
|
|||
|
|
// 辅助构建决定遮挡面, pt1, pt2, pt3分别为面上不同三点,vtNormal为法向,dEle返回距原点高度
|
|||
|
|
AcGePlane GetHidePlane(AcGePoint3d pt1, AcGePoint3d pt2, AcGePoint3d pt3,
|
|||
|
|
const AcGeVector3d vtNormal, double &dEle) const;
|
|||
|
|
|
|||
|
|
// 得到用的较多的关键的四个点
|
|||
|
|
void GetFourKeyPoints( AcGePoint3dArray &ptArr) const;
|
|||
|
|
|
|||
|
|
// 如果弧管设置了起止点方向,将关键的四个点转换为实际的四个点
|
|||
|
|
void ConverFourKeyPts(AcGePoint3dArray &ptArr) const;
|
|||
|
|
|
|||
|
|
// 得到单线模式遮挡面关键点,仅限非立管
|
|||
|
|
void GetSingleKeyPoints(AcGePoint3dArray &ptArr) const;
|
|||
|
|
|
|||
|
|
AcDbObjectId GetBaseLayerId() const;
|
|||
|
|
|
|||
|
|
// 得到边线宽
|
|||
|
|
double GetEdgeLineWidth() const;
|
|||
|
|
// 得到中心线宽
|
|||
|
|
double GetCentLineWidth() const;
|
|||
|
|
// 得到端部线宽
|
|||
|
|
double GetEndLineWidth() const;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 是否绘制首端或末端
|
|||
|
|
BOOL IsHideStart() const;
|
|||
|
|
BOOL IsHideEnd() const;
|
|||
|
|
|
|||
|
|
// 首尾是否连接了管件
|
|||
|
|
BOOL IsStartConnect() const;
|
|||
|
|
BOOL IsEndConnect() const;
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 夹点移动消息处理
|
|||
|
|
BOOL OnMoveGripPointMsgNotify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs);
|
|||
|
|
// 对象移动消息处理
|
|||
|
|
BOOL OnTransformMsgNotify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs);
|
|||
|
|
// 尺寸调整消息处理
|
|||
|
|
BOOL OnSizeMsgNotify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs);
|
|||
|
|
|
|||
|
|
// 绘制直风管三维图形
|
|||
|
|
Acad::ErrorStatus ExplodeOrDrawStraight3d(XExplodeDraw &mode) const ;
|
|||
|
|
// 矩形直风管三维图形
|
|||
|
|
Acad::ErrorStatus ExplodeOrDrawRectStraight3d(XExplodeDraw &mode) const;
|
|||
|
|
// 圆形直风管三维图形
|
|||
|
|
Acad::ErrorStatus ExplodeOrDrawCircStraight3d(XExplodeDraw &mode) const;
|
|||
|
|
// 椭圆形直风管三维图形
|
|||
|
|
Acad::ErrorStatus ExplodeOrDrawOblateStraight3d(XExplodeDraw &mode) const;
|
|||
|
|
|
|||
|
|
// 绘制软风管三维图形
|
|||
|
|
Acad::ErrorStatus ExplodeOrDrawSoft3d(XExplodeDraw &mode) const;
|
|||
|
|
// 矩形软风管三维图形
|
|||
|
|
Acad::ErrorStatus ExplodeOrDrawRectSoft3d(XExplodeDraw &mode) const;
|
|||
|
|
// 圆形软风管三维图形
|
|||
|
|
Acad::ErrorStatus ExplodeOrDrawCircSoft3d(XExplodeDraw &mode) const;
|
|||
|
|
// 椭圆形软风管三维图形
|
|||
|
|
Acad::ErrorStatus ExplodeOrDrawOblateSoft3d(XExplodeDraw &mode) const;
|
|||
|
|
|
|||
|
|
// 构件风管内衬图形 add by hh 2013-9-2
|
|||
|
|
BOOL MakeDuctLiningCurves(TComplexCurve& cplCurve) const;
|
|||
|
|
|
|||
|
|
// 构建水平风管二维图形
|
|||
|
|
BOOL MakeHorz2DCurves(TComplexCurve& cplCurve, int nOutOrIn) const;
|
|||
|
|
// 构建水平直风管二维图形
|
|||
|
|
BOOL MakeHorzStraight2DCurves(TComplexCurve& cplCurve, int nOutOrIn) const;
|
|||
|
|
// 构建水平软风管二维图形
|
|||
|
|
BOOL MakeHorzSoft2DCurves(TComplexCurve& cplCurve, int nOutOrIn) const;
|
|||
|
|
|
|||
|
|
// 构建垂直风管二维图形, nOutOrIn:外轮廓还是内部线, 0:外轮廓, 1内部线
|
|||
|
|
BOOL MakeVert2DCurves(TComplexCurve& cplCurve, int nOutOrIn) const;
|
|||
|
|
// 构建垂直直风管二维图形
|
|||
|
|
BOOL MakeVertStraight2DCurves(TComplexCurve& cplCurve, int nOutOrIn) const;
|
|||
|
|
// 构建垂直软风管二维图形
|
|||
|
|
BOOL MakeVertSoft2DCurves(TComplexCurve& cplCurve, int nOutOrIn ) const;
|
|||
|
|
|
|||
|
|
// 构建倾斜风管二维图形
|
|||
|
|
BOOL MakeIncl2DCurves(TComplexCurve& cplCurve, int nOutOrIn) const;
|
|||
|
|
// 构建倾斜直风管二维图形
|
|||
|
|
BOOL MakeInclStraight2DCurves(TComplexCurve& cplCurve, int nOutOrIn) const;
|
|||
|
|
// 构建倾斜软风管二维图形
|
|||
|
|
BOOL MakeInclSoft2DCurves(TComplexCurve& cplCurve, int nOutOrIn) const;
|
|||
|
|
|
|||
|
|
// 构建水平风管外轮廓
|
|||
|
|
AcDbPolyline* MakeHorzPolyCurve() const;
|
|||
|
|
// 构建水平直风管外轮廓
|
|||
|
|
AcDbPolyline* MakeHorzStraightPolyCurve() const;
|
|||
|
|
// 构建水平软风管外轮廓
|
|||
|
|
AcDbPolyline* MakeHorzSoftPolyCurve() const;
|
|||
|
|
|
|||
|
|
// 构建垂直风管外轮廓
|
|||
|
|
AcDbPolyline* MakeVertPolyCurve() const;
|
|||
|
|
// 构建垂直直风管外轮廓
|
|||
|
|
AcDbPolyline* MakeVertStraightPolyCurve() const;
|
|||
|
|
// 构建垂直软风管外轮廓
|
|||
|
|
AcDbPolyline* MakeVertSoftPolyCurve() const;
|
|||
|
|
|
|||
|
|
// 构建倾斜风管外轮廓
|
|||
|
|
AcDbPolyline* MakeInclPolyCurve() const;
|
|||
|
|
// 构建倾斜直风管外轮廓
|
|||
|
|
AcDbPolyline* MakeInclStraightPolyCurve() const;
|
|||
|
|
// 构建倾斜软风管外轮廓
|
|||
|
|
AcDbPolyline* MakeInclSoftPolyCurve() const;
|
|||
|
|
|
|||
|
|
// 构建水平风管外轮廓所围平面的3DFace组
|
|||
|
|
BOOL MakeHorzPolyCurveFaces(AcDbVoidPtrArray& arFaces) const;
|
|||
|
|
// 构建水平直风管外轮廓所围平面的3DFace组
|
|||
|
|
BOOL MakeHorzStraightPolyCurveFaces(AcDbVoidPtrArray& arFaces) const;
|
|||
|
|
// 构建水平软风管外轮廓所围平面的3DFace组
|
|||
|
|
BOOL MakeHorzSoftPolyCurveFaces(AcDbVoidPtrArray& arFaces) const;
|
|||
|
|
|
|||
|
|
// 构建垂直风管外轮廓所围平面的3DFace组
|
|||
|
|
BOOL MakeVertPolyCurveFaces(AcDbVoidPtrArray& arFaces) const;
|
|||
|
|
// 构建垂直直风管外轮廓所围平面的3DFace组
|
|||
|
|
BOOL MakeVertStraightPolyCurveFaces(AcDbVoidPtrArray& arFaces) const;
|
|||
|
|
// 构建垂直软风管外轮廓所围平面的3DFace组
|
|||
|
|
BOOL MakeVertSoftPolyCurveFaces(AcDbVoidPtrArray& arFaces) const;
|
|||
|
|
|
|||
|
|
// 构建倾斜风管外轮廓所围平面的3DFace组
|
|||
|
|
BOOL MakeInclPolyCurveFaces(AcDbVoidPtrArray& arFaces) const;
|
|||
|
|
// 构建倾斜直风管外轮廓所围平面的3DFace组
|
|||
|
|
BOOL MakeInclStraightPolyCurveFaces(AcDbVoidPtrArray& arFaces) const;
|
|||
|
|
// 构建倾斜软风管外轮廓所围平面的3DFace组
|
|||
|
|
BOOL MakeInclSoftPolyCurveFaces(AcDbVoidPtrArray& arFaces) const;
|
|||
|
|
|
|||
|
|
// 直管剖切
|
|||
|
|
virtual bool GetStraightSection(const AcDbFace &face, const AcGeVector3d &vtPlaneSecDir,
|
|||
|
|
std::vector<TObjSectionRecord> §ionRecord, AcDbVoidPtrArray& arFillPtrs) const;
|
|||
|
|
|
|||
|
|
// 弧管剖切
|
|||
|
|
virtual bool GetArcSection(const AcDbFace &face, const AcGeVector3d &vtPlaneSecDir,
|
|||
|
|
std::vector<TObjSectionRecord> §ionRecord, AcDbVoidPtrArray& arFillPtrs) const;
|
|||
|
|
|
|||
|
|
// 延伸夹点处理
|
|||
|
|
Acad::ErrorStatus MoveExtendGripPointsAt(TDb::Position ePos, const AcGeVector3d& offset, BOOL bAutoWork);
|
|||
|
|
// 移动夹点处理
|
|||
|
|
Acad::ErrorStatus MoveTransGripPointsAt(TDb::Position ePos, const AcGeVector3d& offset, BOOL bForcePer);
|
|||
|
|
// 调整夹点处理
|
|||
|
|
Acad::ErrorStatus MoveAdjustGripPointsAt(TDb::Position ePos, const AcGeVector3d& offset);
|
|||
|
|
// 标注夹点处理
|
|||
|
|
// Acad::ErrorStatus MoveDimGripPointsAt(TDb::Position ePos, const AcGeVector3d& offset);
|
|||
|
|
// 尺寸夹点处理
|
|||
|
|
Acad::ErrorStatus MoveSizeGripPointsAt(TDb::Position ePos, const AcGeVector3d& offset);
|
|||
|
|
// 命令夹点处理
|
|||
|
|
Acad::ErrorStatus MoveCommandGripPointsAt(TDb::Position ePos, const AcGeVector3d& offset);
|
|||
|
|
|
|||
|
|
// 专业应用数据
|
|||
|
|
TDbXDataMap* GetSpecialtyDataReadOnly() const;
|
|||
|
|
|
|||
|
|
// 根据首尾点重新设置normal
|
|||
|
|
AcGeVector3d ResetNormalByPt();
|
|||
|
|
|
|||
|
|
// 更新反应器中的标注(由夹点变化引起的变化)
|
|||
|
|
void UpdateDimInReactor(Position eGridPos, const AcGeVector3d& vtOff);
|
|||
|
|
|
|||
|
|
// 将倾斜软风管的数据转换为水平软风管 便于直接使用水平软风管的2D绘制
|
|||
|
|
// dataMap保存转换之前的数据
|
|||
|
|
BOOL TransInclSoftDuct(TDbXDataMap& dataMap) const;
|
|||
|
|
|
|||
|
|
BOOL MakeRealHorzSoft2DCurves(TComplexCurve& cplCurve, int nOutOrIn) const;
|
|||
|
|
void DisPoseArcPoint(AcGePoint3dArray& ptArr, AcGePoint3d ptC, AcGeVector3d vtNor) const;
|
|||
|
|
BOOL IsEdgeStart() const;
|
|||
|
|
BOOL IsEdgeEnd() const;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif // !defined(__THIMPHVACDUCT_H__)
|