Разработка системы автоматизированного проектирования

Функциональное описание процесса разработки системы автоматического проектирования цилиндрической емкости. Математическая постановка и программное обеспечение задачи. Алгоритм работы программы и результаты ее работы, анализ использования основных окон.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 20.12.2012
Размер файла 876,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

5

Размещено на http://www.allbest.ru

Разработка системы автоматизированного проектирования

Содержание

Задание

Функциональное описание процесса разработки объекта

Математическая модель

Описание входных/выходных данных

Описание структуры программы

Описание работы программы

Результаты работы программы

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

Приложение 1

Функциональное описание процесса разработки

Для функционального описания процесса разработки воспользуемся моделью IDEF0. Данная модель позволяет наглядно показать цели проекта, ход его выполнения, последовательность переходов по этапам, средства необходимые для выполнения проекта, а также управляющие воздействия.

Составим функциональное описание процесса разработки курсовой работы по курсу «Разработка САПР».

Рис.1. Нулевой функциональный блок IDEF0 диаграммы.

Данный блок представляет собой обобщенную задачу, которую нужно выполнить.

Входными данными для данного блока является задание на курсовую работу. Управлением являются теоретические сведения, которые нужны для решения математической части задания, и задание на КР, которым нужно руководствоваться при её выполнении. На выходе мы создаем отчет и презентацию.

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

Детализируем то, что представлено в блоке А0 (проведем декомпозицию).

Рис.2.IDEF0 - 1 уровень.

Из приведенной диаграммы видно, что, получив задание, мы приступаем к выполнению проекта.

Для начала анализируем, какие данные будут являться входными, а какие выходными.

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

Далее осуществляется математическая постановка задачи. По завершению этапа получаем её математическое решение.

На этапе разработки алгоритма на основе входных данных и согласно заданию разрабатывается алгоритм решения задачи. Итогом является блок-схема алгоритма, по которой будет осуществляться процесс программирования.

На этапе программирования создается программный код. Механизмом исполнения, помимо студента, является среда программирования Delphi7. На выходе данного этапа формируется программа, по результатам проверки которой данные отправляются для создания отчета.

Здесь формируется отчет о проделанной работе, согласно заданию и требованиям, предъявляемым к оформлению отчета. Отчет оформляется с помощью программ MS Word и MS Visio. На выходе этого этапа формируется готовый отчет о проделанной работе.

Рис. 3. Декомпозиция уровня программирования

Математическая модель

система автоматическое проектирование

Рис. 4. Устройство внутренней поверхности емкости

Для того, чтобы рассчитать минимальную площадь поверхности цилиндрической емкости, в частности, того цилиндра, который составляет внутреннюю поверхность емкости, нужно составить зависимость площади S от высоты H или радиуса основания R.

Площадь поверхности будет рассчитываться как площадь цилиндрической поверхности и площадь одного из оснований:

Чтобы оставить одно неизвестное в уравнении, выразим высоту h через объем емкости

(1)

Получим зависимость S(R):

(2)

Чтобы найти минимум функции S, найдем её производную и приравняем к нулю:

(3)

Решение уравнения в общем виде: ;

Следовательно, площадь будет минимальна при

(4)

Для построения потребуется высота h, для её расчета используем формулу (1).

Описание входных/выходных данных

Входные данные для расчета параметров цилиндрической емкости:

· Объем V

· минимальный и максимальный радиусы основания

· минимальная и максимальная высота

· минимальный и максимальный объем

Выходные данные:

· высота h

· радиус основания R

· площадь поверхности S

Пользователь вводит значение объема емкости и получает на выходе открытые файл чертежа(*.cdw) и файл 3D-сборки( *.a3d)

Описание структуры программы

Рис.5 Блок-схема процедуры расчета

V - заданный объём

h - высота емкости

S - площадь поверхности

R - радиус основания

Код программы содержится в двух файлах:

KompasAPI.pas - содержит стандартные функции взаимодействия с Компас 3D. В этом модуле открываются все детали сборки, переменные R и h передаются в соответствующие внешние переменные сборки и с их использованием сборка перестраивается.

Unit1.pas - обработка событий, процедура расчета calc, построения, вывод результатов расчета.

Кнопка Расчет обрабатывает входной параметр, запускает процедуру расчета calc, делает доступными кнопки Модель и Чертеж.

кнопка Модель вызывает модуль KompasAPI.pas, который запускает установленный Компас3D и выполняет перестроение сборки с измененными параметрами.

кнопка Чертеж вызывает модуль KompasAPI.pas, который выполняет перестроение чертежа на основе ранее построенной сборки с измененными параметрами.

Описание работы программы

Рис. 5. Окно программы при запуске

После получения результата становятся доступны кнопки построений.

Рис. 6. Окно программы после выполнения расчета

После запуска программы от пользователя требуется ввести в поле ввода значение объема (по умолчанию это значение равно 1000), Затем нажать кнопку Расчет. После этого выводится решение задачи. Пользователь может нажать на доступные теперь кнопки Модель и Чертеж, чтобы выполнились все необходимые построения. Компас3D запустится автоматически (в случае его присутствия на машине пользователя) .

Результат работы программы

Рис.7. Окно программы с результатами расчета

Рис.8 Окно «Компас3D» с построенным чертежом

Рис. 9 Окно «Компас3D» с построенной сборкой

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

1. Конспект лекций по дисциплине «Разработка САПР», проф., доц. Ямникова О.А., 2010г.;

2. Методические указания по выполнению курсовой работы по курсу «Разработка САПР», проф., доц. Ямникова О.А., 2010 г.

Приложение 1

Код модуля Unit1.pas

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComObj, OleCtrls, ksTLB, ComCtrls, StdCtrls, KompasAPI, DB,

Grids, DBGrids, ADODB, ExtCtrls, Buttons, jpeg, XPMan,math;

type

TForm1 = class(TForm)

Button4: TButton;

LabeledEdit1: TLabeledEdit;

OD1: TOpenDialog;

m: TMemo;

Button1: TButton;

Button2: TButton;

OD2: TOpenDialog;

procedure Button4Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

iDocument2D1 : ksDocument2D ;

r,v,h,s:real;

implementation

{$R *.dfm}

procedure calc;

begin

if (v>=990) and (v<=1010 )then

begin

r:=power((v/pi),1/3) ;

s:=2*v/r+pi*power(r,2);

h:=v/(pi*r*r) ;

with form1.m do

begin

lines.Add('---Результаты вычисления---');

lines.Add('Заданный объем емкости: '+floattostr(v));

lines.Add('Высота: '+floattostr(h));

lines.Add('Радиус вращения: '+floattostr(r));

lines.Add('Площадь поверхности: '+floattostr(s));

end;

end

else

MessageDlg('Значение объема выходит за допустимые пределы!',mtWarning,[mbOk],0);

end;

procedure TForm1.Button4Click(Sender: TObject);

VAR

c:TStringList;

t:TPartVars;

function full(ch:boolean):real;

begin

if ch then result:=0

else result:=1;

end;

BEGIN

if OD1.Execute then

StartKompas(OD1.FileName);

c:=TStringList.Create;

ReadParts(c);

t:=GetPartVars(c[1]);

ChangeVar('','h',h);

ChangeVar('','r',r);

t:=GetPartVars(c[1]);

c.Free ;

Button1.Enabled:=true

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

m.Clear ;

try

V:=strtofloat(LabeledEdit1.Text);

except

MessageDlg('Некорректный ввод!',mtWarning,[mbOk],0);

end;

calc;

button4.Enabled:=true;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if OD2.Execute then

StartKompas2d(OD2.FileName);

iDocument2D1 := KompasAPI.doc2d;

end;

end.

Код модуля KompasAPI.pas

unit KompasAPI;

interface

uses ComObj, OleCtrls, ksTLB, Classes, SysUtils;

TYPE TPartVar=RECORD

VarName:STRING;

VarNote:STRING;

VarValue:REAL

END;

TPartVars=ARRAY OF TPartVar;

VAR

kompas:KompasObject;

Doc:ksDocument3D;

KompasHandle:THandle;

prt:TStringList; // список имен деталей

partvar:TPartVars;

iDocument2D : ksDocument2D;

doc2d:ksDocument2D;

function StartKompas(filename:string):boolean;

function StartKompas2d(filename:string):boolean;

procedure ReadParts(s:TStringList);

function GetPartVars(partname:STRING):TPartVars;

PROCEDURE ChangeVar(partname, varname: STRING; value_:REAL);

implementation

function StartKompas(filename:string):boolean;

const ka='Kompas.Application.5';

begin

// подключение к КОМПАС 3D

Result:=true;

try

kompas:=KompasObject(GetActiveOleObject(ka)); // если уже запущен

except

try

kompas:=KompasObject(CreateOleObject(ka)); // если не запущен

except

result:=false;

exit

end

end;

// получение ссылки на окно КОМПАС

KompasHandle := kompas.ksGetHWindow;

// делаем окно КОМПАСа видимым

kompas.Visible:=true;

// получение ссылки на текущий документ КОМПАСа

Doc := ksDocument3D(kompas.ActiveDocument3D);

// если такой документ есть...

if Assigned(Doc) then

// то закрываем его

Doc.close;

// создаем новый документ...

Doc := ksDocument3D(kompas.Document3D);

// и загружаем в него сборку с именем filename

Doc.Open(Trim(filename), False);

// активируем API

kompas.ActivateControllerAPI

end;

function StartKompas2d(filename:string):boolean;

//var doc2d:ksDocument2D;

const ka='Kompas.Application.5';

begin

// подключение к КОМПАС 3D

Result:=true;

try

kompas:=KompasObject(GetActiveOleObject(ka)); // если уже запущен

except

try

kompas:=KompasObject(CreateOleObject(ka)); // если не запущен

except

result:=false;

exit

end

end;

// получение ссылки на окно КОМПАС

KompasHandle := kompas.ksGetHWindow;

// делаем окно КОМПАСа видимым

kompas.Visible:=true;

// получение ссылки на текущий документ КОМПАСа

Doc2d := ksDocument2D(kompas.ActiveDocument2D);

// если такой документ есть...

if Assigned(Doc2d) then

// то закрываем его

Doc2d.ksCloseDocument;

// создаем новый документ...

doc2d:=ksDocument2D(Kompas.Document2D);

doc2d.ksOpenDocument(FileName, false );

// активируем API

kompas.ActivateControllerAPI

end;

procedure ReadParts(s:TStringList);

var i,num:word;

parts:ksPartCollection;

part:ksPart;

begin

// получение ссылки на список деталей

parts:=ksPartCollection(doc.PartCollection(true));

// число деталей

num:=parts.GetCount;

s.Clear;

// деталь с номером -1 есть сама сборка

s.Add(ksPart(doc.GetPart(-1)).name);

// цикл по деталям

for i:=0 to num-1 do

begin

// получение ссылки на деталь номер i

part:=ksPart(parts.GetByIndex(i));

// помещаем имя детали в список

s.Add(part.name);

end

end;

function GetPartVars(partname:STRING):TPartVars;

var vr:ksVariableCollection;

parts:ksPartCollection; // сборка

part:ksPart;

univar:ksVariable;

j, numpart:INTEGER;

begin

parts:=ksPartCollection(doc.PartCollection(true));

// ссылка на деталь с именем partname

if partname='' then

part:=ksPart(doc.GetPart(-1)) // сборка

else

part:=ksPart(parts.GetByName(partname,True,True));

// ссылка на список переменных детали

vr:=ksVariableCollection(part.VariableCollection);

// цикл по переменным детали

numpart:=vr.GetCount;

SetLength(result,numpart);

for j:=0 to numpart-1 do

begin

// ссылка на отдельную переменную

univar:=ksVariable(vr.GetByIndex(j));

with result[j] do

begin

VarName:=univar.name;

VarNote:=univar.note;

VarValue:=univar.value

end

end

end;

PROCEDURE ChangeVar(partname, varname: STRING; value_:REAL);

VAR vr:ksVariableCollection;

parts:ksPartCollection;

part:ksPart;

