CHUYÊN ĐỀ TÍNH TOÁN BỘ TRUYỀN BÁNH RĂNG CÔN Trong quá trình thiết kế chế tạo bánh răng ta thường lặp đi lặp lại việc

Một phần của tài liệu đồ án tốt nghiệp gia công hộp số (Trang 114 - 122)

Trong quá trình thiết kế chế tạo bánh răng ta thường lặp đi lặp lại việc tính toán cho những bánh răng có môdun khác nhau. Việc làm này tương đối mất thời gian. Do đó việc dựng một chương trình tính toán bộ truyền bánh

răng là hết sức cần thiết. Dưới đây em trình bày một chương trình nhỏ tính toán bộ truyền bánh răng côn.

Đầu vào của chương trình là số răng của hai bánh răng, mô đun, chiều dày răng, góc nghiêng (trong trường hợp côn nghiêng). Chương trình được xây dựng bởi các mô đun, mỗi mô đun bao gồm các hàm, các thủ tục.

Mô đun khai báo hằng, biến

// Design TechnicalDlg.cpp : implementation file //

#include "stdafx.h"

#include "Design Technical.h" #include "Design TechnicalDlg.h" #include "Gear.h" #include "ConGear.h" #include "SCrew.h" #include "Shape.h" #include "Status.h" #ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif

Mô đun chọn răng thẳng, răng nghiêng

