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

📄 daip2.cpp

📁 基于UG平台
💻 CPP
字号:
// daip2.cpp : implementation file
//

#include "stdafx.h"
#include "Code.h"
#include "daip2.h"
#include "daip1.h"
#include "main.h"
#include "atlconv.h"
#include "zhongjiande3.h"

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

/////////////////////////////////////////////////////////////////////////////
// Cdaip2 dialog


Cdaip2::Cdaip2(CWnd* pParent /*=NULL*/)
	: CDialog(Cdaip2::IDD, pParent)
{
	//{{AFX_DATA_INIT(Cdaip2)
	m_minzhongxin = 0.0;
	m_zhongxin = 0.0;
	m_maxzhongxin = 0.0;
	m_minxzhijing = 0.0;
	m_xzhijing = 0.0;
	m_maxxzhijing = 0.0;
	m_dzhijing = 0.0;
	m_zhouli = 0.0;
	m_daisu = 0.0;
	m_baojiao = 0.0;
	m_daikuan = 0.0;
	m_changdu = 0.0;
	m_qunao = 0.0;
	m_TCXT = FALSE;
	m_bizhi = 0.0;
	m_P0 = 3.46;
	//}}AFX_DATA_INIT
}


void Cdaip2::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Cdaip2)
	DDX_Control(pDX, IDC_COMBO1, m_daihou);
	DDX_Text(pDX, IDC_EDIT27, m_minzhongxin);
	DDX_Text(pDX, IDC_EDIT28, m_zhongxin);
	DDX_Text(pDX, IDC_EDIT9, m_maxzhongxin);
	DDX_Text(pDX, IDC_EDIT6, m_minxzhijing);
	DDX_Text(pDX, IDC_EDIT7, m_xzhijing);
	DDX_Text(pDX, IDC_EDIT8, m_maxxzhijing);
	DDX_Text(pDX, IDC_EDIT1, m_dzhijing);
	DDX_Text(pDX, IDC_EDIT10, m_zhouli);
	DDX_Text(pDX, IDC_EDIT11, m_daisu);
	DDX_Text(pDX, IDC_EDIT2, m_baojiao);
	DDX_Text(pDX, IDC_EDIT3, m_daikuan);
	DDX_Text(pDX, IDC_EDIT4, m_changdu);
	DDX_Text(pDX, IDC_EDIT5, m_qunao);
	DDX_Check(pDX, IDC_CHECK1, m_TCXT);
	DDX_Text(pDX, IDC_EDIT12, m_bizhi);
	DDX_Text(pDX, IDC_EDIT13, m_P0);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Cdaip2, CDialog)
	//{{AFX_MSG_MAP(Cdaip2)
	ON_BN_CLICKED(IDC_BUTTON1, OnPreBtn)
	ON_BN_CLICKED(IDOK2, OnHelpBtn)
	ON_BN_CLICKED(IDC_BUTTON3, Onqueding1)
	ON_BN_CLICKED(IDC_BUTTON4, Onqueding2)
	ON_BN_CLICKED(IDOK, Onhuitu)
	ON_BN_CLICKED(IDC_BUTTON2, Onchabiao)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Cdaip2 message handlers


BOOL Cdaip2::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	double chuandonggonglv,gongkuangxishu,gongkuangzhi,xzhuansu,chuandongbi;
	m_preDlg->UpdateData(TRUE);
    chuandonggonglv=m_preDlg->m_gonglu;
	gongkuangxishu=m_preDlg->m_gongkuangxishu;
    xzhuansu=m_preDlg->m_xzhuansu;
	gongkuangzhi=m_preDlg->m_gongkuangxishuzhi;
	chuandongbi=m_preDlg->m_chuandongbi;

	m_minxzhijing=1100*pow((chuandonggonglv/xzhuansu),0.3333333333333);
	m_maxxzhijing=1350*pow((chuandonggonglv/xzhuansu),0.3333333333333);
    
  
	m_daihou.InsertString(0,_T("3.6"));
	m_daihou.InsertString(1,_T("4.8"));
	m_daihou.InsertString(2,_T("6"));
	m_daihou.InsertString(3,_T("7.2"));
    m_daihou.InsertString(4,_T("8.4"));
	m_daihou.InsertString(5,_T("9.6"));
    m_daihou.InsertString(6,_T("10.8"));
	m_daihou.InsertString(7,_T("12"));
	m_daihou.InsertString(8,_T("14.4"));
	m_daihou.SetCurSel(0); 

     UpdateData(false);	
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void Cdaip2::OnPreBtn() 
{
	CDialog::OnCancel();
	m_preDlg->ShowWindow(SW_SHOW);	
	
}

void Cdaip2::OnHelpBtn() 
{
	AfxMessageBox(_T("请与合肥数字化设计中心联系!"));
	
}


void Cdaip2::OnCancel() 
{
	if (m_preDlg) m_preDlg->Quit();		

	CDialog::OnCancel();
}
void Cdaip2::Quit() 
{
	CDialog::OnOK();
   if (m_preDlg) m_preDlg->Quit();
}



void Cdaip2::Onqueding1() 
{
	UpdateData(true);
	double chuandongbi,xzhuansu;
	m_preDlg->UpdateData(TRUE);
    xzhuansu=m_preDlg->m_xzhuansu;
	chuandongbi=m_preDlg->m_chuandongbi;
	CString daihou;
	double daihou1;
	this->m_daihou.GetWindowText(daihou);
	daihou1=strtodouble(daihou);


	m_dzhijing=chuandongbi*m_xzhijing;
    m_minzhongxin=1.5*(m_xzhijing+m_dzhijing);
	m_maxzhongxin=2*(m_xzhijing+m_dzhijing);
	m_daisu=PI*m_xzhijing*xzhuansu/60000;
	m_bizhi=m_xzhijing/daihou1;

	UpdateData(false);
	
	
}
double Cdaip2::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 Cdaip2::Onqueding2() 
{
	UpdateData(true);
	double chuandonggonglv,gongkuangxishu,gongkuangzhi,xzhuansu,chuandongbi,buzhixishu;
	m_preDlg->UpdateData(TRUE);
    chuandonggonglv=m_preDlg->m_gonglu;
	gongkuangxishu=m_preDlg->m_gongkuangxishu;
    xzhuansu=m_preDlg->m_xzhuansu;
	gongkuangzhi=m_preDlg->m_gongkuangxishuzhi;
	chuandongbi=m_preDlg->m_chuandongbi;
	buzhixishu=m_preDlg->m_buzhixishu;

	CString daihou;
	double daihou1;
	this->m_daihou.GetWindowText(daihou);
	daihou1=strtodouble(daihou);

	m_changdu=2*m_zhongxin+3.14159265359*(m_xzhijing+m_dzhijing)/2+(m_dzhijing-m_xzhijing)*(m_dzhijing-m_xzhijing)/(4.0*m_zhongxin);
 
    int  m=2 ; //带轮数目
	m_qunao=1000*m*m_daisu/m_changdu;

	m_baojiao=180-((m_dzhijing-m_xzhijing)/m_zhongxin)*57.5;
	double k;  //包角系数

	if(m_baojiao>=220)
	{
	k=1.2;	
	}
	if(m_baojiao>=210&&m_baojiao<220)
	{
	k=1.15;	
	}
	if(m_baojiao>=200&&m_baojiao<210)
	{
	k=1.10;	
	}
	if(m_baojiao>=190&&m_baojiao<200)
	{
	k=1.05;	
	}
	if(m_baojiao>=180&&m_baojiao<190)
	{
	k=1.00;	
	}
	if(m_baojiao>=170&&m_baojiao<180)
	{
	k=0.97;	
	}
    if(m_baojiao>=160&&m_baojiao<170)
	{
	k=0.94;	
	}
	if(m_baojiao>=150&&m_baojiao<160)
	{
	k=0.91;	
	}
	if(m_baojiao>=140&&m_baojiao<150)
	{
	k=0.88;	
	}
	if(m_baojiao>=130&&m_baojiao<140)
	{
	k=0.85;	
	}
	if(m_baojiao>=120&&m_baojiao<130)
	{
	k=0.82;	
	}
	if(m_baojiao<120)
	{
	k=1.15;	
	}

    m_daikuan=100*gongkuangzhi*gongkuangxishu*chuandonggonglv/(m_P0*k*buzhixishu*daihou1);
	m_zhouli=2*1.8*m_daikuan*daihou1*sin(m_baojiao*PI/360);

	UpdateData(false);    
	
}