vvv:ksVariable;

Feature:ksFeature;

BEGIN

// Список деталей

parts:=ksPartCollection(doc.PartCollection(true));

// Ищем деталь или сборку

if partname='' then

begin

Part:=ksPart(Doc.GetPart(-1));

Feature:=ksFeature(Part.GetFeature);

vr:=ksVariableCollection(Feature.VariableCollection);

end

else

begin

part:=kspart(parts.GetByName(partname,true,true));

vr:=ksVariableCollection(part.VariableCollection)

end;

// Ищем переменную по имени

vvv:=ksVariable(vr.GetByName(varname,true,true));

// Начинаем редактировать деталь

if partname<>'' then

part.BeginEdit;

// Меняем значение переменной

vvv.value:=value_;

// Обновляем модель

vr.refresh;

part.RebuildModel;

part.Update;

// Завершаем редактирование детали с сохранением изменений

if partname<>'' then

part.EndEdit(true)

else

begin

doc.RebuildDocument;

doc.UpdateDocumentParam

end;

// Обновляем сборку

parts.refresh

END;

initialization

begin

// выделение памяти под массивы

prt:=TStringList.Create;

SetLength(partvar,0)

end;

finalization

begin

// освобождение памяти

finalize(partvar);

prt.Free

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Описание процесса проектирования информационно–справочной системы с помощью среды разработки PascalABC.Net, ее использование для регистрации обращений в медицинское учреждение. Логическая структура программы, алгоритм ее работы, особенности интерфейса.

    курсовая работа [628,8 K], добавлен 07.06.2017

  • Роль информационно-справочных систем в управлении предприятием. Программное обеспечение и инструменты для разработки информационно-справочных систем. Преимущества использования программ Delphi и Access. Описание основных окон работы системы "Клиент".

    дипломная работа [828,1 K], добавлен 27.02.2013

  • Системное, инструментальное и прикладное программное обеспечение. Современные настольные издательские системы. Программные средства мультимедиа. Системы искусственного интеллекта. Прикладное программное обеспечение автоматизированного проектирования.

    реферат [59,4 K], добавлен 18.12.2013

  • Содержательная и формальная (математическая) постановка задачи. Разработка алгоритма решения задачи. Структуры программы и алгоритмы программных модулей, их описание. Решение задачи на конкретном примере. Разработка системы тестов и отладка программы.

    курсовая работа [882,1 K], добавлен 24.11.2014

  • Математическая постановка задачи. Обоснование выбора средств разработки. Входные и выходные данные работы программы. Решение задачи теста для написания и отладки программы. Описание программных модулей. Разработка алгоритма, анализ полученных результатов.

    курсовая работа [2,2 M], добавлен 13.12.2015

  • Си - это язык программирования общего назначения. Постановка задачи: разработка программы - калькулятора. Метод решения задачи. Алгоритм работы программы. Технические данные для использования. Описание основных функций.

    курсовая работа [14,1 K], добавлен 23.05.2002

  • Процесс анодирования алюминия: гальванический метод нанесения покрытия. Создание системы автоматического проектирования (САПР). Математическая модель, описание методов автоматизации. Основные виды обеспечения. Технико-экономическое обоснование проекта.

    дипломная работа [1,3 M], добавлен 18.05.2011

  • Структура и классификация систем автоматизированного проектирования. Виды обеспечения САПР. Описание систем тяжелого, среднего и легкого классов. Состав и функциональное назначение программного обеспечения, основные принципы его проектирования в САПР.

    курсовая работа [37,7 K], добавлен 18.07.2012

  • Основные задачи внедрения новой системы автоматизированного регулирования раздувки шлака азотом в кислородном конвертере. Анализ предметной области. Алгоритм работы системы. Требования к программному обеспечению. Реализация проектируемой системы.

    дипломная работа [1,4 M], добавлен 20.03.2017

  • Описание работы заместителя главы районной администрации, информационное, техническое и программное обеспечение его автоматизированного рабочего места. Особенности основных задач и функций специалиста. Общее и функциональное программное обеспечение.

    реферат [41,2 K], добавлен 16.04.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.