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

📄 daiv4.cpp

📁 基于UG平台
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		}
	    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 + -