200 lines
3.8 KiB
C++
200 lines
3.8 KiB
C++
#pragma once
|
|
#include "afxcmn.h"
|
|
#include "UIIListCtrl.h"
|
|
#include "resource.h"
|
|
|
|
typedef struct PipeBom
|
|
{
|
|
short nDn; //DN
|
|
short nD; //D
|
|
float fThick; //THICK
|
|
double dLen; //LEN
|
|
TCHAR szMertial[255]; //材料
|
|
}PipeBom;
|
|
|
|
typedef struct CableBom
|
|
{
|
|
short nD; //D
|
|
double dLen; //LEN
|
|
TCHAR szModel[255];; //型号
|
|
TCHAR szFactory[255]; //厂家
|
|
}CABLEBOM;
|
|
|
|
typedef struct ElbowBom
|
|
{
|
|
short nDn; //DN
|
|
short nD; //D
|
|
short nAngle; //度
|
|
float fThick; //THICK
|
|
float fRRatio; //
|
|
TCHAR szMertial[255]; //材料
|
|
int nCount;
|
|
}ELBOWBOM;
|
|
|
|
typedef struct ReducerBom
|
|
{
|
|
short nDn;
|
|
short nD;
|
|
short nTDn;
|
|
short nTD;
|
|
float fThick; //THICK
|
|
short nLen;
|
|
TCHAR szMertial[255]; //材料
|
|
int nCount;
|
|
short nOffset;
|
|
}REDUCERBOM;
|
|
|
|
typedef struct TeeBom
|
|
{
|
|
short nDn; //DN
|
|
short nD; //OD
|
|
short nTDn;
|
|
short nTD;
|
|
float fThick; //THICK
|
|
short nL;
|
|
short nB;
|
|
TCHAR szMertial[255]; //材料
|
|
int nCount;
|
|
}TEEBOM;
|
|
|
|
typedef struct LTeeBom
|
|
{
|
|
short nDn; //DN
|
|
short nD; //OD
|
|
short nTDn;
|
|
short nTD;
|
|
float fThick; //THICK
|
|
short nE;
|
|
short nM;
|
|
short nB;
|
|
TCHAR szMertial[255]; //材料
|
|
int nCount;
|
|
}LTEEBOM;
|
|
|
|
typedef struct WyeBom
|
|
{
|
|
short nDn; //DN
|
|
short nD; //OD
|
|
short nTDn;
|
|
short nTD;
|
|
float fThick; //THICK
|
|
short nM;
|
|
short nB;
|
|
TCHAR szMertial[255]; //材料
|
|
int nCount;
|
|
}WYEBOM;
|
|
|
|
typedef struct CrossBom
|
|
{
|
|
short nDn; //DN
|
|
short nD; //OD
|
|
short nTDn;
|
|
short nTD;
|
|
short nL; //
|
|
short nB; //
|
|
float fThick; //THICK
|
|
TCHAR szMertial[255]; //材料
|
|
int nCount;
|
|
}CROSSBOM;
|
|
|
|
typedef struct WCapBom
|
|
{
|
|
short nDn; //DN
|
|
short nD; //OD
|
|
short nL; //
|
|
float fThick; //THICK
|
|
TCHAR szMertial[255]; //材料
|
|
int nCount;
|
|
}WCAPBOM;
|
|
|
|
typedef struct WFlangeBom
|
|
{
|
|
short nDn; //DN
|
|
TCHAR szMertial[255]; //材料
|
|
int nCount;
|
|
}WFLANGEBOM;
|
|
|
|
typedef struct WGasket
|
|
{
|
|
short nDn;
|
|
double dt;//厚度
|
|
TCHAR szMertial[255]; //材料
|
|
int nCount;
|
|
}WGASKET;
|
|
|
|
typedef struct WEquBom //设备
|
|
{
|
|
TCHAR szName[255];
|
|
TCHAR szSpec[255];
|
|
int nCount;
|
|
}WEQUBOM;
|
|
|
|
class CBomReportDlg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CBomReportDlg)
|
|
|
|
public:
|
|
CBomReportDlg(CWnd* pParent = NULL);
|
|
virtual ~CBomReportDlg();
|
|
|
|
enum { IDD = IDD_BOMREPORTDLG };
|
|
|
|
void AddPipeLineEntPtr(AcDbEntity* pEnt);
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
public:
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnClose();
|
|
afx_msg void OnBnClickedBtselfile();
|
|
afx_msg void OnBnClickedBtselents();
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnBnClickedCancel();
|
|
afx_msg void OnDestroy();
|
|
afx_msg void OnBnClickedBtTmpl();
|
|
|
|
void BomFromReadDwg(CString& sFileName);
|
|
void ExtractBomOfEntity(AcDbEntity* pEnt);
|
|
void ShowtoReportlist();
|
|
void FreeBomBuffer();
|
|
|
|
protected:
|
|
|
|
CImageList m_imageList;
|
|
CUIIListCtrl m_wndBomList;
|
|
|
|
//统计的原始数据印象
|
|
CMapStringToPtr m_mapPipeBom;
|
|
CMapStringToPtr m_mapCableBom;
|
|
CMapStringToPtr m_mapElbowBom;
|
|
CMapStringToPtr m_mapReducerBom;
|
|
CMapStringToPtr m_mapTeeBom;
|
|
CMapStringToPtr m_mapLTeeBom;
|
|
CMapStringToPtr m_mapWyeBom;
|
|
CMapStringToPtr m_mapCrossBom;
|
|
CMapStringToPtr m_mapWCapBom;
|
|
CMapStringToPtr m_mapWFlangeBom;
|
|
CMapStringToPtr m_mapName2Count;//设备
|
|
|
|
//统计的原始数据
|
|
std::vector<PipeBom*> m_vtPipeBomPtrs;
|
|
std::vector<CableBom*> m_vtCableBomPtrs;
|
|
std::vector<ElbowBom*> m_vtElbowBomPtrs;
|
|
std::vector<ReducerBom*> m_vtReducerBomPtrs;
|
|
std::vector<TeeBom*> m_vtTeeBomPtrs;
|
|
std::vector<LTeeBom*> m_vtLTeeBomPtrs;
|
|
std::vector<WyeBom*> m_vtWyeBomPtrs;
|
|
std::vector<CrossBom*> m_vtCrossBomPtrs;
|
|
std::vector<WCapBom*> m_vtWCapBomPtrs;
|
|
std::vector<WFlangeBom*> m_vtWFlangeBomPtrs;
|
|
|
|
public:
|
|
CString m_sProno;
|
|
CString m_sDwgno;
|
|
CString m_sBomDwg;
|
|
|
|
AcDbVoidPtrArray m_arAddtionPtrs; //管线和管件设备线缆部分
|
|
};
|