499 lines
11 KiB
C++
499 lines
11 KiB
C++
#pragma once
|
|
#include "resource.h"
|
|
#include "singleton.h"
|
|
#include "BtnST.h"
|
|
#include <set>
|
|
#include "xlistctrl.h"
|
|
#include "AecDbMultiPartEntity.h"
|
|
|
|
class AcDbX3dSolid;
|
|
class AecDbX3dPart;
|
|
|
|
class CDtygProperty : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CDtygProperty)
|
|
|
|
public:
|
|
CDtygProperty(AecDbX3dPart *pPart, CWnd* pParent = NULL);
|
|
CDtygProperty(AecDbBDPipeBase *pPart, CWnd* pParent = NULL);
|
|
virtual ~CDtygProperty();
|
|
|
|
enum { IDD = IDD_PROPERTY };
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnInitDialog();
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnBnClickedButton2();
|
|
afx_msg void OnBnClickedButton3();
|
|
afx_msg void OnBnClickedButton4();
|
|
afx_msg void OnBnClickedButton5();
|
|
afx_msg void OnBnClickedButton8();
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnNMDblClkList1(NMHDR *pNMHDR, LRESULT *pResult);
|
|
afx_msg LRESULT OnComboSelection(WPARAM nItem, LPARAM nSubItem);
|
|
|
|
public:
|
|
AcDbObjectId getLayerByStatisticsType(LPCTSTR sType);
|
|
|
|
private:
|
|
CXListCtrl m_wndListCtrl;
|
|
CButton m_btnAdd;
|
|
CButton m_btnModify;
|
|
CButton m_btnDel;
|
|
CButton m_btnImport;
|
|
CButton m_btnExport;
|
|
CFont m_font;
|
|
|
|
// 查看构建属性使用
|
|
AecDbX3dPart *m_pPart;
|
|
|
|
// 查看母实体属性使用
|
|
AecDbBDPipeBase *m_pMultiEnt;
|
|
};
|
|
|
|
class CDTYGDlg : public CDialog
|
|
{
|
|
public:
|
|
enum TYPE
|
|
{
|
|
kErr = -1,
|
|
kBox,
|
|
kCylinder,
|
|
kCone,
|
|
kPyramid,
|
|
kCircleTorus,
|
|
kRectTorus,
|
|
kXTorus,
|
|
kWedge,
|
|
kDrums,
|
|
kExtrude,
|
|
kRevolve,
|
|
kSpere,
|
|
kLoft,
|
|
kSweep,
|
|
kCut,
|
|
kWeir,
|
|
};
|
|
|
|
DECLARE_DYNAMIC(CDTYGDlg)
|
|
|
|
public:
|
|
CDTYGDlg(CWnd* pParent = NULL);
|
|
virtual ~CDTYGDlg();
|
|
enum { IDD = IDD_DTYG_DLG };
|
|
|
|
public:
|
|
void SetObjectID(AcDbObjectId id);
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnInitDialog();
|
|
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
|
|
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
|
|
virtual void OnOK();
|
|
virtual void OnCancel();
|
|
|
|
void enableWindows(bool bEnble, const std::set<int> &exceptions);
|
|
|
|
void showEntity(bool bShow);
|
|
|
|
bool HasSelectItem();
|
|
bool PropertyDlg(HTREEITEM hItem);
|
|
|
|
TYPE getType(HTREEITEM hItem);
|
|
bool getSelectItems(std::vector<HTREEITEM> &items, bool bTip = true);
|
|
|
|
void refreshTree(AcDbObjectId &id);
|
|
|
|
void modifyDTYG();
|
|
|
|
void refreshHlightEntity();
|
|
|
|
bool getTransfromOf3DPart(AcGeMatrix3d &mat);
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
afx_msg void Ok() { OnOK(); }
|
|
afx_msg void Cancel() { OnCancel(); }
|
|
afx_msg void OnClose() { OnCancel(); }
|
|
|
|
afx_msg LONG_PTR onAcadKeepFocus( UINT_PTR, LONG_PTR);
|
|
|
|
afx_msg LRESULT OnRefreshHlightEntityMsg(WPARAM, LPARAM);
|
|
|
|
afx_msg void OnBnClicked1(); // 长方体
|
|
afx_msg void OnBnClicked2(); // 圆住体
|
|
afx_msg void OnBnClicked3(); // 圆台体
|
|
afx_msg void OnBnClicked4(); // 棱锥体
|
|
afx_msg void OnBnClicked7(); // 球体
|
|
afx_msg void OnBnClicked8(); // 拉伸体
|
|
afx_msg void OnBnClicked9(); // 旋转体
|
|
afx_msg void OnBnClicked10(); // 楔体
|
|
afx_msg void OnBnClicked11(); // 球台体
|
|
afx_msg void OnBnClicked12(); // 环体
|
|
afx_msg void OnBnClicked15(); // 切割
|
|
|
|
|
|
afx_msg void OnBnClicked78(); // 下一个面
|
|
afx_msg void OnBnClicked79(); // 上一个面
|
|
afx_msg void OnBnClicked80(); // 应用
|
|
afx_msg void OnBnClicked81(); // 开始
|
|
|
|
afx_msg void OnBnClicked31(); // 位移-移动
|
|
afx_msg void OnBnClicked36(); // 位移-捕捉点移动
|
|
afx_msg void OnBnClicked34(); // 位移-复位
|
|
|
|
afx_msg void OnBnClicked27(); // 角度-旋转
|
|
afx_msg void OnBnClicked28(); // 角度-旋转
|
|
|
|
afx_msg void OnBnClicked75(); // 复制
|
|
afx_msg void OnBnClicked77(); // 镜像
|
|
|
|
afx_msg void OnBnClicked33(); // 修改
|
|
afx_msg void OnBnClicked32(); // 属性
|
|
afx_msg void OnBnClicked76(); // 删除
|
|
afx_msg void OnBnClicked20(); // 隐藏
|
|
afx_msg void OnBnClicked30(); // 隐藏
|
|
afx_msg void OnBnClicked5(); // 保存本地
|
|
afx_msg void OnBnClicked14(); // 本地载入
|
|
|
|
afx_msg void OnBnClickedButton6(); // 异形堰
|
|
|
|
afx_msg void OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult);
|
|
afx_msg void OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult);
|
|
afx_msg void OnNMRclickTree1(NMHDR *pNMHDR, LRESULT *pResult);
|
|
afx_msg void OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult);
|
|
|
|
afx_msg void OnBnClickedBtnFill();
|
|
|
|
public:
|
|
struct compare_subent
|
|
{
|
|
bool operator () (const AcDbSubentId &id1, const AcDbSubentId &id2) const { return id1.index() < id2.index(); }
|
|
};
|
|
|
|
private:
|
|
// 10个需要设置图标的按钮
|
|
CButtonST m_btn1, m_btn2, m_btn3, m_btn4, m_btn7, m_btn8, m_btn9, m_btn10, m_btn11, m_btn12, m_btn15;
|
|
|
|
CButton m_btnFaceBegin, m_btnFaceEnd, m_btnNext, m_btnPrev;
|
|
|
|
CString m_sHatch;
|
|
CButton m_wndBtHatch;
|
|
|
|
// 平面定位
|
|
AcDbObjectId m_idSolidTemp;
|
|
std::map<AcDbSubentId, int, compare_subent> m_SolidSubentIds;
|
|
AcArray<AcGePlane> m_SolidGeFaces;
|
|
int m_iFaceIdx;
|
|
// end
|
|
|
|
int m_iMove, m_iRotate;
|
|
double m_dMove, m_dRotate;
|
|
|
|
AcDbObjectId m_id; // 构建物
|
|
CString m_sObjectName; // 所选实体类型
|
|
|
|
//CJDXZDlg m_wndSelDlg;
|
|
|
|
CTreeCtrl m_wndTree;
|
|
CImageList m_Imagelist;
|
|
CImageList m_Imagelist32;
|
|
|
|
HTREEITEM m_hCurSelItem;
|
|
|
|
AcDbObjectId m_HligthtID; // 选择tree上的item时,高亮的临时实体
|
|
public:
|
|
afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
|
|
BOOL m_bAddHatch;
|
|
afx_msg void OnBnClickedCheckHatch();
|
|
CButton m_wndBtnHatchCheck;
|
|
};
|
|
typedef Singleton<CDTYGDlg> g_DtygDlg;
|
|
|
|
class CBoxDlg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CBoxDlg)
|
|
|
|
public:
|
|
CBoxDlg(CWnd* pParent = NULL);
|
|
virtual ~CBoxDlg();
|
|
|
|
enum { IDD = IDD_BOXDLG };
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnStaticColor();
|
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
public:
|
|
AcDbX3dSolid* makeSolid(const AcGePoint3d &ptOrg, const AcGeVector3d &vtZ);
|
|
|
|
public:
|
|
int m_clr;
|
|
double m_dX, m_dY, m_dZ;
|
|
int m_iSub;
|
|
PVOID m_pData;
|
|
};
|
|
|
|
class CCylinderDlg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CCylinderDlg)
|
|
|
|
public:
|
|
CCylinderDlg(CWnd* pParent = NULL);
|
|
virtual ~CCylinderDlg();
|
|
|
|
enum { IDD = IDD_CLNDLG };
|
|
|
|
protected:
|
|
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnStaticColor();
|
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
public:
|
|
AcDbX3dSolid* makeSolid(const AcGePoint3d &ptOrg, const AcGeVector3d &vtZ);
|
|
|
|
public:
|
|
int m_clr;
|
|
double m_dR;
|
|
double m_dH;
|
|
int m_iSub;
|
|
PVOID m_pData;
|
|
};
|
|
|
|
class CConeDLg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CConeDLg)
|
|
|
|
public:
|
|
CConeDLg(CWnd* pParent = NULL);
|
|
virtual ~CConeDLg();
|
|
|
|
enum { IDD = IDD_CONDLG };
|
|
|
|
public:
|
|
AcDbX3dSolid* makeSolid(const AcGePoint3d &ptOrg, const AcGeVector3d &vtZ);
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnBnClickedCheck90();
|
|
afx_msg void OnStaticColor();
|
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
public:
|
|
virtual BOOL OnInitDialog();
|
|
|
|
public:
|
|
int m_clr;
|
|
double m_dr;
|
|
double m_dR;
|
|
double m_dH;
|
|
PVOID m_pData;
|
|
double m_dXOffset;
|
|
int m_iSub;
|
|
BOOL m_bIs90Tr;
|
|
};
|
|
|
|
class CPyrmDlg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CPyrmDlg)
|
|
|
|
public:
|
|
CPyrmDlg(CWnd* pParent = NULL);
|
|
virtual ~CPyrmDlg();
|
|
|
|
enum { IDD = IDD_PYRMDLG };
|
|
|
|
public:
|
|
AcDbX3dSolid* makeSolid(const AcGePoint3d &ptOrg, const AcGeVector3d &vtZ);
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnInitDialog();
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnStaticColor();
|
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnBnClickedCheck90();
|
|
|
|
public:
|
|
int m_clr;
|
|
double m_dTH;
|
|
double m_dTx;
|
|
double m_dTy;
|
|
double m_dBx;
|
|
double m_dBy;
|
|
PVOID m_pData;
|
|
double m_dXOffset;
|
|
int m_iSub;
|
|
BOOL m_bIs90Tr;
|
|
};
|
|
|
|
class CSpereDlg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CSpereDlg)
|
|
|
|
public:
|
|
CSpereDlg(CWnd* pParent = NULL);
|
|
virtual ~CSpereDlg();
|
|
|
|
enum { IDD = IDD_SPEREDLG };
|
|
|
|
public:
|
|
AcDbX3dSolid* makeSolid(const AcGePoint3d &ptOrg, const AcGeVector3d &vtZ);
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnInitDialog();
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnStaticColor();
|
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
|
afx_msg void OnBnClickedOk();
|
|
|
|
public:
|
|
int m_clr;
|
|
double m_dR;
|
|
PVOID m_pData;
|
|
int m_iSub;
|
|
};
|
|
|
|
class CDrumsDlg : public CDialog // 圆台-鼓
|
|
{
|
|
DECLARE_DYNAMIC(CDrumsDlg)
|
|
|
|
public:
|
|
CDrumsDlg(CWnd* pParent = NULL);
|
|
virtual ~CDrumsDlg();
|
|
|
|
enum { IDD = IDD_DRUMS_DLG };
|
|
|
|
public:
|
|
AcDbX3dSolid* makeSolid(const AcGePoint3d &ptOrg, const AcGeVector3d &vtZ);
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnInitDialog();
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnStaticColor();
|
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
|
afx_msg void OnBnClickedOk();
|
|
|
|
public:
|
|
double m_dR, m_dL1, m_dL2, m_dSAngle, m_dEAngle;
|
|
int m_iSub;
|
|
int m_clr;
|
|
PVOID m_pData;
|
|
};
|
|
|
|
class CWedgeDlg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CWedgeDlg)
|
|
|
|
public:
|
|
CWedgeDlg(CWnd* pParent = NULL);
|
|
virtual ~CWedgeDlg();
|
|
|
|
enum { IDD = IDD_WEDGE_DLG };
|
|
|
|
public:
|
|
AcDbX3dSolid* makeSolid(const AcGePoint3d &ptOrg, const AcGeVector3d &vtZ);
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnInitDialog();
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnStaticColor();
|
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
|
afx_msg void OnBnClickedOk();
|
|
|
|
public:
|
|
double m_dA, m_dB, m_dT;
|
|
int m_iSub;
|
|
int m_clr;
|
|
PVOID m_pData;
|
|
};
|
|
|
|
class CTorusDlg : public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CTorusDlg)
|
|
|
|
public:
|
|
CTorusDlg(CWnd* pParent = NULL);
|
|
virtual ~CTorusDlg();
|
|
|
|
enum { IDD = IDD_TORUS_DLG };
|
|
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
virtual BOOL OnInitDialog();
|
|
DECLARE_MESSAGE_MAP()
|
|
afx_msg void OnStaticColor();
|
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnBnClickRadio();
|
|
|
|
public:
|
|
void SetDonotSelectX() { m_bDonotSelectX = true; }
|
|
AcDbX3dSolid* makeSolid(const AcGeMatrix3d &ucs);
|
|
|
|
public:
|
|
double m_dInnerR, m_dOuterR; // 内外径
|
|
double m_dStartA, m_dEndA; // 起终角度
|
|
double m_dRectH; // 矩形截面高
|
|
int m_iMode; // 0-Rect 1-Circle 2-region
|
|
int m_iSub;
|
|
bool m_bDonotSelectX;
|
|
|
|
int m_clr;
|
|
PVOID m_pData;
|
|
};
|
|
|
|
class CYiXingYanDlg: public CDialog
|
|
{
|
|
DECLARE_DYNAMIC(CYiXingYanDlg)
|
|
|
|
public:
|
|
CYiXingYanDlg(double dLen, CWnd* pParent = nullptr);
|
|
virtual ~CYiXingYanDlg();
|
|
|
|
enum { IDD = IDD_YIXINGYAN_DLG };
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX);
|
|
DECLARE_MESSAGE_MAP()
|
|
public:
|
|
afx_msg void OnBnClickedOk();
|
|
afx_msg void OnBnClickedRadioType();
|
|
afx_msg void OnBnClickedRadio2();
|
|
afx_msg void OnBnClickedRadio3();
|
|
void changeType();
|
|
void getXSolids(AcDbCurve *pCurve, AcArray<AcDbX3dSolid*> &solids);
|
|
private:
|
|
AcDbX3dSolid* makeXSolid4Arc(const double &dStart, AcDbCurve *pCurve);
|
|
AcDbRegion* makeRegion4Arc(const double &dStart, AcDbCurve *pCurve, const double &dL, const double &dT);
|
|
|
|
private:
|
|
CStatic m_wndPic;
|
|
double m_dAllLen;
|
|
public:
|
|
int m_nType;
|
|
double m_dHa;
|
|
double m_dSp;
|
|
double m_dL;
|
|
double m_dH1;
|
|
double m_dH2;
|
|
double m_dT;
|
|
};
|