Учебная работа № /7972. «Курсовая Нормирование точности соединений
Учебная работа № /7972. «Курсовая Нормирование точности соединений
Содержание:
Содержание
Задание
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.
Форма заказа готовой работы
Выдержка из похожей работы
формула, которую надо вычислить, а значение.
Количество строк введенных в поле
ввода должно быть не более 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 lb
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.
«