Главная страница
Навигация по странице:

  • 3.1 Постановка задач

  • 3.2 Математическая модель

  • курсовая по информатике. Отчет по курсовой работе по теме Разработка программного модуля на языке программирования высокого уровня для решения инженерных задач


    Скачать 1.16 Mb.
    НазваниеОтчет по курсовой работе по теме Разработка программного модуля на языке программирования высокого уровня для решения инженерных задач
    Анкоркурсовая по информатике
    Дата21.06.2022
    Размер1.16 Mb.
    Формат файлаdocx
    Имя файлаKursovaya_Rabota_Ivanov_Viktor_NMT-113511_0.docx
    ТипОтчет
    #608199
    страница6 из 7
    1   2   3   4   5   6   7








    3. Разработка программного модуля на примере расчета и построения зубчатого зацепления


    3.1 Постановка задач

    Разработать программный модуль на примере расчета и построения зубчатого зацепления.

    Написать алгоритмы программ.

    Написать программы, которые должны позволять:

      1. вводить исходные данные;

      2. выводить необходимые расчётные параметры;

      3. формировать изображение соответствующих элементов;

    3.2 Математическая модель

    В данной программе требуется рассчитать основные характеристики и геометрические характеристики зубчатого зацепления:

    • Формула 1. Делительный диаметр

    (2.1)

    Где m- модуль;

    z- число зубьев колеса.



    Где m- модуль;

    z- число зубьев колеса.

    Формула 3. Диаметр окружности вершин


    Где m- модуль;

    z- число зубьев колеса

    • Формула 4. Ширина зубчатого венца колеса

    (2.4)

    Где Aw- Межосевое расстояние

    - угол

    • Формула 5. Длина ступицы



    Где d-– диаметр посадочного отверстия зубчатого колеса.

    • Формула 6. Диаметр ступицы



    Где d-– диаметр посадочного отверстия зубчатого колеса

    • Зацепление цилиндрических зубчатых колёс с прямыми зубьями



    Рисунок 11. Изображение зацепления цилиндрических зубчатых колёс с прямыми зубьями

    • Основные размеры зубчатых колес



    Рисунок 12. Изображение основных размеров зубчатых колёс



    Рисунок 13. Пазы шпоночные

    3.3 Описание алгоритма


    А. Начать исполнение.

    1. Создать форму.

    2. Нанести на созданную форму элементы: TButton, TImage, TLabel, TEdit.

    3. Назвать 2 кнопки «Расчет» и 1 кнопку «Чертеж».

    4. Если нажать на первую кнопку «Расчет», то выведется сообщение « = …», « =…», « =…».

    5. Если нажать на вторую кнопку «Расчет», то выведется сообщение « = …»,« = …» .

    6. Если нажать на кнопку «Чертеж», то на экране появится изображение подшипника с размерами, с помощью процедур: Polygon, Polyline, RoundRect, Ellipse, MoveTo, LineTo, TextOut.

    7. Конец цикла.

    Б. Закончить исполнение

    3.4 Текст программы


    unit zadacha2;

    {$mode objfpc}{$H+}

    interface

    uses

    Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls;

    type

    { TForm1 }

    TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Edit5: TEdit;

    Image1: TImage;

    Label1: TLabel;

    Label10: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    private

    public

    end;

    var

    Form1: TForm1;

    m, z, d, dq, Aw, da, bw, df, h, Dc, Lc : real;

    Psi:Double;

    implementation

    {$R *.lfm}

    { TForm1 }

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    m:=StrToFloat(Edit1.text);

    z:=StrToFloat(edit2.text);

    dq:=m*z;

    df:=m*(z-2);

    da:=m*(z+2);

    if

    (m<=0)or(z<=0) then

    showmessage('некорркетный ввод')

    else

    begin

    showmessage('dq='+floattostrf(dq,ffFixed,4,2)+'мм');

    showmessage('df='+floattostrf(df,ffFixed,4,2)+'мм');

    showmessage('da='+floattostrf(da,ffFixed,4,2)+'мм');

    end;

    end;

    procedure TForm1.Button2Click(Sender: TObject);

    begin

    d:=StrToFloat(edit3.text);

    Psi:=StrToFloat(edit4.text);

    Aw:=StrToFloat(edit5.text);

    bw:= Psi*Aw;

    Lc:=1.2*d;

    Dc:=1.6*d;

    if

    (1.2*d<=bw) or (1.2*d
    showmessage ('Увеличиваем d');

    if

    (Aw<=0)or(Psi<=0)or(d<=0) then

    showmessage('некоректный ввод')

    else

    begin

    showmessage('bw='+floattostrf(bw,ffFixed,4,2)+'мм');

    showmessage('Lc='+floattostrf(Lc,ffFixed,4,2)+'мм');

    showmessage('Dc='+floattostrf(Dc,ffFixed,4,2)+'мм');

    end;

    end;

    procedure TForm1.Button3Click(Sender: TObject);

    begin

    with Image1.Picture.Bitmap do

    begin

    Width:=-0;

    Height:=0;

    Width:=480;

    Height:=531;

    end;

    With image1.Canvas do

    begin

    Image1.Picture.Bitmap.Canvas.Pen.Color:=clWhite;

    Image1.Picture.Bitmap.Canvas.Brush.Color:=clWhite;

    Image1.Picture.Bitmap.Canvas.Brush.Style:= bsFDiagonal;

    Polyline ([Point(Round(Lc/2),0),Point(Round((Lc/2)+bw),0), Point(Round((Lc/2)+bw),Round((da-df)/2)), Point(Round(Lc/2),Round((da-df)/2)),Point (Round(Lc/2), 0)]);

    Polygon ([Point (Round(Lc/2), Round((da-df)/2)), Point (Round (Lc/2), Round ((da-dc)/2)) , Point (Round((Lc/2)-((Lc-bw)/2)), Round((da-dc)/2)), Point (Round((Lc/2)-(Lc-bw)/2), Round((((dc-d)/2)-3)+((da-dc)/2))), Point (Round(((Lc/2)+bw)+(Lc-bw)/2), Round((((dc-d)/2)-3)+((da-dc)/2))), Point(Round(((Lc/2)+bw)+(Lc-bw)/2), Round((da-dc)/2)), Point(Round((Lc/2)+bw),Round((da-dc)/2)), Point(Round((Lc/2)+bw),Round((da-df)/2))]);

    Polyline ([Point (Round((Lc/2)-((Lc-bw)/2)) ,Round((((dc-d)/2)-3)+((da-dc)/2))), Point (Round((Lc/2)-((Lc-bw)/2)),Round((((dc-d)/2)+3)+((da-dc)/2))), Point (Round((Lc/2)+bw+((Lc-bw)/2)),Round((((dc-d)/2)+3)+((da-dc)/2))), Point (Round((Lc/2)+bw+((Lc-bw)/2)),Round((((dc-d)/2)-3)+((da-dc)/2)))]);

    MoveTo (Round((Lc/2)-((Lc-bw)/2)), Round((((dc-d)/2)+3)+((da-dc)/2)));

    LineTo (Round((Lc/2)-((Lc-bw)/2)), Round(((((dc-d)/2)+3)+((da-dc)/2))+d));

    MoveTo (Round((Lc/2)-((Lc-bw)/2)+1.6), Round((((dc-d)/2)+3)+((da-dc)/2)));

    LineTo (Round((Lc/2)-((Lc-bw)/2)+1.6), Round(((((dc-d)/2)+3)+((da-dc)/2))+d));

    MoveTo (Round((Lc/2)+bw+((Lc-bw)/2)),Round((((dc-d)/2)+3)+((da-dc)/2)));

    LineTo (Round((Lc/2)+bw+((Lc-bw)/2)),Round(((((dc-d)/2)+3)+((da-dc)/2))+d));

    MoveTo (Round((Lc/2)+bw+((Lc-bw)/2)-1.6),Round((((dc-d)/2)+3)+((da-dc)/2)));

    LineTo (Round((Lc/2)+bw+((Lc-bw)/2)-1.6),Round(((((dc-d)/2)+3)+((da-dc)/2))+d));

    Polygon ([Point(Round((Lc/2)-((Lc-bw)/2)),

    Round(((((dc-d)/2)+3)+((da-dc)/2))+d)), Point (Round((Lc/2)-((Lc-bw)/2)),Round(((((dc-d)/2)+3)+((da-dc)/2))+d+((Dc/2)-(d/2)))), Point (Round(Lc/2), Round(((((dc-d)/2)+3)+((da-dc)/2))+d+((Dc/2)-(d/2)))), Point(Round(Lc/2), Round(da-((da-df)/2))), Point(Round((Lc/2)+bw),Round(da-(da-df)/2)), Point(Round((Lc/2)+bw), Round(((((dc-d)/2)+3)+((da-dc)/2))+d+((Dc/2)-(d/2)))), Point(Round(((Lc/2)+bw+((Lc-bw)/2))),Round(((((dc-d)/2)+3)+((da-dc)/2))+d+((Dc/2)-(d/2)))), Point (Round((Lc/2)+bw+((Lc-bw)/2)), Round(((((dc-d)/2)+3)+((da-dc)/2))+d))]);

    Polyline ([Point(Round(Lc/2),(Round(da-((da-df)/2)))), Point (Round(Lc/2), Round(da)), Point(Round((Lc/2)+bw), Round(da)), Point(Round((Lc/2)+bw), Round(da-((da-df)/2)))]);

    Image1.Picture.Bitmap.Canvas.Brush.Style:= bsClear;

    Arc(Round(4*bw),Round((((dc-d)/2)+3)+((da-dc)/2)),Round(4*bw+d), Round(((((dc-d)/2)+3)+((da-dc)/2))+d),Round(4*bw+d/2-6),Round((((dc-d)/2)+3)+((da-dc)/2)),Round(4*bw+d/2+6),Round((((dc-d)/2)+3)+((da-dc)/2)));

    MoveTo (Round(4*bw+d/2-6),Round((((dc-d)/2)+3)+((da-dc)/2)));

    LineTo(Round(4*bw+d/2-6),Round((((dc-d)/2)-3)+((da-dc)/2)));

    LineTo(Round(4*bw+d/2+6) ,Round((((dc-d)/2)-3)+((da-dc)/2)));

    LineTo (Round(4*bw+d/2+6),Round((((dc-d)/2)+3)+((da-dc)/2)));

    Image1.Picture.Bitmap.Canvas.Pen.Style:= psDashDot;

    MoveTo (Round(Lc/2-3),Round((da-d)/2));

    LineTo (Round((Lc/2)+bw+3),Round((da-d)/2));

    MoveTo (Round(Lc/2-3),Round(((da-dq)/2)+dq));

    LineTo (Round((Lc/2)+bw+3),Round(((da-dq)/2)+dq));

    MoveTo (Round((Lc/2)-((Lc-bw)/2)-3),Round(da/2));

    LineTo (Round((Lc/2)+bw+((Lc-bw)/2)+3), Round(da/2));

    MoveTo (Round(4*bw-6), Round (da/2));

    LineTo (Round(4*bw+d+6), Round (da/2));

    MoveTo (Round(4*bw+(d/2)), Round((((dc-d)/2)+3)+((da-dc)/2)-6));

    LineTo (Round(4*bw+(d/2)), Round(((((dc-d)/2)+3)+((da-dc)/2))+d+6));

    Image1.Picture.Bitmap.Canvas.Pen.Style:= psSolid;

    TextOut(150,150, '125');

    end;

    end;

    end.
    1   2   3   4   5   6   7


    написать администратору сайта