📄 load.cpp
字号:
#include "stdafx.h"
//#include "FORCE.h"
#include "Load.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CLoad::CLoad()
{
//作用荷载的节点数量
m_nNodeLoadNum_Case1 = 0;
m_nNodeLoadNum_Case2 = 0;
//作用荷载的单元数量
m_nElemLoadNum_Case1_Dis = 0;
m_nElemLoadNum_Case2_Dis = 0;
m_nElemLoadNum_Case1_Cen = 0;
m_nElemLoadNum_Case2_Cen = 0;
//预先开设
m_adJointLoadValue_Case1.SetSize(1);
m_adJointLoadValue_Case2.SetSize(1);
m_adElemLoadValue_Case1_Dis.SetSize(1);
m_adElemLoadValue_Case1_Cen.SetSize(1);
m_adElemLoadValue_Case2_Dis.SetSize(1);
m_adElemLoadValue_Case2_Cen.SetSize(1);
}
CLoad::~CLoad()
{}
void CLoad::ReadFile(CString chr)
{
m_cFilepath = chr;
//临时变量,读取参数用
char str[100];
bool m_bGroup = 0;
bool m_bJointLoad = 0;
bool m_bMemberLoad = 0;
bool m_bRUN = 0;
int m_nTemp;
double m_dTemp;
ifstream fin;
//**********************************荷载组1---节点荷载的读取********************************
fin.open(m_cFilepath,ios::in);
while(!fin.eof())
{
fin>>str;
if(!strcmp(str,"LOAD_CASE_1_START"))
m_bGroup = 1;
//开始读数
while(m_bGroup)
{
fin>>str;
if(!strcmp(str,"LOAD_CASE_1_END"))
{
m_bGroup = 0;
break;
}
if(!strcmp(str,"LOAD_CASE_2_START"))
{
m_bGroup = 0;
break;
}
if(!strcmp(str,"NODE_LOAD"))
m_bJointLoad = 1;
while(m_bJointLoad)
{
fin>>str;
if(!strcmp(str,"LOAD_CASE_1_END"))
{
m_bGroup = 0;
m_bJointLoad = 0;
break;
}
if(!strcmp(str,"MEMBER_LOAD_CEN"))
{
m_bJointLoad = 0;
break;
}
if(!strcmp(str,"MEMBER_LOAD_DIS"))
{
m_bJointLoad = 0;
break;
}
if(!strcmp(str,"NODE_LOAD"))
{
m_bJointLoad = 0;
break;
}
m_nTemp = atoi(str);
//试探是否重复编号
for(int loop1=0;loop1<m_nNodeLoadNum_Case1;loop1++)
{
//有同号
if(m_nTemp == m_adJointLoadValue_Case1[loop1].m_nNodeNO)
{
m_nTemp = loop1;
m_bRUN = 1;
}
}
//是重复编号
if(m_bRUN)
{
fin>>str;
if(!strcmp(str,"FX"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nTemp].m_dFX += m_dTemp;
}
if(!strcmp(str,"FY"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nTemp].m_dFY += m_dTemp;
}
if(!strcmp(str,"FZ"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nTemp].m_dFZ += m_dTemp;
}
if(!strcmp(str,"MX"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nTemp].m_dMX += m_dTemp;
}
if(!strcmp(str,"MY"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nTemp].m_dMY += m_dTemp;
}
if(!strcmp(str,"MZ"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nTemp].m_dMZ += m_dTemp;
}
m_bRUN = 0;
}
//不是重复编号
else
{
m_nNodeLoadNum_Case1++;
m_adJointLoadValue_Case1.SetSize(m_nNodeLoadNum_Case1);
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_nNodeNO = m_nTemp;
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dFX = 0;
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dFY = 0;
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dFZ = 0;
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dMX = 0;
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dMY = 0;
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dMZ = 0;
fin>>str;
if(!strcmp(str,"FX"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dFX = m_dTemp;
}
if(!strcmp(str,"FY"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dFY = m_dTemp;
}
if(!strcmp(str,"FZ"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dFZ = m_dTemp;
}
if(!strcmp(str,"MX"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dMX = m_dTemp;
}
if(!strcmp(str,"MY"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dMY = m_dTemp;
}
if(!strcmp(str,"MZ"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case1[m_nNodeLoadNum_Case1 - 1].m_dMZ = m_dTemp;
}
}
}
}
}
fin.close();
m_bGroup = 0;
m_bJointLoad = 0;
m_bMemberLoad = 0;
m_bRUN = 0;
//**********************************荷载组2---节点荷载的读取********************************
fin.open(m_cFilepath,ios::in);
while(!fin.eof())
{
fin>>str;
if(!strcmp(str,"LOAD_CASE_2_START"))
m_bGroup = 1;
//开始读数
while(m_bGroup)
{
fin>>str;
if(!strcmp(str,"LOAD_CASE_2_END"))
{
m_bGroup = 0;
break;
}
if(!strcmp(str,"NODE_LOAD"))
m_bJointLoad = 1;
while(m_bJointLoad)
{
fin>>str;
if(!strcmp(str,"LOAD_CASE_2_END"))
{
m_bGroup = 0;
m_bJointLoad = 0;
break;
}
if(!strcmp(str,"MEMBER_LOAD_DIS"))
{
m_bGroup = 0;
m_bJointLoad = 0;
break;
}
if(!strcmp(str,"MEMBER_LOAD_CEN"))
{
m_bJointLoad = 0;
break;
}
if(!strcmp(str,"NODE_LOAD"))
{
m_bJointLoad = 0;
break;
}
m_nTemp = atoi(str);
//试探是否重复编号
for(int loop1=0;loop1<m_nNodeLoadNum_Case2;loop1++)
{
//有同号
if(m_nTemp == m_adJointLoadValue_Case2[loop1].m_nNodeNO)
{
m_nTemp = loop1;
m_bRUN = 1;
}
}
//是重复编号
if(m_bRUN)
{
fin>>str;
if(!strcmp(str,"FX"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nTemp].m_dFX += m_dTemp;
}
if(!strcmp(str,"FY"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nTemp].m_dFY += m_dTemp;
}
if(!strcmp(str,"FZ"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nTemp].m_dFZ += m_dTemp;
}
if(!strcmp(str,"MX"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nTemp].m_dMX += m_dTemp;
}
if(!strcmp(str,"MY"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nTemp].m_dMY += m_dTemp;
}
if(!strcmp(str,"MZ"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nTemp].m_dMZ += m_dTemp;
}
m_bRUN = 0;
}
//不是重复编号
else
{
m_nNodeLoadNum_Case2++;
m_adJointLoadValue_Case2.SetSize(m_nNodeLoadNum_Case2);
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_nNodeNO = m_nTemp;
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dFX = 0;
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dFY = 0;
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dFZ = 0;
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dMX = 0;
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dMY = 0;
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dMZ = 0;
fin>>str;
if(!strcmp(str,"FX"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dFX = m_dTemp;
}
if(!strcmp(str,"FY"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dFY = m_dTemp;
}
if(!strcmp(str,"FZ"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dFZ = m_dTemp;
}
if(!strcmp(str,"MX"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dMX = m_dTemp;
}
if(!strcmp(str,"MY"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dMY = m_dTemp;
}
if(!strcmp(str,"MZ"))
{
fin>>str;
m_dTemp = atof(str);
m_adJointLoadValue_Case2[m_nNodeLoadNum_Case2 - 1].m_dMZ = m_dTemp;
}
}
}
}
}
fin.close();
m_bGroup = 0;
m_bJointLoad = 0;
m_bMemberLoad = 0;
m_bRUN = 0;
//**********************************荷载组1---单元荷载1的读取********************************
fin.open(m_cFilepath,ios::in);
while(!fin.eof())
{
fin>>str;
if(!strcmp(str,"LOAD_CASE_1_START"))
m_bGroup = 1;
//开始读数
while(m_bGroup)
{
fin>>str;
if(!strcmp(str,"LOAD_CASE_1_END"))
{
m_bGroup = 0;
m_bMemberLoad = 0;
break;
}
if(!strcmp(str,"LOAD_CASE_2_START"))
{
m_bGroup = 0;
m_bMemberLoad = 0;
break;
}
if(!strcmp(str,"MEMBER_LOAD_DIS"))
m_bMemberLoad = 1;
while(m_bMemberLoad)
{
fin>>str;
if(!strcmp(str,"NODE_LOAD"))
{
m_bMemberLoad = 0;
m_bGroup = 0;
break;
}
if(!strcmp(str,"MEMBER_LOAD_CEN"))
{
m_bMemberLoad = 0;
m_bGroup = 0;
break;
}
if(!strcmp(str,"LOAD_CASE_1_END"))
{
m_bGroup = 0;
m_bMemberLoad = 0;
break;
}
if(!strcmp(str,"MEMBER_LOAD_DIS"))
{
m_bGroup = 0;
m_bJointLoad = 0;
break;
}
m_nTemp = atoi(str);
//试探是否重复编号
for(int loop1=0;loop1<m_nElemLoadNum_Case1_Dis;loop1++)
{
//有同号
if(m_nTemp == m_adElemLoadValue_Case1_Dis[loop1].m_nElementNO)
{
m_nTemp = loop1;
m_bRUN = 1;
}
}
//是重复编号
if(m_bRUN)
{
fin>>str;
if(!strcmp(str,"DX"))
{
fin>>str;
m_dTemp = atof(str);
m_adElemLoadValue_Case1_Dis[m_nTemp].m_dElemForceX += m_dTemp;
}
if(!strcmp(str,"DY"))
{
fin>>str;
m_dTemp = atof(str);
m_adElemLoadValue_Case1_Dis[m_nTemp].m_dElemForceY += m_dTemp;
}
if(!strcmp(str,"DZ"))
{
fin>>str;
m_dTemp = atof(str);
m_adElemLoadValue_Case1_Dis[m_nTemp].m_dElemForceZ += m_dTemp;
}
m_bRUN = 0;
}
//不是重复编号
else
{
m_nElemLoadNum_Case1_Dis++;
m_adElemLoadValue_Case1_Dis.SetSize(m_nElemLoadNum_Case1_Dis);
m_adElemLoadValue_Case1_Dis[m_nElemLoadNum_Case1_Dis - 1].m_nElementNO = m_nTemp;
m_adElemLoadValue_Case1_Dis[m_nElemLoadNum_Case1_Dis - 1].m_dElemForceX = 0;
m_adElemLoadValue_Case1_Dis[m_nElemLoadNum_Case1_Dis - 1].m_dElemForceY = 0;
m_adElemLoadValue_Case1_Dis[m_nElemLoadNum_Case1_Dis - 1].m_dElemForceZ = 0;
fin>>str;
if(!strcmp(str,"DX"))
{
fin>>str;
m_dTemp = atof(str);
m_adElemLoadValue_Case1_Dis[m_nElemLoadNum_Case1_Dis - 1].m_dElemForceX = m_dTemp;
}
if(!strcmp(str,"DY"))
{
fin>>str;
m_dTemp = atof(str);
m_adElemLoadValue_Case1_Dis[m_nElemLoadNum_Case1_Dis - 1].m_dElemForceY = m_dTemp;
}
if(!strcmp(str,"DZ"))
{
fin>>str;
m_dTemp = atof(str);
m_adElemLoadValue_Case1_Dis[m_nElemLoadNum_Case1_Dis - 1].m_dElemForceZ = m_dTemp;
}
}
}
}
}
fin.close();
m_bGroup = 0;
m_bJointLoad = 0;
m_bMemberLoad = 0;
m_bRUN = 0;
//**********************************荷载组1---单元荷载2的读取********************************
fin.open(m_cFilepath,ios::in);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -