📄 daiv4.cpp
字号:
}
if(baojiao>=105&&baojiao<=110)
{
k=0.76+0.004*(baojiao-105);
}
if(baojiao>=110&&baojiao<=115)
{
k=0.78+0.004*(baojiao-110);
}
if(baojiao>=115&&baojiao<=120)
{
k=0.80+0.004*(baojiao-115);
}
if(baojiao>=120&&baojiao<=125)
{
k=0.82+0.004*(baojiao-120);
}
if(baojiao>=125&&baojiao<=130)
{
k=0.84+0.004*(baojiao-125);
}
if(baojiao>=130&&baojiao<=135)
{
k=0.86+0.004*(baojiao-130);
}
if(baojiao>=135&&baojiao<=140)
{
k=0.88+0.002*(baojiao-135);
}
if(baojiao>=140&&baojiao<=145)
{
k=0.89+0.004*(baojiao-140);
}
if(baojiao>=145&&baojiao<=150)
{
k=0.91+0.002*(baojiao-145);
}
if(baojiao>=150&&baojiao<=155)
{
k=0.92+0.002*(baojiao-150);
}
if(baojiao>=155&&baojiao<=160)
{
k=0.93+0.004*(baojiao-155);
}
if(baojiao>=160&&baojiao<=165)
{
k=0.95+0.002*(baojiao-160);
}
if(baojiao>=165&&baojiao<=170)
{
k=0.96+0.004*(baojiao-165);
}
if(baojiao>=170&&baojiao<=175)
{
k=0.98+0.002*(baojiao-170);
}
if(baojiao>=175&&baojiao<=180)
{
k=0.99+0.002*(baojiao-175);
}
this->m_ADORecordset.Open(this->m_ADODatabase.GetActiveConnection(), _T("select * from Vdai where xinghao like '"+vdaixing+"' and jizhunchangdu like '"+jizhunchangdu+"'"));
while(!this->m_ADORecordset.IsEof())
{
this->m_ADORecordset.GetFieldValue("Kl", kl);
this->m_ADORecordset.MoveNext();
}
m_ADORecordset.Close();
Vdaigenshu=int(jisuangonglu/((p0+p02)*k*kl))+1;
m_Vdaigenshu=Vdaigenshu;
double vdaisu,q,Vdaiyujingli,zhouli;
vdaisu=3.1415926*xdaizhijing*xzhuansu/(60*1000);
this->m_ADORecordset.Open(this->m_ADODatabase.GetActiveConnection(), _T("select * from Vq where xinghao like '"+vdaixing+"'"));
while(!this->m_ADORecordset.IsEof())
{
this->m_ADORecordset.GetFieldValue("q", q);
this->m_ADORecordset.MoveNext();
}
m_ADORecordset.Close();
Vdaiyujingli=500*jisuangonglu*(2.5/k-1)/(vdaisu*Vdaigenshu)+q*pow(vdaisu,2);
m_Vdaiyujingli=Vdaiyujingli;
zhouli=2*Vdaigenshu*Vdaiyujingli*sin((baojiao/2)*3.1415926/180);
m_zhouli=zhouli;
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
double Cdaiv4::strtodouble(CString pp1)
{
double xpp;
char *pszTemp=pp1.GetBuffer(0);
int nLength = strlen(pszTemp);
char *xp = new char[nLength + 1];
strcpy(xp, pszTemp);
xp[nLength] = '\0';
xpp=atof(xp);
return xpp;
}
void Cdaiv4::Onhuitu()
{
UpdateData();
if(m_TCXT==1)
{
OnCancel();
}
CString jizhunchangdu,xdaizhijing1,Dd,vdaixing,dzhijing1;
double m_Bp,m_b,m_h,Da1,Da2,dzhijing,xdaizhijing;
m_preDlg->UpdateData(TRUE);
m_preDlg->m_daijizhunzhijing.GetWindowText(jizhunchangdu);
m_preDlg->m_xdaizhijing.GetWindowText(xdaizhijing1);
dzhijing=m_preDlg->m_dzhijing;
dzhijing1.Format(_T("%f"),dzhijing);
vdaixing=m_preDlg->m_vdaixing;
xdaizhijing=strtodouble(xdaizhijing1);
this->m_ADORecordset.Open(this->m_ADODatabase.GetActiveConnection(), _T("select * from Vdai where xinghao like '"+vdaixing+"' and jizhunchangdu like '"+jizhunchangdu+"'"));
while(!this->m_ADORecordset.IsEof())
{
this->m_ADORecordset.GetFieldValue("Bp", m_Bp);
this->m_ADORecordset.GetFieldValue("b", m_b);
this->m_ADORecordset.GetFieldValue("h", m_h);
this->m_ADORecordset.MoveNext();
}
m_ADORecordset.Close();
this->m_ADORecordset.Open(this->m_ADODatabase.GetActiveConnection(), _T("select * from Vdailun where xinghao like '"+vdaixing+"'"));
while(!this->m_ADORecordset.IsEof())
{
this->m_ADORecordset.GetFieldValue("Dd", Dd);
if(Dd==xdaizhijing1)
{
this->m_ADORecordset.GetFieldValue("Da", Da1);
}
if(Dd==dzhijing1)
{
this->m_ADORecordset.GetFieldValue("Da", Da2);
}
this->m_ADORecordset.MoveNext();
}
m_ADORecordset.Close();
double CetDist; //主动轮和从动轮的基准直径。
double R1,R2; //主、从动轮半径
CetDist = m_zhongxin;
R1=xdaizhijing/2;
R2=dzhijing/2;
double Angle;
double x,y,z;
double P1[3],P2[3],P3[3],P4[3];
if (R1==R2)
{
x=R2,y=R1;
P1[0]=0, P2[0]=CetDist,
P1[1]=y, P2[1]=x,
P1[2]=0, P2[2]=0;
P3[0]=0, P4[0]=CetDist,
P3[1]=-y, P4[1]=-x,
P3[2]=0, P4[2]=0;
}
else if(R1>R2)
{
x=R2,y=R1;
z=(y-x)/CetDist;
Angle=asin(z);
P1[0]=y*sin(Angle), P2[0]=CetDist+x*sin(Angle),
P1[1]=y*cos(Angle), P2[1]=x*cos(Angle),
P1[2]=0, P2[2]=0;
P3[0]=y*sin(Angle), P4[0]=CetDist+x*sin(Angle),
P3[1]=-y*cos(Angle), P4[1]=-x*cos(Angle),
P3[2]=0, P4[2]=0;
}
else
{
x=R2,y=R1;
z=(x-y)/CetDist;
Angle=asin(z);
P1[0]=-y*sin(Angle), P2[0]=CetDist-x*sin(Angle),
P1[1]=y*cos(Angle), P2[1]=x*cos(Angle),
P1[2]=0, P2[2]=0;
P3[0]=-y*sin(Angle), P4[0]=CetDist-x*sin(Angle),
P3[1]=-y*cos(Angle), P4[1]=-x*cos(Angle),
P3[2]=0, P4[2]=0;
}
double P5[3],P6[3],P7[3],P8[3] ;
P5[0]=(m_b-m_Bp)/(2*tan(20*PI/180))-y, P6[0]=(m_b-m_Bp)/(2*tan(20*PI/180))-y,
P5[1]=0, P6[1]=0,
P5[2]=m_b/2-m_h*tan(20*PI/180), P6[2]=-(m_b/2-m_h*tan(20*PI/180));
P7[0]=-(m_h-(m_b-m_Bp)/(2*tan(20*PI/180))+y), P8[0]=-(m_h-(m_b-m_Bp)/(2*tan(20*PI/180))+y),
P7[1]=0, P8[1]=0,
P7[2]=-m_b/2, P8[2]=m_b/2;
int errorCode = UF_initialize();
if ( 0 == errorCode )
{
tag_t line1,line2,line3,line4,line5,line6;
UF_CURVE_line_t sline1,sline2,sline3,sline4,sline5,sline6;
sline1.start_point[0]=P1[0];
sline1.start_point[1]=P1[1];
sline1.start_point[2]=P1[2];
sline1.end_point[0]=P2[0];
sline1.end_point[1]=P2[1];
sline1.end_point[2]=P2[2];
UF_CURVE_create_line(&sline1,&line1);
sline2.start_point[0]=P3[0];
sline2.start_point[1]=P3[1];
sline2.start_point[2]=P3[2];
sline2.end_point[0]=P4[0] ;
sline2.end_point[1]=P4[1];
sline2.end_point[2]=P4[2];
UF_CURVE_create_line(&sline2,&line2);
sline3.start_point[0]=P5[0];
sline3.start_point[1]=P5[1];
sline3.start_point[2]=P5[2];
sline3.end_point[0]=P6[0] ;
sline3.end_point[1]=P6[1];
sline3.end_point[2]=P6[2];
UF_CURVE_create_line(&sline3,&line3);
UF_CURVE_ask_line_data(line3 ,&sline3) ;
sline4.start_point[0]=sline3.end_point[0];
sline4.start_point[1]=sline3.end_point[1];
sline4.start_point[2]=sline3.end_point[2];
sline4.end_point[0]=P7[0] ;
sline4.end_point[1]=P7[1];
sline4.end_point[2]=P7[2];
UF_CURVE_create_line(&sline4,&line4);
UF_CURVE_create_line(&sline4,&line4);
sline5.start_point[0]= sline4.end_point[0];
sline5.start_point[1]= sline4.end_point[1] ;
sline5.start_point[2]= sline4.end_point[2] ;
sline5.end_point[0]=P8[0];
sline5.end_point[1]=P8[1];
sline5.end_point[2]=P8[2];
UF_CURVE_create_line(&sline5,&line5);
UF_CURVE_create_line(&sline5,&line5);
sline6.start_point[0]=sline5.end_point[0];
sline6.start_point[1]=sline5.end_point[1];
sline6.start_point[2]=sline5.end_point[2];
sline6.end_point[0]=sline3.start_point[0];
sline6.end_point[1]=sline3.start_point[1];
sline6.end_point[2]=sline3.start_point[2];
UF_CURVE_create_line(&sline6,&line6);
int create_flag=1;
double second1_point[3]={-y,0,0},
arcsh_point[3]={-y*cos(5*PI/180), y*sin(5*PI/180),0},
arcxia_point[3]={-y*cos(5*PI/180),-y*sin(5*PI/180),0};
tag_t arc1;
UF_CURVE_create_arc_thru_3pts(create_flag,second1_point,arcsh_point,P1,&arc1);
tag_t arc2;
UF_CURVE_create_arc_thru_3pts(create_flag,second1_point,arcxia_point,P3,&arc2);
double second2_point[3]={CetDist+x,0,0} ;
tag_t arc3;
UF_CURVE_create_arc_thru_3pts(create_flag,P2,second2_point,P4,&arc3);
UF_MODL_SWEEP_TRIM_object_p_t trim_data=NULL;
char *offsets[2]={"0.0","0.0"};
double region_point[3]={0,0,0};
UF_FEATURE_SIGN sign=UF_NULLSIGN ;
tag_t *features , generators[4],guide[5];
int number_of_features=1;
generators[0]=line3;
generators[1]=line4;
generators[2]=line5;
generators[3]=line6;
guide[0]=arc1;
guide[1]=line1;
guide[2]=arc3;
guide[3]=line2;
guide[4]=arc2;
UF_MODL_create_extrusion_path(generators,4,guide,5,trim_data,offsets,
region_point,false ,true ,sign,&features, &number_of_features);
UF_OBJ_set_blank_status(line1,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line2,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line3,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line4,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line5,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line6,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(arc1,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(arc2,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(arc3,UF_OBJ_BLANKED);
errorCode = UF_terminate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -