Учебная работа № /7972. «Курсовая Нормирование точности соединений

Учебная работа № /7972. «Курсовая Нормирование точности соединений

Количество страниц учебной работы: 47
Содержание:
Содержание

Задание

1. Нормирование точности гладких соединений
1.1. Соединения гладких валов и отверстий

1.2. Контроль размеров цилиндрических поверхностей гладкими калибрами

1.3. Допуски и посадки подшипников качения

1.4. Допуски размеров, входящих в размерные цепи

2. Нормирование точности типовых соединений сложного профиля

2.1. Нормирование точности метрической резьбы
2.2. Нормирование точности шпоночных и шлицевых соединений

2.2.1. Шпоночное соединение
2.2.2. Шлицевое соединение

2.3. Нормирование точности цилиндрических прямозубых зубчатых передач

3. Выбор универсальных средств измерения

Список используемой литературы

Список используемой литературы

1. Нормирование точности деталей машин: Методические указания к выполнению курсовой работы. НГТУ; Сост.: Л.А. Болдин и др. Н. Новгород, 1999.

2. Нормирование точности деталей машин. Методические указания к выполнению курсовой работы. Н. Новгород, 1996.

3. Нормирование точности изделий машиностроения: Учебное пособие / В.Н. Кайнова, Г.И. Лебедев, С.Ф. Магницкая и др./ Под ред. В.Н. Кайновой; НГТУ. Н. Новгород, 2001.

4. Расчет исполнительных размеров гладких калибров: Методические указания / НГТУ; В.Н. Кайнова, Н.Н. Фролова, В.А. Зотова. Н. Новгород, 1995.

5. Мягков В.Д. и др. допуски и посадки. Справочник в 2-х частях, 1983.

6. Выбор универсальных средств измерения: Методические указания / НГТУ; Сост.: В.Н. Кайнова, Г.И. Лебедев. Н. Новгород. 2000.

Стоимость данной учебной работы: 7800 руб.Учебная работа №   /7972.  "Курсовая Нормирование точности  соединений

 


