📄 daip2.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 + -