void Cdaip2::Onhuitu() 
{
	UpdateData(true);
	 if(m_TCXT==1)
	 {
		OnCancel();
	 }

    CString daihou;
	double daihou1;
	this->m_daihou.GetWindowText(daihou);
	daihou1=strtodouble(daihou);
	double m_r1=m_dzhijing/2,m_r2=m_xzhijing/2,m_zd=m_zhongxin,m_b=m_daikuan,m_h=daihou1;

	UF_MODL_SWEEP_TRIM_object_p_t trim_date=NULL;
	char *offset[2]={"0.0","0.0"};
	double region[3]={0.0,0.0,0.0};
	UF_FEATURE_SIGN sign=UF_NULLSIGN;
	
	double d1=asin((m_r1-m_r2)/m_zd);
	double p1x=sin(d1)*m_r1,p1y=cos(d1)*m_r1;
	double p2x=m_zd+sin(d1)*m_r2,p2y=cos(d1)*m_r2;

   int errorCode = UF_initialize(); 
  
   if ( 0 == errorCode )
   {
	
	UF_CURVE_line_t dline1,dline2;
	tag_t line1,line2,arc1,arc2,arc3;
    

	dline1.start_point[0]=p1x;
	dline1.start_point[1]=p1y;
	dline1.start_point[2]=0.0;
	dline1.end_point[0]=p2x;
	dline1.end_point[1]=p2y;
	dline1.end_point[2]=0.0;
	UF_CALL(UF_CURVE_create_line(&dline1,&line1));

    dline2.start_point[0]=p1x;
	dline2.start_point[1]=-p1y;
	dline2.start_point[2]=0.0;
	dline2.end_point[0]=p2x;
	dline2.end_point[1]=-p2y;
	dline2.end_point[2]=0.0;
	UF_CALL(UF_CURVE_create_line(&dline2,&line2));

	int flag=1;
	double p1[3]={p1x,p1y,0.0};
	double p2[3]={-m_r1,0.0,0.0};
    double p3[3]={p1x,-p1y,0.0};
    

	double p4[3]={-sin(3.1415926/10.0)*m_r1,-cos(3.1415926/10.0)*m_r1,0.0};
	double p5[3]={-sin(3.1415926/10.0)*m_r1,cos(3.1415926/10.0)*m_r1,0.0};
	UF_CALL(UF_CURVE_create_arc_thru_3pts(flag,p1,p5,p2,&arc1));
	UF_CALL(UF_CURVE_create_arc_thru_3pts(flag,p2,p4,p3,&arc3));

	double p11[3]={p2x,p2y,0.0};
	double p22[3]={m_zd+m_r2,0.0};
	double p33[3]={p2x,-p2y,0.0};
    UF_CALL(UF_CURVE_create_arc_thru_3pts(flag,p11,p22,p33,&arc2));
	tag_t path[5];
	path[0]=arc1;
	path[1]=line1;
	path[2]=arc2;
	path[3]=line2;
	path[4]=arc3;

	UF_CURVE_line_t sline1,sline2,sline3,sline4;
	tag_t tline1,tline2,tline3,tline4;
	sline1.start_point[0]=-m_r1;
	sline1.start_point[1]=0.0;
	sline1.start_point[2]=-m_b/2;
	sline1.end_point[0]=-m_r1;
	sline1.end_point[1]=0.0;
	sline1.end_point[2]=m_b/2;
	UF_CURVE_create_line(&sline1,&tline1);

	sline2.start_point[0]=-m_r1;
	sline2.start_point[1]=0.0;
	sline2.start_point[2]=m_b/2;
	sline2.end_point[0]=-m_r1-m_h;
	sline2.end_point[1]=0.0;
	sline2.end_point[2]=m_b/2;
	UF_CURVE_create_line(&sline2,&tline2);

	sline3.start_point[0]=-m_r1-m_h;
	sline3.start_point[1]=0.0;
	sline3.start_point[2]=m_b/2;
	sline3.end_point[0]=-m_r1-m_h;
	sline3.end_point[1]=0.0;
	sline3.end_point[2]=-m_b/2;
	UF_CURVE_create_line(&sline3,&tline3);

	sline4.start_point[0]=-m_r1-m_h;
	sline4.start_point[1]=0.0;
	sline4.start_point[2]=-m_b/2;
	sline4.end_point[0]=-m_r1;
	sline4.end_point[1]=0.0;
	sline4.end_point[2]=-m_b/2;
	UF_CURVE_create_line(&sline4,&tline4);

	tag_t add[4];
	add[0]=tline1;
	add[1]=tline2;
	add[2]=tline3;
	add[3]=tline4;
	int count=4,number=5;
	
    tag_t *feature;
	int num;
	UF_MODL_create_extrusion_path(add,count,path,number,trim_date,offset,region,
	false,true,sign,&feature,&num);
	
    
	UF_OBJ_set_blank_status(line1,UF_OBJ_BLANKED);
	UF_OBJ_set_blank_status(line2,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);
	UF_OBJ_set_blank_status(tline1,UF_OBJ_BLANKED);
	UF_OBJ_set_blank_status(tline2,UF_OBJ_BLANKED);
	UF_OBJ_set_blank_status(tline3,UF_OBJ_BLANKED);
	UF_OBJ_set_blank_status(tline4,UF_OBJ_BLANKED);


	    errorCode = UF_terminate(); 
  }
	
}

void Cdaip2::Onchabiao() 
{
	Czhongjiande3 dlg;
	dlg.DoModal();
	return;	
	
}

⌨️ 快捷键说明

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