105 lines
2.1 KiB
C++
105 lines
2.1 KiB
C++
#include "stdafx.h"
|
|
#include "KGDGDlg.h"
|
|
#include "AcDbX3dSolid.h"
|
|
#include "AecDbX3dGroup.h"
|
|
|
|
extern CString IDCreate();
|
|
|
|
IMPLEMENT_DYNAMIC(CKGDGDlg, CDialog)
|
|
|
|
CKGDGDlg::CKGDGDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CKGDGDlg::IDD, pParent)
|
|
, m_sName(_T("RM6中压开关柜"))
|
|
, m_dL(900)
|
|
, m_dW(700)
|
|
, m_dT(30)
|
|
, m_sModel(_T("RM6中压开关柜"))
|
|
, m_sProvider(_T("施耐德电气"))
|
|
{
|
|
|
|
}
|
|
|
|
CKGDGDlg::~CKGDGDlg()
|
|
{
|
|
}
|
|
|
|
void CKGDGDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT6, m_sName);
|
|
DDX_Text(pDX, IDC_EDIT1, m_dL);
|
|
DDX_Text(pDX, IDC_EDIT2, m_dW);
|
|
DDX_Text(pDX, IDC_EDIT3, m_dT);
|
|
DDX_Text(pDX, IDC_EDIT4, m_sModel);
|
|
DDX_Text(pDX, IDC_EDIT5, m_sProvider);
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CKGDGDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CKGDGDlg::OnBnClickedOk)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CKGDGDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CKGDGDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
if (m_dL < 10 || m_dW < 10 || m_dT < 10)
|
|
{
|
|
AfxMessageBox(_T("配电柜尺寸太小!请输入配电柜尺寸!"));
|
|
return;
|
|
}
|
|
|
|
OnOK();
|
|
}
|
|
|
|
int CKGDGDlg::GetX3dSolidRecs( AecDbX3dGroup*& pGroup)
|
|
{
|
|
if (pGroup != NULL)
|
|
{
|
|
pGroup->RemoveAll3dSolidRec();
|
|
}
|
|
else
|
|
{
|
|
pGroup = new AecDbX3dGroup;
|
|
}
|
|
|
|
AcDbX3dSolid* pXSolid = NULL;
|
|
|
|
AcGePoint3d ptOrg;
|
|
ptOrg.set(0,0,0);
|
|
|
|
AcGeVector3d vtZ = AcGeVector3d::kZAxis;
|
|
|
|
X3dSolidRec rec;
|
|
pXSolid = new AcDbX3dSolid;
|
|
pXSolid->Create(AcDbX3dSolid::kBox,ptOrg,vtZ,3,AS_MUNIT(m_dW),AS_MUNIT(m_dT),AS_MUNIT(m_dL));
|
|
|
|
rec.pXSolid = pXSolid;
|
|
rec.bType = AcDb::kBoolUnite;
|
|
_tcscpy(rec.szLockId,IDCreate());
|
|
pGroup->AddX3dSolidRec(rec);
|
|
|
|
pGroup->SetOrgPoint( ptOrg );
|
|
pGroup->SetAxis(X,AcGeVector3d::kXAxis);
|
|
pGroup->SetAxis(Y,AcGeVector3d::kYAxis);
|
|
pGroup->SetAxis(Z,AcGeVector3d::kZAxis);
|
|
|
|
//序列化BIM数据
|
|
pGroup->GetSpecialtyData()->SetAt(_T("m_dW"),m_dW);
|
|
pGroup->GetSpecialtyData()->SetAt(_T("m_dL"),m_dL);
|
|
pGroup->GetSpecialtyData()->SetAt(_T("m_dT"),m_dT);
|
|
pGroup->GetSpecialtyData()->SetAt(_T("m_sName"),m_sName);
|
|
pGroup->GetSpecialtyData()->SetAt(_T("m_sProvider"),m_sProvider);
|
|
pGroup->GetSpecialtyData()->SetAt(_T("m_sModel"),m_sModel);
|
|
|
|
return TRUE;
|
|
} |