274 lines
5.2 KiB
C++
274 lines
5.2 KiB
C++
#include "stdafx.h"
|
|
#include "YHPTDlg.h"
|
|
#include "AecDbClimbStair.h"
|
|
|
|
DLLIMPEXP CString IDCreate();
|
|
|
|
IMPLEMENT_DYNAMIC(CYHPTDlg, CDialog)
|
|
|
|
CYHPTDlg::CYHPTDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CYHPTDlg::IDD, pParent)
|
|
, m_dD(1100)
|
|
, m_dSegSp(800)
|
|
, m_dSteepH(270)
|
|
, m_dH(6000)
|
|
, m_dW(800)
|
|
, m_dBomEl(0)
|
|
, m_dH1(1600)
|
|
, m_dH2(400)
|
|
, m_sFactory(_T("厂家自制"))
|
|
, m_dd(30)
|
|
, m_dt(1.5)
|
|
, m_dbt(6)
|
|
, m_dbw(10)
|
|
, m_sMaterial(_T("普通碳钢"))
|
|
, m_sNo(_T("P-001"))
|
|
, m_nType(0)
|
|
, m_dSpWall(180)
|
|
, m_bNOSetDefault(TRUE)
|
|
{
|
|
GET_CACHE(CYHPTDlg
|
|
, %f%f%f%f%f%f%f%f%f%f%f%f%s%s%s
|
|
, &m_dD
|
|
, &m_dSegSp
|
|
, &m_dSteepH
|
|
, &m_dH
|
|
, &m_dW
|
|
, &m_dBomEl
|
|
, &m_dH1
|
|
, &m_dH2
|
|
, &m_dd
|
|
, &m_dt
|
|
, &m_dbt
|
|
, &m_dbw
|
|
, &m_sFactory
|
|
, &m_sMaterial
|
|
, &m_sNo);
|
|
if (m_bNOSetDefault)
|
|
m_sNo = IDCreate();
|
|
}
|
|
|
|
CYHPTDlg::~CYHPTDlg()
|
|
{
|
|
}
|
|
|
|
void CYHPTDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1, m_dD);
|
|
DDX_Text(pDX, IDC_EDIT2, m_dSegSp);
|
|
DDX_Text(pDX, IDC_EDIT3, m_dSteepH);
|
|
DDX_Text(pDX, IDC_EDIT12, m_dH);
|
|
DDX_Text(pDX, IDC_EDIT20, m_dW);
|
|
DDX_Text(pDX, IDC_EDIT13, m_dBomEl);
|
|
DDX_Text(pDX, IDC_EDIT25, m_dH1);
|
|
DDX_Text(pDX, IDC_EDIT26, m_dH2);
|
|
DDX_Text(pDX, IDC_EDIT15, m_dd);
|
|
DDX_Text(pDX, IDC_EDIT16, m_dt);
|
|
DDX_Text(pDX, IDC_EDIT17, m_dbt);
|
|
DDX_Text(pDX, IDC_EDIT21, m_dbw);
|
|
DDX_Text(pDX, IDC_EDIT14, m_sFactory);
|
|
DDX_Text(pDX, IDC_EDIT22, m_sMaterial);
|
|
DDX_Text(pDX, IDC_EDIT28, m_sNo);
|
|
DDX_Radio(pDX, IDC_RADIO1, m_nType);
|
|
DDX_Text(pDX, IDC_EDIT31, m_dSpWall);
|
|
DDX_Check(pDX, IDC_CHECK6, m_bNOSetDefault);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CYHPTDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CYHPTDlg::OnBnClickedOk)
|
|
ON_BN_CLICKED(IDC_BUTTON1, &CYHPTDlg::OnBnClickedButton1)
|
|
ON_BN_CLICKED(IDC_CHECK6, &CYHPTDlg::OnBnClickedCheck6)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CYHPTDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
if (!m_bmp1.LoadBitmap (IDB_BITMAP20))
|
|
{
|
|
AfxMessageBox(_T("Can't load bitmap: %x\n"), IDB_BITMAP20);
|
|
ASSERT (FALSE);
|
|
return FALSE;
|
|
}
|
|
|
|
if (!m_bmp2.LoadBitmap (IDB_BITMAP21))
|
|
{
|
|
AfxMessageBox(_T("Can't load bitmap: %x\n"), IDB_BITMAP21);
|
|
ASSERT (FALSE);
|
|
return FALSE;
|
|
}
|
|
|
|
if (m_bNOSetDefault)
|
|
{
|
|
GetDlgItem(IDC_EDIT28)->EnableWindow(FALSE);
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CYHPTDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
if (m_dW - m_dD > 1.e-2)
|
|
{
|
|
AfxMessageBox(_T("梯子的宽度不能大于爬孔直径!"));
|
|
return;
|
|
}
|
|
|
|
if (m_dd - m_dD > 1.e-2)
|
|
{
|
|
AfxMessageBox(_T("踏步钢管外径过大!"));
|
|
return;
|
|
}
|
|
|
|
if (m_dbt - m_dD > 1.e-2)
|
|
{
|
|
AfxMessageBox(_T("护栏板材厚度不正确!"));
|
|
return;
|
|
}
|
|
|
|
if (m_dbt - m_dD > 1.e-2)
|
|
{
|
|
AfxMessageBox(_T("护栏板材宽不正确!"));
|
|
return;
|
|
}
|
|
|
|
if ( (m_dH - m_dH1 - m_dH2) < 1.e-6)
|
|
{
|
|
AfxMessageBox(_T("出入无遮挡高度尺寸不正确!"));
|
|
return;
|
|
}
|
|
|
|
SET_CACHE(CYHPTDlg
|
|
, %f%f%f%f%f%f%f%f%f%f%f%f%s%s%s
|
|
, m_dD
|
|
, m_dSegSp
|
|
, m_dSteepH
|
|
, m_dH
|
|
, m_dW
|
|
, m_dBomEl
|
|
, m_dH1
|
|
, m_dH2
|
|
, m_dd
|
|
, m_dt
|
|
, m_dbt
|
|
, m_dbw
|
|
, m_sFactory
|
|
, m_sMaterial
|
|
, m_sNo);
|
|
|
|
AcAxDocLock lock;
|
|
if (m_id.isValid())
|
|
{
|
|
AcDbEntity* pEnt = NULL;
|
|
if (Acad::eOk == acdbOpenAcDbEntity(pEnt,m_id,AcDb::kForWrite))
|
|
{
|
|
AecDbClimbStair* pClimbStair = AecDbClimbStair::cast(pEnt);
|
|
if (pClimbStair != NULL)
|
|
{
|
|
ClimbStair data;
|
|
memset(&data,0,sizeof(ClimbStair));
|
|
|
|
GetLineStairData(data);
|
|
|
|
AcDbCurve* pCr = pClimbStair->GetNativeCurve();
|
|
if (pCr != NULL)
|
|
{
|
|
AcDbLine* pL = AcDbLine::cast(pCr);
|
|
if (pL != NULL)
|
|
{
|
|
AcGePoint3d ptS = pL->startPoint();
|
|
ptS.z = m_dBomEl;
|
|
AcGePoint3d ptE = ptS;
|
|
ptE.z += data.dH;
|
|
pL->setStartPoint(ptS);
|
|
pL->setEndPoint(ptE);
|
|
}
|
|
}
|
|
pClimbStair->SetSection(data.dd,0.0);
|
|
pClimbStair->SetClimbStairData(data);
|
|
}
|
|
pEnt->close();
|
|
}
|
|
}
|
|
|
|
OnOK();
|
|
}
|
|
|
|
void CYHPTDlg::GetLineStairData(ClimbStair& data) const
|
|
{
|
|
data.dD = m_dD;
|
|
data.dSegSp = m_dSegSp;
|
|
data.dSteepH = m_dSteepH;
|
|
data.dH = m_dH;
|
|
data.dW = m_dW;
|
|
data.dBomEl = m_dBomEl;
|
|
data.dH1 = m_dH1;
|
|
data.dH2 = m_dH2;
|
|
data.dd = m_dd;
|
|
data.dt = m_dt;
|
|
data.dbt = m_dbt;
|
|
data.dbw = m_dbw;
|
|
data.dSpWall = m_dSpWall;
|
|
data.nType = m_nType;
|
|
_tcscpy(data.m_sMaterial,(LPCTSTR)m_sMaterial);
|
|
_tcscpy(data.m_sFactory,(LPCTSTR)m_sFactory);
|
|
_tcscpy(data.m_sNo,(LPCTSTR)m_sFactory);
|
|
}
|
|
|
|
void CYHPTDlg::SetFromId(AcDbObjectId& id)
|
|
{
|
|
AcDbEntity* pEnt = NULL;
|
|
if (Acad::eOk == acdbOpenAcDbEntity(pEnt,id,AcDb::kForRead))
|
|
{
|
|
AecDbClimbStair* pClimbStair = AecDbClimbStair::cast(pEnt);
|
|
if (pClimbStair != NULL)
|
|
{
|
|
m_id = id;
|
|
ClimbStair data;
|
|
pClimbStair->GetClimbStairData(data);
|
|
|
|
m_dD = data.dD;
|
|
m_dSegSp = data.dSegSp;
|
|
m_dSteepH = data.dSteepH;
|
|
m_dH = data.dH;
|
|
m_dW = data.dW;
|
|
m_dBomEl = data.dBomEl;
|
|
m_dH1 = data.dH1;
|
|
m_dH2 = data.dH2;
|
|
m_dd = data.dd;
|
|
m_dt = data.dt;
|
|
m_dbt = data.dbt;
|
|
m_dbw = data.dbw;
|
|
m_dSpWall = data.dSpWall;
|
|
m_nType = data.nType;
|
|
|
|
m_sMaterial = data.m_sMaterial;
|
|
m_sFactory = data.m_sFactory;
|
|
m_sNo = data.m_sNo;
|
|
}
|
|
pEnt->close();
|
|
}
|
|
}
|
|
|
|
void CYHPTDlg::OnBnClickedButton1()
|
|
{
|
|
|
|
}
|
|
|
|
void CYHPTDlg::OnBnClickedCheck6()
|
|
{
|
|
if (m_bNOSetDefault)
|
|
{
|
|
GetDlgItem(IDC_EDIT28)->EnableWindow(FALSE);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_EDIT28)->EnableWindow(TRUE);
|
|
}
|
|
}
|