Files
envi-code/SourceCode/Code2026/Pool3dCmd/YHPTDlg.cpp
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

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);
}
}