804 lines
18 KiB
C++
804 lines
18 KiB
C++
#include "stdafx.h"
|
|
#include "CJXZJDlg.h"
|
|
#include "EarThwormDef.h"
|
|
#include "CoreTools.h"
|
|
#include "uihistory.h"
|
|
#include "AecDbRectCornerStair.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CJXZJDlg, CDialog)
|
|
|
|
CJXZJDlg::CJXZJDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(IDD_JXZJ_DLG, pParent)
|
|
, m_sH(_T("3000"))
|
|
, m_dSteepH(150)
|
|
, m_dSteepW(270)
|
|
, m_sStairStepS(_T("4"))
|
|
, m_bSymmetry(FALSE)
|
|
, m_n1StepS(6)
|
|
, m_d1StepW(1000)
|
|
, m_n2StepS(9)
|
|
, m_d2StepW(1500)
|
|
, m_n3StepS(12)
|
|
, m_d3StepW(1500)
|
|
, m_n4StepS(15)
|
|
, m_d4StepW(2000)
|
|
, m_nUpSide(0)
|
|
, m_nFloorShow(FALSE)
|
|
, m_bDimUpstair(TRUE)
|
|
, m_bLBeam(FALSE)
|
|
, m_bRBeam(FALSE)
|
|
, m_dBarH(900)
|
|
, m_dBarSw(60)
|
|
, m_dBarSh(60)
|
|
, m_dBarSide(10)
|
|
, m_sGarMat(_T(""))
|
|
, m_bOutSideHRail(TRUE)
|
|
, m_bOutSideRail(TRUE)
|
|
, m_bInsideRail(TRUE)
|
|
, m_dZGarExt(600)
|
|
, m_dGarExt(200)
|
|
, m_dRailSw(30)
|
|
, m_dRailSh(50)
|
|
, m_nRailCirSec(TRUE)
|
|
, m_sBarMat(_T(""))
|
|
, m_dBomEl(0)
|
|
, m_nSSteeps(3)
|
|
, m_dStairSW(7500)
|
|
, m_dStairMW(8500)
|
|
{
|
|
GET_CACHE(CJXZJDlg
|
|
, %s%f%f%s%d%d%f%d%f%d%f%d%f%d%d%d%d%d%f%f%f%f%s%d%d%d%f%f%f%f%d%s%f%d%f%f
|
|
, &m_sH
|
|
, &m_dSteepH
|
|
, &m_dSteepW
|
|
, &m_sStairStepS
|
|
, &m_bSymmetry
|
|
, &m_n1StepS
|
|
, &m_d1StepW
|
|
, &m_n2StepS
|
|
, &m_d2StepW
|
|
, &m_n3StepS
|
|
, &m_d3StepW
|
|
, &m_n4StepS
|
|
, &m_d4StepW
|
|
, &m_nUpSide
|
|
, &m_nFloorShow
|
|
, &m_bDimUpstair
|
|
, &m_bLBeam
|
|
, &m_bRBeam
|
|
, &m_dBarH
|
|
, &m_dBarSw
|
|
, &m_dBarSh
|
|
, &m_dBarSide
|
|
, &m_sGarMat
|
|
, &m_bOutSideHRail
|
|
, &m_bOutSideRail
|
|
, &m_bInsideRail
|
|
, &m_dZGarExt
|
|
, &m_dGarExt
|
|
, &m_dRailSw
|
|
, &m_dRailSh
|
|
, &m_nRailCirSec
|
|
, &m_sBarMat
|
|
, &m_dBomEl
|
|
, &m_nSSteeps
|
|
, &m_dStairSW
|
|
, &m_dStairMW);
|
|
}
|
|
|
|
CJXZJDlg::~CJXZJDlg()
|
|
{
|
|
}
|
|
|
|
void CJXZJDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1, m_sH);
|
|
DDX_Text(pDX, IDC_EDIT6, m_dSteepH);
|
|
DDX_Text(pDX, IDC_EDIT10, m_dSteepW);
|
|
DDX_CBString(pDX, IDC_COMBO2, m_sStairStepS);
|
|
DDX_Check(pDX, IDC_CHECK1, m_bSymmetry);
|
|
DDX_Text(pDX, IDC_EDIT3, m_n1StepS);
|
|
DDX_Text(pDX, IDC_EDIT11, m_d1StepW);
|
|
DDX_Text(pDX, IDC_EDIT15, m_n2StepS);
|
|
DDX_Text(pDX, IDC_EDIT16, m_d2StepW);
|
|
DDX_Text(pDX, IDC_EDIT5, m_n3StepS);
|
|
DDX_Text(pDX, IDC_EDIT20, m_d3StepW);
|
|
DDX_Text(pDX, IDC_EDIT22, m_n4StepS);
|
|
DDX_Text(pDX, IDC_EDIT23, m_d4StepW);
|
|
DDX_Radio(pDX, IDC_RADIO1, m_nUpSide);
|
|
DDX_Radio(pDX, IDC_RADIO10, m_nFloorShow);
|
|
DDX_Check(pDX, IDC_CHECK8, m_bDimUpstair);
|
|
DDX_Check(pDX, IDC_CHECK2, m_bLBeam);
|
|
DDX_Check(pDX, IDC_CHECK6, m_bRBeam);
|
|
DDX_Text(pDX, IDC_EDIT21, m_dBarH);
|
|
DDX_Text(pDX, IDC_EDIT24, m_dBarSw);
|
|
DDX_Text(pDX, IDC_EDIT25, m_dBarSh);
|
|
DDX_Text(pDX, IDC_EDIT31, m_dBarSide);
|
|
DDX_CBString(pDX, IDC_COMBO4, m_sGarMat);
|
|
|
|
DDX_Check(pDX, IDC_CHECK16, m_nRailCirSec);
|
|
DDX_Check(pDX, IDC_CHECK9, m_bOutSideHRail);
|
|
DDX_Check(pDX, IDC_CHECK13, m_bOutSideRail);
|
|
DDX_Check(pDX, IDC_CHECK14, m_bInsideRail);
|
|
|
|
DDX_Text(pDX, IDC_EDIT33, m_dZGarExt);
|
|
DDX_Text(pDX, IDC_EDIT32, m_dGarExt);
|
|
DDX_Text(pDX, IDC_EDIT30, m_dRailSw);
|
|
DDX_Text(pDX, IDC_EDIT28, m_dRailSh);
|
|
DDX_CBString(pDX, IDC_COMBO6, m_sBarMat);
|
|
DDX_Text(pDX, IDC_EDIT40, m_dBomEl);
|
|
DDX_Text(pDX, IDC_EDIT36, m_nSSteeps);
|
|
DDX_Text(pDX, IDC_EDIT18, m_dStairSW);
|
|
DDX_Text(pDX, IDC_EDIT17, m_dStairMW);
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CJXZJDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CJXZJDlg::OnBnClickedOk)
|
|
ON_EN_CHANGE(IDC_EDIT3, &CJXZJDlg::OnEnChangeSteep1s)
|
|
ON_EN_CHANGE(IDC_EDIT15, &CJXZJDlg::OnEnChangeSteep2s)
|
|
ON_EN_CHANGE(IDC_EDIT5, &CJXZJDlg::OnEnChangeSteep3s)
|
|
ON_EN_CHANGE(IDC_EDIT22, &CJXZJDlg::OnEnChangeSteep4s)
|
|
ON_EN_CHANGE(IDC_EDIT1, &CJXZJDlg::OnEnChangeH)
|
|
ON_EN_CHANGE(IDC_EDIT6, &CJXZJDlg::OnEnChangeStweepH)
|
|
ON_EN_CHANGE(IDC_EDIT18, &CJXZJDlg::OnEnChangeL)
|
|
ON_EN_CHANGE(IDC_EDIT17, &CJXZJDlg::OnEnChangeW)
|
|
ON_EN_CHANGE(IDC_EDIT11, &CJXZJDlg::OnEnChangeSteep1W)
|
|
ON_EN_CHANGE(IDC_EDIT16, &CJXZJDlg::OnEnChangeSteep2W)
|
|
ON_EN_CHANGE(IDC_EDIT20, &CJXZJDlg::OnEnChangeSteep3W)
|
|
ON_EN_CHANGE(IDC_EDIT23, &CJXZJDlg::OnEnChangeSteep4W)
|
|
ON_CBN_SELCHANGE(IDC_COMBO2, &CJXZJDlg::OnEnChangeStairStepS)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CJXZJDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
if (BST_CHECKED == IsDlgButtonChecked(IDC_CHECK1))
|
|
{
|
|
//选中
|
|
if (m_sStairStepS == _T("3"))
|
|
{
|
|
m_n3StepS = m_n1StepS;
|
|
}
|
|
else if (m_sStairStepS == _T("4"))
|
|
{
|
|
m_n3StepS = m_n1StepS;
|
|
m_n4StepS = m_n2StepS;
|
|
}
|
|
}
|
|
|
|
//IDC_STATIC
|
|
// 子类化控件对象
|
|
if (!m_wndViewCtrl.SubclassDlgItem(IDC_STATIC_FRM, this))
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
PreView3d();
|
|
//PreView2d();
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CJXZJDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
SET_CACHE(CJXZJDlg
|
|
, %s%f%f%s%d%d%f%d%f%d%f%d%f%d%d%d%d%d%f%f%f%f%s%d%d%d%f%f%f%f%d%s%f%d%f%f
|
|
, m_sH
|
|
, m_dSteepH
|
|
, m_dSteepW
|
|
, m_sStairStepS
|
|
, m_bSymmetry
|
|
, m_n1StepS
|
|
, m_d1StepW
|
|
, m_n2StepS
|
|
, m_d2StepW
|
|
, m_n3StepS
|
|
, m_d3StepW
|
|
, m_n4StepS
|
|
, m_d4StepW
|
|
, m_nUpSide
|
|
, m_nFloorShow
|
|
, m_bDimUpstair
|
|
, m_bLBeam
|
|
, m_bRBeam
|
|
, m_dBarH
|
|
, m_dBarSw
|
|
, m_dBarSh
|
|
, m_dBarSide
|
|
, m_sGarMat
|
|
, m_bOutSideHRail
|
|
, m_bOutSideRail
|
|
, m_bInsideRail
|
|
, m_dZGarExt
|
|
, m_dGarExt
|
|
, m_dRailSw
|
|
, m_dRailSh
|
|
, m_nRailCirSec
|
|
, m_sBarMat
|
|
, m_dBomEl
|
|
, m_nSSteeps
|
|
, m_dStairSW
|
|
, m_dStairMW);
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeSteep1s()
|
|
{
|
|
UpdateData();
|
|
|
|
double h = _ttof(m_sH);
|
|
if (m_sStairStepS == _T("2"))
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS);
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
if (m_bSymmetry)
|
|
{
|
|
m_dSteepH = h / (m_n1StepS * 2 + m_n2StepS);
|
|
}
|
|
else
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS + m_n3StepS);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (m_bSymmetry)
|
|
{
|
|
m_dSteepH = h / ((m_n1StepS + m_n2StepS) * 2);
|
|
}
|
|
else
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS + m_n3StepS + m_n4StepS);
|
|
}
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeSteep2s()
|
|
{
|
|
UpdateData();
|
|
|
|
double h = _ttof(m_sH);
|
|
if (m_sStairStepS == _T("2"))
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS);
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
if (m_bSymmetry)
|
|
{
|
|
m_dSteepH = h / (m_n1StepS * 2 + m_n2StepS);
|
|
}
|
|
else
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS + m_n3StepS);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (m_bSymmetry)
|
|
{
|
|
m_dSteepH = h / ((m_n1StepS + m_n2StepS) * 2);
|
|
}
|
|
else
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS + m_n3StepS + m_n4StepS);
|
|
}
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeSteep3s()
|
|
{
|
|
UpdateData();
|
|
|
|
double h = _ttof(m_sH);
|
|
if (m_sStairStepS == _T("2"))
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS);
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
if (m_bSymmetry)
|
|
{
|
|
m_dSteepH = h / (m_n1StepS * 2 + m_n2StepS);
|
|
}
|
|
else
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS + m_n3StepS);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (m_bSymmetry)
|
|
{
|
|
m_dSteepH = h / ((m_n1StepS + m_n2StepS) * 2);
|
|
}
|
|
else
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS + m_n3StepS + m_n4StepS);
|
|
}
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeSteep4s()
|
|
{
|
|
UpdateData();
|
|
|
|
double h = _ttof(m_sH);
|
|
if (m_sStairStepS == _T("2"))
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS);
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
if (m_bSymmetry)
|
|
{
|
|
m_dSteepH = h / (m_n1StepS * 2 + m_n2StepS);
|
|
}
|
|
else
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS + m_n3StepS);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (m_bSymmetry)
|
|
{
|
|
m_dSteepH = h / ((m_n1StepS + m_n2StepS) * 2);
|
|
}
|
|
else
|
|
{
|
|
m_dSteepH = h / (m_n1StepS + m_n2StepS + m_n3StepS + m_n4StepS);
|
|
}
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeH()
|
|
{
|
|
UpdateData();
|
|
|
|
double h = _ttof(m_sH);
|
|
if (m_sStairStepS == _T("2"))
|
|
{
|
|
m_n1StepS = (int)((h / m_dSteepH) / 2);
|
|
m_n2StepS = m_n1StepS + 1;
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
m_n1StepS = (int)((h / m_dSteepH) / 3);
|
|
m_n2StepS = m_n1StepS + 1;
|
|
m_n3StepS = m_n1StepS;
|
|
}
|
|
else
|
|
{
|
|
m_n1StepS = (int)((h / m_dSteepH) / 4);
|
|
m_n2StepS = m_n1StepS + 1;
|
|
m_n3StepS = m_n1StepS;
|
|
m_n4StepS = m_n2StepS;
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeStweepH()
|
|
{
|
|
UpdateData();
|
|
|
|
double h = _ttof(m_sH);
|
|
if (m_sStairStepS == _T("2"))
|
|
{
|
|
m_n1StepS = (int)((h / m_dSteepH) / 2);
|
|
m_n2StepS = m_n1StepS + 1;
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
m_n1StepS = (int)((h / m_dSteepH) / 3);
|
|
m_n2StepS = m_n1StepS + 1;
|
|
m_n3StepS = m_n1StepS;
|
|
}
|
|
else
|
|
{
|
|
m_n1StepS = (int)((h / m_dSteepH) / 4);
|
|
m_n2StepS = m_n1StepS + 1;
|
|
m_n3StepS = m_n1StepS;
|
|
m_n4StepS = m_n2StepS;
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeL()
|
|
{
|
|
UpdateData();
|
|
|
|
/*if (m_sStairStepS == _T("2"))
|
|
{
|
|
m_n2StepS = (int)((m_dStairSW - m_d1StepW) / m_dSteepW);
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
m_n2StepS = (int)((m_dStairSW - m_d1StepW - m_d3StepW) / m_dSteepW);
|
|
}
|
|
else
|
|
{
|
|
m_n2StepS = (int)((m_dStairSW - m_d1StepW - m_d3StepW) / m_dSteepW);
|
|
m_n4StepS = (int)((m_dStairSW - m_d1StepW - m_d3StepW) / m_dSteepW);
|
|
}*/
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeW()
|
|
{
|
|
UpdateData();
|
|
|
|
/*if (m_sStairStepS == _T("2"))
|
|
{
|
|
m_n1StepS = (int)((m_dStairMW - m_d2StepW) / m_dSteepW);
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
m_n1StepS = (int)((m_dStairMW - m_d2StepW) / m_dSteepW);
|
|
m_n3StepS = (int)((m_dStairMW - m_d2StepW) / m_dSteepW);
|
|
}
|
|
else
|
|
{
|
|
m_n1StepS = (int)((m_dStairMW - m_d2StepW - m_d4StepW) / m_dSteepW);
|
|
m_n3StepS = (int)((m_dStairMW - m_d2StepW - m_d4StepW) / m_dSteepW);
|
|
}*/
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeSteep1W()
|
|
{
|
|
UpdateData();
|
|
|
|
double dLen;
|
|
if (m_sStairStepS == _T("2"))
|
|
{
|
|
dLen = m_dStairMW - m_d2StepW;
|
|
if (m_dSteepW > dLen)
|
|
{
|
|
AfxMessageBox(_T("请改变楼梯宽度!"));
|
|
}
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
dLen = m_dStairMW - m_d2StepW;
|
|
if (m_dSteepW > dLen)
|
|
{
|
|
AfxMessageBox(_T("请改变楼梯宽度!"));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
dLen = m_dStairMW - m_d2StepW - m_d4StepW;
|
|
if (m_dSteepW > dLen)
|
|
{
|
|
AfxMessageBox(_T("请改变楼梯宽度!"));
|
|
}
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeSteep2W()
|
|
{
|
|
UpdateData();
|
|
|
|
double dLen;
|
|
if (m_sStairStepS == _T("2"))
|
|
{
|
|
dLen = m_dStairSW - m_d1StepW;
|
|
if (m_dSteepW > dLen)
|
|
{
|
|
AfxMessageBox(_T("请改变楼梯长度!"));
|
|
}
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
dLen = m_dStairSW - m_d1StepW - m_d3StepW;
|
|
if (m_dSteepW > dLen)
|
|
{
|
|
AfxMessageBox(_T("请改变楼梯长度!"));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
dLen = m_dStairSW - m_d1StepW - m_d3StepW;
|
|
if (m_dSteepW > dLen)
|
|
{
|
|
AfxMessageBox(_T("请改变楼梯长度!"));
|
|
}
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeSteep3W()
|
|
{
|
|
UpdateData();
|
|
|
|
double dLen;
|
|
if (m_sStairStepS == _T("3"))
|
|
{
|
|
dLen = m_dStairMW - m_d2StepW;
|
|
if (m_dSteepW > dLen)
|
|
{
|
|
AfxMessageBox(_T("请改变楼梯宽度!"));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
dLen = m_dStairMW - m_d2StepW - m_d4StepW;
|
|
if (m_dSteepW > dLen)
|
|
{
|
|
AfxMessageBox(_T("请改变楼梯宽度!"));
|
|
}
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeSteep4W()
|
|
{
|
|
UpdateData();
|
|
|
|
double dLen;
|
|
if (m_sStairStepS == _T("4"))
|
|
{
|
|
dLen = m_dStairSW - m_d1StepW - m_d3StepW;
|
|
if (m_dSteepW > dLen)
|
|
{
|
|
AfxMessageBox(_T("请改变楼梯长度!"));
|
|
}
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::OnEnChangeStairStepS()
|
|
{
|
|
UpdateData();
|
|
|
|
if (m_sStairStepS == _T("2"))
|
|
{
|
|
m_n1StepS = (int)((m_dStairMW - m_d2StepW) / m_dSteepW);
|
|
m_n2StepS = (int)((m_dStairSW - m_d1StepW) / m_dSteepW);
|
|
}
|
|
else if (m_sStairStepS == _T("3"))
|
|
{
|
|
m_n1StepS = (int)((m_dStairMW - m_d2StepW) / m_dSteepW);
|
|
m_n2StepS = (int)((m_dStairSW - m_d1StepW - m_d3StepW) / m_dSteepW);
|
|
m_n3StepS = (int)((m_dStairMW - m_d2StepW) / m_dSteepW);
|
|
}
|
|
else if (m_sStairStepS == _T("4"))
|
|
{
|
|
m_n1StepS = (int)((m_dStairMW - m_d2StepW - m_d4StepW) / m_dSteepW);
|
|
m_n2StepS = (int)((m_dStairSW - m_d1StepW - m_d3StepW) / m_dSteepW);
|
|
m_n3StepS = (int)((m_dStairMW - m_d2StepW - m_d4StepW) / m_dSteepW);
|
|
m_n4StepS = (int)((m_dStairSW - m_d1StepW - m_d3StepW) / m_dSteepW);
|
|
}
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CJXZJDlg::PreView3d()
|
|
{
|
|
AcDbObjectId idLayStair = KTSetting::InitLayer(_T("LAY_CSTAIR"), true);
|
|
AecDbRectCornerStair* pStair = new AecDbRectCornerStair;
|
|
SFSPStair data;
|
|
::memset(&data, 0, sizeof(SFSPStair));
|
|
GetSFPXStair(data);
|
|
pStair->setLayer(idLayStair);
|
|
pStair->SetSFPXStair(data);
|
|
pStair->SetSection(data.dBarSize[0], 0.0);
|
|
|
|
AcGeVector3d X(AcGeVector3d::kXAxis), Y(AcGeVector3d::kYAxis), Z(AcGeVector3d::kZAxis);
|
|
AcGePoint3d ptS = AcGePoint3d::kOrigin + Y * data.dStairSW * .5;
|
|
ptS -= X * data.dStairTW * .5;
|
|
AcGePoint3d ptE = ptS + AcGeVector3d::kXAxis * 100;
|
|
AcDbLine ln;
|
|
ln.setStartPoint(ptS);
|
|
ln.setEndPoint(ptE);
|
|
|
|
pStair->SetBaseCurve(&ln);
|
|
pStair->GetSpecialtyData()->SetAt(KEY_2DSTYLE, 0);
|
|
|
|
//CoreTools::CloneAndAddToModelSpace(pStair);
|
|
|
|
m_wndViewCtrl.clearAll();
|
|
m_wndViewCtrl.init(true);
|
|
m_wndViewCtrl.SetOrbitFlag(OBF_PAN | OBF_ZOOM | OBF_COTE);
|
|
AcDbExtents ext;
|
|
pStair->getGeomExtents(ext);
|
|
m_wndViewCtrl.InitFromCurrentView3D(ext, true);
|
|
|
|
AcGeMatrix3d mat;
|
|
mat.setToScaling(.1, AcGePoint3d::kOrigin);
|
|
//pStair->transformBy(mat);
|
|
|
|
m_wndViewCtrl.Add(pStair);
|
|
pStair->close();
|
|
m_wndViewCtrl.view()->invalidate();
|
|
m_wndViewCtrl.Invalidate();
|
|
m_wndViewCtrl.RedrawWindow();
|
|
}
|
|
|
|
void CJXZJDlg::PreView2d()
|
|
{
|
|
AcDbObjectId idLayStair = KTSetting::InitLayer(_T("LAY_CSTAIR"), true);
|
|
AecDbRectCornerStair* pStair = new AecDbRectCornerStair;
|
|
SFSPStair data;
|
|
::memset(&data, 0, sizeof(SFSPStair));
|
|
GetSFPXStair(data);
|
|
pStair->setLayer(idLayStair);
|
|
pStair->SetSFPXStair(data);
|
|
pStair->SetSection(data.dBarSize[0], 0.0);
|
|
|
|
AcDbLine ln;
|
|
ln.setStartPoint(AcGePoint3d::kOrigin);
|
|
ln.setEndPoint(AcGePoint3d::kOrigin + AcGeVector3d::kYAxis * 100);
|
|
CoreTools::CloneAndAddToModelSpace(&ln);
|
|
|
|
pStair->SetBaseCurve(&ln);
|
|
pStair->GetSpecialtyData()->SetAt(KEY_2DSTYLE, 0);
|
|
|
|
m_wndViewCtrl.clearAll();
|
|
m_wndViewCtrl.init(true);
|
|
m_wndViewCtrl.SetOrbitFlag(OBF_PAN | OBF_ZOOM | OBF_COTE);
|
|
AcDbExtents ext;
|
|
pStair->getGeomExtents(ext);
|
|
m_wndViewCtrl.InitFromCurrentView2D(ext, true);
|
|
m_wndViewCtrl.Add(pStair);
|
|
pStair->close();
|
|
m_wndViewCtrl.view()->invalidate();
|
|
m_wndViewCtrl.Invalidate();
|
|
m_wndViewCtrl.RedrawWindow();
|
|
}
|
|
|
|
bool CJXZJDlg::GetSFPXStair(SFPXStair &data) const
|
|
{
|
|
|
|
data.dH = _ttof(m_sH); //楼梯高度
|
|
data.nSteepS = _ttoi(m_sStairStepS);//跑步数
|
|
data.dSteepH = m_dSteepH; //踏步高度
|
|
data.dSteepW = m_dSteepW; //踏步宽度
|
|
data.dStairTW = m_dStairSW; //长度
|
|
data.dStairSW = m_dStairMW; //宽度
|
|
|
|
data.bSymmetry = m_bSymmetry; //是否对称
|
|
data.n1SteepS = m_n1StepS; //一跑步数
|
|
data.d1SteepW = m_d1StepW; //一跑段宽
|
|
|
|
data.nSteep2s = m_n2StepS; //二跑步数
|
|
data.d2SteepW = m_d2StepW; //二跑段宽
|
|
|
|
data.nSteep3s = m_n3StepS; //三跑步数
|
|
data.d3SteepW = m_d3StepW; //三跑段宽
|
|
|
|
data.nSteep4s = m_n4StepS; //四跑步数
|
|
data.d4SteepW = m_d4StepW; //四跑段宽
|
|
|
|
|
|
data.dStairTW = m_dStairSW; //梯间宽度
|
|
data.dStairSW = m_dStairMW; //梯段宽度
|
|
data.dStairMW = m_dStairMW; //无
|
|
data.nSSteeps = m_nSSteeps; //剖切步数
|
|
data.dWell = 100; //井宽 100 国标
|
|
data.bLBeam = m_bLBeam; //内边梁
|
|
data.bRBeam = m_bRBeam; //外边梁
|
|
data.nUpSide = m_nUpSide; //上梯位置
|
|
data.nSteepAlign = 0; //踏步取齐
|
|
data.nFloorShow = m_nFloorShow; //层显示类型
|
|
data.bDimUpstair = m_bDimUpstair; //标注上楼方向
|
|
|
|
//平台参数 不用
|
|
data.nRestShape = 0; //休息平台形状
|
|
data.dRestPtW = 1200; //休息平台宽
|
|
data.dStiffnW = 100; //加强筋宽 钢梯无效
|
|
data.dStiffnH = 100; //加强筋高 钢梯无效
|
|
data.dSbThick = 100; //平台板厚
|
|
|
|
data.bOutSideHRail = m_bOutSideHRail;//有外侧扶手
|
|
data.bOutSideRail = m_bOutSideRail; //有外侧栏杆
|
|
data.bInsideRail = m_bInsideRail; //有内侧栏杆
|
|
data.dBomEl = m_dBomEl; //楼梯底部标高
|
|
|
|
//扶手护栏
|
|
data.dBarH = m_dBarH; //扶手高度
|
|
data.dGarSize[0] = m_dBarSw;
|
|
data.dGarSize[1] = m_dBarSh;
|
|
|
|
data.dGarExt = m_dGarExt; //转角扶手伸出 60 默认 上端
|
|
data.dZGarExt = m_dZGarExt; //层间伸出 60 默认 下端
|
|
|
|
|
|
data.nGShape = 1; //截面类型0 Rect 1 C
|
|
_tcscpy(data.szGarMat, m_sGarMat); //材质
|
|
|
|
data.dBarSp = 600; //护栏间距 预留
|
|
data.dBarSize[0] = m_dRailSw; //护栏截面尺寸
|
|
data.dBarSize[1] = m_dRailSh;
|
|
data.dBarSide = m_dBarSide; //扶手距边
|
|
|
|
data.nBShape = m_nRailCirSec; //护栏截面类型0 Rect 1 C
|
|
_tcscpy(data.szBarMat, m_sBarMat); //材质
|
|
|
|
return true;
|
|
}
|
|
|
|
void CJXZJDlg::SetSFPXStair(const SFPXStair& data)
|
|
{
|
|
m_sH.Format(_T("%lf"), data.dH); //楼梯高度
|
|
m_sStairStepS.Format(_T("%d"), data.nSteepS); //跑步数
|
|
m_dSteepH = data.dSteepH; //踏步高度
|
|
m_dSteepW = data.dSteepW; //踏步宽度
|
|
m_dStairSW = data.dStairTW; //长度
|
|
m_dStairMW = data.dStairSW; //宽度
|
|
|
|
m_bSymmetry = data.bSymmetry; //是否对称
|
|
m_n1StepS = data.n1SteepS; //一跑步数
|
|
m_d1StepW = data.d1SteepW; //一跑段宽
|
|
|
|
m_n2StepS = data.nSteep2s; //二跑步数
|
|
m_d2StepW = data.d2SteepW; //二跑段宽
|
|
|
|
m_n3StepS = data.nSteep3s; //三跑步数
|
|
m_d3StepW = data.d3SteepW; //三跑段宽
|
|
|
|
m_n4StepS = data.nSteep4s; //四跑步数
|
|
m_d4StepW = data.d4SteepW; //四跑段宽
|
|
|
|
m_dStairSW = data.dStairTW; //梯间宽度
|
|
m_dStairMW = data.dStairSW; //梯段宽度
|
|
m_dStairMW = data.dStairMW; //无
|
|
m_nSSteeps = data.nSSteeps; //剖切步数
|
|
m_bLBeam = data.bLBeam; //内边梁
|
|
m_bRBeam = data.bRBeam; //外边梁
|
|
m_nUpSide = data.nUpSide; //上梯位置
|
|
m_nFloorShow = data.nFloorShow; //层显示类型
|
|
m_bDimUpstair = data.bDimUpstair; //标注上楼方向
|
|
|
|
m_bOutSideHRail = data.bOutSideHRail; //有外侧扶手
|
|
m_bOutSideRail = data.bOutSideRail; //有外侧栏杆
|
|
m_bInsideRail = data.bInsideRail; //有内侧栏杆
|
|
m_dBomEl = data.dBomEl; //楼梯底部标高
|
|
|
|
//扶手护栏
|
|
m_dBarH = data.dBarH; //扶手高度
|
|
m_dBarSw = data.dGarSize[0];
|
|
m_dBarSh = data.dGarSize[1];
|
|
|
|
m_dGarExt = data.dGarExt; //转角扶手伸出 60 默认 上端
|
|
m_dZGarExt = data.dZGarExt; //层间伸出 60 默认 下端
|
|
|
|
m_nRailCirSec = data.nGShape; //截面类型0 Rect 1 C
|
|
m_sGarMat = data.szGarMat; //材质
|
|
|
|
m_dRailSw = data.dBarSize[0]; //护栏截面尺寸
|
|
m_dRailSh = data.dBarSize[1];
|
|
m_dBarSide = data.dBarSide; //扶手距边
|
|
|
|
m_nRailCirSec = data.nBShape; //护栏截面类型0 Rect 1 C
|
|
m_sBarMat = data.szBarMat; //材质
|
|
}
|