📄 yuanzhuigunzi.cpp
字号:
// yuanzhuigunzi.cpp : implementation file
//
#include "stdafx.h"
#include "Code.h"
#include "yuanzhuigunzi.h"
#include "main.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Cyuanzhuigunzi dialog
Cyuanzhuigunzi::Cyuanzhuigunzi(CWnd* pParent /*=NULL*/)
: CDialog(Cyuanzhuigunzi::IDD, pParent)
{
//{{AFX_DATA_INIT(Cyuanzhuigunzi)
m_D = 0.0;
m_d = 0.0;
m_B = 0.0;
m_T = 0.0;
m_C = 0.0;
m_r = 0.0;
//}}AFX_DATA_INIT
}
void Cyuanzhuigunzi::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Cyuanzhuigunzi)
DDX_Control(pDX, IDC_LIST2, m_listctrl2);
DDX_Control(pDX, IDC_LIST1, m_listctrl1);
DDX_Control(pDX, IDC_COMBO1, m_list);
DDX_Text(pDX, IDC_EDIT1, m_D);
DDX_Text(pDX, IDC_EDIT2, m_d);
DDX_Text(pDX, IDC_EDIT3, m_B);
DDX_Text(pDX, IDC_EDIT4, m_T);
DDX_Text(pDX, IDC_EDIT5, m_C);
DDX_Text(pDX, IDC_EDIT6, m_r);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Cyuanzhuigunzi, CDialog)
//{{AFX_MSG_MAP(Cyuanzhuigunzi)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
ON_BN_CLICKED(IDOK2, OnHelpBtn)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Cyuanzhuigunzi message handlers
BOOL Cyuanzhuigunzi::OnInitDialog()
{
CDialog::OnInitDialog();
m_list.InsertString(0,"单列圆锥滚子轴承");
m_list.InsertString(1,"双列圆锥滚子轴承");
m_list.SetCurSel(0);
try{
m_ADODatabase.SetConnectionString(_T("Provider=SQLOLEDB.1;Password=00;User ID=david;Initial Catalog=chuandong;Data Source=acer"));
m_ADODatabase.Open();
BOOL b = m_ADODatabase.IsOpen();
this->m_ADORecordset.Open(this->m_ADODatabase.GetActiveConnection(), _T("select * from ZGB_d where [Z_30000] like 'Z_30000'"));
CString d1;
int i=0;
m_listctrl1.InsertColumn(0,_T("d"),LVCFMT_LEFT,50);
m_listctrl2.InsertColumn(0,_T("型号"),LVCFMT_LEFT,50);
m_listctrl2.InsertColumn(1,_T("dd"),LVCFMT_LEFT,50);
m_listctrl2.InsertColumn(2,_T("D"),LVCFMT_LEFT,50);
m_listctrl2.InsertColumn(3,_T("B"),LVCFMT_LEFT,50);
m_listctrl2.InsertColumn(4,_T("T"),LVCFMT_LEFT,50);
m_listctrl2.InsertColumn(5,_T("C"),LVCFMT_LEFT,50);
m_listctrl2.InsertColumn(6,_T("r"),LVCFMT_LEFT,50);
while(!this->m_ADORecordset.IsEof())
{
this->m_ADORecordset.GetFieldValue("d", d1);
m_listctrl1.InsertItem(i,d1);
this->m_ADORecordset.MoveNext();
i=i+1;
}
}
catch (_com_error e)
{
AfxMessageBox(CString(e.ErrorMessage()));
}
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
double Cyuanzhuigunzi::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 Cyuanzhuigunzi::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
CString D,daihao,dd1,D1,B1,dd21,D21,r1,dda1,Da1,ra1,Cr1,C0r1,Dw1,Z1,d,b,t,c;
int j=0,k;
int nItemCount=m_listctrl2.GetItemCount();
for(k=nItemCount-1;k>=0;k--)
{
m_listctrl2.DeleteItem(k);
}
int list=m_list.GetCurSel();
for(int i=0;i<m_listctrl1.GetItemCount();i++)
{
if(m_listctrl1.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
{
D=m_listctrl1.GetItemText(i,0);
if(list==0)
{
this->m_ADORecordset.Open(this->m_ADODatabase.GetActiveConnection(), _T("select * from Z_30000 where d like '"+D+"'"));
while(!this->m_ADORecordset.IsEof())
{
this->m_ADORecordset.GetFieldValue("xinghao", daihao);
this->m_ADORecordset.GetFieldValue("d", dd1);
this->m_ADORecordset.GetFieldValue("dd", D1);
this->m_ADORecordset.GetFieldValue("b", B1);
this->m_ADORecordset.GetFieldValue("t", t);
this->m_ADORecordset.GetFieldValue("c", c);
this->m_ADORecordset.GetFieldValue("r", r1);
m_listctrl2.InsertItem(j,daihao);
m_listctrl2.SetItemText(j,2,D1);
m_listctrl2.SetItemText(j,3,B1);
m_listctrl2.SetItemText(j,4,t);
m_listctrl2.SetItemText(j,5,c);
m_listctrl2.SetItemText(j,6,r1);
m_listctrl2.SetItemText(j,1,dd1);
this->m_ADORecordset.MoveNext();
j=j+1;
}
}
if(list==1)
{
this->m_ADORecordset.Open(this->m_ADODatabase.GetActiveConnection(), _T("select * from Z_350000 where dd like '"+D+"' "));
while(!this->m_ADORecordset.IsEof())
{
this->m_ADORecordset.GetFieldValue("轴承型号", daihao);
this->m_ADORecordset.GetFieldValue("dd", dd1);
this->m_ADORecordset.GetFieldValue("D", D1);
this->m_ADORecordset.GetFieldValue("b1", B1);
this->m_ADORecordset.GetFieldValue("b11", t);
this->m_ADORecordset.GetFieldValue("c1", c);
this->m_ADORecordset.GetFieldValue("r", r1);
m_listctrl2.InsertItem(j,daihao);
m_listctrl2.SetItemText(j,2,D1);
m_listctrl2.SetItemText(j,3,B1);
m_listctrl2.SetItemText(j,4,t);
m_listctrl2.SetItemText(j,5,c);
m_listctrl2.SetItemText(j,6,r1);
m_listctrl2.SetItemText(j,1,dd1);
this->m_ADORecordset.MoveNext();
j=j+1;
}
}
}
}
UpdateData(false);
*pResult = 0;
}
void Cyuanzhuigunzi::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult)
{
m_listctrl2.SetExtendedStyle(LVS_EX_FULLROWSELECT);
for(int m=0;m<m_listctrl2.GetItemCount();m++)
{
if(m_listctrl2.GetItemState(m,LVIS_SELECTED)==LVIS_SELECTED)
{
m_D=strtodouble(m_listctrl2.GetItemText(m,2));
m_d=strtodouble(m_listctrl2.GetItemText(m,1));
m_B=strtodouble(m_listctrl2.GetItemText(m,3));
m_T=strtodouble(m_listctrl2.GetItemText(m,4));
m_C=strtodouble(m_listctrl2.GetItemText(m,5));
m_r=strtodouble(m_listctrl2.GetItemText(m,6));
}
}
UpdateData(false);
*pResult = 0;
}
void Cyuanzhuigunzi::OnOK()
{
int err=UF_initialize();
int nlist=m_list.GetCurSel();
double m_i=12;
double rd=2*3.1415926/m_i;
double dd=15*3.1415926/180;
UF_FEATURE_SIGN sign=UF_NULLSIGN,sign1=UF_NEGATIVE,sign2=UF_POSITIVE;
UF_MODL_SWEEP_TRIM_object_p_t trim_date=NULL;
char *limit[2]={"0.0","360"};
char *offset[2]={"0.0","0.0"};
double region[3]={0.0,0.0,0.0};
double direction[3]={1.0,0.0,0.0};
if(err==0&&nlist==0)
{
double m_dd=m_D,m_t=m_T,m_b=m_B,m_c=m_C;
double aa=(m_dd-m_d)/2;
UF_CURVE_line_t dline1;
tag_t line1;
dline1.start_point[0]=m_t/2-m_c;
dline1.start_point[1]=m_dd/2;
dline1.start_point[2]=0.0;
dline1.end_point[0]=m_t/2;
dline1.end_point[1]=m_dd/2;
dline1.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline1,&line1));
UF_CURVE_line_t dline2;
tag_t line2;
dline2.start_point[0]=m_t/2-m_c;
dline2.start_point[1]=aa/2/cos(dd)+m_d/2+3*aa/8;
dline2.start_point[2]=0.0;
dline2.end_point[0]=m_t/2;
dline2.end_point[1]=aa/2/cos(dd)+m_d/2+3*aa/8-m_c*tan(dd);
dline2.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline2,&line2));
int number;
tag_t *waiq;
UF_CALL(UF_MODL_create_revolution(&line1,1,trim_date,limit,
offset,region,false,true,region,direction,sign,&waiq,&number));
UF_CALL(UF_MODL_create_revolution(&line2,1,trim_date,limit,
offset,region,false,true,region,direction,sign1,&waiq,&number));
UF_CURVE_line_t dline3;
tag_t line3,*neiq;
UF_CURVE_line_t dline4,dline5,dline6,dline7,dline8,dline9,dlinea,dlineb,dlinec;
tag_t line4,line5,line6,line7,line8,line9,linea,lineb,linec;
dline3.start_point[0]=-m_t/2;
dline3.start_point[1]=m_d/2+aa/2;
dline3.start_point[2]=0.0;
dline3.end_point[0]=m_t/2-m_c;
dline3.end_point[1]=aa/2+m_d/2;
dline3.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline3,&line3));
dline4.start_point[0]=m_t/2-m_c;
dline4.start_point[1]=m_d/2+3*aa/8;
dline4.start_point[2]=0.0;
dline4.end_point[0]=m_b-m_t/2-sin(dd)*aa/2;
dline4.end_point[1]=3*aa/8+m_d/2;
dline4.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline4,&line4));
dline5.start_point[0]=m_b-m_t/2-sin(dd)*aa/2;
dline5.start_point[1]=m_d/2+aa/4;
dline5.start_point[2]=0.0;
dline5.end_point[0]=m_b-m_t/2;
dline5.end_point[1]=aa/4+m_d/2;
dline5.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline5,&line5));
dline6.start_point[0]=m_t/2-m_c;
dline6.start_point[1]=m_d/2+3*aa/8;
dline6.start_point[2]=0.0;
dline6.end_point[0]=m_b-m_t/2-sin(dd)*aa/2;
dline6.end_point[1]=aa/2/cos(dd)+m_d/2+3*aa/8-tan(dd)*(m_c-m_t+m_b)-cos(dd)*aa/2;
dline6.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline6,&line6));
dline7.start_point[0]=m_t/2-m_c;
dline7.start_point[1]=aa/2+m_d/2;
dline7.start_point[2]=0.0;
dline7.end_point[0]=m_t/2-m_c;
dline7.end_point[1]=m_d/2+3*aa/8;
dline7.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline7,&line7));
dline8.start_point[0]=m_b-m_t/2-sin(dd)*aa/2;
dline8.start_point[1]=3*aa/8+m_d/2;
dline8.start_point[2]=0.0;
dline8.end_point[0]=m_b-m_t/2-sin(dd)*aa/2;
dline8.end_point[1]=m_d/2+aa/4;
dline8.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline8,&line8));
dline9.start_point[0]=m_b-m_t/2-sin(dd)*aa/2;
dline9.start_point[1]=aa/2/cos(dd)+m_d/2+3*aa/8-tan(dd)*(m_c-m_t+m_b)-cos(dd)*aa/2;
dline9.start_point[2]=0.0;
dline9.end_point[0]=m_b-m_t/2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -