Учебная работа № /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-ФЗ
Я ознакомился с Пользовательским соглашением и даю согласие на обработку своих персональных данных.


Введите символы с изображения:

captcha

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

Можно сказать – если 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.

«