202 lines
5.9 KiB
C++
202 lines
5.9 KiB
C++
#include "stdafx.h"
|
|
#include "SDYCDlg.h"
|
|
#include "KTCADUtilityEx.h"
|
|
#include "AecDbEarthWorm.h"
|
|
#include "UITools.h"
|
|
#include "CCSYDlg.h"
|
|
#include "KKSJDlg.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CSDYCDlg, CBaseDialog)
|
|
|
|
CSDYCDlg::CSDYCDlg(CWnd* pParent)
|
|
: CBaseDialog(CSDYCDlg::IDD, _T("SDYC"), IDC_STATIC_FRM, pParent)
|
|
, m_fKouW(0)
|
|
, m_fDingW(0)
|
|
, m_fDingH(0)
|
|
, m_fAngle(0)
|
|
, m_nFlag(0)
|
|
{ }
|
|
|
|
CSDYCDlg::~CSDYCDlg() { }
|
|
|
|
void CSDYCDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CBaseDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1, m_fKouW);
|
|
DDV_MinMaxFloat(pDX, m_fKouW, 0.1f, 500000.0f);
|
|
DDX_Text(pDX, IDC_EDIT2, m_fDingW);
|
|
DDV_MinMaxFloat(pDX, m_fDingW, 0.1f, 500000.0f);
|
|
DDX_Text(pDX, IDC_EDIT3, m_fDingH);
|
|
DDV_MinMaxFloat(pDX, m_fDingH, 0.1f, 500000.0f);
|
|
DDX_Text(pDX, IDC_EDIT4, m_fAngle);
|
|
DDV_MinMaxFloat(pDX, m_fAngle, 0.1f, 500000.0f);
|
|
DDX_Control(pDX, IDC_LIST1, m_LstCtrl);
|
|
DDX_Radio(pDX, IDC_RADIO1, m_nFlag);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CSDYCDlg, CBaseDialog)
|
|
ON_BN_CLICKED(IDOK, &CSDYCDlg::OnBnClickedOk)
|
|
ON_BN_CLICKED(IDC_BUTTON1, &CSDYCDlg::OnBnClickedButton1)
|
|
ON_BN_CLICKED(IDC_BTADD, &CSDYCDlg::OnBnClickedBtadd)
|
|
ON_BN_CLICKED(IDC_BTREMOVE, &CSDYCDlg::OnBnClickedBtremove)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CSDYCDlg::OnInitDialog()
|
|
{
|
|
CBaseDialog::OnInitDialog();
|
|
|
|
m_fKouW = AS_M2MM(m_data.fNodeDef[0]);
|
|
m_fDingW = AS_M2MM(m_data.fNodeDef[1]);
|
|
m_fDingH = AS_M2MM(m_data.fNodeDef[2]);
|
|
m_fAngle = m_data.fNodeDef[3];//45
|
|
|
|
UpdateData(FALSE);
|
|
|
|
InitLstCtrl();
|
|
RefreshLstCtrl();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CSDYCDlg::SetDefaultFnctNode(EWFnctNode &fncNode)
|
|
{
|
|
memset(&fncNode, 0, sizeof(EWFnctNode));
|
|
|
|
fncNode.dDistFromPre = AS_MUNIT(3000.0);//3米默认位置,距离凸起前侧
|
|
fncNode.eFnType = kEWOutLethouse;
|
|
_tcscpy(fncNode.szNodeSpec, _T("水电管线引出口"));
|
|
fncNode.nRoomIndex = 0;//舱0
|
|
|
|
//fncNode.nFlag = 1;//vtDirX方向开孔
|
|
fncNode.nFlag = 0;
|
|
|
|
fncNode.fNodeDef[0] = AS_MUNITF(8000.0f);//内口宽
|
|
fncNode.fNodeDef[1] = AS_MUNITF(6000.0f);//内顶宽
|
|
fncNode.fNodeDef[2] = AS_MUNITF(1000.0f);//内顶高
|
|
fncNode.fNodeDef[3] = 45.0f;//引出口凸起角度
|
|
|
|
//开孔第1排
|
|
fncNode.fNodeDef[4] = AS_MUNITF(300.0f);//离内顶距离
|
|
fncNode.fNodeDef[5] = AS_MUNITF(300.0f);//侧方向距离
|
|
fncNode.fNodeDef[6] = AS_MUNITF(200.0f);//孔直径
|
|
fncNode.fNodeDef[7] = AS_MUNITF(1500.0f);//孔间距
|
|
fncNode.fNodeDef[8] = 2.0f;//2个
|
|
fncNode.fNodeDef[9] = AS_MUNITF(0.0f);//结束
|
|
|
|
//开孔第2排
|
|
fncNode.fNodeDef[10] = AS_MUNITF(200.0f);//离内顶距离
|
|
fncNode.fNodeDef[11] = AS_MUNITF(3800.0f);//侧方向距离
|
|
fncNode.fNodeDef[12] = AS_MUNITF(203.0f);//孔直径
|
|
fncNode.fNodeDef[13] = AS_MUNITF(300.0f);//孔间距
|
|
fncNode.fNodeDef[14] = 3.0f;//3个
|
|
fncNode.fNodeDef[15] = AS_MUNITF(0.0f);//结束
|
|
|
|
//开孔第3排右
|
|
fncNode.fNodeDef[16] = AS_MUNITF(500.0f);//离内顶距离
|
|
fncNode.fNodeDef[17] = AS_MUNITF(3800.0f);//侧方向距离
|
|
fncNode.fNodeDef[18] = AS_MUNITF(203.0f);//孔直径
|
|
fncNode.fNodeDef[19] = AS_MUNITF(300.0f);//孔间距
|
|
fncNode.fNodeDef[20] = 3.0f;//3个
|
|
fncNode.fNodeDef[21] = AS_MUNITF(0.0f);//结束
|
|
|
|
|
|
//开孔第4排右
|
|
fncNode.fNodeDef[22] = AS_MUNITF(200.0f);//离内顶距离
|
|
fncNode.fNodeDef[23] = AS_MUNITF(5400.0f);//侧方向距离
|
|
fncNode.fNodeDef[24] = AS_MUNITF(108.0f);//孔直径
|
|
fncNode.fNodeDef[25] = AS_MUNITF(300.0f);//孔间距
|
|
fncNode.fNodeDef[26] = 3.0f;//3个
|
|
fncNode.fNodeDef[27] = AS_MUNITF(0.0f);//结束
|
|
|
|
//开孔第5排右
|
|
fncNode.fNodeDef[28] = AS_MUNITF(500.0f);//离内顶距离
|
|
fncNode.fNodeDef[29] = AS_MUNITF(5400.0f);//侧方向距离
|
|
fncNode.fNodeDef[30] = AS_MUNITF(108.0f);//孔直径
|
|
fncNode.fNodeDef[31] = AS_MUNITF(300.0f);//孔间距
|
|
fncNode.fNodeDef[32] = 3.0f;//3个
|
|
fncNode.fNodeDef[33] = AS_MUNITF(0.0f);//结束
|
|
|
|
_tcscpy(fncNode.szNodeDefSpec, _T("水电管线引出口"));
|
|
}
|
|
|
|
void CSDYCDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData(TRUE);
|
|
|
|
if (m_idxRoom < 0)
|
|
{
|
|
AfxMessageBox(_T("请选择一个舱室。"));
|
|
return;
|
|
}
|
|
|
|
m_data.fNodeDef[0] = AS_MUNITF(m_fKouW);
|
|
m_data.fNodeDef[1] = AS_MUNITF(m_fDingW);
|
|
m_data.fNodeDef[2] = AS_MUNITF(m_fDingH);
|
|
m_data.fNodeDef[3] = m_fAngle;
|
|
m_data.nFlag = m_nFlag;
|
|
|
|
CBaseDialog::OnOK();
|
|
}
|
|
|
|
|
|
void CSDYCDlg::OnBnClickedButton1()
|
|
{
|
|
CCCSYDlg dlg;
|
|
dlg.SetBmpFileName(_T("SDYC.bmp"));
|
|
dlg.DoModal();
|
|
}
|
|
|
|
|
|
void CSDYCDlg::OnBnClickedBtadd()
|
|
{
|
|
int count = m_LstCtrl.GetItemCount();
|
|
int idx = 4 + count * 6;
|
|
if (idx + 6 > 63) return;
|
|
CKKSJDlg dlg;
|
|
if (dlg.DoModal() != IDOK) return;
|
|
m_data.fNodeDef[idx] = AS_MUNITF(dlg.m_fNeiDing_Dis);
|
|
m_data.fNodeDef[idx+1] = AS_MUNITF(dlg.m_fChe_Dis);
|
|
m_data.fNodeDef[idx+2] = AS_MUNITF(dlg.m_fD);
|
|
m_data.fNodeDef[idx+3] = AS_MUNITF(dlg.m_fSpacing);
|
|
m_data.fNodeDef[idx+4] = dlg.m_fCount;
|
|
m_data.fNodeDef[idx+5] = .0f;
|
|
RefreshLstCtrl();
|
|
}
|
|
|
|
|
|
void CSDYCDlg::OnBnClickedBtremove()
|
|
{
|
|
int nRow = m_LstCtrl.GetSelectionMark();
|
|
if (nRow != -1)
|
|
m_LstCtrl.DeleteItem(nRow);
|
|
}
|
|
|
|
void CSDYCDlg::InitLstCtrl()
|
|
{
|
|
m_LstCtrl.InsertColumn(0, _T("离内顶距离"), LVCFMT_LEFT, 80);
|
|
m_LstCtrl.InsertColumn(1, _T("侧方向距离"), LVCFMT_LEFT, 80);
|
|
m_LstCtrl.InsertColumn(2, _T("孔直径"), LVCFMT_LEFT, 50);
|
|
m_LstCtrl.InsertColumn(3, _T("孔间距"), LVCFMT_LEFT, 50);
|
|
m_LstCtrl.InsertColumn(4, _T("数量"), LVCFMT_LEFT, 50);
|
|
}
|
|
|
|
void CSDYCDlg::RefreshLstCtrl()
|
|
{
|
|
// 从索引4开始,每6个为一节,视为一排
|
|
// 如果第一个元素为0则视为无,则认为从此不会有新排
|
|
|
|
m_LstCtrl.DeleteAllItems();
|
|
|
|
int nRow(0);
|
|
for (int i = 4, j = 0; i < 64; i += 6, ++j)
|
|
{
|
|
if (m_data.fNodeDef[i] < AS_MUNITF(.1)) // 小于.1毫米,视为0
|
|
return;
|
|
nRow = m_LstCtrl.InsertItem(0, TypeConvert::f2s(m_data.fNodeDef[i]));
|
|
m_LstCtrl.SetItemText(nRow, 1, TypeConvert::f2s(m_data.fNodeDef[i + 1]));
|
|
m_LstCtrl.SetItemText(nRow, 2, TypeConvert::f2s(m_data.fNodeDef[i + 2]));
|
|
m_LstCtrl.SetItemText(nRow, 3, TypeConvert::f2s(m_data.fNodeDef[i + 3]));
|
|
m_LstCtrl.SetItemText(nRow, 4, TypeConvert::i2s((int)m_data.fNodeDef[i + 4]));
|
|
}
|
|
}
|