BOOL CConGear::OnInitDialog() {

CDialog::OnInitDialog();

// TODO: Add extra initialization here m_typeangle = 0;

UpdateData(false);

m_cNumberZ1.SetFocus(); m_bAngle = 0;

m_cAngle.EnableWindow(false); m_pathToFile = "Export";

m_pathToFileCon = "Import";

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

void CConGear::OnRadioAngle() {

// TODO: Add your control notification handler code here UpdateData(true); if (m_typeangle == 0) { m_bAngle = 0; m_str = "Côn thẳng"; m_cAngle.EnableWindow(false); UpdateData(false); } }

Mô đun kiểm tra các điều kiện để bánh răng làm việc

void CConGear::OnButtonDone() {

// TODO: Add your control notification handler code here Calculate();

if (m_numberZ1 == 0) {

AfxMessageBox("Chua nhap so rang Z1"); m_cNumberZ1.SetFocus();

return; }

if (m_numberZ2 == 0) {

AfxMessageBox("Chua nhap so rang Z2"); m_cNumberZ2.SetFocus();

return; }

if (m_numberM == 0) {

AfxMessageBox("Chua nhap module"); m_cNumberM.SetFocus();

return; }

if (m_numberZ1 / cos(m_gocconchia1 * 3.14159 /180) < 17) {

AfxMessageBox("Co hien tuong cat lem chan rang \nChon lai so rang"); return;

}

if (m_numberZ2 / cos(m_gocconchia2 * 3.14159 /180) < 17) {

AfxMessageBox("Co hien tuong cat lem chan rang \nChon lai so rang"); return;

}

if (m_numberM < m_numberWidth/10) {

AfxMessageBox("Khong du do ben uon \nChon lai mo dule hay be rong vanhrang"); return; } CeilDate(3); UpdateData(false); }

Hàm tính toán bánh răng côn. void CConGear::Calculate() { UpdateData(true); double m_modulen; if ((m_typeangle == 0)||(m_typeangle == 1)) { m_modulen = m_numberM; } else { m_modulen = m_numberM*cos(m_bAngle*3.14159/180); } m_lenconngoai=0.5*m_modulen*sqrt(pow(m_numberZ1,2)+pow(m_numberZ2,2)); m_lencontb = m_lenconngoai - 0.5 * m_numberWidth;

m_dkchiangoai1 = m_modulen * m_numberZ1; m_dkchiangoai2 = m_modulen * m_numberZ2;

m_gocconchia1 = atan((double)m_numberZ1 / m_numberZ2); m_gocconchia1 = m_gocconchia1 * 180 / 3.14159265;

m_gocconchia2 = 90-m_gocconchia1;

m_chieucaorg = 2 * cos(m_bAngle * 3.1415 / 180) * m_modulen + 0.2 * m_modulen;

double m_x1,m_u;

m_u = (double)m_numberZ2 / m_numberZ1;

m_x1 = 2 * (1 - 1 / pow(m_u,2)) * sqrt(pow(cos(m_bAngle * 3.1415 / 180),3) / m_numberZ1);

if ((m_typeangle == 0)||(m_typeangle == 1)) {

m_chieucaodrn1 = (cos(m_bAngle * 3.1415 / 180) + m_x1 * cos(m_bAngle * 3.1415 / 180)) * m_modulen;

m_chieucaodrn2 = 2 * m_modulen - m_chieucaodrn1; m_chieucaocrn1 = m_chieucaorg - m_chieucaodrn1; m_chieucaocrn2 = m_chieucaorg - m_chieucaodrn2; } else { m_chieucaodrn1 = (1 + m_x1) * m_modulen; m_chieucaodrn2 = (1 - m_x1) * m_modulen; m_chieucaocrn1 = (1 + 0.25 - m_x1) * m_modulen; m_chieucaocrn2 = (1 + 0.25 + m_x1) * m_modulen; } double m_anpha = 20; double m_xt1 = 0.11 + 0.01 * (m_u - 2.5); m_chieudayrn1 = (0.5 * 3.1415 + 2 * m_x1 * atan(m_anpha * 3.1415 /180) + m_xt1) * m_modulen;

m_chieudayrn2 = 3.1415 * m_modulen - m_chieudayrn1; if ((m_typeangle == 0)||(m_typeangle == 1))

{

m_gocchanrang1 = atan(m_chieucaocrn1 / m_lenconngoai); m_gocchanrang1 = m_gocchanrang1 * 180 / 3.14159265; m_gocchanrang2 = atan(m_chieucaocrn2 / m_lenconngoai); m_gocchanrang2 = m_gocchanrang2 * 180 / 3.1415;

}else else {

m_gocchanrang1 = atan(m_chieucaocrn1 / m_lencontb); m_gocchanrang1 = m_gocchanrang1 * 180 / 3.14159265; m_gocchanrang2 = atan(m_chieucaocrn2 / m_lencontb);

m_gocchanrang2 = m_gocchanrang2 * 180 / 3.1415; }

if ((m_typeangle == 0)||(m_typeangle == 1)) {

m_goccondinh1 = m_gocconchia1 + m_gocchanrang2; m_goccondinh2 = m_gocconchia2 + m_gocchanrang1; } else { m_goccondinh1 = m_gocchanrang2; m_goccondinh2 = m_gocchanrang1; }

m_gocconday1 = m_gocconchia1 - m_gocchanrang1; m_gocconday2 = m_gocconchia2 - m_gocchanrang2; //CeilDate(3);

//UpdateData(false); }

Hàm tính in kết quả.

void CConGear::SaveToFile(CString pathName) {

FILE *stream = fopen(pathName,"wt");

fprintf( stream, "%s %s\n", " FILE NAME...",m_FileName);

fprintf( stream, "%s%s\n", " NAME...","DOAN VAN THINH" ); fprintf( stream, "%s%s\n", " LOP...","CHE TAO MAY 3 KHOA 43" );

fprintf( stream, "%s\n", "" ); fprintf( stream, "%s\n", "" ); fprintf( stream, "%s\n", "" );

fprintf( stream, "%s\n", " CHUONG TRINH TINH BANH RANG CON" );

fprintf( stream, "%s\n", "" );

fprintf( stream, "%s\n", "DU LIEU VAO" ); if(m_typeangle ==0)

fprintf( stream, "%s%s\n", " DANG RANG...","RANG CON THANG" );

if(m_typeangle ==1)

fprintf( stream, "%s%s\n", " DANG RANG...","RANG CON NGHIENG" );

if(m_typeangle ==2)

fprintf( stream, "%s%s\n", " DANG RANG...","RANG CON XOAN" );

fprintf( stream, "%s%d\n", " SO RANG Z1...",m_numberZ1 ); fprintf( stream, "%s%d\n", " SO RANG Z2...",m_numberZ2 ); fprintf( stream, "%s%f\n", " MODULE...",m_numberM ); fprintf( stream, "%s%f\n", " BE RONG BANH RANG...",m_numberWidth );

fprintf( stream, "%s%f\n", " GOC NGHIENG...",m_bAngle ); fprintf( stream, "%s\n", "" );

fprintf( stream, "%s\n", "" );

fprintf( stream, "%s\n", "KET QUA TINH TOAN" );

fprintf( stream, "%s%8.3lf\n", " CHIEU DAI CON NGOAI...",m_lenconngoai);

fprintf( stream, "%s%8.3lf\n", " CHIEU DAI CON TRUNG BINH...",m_lencontb);

fprintf( stream, "%s%8.3lf\n", " DUONG KINH CHIA NGOAI BANH RANG 1...",m_dkchiangoai1);

fprintf( stream, "%s%8.3lf\n", " DUONG KINH CHIA NGOAI BANH RANG 2...",m_dkchiangoai2);

fprintf( stream, "%s%8.3lf\n", " GOC CON CHIA BANH RANG 1...",m_gocconchia1);

fprintf( stream, "%s%8.3lf\n", " GOC CON CHIA BANH RANG 2...",m_gocconchia2);

fprintf( stream, "%s%8.3lf\n", " CHIEU CAO RANG NGOAI...",m_chieucaorg);

fprintf( stream, "%s%8.3lf\n", " CHIEU CAO DAU RANG NGOAIBANH RANG 1...",m_chieucaodrn1);

fprintf( stream, "%s%8.3lf\n", " CHIEU CAO DAU RANG NGOAIBANH RANG 2...",m_chieucaodrn2);

fprintf( stream, "%s%8.3lf\n", " CHIEU CAO CHAN RANG NGOAI BANH RANG 1...",m_chieucaocrn1);

fprintf( stream, "%s%8.3lf\n", " CHIEU CAO CHAN RANG NGOAI BANH RANG 2...",m_chieucaocrn2);

fprintf( stream, "%s%8.3lf\n", " CHIEU DAY RANG NGOAI BANH RANG 1...",m_chieudayrn1);

fprintf( stream, "%s%8.3lf\n", " CHIEU DAY RANG NGOAI BANH RANG 2...",m_chieudayrn1);

fprintf( stream, "%s%8.3lf\n", " GOC CHAN RANG BANH RANG 1...",m_gocchanrang1);

fprintf( stream, "%s%8.3lf\n", " GOC CHAN RANG BANH RANG 2...",m_gocchanrang2);

fprintf( stream, "%s%8.3lf\n", " GOC CON DINH BANH RANG 1...",m_goccondinh1);

fprintf( stream, "%s%8.3lf\n", " GOC CON DINH BANH RANG 2...",m_goccondinh2);

fprintf( stream, "%s%8.3lf\n", " GOC CON DAY BANH RANG 1...",m_gocconday1);

fprintf( stream, "%s%8.3lf\n", " GOC CON DAY BANH RANG 2...",m_gocconday2);

fprintf( stream, "%s\n", " END;" );

fclose(stream); }

Một phần của tài liệu đồ án tốt nghiệp gia công hộp số (Trang 114 - 122)

Tải bản đầy đủ (DOCX)

(112 trang)
w