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

📄 sdt11.cpp

📁 AotoCAD平台下的结构设计工具
💻 CPP
字号:
// sdt11.cpp : implementation file
//
// Sdt14 - 顶部撑锚桩墙基坑支护计算

#include "stdafx.h"
#include "Sdt.h"
#include "sdt11.h"
#include "math.h"
#include "adslib.h"

#define Pi 3.1415926

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

int dnewt11(double *x,double eps,int js);
void dnewtf11(double x,double y[2]);
/////////////////////////////////////////////////////////////////////////////
// Csdt11 dialog


Csdt11::Csdt11(CWnd* pParent /*=NULL*/)
	: CDialog(Csdt11::IDD, pParent)
{
	//{{AFX_DATA_INIT(Csdt11)
	m_f = 0.0;
	m_max = 0.0;
	m_lm = 0.0;
	m_c = 25.0;
	m_l = 0.0;
	m_g = 20.0;
	m_h = 6.0;
	m_pa = 30.0;
	m_q = 20.0;
	m_t = 0.0;
	m_jss = FALSE;
	m_gcm = _T("Zzz");
	//}}AFX_DATA_INIT
}


void Csdt11::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Csdt11)
	DDX_Text(pDX, IDC_EDITzdf, m_f);
	DDX_Text(pDX, IDC_EDITzmax, m_max);
	DDX_Text(pDX, IDC_EDITzmlm, m_lm);
	DDX_Text(pDX, IDC_EDITzzc, m_c);
	DDX_Text(pDX, IDC_EDITzlg, m_l);
	DDX_Text(pDX, IDC_EDITzzg, m_g);
	DDX_Text(pDX, IDC_EDITzzh, m_h);
	DDX_Text(pDX, IDC_EDITzzpa, m_pa);
	DDX_Text(pDX, IDC_EDITzzq, m_q);
	DDX_Text(pDX, IDC_EDITzzt, m_t);
	DDX_Check(pDX, IDC_CHECKjss11, m_jss);
	DDX_Text(pDX, IDC_EDITgcm11, m_gcm);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Csdt11, CDialog)
	//{{AFX_MSG_MAP(Csdt11)
	ON_BN_CLICKED(IDC_BUTTONjs, OnBUTTONjs)
	ON_BN_CLICKED(IDC_BTSdtHelp11, OnBTSdtHelp11)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Csdt11 message handlers

double c3,c2,c1,c0;  

