#pragma once #include "TImpSpecFitting.h" class THImpHvacBroSymbol :public TImpSpecFitting { public: THImpHvacBroSymbol(); virtual ~THImpHvacBroSymbol(); protected: //{{AFX_ARX_METHODS(THImpHvacElbow) virtual BOOL IsValid(TDbXDataMap* pXMap); virtual void GetKindName(CString& sName); virtual int GetInterfaceCount() const; 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 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 Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &mode) const; //virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &mode) const; //virtual AcDbPolyline* MakePolyCurve() const; virtual BOOL MakeCurves(TComplexCurve& cplCurve) const; //virtual BOOL GetCurvesInSide(TComplexCurve& compCurve) const; //virtual BOOL MakePolyCurveFaces(AcDbVoidPtrArray& arFaces); virtual Acad::ErrorStatus transformBy(const AcGeMatrix3d& xform); virtual TDb::Position ExplainGripIndex(int nIndex) const; 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 Acad::ErrorStatus moveStretchPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus moveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); 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; //}}AFX_ARX_METHODS // 处理实体删除后操作 virtual void OnSubErase(Adesk::Boolean erasing); // 用户自定义调用, 用于复制法兰预览位移时,删除接口。区别仅位移情况 090916 virtual LRESULT UserCall(long i,LPVOID pData); private: // 得到边线宽 double GetEdgeLineWidth() const; // 是否是单线变径 BOOL IsSingleLine() const; BOOL GetInterfaceSizeData(int nIndex, TInterface& pipeInterface) const; // 夹点移动消息处理 BOOL OnMoveGripPointMsgNotify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs); // 对象移动消息处理 BOOL OnTransformMsgNotify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs); // 尺寸调整消息处理 BOOL OnSizeMsgNotify(const TInterfaceModifyMsg& iModiMsg, TInterfaceModifyMsgs& iModiMsgs); Acad::ErrorStatus OnCHorEqualRMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); int AutoAppendPt(TComplexCurve &cplCurve, TCurveElement &cplEle, AcGePoint3d &ptS, AcGePoint3d &ptMid, AcGePoint3d &ptE) const; // 矩形内部二维轮廓 BOOL GetSectInsertPt(AcGePoint3dArray &arPts, AcDbPolyline &Poly) const; // 圆形内部二维轮廓 BOOL GetCirInsertPt(AcGePoint3dArray &arPts) const; // 绘制轮廓 BOOL MakeBroSymbol2D(TComplexCurve& cplCurve) const; Acad::ErrorStatus MoveGripRandom(TDb::Position ePos, const AcGeVector3d& offset ); };