⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdt12.cpp

📁 AotoCAD平台下的结构设计工具
💻 CPP
字号:
// Sdt12.cpp : implementation file
//
// Sdt04 - 梁受扭计算
// 
// GB2002规范 AutoCAD版

#include "stdafx.h"
#include "Sdt.h"
#include "Sdt12.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
/////////////////////////////////////////////////////////////////////////////
// CSdt12 dialog


CSdt12::CSdt12(CWnd* pParent /*=NULL*/)
	: CDialog(CSdt12::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSdt12)
	m_at = 0.0;
	m_dd = 0.0;
	m_dj = 45.0;
	m_dn = 2;
	m_gd = 8;
	m_gj1 = _T("");
	m_gj2 = _T("");
	m_gn = 0.0;
	m_gz = 2;
	m_pd = 100.0;
	m_pg = 100.0;
	m_t = 20.0;
	//}}AFX_DATA_INIT
}


void CSdt12::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSdt12)
	DDX_Control(pDX, IDC_RADIO13, m_rat);
	DDX_Control(pDX, IDC_COMBOh, m_th);
	DDX_Control(pDX, IDC_COMBOc, m_tc);
	DDX_Control(pDX, IDC_COMBOb, m_tb);
	DDX_Text(pDX, IDC_EDITat, m_at);
	DDX_Text(pDX, IDC_EDITdd, m_dd);
	DDX_Text(pDX, IDC_EDITdj, m_dj);
	DDX_Text(pDX, IDC_EDITdn, m_dn);
	DDV_MinMaxInt(pDX, m_dn, 1, 8);
	DDX_Text(pDX, IDC_EDITgd, m_gd);
	DDV_MinMaxInt(pDX, m_gd, 6, 14);
	DDX_Text(pDX, IDC_EDITgj1, m_gj1);
	DDX_Text(pDX, IDC_EDITgj2, m_gj2);
	DDX_Text(pDX, IDC_EDITgn, m_gn);
	DDX_Text(pDX, IDC_EDITgz, m_gz);
	DDV_MinMaxInt(pDX, m_gz, 2, 6);
	DDX_Text(pDX, IDC_EDITpd, m_pd);
	DDX_Text(pDX, IDC_EDITpg, m_pg);
	DDX_Text(pDX, IDC_EDITt, m_t);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSdt12, CDialog)
	//{{AFX_MSG_MAP(CSdt12)
	ON_BN_CLICKED(IDC_BUTTONjsdj, OnBUTTONjsdj)
	ON_BN_CLICKED(IDC_BUTTONjsgj, OnBUTTONjsgj)
	ON_BN_CLICKED(IDC_BUTTONjst, OnBUTTONjst)
	ON_BN_CLICKED(IDC_BTSdtHelp12, OnBTSdtHelp12)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSdt12 message handlers


CString Bt[]={ "200","250","300","350","400" };//5
CString Ht[]={ "250","300","350","400","450","500","550",
			   "600","650","700","800","900","1000" };//13
CString Ct[]={ "20","25","30","35","40","45","50"};//7
CString f12;

BOOL CSdt12::OnInitDialog() 
{
	CDialog::OnInitDialog();

	CheckRadioButton(IDC_RADIO13,IDC_RADIO14,IDC_RADIO13);

	for(int i=0;i<5;i++)
		m_tb.AddString(Bt[i]);
	m_tb.SetCurSel(1);

	for(i=0;i<13;i++)
		m_th.AddString(Ht[i]);
	m_th.SetCurSel(5);

	for(i=0;i<5;i++)
		m_tc.AddString(Ct[i]);
	m_tc.SetCurSel(0);


	return TRUE;  
}

void CSdt12::OnBUTTONjst() 
{
	int iRadio; 
	CString val,cval;
	double b,h,ft,t;
    double acor,ucor,wt,av,at,d100,d150;  

	UpdateData(TRUE);

	m_tb.GetLBText(m_tb.GetCurSel(),val);
	b=atof(val);

	m_th.GetLBText(m_th.GetCurSel(),val);
	h=atof(val);
	
	m_tc.GetLBText(m_tc.GetCurSel(),cval);
    if( !strcmp(cval,"20") )  ft=1.10; //C20
    if( !strcmp(cval,"25") )  ft=1.27; //C25
    if( !strcmp(cval,"30") )  ft=1.43; //C30
    if( !strcmp(cval,"35") )  ft=1.57; //C35
    if( !strcmp(cval,"40") )  ft=1.71; //C40
    if( !strcmp(cval,"45") )  ft=1.80; //C45
    if( !strcmp(cval,"50") )  ft=1.89; //C50

	iRadio=GetCheckedRadioButton(IDC_RADIO13,IDC_RADIO14);
	if(iRadio==IDC_RADIO13) { t=1.3*m_t; }
	if(iRadio==IDC_RADIO14) { t=m_t;  }

	t*=1e6;
	acor =(b-50)*(h-50);
	ucor =2*(b+h)-200;
	wt =b*b*(3*h-b)/6.0;

	av =(t-0.35*ft*wt)/acor/276.0;
	at =0.840*av*ucor;

	d100 =sqrt(400*av/Pi);
	d150 =sqrt(600*av/Pi);
	
	val.Format("%7.1f",at);
	m_at = atof(val);
	m_gj1.Format("%4.1f@100",d100);
	m_gj2.Format("%4.1f@150",d150);

	UpdateData(FALSE);
}


void CSdt12::OnBUTTONjsgj() 
{
	int iRadio; 	
	double pg;
	UpdateData(TRUE);

	iRadio=GetCheckedRadioButton(IDC_RADIO13,IDC_RADIO14);
	if(iRadio==IDC_RADIO13) { pg=1.25*m_pg; }
	if(iRadio==IDC_RADIO14) { pg=m_pg;  }

	m_gn = 4e3*pg/(m_gz*Pi*m_gd*m_gd*210.0);
	f12.Format("%6.2f",m_gn);
	m_gn =atof(f12);

	UpdateData(FALSE);
	
}


void CSdt12::OnBUTTONjsdj() 
{
	int iRadio; 	
	double pd;
	UpdateData(TRUE);

	iRadio=GetCheckedRadioButton(IDC_RADIO13,IDC_RADIO14);
	if(iRadio==IDC_RADIO13) { pd=1.25*m_pd; }
	if(iRadio==IDC_RADIO14) { pd=m_pd;  }

	m_dd = 5e3*pd/(m_dn*Pi*sin(Pi*m_dj/180.0)*310.0);
	m_dd = sqrt(m_dd);
	f12.Format("%6.2f",m_dd);
	m_dd =atof(f12);

	UpdateData(FALSE);
	
}
void CSdt12::OnBTSdtHelp12() 
{
	ads_help("sdt2002.hlp","SDT04",0);
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -