Дослідження можливостей інтеграції Delphi та AutoCAD при тривимірному моделюванні
Призначення і основні характеристики систем автоматизації конструкторської документації. Основні методи створення графічних зображень і геометричних об’єктів. Методи побудови та візуалізація тривимірних об’єктів. Опис інтерфейсу користувача системи.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 26.10.2012 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
відключена від телефонної лінії; при нагріві навколишнього середовища до
критичної температури оповісник спрацьовує і підключає релейну приставку до телефонної лінії, внаслідок чого на комутаторі лунає тривожний сигнал.
Різні тверді, рідкі і газоподібні речовини, вживані для гасіння пожеж, повинні володіти високим ефектом гасіння, швидко припиняти горіння при відносно малій витраті, не заподіювати шкоди організму людини при використовуванні і зберіганні, не надавати шкідливої дії на предмети і матеріали при гасінні пожеж, бути дешевими.
В якості вогнегасних речовин використовують воду, інертні гази, хімічну і легко-механічну піну, тверду вуглекислоту, пісок, спеціальні флюси.
Воду не застосовують для гасіння пожеж електричних установок під напругою (оскільки вона електропровідна), рідин, що не змішуються з водою, цінного устаткування, бібліотек.
Вуглекислий газ застосовується у вогнегасниках і стаціонарних установках. Він використовується, коли застосування води сприяє розповсюдженню горіння або вибуху, або може викликати пошкодження устаткування. Цей газ токсичний. Оскільки вуглекислота не струмопровідна, її використовують для гасіння пожеж електричних установок під напругою. Тверда зневоднена вуглекислота при випаровуванні з поверхні об'єктів, що горять, охолоджує їх і знижує вміст кисню у вогнищі пожежі.
При гасінні пожеж легкозаймистих рідин, електроустаткуванні, цінного лабораторного устаткування і ін. застосовують хімічні піни. Піна є сумішшю газу з рідиною. Піна, розтікаючись по поверхні рідини, що горить, охолоджує і ізолює її від полум'я, перешкоджає виходу пари рідини в зону горіння, зменшує випаровування рідини.
Для гасіння пожеж на початкових стадіях широко застосовуються вогнегасники. По вигляду використовуваної вогнегасної речовини вогнегасники підрозділяються на наступні основні групи. Пінні вогнегасники, застосовуються для гасіння рідин, що горять, різних матеріалів, конструктивних елементів і устаткування, окрім електроустаткування, що знаходиться під напругою.
Газові вогнегасники застосовуються для гасіння рідких і твердих речовин, а також електроустановок, що знаходяться під напругою.
Рідинні вогнегасники дають струмінь водного розчину солей, пінні - хімічної піни (рідкої або густої), газові - вуглекислого газу (звично в суміші з сніжною вуглекислотою і ін.), сухі - порошкоподібної суміші мінеральних солей (на основі бікарбонату натрію).
Справність вогнегасників періодично перевіряють.
У виробничих приміщеннях комп'ютерних класів застосовуються головним чином вуглекислотні вогнегасники, перевага яких є висока ефективність гасіння пожежі, збереження електронного устаткування, діелектричні властивості вуглекислого газу, що дозволяє використовувати ці вогнегасники навіть у тому випадку, коли не вдається знеструмити електроустановку відразу.
Для виявлення початкової стадії загоряння і сповіщення служби пожежної охорони використовують системи автоматичної пожежної сигналізації (АПС) . Крім того, вони можуть самостійно приводити в дію установки пожежегасіння, коли пожежа ще не досягла великих розмірів. Системи АПС складаються з пожежників оповісників, ліній зв'язку і приймальних пультів (станцій) .
Ефективність застосування систем АПС визначається правильним вибором типу оповісників і місць їх установки. При виборі пожежників оповісників необхідно враховувати конкретні умови їх експлуатації: особливості приміщення і повітряного середовища, наявність пожежних матеріалів, характер можливого горіння, специфіку технологічного процесу і т.п. Відповідно до "Типових правил пожежної безпеки" зали ЕОМ, приміщення для зовнішніх пристроїв, що запам'ятовують, підготовки даних, сервісної апаратури, архівів, копіювально-розмножувального устаткування і т.п. необхідно обладнати димовими пожежниками оповісниками. У цих приміщеннях на початку пожежі при горінні різних пластмасових, ізоляційних матеріалів і паперових виробів виділяється значна кількість диму і мало теплоти.
Об'єкти комп'ютерних класів окрім АПС необхідно обладнати установками стаціонарної автоматичної пожежегасіння. Найбільш доцільно застосовувати в комп'ютерних класах установки газового гасіння пожежі, дія яких заснована на швидкому заповненні приміщення вогнегасною газовою речовиною з різким зниженням кисню в повітрі.
ВИСНОВКИ
Автоматизація проектування -- напрям сучасної науки і техніки, що інтенсивно розвивається. Системи автоматизованого проектування (САПР) стають однією з складових частин гнучких виробничих систем і гнучких автоматизованих виробництв. Система AutoCAD є однією з найпопулярнішої в світі систем автоматичного проектування. AutoCAD є могутнім графічним ядром, на якому базуються багато прикладних пакетів як і від самої фірми AutoDesk, так і від незалежних виробників.
Все що потрібно всім кінцевим користувачам включити до складу системи неможливо. Тому фірма AutoDesk забезпечила базову систему засобами розробки прикладних систем. Використовуючи ці засоби, можна створювати програми для автоматизації роботи в різних напрямах інженерної діяльності, не залежно від регіональних і галузевих стандартів.
Метою даної роботи є дослідження об'єктної моделі та розробка програмного забезпечення на мові Delphi, яке призначене для автоматизації креслення тривимірних об'єктів в середі AutoCAD. Система базується на використанні технології COM. Об'єктна модель AutoCAD - це структура його документів, об'єктів креслення, їх властивостей і методів. Всі ці об'єкти описані в системі COM і можуть бути використані будь-яким мовам програмування.
Delphі дозволяє швидко й ефективно розробляти найрізноманітніші інформаційні системи, має розвинуті можливості по створенню інтерфейсу користувача, широкий набір функцій, методів і властивостей для вирішення прикладних розрахунково-обчислювальних задач, особливо при роботі з базами даних. Тому використання саме цієї мови програмування для розробки елементів САПР є актуальним.
Розроблена система може розглядатися в якості довідника, який містить збірку „готових рецептів” для вирішення конкретних конструкторських завдань. Опис структури колекцій, їх методів та властивостей, візуальне представлення результатів виконання фрагментів коду робить цю систему дуже корисною при вивченні особливостей інтеграції Delphi та AutoCAD при тривимірному моделюванні.
СПИСОК ЛІТЕРАТУРИ
1. Бугрименко Г. А., Лямке В. Н., Шейбоксне Э.-К. С. Автоматизация конструирования на ПЭВМ с использованием системы AutoCAD. - М.: Машиностроение, 1993. - 336 с.
2. Джамп Д. AutoCAD. Программирование. Пер. с англ. - М.: Радио и связь, 1992. - 336 с.
3. Долин П.А. Основы техники безопасности в электроустановках. - М.: Энергоатомиздат, 1984.
4. Жирков С.В. Shareware: профессиональная разработка и продвижение программ. - СПб.: БХВ-Петсрбург, 2003. - 320 с.
5. Елманова Н., Трепалин С., Тенцер А. Delphi и технология COM.
6. Кречко Ю. A. AutoCAD: программирование и адаптация, - М. ДИАЛОГ-МИФИ, 1995.- 240 с.
7. Орлов И.А. Эксплуатация и ремонт ЭВМ, организация работы ВЦ. Москва -1989г.
8. Погорелов В.И. AutoCAD 2005 для начинающих. - СПб.:БХВ-Петербург, 2004.
9. Полещук Н.Н. Visual LISP и секреты адаптации AutoCAD, - СПб.: БХВ-Петербург, 2004,- 576 с
10. Полещук Н.Н. AutoCAD 2004: разработка приложений и адаптация. СПб.: БХВ-Петербург, 2004. - 624 с.
11. Романычева Э. Т., Соколова Т. Ю. Компьютерные технологии инженерной графики в среде AutoCAD 2000. AutoLISP. Учебное пособие. - М.: ДМК, 2000.
12. Романычева Э. Т., Соколова Т. Ю., Шандурина Г. Ф. Инженерная и компьютерная графика. - 2-е изд., перераб. - М. ДМК Пресс, 2001. - 592 с, ил. (Серия «Проектирование»).
13. Романычева Э. Т., Трошина Т. Ю. AutoCAD 2000. - М.: ДМК, 1999.
14. Свет В.Л, AutoCAD: язык макрокоманд и создание кнопок, - СПб.: БХВ-Петербург, 2004. - 320 с.
15. Хейфенц А.Л. Инженерная компьютерная графика. AutoCAD. - СПб.: БХВ-Петербург, 2005.
16. Хейфенц А.Л., Логиновский А.Н., Буторина И.В. 3D-технологии построения чертежа. AutoCAD. - СПб.: БХВ-Петербург, 2005.
17. Хювёнен Э., Сеппянен Й. Мир Лиспа. В 2-х т. Т. 1: Введение в язык Лисп и функциональное программирование. Пер. с финск. М.: Мир, 1990, 447 с.
18. Чуприн А.И. AutoCAD 2005. Лекции и упражнения. - М.:ООО «ДиаСофтЮП», 2005.
19. Шупрута В. В. Delphi 2005. Учимся программировать.
20. j@alba.ua - адрес автора
21. http://www.csoft.ru // Сайт компании Csoft
22. http://www.ad.cctpu.edu.ru/SAPR/SAPR_03/obzor1.htm
23. http://www.dwg.ru // Материалы для проектирования
24. http://www.autodesk.ru // AutoDesk - Технология для инноваций
25. http://www.cad.dp.ua // Сайт поддержки пользователей САПР под редакцией Виктора Ткаченко
26. http://cadhouse.nm.ru // Хижина конструктора
27. http://vbamodel.narod.ru // Объектная модель AutoCAD
28. http://www.caduser.ru // Информационный портал для профессионалов в области САПР
ДОДАТОК А
Вихідний текст файлів системи
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,comobj, StdCtrls, ColorGrd, OleCtrls, SHDocVw, ExtCtrls, Buttons,
ComCtrls,uautocad;
type
TForm1 = class(TForm)
Button2: TButton;
Panel2: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
RadioGroup1: TRadioGroup;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
P_rotate3d: TPanel;
Panel3: TPanel;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
CheckBox1: TCheckBox;
WebBrowser1: TWebBrowser;
P_box: TPanel;
Label1: TLabel;
Label2: TLabel;
x_b: TEdit;
Label3: TLabel;
y_b: TEdit;
Label4: TLabel;
z_b: TEdit;
Label5: TLabel;
b_l: TEdit;
Label6: TLabel;
b_w: TEdit;
Label7: TLabel;
b_h: TEdit;
cub: TCheckBox;
RadioGroup2: TRadioGroup;
RadioGroup3: TRadioGroup;
Label8: TLabel;
cbColors: TComboBox;
chbShowColorValues: TCheckBox;
P_s: TPanel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label15: TLabel;
x_s: TEdit;
y_s: TEdit;
z_s: TEdit;
Radius: TEdit;
P_cyl: TPanel;
Label13: TLabel;
Label14: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
x_cyl: TEdit;
y_cyl: TEdit;
z_cyl: TEdit;
r_cyl: TEdit;
Label19: TLabel;
Label20: TLabel;
h_cyl: TEdit;
P_con: TPanel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
x_con: TEdit;
y_con: TEdit;
z_con: TEdit;
rad_con: TEdit;
height_con: TEdit;
P_wedge: TPanel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
x_w: TEdit;
y_w: TEdit;
z_w: TEdit;
wedge_l: TEdit;
wedge_w: TEdit;
wedge_h: TEdit;
cub_w: TCheckBox;
P_tor: TPanel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
x_t: TEdit;
y_t: TEdit;
z_t: TEdit;
rad_tor: TEdit;
rad_tube: TEdit;
Label40: TLabel;
Label41: TLabel;
Combo_vibor: TComboBox;
Label42: TLabel;
RadioGroup4: TRadioGroup;
Panel1: TPanel;
Label43: TLabel;
combo_vibor2: TComboBox;
Label46: TLabel;
t_Angle: TEdit;
Label44: TLabel;
Osi_list: TComboBox;
P_mirror3d: TPanel;
os_list_mir: TComboBox;
Label45: TLabel;
p_slice: TPanel;
Label47: TLabel;
os_list_s: TComboBox;
both: TCheckBox;
procedure Button2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure cubClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure RadioGroup3Click(Sender: TObject);
procedure cbColorsDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
procedure chbShowColorValuesClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cub_wClick(Sender: TObject);
procedure RadioGroup4Click(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
FShowColorValues: Boolean;
procedure PopulateColorsList;
public
{ Public declarations }
end;
var
Form1: TForm1;
a,c1,b,v,sf,con,t,wedge,cyl,b1,sf1,con1,cyl1,t1,wedge1,b2,sf2,wedge2,cyl2,con2,t2:variant;
s,url:string;
f,l,w,h,rad,r_c,h_c,r_con,h_con,l_w,w_w,h_w,r_tor,r_tube,angle:double;
implementation
{$R *.dfm}
procedure TForm1.PopulateColorsList;
var
i: Integer;
begin
with cbColors do
begin
Items.BeginUpdate;
try
Clear;
for i:= 0 to 256 do
Items.Add(IntToStr(i));
ItemIndex:= 0;
finally
Items.EndUpdate;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var p1,p2,u:variant;
begin
b.rotate3d(c1,p2,30);
b.color:=5;
a.activedocument.sendcommand('shademode у'+#13);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
a:=CreateOleObject('Autocad.application');
a.visible:=true;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
var p1,p2,z,p3:variant;
begin
if PageControl1.ActivePageIndex=0 then
case RadioGroup1.ItemIndex of
0: begin
c1:=VarArrayCreate([0,2], varDouble);
try
c1[0]:=strtofloat(x_b.Text); c1[1]:=strtofloat(y_b.Text); c1[2]:=strtofloat(z_b.Text);
l:=strtofloat(b_l.Text);
if cub.Checked then
begin
w:=l; h:=l;
end else
begin
w:=strtofloat(b_w.Text);
h:=strtofloat(b_h.Text);
end;
except
showmessage('Параметры заданы неверно!');
exit;
end;
b:=a.activedocument.ModelSpace.addbox(c1,l,w,h);
Combo_vibor.Items.Add('Ящик');
Combo_vibor2.Items.Add('Ящик');
end;
1:
begin
c1:=VarArrayCreate([0,2], varDouble);
try
c1[0]:=strtofloat(x_s.Text); c1[1]:=strtofloat(y_s.Text); c1[2]:=strtofloat(z_s.Text);
rad:=strtofloat(radius.Text);
except
showmessage('Параметры заданы неверно!');
exit;
end;
sf:=a.activedocument.ModelSpace.addSphere(c1,rad);
Combo_vibor.Items.Add('Шар');
Combo_vibor2.Items.Add('Шар');
end;
2: begin
c1:=VarArrayCreate([0,2], varDouble);
try
c1[0]:=strtofloat(x_cyl.Text);
c1[1]:=strtofloat(y_cyl.Text); c1[2]:=strtofloat(z_cyl.Text);
r_c:=strtofloat(r_cyl.Text);
h_c:=strtofloat(h_cyl.Text);
except
showmessage('Параметры заданы неверно!');
exit;
end;
cyl:=a.activedocument.ModelSpace.AddCylinder(c1,r_c,h_c);
Combo_vibor.Items.Add('Цилиндр');
Combo_vibor2.Items.Add('Цилиндр');
end;
3: begin //conus
c1:=VarArrayCreate([0,2], varDouble);
try
c1[0]:=strtofloat(x_con.Text); c1[1]:=strtofloat(y_con.Text); c1[2]:=strtofloat(z_con.Text);
r_con:=strtofloat(rad_con.Text);
h_con:=strtofloat(height_con.Text);
except
showmessage('Параметры заданы неверно!');
exit;
end;
con:=a.activedocument.ModelSpace.AddCone(c1,r_con,h_con);
Combo_vibor.Items.Add('Конус');
Combo_vibor2.Items.Add('Конус');
end;
4: begin //wedge
c1:=VarArrayCreate([0,2], varDouble);
try
c1[0]:=strtofloat(x_w.Text); c1[1]:=strtofloat(y_w.Text); c1[2]:=strtofloat(z_w.Text);
l_w:=strtofloat(wedge_l.Text);
if cub_w.Checked then
begin
w_w:=l_w; h_w:=l_w;
end else
begin
w_w:=strtofloat(wedge_w.Text);
h_w:=strtofloat(wedge_h.Text);
end;
except
showmessage('Параметры заданы неверно!');
exit;
end;
wedge:=a.activedocument.ModelSpace.addwedge(c1,l_w,w_w,h_w);
Combo_vibor.Items.Add('Клин');
Combo_vibor2.Items.Add('Клин');
end;
5://tor
begin
c1:=VarArrayCreate([0,2], varDouble);
try
c1[0]:=strtofloat(x_t.Text); c1[1]:=strtofloat(y_t.Text); c1[2]:=strtofloat(z_t.Text);
r_tor:=strtofloat(rad_tor.Text);
r_tube:=strtofloat(rad_tube.Text);
except
showmessage('Параметры заданы неверно!');
exit;
end;
t:=a.activedocument.ModelSpace.addtorus(c1,r_tor,r_tube);
Combo_vibor.Items.Add('Тор');
Combo_vibor2.Items.Add('Тор');
end;
end; //case
if PageControl1.ActivePageIndex=1 then //цвет
try
if Combo_vibor.Text='Ящик' then
b.color:= cbColors.ItemIndex else
if Combo_vibor.Text='Шар' then
sf.color:= cbColors.ItemIndex else
if Combo_vibor.Text='Цилиндр' then
cyl.color:= cbColors.ItemIndex else
if Combo_vibor.Text='Конус' then
con.color:= cbColors.ItemIndex else
if Combo_vibor.Text='Клин' then
wedge.color:= cbColors.ItemIndex else
if Combo_vibor.Text='Тор' then
t.color:= cbColors.ItemIndex else
exit;
except
end;
if PageControl1.ActivePageIndex=2 then
case RadioGroup4.ItemIndex of
0: begin
try
angle:=strtofloat(t_Angle.Text)*pi/180;
except
showmessage('Параметры заданы неверно!');
exit;
end;
if Combo_vibor2.Text='Ящик' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=b.Centroid;
z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
case Osi_list.ItemIndex of
0:begin p2[0]:=z[0]+10; p2[1]:=z[1]; p2[2]:=0; end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=0; end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=10; end;
end; //case
b.rotate3d(z,p2,angle)
end else
if Combo_vibor2.Text='Шар' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=sf.Centroid;
z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
case Osi_list.ItemIndex of
0:begin p2[0]:=z[0]+10; p2[1]:=z[1]; p2[2]:=0; end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=0; end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=10; end;
end; //case
sf.rotate3d(z,p2,angle)
end
else
if Combo_vibor2.Text='Цилиндр' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=cyl.Centroid;
z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
case Osi_list.ItemIndex of
0:begin p2[0]:=z[0]+10; p2[1]:=z[1]; p2[2]:=0; end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=0; end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=10; end;
end; //case
cyl.rotate3d(z,p2,angle)
end
else
if Combo_vibor2.Text='Конус' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=con.Centroid;
z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
case Osi_list.ItemIndex of
0:begin p2[0]:=z[0]+10; p2[1]:=z[1]; p2[2]:=0; end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=0; end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=10; end;
end; //case
con.rotate3d(z,p2,angle)
end
else
if Combo_vibor2.Text='Клин' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=wedge.Centroid;
z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
case Osi_list.ItemIndex of
0:begin p2[0]:=z[0]+10; p2[1]:=z[1]; p2[2]:=0; end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=0; end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=10; end;
end; //case
wedge.rotate3d(z,p2,angle)
end
else
if Combo_vibor2.Text='Тор' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=t.Centroid;
z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
case Osi_list.ItemIndex of
0:begin p2[0]:=z[0]+10; p2[1]:=z[1]; p2[2]:=0; end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=0; end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=10; end;
end; //case
t.rotate3d(z,p2,angle)
end
else
exit;
end;//case
1: begin //mirror
if Combo_vibor2.Text='Ящик' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=b.Centroid;
z[0]:=z[0]+l/2; z[1]:=z[1]+w/2; z[2]:=h/2;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
case os_list_mir.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
end;
end; //case
b1:=b.mirror3d(z,p2,p1);
end else
if Combo_vibor2.Text='Шар' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=sf.Centroid;
z[0]:=z[0]+rad; z[1]:=z[1]+rad; z[2]:=rad;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
case os_list_mir.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
end;
end; //case
sf1:=sf.mirror3d(z,p2,p1);
end
else
if Combo_vibor2.Text='Цилиндр' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=cyl.Centroid;
z[0]:=z[0]+r_c; z[1]:=z[1]+r_c; z[2]:=h_c;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
case os_list_mir.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
end;
end; //case
cyl1:=cyl.mirror3d(z,p2,p1);
end
else
if Combo_vibor2.Text='Конус' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=con.Centroid;
z[0]:=z[0]+r_con; z[1]:=z[1]+r_con; z[2]:=h_con;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
case os_list_mir.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
end;
end; //case
con1:=con.mirror3d(z,p2,p1);
end
else
if Combo_vibor2.Text='Клин' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=wedge.Centroid;
z[0]:=z[0]+l/2; z[1]:=z[1]+w/2; z[2]:=h/2;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
case os_list_mir.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
end;
end; //case
wedge1:=wedge.mirror3d(z,p2,p1);
end
else
if Combo_vibor2.Text='Тор' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=t.Centroid;
z[0]:=z[0]+r_tor; z[1]:=z[1]+r_tor; z[2]:=r_tube;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
case os_list_mir.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
end;
end; //case
t1:=t.mirror3d(z,p2,p1);
end
else
exit;
end;//case}
2: begin //slice
if Combo_vibor2.Text='Ящик' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=b.Centroid;
z[0]:=z[0]; z[1]:=z[1]; z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
p3:=VarArrayCreate([0,2], varDouble);
case os_list_s.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]; p3[2]:=z[2]-h/3;
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
p3[0]:=z[0]+l/3; p3[1]:=z[1]; p3[2]:=z[2];
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]+w/3; p3[2]:=z[2];
end;
end; //case
b2:=b.SliceSolid(z,p2,p1,both.Checked);
if both.Checked then
b2.move(z,p3);
end else
if Combo_vibor2.Text='Шар' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=sf.Centroid;
z[0]:=z[0]; z[1]:=z[1]; z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
p3:=VarArrayCreate([0,2], varDouble);
case os_list_s.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]; p3[2]:=z[2]-rad/3;
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
p3[0]:=z[0]+rad/3; p3[1]:=z[1]; p3[2]:=z[2];
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]+rad/3; p3[2]:=z[2];
end;
end; //case
sf2:=sf.SliceSolid(z,p2,p1,both.Checked);
if both.Checked then sf2.move(z,p3);
end
else
if Combo_vibor2.Text='Цилиндр' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=cyl.Centroid;
z[0]:=z[0]; z[1]:=z[1]; z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
p3:=VarArrayCreate([0,2], varDouble);
case os_list_s.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]; p3[2]:=z[2]-h_c/3;
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
p3[0]:=z[0]+r_c/2; p3[1]:=z[1]; p3[2]:=z[2];
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]+r_c/2; p3[2]:=z[2];
end;
end; //case
cyl2:=cyl.SliceSolid(z,p2,p1,both.Checked);
if both.Checked then cyl2.move(z,p3);
end
else
if Combo_vibor2.Text='Конус' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=con.Centroid;
z[0]:=z[0]; z[1]:=z[1]; z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
p3:=VarArrayCreate([0,2], varDouble);
case os_list_s.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]; p3[2]:=z[2]-h_con/3;
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
p3[0]:=z[0]+r_con/3; p3[1]:=z[1]; p3[2]:=z[2];
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]+r_con/3; p3[2]:=z[2];
end;
end; //case
con2:=con.SliceSolid(z,p2,p1,both.Checked);
if both.Checked then con2.move(z,p2);
end
else
if Combo_vibor2.Text='Клин' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=wedge.Centroid;
z[0]:=z[0]; z[1]:=z[1]; z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
p3:=VarArrayCreate([0,2], varDouble);
case os_list_s.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]; p3[2]:=z[2]-h_w/3;
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
p3[0]:=z[0]+l_w/3; p3[1]:=z[1]; p3[2]:=z[2];
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]+w_w/3; p3[2]:=z[2];
end;
end; //case
wedge2:=wedge.SliceSolid(z,p2,p1,both.Checked);
if both.Checked then wedge2.move(z,p3);
end
else
if Combo_vibor2.Text='Тор' then
begin
z:=VarArrayCreate([0,2], varDouble);
z:=t.Centroid;
z[0]:=z[0]; z[1]:=z[1]; z[2]:=0;
p2:=VarArrayCreate([0,2], varDouble);
p1:=VarArrayCreate([0,2], varDouble);
p3:=VarArrayCreate([0,2], varDouble);
case os_list_s.ItemIndex of
0:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]+50; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]; p3[2]:=z[2]-r_tube;
end;
1:begin p2[0]:=z[0]; p2[1]:=z[1]+10; p2[2]:=z[2];
p1[0]:=z[0]; p1[1]:=z[1]; p1[2]:=z[2]+10;
p3[0]:=z[0]+r_tor; p3[1]:=z[1]; p3[2]:=z[2];
end;
2:begin p2[0]:=z[0]; p2[1]:=z[1]; p2[2]:=z[2]+10;
p1[0]:=z[0]+10; p1[1]:=z[1]; p1[2]:=z[2];
p3[0]:=z[0]; p3[1]:=z[1]+r_tor; p3[2]:=z[2];
end;
end; //case
t2:=t.SliceSolid(z,p2,p1,both.Checked);
if both.Checked then t2.move(z,p3);
end
else
exit;
end;//case}
end; //case
a.update;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
panel2.Visible:=false;
PageControl1.Top:=0;
Panel3.Top:=PageControl1.Top+PageControl1.Height;
form1.ClientHeight:=PageControl1.Height+Panel3.Height;
end else
begin
panel2.Visible:=true;
PageControl1.Top:=Panel2.Height;
Panel3.Top:=Panel2.Height+PageControl1.Height;
form1.ClientHeight:=panel2.Height+ PageControl1.Height+Panel3.Height;
end;
end;
procedure TForm1.cubClick(Sender: TObject);
begin
if cub.Checked then
begin
b_w.Enabled:=false;
b_h.Enabled:=false;
b_w.Color:=clGray;
b_h.Color:=clGray;
end
else
begin
b_w.Enabled:=true;
b_h.Enabled:=true;
b_w.Color:=clWhite;
b_h.Color:=clWhite;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
s:=ExtractFilePath(Application.ExeName)+'html\';
WebBrowser1.Navigate(s+'main.htm');
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
var s2:string;
begin
s2:=ExtractFilePath(Application.ExeName)+'html\';
if not CheckBox1.Checked then
WebBrowser1.Navigate(s2+'3d\'+inttostr(RadioGroup1.ItemIndex)+'.htm');
case RadioGroup1.ItemIndex of
0: begin
P_box.Visible:=true;
p_s.Visible:=false;
P_cyl.Visible:=false;
P_con.Visible:=false;
p_wedge.Visible:=false;
p_tor.Visible:=false
end;
1: begin
P_box.Visible:=false;
p_s.Visible:=true;
P_cyl.Visible:=false;
P_con.Visible:=false;
p_wedge.Visible:=false;
p_tor.Visible:=false
end;
2:begin
P_box.Visible:=false;
p_s.Visible:=false;
P_cyl.Visible:=true;
P_con.Visible:=false;
p_wedge.Visible:=false;
p_tor.Visible:=false
end;
3:begin
P_box.Visible:=false;
p_s.Visible:=false;
P_cyl.Visible:=false;
P_con.Visible:=true;
p_wedge.Visible:=false;
p_tor.Visible:=false
end;
4:begin
P_box.Visible:=false;
p_s.Visible:=false;
P_cyl.Visible:=false;
P_con.Visible:=false;
p_wedge.Visible:=true;
p_tor.Visible:=false
end;
5: begin
P_box.Visible:=false;
p_s.Visible:=false;
P_cyl.Visible:=false;
P_con.Visible:=false;
p_wedge.Visible:=false;
p_tor.Visible:=true
end;
end;
end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
case RadioGroup2.ItemIndex of
0: a.activedocument.sendcommand('-вид _swiso'+#13);
1: a.activedocument.sendcommand('-вид _seiso'+#13);
2: a.activedocument.sendcommand('-вид _nwiso'+#13);
3: a.activedocument.sendcommand('-вид _neiso'+#13);
4: a.activedocument.sendcommand('-вид _top'+#13);
5: a.activedocument.sendcommand('-вид _bottom'+#13);
6: a.activedocument.sendcommand('-вид _left'+#13);
7: a.activedocument.sendcommand('-вид _right'+#13);
8: a.activedocument.sendcommand('-вид _front'+#13);
9: a.activedocument.sendcommand('-вид _back'+#13);
end;
end;
procedure TForm1.RadioGroup3Click(Sender: TObject);
begin
case RadioGroup3.ItemIndex of
0: a.activedocument.sendcommand('shademode 3'+#13);
1: a.activedocument.sendcommand('shademode с'+#13);
2: a.activedocument.sendcommand('shademode у'+#13);
end; end;
procedure TForm1.cbColorsDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
R: TRect;
C, AColor: TColor;
P: TPoint;
S1: String;
begin
AColor:= AcadColorToColor(Index);
with cbColors.Canvas do
begin
// Залить прямоугольник фоновым цветом
C:= Brush.Color;
Brush.Color:= cbColors.Color;
FillRect(Rect);
// Залить прямоугольник цвета
R:= Rect;
R.Right:= R.Bottom - R.Top + R.Left;
InflateRect(R, -2, -2);
Brush.Color:= AColor;
FillRect(R);
// Обводка прямоугольника цвета
Brush.Color:= clBlack;
FrameRect(R);
// Залить прямоугольник фокуса
Brush.Color:= C;
R:= Rect;
R.Left:= R.Bottom - R.Top + R.Left;
FillRect(R);
// Показать текст
R:= Rect;
R.Left:= R.Bottom - R.Top + R.Left + 2;
S:= cbColors.Items[Index];
// Если требуется отображать компоненты цвета - добавить их значения к
// строке с его индексом
if FShowColorValues then S:= S + Format(' (%d, %d, %d)', [GetRValue(AColor),
GetGValue(AColor),
GetBValue(AColor)]);
with R do
P:= Point(Left, Top + (Bottom - Top - TextHeight(cbColors.Items[Index])) div 2);
// Заменить индексы логических цветов на "удобочитаемые"
case Index of
0: TextRect(R, P.X, P.Y, 'ByBlock');
256: TextRect(R, P.X, P.Y, 'ByLayer');
else
TextRect(R, P.X, P.Y, S);
end;
// Если элемент в фокусе, то...
if odFocused in State then
begin
// ...стереть старую рамку фокуса (которая на весь Rect)
DrawFocusRect(Rect);
// ...и нарисовать новую только на текст
DrawFocusRect(Classes.Rect(R.Left - 2, R.Top, R.Right, R.Bottom));
end;
end;
end;
procedure TForm1.chbShowColorValuesClick(Sender: TObject);
begin
FShowColorValues:= (Sender as TCheckBox).Checked;
cbColors.Invalidate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
PopulateColorsList;
end;
procedure TForm1.cub_wClick(Sender: TObject);
begin
if cub_w.Checked then
begin
wedge_w.Enabled:=false;
wedge_h.Enabled:=false;
wedge_w.Color:=clGray;
wedge_h.Color:=clGray;
end
else
begin
wedge_w.Enabled:=true;
wedge_h.Enabled:=true;
wedge_w.Color:=clWhite;
wedge_h.Color:=clWhite;
end;
end;
procedure TForm1.RadioGroup4Click(Sender: TObject);
begin
case RadioGroup4.ItemIndex of
0: begin
P_rotate3d.Visible:=true;
P_mirror3d.Visible:=false;
p_slice.Visible:=false;
end;
1: begin
P_rotate3d.Visible:=false;
P_mirror3d.Visible:=true;
p_slice.Visible:=false;
end;
2: begin
P_rotate3d.Visible:=false;
P_mirror3d.Visible:=false;
p_slice.Visible:=true;
end;
end;
end;
procedure TForm1.PageControl1Change(Sender: TObject);
var s1:string;
begin
s1:=ExtractFilePath(Application.ExeName)+'html\';
url:='';
case PageControl1.ActivePageIndex of
0:url:=s1+'main.htm';
1:url:=s1+'visual.htm';
2:url:=s1+'edit.htm';
end;
try
if not CheckBox1.Checked then
WebBrowser1.Navigate(url);
except end; end; end.
Размещено на Allbest.ru
Подобные документы
Характеристика програмного забезпеченнягалузь його використання, вимоги до розробки та її джерела, мета та призначення. Структура й основні принципи побудови систем автоматизації конструкторської документації. Технології параметричного моделювання.
дипломная работа [2,3 M], добавлен 26.10.2012Підстава для створення системи Компас-3D. Характеристика розробленого програмного забезпечення. Призначення і характеристики систем автоматизації конструкторської документації. Дослідження методів створення динамічних бібліотек в середовищі Delphi.
дипломная работа [3,3 M], добавлен 22.10.2012Характеристика форматів, які містять у собі опис тривимірних об'єктів. Мова моделювання віртуальної реальності, способи відображення координатних перетворень. Класифікація форматів графічних зображень, їх специфічні ознаки, призначення та застосування.
контрольная работа [1,5 M], добавлен 20.09.2009Підстава для створення, найменування та область застосування програмного забезпечення. Дослідження теоретичних аспектів процесу проектування систем автоматизації розробки конструкторської документації. Інструкція по інсталяції програмного продукту.
дипломная работа [2,5 M], добавлен 26.10.2012Історія створення и основні характеристики системи SWIFT, напрямки її діяльності та ефективність. Структура SWIFT, основні відділи та їх функції. Принципи створення автоматичних інформаційних систем. Призначення і можливості системи "клієнт-банк".
контрольная работа [30,5 K], добавлен 26.07.2009Графічна підсистема Delphi 5, її можливості, інструменти та принципи побудови прикладних програм з використанням графіки; дочірні класи. Методи опрацювання графічних зображень різних форматів і типів: растрових файлів, метафайлів Windows, піктограм.
лабораторная работа [47,9 K], добавлен 19.03.2011Основні аспекти використання стандартних компонентів ООС програмування Delphi для створення звітної документації. Опис компонентів – QReport, PrintDialog та PrintSetupDialog. Приклади створення звітів. Iнше програмне забезпечення для побудови звітів.
курсовая работа [488,4 K], добавлен 08.12.2008Історія виникнення та сфери використання тримірної графіки. Дослідження процесу візуалізації тримірного зображення. Створення програмного забезпечення, здатного перетворювати стандартні графічні зображення до графічних зображень внутрішніх форматів Мауа.
дипломная работа [3,6 M], добавлен 23.09.2013Призначення та область застосування програм, які орієнтовані на перетворення зображень з плоского в об’ємне. Основні стадії формування тривимірного зображення. Класифікація моделей і методів візуалізації. Особливості створення карти глибин по пікселям.
курсовая работа [325,8 K], добавлен 04.06.2010Основні переваги програмування на мові Delphi. Використання стандартних операторів при створенні інтерфейсу користувача. Вибір складу технічних і програмних засобів, організація вхідних і вихідних даних. Розробка програми, блок-схеми та тексту програми.
реферат [316,1 K], добавлен 22.01.2013