void Csdt11::OnBUTTONjs() 
{
	double pa,ka,kp,eq,ea,ep,fq,fa,fp;
    CString val11;	

	UpdateData(TRUE);
	
	pa=m_pa*Pi/180.0;
	ka=tan(Pi/4.0-pa/2.0)*tan(Pi/4.0-pa/2.0);
	kp=tan(Pi/4.0+pa/2.0)*tan(Pi/4.0+pa/2.0);


	// 1. 埋入深度
	
  	c3=2*m_g*(ka-kp); //X3
	c2=6*m_g*ka*m_h +3*m_q*ka -3*m_g*kp*m_h; //X2
	c1=6*m_g*ka*m_h*m_h +6*m_q*ka*m_h; //X1
	c0=2*m_g*ka*pow(m_h,3.0) +3*m_q*ka*m_h*m_h; //X0

	int js,k;
    double x,eps;
    eps=0.000001; js=100; x=2.0;
    k=dnewt11(&x,eps,js);
    if (k>=0) m_t=x; 
		
	// 2. 锚拉力
	eq=m_q*ka;
	ea=m_g*(m_h+m_t)*ka -2*m_c*sqrt(ka);
	ep=m_g*m_t*kp +2*m_c*sqrt(kp);

	fq=eq*(m_h+m_t);
	fa=ea*(m_h+m_t)/2.0;
	fp=ep*m_t/2.0;
	m_f=(fa*(m_h+m_t)/3.0 +fq*(m_h+m_t)/2.0 -fp*m_t/3.0)/(m_h+m_t);
	
    // 3. 最大弯矩
	m_lm=( sqrt(pow(m_q*ka,2.0) +2*m_g*ka*m_f) -m_q*ka )/m_g/ka;
	m_max=m_f*m_lm -m_q*ka*m_lm*m_lm/2.0 -m_g*ka*pow(m_lm,3.0)/6.0;

	m_t*=1.2;
	m_l=m_h+m_t;

	val11.Format("%8.3f",m_max); 
    m_max=atof(val11);
	
	val11.Format("%6.3f",m_t); 
    m_t=atof(val11); 

	val11.Format("%6.3f",m_l); 
    m_l=atof(val11); 

	val11.Format("%6.3f",m_lm); 
    m_lm=atof(val11);
	
	val11.Format("%8.3f",m_f); 
    m_f=atof(val11); 
	
	UpdateData(FALSE);

if(m_jss == TRUE){

	FILE *ou; 
	CString flname;

	flname=m_gcm + ".txt";
	ou=fopen(flname,"a");

	fprintf(ou,"\n\n\n");
	
	fprintf(ou,"\n   ***********************************************************************");
	fprintf(ou,"\n   ***                       结 构 设 计 计 算 书                      ***");
	fprintf(ou,"\n   ***                                                                 ***");
	fprintf(ou,"\n   ***                  Sdt14 - 顶部撑锚桩墙基坑支护计算               ***");
	fprintf(ou,"\n   *************************************************    Zgs 2002    ******");

	fprintf(ou,"\n\n   工程名称:  %s",m_gcm);
	
	fprintf(ou,"\n\n1. 已知数据\n");
	fprintf(ou,"\n   基坑深度 H=%6.2f(m)",m_h);
	fprintf(ou,"\n   土体内摩擦角(加权平均值) ψ=%6.2f, 土体内粘聚力(加权平均值)C=%6.2f(kN/m/m)", 
						m_pa,m_c);
	fprintf(ou,"\n   土体重力密度(加权平均值) γ=%6.2f, 地面超载    Q=%6.2f(kN/m/m)",m_g,m_q);
	
	fprintf(ou,"\n\n2. 计算结果\n");
	fprintf(ou,"\n   桩墙埋入深度      T=%7.3f(m)",m_t);
	fprintf(ou,"\n   桩墙总长度        L=%7.3f(m)",m_l);
	fprintf(ou,"\n   桩墙最大弯矩   Mmax=%10.3f(kN-m/m)",m_max);
	fprintf(ou,"\n   桩墙最大弯矩深度 Lm=%7.3f(m)",m_lm);
	fprintf(ou,"\n   桩墙顶端锚拉力    F=%10.3f(kN)",m_f);

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

///////////////////////////////////////////////////////////
//方程及一阶导数
void dnewtf11(double x,double y[2])
{ 
	y[0]=c3*x*x*x +c2*x*x +c1*x +c0;
	y[1]=3.0*c3*x*x +2.0*c2*x +c1;
    return;
}
//牛顿法解一元三次方程
int dnewt11(double *x,double eps,int js)
{ 
	int k,l;
    double y[2],d,p,x0,x1;
    l=js; k=1; x0=*x;
    dnewtf11(x0,y);
    d=eps+1.0;
    while ((d>=eps)&&(l!=0))
      { if (fabs(y[1])+1.0==1.0)
          { /*printf("err\n");*/ return(-1);}
        x1=x0-y[0]/y[1];
        dnewtf11(x1,y);
        d=fabs(x1-x0); p=fabs(y[0]);
        if (p>d) d=p;
        x0=x1; l=l-1;
      }
    *x=x1;
    k=js-l;
    return(k);
}


void Csdt11::OnBTSdtHelp11() 
{
	ads_help("sdt2002.hlp","SDT14",0);
	
}

⌨️ 快捷键说明

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