Форма заказа готовой работы

    Укажите Ваш e-mail (обязательно)! ПРОВЕРЯЙТЕ пожалуйста правильность написания своего адреса!

    Укажите № работы и вариант

    Соглашение * (обязательно) Федеральный закон ФЗ-152 от 07.02.2017 N 13-ФЗ
    Я ознакомился с Пользовательским соглашением и даю согласие на обработку своих персональных данных.

    Выдержка из похожей работы

    Можно сказать – если dl=4, то в данном элементе хранится не
    формула, которую надо вычислить, а значение.

    Количество строк введенных в поле
    ввода должно быть не более 300 – это задается размерностью массива mas.

    Используемые процедуры и функции

    zapolnenie; — заполнение массива mas из поля edt1.

    sum(a,b:string):string; — сумма чисел, хранящихся в
    a и b.

    minus(a,b:string):string; — разность чисел, хранящихся в a и b,minus=a-b

    umn(a:integer;var
    xx:string):string; — умножение числа хх на цифру а,Используется в функции umnozen.

    umnozen(a,b:string):string; — произведение чисел,
    хранящихся в a и b.

    del2(str:string):string; — делит число str на 2.

    sravnenie(a,b:string):shortint; — сравнивает число a с числом b,Возвращается результат:

    ·  
    если
    а>b, то sravnenie =1

    ·  
    если
    а‘-‘)) then begin

          sum:=form1.minus(a,copy(b,2,300)); exit;

        end;

        if ((a[1]=’-‘) and (b[1]<>‘-‘)) then begin

          sum:=form1.minus(b,copy(a,2,300)); exit;

        end;

        bol:=false;

        if ((b[1]=’-‘) and (a[1]=’-‘)) then begin

          bol:=true; a:=copy(a,2,300); b:=copy(b,2,300)

        end;

        if length(b)>length(a) then begin

          tmp:=b;  b:=a; a:=tmp;

        end;

      ost:=0;

      if length(b)<>length(a) then b:=’0’+b;

      c:=a;

      j:=length(a);

      tmp2:=»;

      for i:=length(b) downto 1 do begin

          tmp2:=tmp2+’0′;

          k:=strtoint(c[j])+strtoint(b[i]);

          k:=k+ost;

          ost:=0;

          if k>9 then begin

            ost:=k div 10;      k:=k mod 10;

          end;

          c[j]:=inttostr(k)[1];

      j:=j-1;

      end;

        if ost>0 then begin

          tmp2:=inttostr(ost)+tmp2;

          c:=form1.sum(tmp2,c);

        end;

      if bol then c:=’-‘+c;

      sum:=c;

    end;

    function Tform1.minus(a,b:string):string;

      i,la,lb,vv,snos:integer;

      c,tmp:string;

      pom:boolean;

    begin

        if ((b[1]=’-‘) and (a[1]<>‘-‘)) then begin

          minus:=form1.sum(a,copy(b,2,300)); exit;

        end;

        if ((a[1]=’-‘) and (b[1]<>‘-‘)) then begin

          minus:=form1.sum(a,’-‘+b); exit;

        end;

        if ((b[1]=’-‘) and (a[1]=’-‘)) then begin

          minus:=form1.minus(copy(b,2,300),copy(a,2,300)); exit;

        end;

      c:=a;

      pom:=false;

      la:=length(a);      lb:=length(b);

      if lb>la then begin

        pom:=true;    c:=b;   b:=a;   a:=c;

        la:=length(a);      lb:=length(b);

      end;

      snos:=0;

      for i:=lb downto 1 do begin

        vv:=strtoint(a[la-lb+i])-strtoint(b[i])-snos;

        snos:=0;

        if vv<0 then begin       snos:=1;     vv:=vv+10;     end;     c[la-lb+i]:=inttostr(vv)[1];   end;   if snos=1 then begin     tmp:='';     for i:=1 to lb do tmp:=tmp+'0';     tmp:='1'+tmp;     c:=minus(c,tmp);   end;   while ((c[1]='0')and(length(c)>1)) do c:=copy(c,2,300);

      if pom then c:=’-‘+c;

      minus:=c;

    end;

    function umn(a:integer;var xx:string):string;

    var

      i,ost,tmp,dl:integer;

      str:string;

    begin

    ost:=0;

    str:=»;

    dl:=length(xx);

    for i:=dl downto 1 do begin

      tmp:=a*strtoint(xx[i])+ost;

      if tmp>9 then begin

        str:=inttostr((tmp mod 10))+str;

        ost:=tmp div 10;

        if i=1 then str:=inttostr(ost)+str;

      end

      else begin

        str:=inttostr(tmp)+str;

        ost:=0;

      end;

    end;

    umn:=str;

    end;

    function umnozen(a,b:string):string;

    var

      k,i:integer;

      tmp,c,r:string;

      bol:boolean;

    begin

        bol:=false;

        if ((b[1]=’-‘) and (a[1]<>‘-‘)) then begin

          bol:=true;  b:=copy(b,2,300);

        if ((a[1]=’-‘) and (b[1]<>‘-‘)) then begin

          bol:=true;  a:=copy(a,2,300);

        end;

        if ((b[1]=’-‘) and (a[1]=’-‘)) then begin

          a:=copy(a,2,300); b:=copy(b,2,300)

        end;

        if ((a=’0′)or(b=’0′)) then begin

          umnozen:=’0′; exit;

        end;

      k:=length(b);

      c:=’0′;   tmp:=»;

      for i:=k downto 1 do begin

        r:=umn(strtoint(b[i]),a);

        r:=r+tmp;

        tmp:=tmp+’0′;

        c:=form1.sum(c,r);

      end;

      if bol then c:=’-‘+c;

      umnozen:=c;

    end;

    function sravnenie(a,b:string):shortint;

    {  если а>b, то
    сравнение=1

       если аla then sravnenie:=-1;

      if lbb[i] then begin

          sravnenie:=1;

          exit;

        end;

        if a[i]‘-‘)) then begin

          zzz:=true;  b:=copy(b,2,300);

        end;

        if ((a[1]=’-‘) and (b[1]<>‘-‘)) then begin

          zzz:=true;  a:=copy(a,2,300);

        end;

        if ((b[1]=’-‘) and (a[1]=’-‘)) then begin

          a:=copy(a,2,300); b:=copy(b,2,300)

        end;

      bol:=true;

      lev:=’0′;    prav:=a;   pr:=’0’; rab:=a;

      if b<>‘1’ then

      while (bol) do begin

        tmp:=form1.minus(a,pr);

        if tmp[1]=’-‘ then tmp:=copy(tmp,2,300);

        if (sravnenie(tmp,del2(b))<>1) then
    break;//bol:=false;

        tmp:=form1.minus(prav,lev); rab:=»;

        rab:=form1.sum(lev,del2(tmp));

        pr:=umnozen(b,rab);

        if sravnenie(a,pr)=1 then begin

          lev:=rab;

        end

        else begin

          prav:=rab;

        end;

      end;

          if zzz then rab:=’-‘+rab;

          delen:=rab;

          if ((rab=’-‘)or(rab=»))then delen:=’0′;

    end;

    function po_ch_num(ch:string;var
    znach:string):boolean;

    var

      bol:boolean;

      i:integer;

    begin

      bol:=false;

      for i:=1 to y do begin

        if ((mas[i].dl=4)and(mas[i].lin[1]=ch)) then begin

          bol:=true;

          znach:=mas[i].lin[3];

        end;

      end;

    po_ch_num:=bol;

    end;

    function sislo(ch:char):boolean;

    begin

      if ((ch>=’0’)and(ch<='9')or(ch='-')) then sislo:=true   else sislo:=false; end; procedure poisk(z:integer); var   i,k,j,m,k2,zz:integer;   tmp:string;   zn:char; begin   {snachala ubiraem skobki, potom *, potom /, potom +, potom -} k:=0;   for i:=1 to mas[z].dl-1 do     if mas[z].lin[i]='(' then k:=k+1;   if k>0 then begin

        k2:=0;

          if mas[z].lin[i]='(‘ then k2:=k2+1;

          if k2=k then begin

            if mas[z].lin[i+2]=’)’ then begin

              mas[z].lin[i]:=mas[z].lin[i+1];

              for m:=i+1 to mas[z].dl-2 do mas[z].lin[m]:=mas[z].lin[m+2];

              mas[z].dl:=mas[z].dl-2;

              poisk(z);

              exit;

            end

            else begin

              zz:=i+1;

              while mas[z].lin[zz]<>‘)’ do begin

                if ((mas[z].lin[zz]=’*’)or(mas[z].lin[zz]=’/’))
    then begin

                  if po_ch_num(mas[z].lin[zz-1],tmp) then
    mas[z].lin[zz-1]:=tmp;

                  if po_ch_num(mas[z].lin[zz+1],tmp) then
    mas[z].lin[zz+1]:=tmp;

                  if
    (((sislo(mas[z].lin[zz-1][1])))and(sislo(mas[z].lin[zz+1][1]))) then begin

                    zn:=mas[z].lin[zz][1];

                    if zn=’*’ then
    mas[z].lin[zz-1]:=umnozen(mas[z].lin[zz-1],mas[z].lin[zz+1])

                    else
    mas[z].lin[zz-1]:=delen(mas[z].lin[zz-1],mas[z].lin[zz+1]);

                      for m:=zz to mas[z].dl-2 do mas[z].lin[m]:=mas[z].lin[m+2];

                      mas[z].dl:=mas[z].dl-2;

                      poisk(z);

                      exit;

                  end;

                end;

              zz:=zz+1;

              end;

              ////////          {snachala / i *, potom + i -}

              zz:=i+1;

              while mas[z].lin[zz]<>‘)’ do begin

                if ((mas[z].lin[zz]=’+’)or(mas[z].lin[zz]=’-‘))
    then begin

                  if po_ch_num(mas[z].lin[zz-1],tmp) then
    mas[z].lin[zz-1]:=tmp;

                  if po_ch_num(mas[z].lin[zz+1],tmp) then
    mas[z].lin[zz+1]:=tmp;

                  if
    ((sislo(mas[z].lin[zz-1][1]))and(sislo(mas[z].lin[zz+1][1]))) then begin

                    zn:=mas[z].lin[zz][1];

                    if zn=’+’ then
    mas[z].lin[zz-1]:=form1.sum(mas[z].lin[zz-1],mas[z].lin[zz+1])

                    else
    mas[z].lin[zz-1]:=form1.minus(mas[z].lin[zz-1],mas[z].lin[zz+1]);

                      for m:=zz to mas[z].dl-2 do
    mas[z].lin[m]:=mas[z].lin[m+2];

                      mas[z].dl:=mas[z].dl-2;

                      poisk(z);

                      exit;

                  end;

                end;

              zz:=zz+1;

              end;

              ////////

            end;

          end;

        end;

      end

      else begin {esli skobok net}

         for zz:=1 to mas[z].dl-1 do begin       if
    ((mas[z].lin[zz]=’*’)or(mas[z].lin[zz]=’/’)) then begin

                  if po_ch_num(mas[z].lin[zz-1],tmp) then
    mas[z].lin[zz-1]:=tmp;

                  if po_ch_num(mas[z].lin[zz+1],tmp) then
    mas[z].lin[zz+1]:=tmp;

                  if
    ((sislo(mas[z].lin[zz-1][1]))and(sislo(mas[z].lin[zz+1][1]))) then begin

                    zn:=mas[z].lin[zz][1];

                    if zn=’*’ then
    mas[z].lin[zz-1]:=umnozen(mas[z].lin[zz-1],mas[z].lin[zz+1])

                    else
    mas[z].lin[zz-1]:=delen(mas[z].lin[zz-1],mas[z].lin[zz+1]);

                      for m:=zz to mas[z].dl-2 do mas[z].lin[m]:=mas[z].lin[m+2];

                      mas[z].dl:=mas[z].dl-2;

                      poisk(z);

                      exit;

                  end;

                end;

         end;

         for zz:=1 to mas[z].dl-1 do begin

        ////////

                if ((mas[z].lin[zz]=’+’)or(mas[z].lin[zz]=’-‘))
    then begin

                  if po_ch_num(mas[z].lin[zz-1],tmp) then
    mas[z].lin[zz-1]:=tmp;

                  if po_ch_num(mas[z].lin[zz+1],tmp) then
    mas[z].lin[zz+1]:=tmp;

                    zn:=mas[z].lin[zz][1];

                    if zn=’+’ then
    mas[z].lin[zz-1]:=form1.sum(mas[z].lin[zz-1],mas[z].lin[zz+1])

                    else
    mas[z].lin[zz-1]:=form1.minus(mas[z].lin[zz-1],mas[z].lin[zz+1]);

                      for m:=zz to mas[z].dl-2 do
    mas[z].lin[m]:=mas[z].lin[m+2];

                      mas[z].dl:=mas[z].dl-2;

                      poisk(z);

                      exit;

                  end;

                end;

    ///////

        end;

      end;

    end;

    procedure vivod;

    var

      i:integer;

    begin

      form1.Memo3.Clear;

      for i:=1 to y do

        if mas[i].dl=4 then begin

         
    form1.Memo3.Lines.Add(mas[i].lin[1]+’=’+mas[i].lin[3]);

      end;

    end;

    procedure TForm1.Button1Click(Sender: TObject);

    var

      i,j:integer;

    begin

    zapolnenie;

      for j:=1 to y do

        for i:=1 to y do poisk(i);

        vivod;

    end;

    procedure TForm1.Button2Click(Sender: TObject);

    begin

     
    messagedlg(‘Îïåðàöèè
    ìíîãîêðàòíîé
    òî÷íîñòè’,mtinformation,[mbok],0);

    end;

    end.

    «