📄 jcyhsj.cpp
字号:
// jcyhsj.cpp : implementation file
//
#include "stdafx.h"
#include "Cvenus.h"
#include "jcyhsj.h"
#include "yqsxz.h"
#include "zpjjdfx.h"
#include "math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern int g_iProgress ; // 计算进度
extern bool bFinishThread;
/////////////////////////////////////////////////////////////////////////////
// jcyhsj
extern double ptidu[1000],dtidu[1000];
jcyhsj::jcyhsj()
{
sscyjxh=NULL;
sbj=NULL;
schongcheng=NULL;
schongci=NULL;
bpl=NULL;
EI=NULL;
xuhao=NULL;
LL1=NULL;
LL2=NULL;
LL3=NULL;
LL4=NULL;
zdyl1=NULL;
zdyl2=NULL;
zdyl3=NULL;
zdyl4=NULL;
zhmax=NULL;
zhmin=NULL;
zdnj=NULL;
llbx=NULL;
sdjgl=NULL;
zscc=NULL;
fcj=NULL;
phzl=NULL;
}
jcyhsj::~jcyhsj()
{
if(sscyjxh!=NULL)
delete[] sscyjxh;
if(sbj!=NULL)
delete[] sbj;
if(schongcheng!=NULL)
delete[] schongcheng;
if(schongci!=NULL)
delete[] schongci;
if(bpl!=NULL)
delete[] bpl;
if(EI!=NULL)
delete[] EI;
if(xuhao!=NULL)
delete[] xuhao;
if(LL1!=NULL)
delete[] LL1;
if(LL2!=NULL)
delete[] LL2;
if(LL3!=NULL)
delete[] LL3;
if(LL4!=NULL)
delete[] LL4;
if(zdyl1!=NULL)
delete[] zdyl1;
if(zdyl2!=NULL)
delete[] zdyl2;
if(zdyl3!=NULL)
delete[] zdyl3;
if(zdyl4!=NULL)
delete[] zdyl4;
if(zhmax!=NULL)
delete[] zhmax;
if(zhmin!=NULL)
delete[] zhmin;
if(zdnj!=NULL)
delete[] zdnj;
if(llbx!=NULL)
delete[] llbx;
if(sdjgl!=NULL)
delete[] sdjgl;
if(zscc!=NULL)
delete[] zscc;
if(fcj!=NULL)
delete[] fcj;
if(phzl!=NULL)
delete[] phzl;
}
/////////////////////////////////////////////////////////////////////////////
// jcyhsj message handlers
/*---------------------------------------------------
'本程序所选者和提供的计算主要是以国产抽油机为主,钢抽油杆的设计所采用的方法是“等强度设计方法”与“ API RP 11L 法”
'玻璃钢--钢混合抽油杆柱的设计所采用的方法是“修正的 API RP 11L 法”
CString SS抽油机型号(3000); [[[[ sscyjxh[3000]
double S泵径(2000), [[[[ sbj[2000]
S冲次(3000), [[[[ schongci[3000]
S冲程(3000), [[[[ schongcheng[3000]
泵排量(3000), [[[[ bpl[3000]
EI(3000);
int 序号(3000); [[[[ xuhao[3000]
double LL1(3000),LL2(3000),LL3(3000), LL4(3000),
最大应力1(3000), [[[[ zdyl1[3000]
最大应力2(3000), [[[[ zdyl2[3000]
最大应力3(3000), [[[[ zdyl3[3000]
最大应力4(3000); [[[[ zdyl4[3000]
double 载荷Max(3000), [[[[ zhmax[3000]
载荷Min(3000), [[[[ zhmin[3000]
最大扭矩(3000), [[[[ zdnj[3000]
理论泵效(3000), [[[[ llbx[3000]
S电机功率(3000); [[[[ sdjgl[3000]
double 柱塞冲程(2000), [[[[ zscc[2000]
防冲距(2000), [[[[ fcj[2000]
平衡重量(2000) [[[[ phzl[2000]
Dim DD(50) [[[[ DD[50]
G冲程(100, 10), [[[[ gchongcheng[100][10]
G冲次(100, 10); [[[[ gchongci[100][10]
CString G抽油机型号(200); [[[[ gcyjxh[200]
Dim G悬点最大载荷(100), [[[[ gxdzdzh[100]
G曲柄最大扭矩(100) [[[[ gqbzdnj[100]
Dim D深度(200), [[[[ dshengdu[200]
P压力(200) '井产出流体在油管内的流动梯度 [[[[ pyali[200]
Dim DVW,
P地层, [[[[ pdiceng
T地层, [[[[ tdiceng
P井口, [[[[ pjingkou
T井口 [[[[ tjingkou
Dim PLI,
q测试, [[[[ qceshi
p测试, [[[[ pceshi
Pb, GWR, Fw
Dim DVT, DIT, DOT, RR;
int G油管是否锚定; [[[[ gygmd
E油管, [[[[ eyouguan
DIC
Dim OG, GG, CO2, H2S, N2
Dim GW, NaCl
泵挂深度, [[[[ H
P沉没压力, [[[[ pcmyl
Q设计 [[[[ qsheji
Dim F1, F2, F3, F4, Q1, Q2, Q3, Q4
Dim 抽油杆许用应力, [[[[ fff
E钢, [[[[[ egang
钢抽油杆密度, [[[[ ruogang
钢抽油杆的最小抗拉强度, [[[[ bfff
F玻璃钢, [[[[ fboligang
Q玻璃钢, [[[[ qboligang
E玻璃钢, [[[[ eboligang
玻璃钢抽油杆密度, [[[[ ruoblg
Dim G可选抽油机数量, [[[[ gcyjsl
井内液体密度, [[[[ RUO,
Filenum
F油管, [[[[ fyouguan
S抽油机型号 [[[[ scyjxh
CString G是否满足条件;(只有yes和no两种) [[[[ gtiaojian
SF
Max
G循环次数
CDK级杆 [[[[ cdkjg
设计1, 设计2, 设计3 [[[[ sheji1,sheji2,sheji3
N油管段数 [[[[ nygds
P最大沉没压力 [[[[ pmaxcmyl
D梯度(1000) [[[[ dtidu[1000]
P梯度(1000) [[[[ ptidu[1000]
迭代次数 [[[[ ddcs
D是否已经打印 [[[[ sfdayin
当量应力1 [[[[ dlyl1
当量应力2 [[[[ dlyl2
当量应力3 [[[[ dlyl3
当量应力4 [[[[ dlyl4
P电机功率 [[[[ pdjgl
L防冲距 [[[[ lfcj
选择多相流方法 [[[[ MMPF
生产气油比,m^3/标m^3 [[[[ RPO
溶解气油比,m^3/标m^3 [[[[ RSO
Q气 [[[[ qqi
Q水 [[[[ qshui
Q油 [[[[ qyou
L防冲距 [[[[ lfcj
---------------------------------------------------*/
void jcyhsj::cyjjsjyhsj()//抽油机举升井优化设计
{
sscyjxh=new CString[15000];
sbj=new double[15000];
schongcheng=new double[15000];
schongci=new double[15000];
bpl=new double[15000];
EI=new double[15000];
xuhao=new int[15000];
LL1=new double[15000];
LL2=new double[15000];
LL3=new double[15000];
LL4=new double[15000];
zdyl1=new double[15000];
zdyl2=new double[15000];
zdyl3=new double[15000];
zdyl4=new double[15000];
zhmax=new double[15000];
zhmin=new double[15000];
zdnj=new double[15000];
llbx=new double[15000];
sdjgl=new double[15000];
zscc=new double[15000];
fcj=new double[15000];
phzl=new double[15000];
// SetCursor(LoadCursor(NULL, IDC_WAIT));
g_iProgress = 5; // 计算进度
ENDCOMPUTE;
//赋初值
for(i=0;i<1000;i++)
{
DD[i]=0;
gxdzdzh[i]=0;
gqbzdnj[i]=0;
dshengdu[i]=0;
pyali[i]=0;
}
for(i=0;i<100;i++)
{
for(j=0;j<10;j++)
{
gchongcheng[i][j]=0;
gchongci[i][j]=0;
}
}
DVW=0;pdiceng=0;tdiceng=0;pjingkou=0;tjingkou=0;PLI=0;qceshi=0;pceshi=0;Pb=0;GWR=0;
Fw=0;DVT=0;DIT=0;DOT=0;RR=0;A2=0;B2=0;gygmd=0;eyouguan=0;DIC=0;OG=0;GG=0;CO2=0;H2S=0;
N2=0;GW=0;NaCl=0;H=0;pcmyl=0;qsheji=0;F1=0;F2=0;F3=0;F4=0;Q1=0;Q2=0;Q3=0;Q4=0;fff=0;
egang=0;ruogang=0;bfff=0;fboligang=0;qboligang=0;eboligang=0;ruoblg=0;aa3=0;aa4=0;
gcyjsl=0;RUO=0;fyouguan=0;SF=0;cdkjg=0;sheji1=0;sheji2=0;sheji3=0;nygds=0;pmaxcmyl=0;
ddcs=0;MMPF=0;ZZ=0;sfdayin=0;NNN=0;RPO=0;RSO=0;QB=0;
Qomax=0;Qtmax=0;TG=0;PC=0;TC=0;QL=0;PWF=0;QO=0;QW=0;QG=0;pjisuan=0;PN=0;
qqi=0;qshui=0;qyou=0;gqi=0;gshui=0;gyou=0;lguan=0;dhgw=0;dhgn=0;rrguan=0;
YN2=0;YCO2=0;YH2S=0;YNaCl=0;nguanduan=0;djisuan=0;dliudong=0;DLTD=0;
dguan=0;aguan=0;QLT=0;RPL=0;RPW=0;PP=0;PPP=0;PD=0;P=0;T=0;RSW=0;PR=0;YR=0;Z=0;UG=0;UO=0;BO=0;
STO=0;UW=0;STW=0;BW=0;VSL=0;VSG=0;VM1=0;VM2=0;VM=0;RL=0;DL=0;DG=0;WT=0;UL=0;STL=0;NL=0;CNL=0;
NLV=0;NGV=0;A=0;B=0;ND=0;X=0;Y=0;X1=0;Y1=0;HL=0;dm=0;DM1=0;NRE=0;FF=0;QT=0;FL=0;TR=0;J=0;C=0;D=0;
e=0;F=0;G=0;DR=0;DY=0;U0=0;CCO2=0;CH2S=0;CN2=0;C1=0;C2=0;C3=0;C4=0;R=0;TF=0;Y2=0;Y3=0;FF0=0;
pqidian=0;tqidian=0;ttidu=0;L1=0;L2=0;NREL=0;F5=0;F6=0;F7=0;S=0;GFR=0;GST=0;VS=0;v=0;
CNaCl=0;WL=0;WG=0;VT=0;LB=0;VD=0;LS=0;LM=0;DA=0;RE=0;VSO=0;VSW=0;VST=0;WGG=0;WGL=0;WGT=0;
lmd=0;UM=0;NRENS=0;NFR=0;L3=0;L4=0;hlo=0;HLO1=0;HLO2=0;FM=0;A1=0;B1=0;AA1=0;aa2=0;QQ=0;
Gmax=0;Gmin=0;MMAX=0;XX=0;V1=0;V2=0;V3=0;EI1=0;EI2=0;Wr=0;Kt=0;Er=0;Kr=0;No=0;VV=0;VV1=0;
VV2=0;CC1=0;VV3=0;cc3=0;Fc=0;No1=0;Wrf=0;FO=0;M1=0;CC2=0;CC3=0;X2=0;M2=0;SP=0;PPRL=0;
MPRL=0;Y4=0;PRHP=0;Y5=0;TA=0;PT=0;CBE=0;PFL=0;MFL=0;MFLY=0;PS1L=0;MS1L=0;PS1LY=0;
FMAX=0;FSmax=0;MS1LY=0;PFLY=0;PS2L=0;MS2L=0;PS2LY=0;MS2LY=0;FSmax1=0;b3=0;
FSmax2=0;MMM=0;RUO1=0;lfcj=0;dlyl1=0;dlyl2=0;dlyl3=0;dlyl4=0;ffff=0;pdjgl=0;A3=0;
yqsxz csjs;
zpjjdfx zpjjs;
CString str,templs1;
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(1, 5);
DVW=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(2, 5);
pdiceng=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(3, 5);
tdiceng=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(4, 5);
pjingkou=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(5, 5);
tjingkou=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(6, 5);
PLI=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(7, 5);
qceshi=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(8, 5);
pceshi=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(9, 5);
GWR=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(10, 5);
DVT=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(11, 5);
DIT=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(12, 5);
DOT=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(13, 5);
RR=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(14, 5);
gygmd=atoi(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(15, 5);
eyouguan=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(16, 5);
DIC=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(17, 5);
GG=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(18, 5);
CO2=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(19, 5);
H2S=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(20, 5);
N2=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(21, 5);
GW=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(22, 5);
NaCl=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(23, 5);
H=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(24, 5);
pcmyl=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(25, 5);
qsheji=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(26, 5);
F1=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(27, 5);
F2=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(28, 5);
F3=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(29, 5);
F4=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(30, 5);
Q1=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(31, 5);
Q2=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(32, 5);
Q3=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(33, 5);
Q4=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(34, 5);
fff=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(35, 5);
egang=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(36, 5);
ruogang=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(37, 5);
bfff=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(38, 5);
fboligang=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(39, 5);
qboligang=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(40, 5);
eboligang=atof(str);
str = ((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_grid.GetTextRC(41, 5);
ruoblg=atof(str);
sheji1=((CButton*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_CHECK1))->GetCheck();
sheji2=((CButton*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_CHECK2))->GetCheck();
sheji3=((CButton*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_CHECK3))->GetCheck();
cdkjg=((CComboBox*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_COMBO1))->GetCurSel();
cdkjg=cdkjg+1;
MMPF=((CComboBox*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_COMBO2))->GetCurSel();
MMPF=MMPF+1;
ZZ=((CComboBox*)((CCVenusApp*)AfxGetApp())->m_pMainDlg->m_Page5.GetDlgItem(IDC_COMBO3))->GetCurSel();
ZZ=ZZ+1;
CString AA,mm1,mm2,mm3,mm4,mm5,mm6,mm7,mm8,mm9,mm10,mm11,mm12,mm13,mm14,kk=" ";
char gs1[1000];
gcyjsl=0;
scyjxh="全部";
i=0;
CStdioFile f5;
CFileException exception5;
BOOL status4;
AA=((CCVenusApp*)AfxGetApp())->m_strDataPath;
AA=AA+"\\抽油机.DDD";
status4 = f5.Open(AA,CFile::modeRead, &exception5);
int baizhi;
if (!status4)
{
char s[100];
sprintf(s, "Error opening file for reading. Code:%d",
exception5.m_cause);
AfxMessageBox(s);
return;
}
else
{
try
{
f5.ReadString(gs1,1000);
f5.ReadString(gs1,1000);
}
catch (CFileException exception5)
{
AfxMessageBox("Error reading file");
return;
}
do
{
try
{
f5.ReadString(gs1,1000);
AA=gs1;
if(AA=="[END]\n")
{
break;
}
gcyjsl=gcyjsl+1;
i=i+1;
baizhi=0;
title="";
for(j=0;j<=AA.GetLength();j++)
{
if( AA.Mid(j,1)==","||AA.Mid(j,1)=="\n")
{
title1=title;
baizhi=baizhi+1;
title="";
switch(baizhi)
{
case 1:
mm1=title1;
break;
case 2:
mm2=title1;
break;
case 3:
mm3=title1;
break;
case 4:
mm4=title1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -