📄 sdt15.cpp
字号:
// Sdt15.cpp : implementation file
//
// Sdt10 - 独立基础设计
//
// GB2002规范 AutoCAD版
#include "stdafx.h"
#include "Sdt.h"
#include "Sdt15.h"
#include "math.h"
#include "adslib.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define Pi 3.1415926
/////////////////////////////////////////////////////////////////////////////
// CSdt15 dialog
CSdt15::CSdt15(CWnd* pParent /*=NULL*/)
: CDialog(CSdt15::IDD, pParent)
{
//{{AFX_DATA_INIT(CSdt15)
m_as = 0.0;
m_bc = 0.40;
m_bj = 0.0;
m_d = 2.0;
m_ed = 1.1;
m_f = 0.0;
m_fk = 100.0;
m_fy = 210.0;
m_g0 = 18.0;
m_hj = 0.0;
m_m = 0.0;
m_n = 3;
m_nl = 0.0;
m_pj1 = _T("");
m_pj2 = _T("");
m_q = 14.0;
m_sx = 4.2;
m_sy = 5.1;
m_ft = 1.27;
m_jss15 = FALSE;
m_bh15 = _T("DJ-1");
m_gcm15 = _T("Zzz");
//}}AFX_DATA_INIT
}
void CSdt15::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSdt15)
DDX_Text(pDX, IDC_EDITas, m_as);
DDX_Text(pDX, IDC_EDITbc, m_bc);
DDX_Text(pDX, IDC_EDITbj, m_bj);
DDX_Text(pDX, IDC_EDITd, m_d);
DDX_Text(pDX, IDC_EDITed, m_ed);
DDX_Text(pDX, IDC_EDITf, m_f);
DDX_Text(pDX, IDC_EDITfk, m_fk);
DDX_Text(pDX, IDC_EDITfy, m_fy);
DDX_Text(pDX, IDC_EDITg0, m_g0);
DDX_Text(pDX, IDC_EDIThj, m_hj);
DDX_Text(pDX, IDC_EDITm, m_m);
DDX_Text(pDX, IDC_EDITn, m_n);
DDX_Text(pDX, IDC_EDITnl, m_nl);
DDX_Text(pDX, IDC_EDITpj1, m_pj1);
DDX_Text(pDX, IDC_EDITpj2, m_pj2);
DDX_Text(pDX, IDC_EDITq, m_q);
DDX_Text(pDX, IDC_EDITsx, m_sx);
DDX_Text(pDX, IDC_EDITsy, m_sy);
DDX_Text(pDX, IDC_EDITft, m_ft);
DDX_Check(pDX, IDC_CHECKjss15, m_jss15);
DDX_Text(pDX, IDC_EDITbh15, m_bh15);
DDX_Text(pDX, IDC_EDITgcm15, m_gcm15);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSdt15, CDialog)
//{{AFX_MSG_MAP(CSdt15)
ON_BN_CLICKED(IDC_BUTTONjsa, OnBUTTONjsa)
ON_BN_CLICKED(IDC_BUTTONjsf, OnBUTTONjsf)
ON_BN_CLICKED(IDC_BUTTONjsh, OnBUTTONjsh)
ON_BN_CLICKED(IDC_BUTTONjsm, OnBUTTONjsm)
ON_BN_CLICKED(IDC_BUTTONjsn, OnBUTTONjsn)
ON_BN_CLICKED(IDC_BTSdtHelp15, OnBTSdtHelp15)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSdt15 message handlers
CString fmtb;
void CSdt15::OnBUTTONjsn()
{
UpdateData(TRUE);
m_nl =m_n*m_sx*m_sy*m_q;//kN
UpdateData(FALSE);
}
void CSdt15::OnBUTTONjsf()
{
UpdateData(TRUE);
m_f =m_fk +m_ed*m_g0*(m_d-0.5);//kPa
UpdateData(FALSE);
}
void CSdt15::OnBUTTONjsm()
{
UpdateData(TRUE);
m_bj =sqrt( m_nl/(m_f-20*m_d) );//m
m_bj+=0.050;
fmtb.Format("%6.3f",m_bj);
m_bj =atof(fmtb);
UpdateData(FALSE);
}
void CSdt15::OnBUTTONjsh()
{
double qj,c,h0;
UpdateData(TRUE);
qj =m_nl/m_bj/m_bj;
c =(m_bj+m_bc)*(m_bj-m_bc)/(1.0+0.6*1e3*m_ft/qj);
h0 =(sqrt(m_bc*m_bc+c) -m_bc)/2.0;//m
m_hj=h0+0.04;//m
fmtb.Format("%6.3f",m_hj);
m_hj =atof(fmtb);
UpdateData(FALSE);
}
void CSdt15::OnBUTTONjsa()
{
double qj,d150,d200;
UpdateData(TRUE);
qj =m_nl/m_bj/m_bj;
m_m =1.3*qj*(m_bj-m_bc)*(m_bj-m_bc)*(2*m_bj+m_bc)/24.0;//kN-m
m_as=1e6*m_m/m_fy/(m_hj*1e3-40)/0.9/m_bj;//mmxmm/m
fmtb.Format("%8.2f",m_m);
m_m =atof(fmtb);
fmtb.Format("%7.0f",m_as);
m_as =atof(fmtb);
d150 =sqrt(4*m_as*150/1000.0/Pi);
d200 =sqrt(4*m_as*200/1000.0/Pi);
m_pj1.Format("%5.1f@150",d150);
m_pj2.Format("%5.1f@200",d200);
if(m_jss15 == TRUE){
FILE *ou;
CString flname;
if(m_gcm15 =="") {AfxMessageBox("请输入工程名!"); return;}
flname=m_gcm15 + ".txt";
ou=fopen(flname,"a");
fprintf(ou,"\n\n\n");
fprintf(ou,"\n ***********************************************************************");
fprintf(ou,"\n *** 结 构 设 计 计 算 书 ***");
fprintf(ou,"\n *** ***");
fprintf(ou,"\n *** Sdt10 - 独立基础设计 ***");
fprintf(ou,"\n ************************************************* Zgs 2002 ******");
fprintf(ou,"\n\n 工程名称: %s 构件编号: %s",m_gcm15,m_bh15);
fprintf(ou,"\n\n 柱基荷载 N =%8.3f (kN/m),",m_nl);
fprintf(ou,"\n 基础埋深 D =%6.3f (m), 方柱宽度 Bc =%6.3f (m),",m_d,m_bc);
fprintf(ou,"\n 地基承载力特征值 Fak =%8.3f (kPa), 修正后地基承载力特征值 Fa =%8.3f (kPa),",
m_fk,m_f);
fprintf(ou,"\n 钢筋强度 Fy =%8.2f (MPa), 砼抗拉强度 Ft =%8.2f (MPa),",m_fy,m_ft);
fprintf(ou,"\n\n 独基宽度 B =%6.3f (m), 根部高度 H =%6.3f (m),",m_bj,m_hj);
fprintf(ou,"\n 基础弯矩值 M =%8.3f (kN-m)",m_m);
fprintf(ou,"\n 钢筋面积 As =%8.3f (mmxmm/m), 配 %s 或%s",m_as,m_pj1,m_pj2);
fprintf(ou,"\n 工程实际配筋:");
fprintf(ou,"\n\n 简 图: \n\n\n\n\n");
time_t tad;
char *buf;
buf=(char*)calloc(80,sizeof(char));
if(buf==NULL) exit(-1);
tad=time(NULL);
strftime(buf,80,"%A %B %d,%Y",localtime(&tad));
fprintf(ou,"\n\n 设计人:");
fprintf(ou,"\n %s",buf);
fclose(ou);
}
UpdateData(FALSE);
}
void CSdt15::OnBTSdtHelp15()
{
ads_help("sdt2002.hlp","SDT10",0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -