Files

199 lines
3.8 KiB
C++
Raw Permalink Normal View History

2026-10-04 00:04:20 +08:00
#pragma once
2026-09-28 15:28:50 +08:00
#include "afxcmn.h"
#include "UIIListCtrl.h"
#include "resource.h"
typedef struct PipeBom
{
short nDn; //DN
short nD; //D
float fThick; //THICK
double dLen; //LEN
2026-10-04 00:04:20 +08:00
TCHAR szMertial[255]; //材料
2026-09-28 15:28:50 +08:00
}PipeBom;
typedef struct CableBom
{
short nD; //D
double dLen; //LEN
2026-10-04 00:04:20 +08:00
TCHAR szModel[255];; //型号
TCHAR szFactory[255]; //厂家
2026-09-28 15:28:50 +08:00
}CABLEBOM;
typedef struct ElbowBom
{
short nDn; //DN
short nD; //D
2026-10-04 00:04:20 +08:00
short nAngle; //度
2026-09-28 15:28:50 +08:00
float fThick; //THICK
float fRRatio; //
2026-10-04 00:04:20 +08:00
TCHAR szMertial[255]; //材料
2026-09-28 15:28:50 +08:00
int nCount;
}ELBOWBOM;
typedef struct ReducerBom
{
short nDn;
short nD;
short nTDn;
short nTD;
float fThick; //THICK
short nLen;
2026-10-04 00:04:20 +08:00
TCHAR szMertial[255]; //材料
2026-09-28 15:28:50 +08:00
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;
2026-10-04 00:04:20 +08:00
TCHAR szMertial[255]; //材料
2026-09-28 15:28:50 +08:00
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;
2026-10-04 00:04:20 +08:00
TCHAR szMertial[255]; //材料
2026-09-28 15:28:50 +08:00
int nCount;
}LTEEBOM;
typedef struct WyeBom
{
short nDn; //DN
short nD; //OD
short nTDn;
short nTD;
float fThick; //THICK
short nM;
short nB;
2026-10-04 00:04:20 +08:00
TCHAR szMertial[255]; //材料
2026-09-28 15:28:50 +08:00
int nCount;
}WYEBOM;
typedef struct CrossBom
{
short nDn; //DN
short nD; //OD
short nTDn;
short nTD;
short nL; //
short nB; //
float fThick; //THICK
2026-10-04 00:04:20 +08:00
TCHAR szMertial[255]; //材料
2026-09-28 15:28:50 +08:00
int nCount;
}CROSSBOM;
typedef struct WCapBom
{
short nDn; //DN
short nD; //OD
short nL; //
float fThick; //THICK
2026-10-04 00:04:20 +08:00
TCHAR szMertial[255]; //材料
2026-09-28 15:28:50 +08:00
int nCount;
}WCAPBOM;
typedef struct WFlangeBom
{
short nDn; //DN
2026-10-04 00:04:20 +08:00
TCHAR szMertial[255]; //材料
2026-09-28 15:28:50 +08:00
int nCount;
}WFLANGEBOM;
typedef struct WGasket
{
short nDn;
2026-10-04 00:04:20 +08:00
double dt;//厚度
TCHAR szMertial[255]; //材料
2026-09-28 15:28:50 +08:00
int nCount;
}WGASKET;
2026-10-04 00:04:20 +08:00
typedef struct WEquBom //设备
2026-09-28 15:28:50 +08:00
{
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;
2026-10-04 00:04:20 +08:00
//统计的原始数据印象
2026-09-28 15:28:50 +08:00
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;
2026-10-04 00:04:20 +08:00
CMapStringToPtr m_mapName2Count;//设备
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
//统计的原始数据
2026-09-28 15:28:50 +08:00
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;
2026-10-04 00:04:20 +08:00
AcDbVoidPtrArray m_arAddtionPtrs; //管线和管件设备线缆部分
2026-09-28 15:28:50 +08:00
};