Материалы сайта
Это интересно
Разработка модели технологического процесса получения ребристых труб и ее апробация
ПРИЛОЖЕНИЕ Программа для расчета припусков на механическую обработку (язык программирования GI): Главная программа: CALL pri }c FR "M" mane$ } EX k% "GR.EXE" "SLD.KX" 1 1 33 78 "a" } rmax=309 rmin=19 PR "~c14m1" } PR "~c15" } MV 23 40 "" i%=3 "Наибольший размер детали " rmax "Наименьший размер детали " rmin "Продолжить работу " } PR "~c15" } MV 26 45 "Тип сплава" i%=1 "Черный нетермообрабатываемый" m1 "Черный термообрабатываемый" m2 "Цветной нетермообрабатываемый" m3 "Цветной термообрабатываемый" } GO m4 m1: ts=1 GO m5 m2: ts=2 GO m5 m3: ts=3 GO m5 m4: ts=4 m5: CALL pri }c DE 1 1 2 0 15 "Диапазон класса размерной" "точности отливки выбирается" "из таблицы 9 ГОСТ 26645-85" } k%=0 GBD p% "t9_"+mane$ k% "ngab>=" rmax } IF p% GO en }i CALL case }c PRINT "~x20y5X59Y9f1w" "~v_Класс размерной точности отливки:_bl7p34",krt$ } DE 1 1 3 0 15 "Допуск смещения формы отливки" "по плоскости разъема устанавливается" "по таблице 1 ГОСТ 26645-85 на уровне" "класса размерной точности отливки" "Допуск смещения, вызваный перекосом" "стержня устанавливается в диаметральном" "выражении по таблице 1 ГОСТ 26645-85 на" "1-2 класса точнее" } DE 9 40 2 0 15 "Класс размерной точности" "отливки выбирается из диапазона" "в зависимости от группы сложности" "(для данной отливки - 2 группа)" } krto%=9 MV 14 18 "Тип сплава" i%=2 "Класс размерной точности отливки: " krto% "Продолжить работу " } DE 31 29 4 0 14 "Нажмите любую клавишу..." } KEY s$ k%=0 GBD p% "t1" "nomr<=" nr } CALL kkrtt }c DE "Припуск на размер" nomr1 "состовляет" prips } k%=0 GBD p% "t1" "nr>=" nomr2 } CALL kkrtt }c DE "Припуск на размер" nomr1 "состовляет" prips } k%=0 GBD p% "t1" "nr>=" nomr2 } CALL kkrtt }c DE "Припуск на размер" nomr1 "состовляет" prips } IF p% <> 0 GO en }i ktnr$=krto% nomr=19 MV 19 20 "" i%=3 "Номинальный размер " nomr "Класс точности данного размера " ktnr$ "Продолжить работу " } CALL rr }c nomr1=nomr dop1=dop nomr=60 ktnr$=8 MV 19 20 "" i%=3 "Номинальный размер " nomr "Класс точности данного размера " ktnr$ "Продолжить работу " } CALL rr }c nomr2=nomr dop2=dop nomr=266 ktnr$=11т MV 19 20 "" i%=3 "Номинальный размер " nomr "Класс точности данного размера " ktnr$ "Продолжить работу " } CALL rr }c nomr3=nomr dop3=dop DE 31 29 4 0 14 "Нажмите любую клавишу..." } KEY s$ ; Пункт 2.2; d=rmin/rmax PRINT "~i" } DE 1 1 1 0 15 "Отношение максимального" "и минимального размера" "отливки" "" d "" } DE 6 20 2 0 15 "Диапазон степени коробления" "отливки определяется по" "таблице 10 ГОСТ 26645-85" } n%=0 GBD p% "t10" n% "div<=" d } IF p% THEN GO en }i FR "M" sk1$ sk2$ } IF ts=1 THEN sk$=sk1$ }i ELSE IF ts=2 THEN sk$=sk2$ }i ELSE IF ts=3 THEN sk$=sk1$ }i ELSE IF ts=4 THEN sk$=sk2$ }i }e }e }e }e DE 10 34 1 0 15 "Диапазон степени" "коробления отливки" "" sk$ "" } sko=5 MV 18 31 "" i%=2 "Степень коробления элементов отливки " sko "Продолжить работу " } ;Пункт 2.3; DE 19 48 2 0 15 "Допуск формы и расположения" "поверхностей отливки" "с учетом степени коробления" "определяется по таблице 2" "ГОСТ 26645-85" } nomr=nomr1 CALL rr1 } dopc1=dop MV 18 31 "" i%=2 "Степень коробления элементов отливки " sko "Продолжить работу " } nomr=nomr2 CALL rr1 } dopc2=dop MV 18 31 "" i%=2 "Степень коробления элементов отливки " sko "Продолжить работу " } nomr=nomr3 CALL rr1 } dopc3=dop DE 31 29 4 0 14 "Нажмите любую клавишу..." } KEY s$ PRINT "~i" } DE 1 1 5 0 15 "Общий допуск необходимо определить" "по таблице 16 ГОСТ 26645-85" } GBD p% "t16" } DE 1 1 5 0 15 "Степень точности поверхности выбираем" "по таблице 11 ГОСТ 26645-85 в соответствии" "c типом литья." } GBD p% "t11_"+mane$ k% "nq>=" rmax } IF p% GO en }i FR "M" q1$ q2$ q3$ q4$ } IF ts=1 THEN krt$=q2$ }i ELSE IF ts=2 THEN krt$=q4$ }i ELSE IF ts=3 THEN krt$=q1$ }i ELSE IF ts=4 THEN krt$=q3$ }i }e }e }e DE 9 25 2 0 15 "Диапазон cтепени точности поверхности" "" krt$ "" } stp=14 MV 14 37 "" i%=2 "Cтепени точности поверхности " stp "Продолжить работу " } DE 17 5 2 0 15 "Определяем вид" "окончательной " "обработки" } PR "~c10m14" } PR "~c11C13" } MV 20 26 "Квалитет Rz обработка " i%=1 " 16-17 Rz 320 обдирка " v10 " 14 Rz 100 черновая " v14 " 12 Rz 50 получистовая" v14 " 10-11 Rz 25 чистовая " v14 " 7-9 Rz 5 тонкая " } v10: v14: PR "~i" } DE 1 1 1 0 15 "Ряд припусков на механическую" "обработку определяют по " "таблице 14 ГОСТ26645-85" } GBD p% "t14" k% "stt>="stp } ;IF k% GO en }i; FR "M" rpr$ } DE 5 28 1 0 15 "Ряд припусков" "" rpr$ "" } prt%=5 PR "~c15m1" } MV 14 29 "" i%=2 "Ряд припуска " prt% "Продолжить работу " } GBD p% "t5" k% "rrr>="prt% } FR "M" minpr } DE 7 52 2 0 15 "Минимальный припуск" "определяем по таблице 5" "ГОСТ 26645-85" } DE 15 52 1 0 15 "Минимальный припуск" "равен ", minpr } DE 31 29 4 0 14 "Нажмите любую клавишу..." } KEY s$ CALL pri } us=1.0 MV 19 20 "" i%=3 "Номинальный размер " nomr "Процент усадки сплава " us "Продолжить работу " } usn=(nomr*us)/100 DE 13 29 1 0 15 "Допуск на усадку:" "" usn "" } DE "Общий допуск на сторону складывается" "из значений найденных в таблицы 16" "и вида окончательной механической обработки" "и ряда припуска отливки" } nomrr=nomr+dop+usn KEY q$ MV 1 1 "" i%=1 "Класс точности массы" klm "Продолжить " } en: }p Подпрограмма выбора типа литья: CALL pri }c mans1: PR "~i" } DE 1 1 8 0 14 ">>>>>>>>>>>>>>>>> 1 <<<<<<<<<<<<<<<<<<<" "Литье под давлением в металлические формы" "и по выжигаемым моделям с применением" "малотерморасширяющихся огнеупорных" "материалов (корунд,плавленный кварц и т.п.)" } DE 10 1 8 0 14 ">>>>>>>>>>>>>>>>>>> 2 <<<<<<<<<<<<<<<<<<<" "Литье по выжигаемым моделям с применением" "кварцевых огнеупорных материалов." } DE 17 1 8 0 14 ">>>>>>>>>>>>>>>>>>> 3 <<<<<<<<<<<<<<<<<<<<<" "Литье по выплавляемым моделям с применением" "кварцевых огнеупорных материалов." } DE 24 1 8 0 14 ">>>>>>>>>>>>>>>>>>> 4 <<<<<<<<<<<<<<<<<<<" "Литье под низким давлением и в кокиль без" "песчаных стержней." } DE 9 50 2 9 14 "Технологический" "процесс литья" } MV 15 54 "" i%=5 "1" mas1 "2" mas2 "3" mas3 "4" mas4 "Следующий" mans2 "Выход " } GO end mas1: mane$="1" GO end1 mas2: mane$="2" GO end1 mas3: mane$="3" GO end1 mas4: mane$="4" GO end1 mans2: PR "~i" } DE 1 1 8 0 14 ">>>>>>>>>>>>>>>>> 5 <<<<<<<<<<<<<<<<<<<<" "Литье в песчано-глинистые сырые формы из" "низковлажных (до 2.8%) высокопрочных (более" "160 кПа) смесей, с высоким однородным" "уплотнением до твердости не ниже 90 едениц." "Литье по газифицированным моделям в песчаные" " формы. " "Литье в формы,отвержденные в контакте с холодной" " оснасткой. " "Литье под низким давлением и в кокиль с песчаными" " стержнями. " "Литье в облицованный кокиль." } DE 16 1 8 0 14 ">>>>>>>>>>>>>>>>>>> 6 <<<<<<<<<<<<<<<<<<<<<" "Литье в песчано-глинистые формы из смесей с" "влажностью 2.8-3.5% и прочностью 120-160 кПа" "и уплотненностью не менее 80 ед." "Литье центробежное (внутренние поерхности)" "Литье в формы, отверждаемые в контакте" " с горячей оснасткой. " "Литье в вакуумно-пленочные песчаные формы." } DE 9 56 2 9 14 "Технологический" "процесс литья" } MV 15 59 "" i%=3 "5" mas5 "6" mas6 "Следующий" mans3 "Предыдущий" mans1 "Выход " } GO end mas5: mane$="5" GO end1 mas6: mane$="6" GO end1 mans3: PR "~i" } DE 1 1 8 0 14 ">>>>>>>>>>>>>>>> 7 <<<<<<<<<<<<<<<<<<" "Литье в песчано-глинистые сырые формы" "из смесей с влажностью от 3.5% до 4.5%" "и прочностью от 60 до 120 кПа с уровнем " "уплотнения до твердости не ниже 70 едениц." "" "Литье в оболочковые формы из" "термореактивных смесей." "" "Литье в формы, отверждаемые вне контакта" "с оснасткой без тепловой сушки." "" "Литье в песчано-глинистые подсушенные" " и сухие формы. " } DE 19 1 8 0 14 ">>>>>>>>>>>>>> 8 <<<<<<<<<<<<<<<<<<<<" "Литье в песчано-глинистые сырые формы" "из высоковлажных (более 4.5%), низкопрочных" "(до 60 кПа) смесей с низким уровнем" "уплотнения до твердости ниже 70 едениц." } DE 9 50 2 9 14 "Технологический" "процесс литья" } MV 15 53 "" i%=1 "7" mas7 "8" mas8 "Предыдущий" mans2 "Выход " } GO end mas7: mane$=7 GO end1 mas8: mane$="8" GO end1 end1: FW "M" mane$ } GI "ppo.gi" end: }p INC "wait.gi" Комплекс подпрограмм выбора по условию: INC "wait.gi" case: }c FR "M" ts1$ ts2$ ts3$ ts4$ } IF ts = 1 THEN krt$=ts1$ }i ELSE IF ts = 2 THEN krt$=ts4$ }i ELSE IF ts = 3 THEN krt$=ts1$ }i ELSE IF ts = 4 THEN krt$=ts3$ }i }e }e }e }s rr: }c n%=0 GBD p% "t1" n% "nr>=" nomr } IF p% <> 0 GO en }i FR "M" d6 d7t d7 d8 d9t d9 d10 d11t d11 d12 d13t d13 d14 d15 d16 } IF ktnr$ = "6" THEN dop=d6 }i ELSE IF ktnr$ = "7т" THEN dop=d7t }i ELSE IF ktnr$ = "7" THEN dop=d7 }i ELSE IF ktnr$ = "8" THEN dop=d8 }i ELSE IF ktnr$ = "9т" THEN dop=d9t }i ELSE IF ktnr$ = "9" THEN dop=d9 }i ELSE IF ktnr$ = "10" THEN dop=d10 }i ELSE IF ktnr$ = "11т" THEN dop=d11t }i ELSE IF ktnr$ = "11" THEN dop=d11 }i ELSE IF ktnr$ = "12" THEN dop=d12 }i ELSE IF ktnr$ = "13т" THEN dop=d13t }i ELSE IF ktnr$ = "13" THEN dop=d13 }i ELSE IF ktnr$ = "14" THEN dop=d14 }i ELSE IF ktnr$ = "15" THEN dop=d15 }i ELSE IF ktnr$ = "16" THEN dop=d16 }i }e }e }e }e }e }e }e }e }e }e }e }e }e }e DE 25 28 1 0 15 "Допуск размерной точности:" "для размера" nomr "будет" dop } }s rr1: }c n%=0 GBD p% "t2" n% "nrr>=" nomr } FR "M" dr5 dr6 dr7 dr8 dr9 dr10 dr11 } IF sko = 5 THEN dop=dr5 }i ELSE IF sko = 6 THEN dop=dr6 }i ELSE IF sko = 7 THEN dop=dr7 }i ELSE IF sko = 8 THEN dop=dr8 }i ELSE IF sko = 9 THEN dop=dr9 }i ELSE IF sko = 10 THEN dop=dr10 }i ELSE IF sko = 11 THEN dop=dr11 }i }e }e }e }e }e }e DE 22 20 1 0 15 "Допуск формы и расположения:" "для размера" nomr "будет" dop "" } }s kkrtt: }c IF ktnr$ = "6" THEN FR "M" prips"d6$" } }i ELSE IF ktnr$ = "7t" THEN FR "M" prips"d7t$" } }i ELSE IF ktnr$ = "7" THEN FR "M" prips"d7$" } }i ELSE IF ktnr$ = "8" THEN FR "M" prips"d8$" } }i ELSE IF ktnr$ = "9t" THEN FR "M" prips"d9t$" } }i ELSE IF ktnr$ = "9" THEN FR "M" prips"d9$" } }i ELSE IF ktnr$ = "10" THEN FR "M" prips"d10$" } }i ELSE IF ktnr$ = "11t" THEN FR "M" prips"d11t$" } }i ELSE IF ktnr$ = "11" THEN FR "M" prips"d11$" } }i ELSE IF ktnr$ = "12" THEN FR "M" prips"d12$" } }i ELSE IF ktnr$ = "13t" THEN FR "M" prips"d13t$" } }i ELSE IF ktnr$ = "13" THEN FR "M" prips"d13$" } }i ELSE IF ktnr$ = "14" THEN FR "M" prips"d14$" } }i ELSE IF ktnr$ = "15" THEN FR "M" prips"d15$" } }i ELSE IF ktnr$ = "16" THEN FR "M" prips"d16$" } }i }e }e }e }e }e }e }e }e }e }e }e }e }e }e }e }s Подпрограмма выбора серийности производства: CALL pri }c PR "~c14a3" } MV 13 25 "Серийность производства" i%=1 "Массовое " m1 "Крупносерийное " m1 "Серийное " m2 "Мелкосерийное " m2 "Единичное " } GO m2 m1: DE 28 22 11 15 0 "Выбираем металлическую модель" } GO m3 m2: DE 28 24 11 15 0 "Выбираем деревянную модель" } m3: EX k% "GR.EXE" "SLD_1_3.KX" 2 1 17 50 "a" } EX k% "GR.EXE" "VID3.GR" 2 51 17 78 } FILE "*.*" g$ }p Подпрограмма вывода авторских записей: pri: }c PR "~ic14x40Y35l35p40w" "(C) Дубовой В.В. & Каспревич П.В." } PR "~c15x1Y33" } }s DE 1 1 2 0 14 "text" } }p Программа рисования графика для вставки в Auto CAD 12 (язык программирования Auto LISP): (defun graf( / x y sp tmp temp1 temp3 f1 tmp1 step) ;открываю файл с данными (setq f1 (open "$$u$$.dan" "r")) (setq tmp 0);сбил nil со счетчика (setq sp nil) (setq temp1 (atoi (read-line f1))); извлекаю начальную температуру (setq temp3 (atoi (read-line f1))); извлекаю конечную температуру (setq sp (list (list (atoi (read-line f1)) (atof (read-line f1))))); начинаю список данных (while tmp (setq tmp1 (read-line f1)) (setq tmp (read-line f1)) (if tmp1 (setq sp (cons (list (atoi tmp) (atof tmp1)) sp))) ); end while (close f1) (setq sp (reverse sp)) ;(COMMAND "PLINE" '(temp3 0) '(temp1 0) ) (COMMAND "PLINE" (nth 1 sp)) (setq step 2) (repeat (- (length sp) 1) (COMMAND (nth step sp)) (setq step (1+ step)) ); end repeat ) (defun c:kurs ( / ) (graf) ) Программы для расчета скорости затвердевания и относительной скорости затвердевания (язык программирования Turbo Pascal 7.0): Начальные данные для расчета: Удельная теплоемкость отливки C1:=838; Дж/кг(К Плотность расплава (1:=7000; кг/м3 Приведенный размер отливки Ro:=0.004; м Температура заливки Tзал:=1643; (K Темперетура ликвидуса Tликв:=1473; (K Масса отливки Co:=40; кг Коэффициент тепловой аккумуляции формы Bф:=1377; [pic] Температура формы Tф:=293; (K Удельная теплота кристаллизации отливки Le:=215Е3; Дж/кг Плотность отливки (3:=7500; кг/м3 Температура эвтектики Tэвт:=1470; (K {1 программа} uses crt; const A=3.7; m=0.38; type point = record X,Y:integer; end; var Co:real; VremZal,TempZal,Tn,Tf,Bf,Tlikv,Ro1,Ro,C1:real; T1,T3:real; Le,Ro3,Tevt,U:real; t:Longint; fil:text; spis:array[1..4] of point; {Функция возведения в дробную степень: вход основание степени,сама степень} function pow(osnovanie,stepen:real):real; begin pow:=exp(stepen*ln(osnovanie)); end; procedure out(per:real); begin Writeln(' ',per); end; begin {********************************************************} writeln; writeln; {Время заполнения формы металлом} VremZal:=A*pow(Co,M); Tn:=(TempZal+TLikv)/2; T1:=sqr((C1*Ro1*Ro*(Tn-Tlikv)/(1.128*Bf*(Tn-Tf)))+sqrt(VremZal)); T3:=sqr(Le*Ro3*Ro/(1.13*Bf*(Tevt-Tf))+sqrt(T1)); out(t1); out(t3); {Линейная скорость затвердевания эквивалентной плоскости отливки} assign(fil,'$$u$$.dan'); rewrite(fil); t:=round(t1); writeln(fil,round(t1)); writeln(fil,round(t3)); while t<=round(t3) do begin U:=Bf*Tevt/(Le*Ro3*Sqrt(pi*t)); writeln(fil,U*500000:2:2); writeln(fil,t); writeln(u:2:8,' текущее ',t,' всего до ',round(t3)); inc(t); end; close(fil); assign(fil,'params.dat'); rewrite(fil); {spis[1].X:=round(t3+20); spis[1].Y:=round(Bf*Tevt/(Le*Ro3*Sqrt(pi*t3)))*500000-20; spis[2].X:=round(t1-20); spis[2].Y:=spis[1].Y; spis[3].X:=spis[2].X; spis[3].Y:=round(Bf*Tevt/(Le*Ro3*Sqrt(pi*t1)))*500000+20; spis[4].X:=spis[1].X; spis[4].Y:=spis[3].Y; writeln(fil,spis[1].X); writeln(fil,spis[1].Y); writeln(fil,spis[2].X); writeln(fil,spis[2].Y); writeln(fil,spis[3].X); writeln(fil,spis[3].Y); writeln(fil,spis[4].X); writeln(fil,spis[4].Y);} writeln(fil,'Температура конечная ',round(t3)); writeln(fil,'Температура начальная ',round(t1)); writeln(fil,'U верхнее ', Bf*Tevt/(Le*Ro3*Sqrt(pi*t1))); writeln(fil,'U нижнее ', Bf*Tevt/(Le*Ro3*Sqrt(pi*t3))); close(fil); end. {2 программа} uses crt; const A=3.7; m=0.38; k=0; var Co:real; VremZal,TempZal,Tn,Tf,Bf,Tlikv,Ro1,Ro,C1:real; T1,T3,x:real; Le,Ro3,Tevt,Ue:real; t:Longint; fil:text; {Функция возведения в дробную степень: вход основание степени,сама степень} function pow(osnovanie,stepen:real):real; begin pow:=exp(stepen*ln(osnovanie)); end; procedure out(per:real); begin Writeln(' ',per); end; begin {Начальные данные} {Удельная теплоемкость отливки Дж/Кг*К} C1:=838; {Плотность расплава Кг/м3} Ro1:=7000; {Приведенный размер отливки} Ro:=0.004; {Температура заливки} TempZal:=1643; {K.} {Темперетура ликвидуса} Tlikv:=1473; {K.} {Co Масса отливки } Co:=40; {кг.} {Коэффициент тепловой аккумуляции формы} Bf:=1377; {Температура формы } Tf:=293; {K.} {Удельная теплота кристаллизации отливки} Le:=215e3; {Дж/Кг} {Плотность отливки} Ro3:=7500; {Температура эвтектики} TEvt:=1470; {K.} {******************************************************} writeln; writeln; {Время заполнения формы металлом} VremZal:=A*pow(Co,M); Tn:=(TempZal+TLikv)/2; T1:=sqr((C1*Ro1*Ro*(Tn-Tlikv)/(1.128*Bf*(Tn-Tf)))+sqrt(VremZal)); T3:=sqr(Le*Ro3*Ro/(1.13*Bf*(Tevt-Tf))+sqrt(T1)); assign(fil,'$$u$$2.dan'); rewrite(fil); writeln(round(t1)); writeln(round(t3)); x:=0; while x<=Ro do begin {Линейная скорость затвердевания эквивалентной плоскости отливки} Ue:=2*(k+1)*sqr(Bf*Tevt)/(Ro*sqr(sqrt(pi)*Le*Ro3))* (1/(1+{-pow(}x/Ro{,k+1)}+(1.13*(k+1)*Bf*Tevt/(Le*Ro3*Ro))*sqrt(T1))); {Ue:=2*(k+1)*sqr(Bf*Tevt)/(Ro*sqr(sqrt(pi)*Le*Ro3))* (1/(1+pow(x/Ro,k+1)+(1.13*(k+1)*Bf*Tevt/(Le*Ro3*Ro))*sqrt(T1)));} writeln(fil,ue*100000:2:3); writeln(ue*100000:2:8,' текущее ',x:2:6,' всего до ',Ro:2:6); x:=x+0.0001; end; close(fil); end.