#ifndef _CThunderCmdGroup_H #define _CThunderCmdGroup_H #if _MSC_VER > 1000 #pragma once #endif #include "ArxCmdGroup.h" #include "LayPinDlg.h" #include "ThunderDocReactor.h" #include #include class CThunderDbReactor; class TelThunderEditReactor; class TelThunderEditReactor; class CThunderCmdGroup : public ArxCmdGroup { DECLARE_DYNCREATE(CThunderCmdGroup); public: CThunderCmdGroup(); virtual ~CThunderCmdGroup(); public: typedef struct { TCHAR szThunderNumb[50]; int nGroupNO; double dThunderRadius; double dThunderProHeight; double dThunderDblDis; double dThunderBx; }DblSheetData; typedef struct { int nGroupNo; TCHAR szNo[16]; TCHAR szPinH[16]; double dProHeight; TCHAR szDist[16]; double dBx; }FoldDblSheetData; public: //{{AFX_AEC_ARX_CMD(CThunderCmdGroup) afx_arxcmd int ThunderTest(); afx_arxcmd int ThunderSetPinCmd(); afx_arxcmd int ThunderLayPinCmd(); afx_arxcmd int ThunderEditPinCmd(); afx_arxcmd int ThunderErasePinCmd(); afx_arxcmd int ThunderMovePinCmd(); afx_arxcmd int DrawThunderLine(); afx_arxcmd int ThunderEditLineCmd(); afx_arxcmd int ThunderEraseLineCmd(); afx_arxcmd int ThunderMoveLineCmd(); afx_arxcmd int newspheretest(); afx_arxcmd int ThunderDimentRadiusCmd(); afx_arxcmd int ThunderDimentBxCmd(); afx_arxcmd int ThunderSinSheetCmd(); afx_arxcmd int ThunderDblSheetCmd(); afx_arxcmd int ThunderSection(); afx_arxcmd int ThunderCaculateBook(); afx_arxcmd int ThunderArchHeight(); afx_arxcmd int ThunderPart3DCmd(); afx_arxcmd int ThunderPart3DBackCmd(); afx_arxcmd int Sphere(); afx_arxcmd int DblEditThunder(); afx_arxcmd int DbDEditThunder(); afx_arxcmd int FoldSetPinCmd(); afx_arxcmd int FoldLayPinCmd(); afx_arxcmd int FoldErasePinCmd(); afx_arxcmd int FoldEditPinCmd(); afx_arxcmd int FoldMovePinCmd(); afx_arxcmd int maptest(); afx_arxcmd int FoldDimentRadiusCmd(); afx_arxcmd int FoldDimentBxCmd(); afx_arxcmd int FoldSinSheetCmd(); afx_arxcmd int FoldDblSheetCmd(); afx_arxcmd int FoldCalcBookCmd(); //}}AFX_AEC_ARX_CMD DECLARE_AEC_ARXCMD_MAP(CThunderCmdGroup); public: // 是否执行ThunderDbReactor反应器里的绘画 static BOOL bIsAllowDraw; static BOOL bExecute; static BOOL bReDraw; static BOOL bReDrawFold; void ThunderDraw(); protected: virtual void OnAddCommands(); virtual void OnRemoveCommands(); private: // 加载ARX 操作 void OnLoadApp(); // 卸载ARX 操作 void OnUnloadApp(); // 获取指定避雷针的保护高度 bool GetCurPinProHeight(AcDbCircle* pCircle, CString& strHeight); // 删除标注半径 void DeleteOldDim(AcDbCircle* pCircle); // 判断点是否在此圆弧上 bool PointIsAtAcDbArc(const AcGePoint3d& ptTest, AcDbArc* pArc); // 排序所有过滤的实体Entity void SortAscendEntities(lstCltResult& lstSrc); void SortAscendEntities2(lstCltResult& lstSrc); // void RecursiveExplodeGetArcAndCir(AcDbEntity* pEnt, AcDbVoidPtrArray& arPtr); void SorProHeight(AcGeDoubleArray& arPro); void AdjustWndToViewport(CWnd* pWnd,int nXOff = 0,int nYOff = 0); bool DocGetMeterUnitDraw(); private: CThunderDbReactor *m_pThunderReactor; TelThunderDocReactor *m_pThunderDocReactor; CDrawThunderTools *m_pThunderDraw2d; TelThunderEditReactor *m_pThunderEditReactor; }; class TTempDrawState { public: TTempDrawState(BOOL bState) { m_bState = CThunderCmdGroup::bIsAllowDraw; CThunderCmdGroup::bIsAllowDraw = bState; } virtual ~TTempDrawState() { CThunderCmdGroup::bIsAllowDraw = m_bState; } private: BOOL m_bState; }; #endif // !defined(AFX_CThunderCmdGroup_H__325C1939_08AD_48B4_A4C5_BD0CB7054E31__INCLUDED_)