453 lines
20 KiB
C++
453 lines
20 KiB
C++
#ifndef _TEImpCabTee_H__
|
|
#define _TEImpCabTee_H__
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "TImpSpecFitting.h"
|
|
|
|
class TEImpCabTee : public TImpSpecFitting
|
|
{
|
|
public:
|
|
TEImpCabTee();
|
|
virtual ~TEImpCabTee();
|
|
public:
|
|
|
|
// 接口描述对象
|
|
virtual int GetInterfaceCount() const;
|
|
|
|
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 BOOL SetInterfaceRelation(const AcGePoint3d& ptConnect,const AcDbObjectId& idConnect);
|
|
|
|
// 移除接口关联关系
|
|
virtual BOOL RemoveInterfaceRelation(const AcGePoint3d& ptConnect,const AcDbObjectId& idConnect);
|
|
|
|
// 接口更改通知
|
|
virtual BOOL NotifyInterfaceToModify(const TInterfaceModifyMsg& iModiMsg,TInterfaceModifyMsgs& iModiMsgs);
|
|
|
|
virtual TDb::Position ExplainGripIndex(int nIndex) const;
|
|
|
|
virtual void GetKindName(CString& sName);
|
|
|
|
//获取三维的壳对象
|
|
virtual int GetXBaseShell(TXShell& xShell);
|
|
|
|
//获取体的范围方块
|
|
virtual int GetBodyBox(AcDbExtents& ext);
|
|
|
|
virtual CString GetXml() const;
|
|
virtual CString GetXml(const AcGeMatrix3d& mat) const;
|
|
|
|
// add by 2011.02.21 剖切功能 注意 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;
|
|
|
|
public:
|
|
virtual BOOL MakeCurves(TComplexCurve& cplCurve) const;
|
|
virtual BOOL GetCurvesInSide(TComplexCurve& compCurve) const;
|
|
|
|
virtual AcDbPolyline* MakePolyCurve() const;
|
|
virtual BOOL MakePolyCurveFaces(AcDbVoidPtrArray& arFaces);
|
|
|
|
BOOL NoneConectLineIfNeed(TComplexCurve& cplCurve) const;
|
|
|
|
virtual void GetTips(CMapStringToString& mapLable2Tip) const;
|
|
|
|
public:
|
|
//{{AFX_ARX_METHODS(TDbImpCabElbow)
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &mode) const;
|
|
virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &mode) const;
|
|
|
|
virtual Acad::ErrorStatus transformBy(const AcGeMatrix3d& xform);
|
|
|
|
virtual Acad::ErrorStatus moveStretchPointsAt(const AcDbIntArray& indices,
|
|
const AcGeVector3d& offset);
|
|
virtual Acad::ErrorStatus moveGripPointsAt(const AcDbIntArray& indices,
|
|
const AcGeVector3d& offset);
|
|
|
|
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 void list() const;
|
|
virtual Acad::ErrorStatus getClassID(CLSID* pClsid) const;
|
|
//}}AFX_ARX_METHODS
|
|
|
|
protected:
|
|
|
|
static void FreeBuffer(AcDbVoidPtrArray& arCurves);
|
|
|
|
// 夹点移动消息处理
|
|
BOOL OnMoveGripPointMsgNotify(const TInterfaceModifyMsg& iModiMsg,TInterfaceModifyMsgs& iModiMsgs);
|
|
|
|
// 对象移动消息处理
|
|
BOOL OnTransformByMsgNotify(const TInterfaceModifyMsg& iModiMsg,TInterfaceModifyMsgs& iModiMsgs);
|
|
|
|
// 尺寸调整消息处理
|
|
BOOL OnSizeMsgNotify(const TInterfaceModifyMsg& iModiMsg,TInterfaceModifyMsgs& iModiMsgs);
|
|
|
|
|
|
void GetEqualRTVExtents(DList<XPoly2D>& polyLst) const;
|
|
|
|
void GetEqualTSideVExtents(DList<XPoly2D>& polyLst) const;
|
|
|
|
void GetEqualTopSideVExtents(DList<XPoly2D>& polyLst) const;
|
|
|
|
void GetEqualRMidVExtents(DList<XPoly2D>& polyLst) const;
|
|
|
|
// 下角垂直等径三通 add by wzh 2012/10/16 null
|
|
void GetEqualRBAngVExtents(DList<XPoly2D>& polyLst) const;
|
|
|
|
|
|
private:
|
|
Acad::ErrorStatus OnCEqualRMoveGripPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset);
|
|
|
|
// 获取垂足点
|
|
BOOL GetVerticalFootPoint(const AcGePoint3d& pickPoint,
|
|
const AcGePoint3d& lastPoint,
|
|
AcGePoint3d& ptVerFoot) const;
|
|
|
|
BOOL GetTeeMidLine(TComplexCurve& compCurve) const;
|
|
|
|
// 获取最近点
|
|
BOOL GetNearestPoint(const AcGePoint3d& pickPoint,
|
|
AcGePoint3d& ptNear) const;
|
|
|
|
// 槽式水平等径
|
|
void EqualHVMakeCurvesNor(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualHVMakeCurvesNorZ(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualHMakeCurvesNorY(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualHMakeCurvesNorX(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualHVMakeCurvesIgnore(TComplexCurve& cplCurve,int& nNum) const; // 斜向水平等径三通 add by wzh 2012/11/12
|
|
|
|
// 槽式上垂直等径
|
|
void EqualUpVMakeCurvesNor(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualUpVMakeCurvesNorX(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualUpVMakeCurvesNorZ(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualUpVMakeCurvesNorY(TComplexCurve& cplCurve,int& nNum) const;
|
|
|
|
// 槽式下垂直等径
|
|
void EqualBotVMakeCurvesNor(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualBotVMakeCurvesNorX(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualBotVMakeCurvesNorZ(TComplexCurve& cplCurve,int& nNum) const;
|
|
|
|
// 槽式上边垂直等径
|
|
void EqualTopSideVMakeCurvesNor(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualTopSideVMakeCurvesNorZ(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualTopSideVMakeCurvesNorX(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualTopSideVMakeCurvesNorY(TComplexCurve& cplCurve,int& nNum) const;
|
|
|
|
// 槽式下边垂直等径三通
|
|
void EqualDSideVMakeCurvesNor(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualDSideVMakeCurvesNorZ(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualDSideVMakeCurvesNorX(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualDSideVMakeCurvesNorY(TComplexCurve& cplCurve,int& nNum) const;
|
|
|
|
// 槽式上边中间垂直等径
|
|
void EqualUpMidVMakeCurvesNor(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualUpMidVMakeCurvesNorZ(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualUpMidVMakeCurvesNorX(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualUpOrBMidVMakeCurvesNorY(TComplexCurve& cplCurve,int& nNum) const;
|
|
|
|
// 槽式下边中间垂直等径
|
|
void EqualBMidVMakeCurvesNor(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualBMidVMakeCurvesNorZ(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualBMidVMakeCurvesNorX(TComplexCurve& cplCurve,int& nNum) const;
|
|
|
|
// 槽式上角垂直等径三通 2012/10/23 add by wzh NULL
|
|
void EqualUpAngleVMakeCurvesNor(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualUpAngleVMakeCurvesNorZ(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualUpAngleVMakeCurvesNorX(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualUpAngleVMakeCurvesNorY(TComplexCurve& cplCurve,int& nNum) const;
|
|
|
|
// 槽式下角垂直等径三通 2012/10/23 add by wzh
|
|
void EqualDAngleVMakeCurvesNor(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualDAngleVMakeCurvesNorZ(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualDAngleVMakeCurvesNorX(TComplexCurve& cplCurve,int& nNum) const;
|
|
void EqualDAngleVMakeCurvesNorY(TComplexCurve& cplCurve,int& nNum) const;
|
|
|
|
Acad::ErrorStatus ExplodeOrDraw3dOfP(XExplodeDraw &mode) const;
|
|
Acad::ErrorStatus ExplodeOrDraw3dOfC(XExplodeDraw &mode) const;
|
|
Acad::ErrorStatus ExplodeOrDraw3dOfT(XExplodeDraw &mode) const;
|
|
|
|
// 三通绘制
|
|
// 槽式
|
|
void EqualRHVExplodeOrDraw3d(XExplodeDraw &mode) const; // 槽式 水平垂直等径三通
|
|
void EqualRHIgnoreExplodeOrDraw3d(XExplodeDraw &mode) const; // 槽式 斜向水平等径三通 2012/11/12 add by wzh
|
|
|
|
void EqualTSideVExplodeOrDraw3d(XExplodeDraw &mode) const; // 槽式 上边垂直等径三通
|
|
void EqualDSideVExplodeOrDraw3d(XExplodeDraw &mode) const; // 槽式 下边垂直等径三通
|
|
|
|
void EqualRTVExplodeOrDraw3d(XExplodeDraw &mode) const; // 槽式 上垂直等径三通
|
|
void EqualRBVExplodeOrDraw3d(XExplodeDraw &mode) const; // 槽式 下垂直等径三通
|
|
|
|
void EqualTopSideVExplodeOrDraw3d(XExplodeDraw &mode) const; // 槽式 上边中间垂直等径三通
|
|
void EqualRMidVExplodeOrDraw3d(XExplodeDraw &mode) const; // 槽式 下边中间垂直等径三通
|
|
|
|
void EqualRTAngleVExplodeOrDraw3d(XExplodeDraw &mode) const; // 槽式 上角垂直等径三通 add by wzh 2012-10-23 NULL
|
|
void EqualRBAngleVExplodeOrDraw3d(XExplodeDraw &mode) const; // 槽式 下角垂直等径三通 add by wzh 2012-10-23
|
|
|
|
// 梯式
|
|
void EqualRHVExplodeOrDraw3dOfT(XExplodeDraw &mode) const; // 梯式 水平等径
|
|
void EqualRHIgnoreExplodeOrDraw3dOfT(XExplodeDraw &mode) const; // 梯式 斜向水平等径三通 2012/11/12 add by wzh
|
|
|
|
void EqualRTVExplodeOrDraw3dOfT(XExplodeDraw &mode) const; // 梯式 上垂直等径三通
|
|
void EqualRBVExplodeOrDraw3dOfT(XExplodeDraw &mode) const; // 梯式 下垂直等径三通
|
|
|
|
void EqualTopSideVExplodeOrDraw3dOfT(XExplodeDraw &mode) const; // 梯式 上边垂直等径三通
|
|
void EqualDSideVExplodeOrDraw3dOfT(XExplodeDraw &mode) const; // 梯式 下边垂直等径三通
|
|
|
|
void EqualTSideVExplodeOrDraw3dOfT(XExplodeDraw &mode) const; // 梯式 上边中间垂直等径三通
|
|
void EqualRMidVExplodeOrDraw3dOfT(XExplodeDraw &mode) const; // 梯式 下边中间垂直等径三通
|
|
|
|
void EqualRTAngleVExplodeOrDraw3dOfT(XExplodeDraw &mode) const; // 梯式 上角垂直等径三通 add by wzh 2012-10-23 NULL
|
|
void EqualRBAngleVExplodeOrDraw3dOfT(XExplodeDraw &mode) const; // 梯式 下角垂直等径三通 add by wzh 2012-10-23 NULL
|
|
|
|
|
|
//////////
|
|
|
|
|
|
void DrawCube(XExplodeDraw &mode,const AcGeVector3d &vtDir, const AcGePoint3dArray &ptArr, double dThick) const;
|
|
|
|
// MakePolyCurve
|
|
void MakePolyCurveOfHEqlR(AcDbPolyline*& pPl) const; // 槽式 水平等径
|
|
|
|
void MakePolyCurveOfUMidEqlR(AcDbPolyline*& pPl) const; // 槽式 上边中间垂直等径三通
|
|
void MakePolyCurveOfBMidEqlR(AcDbPolyline*& pPl) const; // 槽式 下边中间垂直等径三通
|
|
|
|
void MakePolyCurveOfTVerEqlR(AcDbPolyline*& pPl) const; // 槽式 上垂直等径三通
|
|
void MakePolyCurveOfBVerEqlR(AcDbPolyline*& pPl) const; // 槽式 下垂直等径三通
|
|
|
|
void MakePolyCurveOfTSidEqlR(AcDbPolyline*& pPl) const; // 槽式 下边垂直等径三通
|
|
void MakePolyCurveOfBSidEqlR(AcDbPolyline*& pPl) const; // 槽式 上边垂直等径三通
|
|
|
|
void MakePolyCurveOfUAngEquR(AcDbPolyline*& pPl) const; // 槽式 上角垂直等径三通 add by wzh 2012-10-23 NULL
|
|
void MakePolyCurveOfBAngEquR(AcDbPolyline*& pPl) const; // 槽式 下角垂直等径三通 add by wzh 2012-10-23
|
|
|
|
|
|
// MakePolyCurveFaces
|
|
void MakePolyCurveFacesOfHEqlR(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfHEqlRXY(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfHEqlRZ(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfHEqlRIgnore(AcDbVoidPtrArray& arFaces); // 斜向水平等径三通 add by wzh 2012/11/12
|
|
|
|
void MakePolyCurveFacesOfUMidEqlR(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfUMidEqlRX(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfUMidEqlRY(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfUMidEqlRZ(AcDbVoidPtrArray& arFaces);
|
|
|
|
void MakePolyCurveFacesOfBMidEqlR(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfBMidEqlRX(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfBMidEqlRY(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfBMidEqlRZ(AcDbVoidPtrArray& arFaces);
|
|
|
|
void MakePolyCurveFacesOfTVerEqlR(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfTVerEqlRXY(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfTVerEqlRZ(AcDbVoidPtrArray& arFaces);
|
|
|
|
void MakePolyCurveFacesOfBVerEqlR(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfBVerEqlRXY(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfBVerEqlRZ(AcDbVoidPtrArray& arFaces);
|
|
|
|
void MakePolyCurveFacesOfTSidEqlR(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfTSidEqlRX(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfTSidEqlRY(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfTSidEqlRZ(AcDbVoidPtrArray& arFaces);
|
|
|
|
void MakePolyCurveFacesOfBSidEqlR(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfBSidEqlRX(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfBSidEqlRY(AcDbVoidPtrArray& arFaces);
|
|
|
|
// 上角垂直等径三通 add by wzh 2012-10-23 NULL
|
|
void MakePolyCurveFacesOfUAngEquR(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfUAngEquRX(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfUAngEquRY(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfUAngEquRZ(AcDbVoidPtrArray& arFaces);
|
|
|
|
// 下角垂直等径三通 add by wzh 2012-10-23
|
|
void MakePolyCurveFacesOfBAngEquR(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfBAngEquRX(AcDbVoidPtrArray& arFaces);//?
|
|
void MakePolyCurveFacesOfBAngEquRY(AcDbVoidPtrArray& arFaces);
|
|
void MakePolyCurveFacesOfBAngEquRZ(AcDbVoidPtrArray& arFaces);
|
|
|
|
//GetOsnapPoints
|
|
void GetOsnapPointsOfHEqlR(AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& pickPoint,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const;
|
|
void GetOsnapPointsOfUMidEqlR(AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& pickPoint,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const;
|
|
void GetOsnapPointsOfBMidEqlR(AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& pickPoint,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const;
|
|
void GetOsnapPointsOfTVerEqlR(AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& pickPoint,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const;
|
|
void GetOsnapPointsOfBVerEqlR(AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& pickPoint,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const;
|
|
void GetOsnapPointsOfTSidEqlR(AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& pickPoint,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const;
|
|
void GetOsnapPointsOfBSidEqlR(AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& pickPoint,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const;
|
|
void GetOsnapPointsOfUAngEqlR(AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& pickPoint,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const; // 上角垂直等径三通 add by wzh 2012-10-23 NULL
|
|
void GetOsnapPointsOfBAngEqlR(AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& pickPoint,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const; // 下角垂直等径三通 add by wzh 2012-10-23o
|
|
|
|
//GetCurvesInSide
|
|
void GetCurvesInSideOfHEqlR(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfHEqlRX(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfHEqlRY(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfHEqlRZ(TComplexCurve& cplCurve) const;
|
|
|
|
void GetCurvesInSideOfUMidEqlR(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfUMidEqlRX(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfUMidEqlRY(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfUMidEqlRZ(TComplexCurve& cplCurve) const;
|
|
|
|
void GetCurvesInSideOfBMidEqlR(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBMidEqlRX(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBMidEqlRZ(TComplexCurve& cplCurve) const;
|
|
|
|
void GetCurvesInSideOfTVerEqlR(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfTVerEqlRX(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfTVerEqlRY(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfTVerEqlRZ(TComplexCurve& cplCurve) const;
|
|
|
|
void GetCurvesInSideOfBVerEqlR(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBVerEqlRX(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBVerEqlRY(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBVerEqlRZ(TComplexCurve& cplCurve) const;
|
|
|
|
void GetCurvesInSideOfTSidEqlR(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfTSidEqlRX(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfTSidEqlRY(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfTSidEqlRZ(TComplexCurve& cplCurve) const;
|
|
|
|
void GetCurvesInSideOfBSidEqlR(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBSidEqlRX(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBSidEqlRY(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBSidEqlRZ(TComplexCurve& cplCurve) const;
|
|
|
|
// 上角垂直等径三通 add by wzh 2012-10-23 NULL
|
|
void GetCurvesInSideOfUAngEqlR(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfUAngEqlRX(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfUAngEqlRY(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfUAngEqlRZ(TComplexCurve& cplCurve) const;
|
|
|
|
// 下角垂直等径三通 add by wzh 2012-10-23o
|
|
void GetCurvesInSideOfBAngEqlR(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBAngEqlRX(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBAngEqlRY(TComplexCurve& cplCurve) const;
|
|
void GetCurvesInSideOfBAngEqlRZ(TComplexCurve& cplCurve) const;
|
|
|
|
|
|
private:
|
|
void FormatPolyline(AcDbPolyline*& pPl,TComplexCurve& cplCurve,int nNum) const;
|
|
void FormatArcPolyline(AcDbPolyline*& pPl,TComplexCurve& cplCurve,int nNum) const;
|
|
AcDbFace* CreateAcDbFace(const AcGePoint3d& pt1,
|
|
const AcGePoint3d& pt2,
|
|
const AcGePoint3d& pt3,
|
|
const AcGePoint3d& pt4);
|
|
BOOL CreateAcDbArcFace(AcDbVoidPtrArray& arFaces,const AcGePoint3d& ptSta,const AcGePoint3d& ptEnd,const AcGePoint3d& ptMid);
|
|
void CreateFaceByMesh(XExplodeDraw &mode,AcGePoint3d& pt1,AcGePoint3d& pt2,AcGePoint3d& pt3,AcGePoint3d& pt4) const;
|
|
|
|
// 计算曲线中点
|
|
AcGePoint3d GetPolyCurMidPoint(const AcGePoint3d& pt1,const AcGePoint3d& pt2,const AcGePoint3d& ptGeM) const;
|
|
|
|
//
|
|
AcGePoint3d GetPolyCurMidPoint(const AcGePoint3d& pt1,const AcGePoint3d& pt2,const AcGePoint3d& ptBase, double dAngle) const;
|
|
|
|
// 计算外切于两等距线的圆心, 用于拐角为单弧/双弧的斜向三通/四通 2012/11/16 add by wzh
|
|
AcGePoint3d GetPolyCurveCentre(const AcGePoint3d& pt1,const AcGePoint3d& pt2,const AcGePoint3d& ptBase,double dAngle) const;
|
|
|
|
|
|
BOOL GetIndexOfPointIsOn(TComplexCurve& cplCurv,const AcGePoint3d& ptOn,int& nIndex) const;
|
|
|
|
CString GetCurrentTypeName() const;
|
|
void AppendAcDbExtents(std::vector<AcGePoint3d>& vctpt,AcDbExtents& ext);
|
|
|
|
private:
|
|
// 点
|
|
int GetBodyBoxOfTHorEqualR(AcDbExtents& ext);
|
|
int GetBodyBoxOfTVerEqualR(AcDbExtents& ext);
|
|
int GetBodyBoxOfTDVerEqualR(AcDbExtents& ext);
|
|
int GetBodyBoxOfTUSMVEqualR(AcDbExtents& ext);
|
|
int GetBodyBoxOfTDMVEqualR(AcDbExtents& ext);
|
|
int GetBodyBoxOfTDSVEqualR(AcDbExtents& ext);
|
|
int GetBodyBoxOfTUSVEqualR(AcDbExtents& ext);
|
|
int GetBodyBoxOfTUAVEqualR(AcDbExtents& ext); // 上角垂直等径三通 add by wzh 2012-10-23 null
|
|
int GetBodyBoxOfTBAVEqualR(AcDbExtents& ext); // 下角垂直等径三通 add by wzh 2012-10-23
|
|
|
|
// 外壳
|
|
int GetXBaseShellOfTHorEqualR(TXShell& xShell);
|
|
int GetXBaseShellOfTVerEqualR(TXShell& xShell);
|
|
int GetXBaseShellOfTDVerEqualR(TXShell& xShell);
|
|
int GetXBaseShellOfTUSMVerEqualR(TXShell& xShell);
|
|
int GetXBaseShellOfTDSMVerEqualR(TXShell& xShell);
|
|
int GetXBaseShellOfTDSVerEqualR(TXShell& xShell);
|
|
int GetXBaseShellOfTUSVerEqualR(TXShell& xShell);
|
|
int GetXBaseShellOfTUAVerEqualR(TXShell& xShell); // 上角垂直等径三通 add by wzh 2012-10-23 null
|
|
int GetXBaseShellOfTBAVerEqualR(TXShell& xShell); // 下角垂直等径三通 add by wzh 2012-10-23
|
|
|
|
|
|
};
|
|
|
|
#endif //_TEImpCabTee_H__
|